Support iconUrl of w3c Notification
[framework/web/webkit-efl.git] / Source / WebCore / ChangeLog
1 2013-02-04 Nayan Kumar K <nayankk@motorola.com>
2
3         [WEBGL] Rename WEBKIT_WEBGL_compressed_texture_s3tc to WEBGL_compressed_texture_s3tc
4         https://bugs.webkit.org/show_bug.cgi?id=108866
5
6         Reviewed by NOBODY (OOPS!).
7
8         WEBGL_compressed_texture_s3tc is one of the community approved WebGL extension.
9         Hence remove the vendor prefix from WEBKIT_WEBGL_compressed_texture_s3tc.
10         Specification: http://www.khronos.org/registry/webgl/extensions/WEBGL_compressed_texture_s3tc/
11
12         No tests currently present to test WEBKIT_WEBGL_compressed_texture_s3tc.
13
14         * bindings/js/JSWebGLRenderingContextCustom.cpp:
15         (WebCore::toJS):
16         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
17         (WebCore::toV8Object):
18         * html/canvas/WebGLCompressedTextureS3TC.cpp:
19         (WebCore::WebGLCompressedTextureS3TC::getName):
20         * html/canvas/WebGLExtension.h:
21         * html/canvas/WebGLRenderingContext.cpp:
22         (WebCore):
23         (WebCore::WebGLRenderingContext::getExtension):
24
25 2013-02-01 Nayan Kumar K <nayankk@motorola.com>
26
27         [WEBGL] Rename WEBKIT_WEBGL_lose_context to WEBGL_lose_context.
28         https://bugs.webkit.org/show_bug.cgi?id=108694
29
30         Reviewed by NOBODY (OOPS!).
31
32         WEBGL_lose_context is one of the community approved WebGL extension.
33         Hence remove the vendor prefix from WEBKIT_WEBGL_lose_context extension.
34         Spefication: http://www.khronos.org/registry/webgl/extensions/WEBGL_lose_context/
35
36         Tests already exists, modified them to verify the change in extension name.
37
38         * bindings/js/JSWebGLRenderingContextCustom.cpp:
39         (WebCore::toJS):
40         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
41         (WebCore::toV8Object):
42         * html/canvas/WebGLExtension.h:
43         * html/canvas/WebGLLoseContext.cpp:
44         (WebCore::WebGLLoseContext::getName):
45         * html/canvas/WebGLRenderingContext.cpp:
46         (WebCore):
47         (WebCore::WebGLRenderingContext::getExtension):
48         (WebCore::WebGLRenderingContext::getSupportedExtensions):
49
50 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
51
52         Deleting across multiple paragraphs can change the style of surrounding text
53         https://bugs.webkit.org/show_bug.cgi?id=97266
54
55         Reviewed by Levi Weintraub.
56
57         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
58         even when we're not annotating. We don't want to preserve all styles because it's against
59         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
60         styles from a mail blockquote because that's not a style the user has applied. See the comment
61         in EditingStyle::wrappingStyleForSerialization.
62
63         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
64
65         * editing/EditingStyle.cpp:
66         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
67         (WebCore::EditingStyle::wrappingStyleForSerialization):
68
69 2012-09-24  Tony Chang  <tony@chromium.org>
70
71         flex-grow should be 1 when omitted from flex shorthand
72         https://bugs.webkit.org/show_bug.cgi?id=97480
73
74         Reviewed by Ojan Vafai.
75
76         We were using 0, based on an outdated version of the spec.
77
78         Tests: css3/flexbox/flex-property-parsing.html
79                css3/flexbox/flex-algorithm.html: New test case.
80
81         * css/CSSParser.cpp:
82         (WebCore::CSSParser::parseFlex):
83
84 2013-02-13  Morten Stenshorne  <mstensho@opera.com>
85
86         WebKit ignores column-rules wider than column-gap
87         https://bugs.webkit.org/show_bug.cgi?id=15553
88
89         Paint column rules even if they are wider than the gap.
90         Rules wider than the gap should just overlap with column contents.
91
92         Reviewed by Eric Seidel.
93
94         Test: fast/multicol/rule-thicker-than-gap.html
95
96         * rendering/RenderBlock.cpp:
97         (WebCore::RenderBlock::paintColumnRules):
98
99 2013-03-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
100
101         [EFL] Cancel mark on search field is not displayed
102         https://bugs.webkit.org/show_bug.cgi?id=94880
103
104         Reviewed by Kenneth Rohde Christiansen.
105
106         adjustSearchFieldCancelButtonStyle() doesn't set style width and height for search cancel button.
107         So, the button isn't showing up in search input field. Besides the button size should be scaled based
108         on the font size as chromium, qt, and blackberry ports.
109
110         Tests: fast/forms/search-cancel-button-style-sharing.html
111                fast/forms/search-rtl.html
112         * platform/efl/RenderThemeEfl.cpp:
113         (WebCore):
114         (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
115
116 2012-08-30  Kangil Han  <kangil.han@samsung.com>
117
118         Fix compile warning when enable tiled backing store
119         https://bugs.webkit.org/show_bug.cgi?id=95422
120
121         Reviewed by Kentaro Hara.
122
123         Fixed compile warning messages when enabled tiled backing store.
124         In case of TiledBackingStore, it was first thought about static_cast<unsigned>.
125         However, if minus value is assigned to the comparison, it would be critical.
126         So, it was modified as using int value in tiled coordinate calculation.
127
128         * page/Frame.cpp:
129         (WebCore::Frame::tiledBackingStorePaintEnd): comparison between signed and unsigned integer expressions [-Wsign-compare]
130         * platform/graphics/TiledBackingStore.cpp:
131         (WebCore::TiledBackingStore::invalidate): comparison between signed and unsigned integer expressions [-Wsign-compare]
132         (WebCore::TiledBackingStore::paint): comparison between signed and unsigned integer expressions [-Wsign-compare]
133         (WebCore::TiledBackingStore::coverageRatio): comparison between signed and unsigned integer expressions [-Wsign-compare]
134         (WebCore::TiledBackingStore::createTiles): comparison between signed and unsigned integer expressions [-Wsign-compare]
135         * platform/graphics/cairo/GLContext.cpp:
136         (WebCore::GLContext::createOffscreenContext): no return statement in function returning non-void [-Wreturn-type]
137
138 2012-09-28  Alberto Garcia  <agarcia@igalia.com>
139
140         TextureMapperGL: fix -Wsign-compare compilation warning.
141         https://bugs.webkit.org/show_bug.cgi?id=97928
142
143         Reviewed by Martin Robinson.
144
145         Use size_t rather than int to iterate over FilterOperations.
146
147         * platform/graphics/texmap/TextureMapperGL.cpp:
148         (WebCore::BitmapTextureGL::applyFilters):
149
150 2013-03-11  Kent Tamura  <tkent@chromium.org>
151
152         Inappropriate validation message for required number/date input elements
153         https://bugs.webkit.org/show_bug.cgi?id=111982
154
155         Reviewed by Kentaro Hara.
156
157         For validation message, badInput messages should take precedence
158         over valueMissing messages because users already filled out the
159         field with a bad value.
160
161         Tests: Update fast/forms/validationMessage.html
162
163         * html/InputType.cpp:
164         (WebCore::InputType::validationMessage):
165         Check badInput first.
166
167 2013-03-11  Kent Tamura  <tkent@chromium.org>
168
169         Refactoring: Move the content of HTMLInputElement::subtreeHasChanged to TextFieldInputType
170         https://bugs.webkit.org/show_bug.cgi?id=103195
171
172         Reviewed by Kentaro Hara.
173
174         HTMLInputElement::subtreeHasChanged is called only if the input is
175         a text field. The code should be moved to TextFieldInputType.
176
177         No new tests. This should not change any behavior.
178
179         * html/HTMLInputElement.cpp:
180         - Remove unnecessary NumberInputType.h inclusion.
181         - Remove convertFromVisibleValue. It was used only by subtreeHasChanged.
182         (WebCore::HTMLInputElement::subtreeHasChanged):
183         Move the code to TextFieldInputType::subtreeHasChanged except
184         calculateAndAdjustDirectionality, which is a protected member of
185         HTMLElement.
186         * html/HTMLInputElement.h:
187         (HTMLInputElement): Remove convertFromVisibleValue.
188
189         * html/InputType.cpp:
190         Move convertFromVisibleValue to TextFieldInputType.
191         (WebCore::InputType::subtreeHasChanged):
192         Add ASSERT_NOT_REACHED.
193         * html/InputType.h:
194         (InputType): Remove convertFromVisibleValue.
195
196         * html/TextFieldInputType.cpp:
197         (WebCore::TextFieldInputType::convertFromVisibleValue):
198         Moved from InputType.
199         (WebCore::TextFieldInputType::subtreeHasChanged):
200         Moved from HTMLInputElement. A latter part is moved to
201         didSetValueByUserEdit to be hooked by SearchInputType.
202         (WebCore::TextFieldInputType::didSetValueByUserEdit):
203         Moved from HTMLInputElement::subtreeHasChanged, and clean up the code.
204         * html/TextFieldInputType.h:
205         (TextFieldInputType):
206         - Move convertFromVisibleValue from InputType.
207         - Add didSetValueByUserEdit and subtreeHasChanged.
208
209         * html/SearchInputType.cpp:
210         (WebCore::SearchInputType::didSetValueByUserEdit):
211         Renamed from subtreeHasChanged, and calls TextFieldInputType::didSetValueByUserEdit.
212         * html/SearchInputType.h:
213         (SearchInputType): Rename subtreeHasChanged to didSetValueByUserEdit.
214
215 2012-11-22  Kentaro Hara  <haraken@chromium.org>
216
217         [V8] Move WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer
218         https://bugs.webkit.org/show_bug.cgi?id=103061
219
220         Reviewed by Adam Barth.
221
222         This is an incremental step to remove WorkerExecutionContextProxy.
223         This patch moves WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer.
224         This patch also renames methods so that the names become consistent
225         between the main thread and workers.
226
227         No tests. No change in behavior.
228
229         * bindings/v8/V8Initializer.cpp:
230         (WebCore::reportFatalErrorInMainThread):
231         (WebCore::messageHandlerInMainThread):
232         (WebCore::failedAccessCheckCallbackInMainThread):
233         (WebCore::V8Initializer::initializeMainThreadIfNeeded):
234         (WebCore::reportFatalErrorInWorker):
235         (WebCore):
236         (WebCore::messageHandlerInWorker):
237         (WebCore::V8Initializer::initializeWorkerIfNeeded):
238         * bindings/v8/V8Initializer.h:
239         (V8Initializer):
240         * bindings/v8/WorkerContextExecutionProxy.cpp:
241         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
242         * bindings/v8/WorkerContextExecutionProxy.h:
243         (WorkerContextExecutionProxy):
244
245 2012-11-25  Christophe Dumez  <christophe.dumez@intel.com>
246
247         [EFL] Refactor RenderThemeEfl::ThemePartCacheEntry::reuse()
248         https://bugs.webkit.org/show_bug.cgi?id=103189
249
250         Reviewed by Kenneth Rohde Christiansen.
251
252         Check if the entry size and type changed in
253         RenderThemeEfl::ThemePartCacheEntry::reuse() to avoid
254         useless processing if one of them did not change.
255
256         Remove useless call to cairo_surface_finish() since
257         we are using a smart pointer for the surface.
258
259         Resize the edge object *after* loading its content
260         from the theme file as it seems more logical this
261         way.
262
263         No new tests, no behavior change for layout tests.
264
265         * platform/efl/RenderThemeEfl.cpp:
266         (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
267         * platform/efl/RenderThemeEfl.h:
268         (ThemePartCacheEntry):
269
270 2012-11-25  Ryosuke Niwa  <rniwa@webkit.org>
271
272         Rename DynamicNodeList to LiveNodeList
273         https://bugs.webkit.org/show_bug.cgi?id=103197
274
275         Reviewed by Ojan Vafai.
276
277         Rename DynamicNodeList to LiveNodeList to match the terminology used in DOM4 working draft:
278         http://www.w3.org/TR/2012/WD-dom-20120405/#concept-collection-live
279         "A collection (either NodeList or HTMLCollection) can be either live or static".
280
281         Also rename DynamicNodeListCacheBase to LiveNodeListBase, and merge DynamicSubtreeNodeList
282         into LiveNodeList (old DynamicNodeList) now that the only difference between those two classes
283         is the former calling registerNodeListCache and unregisterNodeListCache on Document.
284
285         This patch completes the series of simplification of NodeList/HTMLCollection classes.
286
287         * CMakeLists.txt:
288         * GNUmakefile.list.am:
289         * Target.pri:
290         * WebCore.gypi:
291         * WebCore.xcodeproj/project.pbxproj:
292         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
293         (WebCore::getNamedItems):
294         * bindings/js/JSNodeListCustom.cpp:
295         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
296         * bindings/v8/custom/V8NodeListCustom.cpp:
297         (WebCore::V8NodeList::opaqueRootForGC):
298         * dom/ChildNodeList.cpp:
299         (WebCore::ChildNodeList::ChildNodeList):
300         (WebCore::ChildNodeList::nodeMatches):
301         * dom/ChildNodeList.h:
302         * dom/ClassNodeList.cpp:
303         (WebCore::ClassNodeList::ClassNodeList):
304         * dom/ClassNodeList.h:
305         * dom/DOMAllInOne.cpp:
306         * dom/Document.cpp:
307         (WebCore::Document::registerNodeListCache):
308         (WebCore::Document::unregisterNodeListCache):
309         (WebCore):
310         * dom/Document.h:
311         (WebCore):
312         (Document):
313         * dom/DynamicNodeList.cpp: Removed.
314         * dom/DynamicNodeList.h: Removed.
315         * dom/LiveNodeList.cpp: Copied from Source/WebCore/dom/DynamicNodeList.cpp.
316         (WebCore::LiveNodeListBase::rootNode):
317         (WebCore::LiveNodeListBase::invalidateCache):
318         (WebCore::LiveNodeListBase::invalidateIdNameCacheMaps):
319         (WebCore::LiveNodeListBase::reportMemoryUsage):
320         (WebCore::LiveNodeList::namedItem):
321         * dom/LiveNodeList.h: Copied from Source/WebCore/dom/DynamicNodeList.h.
322         (WebCore::LiveNodeListBase::LiveNodeListBase):
323         (WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange):
324         (WebCore::LiveNodeList::LiveNodeList):
325         (WebCore::LiveNodeList::~LiveNodeList):
326         (LiveNodeList):
327         * dom/MicroDataItemList.cpp:
328         (WebCore::MicroDataItemList::MicroDataItemList):
329         * dom/MicroDataItemList.h:
330         * dom/NameNodeList.cpp:
331         (WebCore::NameNodeList::NameNodeList):
332         * dom/NameNodeList.h:
333         * dom/Node.cpp:
334         (WebCore::shouldInvalidateNodeListCachesForAttr):
335         (WebCore::Document::invalidateNodeListCaches):
336         * dom/Node.h:
337         (WebCore):
338         * dom/NodeList.h:
339         (WebCore::NodeList::isLiveNodeList):
340         * dom/NodeRareData.h:
341         (NodeListsNodeData):
342         (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
343         (WebCore::NodeListsNodeData::removeCacheWithName):
344         (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
345         (WebCore::NodeListsNodeData::adoptTreeScope):
346         * dom/PropertyNodeList.cpp:
347         (WebCore::PropertyNodeList::PropertyNodeList):
348         * dom/PropertyNodeList.h:
349         * dom/TagNodeList.cpp:
350         (WebCore::TagNodeList::TagNodeList):
351         * dom/TagNodeList.h:
352         * html/HTMLCollection.cpp:
353         (WebCore::HTMLCollection::HTMLCollection):
354         (WebCore::LiveNodeListBase::iterateForNextNode):
355         (WebCore::LiveNodeListBase::itemBeforeOrAfter):
356         (WebCore::LiveNodeListBase::itemBefore):
357         (WebCore::LiveNodeListBase::itemAfter):
358         (WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
359         (WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
360         (WebCore::LiveNodeListBase::setItemCache):
361         (WebCore::LiveNodeListBase::length):
362         (WebCore::LiveNodeListBase::item):
363         (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
364         * html/HTMLCollection.h:
365         * html/LabelsNodeList.cpp:
366         (WebCore::LabelsNodeList::LabelsNodeList):
367         * html/LabelsNodeList.h:
368         * html/RadioNodeList.cpp:
369         (WebCore::RadioNodeList::RadioNodeList):
370         * html/RadioNodeList.h:
371
372 2012-10-08  Robert Hogan  <robert@webkit.org>
373
374         Changing position:relative to position:static results in mis-positioned div
375         https://bugs.webkit.org/show_bug.cgi?id=26397
376
377         Reviewed by Ojan Vafai.
378
379         When a block changes position from relative to static it is no longer the containing block for any
380         positioned objects it may have. If any of those positioned objects actually have a position specified
381         they are going to need a layout as their new containing block will likely have a different location they
382         need to offset from. Positioned objects without a specified position always get a layout anyway 
383         in layoutPositionedObjects() so no need to worry about them in this situation. 
384
385         Test: fast/block/abspos-child-container-changes-from-relative-to-static-expected.html
386
387         * rendering/RenderBlock.cpp:
388         (WebCore::RenderBlock::styleWillChange):
389         (WebCore::RenderBlock::layoutPositionedObjects):
390         (WebCore::RenderBlock::removePositionedObjects):
391         * rendering/RenderBlock.h:
392         (RenderBlock):
393
394 2012-11-25  Kent Tamura  <tkent@chromium.org>
395
396         Correct input[type=number] value sanitization for user-input
397         https://bugs.webkit.org/show_bug.cgi?id=103018
398
399         Reviewed by Kentaro Hara.
400
401         If a number field has non-number string, HTMLInputElement::value is not
402         updated and returns the past valid value. It doesn't match to the value
403         sanitization algorithm defined by the HTML standard [1], and Opera's
404         behavior. We should sanitize non-number strings to "".
405
406         [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)
407         > The value sanitization algorithm is as follows: If the value of the
408         > element is not a valid floating-point number, then set it to the empty
409         > string instead.
410
411         No new tests. Update existing tests;
412         fast/forms/number/number-commit-valid-only.html and
413         fast/forms/number/number-unacceptable-style.html
414
415         * html/HTMLInputElement.cpp:
416         (WebCore::HTMLInputElement::subtreeHasChanged):
417         Remove isAcceptableValue check.
418
419         * html/HTMLInputElement.h:
420         (HTMLInputElement): isAcceptableValue is no longer needed.
421         * html/InputType.cpp: Remove isAcceptableValue.
422         * html/InputType.h: Ditto.
423         * html/NumberInputType.cpp: Ditto.
424         (WebCore::NumberInputType::hasUnacceptableValue):
425         Fold the isAcceptableValue content into this.
426         * html/NumberInputType.h:
427         (NumberInputType): Remove isAcceptableValue.
428
429 2012-12-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
430
431         Remove conversion to/from float and float division from ImageFrame::setRGBA
432         https://bugs.webkit.org/show_bug.cgi?id=103693
433
434         Reviewed by Brent Fulgham.
435
436         Replace floating point operations used for alpha premultiply with fixed point arithmetic
437         which is basically integer operations. Allows to shave extra couple percent from decoding
438         images with transparency.
439
440         Covered by existing tests.
441
442         * platform/image-decoders/ImageDecoder.h:
443         (ImageFrame):
444         (WebCore::ImageFrame::fixPointUnsignedMultiply):
445         (WebCore::ImageFrame::setRGBA):
446
447 2012-11-30  Jer Noble  <jer.noble@apple.com>
448
449         Unreviewed Windows build fix.
450
451         Add a default: entry to an case statement to fix a build error when compiled in VS2005.
452
453         * html/MediaController.cpp:
454         (MediaController::playbackState):
455
456 2012-11-28  Byungwoo Lee  <bw80.lee@samsung.com>
457
458         [EFL] Use mutex locker in wakeUp() to ensure thread-safety.
459         https://bugs.webkit.org/show_bug.cgi?id=101132
460
461         Reviewed by Gyuyoung Kim.
462
463         Add mutex locker for the ecore pipe to ensure thread-safety of
464         RunLoop::wakeUp().
465
466         RunLoop::wakeUp() can be called by multiple thread. It uses
467         ecore_pipe_write() function but the function is not thread-safe.
468
469         * platform/RunLoop.h:
470         (RunLoop):
471         * platform/efl/RunLoopEfl.cpp:
472         (WebCore::RunLoop::wakeUp):
473
474 2012-11-09  Huang Dongsung  <luxtella@company100.net>
475
476         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
477         https://bugs.webkit.org/show_bug.cgi?id=101656
478
479         Reviewed by Kenneth Rohde Christiansen.
480
481         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
482         smartly, but currently TiledBackingStore expects a contents rect is big enough
483         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
484         is usually wrong expectation.
485
486         We must compute cover and keep rects using the visibleRect, instead of
487         the rect intersecting the visibleRect with m_rect, because TBS can be
488         used as a backing store of GraphicsLayer and the visible rect usually
489         does not intersect with m_rect.
490         In the below case, the intersecting rect is an empty.
491
492          +---------------+
493          |               |
494          |   m_rect      |
495          |       +-------|-----------------------+
496          |       | HERE  |  cover or keep        |
497          +---------------+      rect             |
498                  |         +---------+           |
499                  |         | visible |           |
500                  |         |  rect   |           |
501                  |         +---------+           |
502                  |                               |
503                  |                               |
504                  +-------------------------------+
505
506         We must create or keep the tiles in the HERE region. Currently in the
507         case, we do not create or keep tiles on the HERE region. Moreover, in
508         the case, we early return, which means we don't remove any tiles. It
509         causes to waste heap and video memory.
510
511         This patch changes TiledBackingStore to manage tiles smartly for
512         Coordinated Graphics.
513
514         Changing cache policy is not testable in layout tests.
515
516         * platform/graphics/TiledBackingStore.cpp:
517         (WebCore::TiledBackingStore::visibleRect):
518         (WebCore::TiledBackingStore::visibleAreaIsCovered):
519         (WebCore::TiledBackingStore::createTiles):
520         (WebCore::TiledBackingStore::adjustForContentsRect):
521         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
522         * platform/graphics/TiledBackingStore.h:
523         (TiledBackingStore):
524
525 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
526
527         SQLResultSet.rowsAffected not cleared
528         https://bugs.webkit.org/show_bug.cgi?id=46070
529
530         Reviewed by Kenneth Rohde Christiansen.
531
532         SQLResultSet.rowsAffected is supposed to return the number
533         of rows that were changed by the statement. For "SELECT"
534         statements, it should return 0.
535
536         However, our implementation currently relies on sqlite3_changes()
537         to compute this value. sqlite3_changes() returns the number of
538         direct row changes in the most recent INSERT, UPDATE, or DELETE
539         statement within the same trigger context. Unfortunately, the
540         most recent INSERT, UPDATE, or DELETE statement may not be the
541         last statement. As a consequence, if you INSERT 1 row, then
542         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
543         INSERT and the SELECT statements.
544
545         The proposed solution is to use sqlite3_total_changes() instead
546         of sqlite3_changes(). sqlite3_total_changes() returns the number
547         of row changes caused by INSERT, UPDATE or DELETE statements since
548         the database connection was opened. We now store the value
549         returned by sqlite3_total_changes() before each statement in
550         order to return the count difference in
551         SQLiteDatabase::lastChanges().
552
553         Test: storage/websql/execute-sql-rowsAffected.html
554
555         * platform/sql/SQLiteDatabase.cpp:
556         (WebCore::SQLiteDatabase::SQLiteDatabase):
557         (WebCore::SQLiteDatabase::updateLastChangesCount):
558         (WebCore):
559         (WebCore::SQLiteDatabase::lastChanges):
560         * platform/sql/SQLiteDatabase.h:
561         (SQLiteDatabase):
562         * platform/sql/SQLiteStatement.cpp:
563         (WebCore::SQLiteStatement::step):
564
565 2012-11-20  Keishi Hattori  <keishi@webkit.org>
566
567         Week picker width is too small
568         https://bugs.webkit.org/show_bug.cgi?id=102766
569
570         Reviewed by Kent Tamura.
571
572         The width of week picker was too small because we were forgetting about
573         the week number column when calculating the desired width.
574
575         No new tests. Covered by week-picker-appearance*.html.
576
577         * Resources/pagepopups/calendarPicker.css:
578         (.week-mode .week-column): Needs to be table-cell.
579         * Resources/pagepopups/calendarPicker.js:
580         (CalendarPicker.prototype.fixWindowSize):
581
582 2012-11-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>
583
584         [GTK] no volume slider in HTML5 media element controls
585         https://bugs.webkit.org/show_bug.cgi?id=97192
586
587         Reviewed by Philippe Normand.
588
589         r115829 was causing this regression so it was partially
590         reverted. The revert causes some small regressions, in the tests
591         but it is better to have the volume slider shown.
592
593         * css/mediaControlsGtk.css:
594         (audio::-webkit-media-controls-panel)
595         (video::-webkit-media-controls-panel): Partially reverted
596         r115829.
597
598 2012-11-19  Antti Koivisto  <antti@apple.com>
599
600         Collect user style sheets in DocumentStyleSheetCollection
601         https://bugs.webkit.org/show_bug.cgi?id=102683
602
603         Reviewed by Andreas Kling.
604
605         Move the user stylesheet collection logic from StyleResolver to DocumentStyleSheetCollection.
606         
607         * css/StyleResolver.cpp:
608         (WebCore::StyleResolver::StyleResolver):
609         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
610         (WebCore::collectCSSOMWrappers):
611         * css/StyleResolver.h:
612         (StyleResolver):
613         * dom/DocumentStyleSheetCollection.cpp:
614         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
615         (WebCore::DocumentStyleSheetCollection::pageUserStyleSheet):
616         (WebCore::DocumentStyleSheetCollection::clearPageUserStyleSheet):
617         (WebCore::DocumentStyleSheetCollection::updatePageUserStyleSheet):
618         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
619         (WebCore::collectActiveStyleSheetsFromSeamlessParents):
620         (WebCore::DocumentStyleSheetCollection::updateStyleResolver):
621         
622             Factor the StyleResolver updating code to function.
623
624         (WebCore):
625         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
626         
627             Collect the user style sheets. Some renaming and other minor refactoring.
628
629         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
630         * dom/DocumentStyleSheetCollection.h:
631         (WebCore::DocumentStyleSheetCollection::activeUserStyleSheets):
632         
633             Add activeUserStyleSheets vector that contains all user stylesheets from different sources,
634             similar to activeAuthorStyleSheets.
635
636         (DocumentStyleSheetCollection):
637         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
638
639 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
640
641         Remove unneeded optimization in Element::isInTopLayer
642         https://bugs.webkit.org/show_bug.cgi?id=102772
643
644         Reviewed by Andreas Kling.
645
646         There's no reason to worry about calling elementRareData() multiple
647         times in this non performance sensitive code path as it's only used
648         in HTMLDialogElement's showModal and close methods.
649
650         No new tests, just simplification.
651
652         * dom/Element.cpp:
653         (WebCore::Element::setIsInTopLayer):
654
655 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
656
657         Simplify Element::isSpellCheckingEnabled
658         https://bugs.webkit.org/show_bug.cgi?id=102779
659
660         Reviewed by Andreas Kling.
661
662         isSpellCheckingEnabled contains logic that duplicates parentOrHostElement
663         and can be simplified by just calling that.
664
665         No new tests, just simplification.
666
667         * dom/Element.cpp:
668         (WebCore::Element::isSpellCheckingEnabled):
669
670 2012-11-20  Kihong Kwon  <kihong.kwon@samsung.com>
671
672         Apply DeviceController as parent class of DeviceMotionController.
673         https://bugs.webkit.org/show_bug.cgi?id=102578
674
675         Reviewed by Hajime Morita.
676
677         DeviceController needs to be applied as parent class of DeviceMotionController
678         because DeviceController which is extracted as parent class of
679         DeviceMotionController and DeviceOrientationController is already added.
680         Therefore duplicated implementation can be removed.
681
682         Covered by existing tests.
683
684         * dom/DeviceMotionClient.h:
685         * dom/DeviceMotionController.cpp:
686         (WebCore::DeviceMotionController::DeviceMotionController):
687         (WebCore::DeviceMotionController::didChangeDeviceMotion):
688         (WebCore::DeviceMotionController::deviceMotionClient):
689         (WebCore::DeviceMotionController::hasLastData):
690         (WebCore::DeviceMotionController::getLastEvent):
691         (WebCore::DeviceMotionController::from):
692         (WebCore):
693         * dom/DeviceMotionController.h:
694         (WebCore):
695         (WebCore::DeviceMotionController::~DeviceMotionController):
696         (DeviceMotionController):
697         * dom/Document.cpp:
698         Remove all implementations which are related DeviceOrientationEvnet and DeviceMotionEvent.
699         Because DeviceController checks suspend and stop status of active dom object before dispatchEvent.
700         (WebCore::Document::suspendActiveDOMObjects):
701         (WebCore::Document::resumeActiveDOMObjects):
702         * loader/EmptyClients.h:
703         * page/DOMWindow.cpp:
704         (WebCore::DOMWindow::addEventListener):
705         (WebCore::DOMWindow::removeEventListener):
706         (WebCore::DOMWindow::removeAllEventListeners):
707
708 2012-11-20  Kentaro Hara  <haraken@chromium.org>
709
710         [V8] Remove V8ParameterBase
711         https://bugs.webkit.org/show_bug.cgi?id=102774
712
713         Reviewed by Adam Barth.
714
715         V8ParameterBase is a redundant indirection.
716         We can flatten methods of V8ParameterBase to V8Parameter.
717
718         No tests. No change in behavior.
719
720         * bindings/v8/V8StringResource.h:
721         (WebCore::V8Parameter::V8Parameter):
722         (V8Parameter):
723         (WebCore::V8Parameter::toString):
724         (WebCore::::prepare):
725
726 2012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>
727
728         Use localized date-time format in datetime input
729         https://bugs.webkit.org/show_bug.cgi?id=102769
730
731         Reviewed by Kent Tamura.
732
733         Move the implementation of Locale::dateTimeFormatWithSeconds and Locale::dateTimeFormatWithoutSeconds
734         to its subclasses and use platform-specific methods to get date-time pattern.
735         Because Windows does not provide an API to get date-time pattern. We use fixed "{date} {time}"
736         pattern for Windows.
737
738         Test: fast/forms/datetime/datetime-appearance-l10n.html
739
740         * platform/text/LocaleICU.cpp:
741         (WebCore::LocaleICU::initializeDateTimeFormat): Retrieve datetime formats too.
742         (WebCore::LocaleICU::dateTimeFormatWithSeconds): Added.
743         (WebCore):
744         (WebCore::LocaleICU::dateTimeFormatWithoutSeconds): Added.
745         * platform/text/LocaleICU.h:
746         (LocaleICU): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
747         * platform/text/LocaleNone.cpp:
748         (LocaleNone):
749         (WebCore::LocaleNone::dateTimeFormatWithSeconds): Added. Always returns "dd/MM/yyyyy HH:mm:ss".
750         (WebCore):
751         (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Added. Always returns "dd/MM/yyyyy HH:mm".
752         * platform/text/PlatformLocale.cpp:
753         (WebCore): Remove dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() as these are now pure virtual.
754         * platform/text/PlatformLocale.h:
755         (Locale): Make dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() pure virtual.
756         * platform/text/mac/LocaleMac.h:
757         (LocaleMac): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
758         * platform/text/mac/LocaleMac.mm:
759         (WebCore::LocaleMac::dateTimeFormatterWithSeconds): Added.
760         (WebCore):
761         (WebCore::LocaleMac::dateTimeFormatterWithoutSeconds): Added.
762         (WebCore::LocaleMac::dateTimeFormatWithSeconds): Added.
763         (WebCore::LocaleMac::dateTimeFormatWithoutSeconds): Added.
764         * platform/text/win/LocaleWin.cpp:
765         (WebCore::LocaleWin::dateTimeFormatWithSeconds): Copied from original Locale::dateTimeFormatWithSeconds().
766         (WebCore):
767         (WebCore::LocaleWin::dateTimeFormatWithoutSeconds): Copied from original Locale::dateTimeFormatWithoutSeconds().
768         * platform/text/win/LocaleWin.h:
769         (LocaleWin): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
770
771 2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
772
773         Unreviewed, rolling out r135257.
774         http://trac.webkit.org/changeset/135257
775         https://bugs.webkit.org/show_bug.cgi?id=102777
776
777         Broke Chromium Debug compilation (Requested by yurys on
778         #webkit).
779
780         * bindings/v8/DOMDataStore.h:
781         (WebCore::DOMDataStore::getNode):
782
783 2012-11-20  Vsevolod Vlasov  <vsevik@chromium.org>
784
785         Web Inspector: Revert r133149: breaks revision reverting
786         https://bugs.webkit.org/show_bug.cgi?id=102672
787
788         Reviewed by Yury Semikhatsky.
789
790         * inspector/front-end/JavaScriptSourceFrame.js:
791         (WebInspector.JavaScriptSourceFrame):
792         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
793         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
794         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
795
796 2012-11-19  Csaba Osztrogonác  <ossy@webkit.org>
797
798         [Qt][Win] Unreviewed speculative buildfix after r135217.
799
800         * platform/win/WindowsExtras.h:
801
802 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
803
804         Unreviewed. Fix Chromium Win compilation after r135255.
805         https://bugs.webkit.org/show_bug.cgi?id=97803
806
807         * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which
808         was deleted in the aforementioned change.
809
810 2012-11-19  Kentaro Hara  <haraken@chromium.org>
811
812         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
813         https://bugs.webkit.org/show_bug.cgi?id=102158
814
815          Reviewed by Adam Barth.
816
817         A follow-up patch for r135230. This patch adds a correct ASSERTION.
818
819         No tests. No change in behavior.
820
821         * bindings/v8/DOMDataStore.h:
822         (WebCore::DOMDataStore::getNode):
823
824 2012-11-19  Kentaro Hara  <haraken@chromium.org>
825
826         [JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm
827         https://bugs.webkit.org/show_bug.cgi?id=102757
828
829         Reviewed by Adam Barth.
830
831         In CodeGeneratorJS.pm $implClassName and $interfaceName are
832         equivalent. We're using them interchangeably. We should replace
833         $implClassName with $interfaceName.
834
835         No tests. No change in behavior.
836
837         * bindings/scripts/CodeGeneratorJS.pm:
838         (AddClassForwardIfNeeded):
839         (GenerateGetOwnPropertySlotBody):
840         (GenerateGetOwnPropertyDescriptorBody):
841         (GenerateHeader):
842         (GenerateOverloadedFunction):
843         (GenerateImplementation):
844         (GenerateParametersCheck):
845         (GenerateImplementationFunctionCall):
846         (NativeToJSValue):
847
848 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
849
850         Port DragDataWin.cpp to WinCE
851         https://bugs.webkit.org/show_bug.cgi?id=97803
852
853         Reviewed by Brent Fulgham.
854
855         Add two simple #if OS(WINCE) to DragDataWin.cpp, so it can be used by the WinCE port too.
856
857         * PlatformWinCE.cmake:
858         * platform/win/DragDataWin.cpp:
859         (WebCore::DragData::containsFiles):
860         (WebCore::DragData::numberOfFiles):
861         (WebCore::DragData::asFilenames):
862         * platform/wince/DragDataWinCE.cpp: Removed.
863
864 2012-11-19  Pan Deng  <pan.deng@intel.com>
865
866         [Web Inspector] This patch makes script line number search-able in Timeline panel.
867         https://bugs.webkit.org/show_bug.cgi?id=101910.
868
869         Reviewed by Pavel Feldman.
870
871         Script line number is visible in Timeline panel, however, not search-able. This patch makes it search-able.
872
873         No new tests. 
874
875         * inspector/front-end/TimelinePanel.js:
876         (WebInspector.TimelineRecordListRow.prototype.update):
877         (WebInspector.TimelineRecordListRow.testContentMatching):
878         * inspector/front-end/TimelinePresentationModel.js:
879         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
880         (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
881         (WebInspector.TimelinePresentationModel.Record.prototype.detailsNode):
882         (WebInspector.TimelinePresentationModel.Record.prototype._createSpanWithText):
883         (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
884
885 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
886
887         Remove unneeded null check in NodeRendererFactory::createRendererIfNeeded
888         https://bugs.webkit.org/show_bug.cgi?id=102765
889
890         Reviewed by Ojan Vafai.
891
892         If parentRenderer() was null then we return early from
893         createRendererIfNeeded() because shouldCreateRenderer() will return false
894         so there's no reason to check for it again.
895
896         Additionally if either parentRenderer() or style() is null then
897         implementations of rendererIsNeeded() will crash, so add asserts to
898         make this assumption more clear.
899
900         No new tests, just simplification.
901
902         * dom/NodeRenderingContext.cpp:
903         (WebCore::NodeRendererFactory::createRendererIfNeeded):
904
905 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
906
907         [Refactoring] Remove WebCore::isInsertionPoint(Node*)
908         https://bugs.webkit.org/show_bug.cgi?id=102756
909
910         Reviewed by Hajime Morita.
911
912         Now that WebCore::isInsertionPoint(Node* node) does nothing special. We can remove this.
913
914         No new tests, simple refactoring.
915
916         * dom/ComposedShadowTreeWalker.cpp:
917         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
918         * dom/ContainerNode.cpp:
919         (WebCore::childAttachedAllowedWhenAttachingChildren):
920         * html/shadow/ContentDistributor.cpp:
921         (WebCore::ContentDistributor::invalidate):
922         * html/shadow/InsertionPoint.cpp:
923         (WebCore::InsertionPoint::isActive):
924         * html/shadow/InsertionPoint.h:
925         (WebCore::toInsertionPoint):
926         (WebCore::isActiveInsertionPoint):
927         (WebCore::isLowerEncapsulationBoundary):
928         (WebCore::parentNodeForDistribution):
929         * testing/Internals.cpp:
930         (WebCore::Internals::isValidContentSelect):
931
932 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
933
934         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <progress> ElementShadow.
935         https://bugs.webkit.org/show_bug.cgi?id=101703
936
937         Reviewed by Hajime Morita.
938
939         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
940         setPseudo()/pseudo() instead.
941
942         No new tests, simple refactoring.
943
944         * html/shadow/ProgressShadowElement.cpp:
945         (WebCore::ProgressInnerElement::ProgressInnerElement):
946         * html/shadow/ProgressShadowElement.h:
947         (ProgressInnerElement):
948         (WebCore::ProgressBarElement::ProgressBarElement):
949         (ProgressBarElement):
950         (WebCore::ProgressValueElement::ProgressValueElement):
951
952 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
953
954         Unreviewed. Fix Chromium Debug compilation after r135230.
955         https://bugs.webkit.org/show_bug.cgi?id=102158
956
957         Removed ASSERT that used instance field in a static method.
958
959         * bindings/v8/DOMDataStore.h:
960         (WebCore::DOMDataStore::getWrapperFromObject):
961
962 2012-11-19  Chris Guan  <chris.guan@torchmobile.com.cn>
963
964         [Blackberry] When a frame is being detached, cancel all its network jobs.
965         https://bugs.webkit.org/show_bug.cgi?id=102758
966
967         Reviewed by George Staikos.
968
969         I use FrameDestructionObserver to refactor Networkjob code.
970         NetworkJob is inheriting from FrameDestructionObserver to be
971         aware of frame's destroyed. When a frame is being detached,
972         the willDetachPage() can be called in which we can cancel 
973         the job. This patch reverted the fix for RIM PR134207 as well.
974
975         Manually test is on 
976         "http://www.reuters.com/article/2012/01/27/us-greece-idUSTRE80P0DE20120127"
977         which triggers a ping loader.
978
979         No behavior changed, no new layout tests.
980
981         * platform/network/blackberry/NetworkJob.cpp:
982         (WebCore::NetworkJob::NetworkJob):
983         (WebCore::NetworkJob::initialize):
984         (WebCore::NetworkJob::handleNotifyHeaderReceived):
985         (WebCore::NetworkJob::startNewJobWithRequest):
986         (WebCore::NetworkJob::frameDestroyed):
987         (WebCore):
988         (WebCore::NetworkJob::willDetachPage):
989         * platform/network/blackberry/NetworkJob.h:
990         (NetworkJob):
991         * platform/network/blackberry/NetworkManager.cpp:
992         (WebCore::NetworkManager::startJob):
993         * platform/network/blackberry/NetworkManager.h:
994         (NetworkManager):
995         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
996         (WebCore::ResourceHandle::start):
997         (WebCore::ResourceHandle::loadResourceSynchronously):
998
999 2012-11-19  Matt Falkenhagen  <falken@chromium.org>
1000
1001         Implement the new stacking layer needed by the Fullscreen API and the new <dialog> element
1002         https://bugs.webkit.org/show_bug.cgi?id=84796
1003
1004         Reviewed by Julien Chaffraix.
1005
1006         This adds the top layer element stack to Document. The Fullscreen
1007         specification mandates that we track the ordering of the DOM nodes in
1008         the top layer, not the renderers. That makes it hard to implement on
1009         the rendering side only.
1010
1011         Elements in the top layer get a layer. Layers in the top layer are
1012         added to the root layer's child list after normal layers and in the
1013         order of the top layer stack. This way, the top layer appears above
1014         all other stacking contexts and in the desired order.
1015
1016         In addition, top layer renderers are added as children of RenderView
1017         in top layer order. This is to satisfy requirements such as the
1018         containing block of an element in the top layer is the initial
1019         containing block. It also allows RenderLayer to know the proper
1020         stacking order of the layers without going directly from the top layer
1021         elements to their layers.
1022
1023         So far, only modal dialog elements can be added to the top layer.
1024         The plan is to make the Fullscreen API also use the top layer.
1025
1026         Tests: fast/dom/HTMLDialogElement/top-layer-containing-block.html
1027                fast/dom/HTMLDialogElement/top-layer-display-none.html
1028                fast/dom/HTMLDialogElement/top-layer-nesting.html
1029                fast/dom/HTMLDialogElement/top-layer-stacking-dynamic.html
1030                fast/dom/HTMLDialogElement/top-layer-stacking.html
1031
1032         * WebCore.exp.in:
1033         * css/StyleResolver.cpp:
1034         (WebCore::StyleResolver::adjustRenderStyle): Elements in the top layer have a stacking context.
1035         * dom/Document.cpp:
1036         (WebCore):
1037         (WebCore::Document::addToTopLayer):
1038         (WebCore::Document::removeFromTopLayer):
1039         * dom/Document.h:
1040         (Document):
1041         (WebCore::Document::topLayerElements): Add the top layer element stack to Document.
1042         * dom/Element.cpp:
1043         (WebCore::Element::removedFrom):
1044         (WebCore):
1045         (WebCore::Element::isInTopLayer):
1046         (WebCore::Element::setIsInTopLayer):
1047         * dom/Element.h:
1048         * dom/ElementRareData.h:
1049         (ElementRareData):
1050         * dom/Node.cpp:
1051         (WebCore::Node::detach): Add an exception to the assert since top layer elements and their descendants are moved from their
1052         regular position in the render tree.
1053         * dom/NodeRareData.h:
1054         (WebCore::NodeRareData::NodeRareData):
1055         (NodeRareData):
1056         (WebCore::NodeRareData::isInTopLayer):
1057         (WebCore::NodeRareData::setIsInTopLayer):
1058         * dom/NodeRenderingContext.cpp:
1059         (WebCore):
1060         (WebCore::adjustInsertionPointForTopLayerElement):
1061         (WebCore::NodeRendererFactory::createRendererIfNeeded): Add renderers for top layer elements as children of RenderView, and
1062         in top layer stacking order.
1063         * html/HTMLDialogElement.cpp:
1064         (WebCore::HTMLDialogElement::close):
1065         (WebCore::HTMLDialogElement::showModal):
1066         * rendering/RenderLayer.cpp:
1067         (WebCore):
1068         (WebCore::RenderLayer::isInTopLayer):
1069         (WebCore::RenderLayer::isInTopLayerSubtree):
1070         (WebCore::RenderLayer::rebuildZOrderLists): Add the top layer stack after normal layer collection.
1071         (WebCore::RenderLayer::collectLayers): Avoid adding layers for top layer elements during normal layer collection.
1072         * rendering/RenderLayer.h:
1073         (RenderLayer):
1074
1075 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1076
1077         In CodeGeneratorObj.pm we should rename $dataNode to $interface.
1078         https://bugs.webkit.org/show_bug.cgi?id=102749
1079
1080         Reviewed by Adam Barth.
1081
1082         $dataNode is misnamed. It should be renamed to $interface.
1083
1084         No tests. No change in behavior.
1085
1086         * bindings/scripts/CodeGeneratorObjC.pm:
1087         (GenerateInterface):
1088         (GetParentImplClassName):
1089         (GetParentAndProtocols):
1090         (GenerateHeader):
1091         (GenerateImplementation):
1092
1093 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1094
1095         In CodeGeneratorV8.pm, we should rename $dataNode to $interface
1096         https://bugs.webkit.org/show_bug.cgi?id=102747
1097
1098         Reviewed by Adam Barth.
1099
1100         $dataNode is misnamed. It should be $interface.
1101
1102         No tests. No change in behavior.
1103
1104         * bindings/scripts/CodeGeneratorV8.pm:
1105         (GenerateInterface):
1106         (NeedsCustomOpaqueRootForGC):
1107         (GetGenerateIsReachable):
1108         (GetCustomIsReachable):
1109         (GenerateOpaqueRootForGC):
1110         (GenerateHeader):
1111         (GetInternalFields):
1112         (GenerateHeaderCustomInternalFieldIndices):
1113         (GenerateHeaderNamedAndIndexedPropertyAccessors):
1114         (GenerateHeaderCustomCall):
1115         (IsConstructable):
1116         (GenerateConstructorGetter):
1117         (GenerateNormalAttrGetter):
1118         (GenerateReplaceableAttrSetter):
1119         (GenerateNormalAttrSetter):
1120         (GenerateOverloadedFunctionCallback):
1121         (GenerateFunctionCallback):
1122         (GenerateArgumentsCountCheck):
1123         (GenerateOverloadedConstructorCallback):
1124         (GenerateSingleConstructorCallback):
1125         (GenerateConstructorCallback):
1126         (GenerateEventConstructorCallback):
1127         (GenerateTypedArrayConstructorCallback):
1128         (GenerateNamedConstructorCallback):
1129         (GenerateBatchedAttributeData):
1130         (IsStandardFunction):
1131         (GenerateNonStandardFunction):
1132         (GenerateImplementationIndexer):
1133         (GenerateImplementationNamedPropertyGetter):
1134         (GenerateImplementationCustomCall):
1135         (GenerateImplementationMasqueradesAsUndefined):
1136         (GenerateImplementation):
1137         (GenerateHeaderContentHeader):
1138         (GenerateImplementationContentHeader):
1139         (GenerateCallbackHeader):
1140         (GenerateCallbackImplementation):
1141         (BaseInterfaceName):
1142         (GenerateToV8Converters):
1143         (GetNativeTypeForConversions):
1144         (GetTypeNameOfExternalTypedArray):
1145         (WriteData):
1146
1147 2012-11-19  Keishi Hattori  <keishi@webkit.org>
1148
1149         Move in animation should be disabled until the calendar picker is loaded.
1150         https://bugs.webkit.org/show_bug.cgi?id=102661
1151
1152         Reviewed by Kent Tamura.
1153
1154         On weeks where the first day is in the previous month (e.x. 2013-W01)
1155         the move in animation happens when you open the calendar picker. This
1156         patch disables the move in animation until the calendar picker is fully
1157         loaded.
1158
1159         No new tests.
1160
1161         * Resources/pagepopups/calendarPicker.js:
1162         (CalendarPicker):
1163         (CalendarPicker.prototype._handleWindowResize):
1164         (DaysTable.prototype._startMoveInAnimation):
1165
1166 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
1167
1168         Clean up loop in NodeRenderingContext::nextRenderer and previousRenderer
1169         https://bugs.webkit.org/show_bug.cgi?id=102743
1170
1171         Reviewed by Hajime Morita.
1172
1173         Clean up while (true) loops in NodeRenderingContext reducing the
1174         amount of code and the need for ASSERT_NOT_REACHED.
1175
1176         No new tests, just simplifcation.
1177
1178         * dom/NodeRenderingContext.cpp:
1179         (WebCore::NodeRenderingContext::nextRenderer):
1180         (WebCore::NodeRenderingContext::previousRenderer):
1181
1182 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1183
1184         [Shadow] attribute pseudo should return empty string instead of null when nothing is specified.
1185         https://bugs.webkit.org/show_bug.cgi?id=102753
1186
1187         Reviewed by Hajime Morita.
1188
1189         The ShadowDOM spec is changed so that attribute 'pseudo' returns empty string instead of null when
1190         no value is set.
1191
1192         Test: fast/dom/shadow/pseudo-attribute.html
1193
1194         * dom/Element.idl:
1195
1196 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1197
1198         In CodeGeneratorGObject.pm we should rename $dataNode to $interface
1199         https://bugs.webkit.org/show_bug.cgi?id=102751
1200
1201         Reviewed by Adam Barth.
1202
1203         $dataNode is misnamed. It should be $interface.
1204
1205         No tests. No change in behavior.
1206
1207         * bindings/scripts/CodeGeneratorGObject.pm:
1208         (GetParentClassName):
1209         (GetParentGObjType):
1210         (GenerateProperties):
1211         (GenerateFunctions):
1212         (GenerateCFile):
1213         (GenerateEventTargetIface):
1214         (Generate):
1215         (WriteData):
1216         (GenerateInterface):
1217
1218 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1219
1220         In CodeGenerator.pm we should rename $dataNode to $interface
1221         https://bugs.webkit.org/show_bug.cgi?id=102754
1222
1223         Reviewed by Adam Barth.
1224
1225         $dataNode is misnamed. It should be $interface.
1226
1227         No tests. No change in behavior.
1228
1229         * bindings/scripts/CodeGenerator.pm:
1230         (ForAllParents):
1231         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1232         (FindSuperMethod):
1233         (IsConstructorTemplate):
1234         (LinkOverloadedFunctions):
1235         (GenerateCompileTimeCheckForEnumsIfNeeded):
1236         (GetVisibleInterfaceName):
1237         (IsSubType):
1238
1239 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1240
1241         In CodeGeneratorCPP.pm we should rename $dataNode to $interface
1242         https://bugs.webkit.org/show_bug.cgi?id=102752
1243
1244         Reviewed by Adam Barth.
1245
1246         $dataNode is misnamed. It should be $interface.
1247
1248         No tests. No change in behavior.
1249
1250         * bindings/scripts/CodeGeneratorCPP.pm:
1251         (GenerateInterface):
1252         (GetParentImplClassName):
1253         (GetParent):
1254         (GenerateHeader):
1255         (GenerateImplementation):
1256
1257 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1258
1259         In CodeGeneratorJS.pm we should rename $dataNode to $interface
1260         https://bugs.webkit.org/show_bug.cgi?id=102748
1261
1262         Reviewed by Adam Barth.
1263
1264         $dataNode is misnamed. It should be $interface.
1265
1266         No tests. No change in behavior.
1267
1268         * bindings/scripts/CodeGeneratorJS.pm:
1269         (GenerateInterface):
1270         (GetParentClassName):
1271         (GetGenerateIsReachable):
1272         (GetCustomIsReachable):
1273         (GenerateGetOwnPropertySlotBody):
1274         (GenerateGetOwnPropertyDescriptorBody):
1275         (GenerateHeaderContentHeader):
1276         (GenerateImplementationContentHeader):
1277         (ShouldGenerateToJSDeclaration):
1278         (ShouldGenerateToJSImplementation):
1279         (GenerateHeader):
1280         (GenerateAttributesHashTable):
1281         (GenerateOverloadedFunction):
1282         (GenerateImplementation):
1283         (GenerateArgumentsCountCheck):
1284         (GenerateParametersCheck):
1285         (GenerateCallbackHeader):
1286         (GenerateCallbackImplementation):
1287         (WriteData):
1288         (GenerateConstructorDeclaration):
1289         (GenerateConstructorDefinition):
1290         (IsConstructable):
1291
1292 2012-11-19  Adam Barth  <abarth@webkit.org>
1293
1294         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
1295         https://bugs.webkit.org/show_bug.cgi?id=102158
1296
1297         Reviewed by Eric Seidel.
1298
1299         This patch is an incremental step towards fully merging the Node code
1300         path with the general code path. After this patch, at least Nodes flow
1301         through the same class.
1302
1303         * Modules/indexeddb/IDBTransactionCoordinator.h:
1304         * bindings/scripts/CodeGeneratorV8.pm:
1305         (GenerateHeader):
1306         (GenerateToV8Converters):
1307         * bindings/v8/DOMDataStore.h:
1308         (WebCore::DOMDataStore::getNode):
1309         (DOMDataStore):
1310         (WebCore::DOMDataStore::getWrapperFromObject):
1311         * bindings/v8/DOMWrapperWorld.cpp:
1312         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
1313         (WebCore):
1314         * bindings/v8/DOMWrapperWorld.h:
1315         (WebCore):
1316         (DOMWrapperWorld):
1317         * bindings/v8/V8DOMWrapper.h:
1318         (V8DOMWrapper):
1319
1320 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1321
1322         In the IDL parser, we should rename $dataNode to $interface
1323         https://bugs.webkit.org/show_bug.cgi?id=102746
1324
1325         Reviewed by Adam Barth.
1326
1327         $dataNode is misnamed. It should be $interface.
1328
1329         No tests. No change in behavior.
1330
1331         * bindings/scripts/IDLParser.pm:
1332         (parseInterface):
1333         (parseException):
1334         (parseAttributeOrOperationRest):
1335         (parseOperationOrIterator):
1336         (parseSpecialOperation):
1337         (parseInterfaceOld):
1338         (parseExceptionOld):
1339         (parseAttributeOrOperationOrIteratorOld):
1340         (parseAttributeOrOperationRestOld):
1341         (applyMemberList):
1342         (applyExtendedAttributeList):
1343         * bindings/scripts/generate-bindings.pl:
1344         * bindings/scripts/preprocess-idls.pl:
1345         (checkIDLAttributes):
1346
1347 2012-11-19  Adam Klein  <adamk@chromium.org>
1348
1349         MutationObserver wrapper should not be collected while still observing
1350         https://bugs.webkit.org/show_bug.cgi?id=102328
1351
1352         Reviewed by Adam Barth.
1353
1354         Use the new opaqueRootForGC helper in V8GCController to put each
1355         MutationObserver wrapper in the same object group as the nodes it's
1356         observing.
1357
1358         Only includes V8 impl for now, JSC impl coming soon.
1359
1360         Tests: fast/mutation/observer-wrapper-dropoff-transient.html
1361                fast/mutation/observer-wrapper-dropoff.html
1362
1363         * bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
1364         with a FIXME to move this out once we update the opaque roots API.
1365         * dom/MutationObserver.cpp:
1366         (WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
1367         to the GC controller.
1368         (WebCore):
1369         * dom/MutationObserver.h:
1370         * dom/MutationObserverRegistration.cpp:
1371         (WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
1372         (WebCore):
1373         * dom/MutationObserverRegistration.h:
1374         (MutationObserverRegistration):
1375
1376 2012-11-19  Tony Chang  <tony@chromium.org>
1377
1378         Move more non-settings out of InternalSettings
1379         https://bugs.webkit.org/show_bug.cgi?id=102711
1380
1381         Reviewed by Adam Barth.
1382
1383         Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
1384         from internal.settings since they are already exposed by window.internals (in
1385         fact, no one calls the internal.settings version).
1386
1387         Move setUsesOverlayScrollbars from internals.settings to internals because it is
1388         a global (static) setting and not tied to the lifetime of the Settings object.
1389
1390         No new tests, there should be no behavior change since this is a refactor.
1391
1392         * testing/InternalSettings.cpp:
1393         (WebCore::InternalSettings::reset): Remove custom reset code.
1394         (WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
1395         * testing/InternalSettings.h:
1396         * testing/InternalSettings.idl: Remove unnecessary methods.
1397         * testing/Internals.cpp:
1398         (WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
1399         (WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
1400         (WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
1401         (WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
1402         (WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.
1403
1404 2012-11-19  David Grogan  <dgrogan@chromium.org>
1405
1406         IndexedDB: Complex series of opens/deleteDatabase fails an ASSERT
1407         https://bugs.webkit.org/show_bug.cgi?id=101810
1408
1409         Reviewed by Tony Chang.
1410
1411         Tests - storage/indexeddb/deletedatabase-delayed-by-versionchange.html
1412
1413         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1414         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1415         The condition tested by this assert is a valid state.
1416
1417 2012-11-19  Peter Wang  <peter.wang@torchmobile.com.cn>
1418
1419         Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
1420         https://bugs.webkit.org/show_bug.cgi?id=102637
1421
1422         Reviewed by Timothy Hatcher.
1423
1424         Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.
1425
1426         No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
1427         worker inspector window.
1428
1429         * bindings/js/ScriptDebugServer.cpp:
1430         (WebCore::ScriptDebugServer::createCallFrame):
1431         (WebCore::ScriptDebugServer::callEvent):
1432         (WebCore::ScriptDebugServer::willExecuteProgram):
1433         * bindings/js/ScriptDebugServer.h:
1434         (ScriptDebugServer):
1435         * bindings/js/WorkerScriptDebugServer.cpp:
1436         (WebCore::WorkerScriptDebugServer::willExecuteProgram):
1437         (WebCore):
1438         * bindings/js/WorkerScriptDebugServer.h:
1439         (WorkerScriptDebugServer):
1440
1441 2012-11-19  Pratik Solanki  <psolanki@apple.com>
1442
1443         For single element arrays use the pointer into the CFDataRef instead of copying data
1444         https://bugs.webkit.org/show_bug.cgi?id=102306
1445
1446         Reviewed by Brent Fulgham.
1447
1448         Address review comments for slightly nicer code.
1449
1450         * platform/SharedBuffer.cpp:
1451         (WebCore::SharedBuffer::data):
1452         * platform/cf/SharedBufferCF.cpp:
1453         (WebCore::SharedBuffer::singleDataArrayBuffer):
1454
1455 2012-11-19  Chris Rogers  <crogers@google.com>
1456
1457         Remove empirical bass-boost for HRTF spatialization
1458         https://bugs.webkit.org/show_bug.cgi?id=102745
1459
1460         Reviewed by Kenneth Russell.
1461
1462         Some empirically-based post-processing is being removed so that we'll
1463         now process with the exact HRTF impulse response measurements.
1464         Listening tests have determined that this post-processing is not necessary.
1465
1466         * platform/audio/HRTFElevation.cpp:
1467         (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
1468         * platform/audio/HRTFKernel.cpp:
1469         (WebCore::HRTFKernel::HRTFKernel):
1470         * platform/audio/HRTFKernel.h:
1471         (WebCore::HRTFKernel::create):
1472         (HRTFKernel):
1473
1474 2012-11-19  Adam Barth  <abarth@webkit.org>
1475
1476         DISALLOW_COPY_AND_ASSIGN is not a WebKit macro
1477         https://bugs.webkit.org/show_bug.cgi?id=102755
1478
1479         Reviewed by Sam Weinig.
1480
1481         WTF_MAKE_NONCOPYABLE is the idiom we use in WebKit.  I don't understand
1482         how this compiles.
1483
1484         * Modules/indexeddb/IDBBackingStore.h:
1485         (RecordIdentifier):
1486
1487 2012-11-19  Chris Rogers  <crogers@google.com>
1488
1489         Implement .detune attribute for BiquadFilterNode
1490         https://bugs.webkit.org/show_bug.cgi?id=102737
1491
1492         Reviewed by Kenneth Russell.
1493
1494         Similar to OscillatorNode, BiquadFilterNode must have a .detune attribute
1495
1496         Tests changed: webaudio/biquad-lowpass.html
1497
1498         * Modules/webaudio/BiquadDSPKernel.cpp:
1499         (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
1500         * Modules/webaudio/BiquadFilterNode.h:
1501         (WebCore::BiquadFilterNode::detune):
1502         * Modules/webaudio/BiquadFilterNode.idl:
1503         * Modules/webaudio/BiquadProcessor.cpp:
1504         (WebCore::BiquadProcessor::BiquadProcessor):
1505         (WebCore::BiquadProcessor::checkForDirtyCoefficients):
1506         * Modules/webaudio/BiquadProcessor.h:
1507         (WebCore::BiquadProcessor::parameter4):
1508         (BiquadProcessor):
1509
1510 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
1511
1512         [WIN] Add WebCore::getRegistryValue()
1513         https://bugs.webkit.org/show_bug.cgi?id=97828
1514
1515         Reviewed by Brent Fulgham.
1516
1517         The new function adds an abstraction to SHGetValue(), which isn't available on WinCE.
1518         Changing the existing files allows us to share more code between WinCE and WinNT in a next step.
1519
1520         * platform/win/MIMETypeRegistryWin.cpp:
1521         (WebCore::mimeTypeForExtension):
1522         (WebCore):
1523         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1524         * platform/win/WindowsExtras.h:
1525         (WebCore::getRegistryValue):
1526         (WebCore):
1527         * plugins/win/PluginDatabaseWin.cpp:
1528         (WebCore::addPluginPathsFromRegistry):
1529         (WebCore::addWindowsMediaPlayerPluginDirectory):
1530         (WebCore::addQuickTimePluginDirectory):
1531         (WebCore::addAdobeAcrobatPluginDirectory):
1532         (WebCore::addJavaPluginDirectory):
1533
1534 2012-11-19  Alpha Lam  <hclam@chromium.org>
1535
1536         Not reviewed. Build fix for Chromium.
1537
1538         Added SkTypes.h includes for Windows.
1539
1540         * platform/graphics/chromium/ImageDecodingStore.h:
1541         * platform/graphics/chromium/ImageFrameGenerator.h:
1542         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1543
1544 2012-11-19  Adam Barth  <abarth@webkit.org>
1545
1546         [V8] Simplify V8DOMWindowShell::getEntered
1547         https://bugs.webkit.org/show_bug.cgi?id=102156
1548
1549         Reviewed by Eric Seidel.
1550
1551         This patch is an incremental step towards merging
1552         V8DOMWrapper::getCachedWrapper(Node*) with the general case for looking
1553         up DOM wrappers. In order to merge with the general case, we need to
1554         get down to calling v8::Context::GetCurrent once, which means we need
1555         to factor the call to v8::Context::GetEntered out of V8DOMWindowShell.
1556
1557         As a side-benefit to this change, we can remove some redundant checks
1558         for isolatedWorldsExist and v8::Context::InContext from callers of
1559         V8DOMWindowShell::getEntered, including in getCachedWrapper.
1560
1561         * bindings/v8/DOMDataStore.cpp:
1562         (WebCore::DOMDataStore::current):
1563         * bindings/v8/ScriptController.cpp:
1564         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
1565         (WebCore::ScriptController::currentWorldContext):
1566         * bindings/v8/V8DOMWindowShell.h:
1567         (WebCore::V8DOMWindowShell::isolated):
1568         (WebCore::V8DOMWindowShell::perContextData):
1569         (WebCore::V8DOMWindowShell::world):
1570         (V8DOMWindowShell):
1571         * bindings/v8/V8DOMWrapper.h:
1572         (WebCore::V8DOMWrapper::getCachedWrapper):
1573         * bindings/v8/WorldContextHandle.cpp:
1574         (WebCore::WorldContextHandle::WorldContextHandle):
1575         * bindings/v8/custom/V8DocumentCustom.cpp:
1576         (WebCore::V8Document::dispatchWrapCustom):
1577         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1578         (WebCore::V8HTMLDocument::dispatchWrapCustom):
1579         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1580         (WebCore::V8SVGDocument::dispatchWrapCustom):
1581         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
1582         (WebCore::V8XMLHttpRequest::constructorCallback):
1583
1584 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1585
1586         Rename idlDocument::classes to idlDocument::interfaces in the IDL parser
1587         https://bugs.webkit.org/show_bug.cgi?id=102671
1588
1589         Reviewed by Adam Barth.
1590
1591         Most part of code generators use 'interface'. The spec uses 'interface'.
1592         Thus, the IDL parser should use 'interface' instead of 'class'.
1593
1594         No tests. No change in behavior.
1595
1596         * bindings/scripts/CodeGenerator.pm:
1597         (ProcessDocument):
1598         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1599         (ParseInterface):
1600         * bindings/scripts/CodeGeneratorCPP.pm:
1601         (GenerateImplementation):
1602         * bindings/scripts/CodeGeneratorJS.pm:
1603         (GenerateHeader):
1604         * bindings/scripts/CodeGeneratorObjC.pm:
1605         (GenerateImplementation):
1606         * bindings/scripts/CodeGeneratorV8.pm:
1607         (GenerateHeader):
1608         (GenerateFunctionCallback):
1609         * bindings/scripts/IDLParser.pm:
1610         (Parse):
1611         (parseModule):
1612         * bindings/scripts/generate-bindings.pl:
1613
1614 2012-11-19  Eric Carlson  <eric.carlson@apple.com>
1615
1616         HTMLMediaElement::configureTextTracks should configure all text tracks
1617         https://bugs.webkit.org/show_bug.cgi?id=102561
1618
1619         Reviewed by Philippe Normand.
1620
1621         No new tests, track-mode-not-changed-by-new-track.html was updated to test the changes.
1622
1623         * html/HTMLMediaElement.cpp:
1624         (WebCore::HTMLMediaElement::textTrackModeChanged): HTMLTrackElement -> TextTrack.
1625         (WebCore::HTMLMediaElement::willRemoveTrack): Ditto.
1626         (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
1627         (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
1628         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
1629         * html/HTMLMediaElement.h:
1630
1631         * html/HTMLTrackElement.cpp:
1632         (WebCore::HTMLTrackElement::HTMLTrackElement): Move hasBeenConfigured down to TextTrack.
1633         (WebCore::HTMLTrackElement::parseAttribute): isDefault is stored on TextTrack.
1634         (WebCore::HTMLTrackElement::ensureTrack): LoadableTextTrack constructor doesn't take 
1635             "default" argument.
1636         * html/HTMLTrackElement.h:
1637
1638         * html/track/LoadableTextTrack.cpp:
1639         (WebCore::LoadableTextTrack::LoadableTextTrack): Initialize m_isDefault to false.
1640         * html/track/LoadableTextTrack.h: 
1641         (WebCore::TextTrack::isDefault): Override base class implementation, because a track element
1642             can be flagged as default.
1643         (WebCore::TextTrack::setIsDefault): Ditto.
1644
1645         * html/track/TextTrack.cpp:
1646         (WebCore::TextTrack::TextTrack): Initialize m_hasBeenConfigured.
1647         * html/track/TextTrack.h:
1648         (WebCore::TextTrack::hasBeenConfigured): New, moved from HTMLTrackElement so other code doesn't
1649             need know what type of track it is calling.
1650         (WebCore::TextTrack::setHasBeenConfigured): Ditto.
1651         (WebCore::TextTrack::isDefault): Base, do nothing, implementation because only LoadableTextTrack
1652             can be "default".
1653         (WebCore::TextTrack::setIsDefault): Ditto.
1654
1655 2012-11-19  Huang Dongsung  <luxtella@company100.net>
1656
1657         Coordinated Graphics: refactor syncCanvas to handle the lifecycle clearly.
1658         https://bugs.webkit.org/show_bug.cgi?id=102664
1659
1660         Reviewed by Noam Rosenthal.
1661
1662         As refactoring Coordinated Graphics in WebKit2, code related to
1663         TextureMapper is changed.
1664
1665         No new tests. Refactoring only.
1666
1667         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1668         (GraphicsContext3DPrivate):
1669         (WebCore::GraphicsContext3DPrivate::platformLayerSize):
1670             We need to know the size of a texture mapper platform layer.
1671         (WebCore):
1672         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
1673           Because CoordinatedGraphicsLayer handles the canvas GraphicsSurface
1674           lifecycle, TextureMapperSurfaceBackingStore does not need to know
1675           GraphicsSurfaceToken.
1676         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
1677         (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
1678         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
1679         * platform/graphics/texmap/TextureMapperBackingStore.h:
1680         (TextureMapperSurfaceBackingStore):
1681         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
1682         (WebCore::TextureMapperPlatformLayer::platformLayerSize):
1683
1684 2012-11-19  Alpha Lam  <hclam@chromium.org>
1685
1686         [chromium] Lazy image decoding without cache
1687         https://bugs.webkit.org/show_bug.cgi?id=102021
1688
1689         Reviewed by Stephen White.
1690
1691         Goal of this change is to make image decoding in ImageFrameGenerator
1692         completely lazy without caching. Image decoding logic is then removed
1693         from ImageDecodingStore.
1694
1695         These methods are removed.
1696         - ImageDecodingStore::lockPixels
1697         - ImageDecodingStore::unlockPixels
1698
1699         Instead image decoding and scaling is done in
1700         ImageFrameGenerator::decodeAndScale().
1701
1702         Unit tests are updated:
1703         DeferredImageDecoderTest::drawIntoSkPicture
1704         DeferredImageDecoderTest::drawScaledIntoSkPicture
1705
1706         Also covered by layout tests:
1707         platform/chromium/virtual/deferred
1708
1709         * platform/graphics/chromium/DeferredImageDecoder.cpp:
1710         (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
1711         * platform/graphics/chromium/ImageDecodingStore.h:
1712         (ImageDecodingStore):
1713         * platform/graphics/chromium/ImageFrameGenerator.cpp:
1714         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
1715         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
1716         (WebCore::ImageFrameGenerator::setData):
1717         (WebCore::ImageFrameGenerator::decodeAndScale):
1718         * platform/graphics/chromium/ImageFrameGenerator.h:
1719         (WebCore::ImageFrameGenerator::create):
1720         (ImageFrameGenerator):
1721         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
1722         (WebCore::LazyDecodingPixelRef::onLockPixels):
1723         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
1724         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1725         (LazyDecodingPixelRef):
1726
1727 2012-11-19  Abhishek Arya  <inferno@chromium.org>
1728
1729         Crash in ApplyStyleCommand::cleanupUnstyledAppleStyleSpans.
1730         https://bugs.webkit.org/show_bug.cgi?id=100150
1731
1732         Reviewed by Ryosuke Niwa.
1733
1734         RefPtr startDummySpanAncestor and endDummySpanAncestor since
1735         they can go away inside fixRangeAndApplyInlineStyle call.
1736
1737         Test: editing/style/apply-style-crash.html
1738
1739         * editing/ApplyStyleCommand.cpp:
1740         (WebCore::ApplyStyleCommand::applyInlineStyle):
1741
1742 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1743
1744         Unreviewed, rolling out r135172.
1745         http://trac.webkit.org/changeset/135172
1746         https://bugs.webkit.org/show_bug.cgi?id=102710
1747
1748         Broke some WebKit2 api tests :( (Requested by japhet on
1749         #webkit).
1750
1751         * loader/DocumentLoader.cpp:
1752         (WebCore::DocumentLoader::DocumentLoader):
1753         (WebCore::DocumentLoader::~DocumentLoader):
1754         (WebCore::DocumentLoader::finishedLoading):
1755         (WebCore::DocumentLoader::clearMainResourceLoader):
1756         (WebCore::DocumentLoader::isLoadingInAPISense):
1757         (WebCore::DocumentLoader::documentURL):
1758         (WebCore::DocumentLoader::isLoadingMainResource):
1759         (WebCore::DocumentLoader::startLoadingMainResource):
1760         * loader/DocumentLoader.h:
1761         (DocumentLoader):
1762         * loader/FrameLoader.cpp:
1763         (WebCore::FrameLoader::FrameLoader):
1764         (WebCore::FrameLoader::init):
1765         * loader/FrameLoaderStateMachine.cpp:
1766         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
1767         * loader/FrameLoaderStateMachine.h:
1768         * loader/MainResourceLoader.cpp:
1769         (WebCore::shouldLoadAsEmptyDocument):
1770         (WebCore):
1771         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1772         (WebCore::MainResourceLoader::didReceiveResponse):
1773         (WebCore::MainResourceLoader::didFinishLoading):
1774         (WebCore::MainResourceLoader::handleEmptyLoad):
1775         (WebCore::MainResourceLoader::loadNow):
1776         (WebCore::MainResourceLoader::load):
1777         * loader/MainResourceLoader.h:
1778         (MainResourceLoader):
1779
1780 2012-11-19  Tony Chang  <tony@chromium.org>
1781
1782         Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
1783         https://bugs.webkit.org/show_bug.cgi?id=102548
1784
1785         Reviewed by Adam Barth.
1786
1787         This allows us to use Settings.in to generate the code for this.
1788
1789         I didn't rename any of the WebKit API methods with similar names because that would
1790         probably break consumers.  It turns out that the getter is only called from
1791         Source/WebKit/efl (most of the time, WebPreferences just sets values on Settings).
1792
1793         No new tests, just a refactor.
1794
1795         * WebCore.exp.in: Remove symbols that are now inlined.
1796         * WebCore.order: Remove symbols that are now inlined.
1797         * dom/Document.cpp:
1798         (WebCore::Document::initSecurityContext): Rename.
1799         * page/Settings.cpp:
1800         (WebCore::Settings::Settings): Remove code since it will be generated.
1801         * page/Settings.h:
1802         (Settings): Remove code since it will be generated.
1803         * page/Settings.in: Add entries to be generated.
1804         * page/SpatialNavigation.cpp:
1805         (WebCore::isSpatialNavigationEnabled): Fix caller.
1806
1807 2012-11-19  Yael Aharon  <yael.aharon@intel.com>
1808
1809         [EFL][TexMap] Complie error when considering warnings as errors
1810         https://bugs.webkit.org/show_bug.cgi?id=102705
1811
1812         Reviewed by Kenneth Rohde Christiansen.
1813
1814         Change GaussianKernelHalfWidth to unsigned.
1815
1816         No new tests.
1817
1818         * platform/graphics/texmap/TextureMapperGL.cpp:
1819         (WebCore):
1820
1821 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1822
1823         Unreviewed, rolling out r134830.
1824         http://trac.webkit.org/changeset/134830
1825         https://bugs.webkit.org/show_bug.cgi?id=102701
1826
1827         ActiveDOMObject is not applicable to MutationObservers due to
1828         being tied to a Document (Requested by aklein on #webkit).
1829
1830         * bindings/js/JSMutationObserverCustom.cpp:
1831         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
1832         * bindings/v8/custom/V8MutationObserverCustom.cpp:
1833         (WebCore::V8MutationObserver::constructorCallback):
1834         * dom/MutationObserver.cpp:
1835         (WebCore::MutationObserver::create):
1836         (WebCore::MutationObserver::MutationObserver):
1837         (WebCore::MutationObserver::observationStarted):
1838         (WebCore::MutationObserver::observationEnded):
1839         * dom/MutationObserver.h:
1840         (WebCore):
1841         * dom/MutationObserver.idl:
1842
1843 2012-11-19  Brady Eidson  <beidson@apple.com>
1844
1845         NetworkProcess Authentication.
1846         https://bugs.webkit.org/show_bug.cgi?id=102592
1847
1848         Reviewed by Alexey Proskuryakov.
1849
1850         Change an ASSERT that assumes there should be a resource handle which is not true with the NetworkProcess.
1851
1852         Also export some more stuff.
1853
1854         No new tests (Platform support, no effect in tested configs).
1855
1856         * WebCore.exp.in:
1857
1858         * loader/ResourceLoader.cpp:
1859         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Only ASSERT that the handle has a challenge if
1860           there is a handle.
1861
1862 2012-11-19  Alec Flett  <alecflett@chromium.org>
1863
1864         IndexedDB: simplify RecordIdentifier
1865         https://bugs.webkit.org/show_bug.cgi?id=102018
1866
1867         Reviewed by Tony Chang.
1868
1869         Make IDBBackingStore's RecordIdentifier be a simple
1870         class, existing only as an inline or stack-based instance.
1871         This makes much of the copy semantics more explicit, and
1872         removes refcounting from an object that only ever had a refcount
1873         of 1 or 2.
1874
1875         No new tests, just a refactor.
1876
1877         * Modules/indexeddb/IDBBackingStore.cpp:
1878         (WebCore::IDBBackingStore::putRecord):
1879         (WebCore::IDBBackingStore::deleteRecord):
1880         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
1881         (WebCore::IDBBackingStore::keyExistsInObjectStore):
1882         (WebCore::IDBBackingStore::putIndexDataForRecord):
1883         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
1884         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
1885         (ObjectStoreCursorImpl):
1886         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
1887         (WebCore::IndexKeyCursorImpl::recordIdentifier):
1888         (WebCore::IndexCursorImpl::recordIdentifier):
1889         * Modules/indexeddb/IDBBackingStore.h:
1890         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
1891         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
1892         (WebCore::IDBBackingStore::RecordIdentifier::reset):
1893         (RecordIdentifier):
1894         (IDBBackingStore):
1895         (WebCore::IDBBackingStore::Cursor::recordIdentifier):
1896         (WebCore::IDBBackingStore::Cursor::Cursor):
1897         (Cursor):
1898         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1899         (WebCore):
1900         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
1901         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1902         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1903
1904 2012-11-19  Alexander Shalamov  <alexander.shalamov@intel.com>
1905
1906         Improve ContentTypeParser, so that it could be used to validate mime type according to RFC
1907         https://bugs.webkit.org/show_bug.cgi?id=100927
1908
1909         Reviewed by Alexey Proskuryakov.
1910
1911         This patch adds ParsedContentType class that represents contents of parsed
1912         content type string. isValidContentType function could be used to check if
1913         format of the content type string is acorrding to RFC 2616 section 4.2.
1914
1915         * CMakeLists.txt:
1916         * GNUmakefile.list.am:
1917         * Target.pri:
1918         * WebCore.gypi:
1919         * WebCore.xcodeproj/project.pbxproj:
1920         * platform/network/MIMEHeader.cpp:
1921         (WebCore::MIMEHeader::parseHeader):
1922         * platform/network/ParsedContentType.cpp: Renamed from Source/WebCore/platform/network/ContentTypeParser.cpp.
1923         (WebCore):
1924         (EmptyParsedContentType):
1925         (WebCore::EmptyParsedContentType::setContentType):
1926         (WebCore::EmptyParsedContentType::setContentTypeParameter):
1927         (WebCore::skipSpaces):
1928         (WebCore::isTokenCharacter):
1929         (WebCore::parseToken):
1930         (WebCore::parseQuotedString):
1931         (WebCore::substringForRange):
1932         (WebCore::parseContentType):
1933         (WebCore::isValidContentType):
1934         (WebCore::ParsedContentType::ParsedContentType):
1935         (WebCore::ParsedContentType::charset):
1936         (WebCore::ParsedContentType::parameterValueForName):
1937         (WebCore::ParsedContentType::parameterCount):
1938         (WebCore::ParsedContentType::setContentType):
1939         (WebCore::ParsedContentType::setContentTypeParameter):
1940         * platform/network/ParsedContentType.h: Renamed from Source/WebCore/platform/network/ContentTypeParser.h.
1941         (WebCore):
1942         (ParsedContentType):
1943         (WebCore::ParsedContentType::mimeType):
1944
1945 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1946
1947         Update DOMException name: InvalidNodeTypeError
1948         https://bugs.webkit.org/show_bug.cgi?id=102519
1949
1950         Reviewed by Kentaro Hara.
1951
1952         Patch 24 of 25 to update DOMException name to match the spec and Firefox.
1953
1954         No code uses DOMException InvalidNodeTypeError. We do use INVALID_NODE_TYPE_ERR for RangeException. See bug 102515.
1955
1956         * dom/DOMCoreException.cpp:
1957
1958 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1959
1960         Changing id, className, or attribute should invalidate distribution
1961         https://bugs.webkit.org/show_bug.cgi?id=100738
1962
1963         Reviewed by Dimitri Glazkov.
1964
1965         When id, className, or attribute is changed, we might have to invalidate distribution.
1966         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow
1967         to invalidate distribution only if necessary.
1968
1969         For the code that className is changed, we can share a lot of code between invalidating distribution and
1970         invalidating style. So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
1971
1972         Since attributeChanged() is a hot method, we don't want to make it slow. So we made one function to determine
1973         whether we have to invalidate distribution, and make it called only if necessary. Also, we've optimized
1974         shadowOfParentForDistribution() by making isInsertionPoint() de-virtualed. We consuded NodeFlags (IsInsertionPointFlag)
1975         for this purpose.
1976
1977         We've measured how this patch makes changing attribute slow. I've measured each code 3 times.
1978         DOM/ModifyAttribute.html is a micro benchmark which changes attribute a lot of times. The result of this benchmark
1979         will be the most affected by this patch. However, it's only 2% performance regression.
1980
1981         DOM/ModifyAttribute.html
1982         Before this patch:
1983                 median  stdev    min    max    [ms]
1984           1st    494.0   3.36  490.0  502.0
1985           2nd    503.5   3.44  497.0  512.0
1986           3rd    494.0   3.48  488.0  499.0
1987
1988         After this patch:
1989                 median  stdev  min      max    [ms]
1990           1st    504.0   2.00  501.0  509.0
1991           2nd    505.5   3.08  500.0  513.0
1992           3rd    507.0   2.32  502.0  510.0
1993
1994         Tests: fast/dom/shadow/distribution-attribute-modified.html
1995                fast/dom/shadow/distribution-className-modified.html
1996                fast/dom/shadow/distribution-id-modified.html
1997                fast/dom/shadow/reprojection-attribute-modified.html
1998                fast/dom/shadow/reprojection-className-modified.html
1999                fast/dom/shadow/reprojection-id-modified.html
2000
2001         * dom/Element.cpp:
2002         (WebCore::Element::attributeChanged):
2003         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
2004         (HasSelectorForClassStyleFunctor):
2005         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
2006         (WebCore):
2007         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
2008         (HasSelectorForClassDistributionFunctor):
2009         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectForClass returns true.
2010         (WebCore::checkFunctorForClassChange):
2011         (WebCore::checkNeedsStyleInvalidationForClassChange):
2012         (WebCore::checkNeedsDistributionInvalidationForClassChange): Extracted the implementation to checkFunctorForClassChange.
2013         (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
2014         * dom/Element.h:
2015         (Element):
2016         * dom/Node.h:
2017         (WebCore::Node::isInsertionPoint):
2018         * html/HTMLElement.h:
2019         (HTMLElement):
2020         * html/shadow/InsertionPoint.cpp:
2021         (WebCore::InsertionPoint::InsertionPoint):
2022         * html/shadow/InsertionPoint.h:
2023         (InsertionPoint):
2024         (WebCore::isInsertionPoint):
2025         (WebCore::shadowOfParentForDistribution):
2026         (WebCore::resolveReprojection):
2027
2028 2012-11-19  Nate Chapin  <japhet@chromium.org>
2029
2030         Move empty loading to DocumentLoader, simplify FrameLoader::init()
2031         https://bugs.webkit.org/show_bug.cgi?id=101512
2032
2033         Reviewed by Adam Barth.
2034
2035         No new tests, though several outputs changed because we no longer send resource
2036             load callbacks for empty loads.
2037
2038         * loader/DocumentLoader.cpp:
2039         (WebCore::DocumentLoader::DocumentLoader):
2040         (WebCore::DocumentLoader::~DocumentLoader):
2041         (WebCore::DocumentLoader::finishedLoading):
2042         (WebCore::DocumentLoader::clearMainResourceLoader):
2043         (WebCore::DocumentLoader::isLoadingInAPISense):
2044         (WebCore::DocumentLoader::isLoadingMainResource):
2045         (WebCore::DocumentLoader::maybeLoadEmpty):
2046         (WebCore):
2047         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
2048              loads directly here.
2049         * loader/DocumentLoader.h:
2050         (DocumentLoader):
2051         * loader/FrameLoader.cpp:
2052         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
2053             were previously being reset in init(). Given that the FrameLoader is in
2054             an inconsistent state before init() is called anyway, there doesn't seem
2055             to be a disadvantage to just initializing them to their post-init() values.
2056         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
2057             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
2058         * loader/FrameLoaderStateMachine.cpp:
2059         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
2060         * loader/FrameLoaderStateMachine.h:
2061         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
2062         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
2063             load got deferred, which won't happen now. Return void and always treat
2064             as returning false.
2065         * loader/MainResourceLoader.h:
2066         (MainResourceLoader):
2067
2068 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2069
2070         Update DOMException name: TimeoutError
2071         https://bugs.webkit.org/show_bug.cgi?id=102513
2072
2073         Reviewed by Kentaro Hara.
2074
2075         Patch 23 of 25 to update DOMException name to match the spec and Firefox.
2076
2077         No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.
2078
2079         * dom/DOMCoreException.cpp:
2080
2081 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2082
2083         Update DOMException name: DataCloneError
2084         https://bugs.webkit.org/show_bug.cgi?id=102521
2085
2086         Reviewed by Kentaro Hara.
2087
2088         Patch 25 of 25 to update DOMException name to match the spec and Firefox.
2089
2090         Updated existing tests.
2091
2092         * dom/DOMCoreException.cpp:
2093
2094 2012-11-19  Tom Hudson  <tomhudson@chromium.org>
2095
2096         Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
2097         https://bugs.webkit.org/show_bug.cgi?id=98660
2098
2099         Reviewed by Simon Fraser.
2100
2101         Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
2102         and paintTranslucentBorderSides() so that we don't do unnecessary work.
2103
2104         If we can avoid setting up and tearing down an unnecessary transparent layer we save
2105         30ms on some mobile platforms.
2106
2107         * rendering/RenderBoxModelObject.h:
2108         * rendering/RenderBoxModelObject.cpp:
2109         (WebCore::RenderBoxModelObject::paintBorder):
2110         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
2111
2112 2012-11-19  Hans Muller  <hmuller@adobe.com>
2113
2114         [CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
2115         https://bugs.webkit.org/show_bug.cgi?id=100765
2116
2117         Reviewed by Dirk Schulze.
2118
2119         ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
2120         isn't null, since the caller is expected to ensure as much.  No new tests were
2121         needed since this is a near-trivial cleanup.
2122
2123         * rendering/ExclusionShape.cpp:
2124         (WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.
2125
2126 2012-11-19  Sami Kyostila  <skyostil@chromium.org>
2127
2128         Use device scale factor instead of physical screen DPI for screen DPI
2129         https://bugs.webkit.org/show_bug.cgi?id=101769
2130
2131         Reviewed by Adam Barth.
2132
2133         Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
2134         the dots per CSS inch[1] value for the "screen" media type. On Chromium these
2135         functions currently return the physical screen DPI, which is wrong. To fix
2136         this, we remove both of these functions entirely and make media queries use
2137         the device scale factor multiplied by 96 on all ports.
2138
2139         [1] http://www.w3.org/TR/css3-mediaqueries/#resolution0
2140
2141         * page/Screen.cpp:
2142         (WebCore::Screen::horizontalDPI):
2143         (WebCore::Screen::verticalDPI):
2144         * platform/PlatformScreen.h:
2145         (WebCore):
2146         * platform/blackberry/PlatformScreenBlackBerry.cpp:
2147         * platform/chromium/PlatformScreenChromium.cpp:
2148         * platform/efl/PlatformScreenEfl.cpp:
2149         * platform/gtk/PlatformScreenGtk.cpp:
2150         * platform/mac/PlatformScreenMac.mm:
2151         * platform/qt/PlatformScreenQt.cpp:
2152         * platform/win/PlatformScreenWin.cpp:
2153         * platform/wx/ScreenWx.cpp:
2154
2155 2012-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
2156
2157         Computed grid items' positions shouldn't be using Length
2158         https://bugs.webkit.org/show_bug.cgi?id=102537
2159
2160         Reviewed by Tony Chang.
2161
2162         This change refactors how we store the grid items' position to use
2163         a new type GridPosition. Length was a temporary type as it supported
2164         'auto' | <integer> but it was starting to get more and more confusing
2165         as we were implementing the layout routines.
2166
2167         No change in behavior.
2168
2169         * GNUmakefile.list.am:
2170         * WebCore.gypi:
2171         * WebCore.vcproj/WebCore.vcproj:
2172         * WebCore.xcodeproj/project.pbxproj:
2173         Added the new file to the build systems.
2174
2175         * rendering/style/RenderStyle.h:
2176         Updated after the type change. Also made some getters
2177         return a const reference instead of forcing a copy.
2178
2179         * rendering/style/StyleGridItemData.h:
2180         (StyleGridItemData):
2181         Ditto, also removed a comment about adding a new type.
2182
2183         * css/CSSComputedStyleDeclaration.cpp:
2184         (WebCore::valueForGridPosition):
2185         * css/StyleResolver.cpp:
2186         (WebCore::createGridPosition):
2187         (WebCore::StyleResolver::applyProperty):
2188         * rendering/RenderGrid.cpp:
2189         (WebCore::RenderGrid::resolveGridPosition):
2190         Updated these sites after switching to GridPosition.
2191
2192         * rendering/RenderGrid.h:
2193         Changed resolveGridPosition signature: it now takes a GridPosition.
2194
2195         * rendering/style/GridPosition.h: Added.
2196         (WebCore::GridPosition::GridPosition):
2197         Default constructor, creates an 'auto' position.
2198
2199         (WebCore::GridPosition::isPositive):
2200         (WebCore::GridPosition::type):
2201         (WebCore::GridPosition::isAuto):
2202         (WebCore::GridPosition::setIntegerPosition):
2203         (WebCore::GridPosition::integerPosition):
2204         Helper functions.
2205
2206         (WebCore::GridPosition::operator==):
2207         Required comparison operator for StyleGridItemData.
2208
2209 2012-11-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>
2210
2211         Apply the resolved viewport rules
2212         https://bugs.webkit.org/show_bug.cgi?id=95964
2213
2214         Reviewed by Kenneth Rohde Christiansen.
2215
2216         This patch implements the CSS Device Adaptation specification. The
2217         WebKit implementation relies on the already implemented Viewport Meta
2218         infrastructure to notify the browser of viewport changes.
2219
2220         The implementation was tests with success on the Qt and EFL ports, but
2221         basically every port supporting Viewport Meta should be fine.
2222
2223         The usage of @-webkit-viewport inside media queries (more tests coming
2224         to map all the corner cases) is currently limited when the media query
2225         depends on the viewport dimensions itself. Defining the width and height
2226         based on screen size will fail on ports reporting the screen
2227         size as the size of the browser window instead of the device screen.
2228
2229         Tests: css3/device-adapt/opera/cascading-001.xhtml
2230                css3/device-adapt/opera/cascading-002.xhtml
2231                css3/device-adapt/opera/cascading-003.xhtml
2232                css3/device-adapt/opera/cascading-004.xhtml
2233                css3/device-adapt/opera/constrain-001.xhtml
2234                css3/device-adapt/opera/constrain-002.xhtml
2235                css3/device-adapt/opera/constrain-003.xhtml
2236                css3/device-adapt/opera/constrain-004.xhtml
2237                css3/device-adapt/opera/constrain-005.xhtml
2238                css3/device-adapt/opera/constrain-006.xhtml
2239                css3/device-adapt/opera/constrain-007.xhtml
2240                css3/device-adapt/opera/constrain-008.xhtml
2241                css3/device-adapt/opera/constrain-009.xhtml
2242                css3/device-adapt/opera/constrain-010.xhtml
2243                css3/device-adapt/opera/constrain-011.xhtml
2244                css3/device-adapt/opera/constrain-012.xhtml
2245                css3/device-adapt/opera/constrain-013.xhtml
2246                css3/device-adapt/opera/constrain-014.xhtml
2247                css3/device-adapt/opera/constrain-015.xhtml
2248                css3/device-adapt/opera/constrain-016.xhtml
2249                css3/device-adapt/opera/constrain-017.xhtml
2250                css3/device-adapt/opera/constrain-020.xhtml
2251                css3/device-adapt/opera/syntax-001.xhtml
2252                css3/device-adapt/opera/syntax-002.xhtml
2253                css3/device-adapt/opera/syntax-003.xhtml
2254
2255         * CMakeLists.txt:
2256         * GNUmakefile.list.am:
2257         * Target.pri:
2258         * WebCore.gypi:
2259         * WebCore.vcproj/WebCore.vcproj:
2260         * WebCore.xcodeproj/project.pbxproj:
2261         * css/CSSAllInOne.cpp:
2262         * css/RuleSet.cpp:
2263         (WebCore::RuleSet::addRulesFromSheet):
2264         * css/StyleResolver.cpp:
2265         (WebCore::StyleResolver::StyleResolver):
2266         (WebCore::StyleResolver::appendAuthorStyleSheets):
2267         (WebCore::StyleResolver::~StyleResolver):
2268         * css/StyleResolver.h:
2269         (StyleResolver):
2270         (WebCore::StyleResolver::viewportStyleResolver):
2271         * css/ViewportStyleResolver.cpp: Added.
2272         (WebCore):
2273         (WebCore::ViewportStyleResolver::ViewportStyleResolver):
2274         (WebCore::ViewportStyleResolver::addViewportRule):
2275         (WebCore::ViewportStyleResolver::clearDocument):
2276         (WebCore::ViewportStyleResolver::resolve):
2277         (WebCore::ViewportStyleResolver::getViewportArgumentValue):
2278         * css/ViewportStyleResolver.h: Added.
2279         (WebCore):
2280         (ViewportStyleResolver):
2281         (WebCore::ViewportStyleResolver::create):
2282         * dom/Document.h:
2283         (WebCore::Document::setViewportArguments):
2284         * dom/ViewportArguments.cpp:
2285         (WebCore::compareIgnoringAuto):
2286         (WebCore):
2287         (WebCore::ViewportArguments::resolve):
2288         * dom/ViewportArguments.h:
2289         (ViewportAttributes):
2290         (WebCore::ViewportArguments::ViewportArguments):
2291         (ViewportArguments):
2292         (WebCore::ViewportArguments::operator==):
2293
2294 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2295
2296         Update DOMException name: SecurityError
2297         https://bugs.webkit.org/show_bug.cgi?id=102437
2298
2299         Reviewed by Kentaro Hara.
2300
2301         Patch 18 of 25 to update DOMException name to match the spec and Firefox.
2302
2303         Updated existing tests.
2304
2305         * dom/DOMCoreException.cpp:
2306
2307 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2308
2309         Update DOMException name: URLMismatchError
2310         https://bugs.webkit.org/show_bug.cgi?id=102511
2311
2312         Reviewed by Kentaro Hara.
2313
2314         Patch 21 of 25 to update DOMException name to match the spec and Firefox.
2315
2316         Updated existing tests.
2317
2318         * dom/DOMCoreException.cpp:
2319         (WebCore):
2320
2321 2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>
2322
2323         Add PROXIMITY_EVENTS feature
2324         https://bugs.webkit.org/show_bug.cgi?id=102658
2325
2326         Reviewed by Kentaro Hara.
2327
2328         Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.
2329
2330         No new tests. Just add a new feature.
2331
2332         * Configurations/FeatureDefines.xcconfig:
2333         * GNUmakefile.features.am:
2334
2335 2012-11-19  Alexei Filippov  <alph@chromium.org>
2336
2337         Web Inspector: Dim a component's subitems' color in NMI snapshot
2338         https://bugs.webkit.org/show_bug.cgi?id=102224
2339
2340         Reviewed by Yury Semikhatsky.
2341
2342         * inspector/front-end/NativeMemorySnapshotView.js:
2343         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
2344         * inspector/front-end/nativeMemoryProfiler.css:
2345         (.native-snapshot-view .data-grid .dimmed div.size-bar):
2346
2347 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2348
2349         Update DOMException name: NetworkError
2350         https://bugs.webkit.org/show_bug.cgi?id=102503
2351
2352         Reviewed by Kentaro Hara.
2353
2354         Patch 19 of 25 to update DOMException name to match the spec and Firefox.
2355
2356         No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.
2357
2358         * dom/DOMCoreException.cpp:
2359
2360 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2361
2362         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2363         https://bugs.webkit.org/show_bug.cgi?id=102649
2364
2365         Reviewed by Adam Barth.
2366
2367         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2368         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2369         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2370
2371         No new tests as there is no new functionality.
2372
2373         * Modules/webaudio/AudioBufferSourceNode.cpp:
2374         (WebCore::AudioBufferSourceNode::looping):
2375         (WebCore::AudioBufferSourceNode::setLooping):
2376         * Modules/webaudio/AudioContext.cpp:
2377         (WebCore::AudioContext::AudioContext):
2378         (WebCore::AudioContext::stop):
2379         (WebCore::AudioContext::scriptExecutionContext):
2380         (WebCore::AudioContext::fireCompletionEvent):
2381         (WebCore::AudioContext::reportMemoryUsage):
2382         * Modules/webaudio/AudioContext.h:
2383         (AudioContext):
2384         * Modules/webaudio/ScriptProcessorNode.cpp:
2385         (WebCore::ScriptProcessorNode::fireProcessEvent):
2386         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2387
2388 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2389
2390         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2391         https://bugs.webkit.org/show_bug.cgi?id=102356
2392
2393         Reviewed by Adam Barth.
2394
2395         A clean-up code was moved from uninitialize to clear method.
2396         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2397         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2398         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2399         adoptRef was added in createOfflineContext method.
2400         A guard was added into deleteMarkedNodes.
2401
2402         Test: inspector-protocol/nmi-webaudio-leak-test.html
2403
2404         * Modules/webaudio/AudioContext.cpp:
2405         (WebCore::AudioContext::createOfflineContext):
2406         (WebCore::AudioContext::AudioContext):
2407         (WebCore::AudioContext::constructCommon):
2408         (WebCore::AudioContext::~AudioContext):
2409         (WebCore::AudioContext::clear):
2410         (WebCore::AudioContext::uninitialize):
2411         (WebCore::AudioContext::stopDispatch):
2412         (WebCore::AudioContext::stop):
2413         (WebCore::AudioContext::markForDeletion):
2414         (WebCore::AudioContext::scheduleNodeDeletion):
2415         (WebCore::AudioContext::deleteMarkedNodes):
2416         * Modules/webaudio/AudioContext.h:
2417         (AudioContext):
2418         * bindings/v8/custom/V8AudioContextCustom.cpp:
2419         (WebCore::V8AudioContext::constructorCallback):
2420         * inspector/InspectorMemoryAgent.cpp:
2421         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2422         * platform/PlatformMemoryInstrumentation.cpp:
2423         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2424         (WebCore):
2425         * platform/PlatformMemoryInstrumentation.h:
2426         (PlatformMemoryInstrumentation):
2427         (WebCore):
2428
2429 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2430
2431         Update DOMException name: QuotaExceededError
2432         https://bugs.webkit.org/show_bug.cgi?id=102512
2433
2434         Reviewed by Kentaro Hara.
2435
2436         Patch 22 of 25 to update DOMException name to match the spec and Firefox.
2437
2438         Updated existing tests.
2439
2440         * dom/DOMCoreException.cpp:
2441
2442 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2443
2444         Update DOMException name: AbortError
2445         https://bugs.webkit.org/show_bug.cgi?id=102508
2446
2447         Reviewed by Kentaro Hara.
2448
2449         Patch 20 of 25 to update DOMException name to match the spec and Firefox.
2450
2451         No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.
2452
2453         * dom/DOMCoreException.cpp:
2454
2455 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2456
2457         Unreviewed, rolling out r135111.
2458         http://trac.webkit.org/changeset/135111
2459         https://bugs.webkit.org/show_bug.cgi?id=102356
2460
2461         The patch caused crashes in several layout tests
2462
2463         * Modules/webaudio/AudioContext.cpp:
2464         (WebCore::AudioContext::createOfflineContext):
2465         (WebCore::AudioContext::AudioContext):
2466         (WebCore::AudioContext::constructCommon):
2467         (WebCore::AudioContext::~AudioContext):
2468         (WebCore::AudioContext::uninitialize):
2469         (WebCore::AudioContext::uninitializeDispatch):
2470         (WebCore::AudioContext::stop):
2471         (WebCore::AudioContext::markForDeletion):
2472         (WebCore::AudioContext::scheduleNodeDeletion):
2473         (WebCore::AudioContext::deleteMarkedNodes):
2474         * Modules/webaudio/AudioContext.h:
2475         (AudioContext):
2476         * bindings/v8/custom/V8AudioContextCustom.cpp:
2477         (WebCore::V8AudioContext::constructorCallback):
2478         * inspector/InspectorMemoryAgent.cpp:
2479         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2480         * platform/PlatformMemoryInstrumentation.cpp:
2481         (WebCore):
2482         * platform/PlatformMemoryInstrumentation.h:
2483
2484 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2485
2486         Unreviewed, rolling out r135116.
2487         http://trac.webkit.org/changeset/135116
2488         https://bugs.webkit.org/show_bug.cgi?id=102649
2489
2490         Revert this patch to revert r135111, which caused crashes in
2491         several layout tests
2492
2493         * Modules/webaudio/AudioBufferSourceNode.cpp:
2494         (WebCore::AudioBufferSourceNode::looping):
2495         (WebCore::AudioBufferSourceNode::setLooping):
2496         * Modules/webaudio/AudioContext.cpp:
2497         (WebCore::AudioContext::AudioContext):
2498         (WebCore::AudioContext::stop):
2499         (WebCore::AudioContext::document):
2500         (WebCore):
2501         (WebCore::AudioContext::hasDocument):
2502         (WebCore::AudioContext::scriptExecutionContext):
2503         (WebCore::AudioContext::fireCompletionEvent):
2504         (WebCore::AudioContext::reportMemoryUsage):
2505         * Modules/webaudio/AudioContext.h:
2506         (AudioContext):
2507         * Modules/webaudio/ScriptProcessorNode.cpp:
2508         (WebCore::ScriptProcessorNode::fireProcessEvent):
2509         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2510
2511 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2512
2513         Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
2514         https://bugs.webkit.org/show_bug.cgi?id=102673
2515
2516         Reviewed by Vsevolod Vlasov.
2517
2518         DebuggerScriptMapping calls public method "addScript" not defined
2519         in SourceMapping interface.
2520
2521         To make things clear I've added ScriptSourceMapping interface that
2522         extends SourceMapping interface by adding "addScript" method.
2523
2524         * inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
2525         * inspector/front-end/CompilerScriptMapping.js:
2526         Updated "@implements" to ScriptSourceMapping.
2527         * inspector/front-end/ResourceScriptMapping.js: Ditto.
2528         * inspector/front-end/ScriptSnippetModel.js: Ditto.
2529         * inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
2530         Removed useless code.
2531
2532 2012-11-19  Tim Horton  <timothy_horton@apple.com>
2533
2534         Unreviewed, untested build fix.
2535
2536         * bindings/scripts/IDLParser.pm:
2537         (parseModule):
2538
2539 2012-11-19  Dongwoo Joshua Im  <dw.im@samsung.com>
2540
2541         [CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
2542         https://bugs.webkit.org/show_bug.cgi?id=102303
2543
2544         Reviewed by Alexis Menard.
2545
2546         Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
2547         into the isValidKeywordPropertyAndValue function, like the same kind of properties.
2548         This will help speed wise in JS.
2549
2550         No new functionality, no new tests.
2551
2552         * css/CSSParser.cpp:
2553         (WebCore::isValidKeywordPropertyAndValue):
2554         (WebCore::isKeywordPropertyID):
2555         (WebCore::CSSParser::parseValue):
2556
2557 2012-11-19  Keishi Hattori  <keishi@webkit.org>
2558
2559         REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
2560         https://bugs.webkit.org/show_bug.cgi?id=102660
2561
2562         Reviewed by Kent Tamura.
2563
2564         The calendar picker used to animate when you press 't'.
2565
2566         No new tests.
2567
2568         * Resources/pagepopups/calendarPicker.js:
2569         (DaysTable.prototype.selectRange):
2570
2571 2012-11-19  Kent Tamura  <tkent@chromium.org>
2572
2573         input.value="" should clear date/time input elements with partial values
2574         https://bugs.webkit.org/show_bug.cgi?id=102645
2575
2576         Reviewed by Kentaro Hara.
2577
2578         Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
2579                fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
2580                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
2581                fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
2582                fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
2583                fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html
2584
2585         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2586         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
2587         If the new value is an empty string and sub-fields has values, we should
2588         update the UI value to the empty state.
2589         * html/DateTimeFieldsState.h:
2590         (WebCore::DateTimeFieldsState::hasAnyValue):
2591         Added. It returns true if one or more sub-fields are not empty.
2592
2593 2012-11-19  Andrey Adaikin  <aandrey@chromium.org>
2594
2595         Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
2596         https://bugs.webkit.org/show_bug.cgi?id=102522
2597
2598         Reviewed by Yury Semikhatsky.
2599
2600         When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
2601         Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
2602         Drive-by: add more typification for the JS compiler.
2603         Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.
2604
2605         * inspector/InjectedScriptCanvasModuleSource.js:
2606         (.):
2607
2608 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2609
2610         Remove IDLStructure.pm
2611         https://bugs.webkit.org/show_bug.cgi?id=102642
2612
2613         Reviewed by Adam Barth.
2614
2615         Previously IDLStructure.pm was full of regular expressions to
2616         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2617         just contains several data structures for the IDL parser. We can
2618         move them to IDLParser.pm and thus remove IDLStructure.pm.
2619
2620         No tests. No change in generated code.
2621
2622         * CMakeLists.txt:
2623         * DerivedSources.make:
2624         * DerivedSources.pri:
2625         * GNUmakefile.am:
2626         * WebCore.gyp/WebCore.gyp:
2627         * WebCore.vcproj/MigrateScripts:
2628         * WebCore.vcproj/WebCore.vcproj:
2629         * WebCore.xcodeproj/project.pbxproj:
2630         * bindings/scripts/IDLParser.pm:
2631         (Parse):
2632         (parseInterface):
2633         (parseException):
2634         (parseConst):
2635         (parseAttributeRest):
2636         (parseOperationRest):
2637         (parseOptionalOrRequiredArgument):
2638         (parseExceptionField):
2639         (parseInterfaceOld):
2640         (parseExceptionOld):
2641         (parseAttributeRestOld):
2642         (applyExtendedAttributeList):
2643         * bindings/scripts/IDLStructure.pm: Removed.
2644
2645 2012-11-19  Alexei Filippov  <alph@chromium.org>
2646
2647         Web Inspector: refine time and bytes output formatting
2648         https://bugs.webkit.org/show_bug.cgi?id=102265
2649
2650         Reviewed by Yury Semikhatsky.
2651
2652         Add a space between number and unit, otherwise it's hard to read things like 88B.
2653         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2654
2655         * English.lproj/localizedStrings.js:
2656         * inspector/front-end/CookiesTable.js:
2657         (WebInspector.CookiesTable.prototype._createGridNode):
2658         * inspector/front-end/UIUtils.js:
2659         (Number.secondsToString):
2660         (Number.bytesToString):
2661
2662 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2663
2664         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2665         https://bugs.webkit.org/show_bug.cgi?id=102383
2666
2667         Reviewed by Yury Semikhatsky.
2668
2669         Fixed string presentation of event.
2670
2671         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2672
2673 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2674
2675         Remove IDLStructure.pm
2676         https://bugs.webkit.org/show_bug.cgi?id=102642
2677
2678         Reviewed by Adam Barth.
2679
2680         Previously IDLStructure.pm was full of regular expressions to
2681         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2682         just contains several data structures for the IDL parser. We can
2683         move them to IDLParser.pm and thus remove IDLStructure.pm.
2684
2685         No tests. No change in generated code.
2686
2687         * CMakeLists.txt:
2688         * DerivedSources.make:
2689         * DerivedSources.pri:
2690         * GNUmakefile.am:
2691         * WebCore.gyp/WebCore.gyp:
2692         * WebCore.vcproj/MigrateScripts:
2693         * WebCore.vcproj/WebCore.vcproj:
2694         * WebCore.xcodeproj/project.pbxproj:
2695         * bindings/scripts/IDLParser.pm:
2696         (Parse):
2697         (parseInterface):
2698         (parseException):
2699         (parseConst):
2700         (parseAttributeRest):
2701         (parseOperationRest):
2702         (parseOptionalOrRequiredArgument):
2703         (parseExceptionField):
2704         (parseInterfaceOld):
2705         (parseExceptionOld):
2706         (parseAttributeRestOld):
2707         (applyExtendedAttributeList):
2708         * bindings/scripts/IDLStructure.pm: Removed.
2709
2710 2012-11-19  Alexei Filippov  <alph@chromium.org>
2711
2712         Web Inspector: refine time and bytes output formatting
2713         https://bugs.webkit.org/show_bug.cgi?id=102265
2714
2715         Reviewed by Yury Semikhatsky.
2716
2717         Add a space between number and unit, otherwise it's hard to read things like 88B.
2718         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2719
2720         * English.lproj/localizedStrings.js:
2721         * inspector/front-end/CookiesTable.js:
2722         (WebInspector.CookiesTable.prototype._createGridNode):
2723         * inspector/front-end/UIUtils.js:
2724         (Number.secondsToString):
2725         (Number.bytesToString):
2726
2727 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2728
2729         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2730         https://bugs.webkit.org/show_bug.cgi?id=102383
2731
2732         Reviewed by Yury Semikhatsky.
2733
2734         Fixed string presentation of event.
2735
2736         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2737
2738 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2739
2740         Unreviewed, rolling out r135114.
2741         http://trac.webkit.org/changeset/135114
2742         https://bugs.webkit.org/show_bug.cgi?id=102642
2743
2744         it broke Qt build
2745
2746         * CMakeLists.txt:
2747         * DerivedSources.make:
2748         * DerivedSources.pri:
2749         * GNUmakefile.am:
2750         * WebCore.gyp/WebCore.gyp:
2751         * WebCore.vcproj/MigrateScripts:
2752         * WebCore.vcproj/WebCore.vcproj:
2753         * WebCore.xcodeproj/project.pbxproj:
2754         * bindings/scripts/IDLParser.pm:
2755         (Parse):
2756         (parseInterface):
2757         (parseException):
2758         (parseConst):
2759         (parseAttributeRest):
2760         (parseOperationRest):
2761         (parseOptionalOrRequiredArgument):
2762         (parseExceptionField):
2763         (parseInterfaceOld):
2764         (parseExceptionOld):
2765         (parseAttributeRestOld):
2766         (applyExtendedAttributeList):
2767         * bindings/scripts/IDLStructure.pm: Added.
2768
2769 2012-11-19  Vsevolod Vlasov  <vsevik@chromium.org>
2770
2771         Unreviewed inspector closure compilation fix.
2772
2773         * inspector/front-end/ObjectPropertiesSection.js:
2774         * inspector/front-end/externs.js:
2775
2776 2012-11-18  Ilya Tikhonovsky  <loislo@chromium.org>
2777
2778         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2779         https://bugs.webkit.org/show_bug.cgi?id=102649
2780
2781         Reviewed by Adam Barth.
2782
2783         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2784         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2785         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2786
2787         No new tests as there is no new functionality.
2788
2789         * Modules/webaudio/AudioBufferSourceNode.cpp:
2790         (WebCore::AudioBufferSourceNode::looping):
2791         (WebCore::AudioBufferSourceNode::setLooping):
2792         * Modules/webaudio/AudioContext.cpp:
2793         (WebCore::AudioContext::AudioContext):
2794         (WebCore::AudioContext::stop):
2795         (WebCore::AudioContext::fireCompletionEvent):
2796         (WebCore::AudioContext::reportMemoryUsage):
2797         * Modules/webaudio/AudioContext.h:
2798         (WebCore::AudioContext::scriptExecutionContext):
2799         (AudioContext):
2800         * Modules/webaudio/ScriptProcessorNode.cpp:
2801         (WebCore::ScriptProcessorNode::fireProcessEvent):
2802         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2803
2804 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2805
2806         [V8] Remove unused variables from CodeGeneratorV8.pm
2807         https://bugs.webkit.org/show_bug.cgi?id=102648
2808
2809         Reviewed by Adam Barth.
2810
2811         No tests. No change in generated code.
2812
2813         * bindings/scripts/CodeGeneratorV8.pm:
2814         (GenerateInterface):
2815         (GenerateHeader):
2816         (GetInternalFields):
2817         (GenerateNormalAttrGetter):
2818         (GenerateSingleBatchedAttribute):
2819         (GenerateImplementationCustomCall):
2820         (GenerateFunctionCallString):
2821         (CreateCustomSignature):
2822         (GetContextEnableFunction):
2823
2824 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2825
2826         Remove IDLStructure.pm
2827         https://bugs.webkit.org/show_bug.cgi?id=102642
2828
2829         Reviewed by Adam Barth.
2830
2831         Previously IDLStructure.pm was full of regular expressions to
2832         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2833         just contains several data structures for the IDL parser. We can
2834         move them to IDLParser.pm and thus remove IDLStructure.pm.
2835
2836         No tests. No change in generated code.
2837
2838         * CMakeLists.txt:
2839         * DerivedSources.make:
2840         * DerivedSources.pri:
2841         * GNUmakefile.am:
2842         * WebCore.gyp/WebCore.gyp:
2843         * WebCore.vcproj/MigrateScripts:
2844         * WebCore.vcproj/WebCore.vcproj:
2845         * WebCore.xcodeproj/project.pbxproj:
2846         * bindings/scripts/IDLParser.pm:
2847         (Parse):
2848         (parseInterface):
2849         (parseException):
2850         (parseConst):
2851         (parseAttributeRest):
2852         (parseOperationRest):
2853         (parseOptionalOrRequiredArgument):
2854         (parseExceptionField):
2855         (parseInterfaceOld):
2856         (parseExceptionOld):
2857         (parseAttributeRestOld):
2858         (applyExtendedAttributeList):
2859         * bindings/scripts/IDLStructure.pm: Removed.
2860
2861 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2862
2863         [V8] Make more use of $v8Interface in CodeGeneratorV8.pm
2864         https://bugs.webkit.org/show_bug.cgi?id=102639
2865
2866         Reviewed by Adam Barth.
2867
2868         We can replace hard-coded "V8${interfaceName}" with $v8Interface.
2869
2870         No tests. No change in generated code.
2871
2872         * bindings/scripts/CodeGeneratorV8.pm:
2873         (GenerateNormalAttrGetter):
2874         (GenerateNormalAttrSetter):
2875         (GenerateFunctionCallback):
2876         (GenerateNamedConstructorCallback):
2877         (GenerateImplementationIndexer):
2878         (GenerateImplementationNamedPropertyGetter):
2879         (GenerateImplementation):
2880
2881 2012-11-16  Ilya Tikhonovsky  <loislo@chromium.org>
2882
2883         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2884         https://bugs.webkit.org/show_bug.cgi?id=102356
2885
2886         Reviewed by Adam Barth.
2887
2888         A clean-up code was moved from uninitialize to clear method.
2889         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2890         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2891         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2892         adoptRef was added in createOfflineContext method.
2893
2894         Test: inspector-protocol/nmi-webaudio-leak-test.html
2895
2896         * Modules/webaudio/AudioContext.cpp:
2897         (WebCore::AudioContext::createOfflineContext):
2898         (WebCore::AudioContext::AudioContext):
2899         (WebCore::AudioContext::constructCommon):
2900         (WebCore::AudioContext::~AudioContext):
2901         (WebCore::AudioContext::clear):
2902         (WebCore::AudioContext::uninitialize):
2903         (WebCore::AudioContext::stopDispatch):
2904         (WebCore::AudioContext::stop):
2905         (WebCore::AudioContext::markForDeletion):
2906         (WebCore::AudioContext::scheduleNodeDeletion):
2907         (WebCore::AudioContext::deleteMarkedNodes):
2908         * Modules/webaudio/AudioContext.h:
2909         (AudioContext):
2910         * bindings/v8/custom/V8AudioContextCustom.cpp:
2911         (WebCore::V8AudioContext::constructorCallback):
2912         * inspector/InspectorMemoryAgent.cpp:
2913         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2914         * platform/PlatformMemoryInstrumentation.cpp:
2915         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2916         (WebCore):
2917         * platform/PlatformMemoryInstrumentation.h:
2918         (PlatformMemoryInstrumentation):
2919         (WebCore):
2920
2921 2012-11-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2922
2923         min/max/step support for calendar picker on datetime/datetime-local
2924         https://bugs.webkit.org/show_bug.cgi?id=102628
2925
2926         Reviewed by Kent Tamura.
2927
2928         Gray out dates with no allowed values on calendar picker for datetime/datetime-local
2929         when values are limited by min/max/step attributes.
2930
2931         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html
2932
2933         * Resources/pagepopups/calendarPicker.js:
2934         (CalendarPicker.prototype._stepMismatch):
2935         Returns true iff there are any allowed values in the given day.
2936
2937 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2938
2939         Remove non-existent directories from the make system
2940         https://bugs.webkit.org/show_bug.cgi?id=102632
2941
2942         Reviewed by Adam Barth.
2943
2944         Remove (non-existent) symbian references from the exclude list in gyp project files.
2945
2946         No new tests as there is no new functionality.
2947
2948         * WebCore.gyp/WebCore.gyp:
2949
2950 2012-11-18  Patrick Gansterer  <paroga@webkit.org>
2951
2952         [WIN] Add a IMLangFontLinkType typedef
2953         https://bugs.webkit.org/show_bug.cgi?id=102584
2954
2955         Reviewed by Brent Fulgham.
2956
2957         Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.
2958
2959         * platform/graphics/FontCache.h:
2960         (WebCore):
2961         * platform/graphics/win/FontCacheWin.cpp:
2962         (WebCore::FontCache::getFontLinkInterface):
2963         (WebCore::getCJKCodePageMasks):
2964         (WebCore::createMLangFont):
2965         (WebCore::FontCache::getFontDataForCharacters):
2966         * platform/graphics/win/SimpleFontDataWin.cpp:
2967         (WebCore::SimpleFontData::containsCharacters):
2968         * platform/graphics/wince/FontCacheWinCE.cpp:
2969         (WebCore):
2970         (WebCore::FontCache::getFontLinkInterface):
2971         (WebCore::getCJKCodePageMasks):
2972         (WebCore::FontCache::getFontDataForCharacters):
2973         * platform/graphics/wince/FontPlatformData.cpp:
2974         (WebCore::FontFamilyCodePageInfo::codePages):
2975         (WebCore::FixedSizeFontData::create):
2976         * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
2977         (WebCore::GlyphPage::fill):
2978
2979 2012-11-18  Mike West  <mkwst@chromium.org>
2980
2981         Web Inspector: Remove unused ConsoleMessage constructor.
2982         https://bugs.webkit.org/show_bug.cgi?id=102590
2983
2984         Reviewed by Brent Fulgham.
2985
2986         We currently have a ConsoleMessage constructor that's unused. Let's
2987         kill it.
2988
2989         * inspector/ConsoleMessage.cpp:
2990         * inspector/ConsoleMessage.h:
2991         (ConsoleMessage):
2992             Removing an unused constructor variant.
2993
2994 2012-11-18  Andreas Kling  <akling@apple.com>
2995
2996         StyledElement: Make handling the "style" attribute a litte faster.
2997         <http://webkit.org/b/102623>
2998
2999         Reviewed by Ojan Vafai.
3000
3001         We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
3002         by hoisting the parseAttribute() logic up into attributeChanged().
3003         Did the same thing with Element::parseAttribute() for consistency.
3004
3005         Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.
3006
3007         * dom/Element.cpp:
3008         (WebCore::Element::attributeChanged):
3009         * dom/Element.h:
3010         (WebCore::Element::parseAttribute):
3011         * dom/StyledElement.cpp:
3012         (WebCore::StyledElement::attributeChanged):
3013         * dom/StyledElement.h:
3014         (StyledElement):
3015
3016 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
3017
3018         [CMake] Consolidate common input files
3019         https://bugs.webkit.org/show_bug.cgi?id=101632
3020
3021         Reviewed by Rob Buis.
3022
3023         Consolidate and sort the list of files, move common source files
3024         into CMakeLists.txt from the port specific files.
3025
3026         No new tests as there is no new functionality.
3027
3028         * CMakeLists.txt:
3029         * PlatformBlackBerry.cmake:
3030         * PlatformEfl.cmake:
3031         * PlatformWinCE.cmake:
3032
3033 2012-11-18  Andreas Kling  <akling@apple.com>
3034
3035         Tighten small SharedBuffers by reserving the exact amount of space needed.
3036         <http://webkit.org/b/102625>
3037
3038         Reviewed by Anders Carlsson.
3039
3040         When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
3041         amount of space needed instead of leaving it to Vector<char>::append().
3042
3043         1.86MB progression on Membuster3.
3044
3045         * platform/SharedBuffer.cpp:
3046         (WebCore::SharedBuffer::append):
3047
3048 2012-11-18  Ryosuke Niwa  <rniwa@webkit.org>
3049
3050         Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
3051         https://bugs.webkit.org/show_bug.cgi?id=101311
3052
3053         Reviewed by Darin Adler.
3054
3055         Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
3056         and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
3057         there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
3058         getter and namedItem return exactly one node or null as specified in HTML5:
3059         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0
3060
3061         Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
3062         a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.
3063
3064         Also got rid of Document::objects since it's not exposed in IDL or called anywhere.
3065
3066         Test: fast/dom/html-collections-namedItem.html
3067
3068         * CMakeLists.txt:
3069         * DerivedSources.cpp:
3070         * DerivedSources.make:
3071         * DerivedSources.pri:
3072         * GNUmakefile.list.am:
3073         * Target.pri:
3074         * UseJSC.cmake:
3075         * UseV8.cmake:
3076         * WebCore.gypi:
3077         * WebCore.vcproj/WebCore.vcproj:
3078         * WebCore.xcodeproj/project.pbxproj:
3079         * bindings/js/JSBindingsAllInOne.cpp:
3080         * bindings/js/JSHTMLAllCollectionCustom.cpp:
3081         (WebCore::getNamedItems):
3082         * bindings/js/JSHTMLCollectionCustom.cpp:
3083         (WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
3084         (WebCore::toJS):
3085         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
3086         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
3087         (WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
3088         (WebCore::JSHTMLFormControlsCollection::nameGetter):
3089         (WebCore::JSHTMLFormControlsCollection::namedItem):
3090         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
3091         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
3092         This is a bug. It should be a live NodeList instead.
3093         (WebCore::JSHTMLOptionsCollection::canGetItemsForName):
3094         (WebCore::JSHTMLOptionsCollection::nameGetter):
3095         (WebCore::JSHTMLOptionsCollection::namedItem):
3096         * bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
3097         * bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
3098         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
3099         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
3100         (WebCore::getNamedItems): Added a comment about how we should be returning
3101         a HTMLCollection when there are multiple matches.
3102         (WebCore::getItem):
3103         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
3104         (WebCore::V8HTMLAllCollection::namedItemCallback):
3105         * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
3106         (WebCore::V8HTMLCollection::namedPropertyGetter):
3107         (WebCore::toV8):
3108         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
3109         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
3110         (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
3111         (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
3112         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3113         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
3114         This is a bug. It should be a live NodeList instead.
3115         (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
3116         (WebCore::V8HTMLOptionsCollection::namedItemCallback):
3117         * dom/Document.cpp: Removed Document::objects since it was not used anywhere.
3118         * dom/Document.h:
3119         (Document):
3120         * dom/Element.cpp:
3121         (WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
3122         a HTMLFormControlsCollection instead of a HTMLCollection.
3123         * html/CollectionType.h:
3124         * html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
3125         * html/HTMLFieldSetElement.cpp:
3126         * html/HTMLFieldSetElement.h:
3127         * html/HTMLFormCollection.cpp: Removed.
3128         * html/HTMLFormCollection.h: Removed.
3129         * html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
3130         (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
3131         (WebCore::HTMLFormControlsCollection::create):
3132         (WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
3133         (WebCore::HTMLFormControlsCollection::formControlElements):
3134         (WebCore::HTMLFormControlsCollection::formImageElements):
3135         (WebCore::HTMLFormControlsCollection::virtualItemAfter):
3136         (WebCore::HTMLFormControlsCollection::namedItem):
3137         (WebCore::HTMLFormControlsCollection::updateNameCache):
3138         * html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
3139         (HTMLFormControlsCollection):
3140         * html/HTMLFormControlsCollection.idl: Added.
3141         * html/HTMLFormElement.cpp:
3142         * html/HTMLFormElement.h:
3143         * html/HTMLOptionsCollection.idl:
3144
3145 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3146
3147         [V8] Rename $className to $v8InterfaceName
3148         https://bugs.webkit.org/show_bug.cgi?id=102487
3149
3150         Reviewed by Adam Barth.
3151
3152         In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
3153         We should rename $className to $v8InterfaceName. Also we can
3154         remove GetCallbackClassName().
3155
3156         No tests. No change in behavior.
3157
3158         * bindings/scripts/CodeGeneratorV8.pm:
3159         (GenerateHeader):
3160         (GetHeaderClassInclude):
3161         (GenerateDomainSafeFunctionGetter):
3162         (GenerateDomainSafeFunctionSetter):
3163         (GenerateParametersCheck):
3164         (GenerateImplementation):
3165         (GenerateHeaderContentHeader):
3166         (GenerateImplementationContentHeader):
3167         (GenerateCallbackHeader):
3168         (GenerateCallbackImplementation):
3169         (GenerateToV8Converters):
3170         (GetPassRefPtrType):
3171
3172 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3173
3174         [V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
3175         https://bugs.webkit.org/show_bug.cgi?id=102499
3176
3177         Reviewed by Adam Barth.
3178
3179         No tests. No change in behavior.
3180
3181         * bindings/scripts/CodeGeneratorV8.pm:
3182         (GenerateNormalAttrGetter):
3183         (GenerateNormalAttrSetter):
3184         (GenerateParametersCheckExpression):
3185         (GenerateParametersCheck):
3186         (GenerateFunctionCallString):
3187         (GetNativeTypeFromSignature):
3188         (TranslateParameter):
3189         (TypeCanFailConversion):
3190         (JSValueToNative):
3191         (NativeToJSValue):
3192
3193 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3194
3195         Remove GenerateModule() from all code generators
3196         https://bugs.webkit.org/show_bug.cgi?id=102490
3197
3198         Reviewed by Adam Barth.
3199
3200         WebKit IDL files no longer support modules. The Web IDL spec
3201         no longer supports modules. We can remove it from code generators.
3202
3203         No tests. No change in behavior.
3204
3205         * bindings/scripts/CodeGenerator.pm:
3206         (ProcessDocument):
3207         * bindings/scripts/CodeGeneratorCPP.pm:
3208         * bindings/scripts/CodeGeneratorGObject.pm:
3209         * bindings/scripts/CodeGeneratorJS.pm:
3210         * bindings/scripts/CodeGeneratorObjC.pm:
3211         * bindings/scripts/CodeGeneratorV8.pm:
3212
3213 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3214
3215         [V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
3216         https://bugs.webkit.org/show_bug.cgi?id=102497
3217
3218         Reviewed by Adam Barth.
3219
3220         No tests. No change in behavior.
3221
3222         * bindings/scripts/CodeGeneratorV8.pm:
3223         (GenerateDomainSafeFunctionGetter):
3224         (GenerateNormalAttrGetter):
3225         (GenerateFunctionCallString):
3226
3227 2012-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3228
3229         Unreviewed, rolling out r135074.
3230         http://trac.webkit.org/changeset/135074
3231         https://bugs.webkit.org/show_bug.cgi?id=102619
3232
3233         Made most layout tests crash. (Requested by rakuco on
3234         #webkit).
3235
3236         * PlatformEfl.cmake:
3237         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3238         (WebCore::GraphicsContext3D::create):
3239         (WebCore::GraphicsContext3D::GraphicsContext3D):
3240         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3241         (WebCore::GraphicsContext3D::makeContextCurrent):
3242         (WebCore::GraphicsContext3D::setContextLostCallback):
3243         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3244         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3245         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3246         (WebCore::GraphicsContext3DPrivate::createSurface):
3247         (WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
3248         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
3249         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
3250         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
3251         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
3252         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
3253         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3254         (GraphicsContext3DPrivate):
3255         * platform/graphics/opengl/GLDefs.h: Removed.
3256         * platform/graphics/opengl/GLPlatformContext.cpp: Removed.
3257         * platform/graphics/opengl/GLPlatformContext.h: Removed.
3258         * platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
3259         * platform/graphics/opengl/GLPlatformSurface.h: Removed.
3260         * platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
3261         * platform/graphics/surfaces/glx/GLXContext.h: Removed.
3262         * platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
3263         * platform/graphics/surfaces/glx/GLXSurface.h: Removed.
3264
3265 2012-11-18  Antti Koivisto  <antti@apple.com>
3266
3267         REGRESSION(r129644): User StyleSheet not applying
3268         https://bugs.webkit.org/show_bug.cgi?id=102110
3269
3270         Reviewed by Andreas Kling.
3271
3272         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
3273         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
3274         
3275         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
3276         It also generally cleans up the code around injected and user stylesheets.
3277
3278         Tests: userscripts/user-script-and-stylesheet.html
3279                userscripts/user-stylesheet-invalidate.html
3280
3281         * css/StyleResolver.cpp:
3282         (WebCore::StyleResolver::StyleResolver):
3283         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
3284         (WebCore::collectCSSOMWrappers):
3285         * css/StyleResolver.h:
3286         (StyleResolver):
3287         * dom/Document.cpp:
3288         (WebCore::Document::setCompatibilityMode):
3289         * dom/DocumentStyleSheetCollection.cpp:
3290         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
3291         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
3292         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
3293         (WebCore):
3294         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
3295         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
3296         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
3297         (WebCore::DocumentStyleSheetCollection::addUserSheet):
3298         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
3299         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
3300         * dom/DocumentStyleSheetCollection.h:
3301         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
3302         (DocumentStyleSheetCollection):
3303         * page/PageGroup.cpp:
3304         (WebCore::PageGroup::addUserStyleSheetToWorld):
3305         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
3306         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
3307         (WebCore::PageGroup::removeAllUserContent):
3308         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
3309         * page/PageGroup.h:
3310         (PageGroup):
3311
3312 2012-11-18  Adam Barth  <abarth@webkit.org>
3313
3314         Unreviewed.
3315
3316         Update run-bindings-tests baselines after
3317         http://trac.webkit.org/changeset/135063
3318
3319         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
3320         (JSTestActiveDOMObjectOwner):
3321         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
3322         (JSTestCustomNamedGetterOwner):
3323         * bindings/scripts/test/JS/JSTestEventConstructor.h:
3324         (JSTestEventConstructorOwner):
3325         * bindings/scripts/test/JS/JSTestEventTarget.h:
3326         (JSTestEventTargetOwner):
3327         * bindings/scripts/test/JS/JSTestException.h:
3328         (JSTestExceptionOwner):
3329         * bindings/scripts/test/JS/JSTestInterface.h:
3330         (JSTestInterfaceOwner):
3331         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
3332         (JSTestMediaQueryListListenerOwner):
3333         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
3334         (JSTestNamedConstructorOwner):
3335         * bindings/scripts/test/JS/JSTestObj.h:
3336         (JSTestObjOwner):
3337         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
3338         (JSTestOverloadedConstructorsOwner):
3339         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3340         (JSTestSerializedScriptValueInterfaceOwner):
3341
3342 2012-11-18  Simon Fraser  <simon.fraser@apple.com>
3343
3344         Make convertToLayerCoords iterative, rather than recursive
3345         https://bugs.webkit.org/show_bug.cgi?id=102618
3346
3347         Reviewed by Antti Koivisto.
3348
3349         RenderLayer::convertToLayerCoords() is a hot function on profiles.
3350         Change it to be iterative, rather than recursive, so that the
3351         bulk of the function can be inlined.
3352         
3353         Was tested with assertions against the old code during development.
3354
3355         * rendering/RenderLayer.cpp:
3356         (WebCore::accumulateOffsetTowardsAncestor):
3357         (WebCore::RenderLayer::convertToLayerCoords):
3358
3359 2012-11-18  Andreas Kling  <akling@apple.com>
3360
3361         Inline the StyledElement constructor.
3362         <http://webkit.org/b/102615>
3363
3364         Reviewed by Antti Koivisto.
3365
3366         StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline. 
3367         Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.
3368
3369         * dom/StyledElement.cpp:
3370         * dom/StyledElement.h:
3371         (WebCore::StyledElement::StyledElement):
3372
3373 2012-11-18  Andreas Kling  <akling@apple.com>
3374
3375         HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
3376         <http://webkit.org/b/102614>
3377
3378         Reviewed by Anders Carlsson.
3379
3380         When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
3381         to know if it's present. If it's not present, 'value' argument will be null.
3382
3383         * html/HTMLMediaElement.cpp:
3384         (WebCore::HTMLMediaElement::parseAttribute):
3385
3386 2012-11-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
3387
3388         [EFL] Refactor GraphicsContext3DEFL.
3389         https://bugs.webkit.org/show_bug.cgi?id=101291.
3390
3391         Reviewed by Kenneth Rohde Christiansen.
3392
3393         GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
3394         GraphicsContext3DPrivate needs to handle the following cases:
3395         1) To provide an off-screen buffer for accelerated composition.
3396         2) Render to a current context.
3397         3) To render directly to host window. (currently not supported.)
3398
3399         Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
3400         the other supported case. Evas acts as a glue layer to provide us with appropriate
3401         GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
3402         However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
3403
3404         It would be for our advantage to be able to take in to use any optimisations/extensions
3405         provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
3406         This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
3407         and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
3408         Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
3409         GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
3410
3411         GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
3412         It uses GL extension ARB_robustness (when available) to detect driver resets.
3413         It defines a simple interface for things that need to be handled by the context. Support
3414         for multi-threaded usage and shared context-group would be added later.
3415
3416         GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
3417         It defines a simple interface for things that need to be handled by the surface.
3418         It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
3419         can be used to render into this off-screen area.
3420
3421         This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
3422
3423         * PlatformEfl.cmake:
3424         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3425         (WebCore::GraphicsContext3D::create):
3426         (WebCore::GraphicsContext3D::GraphicsContext3D):
3427         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3428         (WebCore::GraphicsContext3D::makeContextCurrent):
3429         (WebCore::GraphicsContext3D::setContextLostCallback):
3430         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3431         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3432         (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3433         (GraphicsContext3DPrivate::releaseResources):
3434         (GraphicsContext3DPrivate::setContextLostCallback):
3435         (GraphicsContext3DPrivate::platformGraphicsContext3D):
3436         (GraphicsContext3DPrivate::makeContextCurrent):
3437         (GraphicsContext3DPrivate::createGraphicsSurfaces):
3438         (GraphicsContext3DPrivate::copyToGraphicsSurface):
3439         (GraphicsContext3DPrivate::graphicsSurfaceToken):
3440         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3441         (GraphicsContext3DPrivate):
3442         * platform/graphics/opengl/GLDefs.h: Added.
3443         (WebCore):
3444         * platform/graphics/opengl/GLPlatformContext.cpp: Added.
3445         (WebCore):
3446         (WebCore::GLPlatformContext::createContext):
3447         (WebCore::GLPlatformContext::createOffScreenContext):
3448         (WebCore::GLPlatformContext::createCurrentContextWrapper):
3449         (WebCore::GLPlatformContext::GLPlatformContext):
3450         (WebCore::GLPlatformContext::~GLPlatformContext):
3451         (WebCore::GLPlatformContext::makeCurrent):
3452         (WebCore::GLPlatformContext::isValid):
3453         (WebCore::GLPlatformContext::releaseCurrent):
3454         (WebCore::GLPlatformContext::handle):
3455         (WebCore::GLPlatformContext::isCurrentContext):
3456         (WebCore::GLPlatformContext::initialize):
3457         (WebCore::GLPlatformContext::getCurrent):
3458         (WebCore::GLPlatformContext::platformMakeCurrent):
3459         (WebCore::GLPlatformContext::platformReleaseCurrent):
3460         (WebCore::GLPlatformContext::destroy):
3461         * platform/graphics/opengl/GLPlatformContext.h: Added.
3462         (WebCore):
3463         (GLPlatformContext):
3464         * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
3465         (WebCore):
3466         (WebCore::GLPlatformSurface::createOffscreenSurface):
3467         (WebCore::GLPlatformSurface::createTransportSurface):
3468         (WebCore::GLPlatformSurface::GLPlatformSurface):
3469         (WebCore::GLPlatformSurface::~GLPlatformSurface):
3470         (WebCore::GLPlatformSurface::handle):
3471         (WebCore::GLPlatformSurface::geometry):
3472         (WebCore::GLPlatformSurface::sharedDisplay):
3473         (WebCore::GLPlatformSurface::configuration):
3474         (WebCore::GLPlatformSurface::swapBuffers):
3475         (WebCore::GLPlatformSurface::copyTexture):
3476         (WebCore::GLPlatformSurface::updateContents):
3477         (WebCore::GLPlatformSurface::setGeometry):
3478         (WebCore::GLPlatformSurface::destroy):
3479         * platform/graphics/opengl/GLPlatformSurface.h: Added.
3480         (WebCore):
3481         (GLPlatformSurface):
3482             GLXOffScreenContext creates an off-screen context. This is used when
3483             renderstyle is RenderOffscreen.
3484             It uses GL extension GLX_ARB_create_context (when available)
3485             to create a context else falls back to use glXCreateNewContext.
3486         * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
3487         (WebCore):
3488         (WebCore::initializeARBExtensions):
3489         (WebCore::GLXOffScreenContext::GLXOffScreenContext):
3490         (WebCore::GLXOffScreenContext::initialize):
3491         (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
3492         (WebCore::GLXOffScreenContext::isCurrentContext):
3493         (WebCore::GLXOffScreenContext::platformMakeCurrent):
3494         (WebCore::GLXOffScreenContext::platformReleaseCurrent):
3495         (WebCore::GLXOffScreenContext::freeResources):
3496         (WebCore::GLXOffScreenContext::destroy):
3497             GLXCurrentContextWrapper acts as a wrapper for current context.
3498             This is used when renderstyle is RenderToCurrentGLContext.
3499         * platform/graphics/surfaces/glx/GLXContext.h: Added.
3500         (WebCore):
3501         (GLXCurrentContextWrapper):
3502         (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
3503         (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
3504         (GLXOffScreenContext):
3505         * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
3506         (WebCore):
3507         (WebCore::GLXSurface::GLXSurface):
3508         (WebCore::GLXSurface::~GLXSurface):
3509         (WebCore::GLXSurface::visualInfo):
3510         (WebCore::GLXSurface::xWindow):
3511         (WebCore::GLXSurface::pBufferConfiguration):
3512         (WebCore::GLXSurface::transportSurfaceConfiguration):
3513         (WebCore::GLXSurface::isXRenderExtensionSupported):
3514             GLXTransportSurface creates Window and uses it as an off-screen surface.
3515             Any GLContext that was created with respect to configuration can be used
3516             to render into this.
3517             This is used when contents of the buffer are to be provided to UI Process
3518             for display.
3519         (WebCore::GLXTransportSurface::GLXTransportSurface):
3520         (WebCore::GLXTransportSurface::~GLXTransportSurface):
3521         (WebCore::GLXTransportSurface::configuration):
3522         (WebCore::GLXTransportSurface::swapBuffers):
3523         (WebCore::GLXTransportSurface::setGeometry):
3524         (WebCore::GLXTransportSurface::initialize):
3525         (WebCore::GLXTransportSurface::destroy):
3526         (WebCore::GLXTransportSurface::freeResources):
3527            GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
3528            Any GLContext that was created with respect to configuration can be used
3529            to render into this.
3530         (WebCore::GLXPBuffer::GLXPBuffer):
3531         (WebCore::GLXPBuffer::~GLXPBuffer):
3532         (WebCore::GLXPBuffer::initialize):
3533         (WebCore::GLXPBuffer::configuration):
3534         (WebCore::GLXPBuffer::destroy):
3535         (WebCore::GLXPBuffer::freeResources):
3536         * platform/graphics/surfaces/glx/GLXSurface.h: Added.
3537         (WebCore):
3538             Creates X resources which are shared between surface and context.
3539         (SharedX11Resources):
3540         (WebCore::SharedX11Resources::create):
3541         (WebCore::SharedX11Resources::deref):
3542         (WebCore::SharedX11Resources::getXWindow):
3543         (WebCore::SharedX11Resources::display):
3544         (WebCore::SharedX11Resources::visualInfo):
3545         (WebCore::SharedX11Resources::createConfig):
3546         (WebCore::SharedX11Resources::pBufferContextConfig):
3547         (WebCore::SharedX11Resources::surfaceContextConfig):
3548         (WebCore::SharedX11Resources::isXRenderExtensionSupported):
3549         (WebCore::SharedX11Resources::SharedX11Resources):
3550         (WebCore::SharedX11Resources::~SharedX11Resources):
3551         (GLXSurface):
3552         (GLXTransportSurface):
3553         (GLXPBuffer):
3554
3555 2012-11-18  Andreas Kling  <akling@apple.com>
3556
3557         Element::parseAttribute() should take name & value as separate arguments.
3558         <http://webkit.org/b/102608>
3559
3560         Reviewed by Antti Koivisto.
3561
3562         Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
3563         of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
3564         creating a temporary Attribute is no longer necessary.
3565
3566         This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.
3567
3568         * bindings/js/ScriptEventListener.cpp:
3569         (WebCore::createAttributeEventListener):
3570         * bindings/js/ScriptEventListener.h:
3571         (WebCore):
3572         * bindings/v8/ScriptEventListener.cpp:
3573         (WebCore::createAttributeEventListener):
3574         * bindings/v8/ScriptEventListener.h:
3575         (WebCore):
3576         * dom/Element.cpp:
3577         (WebCore::Element::attributeChanged):
3578         (WebCore::Element::parseAttribute):
3579         * dom/Element.h:
3580         (Element):
3581         * dom/StyledElement.cpp:
3582         (WebCore::StyledElement::parseAttribute):
3583         * dom/StyledElement.h:
3584         (StyledElement):
3585         * html/HTMLAnchorElement.cpp:
3586         (WebCore::HTMLAnchorElement::parseAttribute):
3587         * html/HTMLAnchorElement.h:
3588         (HTMLAnchorElement):
3589         * html/HTMLAppletElement.cpp:
3590         (WebCore::HTMLAppletElement::parseAttribute):
3591         * html/HTMLAppletElement.h:
3592         (HTMLAppletElement):
3593         * html/HTMLAreaElement.cpp:
3594         (WebCore::HTMLAreaElement::parseAttribute):
3595         * html/HTMLAreaElement.h:
3596         (HTMLAreaElement):
3597         * html/HTMLBaseElement.cpp:
3598         (WebCore::HTMLBaseElement::parseAttribute):
3599         * html/HTMLBaseElement.h:
3600         (HTMLBaseElement):
3601         * html/HTMLBodyElement.cpp:
3602         (WebCore::HTMLBodyElement::parseAttribute):
3603         * html/HTMLBodyElement.h:
3604         (HTMLBodyElement):
3605         * html/HTMLButtonElement.cpp:
3606         (WebCore::HTMLButtonElement::parseAttribute):
3607         * html/HTMLButtonElement.h:
3608         * html/HTMLCanvasElement.cpp:
3609         (WebCore::HTMLCanvasElement::parseAttribute):
3610         * html/HTMLCanvasElement.h:
3611         (HTMLCanvasElement):
3612         * html/HTMLDetailsElement.cpp:
3613         (WebCore::HTMLDetailsElement::parseAttribute):
3614         * html/HTMLDetailsElement.h:
3615         (HTMLDetailsElement):
3616         * html/HTMLElement.cpp:
3617         (WebCore::HTMLElement::parseAttribute):
3618         (WebCore::HTMLElement::dirAttributeChanged):
3619         * html/HTMLElement.h:
3620         (HTMLElement):
3621         * html/HTMLEmbedElement.cpp:
3622         (WebCore::HTMLEmbedElement::parseAttribute):
3623         * html/HTMLEmbedElement.h:
3624         (HTMLEmbedElement):
3625         * html/HTMLFormControlElement.cpp:
3626         (WebCore::HTMLFormControlElement::parseAttribute):
3627         * html/HTMLFormControlElement.h:
3628         (HTMLFormControlElement):
3629         * html/HTMLFormElement.cpp:
3630         (WebCore::HTMLFormElement::parseAttribute):
3631         * html/HTMLFormElement.h:
3632         (HTMLFormElement):
3633         * html/HTMLFrameElement.cpp:
3634         (WebCore::HTMLFrameElement::parseAttribute):
3635         * html/HTMLFrameElement.h:
3636         (HTMLFrameElement):
3637         * html/HTMLFrameElementBase.cpp:
3638         (WebCore::HTMLFrameElementBase::parseAttribute):
3639         * html/HTMLFrameElementBase.h:
3640         (HTMLFrameElementBase):
3641         * html/HTMLFrameSetElement.cpp:
3642         (WebCore::HTMLFrameSetElement::parseAttribute):
3643         * html/HTMLFrameSetElement.h:
3644         (HTMLFrameSetElement):
3645         * html/HTMLIFrameElement.cpp:
3646         (WebCore::HTMLIFrameElement::parseAttribute):
3647         * html/HTMLIFrameElement.h:
3648         (HTMLIFrameElement):
3649         * html/HTMLImageElement.cpp:
3650         (WebCore::HTMLImageElement::parseAttribute):
3651         * html/HTMLImageElement.h:
3652         (HTMLImageElement):
3653         * html/HTMLInputElement.cpp:
3654         (WebCore::HTMLInputElement::parseAttribute):
3655         (WebCore::HTMLInputElement::parseMaxLengthAttribute):
3656         * html/HTMLInputElement.h:
3657         (HTMLInputElement):
3658         * html/HTMLKeygenElement.cpp:
3659         (WebCore::HTMLKeygenElement::parseAttribute):
3660         * html/HTMLKeygenElement.h:
3661         (HTMLKeygenElement):
3662         * html/HTMLLIElement.cpp:
3663         (WebCore::HTMLLIElement::parseAttribute):
3664         * html/HTMLLIElement.h:
3665         (HTMLLIElement):
3666         * html/HTMLLinkElement.cpp:
3667         (WebCore::HTMLLinkElement::parseAttribute):
3668         * html/HTMLLinkElement.h:
3669         (HTMLLinkElement):
3670         * html/HTMLMapElement.cpp:
3671         (WebCore::HTMLMapElement::parseAttribute):
3672         * html/HTMLMapElement.h:
3673         (HTMLMapElement):
3674         * html/HTMLMediaElement.cpp:
3675         (WebCore::HTMLMediaElement::parseAttribute):
3676         * html/HTMLMediaElement.h:
3677         * html/HTMLMetaElement.cpp:
3678         (WebCore::HTMLMetaElement::parseAttribute):
3679         * html/HTMLMetaElement.h:
3680         (HTMLMetaElement):
3681         * html/HTMLMeterElement.cpp:
3682         (WebCore::HTMLMeterElement::parseAttribute):
3683         * html/HTMLMeterElement.h:
3684         (HTMLMeterElement):
3685         * html/HTMLOListElement.cpp:
3686         (WebCore::HTMLOListElement::parseAttribute):
3687         * html/HTMLOListElement.h:
3688         (HTMLOListElement):
3689         * html/HTMLObjectElement.cpp:
3690         (WebCore::HTMLObjectElement::parseAttribute):
3691         * html/HTMLObjectElement.h:
3692         (HTMLObjectElement):
3693         * html/HTMLOptGroupElement.cpp:
3694         (WebCore::HTMLOptGroupElement::parseAttribute):
3695         * html/HTMLOptGroupElement.h:
3696         * html/HTMLOptionElement.cpp:
3697         (WebCore::HTMLOptionElement::parseAttribute):
3698         * html/HTMLOptionElement.h:
3699         (HTMLOptionElement):
3700         * html/HTMLOutputElement.cpp:
3701         (WebCore::HTMLOutputElement::parseAttribute):
3702         * html/HTMLOutputElement.h:
3703         (HTMLOutputElement):
3704         * html/HTMLProgressElement.cpp:
3705         (WebCore::HTMLProgressElement::parseAttribute):
3706         * html/HTMLProgressElement.h:
3707         * html/HTMLScriptElement.cpp:
3708         (WebCore::HTMLScriptElement::parseAttribute):
3709         * html/HTMLScriptElement.h:
3710         (HTMLScriptElement):
3711         * html/HTMLSelectElement.cpp:
3712         (WebCore::HTMLSelectElement::parseAttribute):
3713         (WebCore::HTMLSelectElement::parseMultipleAttribute):
3714         * html/HTMLSelectElement.h:
3715         * html/HTMLStyleElement.cpp:
3716         (WebCore::HTMLStyleElement::parseAttribute):
3717         * html/HTMLStyleElement.h:
3718         (HTMLStyleElement):
3719         * html/HTMLTableCellElement.cpp:
3720         (WebCore::HTMLTableCellElement::parseAttribute):
3721         * html/HTMLTableCellElement.h:
3722         (HTMLTableCellElement):
3723         * html/HTMLTableColElement.cpp:
3724         (WebCore::HTMLTableColElement::parseAttribute):
3725         * html/HTMLTableColElement.h:
3726         (HTMLTableColElement):
3727         * html/HTMLTableElement.cpp:
3728         (WebCore::HTMLTableElement::parseAttribute):
3729         * html/HTMLTableElement.h:
3730         (HTMLTableElement):
3731         * html/HTMLTextAreaElement.cpp:
3732         (WebCore::HTMLTextAreaElement::parseAttribute):
3733         * html/HTMLTextAreaElement.h:
3734         (HTMLTextAreaElement):
3735         * html/HTMLTextFormControlElement.cpp:
3736         (WebCore::HTMLTextFormControlElement::parseAttribute):
3737         * html/HTMLTextFormControlElement.h:
3738         (HTMLTextFormControlElement):
3739         * html/HTMLTrackElement.cpp:
3740         (WebCore::HTMLTrackElement::parseAttribute):
3741         * html/HTMLTrackElement.h:
3742         (HTMLTrackElement):
3743         * html/HTMLVideoElement.cpp:
3744         (WebCore::HTMLVideoElement::parseAttribute):
3745         * html/HTMLVideoElement.h:
3746         (HTMLVideoElement):
3747         * html/shadow/HTMLContentElement.cpp:
3748         (WebCore::HTMLContentElement::parseAttribute):
3749         * html/shadow/HTMLContentElement.h:
3750         (HTMLContentElement):
3751         * mathml/MathMLElement.cpp:
3752         (WebCore::MathMLElement::parseAttribute):
3753         * mathml/MathMLElement.h:
3754         (MathMLElement):
3755         * svg/SVGAElement.cpp:
3756         (WebCore::SVGAElement::parseAttribute):
3757         * svg/SVGAElement.h:
3758         (SVGAElement):
3759         * svg/SVGAnimateMotionElement.cpp:
3760         (WebCore::SVGAnimateMotionElement::parseAttribute):
3761         * svg/SVGAnimateMotionElement.h:
3762         (SVGAnimateMotionElement):
3763         * svg/SVGAnimateTransformElement.cpp:
3764         (WebCore::SVGAnimateTransformElement::parseAttribute):
3765         * svg/SVGAnimateTransformElement.h:
3766         (SVGAnimateTransformElement):
3767         * svg/SVGAnimationElement.cpp:
3768         (WebCore::SVGAnimationElement::parseAttribute):
3769         * svg/SVGAnimationElement.h:
3770         (SVGAnimationElement):
3771         * svg/SVGCircleElement.cpp:
3772         (WebCore::SVGCircleElement::parseAttribute):
3773         * svg/SVGCircleElement.h:
3774         (SVGCircleElement):
3775         * svg/SVGClipPathElement.cpp:
3776         (WebCore::SVGClipPathElement::parseAttribute):
3777         * svg/SVGClipPathElement.h:
3778         (SVGClipPathElement):
3779         * svg/SVGComponentTransferFunctionElement.cpp:
3780         (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
3781         * svg/SVGComponentTransferFunctionElement.h:
3782         (SVGComponentTransferFunctionElement):
3783         * svg/SVGCursorElement.cpp:
3784         (WebCore::SVGCursorElement::parseAttribute):
3785         * svg/SVGCursorElement.h:
3786         (SVGCursorElement):
3787         * svg/SVGElement.cpp:
3788         (WebCore::SVGElement::reportAttributeParsingError):
3789         (WebCore::SVGElement::parseAttribute):
3790         * svg/SVGElement.h:
3791         (SVGElement):
3792         * svg/SVGEllipseElement.cpp:
3793         (WebCore::SVGEllipseElement::parseAttribute):
3794         * svg/SVGEllipseElement.h:
3795         (SVGEllipseElement):
3796         * svg/SVGExternalResourcesRequired.cpp:
3797         (WebCore::SVGExternalResourcesRequired::parseAttribute):
3798         * svg/SVGExternalResourcesRequired.h:
3799         (SVGExternalResourcesRequired):
3800         * svg/SVGFEBlendElement.cpp:
3801         (WebCore::SVGFEBlendElement::parseAttribute):
3802         * svg/SVGFEBlendElement.h:
3803         (SVGFEBlendElement):
3804         * svg/SVGFEColorMatrixElement.cpp:
3805         (WebCore::SVGFEColorMatrixElement::parseAttribute):
3806         * svg/SVGFEColorMatrixElement.h:
3807         (SVGFEColorMatrixElement):
3808         * svg/SVGFEComponentTransferElement.cpp:
3809         (WebCore::SVGFEComponentTransferElement::parseAttribute):
3810         * svg/SVGFEComponentTransferElement.h:
3811         (SVGFEComponentTransferElement):
3812         * svg/SVGFECompositeElement.cpp:
3813         (WebCore::SVGFECompositeElement::parseAttribute):
3814         * svg/SVGFECompositeElement.h:
3815         (SVGFECompositeElement):
3816         * svg/SVGFEConvolveMatrixElement.cpp:
3817         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
3818         * svg/SVGFEConvolveMatrixElement.h:
3819         (SVGFEConvolveMatrixElement):
3820         * svg/SVGFEDiffuseLightingElement.cpp:
3821         (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
3822         * svg/SVGFEDiffuseLightingElement.h:
3823         (SVGFEDiffuseLightingElement):
3824         * svg/SVGFEDisplacementMapElement.cpp:
3825         (WebCore::SVGFEDisplacementMapElement::parseAttribute):
3826         * svg/SVGFEDisplacementMapElement.h:
3827         (SVGFEDisplacementMapElement):
3828         * svg/SVGFEDropShadowElement.cpp:
3829         (WebCore::SVGFEDropShadowElement::parseAttribute):
3830         * svg/SVGFEDropShadowElement.h:
3831         (SVGFEDropShadowElement):
3832         * svg/SVGFEGaussianBlurElement.cpp:
3833         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
3834         * svg/SVGFEGaussianBlurElement.h:
3835         (SVGFEGaussianBlurElement):
3836         * svg/SVGFEImageElement.cpp:
3837         (WebCore::SVGFEImageElement::parseAttribute):
3838         * svg/SVGFEImageElement.h:
3839         (SVGFEImageElement):
3840         * svg/SVGFELightElement.cpp:
3841         (WebCore::SVGFELightElement::parseAttribute):
3842         * svg/SVGFELightElement.h:
3843         (SVGFELightElement):
3844         * svg/SVGFEMergeNodeElement.cpp:
3845         (WebCore::SVGFEMergeNodeElement::parseAttribute):
3846         * svg/SVGFEMergeNodeElement.h:
3847         (SVGFEMergeNodeElement):
3848         * svg/SVGFEMorphologyElement.cpp:
3849         (WebCore::SVGFEMorphologyElement::parseAttribute):
3850         * svg/SVGFEMorphologyElement.h:
3851         (SVGFEMorphologyElement):
3852         * svg/SVGFEOffsetElement.cpp:
3853         (WebCore::SVGFEOffsetElement::parseAttribute):
3854         * svg/SVGFEOffsetElement.h:
3855         (SVGFEOffsetElement):
3856         * svg/SVGFESpecularLightingElement.cpp:
3857         (WebCore::SVGFESpecularLightingElement::parseAttribute):
3858         * svg/SVGFESpecularLightingElement.h:
3859         (SVGFESpecularLightingElement):
3860         * svg/SVGFETileElement.cpp:
3861         (WebCore::SVGFETileElement::parseAttribute):
3862         * svg/SVGFETileElement.h:
3863         (SVGFETileElement):
3864         * svg/SVGFETurbulenceElement.cpp:
3865         (WebCore::SVGFETurbulenceElement::parseAttribute):
3866         * svg/SVGFETurbulenceElement.h:
3867         (SVGFETurbulenceElement):
3868         * svg/SVGFilterElement.cpp:
3869         (WebCore::SVGFilterElement::parseAttribute):
3870         * svg/SVGFilterElement.h:
3871         (SVGFilterElement):
3872         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3873         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
3874         * svg/SVGFilterPrimitiveStandardAttributes.h:
3875         (SVGFilterPrimitiveStandardAttributes):
3876         * svg/SVGFitToViewBox.h:
3877         (WebCore::SVGFitToViewBox::parseAttribute):
3878         * svg/SVGFontFaceElement.cpp:
3879         (WebCore::SVGFontFaceElement::parseAttribute):
3880         * svg/SVGFontFaceElement.h:
3881         (SVGFontFaceElement):
3882         * svg/SVGFontFaceUriElement.cpp:
3883         (WebCore::SVGFontFaceUriElement::parseAttribute):
3884         * svg/SVGFontFaceUriElement.h:
3885         (SVGFontFaceUriElement):
3886         * svg/SVGForeignObjectElement.cpp:
3887         (WebCore::SVGForeignObjectElement::parseAttribute):
3888         * svg/SVGForeignObjectElement.h:
3889         (SVGForeignObjectElement):
3890         * svg/SVGGElement.cpp:
3891         (WebCore::SVGGElement::parseAttribute):
3892         * svg/SVGGElement.h:
3893         (SVGGElement):
3894         * svg/SVGGlyphElement.cpp:
3895         (WebCore::SVGGlyphElement::parseAttribute):
3896         * svg/SVGGlyphElement.h:
3897         (SVGGlyphElement):
3898         * svg/SVGGlyphRefElement.cpp:
3899         (WebCore::SVGGlyphRefElement::parseAttribute):
3900         * svg/SVGGlyphRefElement.h:
3901         * svg/SVGGradientElement.cpp:
3902         (WebCore::SVGGradientElement::parseAttribute):
3903         * svg/SVGGradientElement.h:
3904         * svg/SVGImageElement.cpp:
3905         (WebCore::SVGImageElement::parseAttribute):
3906         * svg/SVGImageElement.h:
3907         (SVGImageElement):
3908         * svg/SVGLangSpace.cpp:
3909         (WebCore::SVGLangSpace::parseAttribute):
3910         * svg/SVGLangSpace.h:
3911         (SVGLangSpace):
3912         * svg/SVGLineElement.cpp:
3913         (WebCore::SVGLineElement::parseAttribute):
3914         * svg/SVGLineElement.h:
3915         (SVGLineElement):
3916         * svg/SVGLinearGradientElement.cpp:
3917         (WebCore::SVGLinearGradientElement::parseAttribute):
3918         * svg/SVGLinearGradientElement.h:
3919         (SVGLinearGradientElement):
3920         * svg/SVGMPathElement.cpp:
3921         (WebCore::SVGMPathElement::parseAttribute):
3922         * svg/SVGMPathElement.h:
3923         (SVGMPathElement):
3924         * svg/SVGMarkerElement.cpp:
3925         (WebCore::SVGMarkerElement::parseAttribute):
3926         * svg/SVGMarkerElement.h:
3927         (SVGMarkerElement):
3928         * svg/SVGMaskElement.cpp:
3929         (WebCore::SVGMaskElement::parseAttribute):
3930         * svg/SVGMaskElement.h:
3931         (SVGMaskElement):
3932         * svg/SVGPathElement.cpp:
3933         (WebCore::SVGPathElement::parseAttribute):
3934         * svg/SVGPathElement.h:
3935         (SVGPathElement):
3936         * svg/SVGPatternElement.cpp:
3937         (WebCore::SVGPatternElement::parseAttribute):
3938         * svg/SVGPatternElement.h:
3939         (SVGPatternElement):
3940         * svg/SVGPolyElement.cpp:
3941         (WebCore::SVGPolyElement::parseAttribute):
3942         * svg/SVGPolyElement.h:
3943         (SVGPolyElement):
3944         * svg/SVGRadialGradientElement.cpp:
3945         (WebCore::SVGRadialGradientElement::parseAttribute):
3946         * svg/SVGRadialGradientElement.h:
3947         (SVGRadialGradientElement):
3948         * svg/SVGRectElement.cpp:
3949         (WebCore::SVGRectElement::parseAttribute):
3950         * svg/SVGRectElement.h:
3951         (SVGRectElement):
3952         * svg/SVGSVGElement.cpp:
3953         (WebCore::SVGSVGElement::parseAttribute):
3954         * svg/SVGSVGElement.h:
3955         (SVGSVGElement):
3956         * svg/SVGScriptElement.cpp:
3957         (WebCore::SVGScriptElement::parseAttribute):
3958         * svg/SVGScriptElement.h:
3959         (SVGScriptElement):
3960         * svg/SVGStopElement.cpp:
3961         (WebCore::SVGStopElement::parseAttribute):
3962         * svg/SVGStopElement.h:
3963         (SVGStopElement):
3964         * svg/SVGStyleElement.cpp:
3965         (WebCore::SVGStyleElement::parseAttribute):
3966         * svg/SVGStyleElement.h:
3967         (SVGStyleElement):
3968         * svg/SVGStyledElement.cpp:
3969         (WebCore::SVGStyledElement::parseAttribute):
3970         * svg/SVGStyledElement.h:
3971         (SVGStyledElement):
3972         * svg/SVGStyledTransformableElement.cpp:
3973         (WebCore::SVGStyledTransformableElement::parseAttribute):
3974         * svg/SVGStyledTransformableElement.h:
3975         (SVGStyledTransformableElement):
3976         * svg/SVGSymbolElement.cpp:
3977         (WebCore::SVGSymbolElement::parseAttribute):
3978         * svg/SVGSymbolElement.h:
3979         (SVGSymbolElement):
3980         * svg/SVGTRefElement.cpp:
3981         (WebCore::SVGTRefElement::parseAttribute):
3982         * svg/SVGTRefElement.h:
3983         (SVGTRefElement):
3984         * svg/SVGTests.cpp:
3985         (WebCore::SVGTests::parseAttribute):
3986         * svg/SVGTests.h:
3987         (SVGTests):
3988         * svg/SVGTextContentElement.cpp:
3989         (WebCore::SVGTextContentElement::parseAttribute):
3990         * svg/SVGTextContentElement.h:
3991         (SVGTextContentElement):
3992         * svg/SVGTextElement.cpp:
3993         (WebCore::SVGTextElement::parseAttribute):
3994         * svg/SVGTextElement.h:
3995         (SVGTextElement):
3996         * svg/SVGTextPathElement.cpp:
3997         (WebCore::SVGTextPathElement::parseAttribute):
3998         * svg/SVGTextPathElement.h:
3999         * svg/SVGTextPositioningElement.cpp:
4000         (WebCore::SVGTextPositioningElement::parseAttribute):
4001         * svg/SVGTextPositioningElement.h:
4002         (SVGTextPositioningElement):
4003         * svg/SVGURIReference.cpp:
4004         (WebCore::SVGURIReference::parseAttribute):
4005         * svg/SVGURIReference.h:
4006         (SVGURIReference):
4007         * svg/SVGUseElement.cpp:
4008         (WebCore::SVGUseElement::parseAttribute):
4009         * svg/SVGUseElement.h:
4010         (SVGUseElement):
4011         * svg/SVGViewElement.cpp:
4012         (WebCore::SVGViewElement::parseAttribute):
4013         * svg/SVGViewElement.h:
4014         (SVGViewElement):
4015         * svg/SVGZoomAndPan.h:
4016         (WebCore::SVGZoomAndPan::parseAttribute):
4017         * svg/animation/SVGSMILElement.cpp:
4018         (WebCore::SVGSMILElement::parseAttribute):
4019         * svg/animation/SVGSMILElement.h:
4020         (SVGSMILElement):
4021
4022 2012-11-18  Andreas Kling  <akling@apple.com>
4023
4024         StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
4025         <http://webkit.org/b/102596>
4026
4027         Reviewed by Antti Koivisto.
4028
4029         Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
4030         later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.
4031
4032         * css/StyleResolver.cpp:
4033         (WebCore::haveIdenticalStyleAffectingAttributes):
4034
4035 2012-11-17  Jon Lee  <jonlee@apple.com>
4036
4037         Simulated mouse events should return an accurate offset
4038         https://bugs.webkit.org/show_bug.cgi?id=102606
4039         <rdar://problem/12725627>
4040
4041         Reviewed by Brady Eidson.
4042
4043         A check to see if the event is simulated prior to calculating the offset has existed for a
4044         long time (since at least r14916). Back then the check was needed because the offset was
4045         incrementally adjusted when the target was assigned (through
4046         MouseRelatedEvent::receivedTarget()).
4047
4048         Since r82225, we started calculating the offset only when needed, and calculating the offset
4049         from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
4050         the isSimulated check is irrelevant, and we should remove it.
4051
4052         Tests are not possible because all uses of simulated mouse events provide no underlying
4053         event, so the offset is never recalculated.
4054
4055         * dom/MouseRelatedEvent.cpp:
4056         (WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.
4057
4058 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4059
4060         Don't say there are dirty overlay scrollbars when they are clipped out
4061         https://bugs.webkit.org/show_bug.cgi?id=102609
4062
4063         Reviewed by Brady Eidson.
4064
4065         Painting overlay scrollbars involves a second painting pass over the entire
4066         RenderLayer subtree for a compositing layer, which can be very expensive.
4067         
4068         Avoid this when possible by detecting when overflow controls are not in
4069         the damage rect.
4070
4071         * rendering/RenderLayer.cpp:
4072         (WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
4073         for the horizontal scrollbar.
4074         (WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
4075         for the vertical scrollbar.
4076         (WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
4077         and rectForVerticalScrollbar().
4078         (WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
4079         of the present overflow controls intersect the given local rect.
4080         (WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
4081         doesn't intersect any of the overflow controls.
4082         * rendering/RenderLayer.h:
4083         (RenderLayer):
4084
4085 2012-11-17  Adam Barth  <abarth@webkit.org>
4086
4087         REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
4088         https://bugs.webkit.org/show_bug.cgi?id=101428
4089
4090         Reviewed by Geoffrey Garen.
4091
4092         JSNodeOwner has some smarts that wrappers of subclasses of Node need to
4093         call during garbage collection. This patch teaches subclasses of Node
4094         to have their JSMumbleOwner objects inherit from JSNodeOwner.
4095
4096         The immediate benefit of this patch is that we correctly avoid
4097         collecting wrappers for HTMLAudioElements when they are reachable from
4098         the DOM.
4099
4100         * bindings/scripts/CodeGeneratorJS.pm:
4101         (GenerateHeader):
4102         (GenerateImplementation):
4103
4104 2012-11-17  Elliott Sprehn  <esprehn@chromium.org>
4105
4106         Expose JSObject::removeDirect and PrivateName to WebCore
4107         https://bugs.webkit.org/show_bug.cgi?id=102546
4108
4109         Reviewed by Geoffrey Garen.
4110
4111         Add forwarding header for PrivateName, so JSDependentRetained works.
4112
4113         No new tests, just adding headers.
4114
4115         * ForwardingHeaders/runtime/PrivateName.h: Added.
4116
4117 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4118
4119         Reduce the crazy number of parameters to RenderLayer clip-rect functions
4120         https://bugs.webkit.org/show_bug.cgi?id=102604
4121
4122         Reviewed by Dan Bernstein.
4123
4124         Many of the RenderLayer member functions related to clip rect computation
4125         took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
4126         that we pass to these functions
4127         
4128         No functional changes.
4129
4130         * rendering/RenderLayer.cpp:
4131         (WebCore::RenderLayer::paintLayer):
4132         (WebCore::RenderLayer::paintLayerContents):
4133         (WebCore::RenderLayer::hitTestLayer):
4134         (WebCore::RenderLayer::updateClipRects):
4135         (WebCore::RenderLayer::calculateClipRects):
4136         (WebCore::RenderLayer::parentClipRects):
4137         (WebCore::RenderLayer::backgroundClipRect):
4138         (WebCore::RenderLayer::calculateRects):
4139         (WebCore::RenderLayer::childrenClipRect):
4140         (WebCore::RenderLayer::selfClipRect):
4141         (WebCore::RenderLayer::localClipRect):
4142         * rendering/RenderLayer.h:
4143         (WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
4144         (ClipRectsContext):
4145         (RenderLayer):
4146         (WebCore::RenderLayer::clipRects):
4147         * rendering/RenderLayerBacking.cpp:
4148         (WebCore::RenderLayerBacking::updateCompositedBounds):
4149         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4150         * rendering/RenderLayerCompositor.cpp:
4151         (WebCore::RenderLayerCompositor::addToOverlapMap):
4152         (WebCore::RenderLayerCompositor::clippedByAncestor):
4153         * rendering/RenderTreeAsText.cpp:
4154         (WebCore::writeLayers):
4155
4156 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4157
4158         Simplify bounds computation for the RenderView's layer
4159         https://bugs.webkit.org/show_bug.cgi?id=102597
4160
4161         Reviewed by Anders Carlsson.
4162
4163         Computing the bounds of the main layer (that of the RenderView) used to do
4164         a full RenderLayer walk, taking the union of the bounds of all the sublayers,
4165         which is very expensive on large pages.
4166         
4167         For the RenderView we can avoid that entirely and just use the RenderView's
4168         document rect. Since page scaling happens as a transform on this layer,
4169         we want the unscaled document rect.
4170
4171         * rendering/RenderLayer.cpp:
4172         (WebCore::RenderLayer::calculateLayerBounds):
4173
4174 2012-11-17  Eric Seidel  <eric@webkit.org>
4175
4176         Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
4177         https://bugs.webkit.org/show_bug.cgi?id=102601
4178
4179         Reviewed by Adam Barth.
4180
4181         From my investigations all of these classes exist only to be exposed
4182         to the web (via JavaScript) and are not used internally by WebCore.
4183         I beleive all of them always have wrappers.
4184         These were found using this code:
4185         https://bugs.webkit.org/show_bug.cgi?id=102539#c2
4186
4187         Geolocation -- navigator.geolocation
4188         WebKitCSSMatrix -- represent matrixes in JS through various APIs
4189         DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
4190         Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
4191         ValidityState -- formControl.validity
4192         CanvasRenderingContext -- canvas.getContext()
4193         DOMApplicationCache -- window.appcache
4194         Screen -- window.screen
4195         DOMMimeTypeArray -- navigator.mimetypes
4196         DOMPlugin -- navigator.plugins[0]
4197         DOMPluginArray -- navigator.plugins
4198
4199         * Modules/geolocation/Geolocation.h:
4200         * css/WebKitCSSMatrix.h:
4201         * dom/DOMStringMap.h:
4202         * dom/NamedNodeMap.h:
4203         * dom/NodeIterator.h:
4204         * dom/TreeWalker.h:
4205         * fileapi/Blob.h:
4206         * fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
4207         (FileList):
4208         (WebCore::FileList::create):
4209         (WebCore::FileList::length):
4210         (WebCore::FileList::isEmpty):
4211         (WebCore::FileList::clear):
4212         (WebCore::FileList::append):
4213         * html/ValidityState.h:
4214         * html/canvas/CanvasRenderingContext.h:
4215         * loader/appcache/DOMApplicationCache.h:
4216         * page/Screen.h:
4217         * platform/graphics/wince/MediaPlayerProxy.cpp:
4218         (WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
4219         * plugins/DOMMimeTypeArray.h:
4220         * plugins/DOMPlugin.h:
4221         * plugins/DOMPluginArray.h:
4222
4223 2012-11-17  Alexandru Chiculita  <achicu@adobe.com>
4224
4225         [Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
4226         https://bugs.webkit.org/show_bug.cgi?id=101801
4227
4228         Reviewed by Noam Rosenthal.
4229
4230         Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
4231         Also added a new API on TextureMapper that receives a notification when the shader
4232         is no longer needed.
4233
4234         No new tests, the code is tested by existing tests.
4235
4236         * platform/graphics/filters/CustomFilterOperation.h:
4237         (WebCore::CustomFilterOperation::setProgram):
4238         (CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
4239         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
4240         (WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
4241         (WebCore):
4242         * platform/graphics/filters/CustomFilterValidatedProgram.h:
4243         (CustomFilterValidatedProgram):
4244         * platform/graphics/texmap/TextureMapper.h:
4245         (WebCore):
4246         (TextureMapper):
4247         (WebCore::TextureMapper::removeCachedCustomFilterProgram):
4248         Function to be called by the platform code, when the shader is no longer
4249         needed. This implementation is empty and overridden in TextureMapperGL.
4250         * platform/graphics/texmap/TextureMapperGL.cpp:
4251         (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
4252         Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
4253         is no longer needed.
4254         (WebCore):
4255         (WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
4256         shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
4257         * platform/graphics/texmap/TextureMapperGL.h:
4258         (WebCore):
4259         (TextureMapperGL):
4260
4261 2012-11-17  Brady Eidson  <beidson@apple.com>
4262
4263         Add an integer identifier field to AuthenticationChallengeBase.
4264         https://bugs.webkit.org/show_bug.cgi?id=102593
4265
4266         Reviewed by Darin Adler.
4267
4268         This is to support linking two different challenges that might not compare as equal but that 
4269         represent the same logical authentication challenge.
4270
4271         One example is in an IPC environment where the platform challenge can only exist in one process.
4272
4273         No new tests (Platform support, no effect in tested configs).
4274
4275         * WebCore.exp.in:
4276
4277         * platform/network/AuthenticationChallengeBase.cpp:
4278         (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
4279         * platform/network/AuthenticationChallengeBase.h:
4280         (WebCore::AuthenticationChallengeBase::identifier):
4281
4282         * platform/network/cf/AuthenticationChallenge.h:
4283         * platform/network/mac/AuthenticationMac.mm:
4284         (WebCore::generateUniqueIdentifier):
4285         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4286           constructing a challenge from an NSURLAuthenticationChallenge.
4287
4288         * platform/network/cf/AuthenticationCF.cpp:
4289         (WebCore::generateUniqueIdentifier):
4290         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4291           constructing a challenge from a CFURLAuthChallengeRef.
4292
4293         Implement the new constructor form for ports relevant to WebKit2:
4294         * platform/network/qt/AuthenticationChallenge.h:
4295         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4296         * platform/network/soup/AuthenticationChallenge.h:
4297         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4298         * platform/network/win/AuthenticationChallenge.h:
4299         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4300
4301 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4302
4303         Dump the tile cache extent in layout tests
4304         https://bugs.webkit.org/show_bug.cgi?id=102600
4305
4306         Reviewed by Anders Carlsson.
4307
4308         When dumping tiled layer stats in layout tests, also dump the extent
4309         of the tile grid. This will allow us to detect issues related
4310         to zooming, which is not possible with the existing tile coverage rect,
4311         which is dumped in layer (not tile) coordinates.
4312
4313         * platform/graphics/TiledBacking.h: Added tileGridExtent().
4314         * platform/graphics/ca/GraphicsLayerCA.cpp:
4315         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
4316         * platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
4317         * platform/graphics/ca/mac/TileCache.mm:
4318         (WebCore::TileCache::getTileIndexRangeForRect):
4319         (WebCore::TileCache::tileGridExtent): Return a rect with the size of
4320         the grid as top,left width,height.
4321
4322 2012-11-17  Andreas Kling  <akling@apple.com>
4323
4324         Avoid full style recalc when 'style' attribute changes.
4325         <http://webkit.org/b/78718>
4326
4327         Reviewed by Anders Carlsson.
4328
4329         Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
4330         to reduce the amount of work done in recalcStyle().
4331
4332         * dom/StyledElement.cpp:
4333         (WebCore::StyledElement::styleAttributeChanged):
4334
4335 2012-11-17  Li Yin  <li.yin@intel.com>
4336
4337         Remove coneGain and distanceGain attributes from PannerNode.idl
4338         https://bugs.webkit.org/show_bug.cgi?id=102343
4339
4340         Reviewed by Chris Rogers.
4341
4342         Removing .coneGain and .distanceGain as publicly accessible values,
4343         since normally they only need to be calculated internally.
4344
4345         No changes to tests, since these attributes were not tested and are being removed.
4346
4347         * Modules/webaudio/PannerNode.idl:
4348
4349 2012-11-17  Balazs Kelemen  <kbalazs@webkit.org>
4350
4351         [Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
4352         https://bugs.webkit.org/show_bug.cgi?id=102530
4353
4354         Reviewed by Noam Rosenthal.
4355
4356         GraphicsLayer::addAnimation is called no only when a new animation is created
4357         but also when resuming a paused animation. If this is a resumed animation we
4358         should remove the obsolate GraphicsLayerAnimation object.
4359
4360         Tested by animations tests.
4361
4362         * platform/graphics/GraphicsLayerAnimation.cpp:
4363         (WebCore::GraphicsLayerAnimations::add):
4364
4365 2012-11-17  Martin Robinson  <mrobinson@igalia.com>
4366
4367         [Soup] CredentialStorage should only be used for HTTP-family requests
4368         https://bugs.webkit.org/show_bug.cgi?id=102582
4369
4370         Reviewed by Gustavo Noronha Silva.
4371
4372         Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
4373         only expects to handle requests in the HTTP family.
4374
4375         No new tests. This is covered by existing tests.
4376
4377         * platform/network/ResourceHandle.h:
4378         (ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
4379         helper returns false when firstRequest() is a non-HTTP family request.
4380         * platform/network/soup/ResourceHandleSoup.cpp:
4381         (WebCore::applyAuthenticationToRequest): Use the new helper.
4382         (WebCore::createSoupRequestAndMessageForHandle): Ditto.
4383         (WebCore::ResourceHandle::start): Ditto.
4384         (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
4385         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
4386         (WebCore::ResourceHandle::receivedCredential): Ditto.
4387
4388 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4389
4390         Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
4391
4392         * rendering/RenderLayer.cpp:
4393         (WebCore::RenderLayer::paintOverflowControls):
4394
4395 2012-11-16  Benjamin Poulain  <bpoulain@apple.com>
4396
4397         Improve the performance of rect transform
4398         https://bugs.webkit.org/show_bug.cgi?id=101828
4399
4400         Reviewed by Simon Fraser.
4401
4402         Mapping a rect and a quad by a transform is a common operation because
4403         we use it to recompute the repaint rect, overflow rect, etc.
4404
4405         The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
4406         Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
4407         and perform many comparison.
4408         Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
4409         too many.
4410
4411         This patch just cut the intermediary calls.
4412
4413         On ARM, putting the operation together also has the advantage of loading the matrix
4414         only once in registers and reusing it for every point.
4415
4416         * platform/graphics/transforms/TransformationMatrix.cpp:
4417         (WebCore::TransformationMatrix::mapPoint):
4418         (WebCore::TransformationMatrix::mapRect):
4419         * platform/graphics/transforms/TransformationMatrix.h:
4420         (WebCore):
4421         (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
4422         point project without doing isIdentityOrTranslation().
4423
4424 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4425
4426         Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
4427         https://bugs.webkit.org/show_bug.cgi?id=102581
4428
4429         Reviewed by Dan Bernstein.
4430
4431         isBlockFlow() is a virtual function call, and shows up in profiles of
4432         Facebook pages as called from RenderBox::computeRectForRepaint().
4433         
4434         It's faster to do the hasColumns() bit-check first. Also replace
4435         a call to layer() with the hasLayer() bit-check.        
4436
4437         * rendering/RenderBox.cpp:
4438         (WebCore::RenderBox::computeRectForRepaint):
4439
4440 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
4441
4442         Unreviewed, rolling out r134817.
4443         http://trac.webkit.org/changeset/134817
4444         https://bugs.webkit.org/show_bug.cgi?id=102576
4445
4446         Broke iframes and causing tons of crashes on ClusterFuzz
4447         (Requested by inferno-sec on #webkit).
4448
4449         * dom/ContainerNode.cpp:
4450         (WebCore::willRemoveChildren):
4451         * dom/ContainerNodeAlgorithms.cpp:
4452         (WebCore::ChildFrameDisconnector::collectDescendant):
4453         * dom/ContainerNodeAlgorithms.h:
4454         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
4455         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
4456         (ChildFrameDisconnector):
4457         (WebCore::ChildFrameDisconnector::collectDescendant):
4458         (WebCore::ChildFrameDisconnector::disconnect):
4459         * dom/Node.cpp:
4460         * dom/Node.h:
4461         (Node):
4462         * dom/NodeRareData.h:
4463         (WebCore::NodeRareData::NodeRareData):
4464         (NodeRareData):
4465         * html/HTMLFrameOwnerElement.cpp:
4466         (WebCore::HTMLFrameOwnerElement::setContentFrame):
4467         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
4468
4469 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4470
4471         Fix overlay scrollbar painting in compositing layers
4472         https://bugs.webkit.org/show_bug.cgi?id=102442
4473
4474         Reviewed by Beth Dakin.
4475
4476         There were two issues with overlay scrollbar painting in
4477         compositing layers.
4478         
4479         First, we'd only ever call setContainsDirtyOverlayScrollbars()
4480         on the RenderView's layer, even when encountering an overlay scrollbar
4481         in some descendant compositing layer. This meant that we'd never
4482         run the paintOverlayScrollbars() code for those child compositing
4483         layers, so sometimes scrollbars were missing there.
4484         
4485         Even after fixing that, we would fail to render scrollbars that
4486         were not in the composited RenderLayer itself. This happened because
4487         we called into RenderLayer::paintOverlayScrollbars(), which called
4488         paintLayer() with flags that only said to paint the overlay scrollbars
4489         but not any descendants, so this paint path would not walk child
4490         RenderLayers.
4491         
4492         Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
4493         ScrollView which is no longer used.
4494
4495         * platform/ScrollView.cpp:
4496         (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
4497         (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
4498         * platform/ScrollView.h:
4499         * rendering/RenderLayer.cpp:
4500         (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
4501         on the compositing ancestor or the root.
4502         Remove call to setContainsScrollableAreaWithOverlayScrollbars().
4503         (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
4504         scrollbars, no need to say we have transparency, and no need to use 
4505         temporary clip rects.
4506         (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
4507         check here was only needed because the compositing entrypoint to painting
4508         overlay scrollbars went via paintLayer(), which isn't normally used as
4509         a composited painting entry point. Now that we no longer call that, we
4510         don't need this special check.
4511         * rendering/RenderLayerBacking.cpp:
4512         (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
4513         painting via paintLayerContents(), not paintOverlayScrollbars(), since
4514         the latter does not traverse sublayers.
4515
4516 2012-11-16  Joshua Bell  <jsbell@chromium.org>
4517
4518         IndexedDB: Assert hit when getting non-existent object store in version change transaction
4519         https://bugs.webkit.org/show_bug.cgi?id=102547
4520
4521         Reviewed by Tony Chang.
4522
4523         Code did not account for the not-found case in "versionchange" transactions, where all
4524         object stores are implicitly in scope.
4525
4526         Test: storage/indexeddb/object-lookups-in-versionchange.html
4527
4528         * Modules/indexeddb/IDBTransaction.cpp:
4529         (WebCore::IDBTransaction::objectStore):
4530
4531 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
4532
4533         Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
4534         https://bugs.webkit.org/show_bug.cgi?id=101874
4535
4536         Reviewed by Dave Hyatt.
4537
4538         RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
4539         lot of time in computeRepaintRects(), which does two ancestor tree walks, once
4540         for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
4541
4542         Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
4543         a RenderGeometryMap as we traverse the layer tree, and then using it to map
4544         the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
4545         now that the RenderGeometryMap can do a better job.
4546         
4547         The clipped overflow rect cannot be mapped simply, so cannot yet make use of
4548         the geometry map.
4549         
4550         Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
4551         Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
4552         
4553         Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
4554         
4555         * page/FrameView.cpp:
4556         (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
4557         to updateLayerPositions(). For partial layouts, we have to push layers
4558         between the root and the enclosing layer of the layout subtree.
4559         The geometry map used for repainting does not use SnapOffsetForTransforms,
4560         so initialize it explicitly with just the UseTransforms flag.
4561         (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
4562         to pass along to updateLayerPositionsAfterScroll().
4563         * rendering/RenderBox.cpp:
4564         (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
4565         parameter with an optional RenderGeometryMap, and it use to map the compute rect to
4566         repaintContainer coordinates.
4567         * rendering/RenderBox.h:
4568         * rendering/RenderGeometryMap.cpp:
4569         (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
4570         flags to use, so that its behavior can match that of mapLocalToContainer(). The
4571         pertinent flag is the confusingly named SnapOffsetForTransforms.
4572         (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
4573         a null container.
4574         (WebCore::RenderGeometryMap::absoluteRect): Ditto.
4575         (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
4576         asserting that we found it. Add point- and rect-based mapping methods
4577         akin to the old absoluteRect/absolutePoint.
4578         (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
4579         (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
4580         layers, ensure that the RenderView is pushed as the first step.
4581         * rendering/RenderGeometryMap.h:
4582         (RenderGeometryMap):
4583         * rendering/RenderLayer.cpp:
4584         (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
4585         that makes the geometry map.
4586         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
4587         that makes the geometry map.
4588         (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
4589         Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
4590         the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
4591         it to computeRepaintRects().
4592         (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
4593         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
4594         geometry map, and pass it to computeRepaintRects().
4595         (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
4596         computation; this could use a geometry map in future if it is shown to be a bottleneck.
4597         * rendering/RenderLayer.h:
4598         (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
4599         was there because the older cached offsetFromRoot logic was sensitive to compositing,
4600         but convertToLayerCoords() is not affected by compositing so this check is not needed,
4601         and actually harmful.
4602         * rendering/RenderLayerCompositor.cpp:
4603         (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
4604         used for overlap testing should not use SnapOffsetForTransforms, so initialize
4605         it explicitly with just the UseTransforms flag.
4606         * rendering/RenderObject.h:
4607         (WebCore::RenderObject::outlineBoundsForRepaint):
4608         * rendering/svg/RenderSVGModelObject.cpp:
4609         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
4610         * rendering/svg/RenderSVGModelObject.h:
4611         (RenderSVGModelObject):
4612
4613 2012-11-16  Alec Flett  <alecflett@chromium.org>
4614
4615         Add tests for explicit serialization values
4616         https://bugs.webkit.org/show_bug.cgi?id=96818
4617
4618         Reviewed by Adam Barth.
4619
4620         Expose direct access to the serialization/deserialization mechanisms
4621         of SerializedScriptValue to DumpRenderTree.
4622
4623         * testing/Internals.cpp:
4624         (WebCore::Internals::serializeObject):
4625         (WebCore):
4626         (WebCore::Internals::deserializeBuffer):
4627         * testing/Internals.h:
4628         (WebCore):
4629         * testing/Internals.idl:
4630
4631 2012-11-16  Andreas Kling  <akling@apple.com>
4632
4633         Exploit shared attribute data to avoid parsing identical "style" attributes.
4634         <http://webkit.org/b/101163>
4635
4636         Reviewed by Antti Koivisto.
4637
4638         Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
4639         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
4640         since the state is no longer per-Element.
4641
4642         * css/StyleResolver.cpp:
4643         (WebCore::isCacheableInMatchedPropertiesCache):
4644
4645             Disable the matched properties cache for styles with non-standard writing-mode.
4646             This is necessary because some CSS properties have different meaning depending on context -
4647             properties handled by CSSProperty::resolveDirectionAwareProperty().
4648
4649             Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
4650             avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
4651             writing-modes in the matched properties cache.
4652
4653         * dom/Node.h:
4654         * dom/ElementAttributeData.cpp:
4655         (WebCore::ElementAttributeData::ElementAttributeData):
4656         * dom/ElementAttributeData.h:
4657         (WebCore::ElementAttributeData::ElementAttributeData):
4658         (ElementAttributeData):
4659         * dom/Element.h:
4660         (WebCore::Element::updateInvalidAttributes):
4661         * dom/Element.cpp:
4662         (WebCore::Element::getAttribute):
4663         (WebCore::Element::removeAttribute):
4664         * dom/StyledElement.h:
4665         (WebCore::StyledElement::invalidateStyleAttribute):
4666         * dom/StyledElement.cpp:
4667         (WebCore::StyledElement::updateStyleAttribute):
4668
4669             Move "style attribute dirty" flag to ElementAttributeData.
4670
4671         (WebCore::Element::cloneAttributesFromElement):
4672
4673             Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
4674             automagically since cloning nodes just refs the original attribute data.
4675
4676         * dom/StyledElement.cpp:
4677         (WebCore::StyledElement::updateStyleAttribute):
4678         (WebCore::StyledElement::setInlineStyleFromString):
4679         (WebCore::StyledElement::styleAttributeChanged):
4680         (WebCore::StyledElement::inlineStyleChanged):
4681
4682             Avoid reparsing the inline style if the element's attribute data is immutable and already has
4683             a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
4684             to make the code more understandable.
4685
4686 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4687
4688         Don't update layer positions on scrolling if we're in the middle of layout
4689         https://bugs.webkit.org/show_bug.cgi?id=102556
4690
4691         Reviewed by Dan Bernstein.
4692
4693         RenderLayer::scrollTo() can be called in the middle of layout. When
4694         that happens we should not waste time updating layer positions,
4695         compositing layers, or widget positions, because we'll do those at the
4696         end of layout anyway.
4697         
4698         This prevents us from having inconsistent RenderLayer state, which
4699         hinders future optimizations in this area.
4700
4701         * rendering/RenderLayer.cpp:
4702         (WebCore::RenderLayer::scrollTo):
4703
4704 2012-11-16  Tony Chang  <tony@chromium.org>
4705
4706         Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
4707         https://bugs.webkit.org/show_bug.cgi?id=102554
4708
4709         Reviewed by Andreas Kling.
4710
4711         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
4712         we're going to revist this feature once additional vendor support is
4713         achieved.
4714
4715         No new tests, just removing an unused define.
4716
4717         * Configurations/FeatureDefines.xcconfig:
4718         * GNUmakefile.features.am:
4719
4720 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
4721
4722         [Chromium] Remove cookie-related functions from PlatformSupport
4723         https://bugs.webkit.org/show_bug.cgi?id=99340
4724
4725         Reviewed by Adam Barth.
4726
4727         Move cookie-related functions out of PlatformSupport and implement
4728         new PlatformCookieJar interface via NetworkContext.
4729
4730         * WebCore.gyp/WebCore.gyp:
4731         * WebCore.gypi:
4732         * loader/CookieJar.cpp:
4733         * loader/chromium/CookieJarChromium.cpp: Removed.
4734         * platform/chromium/PlatformSupport.h:
4735         (WebCore):
4736         (PlatformSupport):
4737         * platform/network/NetworkingContext.h:
4738         (WebKit):
4739         (NetworkingContext):
4740         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
4741         (WebCore::setCookiesFromDOM):
4742         (WebCore::cookiesForDOM):
4743         (WebCore::cookieRequestHeaderFieldValue):
4744         (WebCore::cookiesEnabled):
4745         (WebCore::getRawCookies):
4746         (WebCore::deleteCookie):
4747         (WebCore::getHostnamesWithCookies):
4748         (WebCore::deleteCookiesForHostname):
4749         (WebCore::deleteAllCookies):
4750
4751 2012-11-16  Pablo Flouret  <pablof@motorola.com>
4752
4753         [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
4754         https://bugs.webkit.org/show_bug.cgi?id=70574
4755
4756         Reviewed by Geoffrey Garen.
4757
4758         For scripts that use CORS (via the crossorigin attribute in this case),
4759         don't sanitize the information passed to the window's onerror handler (i.e.
4760         message, url, and line number). Useful for scripts hosted on CDNs.
4761
4762         Tests: http/tests/security/script-crossorigin-onerror-information.html
4763                http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
4764
4765         * WebCore.exp.in:
4766         * WebCore.order:
4767
4768         * bindings/js/JSDOMBinding.cpp:
4769         (WebCore::reportException):
4770         * bindings/js/JSDOMBinding.h:
4771         (WebCore):
4772         * bindings/js/ScriptController.cpp:
4773         (WebCore::ScriptController::evaluateInWorld):
4774         * bindings/js/ScriptSourceCode.h:
4775         (WebCore::ScriptSourceCode::ScriptSourceCode):
4776         (WebCore::ScriptSourceCode::cachedScript):
4777         (ScriptSourceCode):
4778         * bindings/js/WorkerScriptController.cpp:
4779         (WebCore::WorkerScriptController::evaluate):
4780             Keep a reference to the cached script in the ScriptSourceCode, so
4781             that it can be passed around and be available when reporting the
4782             exception.
4783
4784         * dom/ScriptExecutionContext.cpp:
4785         (WebCore::ScriptExecutionContext::sanitizeScriptError):
4786         (WebCore::ScriptExecutionContext::reportException):
4787         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
4788         * dom/ScriptExecutionContext.h:
4789         (WebCore):
4790         (ScriptExecutionContext):
4791             Check if the script passes the access control checks, and if so,
4792             don't sanitize the error information.
4793
4794         * html/parser/HTMLPreloadScanner.cpp:
4795         (WebCore::PreloadTask::processAttributes):
4796         (WebCore::PreloadTask::preload):
4797         (PreloadTask):
4798         (WebCore::PreloadTask::crossOriginModeAllowsCookies):
4799             When preloading script elements, check for the crossorigin attribute
4800             and adjust the request's allowCookies value accordingly. Otherwise
4801             when the script is loaded from the cache later on, the cross origin mode
4802             (anonymous/use-credentials) will be effectively ignored.
4803
4804 2012-11-16  Jon Lee  <jonlee@apple.com>
4805
4806         Change visual look of placeholder
4807         https://bugs.webkit.org/show_bug.cgi?id=102149
4808         <rdar://problem/12695566>
4809
4810         Reviewed by Darin Adler.
4811
4812         Move the button to the lower-right corner. Move the theming into
4813         RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
4814         shadow DOM instead, and the metrics of the button are needed for click passthrough.
4815
4816         * Resources/startButton.png: Added.
4817         * Resources/startButton@2x.png: Added.
4818         * Resources/startButtonPressed.png: Added.
4819         * Resources/startButtonPressed@2x.png: Added.
4820         * WebCore.xcodeproj/project.pbxproj: Add button images.
4821
4822         Maintain variables to track whether the mouse is over the button, and the rect
4823         for the button. If the user clicks in the rect, we render a pressed button.
4824         * rendering/RenderSnapshottedPlugIn.cpp:
4825         (WebCore): Add named constant for bottom and right padding of the button.
4826         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
4827         (WebCore::RenderSnapshottedPlugIn::paintReplaced):
4828         (WebCore::startButtonImage): Returns button image.
4829         (WebCore::startButtonPressedImage): Returns pressed button image.
4830         (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
4831         lower right hand corner, but only if we are active or hovered.
4832         (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
4833         (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
4834         hovering over the plugin rect. With a mouse down event, calculate whether the
4835         mouse position is within the button rect.
4836         (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
4837         contents.
4838         * rendering/RenderSnapshottedPlugIn.h:
4839
4840         Remove theming function for now.
4841         * rendering/RenderTheme.h:
4842         (RenderTheme):
4843         * rendering/RenderThemeMacShared.h:
4844         * rendering/RenderThemeMacShared.mm:
4845
4846 2012-11-16  Eric Seidel  <eric@webkit.org>
4847
4848         Deploy ScriptWrappable to more always-wrapped objects
4849         https://bugs.webkit.org/show_bug.cgi?id=102539
4850
4851         Reviewed by Adam Barth.
4852
4853         Add the ScriptWrappable baseclass to:
4854         CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
4855         ClientRect (element.getBoundingClientRects)
4856         Event (Not all events end up wrapped, but any which live past dispatch do)
4857         NodeList (this covers Static and Dynamic node list types, like document.all)
4858         HTMLCollection (separate from NodeList, for things like table.rows)
4859         Storage (for window.storage, always wrapped)
4860         XMLHttpRequest (always wrapped, created from JS)
4861
4862         This should be a small memory savings as the inline pointer is only 4-8 bytes
4863         instead of the hashmap entry which would be 8-16.  This may also show up
4864         on benchmarks which repeatedly access these objects (like window.storage).
4865
4866         These were found by adding a couple lines of logging-code to
4867         WebCore::createWrapper when we were in the main world, but took the
4868         HashMap (instead of inline) storage path. I used sort and uniq -c
4869         to find the most-frequently wrapped objects (while surfing
4870         a few common sites) and came up with this list.  There are still a few
4871         more complicated objects (like CSSStyleDeclaration) which may benifit
4872         from inline-wrapper-access and will be covered in a later patch.
4873
4874         * css/CSSStyleDeclaration.h:
4875         * dom/ClientRect.h:
4876         * dom/Event.h:
4877         * dom/NodeList.h:
4878         * html/HTMLCollection.h:
4879         * storage/Storage.h:
4880         * xml/XMLHttpRequest.h:
4881
4882 2012-11-16  Jon Lee  <jonlee@apple.com>
4883
4884         Simulated events instances do not all have the same underlying event
4885         https://bugs.webkit.org/show_bug.cgi?id=102468
4886         <rdar://problem/12716331>
4887
4888         Reviewed by Alexey Proskuryakov.
4889
4890         The PassRefPtr with the underlying event is included as an argument for the mouse
4891         down, up, and click events. But the PassRefPtr loses its underlying pointer after
4892         the first simulated mouse down event because it gets assigned to that event's
4893         private m_underlyingEvent variable. We therefore send NULL to the other events.
4894
4895         The fix is for this and related functions to pass the raw pointer.
4896
4897         A layout test is not possible to put together because the call sites that use simulated
4898         events with an underlying event do not send mouse events, and those that send mouse
4899         events have a NULL underlying event.
4900
4901         * dom/EventDispatcher.cpp:
4902         (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
4903         * dom/EventDispatcher.h:
4904         * dom/Node.cpp:
4905         (WebCore::Node::dispatchSimulatedClick): Ditto.
4906         * dom/Node.h:
4907
4908 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4909
4910         Build fix for WinCE after r134936.
4911
4912         * platform/network/win/CookieJarWin.cpp:
4913         (WebCore::cookieRequestHeaderFieldValue):
4914
4915 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
4916
4917         Unreviewed, rolling out r134986.
4918         http://trac.webkit.org/changeset/134986
4919         https://bugs.webkit.org/show_bug.cgi?id=102110
4920
4921         Triggered ASSERT in fast/frames/seamless/seamless-inherited-
4922         origin.html.
4923
4924         * css/StyleResolver.cpp:
4925         (WebCore::StyleResolver::StyleResolver):
4926         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
4927         (WebCore::collectCSSOMWrappers):
4928         * css/StyleResolver.h:
4929         (StyleResolver):
4930         * dom/Document.cpp:
4931         (WebCore::Document::setCompatibilityMode):
4932         * dom/DocumentStyleSheetCollection.cpp:
4933         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
4934         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
4935         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
4936         (WebCore):
4937         (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
4938         (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
4939         (WebCore::DocumentStyleSheetCollection::addUserSheet):
4940         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
4941         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
4942         * dom/DocumentStyleSheetCollection.h:
4943         (DocumentStyleSheetCollection):
4944         (WebCore::DocumentStyleSheetCollection::documentUserSheets):
4945         * page/PageGroup.cpp:
4946         (WebCore::PageGroup::addUserStyleSheetToWorld):
4947         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
4948         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
4949         (WebCore::PageGroup::removeAllUserContent):
4950         (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
4951         * page/PageGroup.h:
4952         (PageGroup):
4953
4954 2012-11-16  Michael Pruett  <michael@68k.org>
4955
4956         IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
4957         https://bugs.webkit.org/show_bug.cgi?id=102430
4958
4959         Reviewed by Adam Barth.
4960
4961         DOMRequestState is currently propagated to some but not all of
4962         the IndexedDB binding utility functions. In order to implement
4963         these functions for JSC, this state must be propagated to all
4964         of the utility functions.
4965
4966         Tests: storage/indexeddb/*
4967
4968         * Modules/indexeddb/IDBCursor.cpp:
4969         (WebCore::IDBCursor::update):
4970         (WebCore::IDBCursor::setValueReady):
4971         * Modules/indexeddb/IDBObjectStore.cpp:
4972         (WebCore::generateIndexKeysForValue):
4973         (WebCore::IDBObjectStore::put):
4974         (WebCore):
4975         * Modules/indexeddb/IDBRequest.cpp:
4976         (WebCore::IDBRequest::onSuccess):
4977         (WebCore::IDBRequest::dispatchEvent):
4978         * Modules/indexeddb/IDBRequest.h:
4979         (WebCore::IDBRequest::requestState):
4980         (IDBRequest):
4981         * bindings/v8/IDBBindingUtilities.cpp:
4982         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
4983         (WebCore::serializeIDBValue):
4984         (WebCore::injectIDBKeyIntoScriptValue):
4985         * bindings/v8/IDBBindingUtilities.h:
4986         (WebCore):
4987
4988 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
4989
4990         Rebaselined run-bindings-tests.
4991         https://bugs.webkit.org/show_bug.cgi?id=102523
4992
4993         Reviewed by Dimitri Glazkov.
4994
4995         Expected results need to be updated after r134931
4996
4997         * bindings/scripts/test/JS/JSTestObj.cpp:
4998         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
4999         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
5000         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
5001         * bindings/scripts/test/V8/V8TestObj.cpp:
5002         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
5003         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
5004         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
5005
5006 2012-11-16  Pratik Solanki  <psolanki@apple.com>
5007
5008         For single element arrays use the pointer into the CFDataRef instead of copying data
5009         https://bugs.webkit.org/show_bug.cgi?id=102306
5010         <rdar://problem/12267471>
5011
5012         Reviewed by Alexey Proskuryakov.
5013
5014         We generally copy the data received from CFNetwork into our own buffers. But if the
5015         CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
5016         and access its memory directly and avoid making a copy.
5017
5018         This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
5019         SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
5020         SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
5021         the memory in the data array.
5022
5023         No new tests because no change in functionality.
5024
5025         * loader/ResourceBuffer.cpp:
5026         (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
5027         * loader/ResourceBuffer.h:
5028         * loader/cache/CachedResource.cpp:
5029         (WebCore::CachedResource::makePurgeable):
5030         * platform/SharedBuffer.cpp:
5031         (WebCore::SharedBuffer::createPurgeableBuffer): Added.
5032         (WebCore::SharedBuffer::data):
5033         * platform/SharedBuffer.h:
5034         * platform/cf/SharedBufferCF.cpp:
5035         (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
5036         (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
5037         (WebCore::SharedBuffer::singleDataArrayBuffer): Added.
5038
5039 2012-11-16  Antti Koivisto  <antti@apple.com>
5040
5041         REGRESSION(r129644): User StyleSheet not applying
5042         https://bugs.webkit.org/show_bug.cgi?id=102110
5043
5044         Reviewed by Andreas Kling.
5045
5046         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
5047         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
5048         
5049         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
5050         It also generally cleans up the code around injected and user stylesheets.
5051
5052         Tests: userscripts/user-script-and-stylesheet.html
5053                userscripts/user-stylesheet-invalidate.html
5054
5055         * css/StyleResolver.cpp:
5056         (WebCore::StyleResolver::StyleResolver):
5057         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
5058         (WebCore::collectCSSOMWrappers):
5059         * css/StyleResolver.h:
5060         (StyleResolver):
5061         * dom/Document.cpp:
5062         (WebCore::Document::setCompatibilityMode):
5063         * dom/DocumentStyleSheetCollection.cpp:
5064         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
5065         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
5066         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
5067         (WebCore):
5068         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
5069         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
5070         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
5071         (WebCore::DocumentStyleSheetCollection::addUserSheet):
5072         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
5073         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
5074         * dom/DocumentStyleSheetCollection.h:
5075         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
5076         (DocumentStyleSheetCollection):
5077         * page/PageGroup.cpp:
5078         (WebCore::PageGroup::addUserStyleSheetToWorld):
5079         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
5080         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
5081         (WebCore::PageGroup::removeAllUserContent):
5082         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
5083         * page/PageGroup.h:
5084         (PageGroup):
5085
5086 2012-11-16  Andreas Kling  <akling@apple.com>
5087
5088         StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
5089         <http://webkit.org/b/102536>
5090
5091         Reviewed by Antti Koivisto.
5092
5093         Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
5094         relevant for sharing style between <input> elements.
5095
5096         Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
5097
5098         * css/StyleResolver.cpp:
5099         (WebCore::StyleResolver::canShareStyleWithControl):
5100         (WebCore::haveIdenticalStyleAffectingAttributes):
5101
5102 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5103
5104         Unreviewed, rolling out r134867.
5105         http://trac.webkit.org/changeset/134867
5106         https://bugs.webkit.org/show_bug.cgi?id=102544
5107
5108         Broke security fuzzier test (heap-buffer-overflow) (Requested
5109         by bfulgham on #webkit).
5110
5111         * platform/audio/Biquad.cpp:
5112         (WebCore::Biquad::process):
5113
5114 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5115
5116         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
5117         https://bugs.webkit.org/show_bug.cgi?id=102382
5118
5119         Reviewed by Adam Barth.
5120
5121         Updating readyState & iceState, and adding iceGatheringState.
5122         Also safeguarding the event timer callback.
5123
5124         Patch covered by existing tests.
5125
5126         * Modules/mediastream/RTCPeerConnection.cpp:
5127         (WebCore::RTCPeerConnection::RTCPeerConnection):
5128         (WebCore::RTCPeerConnection::createOffer):
5129         (WebCore::RTCPeerConnection::createAnswer):
5130         (WebCore::RTCPeerConnection::setLocalDescription):
5131         (WebCore::RTCPeerConnection::localDescription):
5132         (WebCore::RTCPeerConnection::setRemoteDescription):
5133         (WebCore::RTCPeerConnection::remoteDescription):
5134         (WebCore::RTCPeerConnection::updateIce):
5135         (WebCore::RTCPeerConnection::addIceCandidate):
5136         (WebCore::RTCPeerConnection::readyState):
5137         (WebCore::RTCPeerConnection::iceGatheringState):
5138         (WebCore):
5139         (WebCore::RTCPeerConnection::iceState):
5140         (WebCore::RTCPeerConnection::addStream):
5141         (WebCore::RTCPeerConnection::close):
5142         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
5143         (WebCore::RTCPeerConnection::stop):
5144         (WebCore::RTCPeerConnection::changeReadyState):
5145         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
5146         * Modules/mediastream/RTCPeerConnection.h:
5147         (RTCPeerConnection):
5148         * Modules/mediastream/RTCPeerConnection.idl:
5149         * dom/EventNames.h:
5150         (WebCore):
5151         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
5152         (RTCPeerConnectionHandlerClient):
5153         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5154         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
5155         (WebCore):
5156         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5157         (RTCPeerConnectionHandlerChromium):
5158
5159 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5160
5161         Unreviewed, rolling out r134973.
5162         http://trac.webkit.org/changeset/134973
5163         https://bugs.webkit.org/show_bug.cgi?id=99340
5164
5165         Broke compile on at least Mac and Linux.
5166
5167         * WebCore.gyp/WebCore.gyp:
5168         * WebCore.gypi:
5169         * loader/CookieJar.cpp:
5170         * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
5171         (WebCore):
5172         (WebCore::setCookies):
5173         (WebCore::cookies):
5174         (WebCore::cookieRequestHeaderFieldValue):
5175         (WebCore::cookiesEnabled):
5176         (WebCore::getRawCookies):
5177         (WebCore::deleteCookie):
5178         (WebCore::getHostnamesWithCookies):
5179         (WebCore::deleteCookiesForHostname):
5180         (WebCore::deleteAllCookies):
5181         * platform/chromium/PlatformSupport.h:
5182         (WebCore):
5183         (PlatformSupport):
5184         * platform/network/NetworkingContext.h:
5185         * platform/network/chromium/CookieJarChromium.cpp: Removed.
5186
5187 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5188
5189         [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
5190         https://bugs.webkit.org/show_bug.cgi?id=101843
5191
5192         Reviewed by Gustavo Noronha Silva.
5193
5194         Make GtkAuthenticationDialog more general, so that it can be subclassed in 
5195         WebKit2. We cannot use the WebCore authentication-related classes directly there.
5196
5197         No new tests. This patch does not change behavior.
5198
5199         * platform/gtk/GtkAuthenticationDialog.cpp:
5200         (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
5201         some field initializers.
5202         (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
5203         makes it simpler to subclass.
5204         (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
5205         and password here, so that it can be shared with subclasses.
5206         * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
5207         subclasses.
5208
5209 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5210
5211         [Chromium] Remove cookie-related functions from PlatformSupport
5212         https://bugs.webkit.org/show_bug.cgi?id=99340
5213
5214         Reviewed by Adam Barth.
5215
5216         Move cookie-related functions out of PlatformSupport and implement
5217         new PlatformCookieJar interface via NetworkContext.
5218
5219         * WebCore.gyp/WebCore.gyp:
5220         * WebCore.gypi:
5221         * loader/CookieJar.cpp:
5222         * loader/chromium/CookieJarChromium.cpp: Removed.
5223         * platform/chromium/PlatformSupport.h:
5224         (WebCore):
5225         (PlatformSupport):
5226         * platform/network/NetworkingContext.h:
5227         (WebKit):
5228         (NetworkingContext):
5229         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
5230         (WebCore::setCookiesFromDOM):
5231         (WebCore::cookiesForDOM):
5232         (WebCore::cookieRequestHeaderFieldValue):
5233         (WebCore::cookiesEnabled):
5234         (WebCore::getRawCookies):
5235         (WebCore::deleteCookie):
5236         (WebCore::getHostnamesWithCookies):
5237         (WebCore::deleteCookiesForHostname):
5238         (WebCore::deleteAllCookies):
5239
5240 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5241
5242         Fix assertion bug of build fix r134961
5243         https://bugs.webkit.org/show_bug.cgi?id=102533
5244
5245         Reviewed by Martin Robinson.
5246
5247         Assertion condition should be '!d->m_currentWebChallenge.isNull()'
5248
5249         * platform/network/soup/ResourceHandleSoup.cpp:
5250         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5251
5252 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5253
5254         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
5255         https://bugs.webkit.org/show_bug.cgi?id=102386
5256
5257         Reviewed by Adam Barth.
5258
5259         Existing tests expanded to cover patch.
5260
5261         * platform/mediastream/RTCDataChannelDescriptor.cpp:
5262         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
5263         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
5264         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5265         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
5266         (WebCore):
5267         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5268         (WebKit):
5269         (RTCPeerConnectionHandlerChromium):
5270
5271 2012-11-16  Scott Violet  <sky@chromium.org>
5272
5273         [chromium] Copy linux theme related files to default
5274         https://bugs.webkit.org/show_bug.cgi?id=102403
5275
5276         Reviewed by Tony Chang
5277
5278         Transitional patch that copies linux WebThemeEngine to default directory.
5279
5280         No new tests, refactoring only.
5281
5282         * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
5283         * WebCore.gypi: Adds new files.
5284         * platform/chromium/PlatformSupport.h:
5285         * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
5286         * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
5287         * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
5288         * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
5289         * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
5290         * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
5291
5292 2012-11-16  Alec Flett  <alecflett@chromium.org>
5293
5294         IndexedDB: add missing 'explicit' and fix backing store release
5295         https://bugs.webkit.org/show_bug.cgi?id=102450
5296
5297         Reviewed by Tony Chang.
5298
5299         A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
5300         which resulted in objects sticking around a bit longer than
5301         expected. This makes sure the LevelDBTransaction is released
5302         at the moment of commit/rollback rather than when IDBTransactionBackendImpl
5303         is destroyed.
5304
5305         No new tests, this is just internal state that will affect
5306         some future refactoring.
5307
5308         * Modules/indexeddb/IDBBackingStore.h:
5309         (Cursor):
5310         (Transaction):
5311         (WebCore::IDBBackingStore::Transaction::reset):
5312         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
5313         (WebCore::IDBTransactionBackendImpl::abort):
5314         (WebCore::IDBTransactionBackendImpl::commit):
5315
5316 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5317
5318         [Chromium] One last tweak to WebCore.gypi to make Win build not sad.
5319
5320         * WebCore.gypi: Removed one last mention of accessibility/gtk file.
5321
5322 2012-11-16  Robert Flack  <flackr@chromium.org>
5323
5324         Handle gesture events on scrollbars.
5325         https://bugs.webkit.org/show_bug.cgi?id=101516
5326
5327         Reviewed by Antonio Gomes.
5328
5329         Adds a gesture event handler to scrollbars and sends gestures beginning
5330         over a scrollbar to this handler to allow touch scrolling scrollbars.
5331
5332         Test: fast/events/touch/gesture/gesture-scrollbar.html
5333
5334         * page/EventHandler.cpp:
5335         (WebCore::EventHandler::clear):
5336         (WebCore::EventHandler::handleGestureEvent):
5337         (WebCore::EventHandler::isScrollbarHandlingGestures):
5338         (WebCore):
5339         * page/EventHandler.h:
5340         (EventHandler):
5341         * platform/Scrollbar.cpp:
5342         (WebCore::Scrollbar::Scrollbar):
5343         (WebCore):
5344         (WebCore::Scrollbar::gestureEvent):
5345         (WebCore::Scrollbar::mouseMoved):
5346         (WebCore::Scrollbar::mouseUp):
5347         (WebCore::Scrollbar::mouseDown):
5348         * platform/Scrollbar.h:
5349         (WebCore):
5350         (Scrollbar):
5351         * platform/ScrollbarTheme.h:
5352         (WebCore::ScrollbarTheme::hitTest):
5353         * platform/ScrollbarThemeComposite.cpp:
5354         (WebCore::ScrollbarThemeComposite::hitTest):
5355         * platform/ScrollbarThemeComposite.h:
5356         (ScrollbarThemeComposite):
5357         * platform/qt/ScrollbarThemeQStyle.cpp:
5358         (WebCore::ScrollbarThemeQStyle::hitTest):
5359         * platform/qt/ScrollbarThemeQStyle.h:
5360         (ScrollbarThemeQStyle):
5361
5362 2012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>
5363
5364         [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
5365         https://bugs.webkit.org/show_bug.cgi?id=102444
5366
5367         Reviewed by Adam Barth.
5368
5369         No new tests. Have been covered by many existing layout tests.
5370
5371         * html/shadow/MediaControlsChromiumAndroid.cpp:
5372         (WebCore::MediaControls::create): Calls createControls instead of itself.
5373
5374 2012-11-16  Andreas Kling  <akling@apple.com>
5375
5376         StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
5377         <http://webkit.org/b/102507>
5378
5379         Reviewed by Antti Koivisto.
5380
5381         When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
5382         comparing the various attributes that would prevent sharing.
5383
5384         If the two elements both share the same ElementAttributeData, we can skip all those checks
5385         since they are guaranteed to have equal attributes.
5386
5387         Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
5388
5389         * css/StyleResolver.cpp:
5390         (WebCore::haveIdenticalStyleAffectingAttributes):
5391         (WebCore::StyleResolver::canShareStyleWithElement):
5392
5393 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5394
5395         [EFL][GTK] Build fix after r134955
5396         https://bugs.webkit.org/show_bug.cgi?id=102527
5397
5398         Reviewed by Martin Robinson.
5399
5400         Fix the EFL,GTK debug bulid fails after r134955.
5401
5402         * platform/network/soup/ResourceHandleSoup.cpp:
5403         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5404
5405 2012-11-15  Alexey Proskuryakov  <ap@apple.com>
5406
5407         Private Browsing is a per-page setting that sets a global value
5408         https://bugs.webkit.org/show_bug.cgi?id=67870
5409
5410         Reviewed by Sam Weinig.
5411
5412         Make ResourceHandle{Mac,CFNet} use context to access storage session.
5413
5414         * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
5415         exports.
5416
5417         * loader/FrameNetworkingContext.h: Added an OVERRIDE.
5418
5419         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
5420         no longer keeps track of a globally enabled private CFNetwork storage session.
5421
5422         * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
5423         don't have a NetworkingContext pointer, and have to use whatever a client expects
5424         them to do. Perhaps we should move those methods away from WebCore eventually.
5425
5426         * platform/network/NetworkingContext.h: Added storageSession().
5427
5428         * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
5429         sessions.
5430
5431         * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
5432         remember it post-creation to do things in willSendRequest. Alternatively, we could
5433         keep a reference to NetworkingContext itself.
5434
5435         * platform/network/cf/CookieJarCFNet.cpp:
5436         (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
5437         there is no globally current one any more. Also, we don't really expect cookie
5438         stirage to be 0 when not using NSURLConnection.
5439         (WebCore::cookiesForDOM): Ditto.
5440         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5441         (WebCore::cookiesEnabled): Ditto.
5442         (WebCore::getRawCookies): Ditto.
5443         (WebCore::deleteCookie): Ditto.
5444         (WebCore::getHostnamesWithCookies): Ditto.
5445         (WebCore::deleteCookiesForHostname): Ditto.
5446         (WebCore::deleteAllCookies): Ditto.
5447         * platform/network/cf/CookieStorageCFNet.cpp:
5448         (WebCore::currentCFHTTPCookieStorage): Use a context.
5449         (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
5450         this is implemented in a strategy.
5451         (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
5452
5453         * platform/network/cf/CookieStorageCFNet.h: Ditto.
5454
5455         * platform/network/cf/ResourceHandleCFNet.cpp:
5456         (WebCore::willSendRequest): Use storage session from the context, not global one.
5457         (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
5458         function didn't really make any sense on its own.
5459         (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
5460         to match Mac.
5461         (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
5462         in, removed some seemingly nonsensical code that was getting and immediately re-applying
5463         cookie storage accept policy.
5464         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5465         (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
5466         (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
5467         access "d".
5468         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
5469         (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
5470         It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
5471
5472         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
5473         This function used to apply current storage session to every request for no apparent
5474         reason.
5475
5476         * platform/network/mac/CookieJarMac.mm:
5477         (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
5478         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5479         (WebCore::setCookiesFromDOM): Ditto.
5480         (WebCore::cookiesEnabled): Ditto.
5481         (WebCore::getRawCookies): Ditto.
5482         (WebCore::deleteCookie): Ditto.
5483         (WebCore::getHostnamesWithCookies): Ditto.
5484         (WebCore::deleteCookiesForHostname): Ditto.
5485         (WebCore::deleteAllCookies): Ditto.
5486         * platform/network/mac/ResourceHandleMac.mm:
5487         (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
5488         null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
5489         argument, so that the function can access current session.
5490         (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
5491         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5492         (WebCore::ResourceHandle::willLoadFromCache): Style fix.
5493         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
5494         for use in willSendRequest. 
5495         (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
5496
5497 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5498
5499         [Chromium] Land a proper fix for r134939.
5500
5501         * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
5502         * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
5503
5504 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5505
5506         [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
5507
5508 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5509
5510         [Chromium] Updated WebCore.gypi after r134939.
5511
5512         * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
5513
5514 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5515
5516         [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
5517         https://bugs.webkit.org/show_bug.cgi?id=101840
5518
5519         Reviewed by Gustavo Noronha Silva.
5520
5521         Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
5522         Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
5523         be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
5524         in the manner that the CFNet backend does.
5525
5526         No new tests. There are tests for this behavior, but they cannot be activated until we finish
5527         plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
5528
5529         * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
5530         storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
5531         from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
5532         * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
5533         credentials to the persistent credential store.
5534         * platform/network/ResourceHandle.h:
5535         (ResourceHandle): Add a method which is used to continue asynchronously after looking for
5536         proposed credentials in the persistent credential store.
5537         * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
5538         an authentication succeeded.
5539         * platform/network/gtk/CredentialBackingStore.cpp:
5540         (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
5541         of stored credentials.
5542         (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
5543         (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
5544         * platform/network/gtk/CredentialBackingStore.h:
5545         (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
5546         * platform/network/soup/AuthenticationChallenge.h:
5547         (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
5548         can set proposed credentials from the persistent credential store.
5549         * platform/network/soup/ResourceHandleSoup.cpp:
5550         (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
5551         if the authentication succeeded.
5552         (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
5553         in the request URI. This is the method that Soup uses to override any soup-stored session credential.
5554         (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
5555         authenticating requests from the session store.
5556         (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
5557         (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
5558         Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
5559         (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
5560         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
5561         into this asynchronous bit.
5562         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
5563         first looking in the persistent credential store.
5564         (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
5565         at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
5566         for storage later (see gotHeadersCallback).
5567
5568 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5569
5570         Update DOMException name: TypeMismatchError
5571         https://bugs.webkit.org/show_bug.cgi?id=102418
5572
5573         Reviewed by Kentaro Hara.
5574
5575         Patch 17 of 25 to update DOMException name to match the spec and Firefox.
5576
5577         Updated existing tests.
5578
5579         * dom/DOMCoreException.cpp:
5580         (WebCore):
5581         * dom/ExceptionCode.h:
5582
5583 2012-11-16  Balazs Kelemen  <kbalazs@webkit.org>
5584
5585         Coordinated Graphics: support the "freeze animations" API
5586         https://bugs.webkit.org/show_bug.cgi?id=100703
5587
5588         Reviewed by Noam Rosenthal.
5589
5590         Typo fix after previous patch.
5591
5592         No new tests, it's just a typo that only takes effect in the browser.
5593
5594         * platform/graphics/GraphicsLayerAnimation.cpp:
5595         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
5596         Initialize members.
5597
5598 2012-11-16  Dan Carney  <dcarney@google.com>
5599
5600         add 7 bit strings capabilities to the v8 binding layer
5601         https://bugs.webkit.org/show_bug.cgi?id=91850
5602
5603         Reviewed by Adam Barth.
5604
5605         This change enables the v8 binding layer to make use of webkit's
5606         8 bit string capabilities. Using 8 bit strings leads to certain
5607         benchmark performance improvemnts as can be seen in
5608         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
5609
5610         No new tests.  Test coverage already extensive.
5611
5612         * bindings/v8/V8PerIsolateData.cpp:
5613         (WebCore::V8PerIsolateData::visitExternalStrings):
5614         * bindings/v8/V8StringResource.cpp:
5615         (StringTraits):
5616         (WebCore::false):
5617         (WebCore):
5618         (WebCore::true):
5619         (WebCore::v8StringToWebCoreString):
5620         * bindings/v8/V8ValueCache.cpp:
5621         (WebCore::makeExternalString):
5622         (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
5623         (WebCore):
5624         (WebCore::WebCoreStringResourceBase::visitStrings):
5625         * bindings/v8/V8ValueCache.h:
5626         (WebCoreStringResourceBase):
5627         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
5628         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
5629         (WebCore::WebCoreStringResourceBase::atomicString):
5630         (WebCore::WebCoreStringResourceBase::memoryConsumption):
5631         (WebCoreStringResource16):
5632         (WebCore::WebCoreStringResource16::WebCoreStringResource16):
5633         (WebCore):
5634         (WebCoreStringResource8):
5635         (WebCore::WebCoreStringResource8::WebCoreStringResource8):
5636
5637 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5638
5639         Update DOMException name: InvalidAccessError
5640         https://bugs.webkit.org/show_bug.cgi?id=102400
5641
5642         Reviewed by Kentaro Hara.
5643
5644         Patch 15 of 25 to update DOMException name to match the spec and Firefox.
5645
5646         Updated existing tests.
5647
5648         * dom/DOMCoreException.cpp:
5649
5650 2012-11-16  Alexandru Chiculita  <achicu@adobe.com>
5651
5652         [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
5653         https://bugs.webkit.org/show_bug.cgi?id=102414
5654
5655         Reviewed by Noam Rosenthal.
5656
5657         Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
5658         platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
5659         client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
5660         used to render any layer on the page. 
5661
5662         Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
5663         are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
5664         extended and reused in the platform compositor.
5665         
5666         No new tests, existing tests for CSS Custom Filters already cover this path.
5667
5668         * CMakeLists.txt:
5669         * GNUmakefile.am:
5670         * GNUmakefile.list.am:
5671         * Target.pri:
5672         * WebCore.pri:
5673         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
5674         (WebCore):
5675         * platform/graphics/filters/CustomFilterValidatedProgram.h:
5676         (WebCore):
5677         (CustomFilterValidatedProgram):
5678         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
5679         (WebCore):
5680         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
5681         (WebCore::CustomFilterValidatedProgram::platformInit):
5682         (WebCore::CustomFilterValidatedProgram::platformDestroy):
5683         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
5684         (WebCore):
5685         (TextureMapperPlatformCompiledProgramClient):
5686         (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
5687         (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
5688         (TextureMapperPlatformCompiledProgram):
5689         Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
5690         the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
5691         (WebCore::TextureMapperPlatformCompiledProgram::create):
5692         (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
5693         (WebCore::TextureMapperPlatformCompiledProgram::client):
5694         (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
5695
5696 2012-11-16  Andreas Kling  <akling@apple.com>
5697
5698         Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
5699         <http://webkit.org/b/102498>
5700
5701         Reviewed by Antti Koivisto.
5702
5703         Add a fast path to hasEquivalentAttributes() that checks if both elements are using
5704         the same ElementAttributeData.
5705
5706         * dom/Element.cpp:
5707         (WebCore::Element::hasEquivalentAttributes):
5708
5709 2012-11-16  Zeno Albisser  <zeno@webkit.org>
5710
5711         [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
5712         https://bugs.webkit.org/show_bug.cgi?id=102360
5713
5714         QOpenGLContext::currentContext() will return null, in case there is
5715         no current context. Therefore currentContext must be null-checked
5716         before it can be reused.
5717         Making a context current on a null-surface on the other hand is
5718         perfectly possible.
5719
5720         Reviewed by Kenneth Rohde Christiansen.
5721
5722         * platform/graphics/qt/GraphicsContext3DQt.cpp:
5723         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
5724
5725 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
5726
5727         Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
5728         https://bugs.webkit.org/show_bug.cgi?id=102488
5729
5730         Reviewed by Vsevolod Vlasov.
5731
5732         Panels are lazily loaded / instantiated.
5733         Panel constructors register keyboard shortcuts.
5734
5735         When user open shortcuts screen all panel should be loaded.
5736         Otherwise some shortcuts will be missing.
5737
5738         * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
5739         * inspector/front-end/inspector.js:
5740         Provided callback that loads all panels.
5741
5742 2012-11-16  Kentaro Hara  <haraken@chromium.org>
5743
5744         [V8] Remove IsSubType() from CodeGeneratorV8.pm
5745         https://bugs.webkit.org/show_bug.cgi?id=102348
5746
5747         Reviewed by Adam Barth.
5748
5749         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
5750
5751         No tests. No change in behavior.
5752
5753         * bindings/scripts/CodeGenerator.pm:
5754         (IsSubType):
5755         * bindings/scripts/CodeGeneratorJS.pm:
5756         (GenerateImplementation):
5757         * bindings/scripts/CodeGeneratorV8.pm:
5758         (GenerateHeader):
5759         (GetInternalFields):
5760         (GenerateNormalAttrGetter):
5761         (GenerateNormalAttrSetter):
5762         (GenerateFunctionCallback):
5763         (GenerateImplementationIndexer):
5764         (GenerateToV8Converters):
5765
5766 2012-11-16  Mario Sanchez Prada  <mario@webkit.org>
5767
5768         [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
5769         https://bugs.webkit.org/show_bug.cgi?id=99578
5770
5771         Reviewed by Martin Robinson.
5772
5773         Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
5774
5775         * GNUmakefile.am:
5776         * GNUmakefile.list.am:
5777         * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
5778         Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
5779         * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
5780         Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
5781         * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
5782         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
5783         * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
5784         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
5785         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
5786         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
5787         * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
5788         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
5789         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
5790         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
5791         * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
5792         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
5793         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
5794         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
5795         * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
5796         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
5797         * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
5798         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
5799         * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
5800         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
5801         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
5802         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
5803         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
5804         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
5805         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
5806         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
5807         * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
5808         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
5809         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
5810         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
5811         * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
5812         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
5813         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
5814         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
5815         * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
5816         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
5817         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
5818         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
5819         * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
5820         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
5821         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
5822         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
5823         * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
5824         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
5825         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
5826         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
5827         * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
5828         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
5829         * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
5830         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
5831         * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
5832         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
5833         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
5834         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
5835         * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
5836         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
5837
5838 2012-11-16  Shinya Kawanaka  <shinyak@chromium.org>
5839
5840         Changing pseudoClass (:indeterminate) should cause distribution
5841         https://bugs.webkit.org/show_bug.cgi?id=101903
5842
5843         Reviewed by Dimitri Glazkov.
5844
5845         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
5846         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
5847
5848         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
5849         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
5850
5851         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
5852                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
5853
5854         * html/HTMLInputElement.cpp:
5855         (WebCore::HTMLInputElement::updateType):
5856         (WebCore::HTMLInputElement::setIndeterminate):
5857         * html/HTMLProgressElement.cpp:
5858         (WebCore::HTMLProgressElement::didElementStateChange):
5859
5860 2012-11-16  Alexis Menard  <alexis@webkit.org>
5861
5862         Factorize the creation of primitive values with a pair into a function.
5863         https://bugs.webkit.org/show_bug.cgi?id=102485
5864
5865         Reviewed by Antti Koivisto.
5866
5867         The pattern is already existing in various call sites inside CSSParser
5868         and more will be added in the future (see bug 102104).
5869
5870         No new tests : It's a refactoring only, the tests should cover it.
5871
5872         * css/CSSParser.cpp:
5873         (WebCore):
5874         (WebCore::createPrimitiveValuePair):
5875         (WebCore::CSSParser::parseValue):
5876         (WebCore::CSSParser::parseFillSize):
5877         (WebCore::CSSParser::parseBorderImageRepeat):
5878         (WebCore::CSSParser::parseBorderRadius):
5879         (WebCore::CSSParser::parseCounter):
5880
5881 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5882
5883         Expand PlatformCookieJar interface to allow for other ports
5884         https://bugs.webkit.org/show_bug.cgi?id=102456
5885
5886         Reviewed by Adam Barth.
5887
5888         Add firstParty and cookieURL arguments to several functions to
5889         prepare for integrating Chromium port into new PlatformCookieJar
5890         interface.
5891
5892         * loader/CookieJar.cpp:
5893         (WebCore::cookiesEnabled):
5894         (WebCore::cookieRequestHeaderFieldValue):
5895         (WebCore::getRawCookies):
5896         * platform/network/PlatformCookieJar.h:
5897         (WebCore):
5898         * platform/network/cf/CookieJarCFNet.cpp:
5899         (WebCore::cookieRequestHeaderFieldValue):
5900         (WebCore::cookiesEnabled):
5901         (WebCore::getRawCookies):
5902         * platform/network/curl/CookieJarCurl.cpp:
5903         (WebCore::cookieRequestHeaderFieldValue):
5904         (WebCore::cookiesEnabled):
5905         (WebCore::getRawCookies):
5906         * platform/network/mac/CookieJarMac.mm:
5907         (WebCore::cookieRequestHeaderFieldValue):
5908         (WebCore::cookiesEnabled):
5909         (WebCore::getRawCookies):
5910         * platform/network/qt/CookieJarQt.cpp:
5911         (WebCore::cookieRequestHeaderFieldValue):
5912         (WebCore::cookiesEnabled):
5913         (WebCore::getRawCookies):
5914         * platform/network/soup/CookieJarSoup.cpp:
5915         (WebCore::cookieRequestHeaderFieldValue):
5916         (WebCore::cookiesEnabled):
5917         (WebCore::getRawCookies):
5918         * platform/network/win/CookieJarWin.cpp:
5919         (WebCore::cookieRequestHeaderFieldValue):
5920         (WebCore::cookiesEnabled):
5921         (WebCore::getRawCookies):
5922
5923 2012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>
5924
5925         RenderGrid should have a function to resolve grid position
5926         https://bugs.webkit.org/show_bug.cgi?id=102441
5927
5928         Reviewed by Ojan Vafai.
5929
5930         The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
5931         Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
5932         on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
5933         support render areas and add a proper grid model to RenderGrid.
5934
5935         No expected change in behavior.
5936
5937         * rendering/RenderGrid.h:
5938         * rendering/RenderGrid.cpp:
5939         (WebCore::RenderGrid::resolveGridPosition):
5940         Added this new function to handle the conversion. We re-use Length but should never see
5941         a lot of the <length> values so I added some ASSERTs to enforce and catch that.
5942
5943         (WebCore::RenderGrid::findChildLogicalPosition):
5944         Simplified the function now that it just use resolveGridPosition.
5945
5946 2012-11-16  Ulan Degenbaev  <ulan@chromium.org>
5947
5948         [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
5949         https://bugs.webkit.org/show_bug.cgi?id=94463
5950
5951         Reviewed by Kentaro Hara.
5952
5953         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
5954
5955         Test: ManualTests/typed-array-memory.html
5956
5957         * bindings/v8/SerializedScriptValue.cpp:
5958
5959 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5960
5961         Unreviewed, rolling out r134694.
5962         http://trac.webkit.org/changeset/134694
5963         https://bugs.webkit.org/show_bug.cgi?id=102481
5964
5965         it made API test crash on EFL port (Requested by gyuyoung on
5966         #webkit).
5967
5968         * platform/efl/RenderThemeEfl.cpp:
5969         (WebCore::fillColorsFromEdjeClass):
5970         (WebCore::RenderThemeEfl::setColorFromThemeClass):
5971         (WebCore::RenderThemeEfl::loadTheme):
5972         (WebCore::RenderThemeEfl::RenderThemeEfl):
5973         * platform/efl/RenderThemeEfl.h:
5974         (RenderThemeEfl):
5975
5976 2012-11-16  Mike West  <mkwst@chromium.org>
5977
5978         Web Inspector: Move call stack generation out of bindings.
5979         https://bugs.webkit.org/show_bug.cgi?id=101331
5980
5981         Reviewed by Yury Semikhatsky.
5982
5983         Currently, we generate stack traces for console messages at each call
5984         site. Bug 100650 has the end goal of moving all stack trace generation
5985         inside of the Inspector in order to ensure that we never send a console
5986         message without a stack trace if it's possible to generate one. This
5987         also ensures that we never generate unused call stacks.
5988
5989         This patch is the first step in that direction, moving stack trace
5990         generation out of the Console bindings, and into either Console or
5991         InspectorConsoleAgent.
5992
5993         No visible change in behavior should result; this refactoring should
5994         continue to pass all existing inspector tests.
5995
5996         * bindings/js/JSConsoleCustom.cpp:
5997         (WebCore::JSConsole::profile):
5998         (WebCore::JSConsole::profileEnd):
5999             Adjust custom JSC Console bindings to drop call stack generation.
6000         * bindings/scripts/CodeGeneratorJS.pm:
6001         (GenerateCallWith):
6002         * bindings/scripts/CodeGeneratorV8.pm:
6003         (GenerateCallWith):
6004             Drop call stack generation from JSC and V8 bindings.
6005         * bindings/scripts/CodeGeneratorGObject.pm:
6006             Skip timeEnd explicitly in these bindings; it used to include
6007             ScriptArguments, which autoskipped it. Now it doesn't, so it needs
6008             to be called out on its own.
6009         * bindings/v8/ScriptCallStackFactory.cpp:
6010         (WebCore::createScriptCallStackForConsole):
6011         (WebCore::createScriptCallStack):
6012         (WebCore):
6013         * bindings/v8/ScriptCallStackFactory.h:
6014         (WebCore):
6015             Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
6016             ScriptCallStackFactory in order to match JCS' implementation.
6017             It simply delegates to 'createScriptCallStackForConsole', which
6018             now also accepts a 'maxStackSize' parameter.
6019         * bindings/v8/custom/V8ConsoleCustom.cpp:
6020         (WebCore::V8Console::traceCallback):
6021         (WebCore::V8Console::assertCallback):
6022         (WebCore::V8Console::profileCallback):
6023         (WebCore::V8Console::profileEndCallback):
6024             Adjust custom V8 bindings to drop call stack generation.
6025         * inspector/InspectorConsoleAgent.cpp:
6026         (WebCore::InspectorConsoleAgent::addMessageToConsole):
6027             With the eventual goal of getting rid of the call stack parameter
6028             entirely, this patch drops it from one version of
6029             'addMessageToConsole' (replacing it with ScriptState*), and creates
6030             a new version that only accepts a call stack. We should be able to
6031             migrate most (all?) external call sites over to the arguments
6032             version in future patches.
6033         (WebCore):
6034         (WebCore::InspectorConsoleAgent::count):
6035             Count takes 'ScriptState*' instead of a call stack, and generates
6036             the stack as needed.
6037         * inspector/InspectorConsoleAgent.h:
6038         (InspectorConsoleAgent):
6039         * inspector/InspectorConsoleInstrumentation.h:
6040         (WebCore::InspectorInstrumentation::addMessageToConsole):
6041         (WebCore):
6042         (WebCore::InspectorInstrumentation::consoleCount):
6043         * inspector/InspectorInstrumentation.cpp:
6044         (WebCore):
6045         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
6046         (WebCore::InspectorInstrumentation::consoleCountImpl):
6047         * inspector/InspectorInstrumentation.h:
6048         (InspectorInstrumentation):
6049             Changes the InspectorInstrumentation pipeline to match the
6050             InspectorConsoleAgent changes.
6051         * page/Console.cpp:
6052         (WebCore::Console::addMessage):
6053             We now (always) generate one frame of a stack trace in order to
6054             populate line numbers and caller URLs. If we need to print the whole
6055             trace here, we generate a full stack.
6056         (WebCore::Console::debug):
6057         (WebCore::Console::error):
6058         (WebCore::Console::info):
6059         (WebCore::Console::log):
6060         (WebCore::Console::warn):
6061         (WebCore::Console::dir):
6062         (WebCore::Console::dirxml):
6063         (WebCore::Console::clear):
6064         (WebCore::Console::trace):
6065         (WebCore::Console::assertCondition):
6066         (WebCore::Console::count):
6067         (WebCore::Console::markTimeline):
6068         (WebCore::Console::timeEnd):
6069         (WebCore::Console::timeStamp):
6070         (WebCore::Console::group):
6071         (WebCore::Console::groupCollapsed):
6072         (WebCore::Console::profile):
6073         (WebCore::Console::profileEnd):
6074             s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
6075             has been moved out of 'trace' and into 'addMessage'.
6076         * page/Console.h:
6077         (Console):
6078         * page/Console.idl:
6079             Drop the call stack, add the script state.
6080         * workers/WorkerContext.cpp:
6081         (WebCore::WorkerContext::addMessageToWorkerConsole):
6082             Use the new, explicitly call stacked addMessageToConsole. We'll kill
6083             this in a future patch.
6084
6085 2012-11-16  Marja Hölttä  <marja@chromium.org>
6086
6087         Add initiator to CachedResourceRequest.
6088         https://bugs.webkit.org/show_bug.cgi?id=101935
6089
6090         Reviewed by Adam Barth.
6091
6092         Motivation: Chromium needs to know which elements request a
6093         resource (such as an image or a script) (bug 92761). In addition,
6094         for exposing resource timing information (bug 84883) we need to
6095         store the initiator, and this is the first step towards it.
6096
6097         No new tests: No visible change in behavior.
6098
6099         * CMakeLists.txt:
6100         * GNUmakefile.list.am:
6101         * Target.pri:
6102         * WebCore.gypi:
6103         * WebCore.vcproj/WebCore.vcproj:
6104         * WebCore.xcodeproj/project.pbxproj:
6105         * css/CSSCursorImageValue.cpp:
6106         (WebCore::CSSCursorImageValue::cachedImage):
6107         * css/CSSFontFaceSrcValue.cpp:
6108         (WebCore::CSSFontFaceSrcValue::cachedFont):
6109         * css/CSSImageSetValue.cpp:
6110         (WebCore::CSSImageSetValue::cachedImageSet):
6111         * css/CSSImageValue.cpp:
6112         (WebCore::CSSImageValue::cachedImage):
6113         * css/CSSImageValue.h:
6114         (WebCore):
6115         (CSSImageValue):
6116         * css/StyleResolver.cpp:
6117         (WebCore::StyleResolver::loadPendingImage):
6118         * css/StyleRuleImport.cpp:
6119         (WebCore::StyleRuleImport::requestStyleSheet):
6120         * css/WebKitCSSSVGDocumentValue.cpp:
6121         (WebCore::WebKitCSSSVGDocumentValue::load):
6122         * css/WebKitCSSShaderValue.cpp:
6123         (WebCore::WebKitCSSShaderValue::cachedShader):
6124         * dom/ScriptElement.cpp:
6125         (WebCore::ScriptElement::requestScript):
6126         * html/HTMLLinkElement.cpp:
6127         (WebCore::HTMLLinkElement::process):
6128         * html/parser/CSSPreloadScanner.cpp:
6129         (WebCore::CSSPreloadScanner::emitRule):
6130         * html/parser/CSSPreloadScanner.h:
6131         (CSSPreloadScanner):
6132         * html/parser/HTMLPreloadScanner.cpp:
6133         (WebCore::PreloadTask::preload):
6134         * loader/ImageLoader.cpp:
6135         (WebCore::ImageLoader::updateFromElement):
6136         * loader/cache/CachedResourceLoader.cpp:
6137         (WebCore::CachedResourceLoader::requestImage):
6138         (WebCore::CachedResourceLoader::requestResource):
6139         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
6140         (WebCore):
6141         (WebCore::CachedResourceLoader::preload):
6142         * loader/cache/CachedResourceLoader.h:
6143         (WebCore):
6144         (CachedResourceLoader):
6145         * loader/cache/CachedResourceRequest.cpp:
6146         (WebCore::CachedResourceRequest::CachedResourceRequest):
6147         (WebCore):
6148         (WebCore::CachedResourceRequest::~CachedResourceRequest):
6149         (WebCore::CachedResourceRequest::setInitiator):
6150         (WebCore::CachedResourceRequest::initiatorName):
6151         (WebCore::CachedResourceRequest::initiatorDocument):
6152         (WebCore::CachedResourceRequest::initiatorElement):
6153         * loader/cache/CachedResourceRequest.h:
6154         (WebCore):
6155         (WebCore::CachedResourceRequest::setOptions):
6156         (WebCore::CachedResourceRequest::defer):
6157         (WebCore::CachedResourceRequest::setDefer):
6158         (CachedResourceRequest):
6159         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6160         (WebCore):
6161         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
6162         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6163         (WebCore):
6164         (CachedResourceRequestInitiators):
6165         (WebCore::cachedResourceRequestInitiators):
6166         * loader/icon/IconLoader.cpp:
6167         (WebCore::IconLoader::startLoading):
6168         * platform/ThreadGlobalData.cpp:
6169         (WebCore::ThreadGlobalData::ThreadGlobalData):
6170         * platform/ThreadGlobalData.h:
6171         (WebCore):
6172         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
6173         (ThreadGlobalData):
6174         * svg/SVGFEImageElement.cpp:
6175         (WebCore::SVGFEImageElement::requestImageResource):
6176         * svg/SVGFontFaceUriElement.cpp:
6177         (WebCore::SVGFontFaceUriElement::loadFont):
6178         * svg/SVGUseElement.cpp:
6179         (WebCore::SVGUseElement::svgAttributeChanged):
6180
6181 2012-11-16  Yury Semikhatsky  <yurys@chromium.org>
6182
6183         Web Inspector: don't show an Error when evaluating a watch expression results in an exception
6184         https://bugs.webkit.org/show_bug.cgi?id=102470
6185
6186         Reviewed by Vsevolod Vlasov.
6187
6188         Dim watch expression and show "<not available>" as its value in cases when it evaluates
6189         into an exception.
6190
6191         * English.lproj/localizedStrings.js:
6192         * inspector/front-end/WatchExpressionsSidebarPane.js:
6193         (WebInspector.WatchExpressionTreeElement.prototype.update):
6194         * inspector/front-end/inspector.css:
6195
6196 2012-11-16  Vsevolod Vlasov  <vsevik@chromium.org>
6197
6198         Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
6199         https://bugs.webkit.org/show_bug.cgi?id=102476
6200
6201         Unreviewed rolling out.
6202
6203         * English.lproj/localizedStrings.js:
6204         * WebCore.gypi:
6205         * WebCore.vcproj/WebCore.vcproj:
6206         * inspector/compile-front-end.py:
6207         * inspector/front-end/AdvancedSearchController.js:
6208         * inspector/front-end/CallStackSidebarPane.js:
6209         (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
6210         * inspector/front-end/ConsoleView.js:
6211         (WebInspector.ConsoleView.prototype._registerShortcuts):
6212         * inspector/front-end/ElementsPanel.js:
6213         (WebInspector.ElementsPanel):
6214         (WebInspector.ElementsPanel.prototype._registerShortcuts):
6215         * inspector/front-end/ElementsPanelDescriptor.js:
6216         * inspector/front-end/GoToLineDialog.js:
6217         (WebInspector.GoToLineDialog.install):
6218         * inspector/front-end/KeyboardShortcut.js:
6219         (WebInspector.KeyboardShortcut._keyName):
6220         * inspector/front-end/Panel.js:
6221         (WebInspector.Panel.prototype.registerShortcut):
6222         (WebInspector.Panel.prototype.unregisterShortcut):
6223         (WebInspector.PanelDescriptor.prototype.panel):
6224         * inspector/front-end/ScriptsPanel.js:
6225         (WebInspector.ScriptsPanel):
6226         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
6227         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
6228         * inspector/front-end/ScriptsPanelDescriptor.js:
6229         * inspector/front-end/ShortcutsScreen.js:
6230         (WebInspector.ShortcutsScreen):
6231         (WebInspector.ShortcutsSection):
6232         (WebInspector.ShortcutsSection.prototype._renderKey):
6233         * inspector/front-end/StylesSidebarPane.js:
6234         (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
6235         * inspector/front-end/TimelinePanel.js:
6236         (WebInspector.TimelinePanel.prototype._registerShortcuts):
6237         * inspector/front-end/TimelinePanelDescriptor.js: Removed.
6238         * inspector/front-end/WebKit.qrc:
6239         * inspector/front-end/inspector.html:
6240         * inspector/front-end/inspector.js:
6241         (WebInspector._panelDescriptors):
6242         (WebInspector._registerShortcuts):
6243
6244 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
6245
6246         Web Inspector: Memory Timeline Crash
6247         https://bugs.webkit.org/show_bug.cgi?id=102390
6248
6249         Reviewed by Vsevolod Vlasov.
6250
6251         Crash seems to be caused by IPC overflow.
6252         Messages "ParsedScriptSource" are routed to
6253         ResourceScriptMapping.prototype.addScript that process them in time
6254         linear to number of already registered non-anonymous non-inline scripts.
6255
6256         Fixed this with replacing repreated filtering with "on-line" bucketing.
6257
6258         * inspector/front-end/ResourceScriptMapping.js:
6259         (WebInspector.ResourceScriptMapping):
6260         Removed duplicating initialization code.
6261         (WebInspector.ResourceScriptMapping.prototype.addScript):
6262         Added script bucketing by sourceURL/isInline parameters.
6263         (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
6264         Avoid filterfig.
6265         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
6266         Added outgoing muatable array safeguard.
6267         (WebInspector.ResourceScriptMapping.prototype._reset):
6268         Added type information and added two new maps.
6269
6270 2012-11-16  Helder Correia  <helder.correia@nokia.com>
6271
6272         [CoordGfx] Follow coding style on explicit constructors
6273         https://bugs.webkit.org/show_bug.cgi?id=102451
6274
6275         Reviewed by Noam Rosenthal.
6276
6277         Use the explicit keyword on single argument constructors.
6278
6279         No new tests needed.
6280
6281         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
6282         (GraphicsLayerTextureMapper):
6283         * platform/graphics/texmap/TextureMapper.h:
6284         (TextureMapper):
6285         * platform/graphics/texmap/TextureMapperBackingStore.h:
6286         (WebCore::TextureMapperTile::TextureMapperTile):
6287         * platform/graphics/texmap/TextureMapperGL.cpp:
6288         (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
6289         (WebCore::TextureMapperGLData::TextureMapperGLData):
6290         * platform/graphics/texmap/TextureMapperGL.h:
6291         (BitmapTextureGL):
6292         * platform/graphics/texmap/TextureMapperShaderManager.h:
6293         (TextureMapperShaderManager):
6294
6295 2012-11-16  Kihong Kwon  <kihong.kwon@samsung.com>
6296
6297         Add DeviceController base-class to remove duplication of DeviceXXXControler
6298         https://bugs.webkit.org/show_bug.cgi?id=96894
6299
6300         Reviewed by Hajime Morita.
6301
6302         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
6303         And soon-to-be-added DeviceMotionController and ProximityController.
6304
6305         Covered by existing tests.
6306
6307         * CMakeLists.txt:
6308         * GNUmakefile.list.am:
6309         * Target.pri:
6310         * WebCore.gypi:
6311         * WebCore.vcproj/WebCore.vcproj:
6312         * WebCore.xcodeproj/project.pbxproj:
6313         * dom/DeviceOrientationClient.h:
6314         * dom/DeviceOrientationController.cpp:
6315         Remove member functions to move to DeviceController.
6316         - addListener(), removeListener(), removeAllListeners(), isActive()
6317         (WebCore::DeviceOrientationController::DeviceOrientationController):
6318         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
6319         (WebCore::DeviceOrientationController::client):
6320         (WebCore::DeviceOrientationController::hasLastData):
6321         (WebCore::DeviceOrientationController::getLastEvent):
6322         (WebCore::DeviceOrientationController::from):
6323         (WebCore):
6324         * dom/DeviceOrientationController.h:
6325         (WebCore):
6326         (WebCore::DeviceOrientationController::~DeviceOrientationController):
6327         (DeviceOrientationController):
6328         * dom/Document.cpp:
6329         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
6330         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
6331         (WebCore::Document::suspendActiveDOMObjects):
6332         (WebCore::Document::resumeActiveDOMObjects):
6333         * loader/EmptyClients.h:
6334         (EmptyDeviceClient):
6335         (WebCore::EmptyDeviceClient::startUpdating):
6336         (WebCore::EmptyDeviceClient::stopUpdating):
6337         (WebCore):
6338         * page/DOMWindow.cpp:
6339         (WebCore::DOMWindow::addEventListener):
6340         (WebCore::DOMWindow::removeEventListener):
6341         (WebCore::DOMWindow::removeAllEventListeners):
6342         * page/DeviceClient.h: Added.
6343         (WebCore):
6344         (DeviceClient):
6345         (WebCore::DeviceClient::~DeviceClient):
6346         * page/DeviceController.cpp: Added.
6347         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
6348         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
6349         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
6350         (WebCore):
6351         (WebCore::DeviceController::DeviceController):
6352         (WebCore::DeviceController::addDeviceEventListener):
6353         (WebCore::DeviceController::removeDeviceEventListener):
6354         (WebCore::DeviceController::removeAllDeviceEventListeners):
6355         (WebCore::DeviceController::dispatchDeviceEvent):
6356         (WebCore::DeviceController::fireDeviceEvent):
6357         * page/DeviceController.h: Added.
6358         (WebCore):
6359         (DeviceController):
6360         (WebCore::DeviceController::~DeviceController):
6361         (WebCore::DeviceController::isActive):
6362         (WebCore::DeviceController::client):
6363         (WebCore::DeviceController::hasLastData):
6364         (WebCore::DeviceController::getLastEvent):
6365
6366 2012-11-16  Alexander Pavlov  <apavlov@chromium.org>
6367
6368         Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
6369         https://bugs.webkit.org/show_bug.cgi?id=102467
6370
6371         Reviewed by Pavel Feldman.
6372
6373         Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
6374         Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
6375         so that they will get restored only upon page navigation, not upon any agent enablement.
6376
6377         * inspector/InspectorPageAgent.cpp:
6378         (WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
6379         (WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.
6380
6381 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6382
6383         Unreviewed, rolling out r134908.
6384         http://trac.webkit.org/changeset/134908
6385         https://bugs.webkit.org/show_bug.cgi?id=102473
6386
6387         Broke the Apple Windows Debug build. (Requested by dydx on
6388         #webkit).
6389
6390         * WebCore.exp.in:
6391         * dom/ViewportArguments.cpp:
6392         (WebCore::computeViewportAttributes):
6393         * dom/ViewportArguments.h:
6394         (WebCore):
6395
6396 2012-11-16  Peter Rybin  <prybin@chromium.org>
6397
6398         Web Inspector: show internal properties in inspector frontend
6399         https://bugs.webkit.org/show_bug.cgi?id=100021
6400
6401         Reviewed by Yury Semikhatsky.
6402
6403         New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.
6404
6405         Test: inspector/debugger/properties-special.html
6406
6407         * inspector/front-end/ObjectPropertiesSection.js:
6408         (WebInspector.ObjectPropertiesSection.prototype.update.callback):
6409         (WebInspector.ObjectPropertiesSection.prototype.update):
6410         (.callback):
6411         (WebInspector.ObjectPropertyTreeElement.populate):
6412         (.processProperties):
6413         (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
6414         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
6415         * inspector/front-end/RemoteObject.js:
6416         (WebInspector.RemoteObject.prototype.set else):
6417
6418 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
6419
6420         Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
6421         https://bugs.webkit.org/show_bug.cgi?id=93691
6422
6423         Reviewed by Vsevolod Vlasov.
6424
6425         - The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
6426         both receiving a new, more light-weight design.
6427         - The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.
6428
6429         * WebCore.gypi:
6430         * WebCore.vcproj/WebCore.vcproj:
6431         * inspector/compile-front-end.py:
6432         * inspector/front-end/ContextMenu.js:
6433         (WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
6434         * inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
6435         (WebInspector.OverridesView.appendBlockTo):
6436         (WebInspector.OverridesView):
6437         (WebInspector.OverridesView.showInDrawer):
6438         (WebInspector.OverridesView.prototype.get listener):
6439         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
6440         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
6441         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
6442         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
6443         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
6444         (WebInspector.OverridesView.prototype._createInput):
6445         (WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
6446         (WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
6447         (WebInspector.OverridesView.prototype.):
6448         (WebInspector.OverridesView.prototype.set if):
6449         (WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
6450         (WebInspector.OverridesView.prototype._createDeviceMetricsElement):
6451         (WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
6452         (WebInspector.OverridesView.prototype._applyGeolocationUserInput):
6453         (WebInspector.OverridesView.prototype._setGeolocationPosition):
6454         (WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
6455         (WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
6456         (WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
6457         (WebInspector.OverridesView.prototype._setDeviceOrientation):
6458         (WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
6459         * inspector/front-end/ScriptsPanel.js:
6460         (WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
6461         * inspector/front-end/SettingsScreen.js:
6462         (WebInspector.SettingsTab):
6463         (WebInspector.SettingsTab.prototype._appendSection):
6464         (WebInspector.GenericSettingsTab):
6465         (WebInspector.ExperimentsSettingsTab):
6466         (WebInspector.SettingsController): Implement the popup menu upon the button click.
6467         (WebInspector.SettingsController.prototype.showOverrides):
6468         (WebInspector.SettingsController.prototype.showSettings):
6469         (WebInspector.SettingsController.prototype.appendApplicableItems):
6470         (WebInspector.SettingsController.prototype._buttonPressed):
6471         (WebInspector.SettingsController.prototype._onHideSettingsScreen):
6472         (WebInspector.SettingsController.prototype.showSettingsScreen):
6473         * inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
6474         (WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
6475         * inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
6476         (WebInspector.SoftContextMenu.prototype.show):
6477         * inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
6478         (WebInspector.TabbedPane.prototype.set verticalTabLayout):
6479         (WebInspector.TabbedPane.prototype._updateWidths):
6480         (WebInspector.TabbedPaneTab.prototype.setWidth):
6481         (WebInspector.TabbedPaneTab.prototype._createTabElement):
6482         * inspector/front-end/WebKit.qrc:
6483         * inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
6484         * inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
6485         (.soft-context-menu-item):
6486         (.drawer-header):
6487         * inspector/front-end/inspector.html:
6488
6489 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6490
6491         Unreviewed, rolling out r134865.
6492         http://trac.webkit.org/changeset/134865
6493         https://bugs.webkit.org/show_bug.cgi?id=102466
6494
6495         Broke the Apple Windows Debug build. (Requested by dydx on
6496         #webkit).
6497
6498         * WebCore.exp.in:
6499         * bindings/js/SerializedScriptValue.h:
6500         * testing/Internals.cpp:
6501         * testing/Internals.h:
6502         (WebCore):
6503         * testing/Internals.idl:
6504
6505 2012-11-16  Takashi Sakamoto  <tasak@google.com>
6506
6507         ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
6508         https://bugs.webkit.org/show_bug.cgi?id=102116
6509
6510         Reviewed by Alexander Pavlov.
6511
6512         Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
6513         rules. Since there is no CSSOM wrapper for @host @-rules and
6514         ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
6515         this crash occurs.
6516
6517         Tests: fast/css/at-host-cssom-crash.html
6518                inspector/styles/styles-include-host-rules-crash.html
6519
6520         * css/StyleRule.cpp:
6521         (WebCore::StyleRuleBase::createCSSOMWrapper):
6522         Return a CSSUnknownRule instance for StyleRuleHost rules instead of
6523         calling ASSERT_NOT_REACHED().
6524
6525 2012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
6526
6527         Avoid copying of ViewportArguments in computeViewportAttributes function
6528         https://bugs.webkit.org/show_bug.cgi?id=102354
6529
6530         Reviewed by Kenneth Rohde Christiansen.
6531
6532         Since r134749 we do not need copying of ViewportArguments parameter in
6533         computeViewportAttributes() as it is not modified any more.
6534
6535         Tested by existing tests fast/viewport.
6536
6537         * WebCore.exp.in: Updated exported symbols for MAC.
6538         * dom/ViewportArguments.cpp:
6539         (WebCore::computeViewportAttributes):
6540         * dom/ViewportArguments.h:
6541         (WebCore):
6542
6543 2012-11-15  Yury Semikhatsky  <yurys@chromium.org>
6544
6545         Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
6546         https://bugs.webkit.org/show_bug.cgi?id=102384
6547
6548         Reviewed by Pavel Feldman.
6549
6550         * inspector/InspectorMemoryAgent.cpp:
6551         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
6552         if the check fails.
6553         * inspector/MemoryInstrumentationImpl.h:
6554         (MemoryInstrumentationClientImpl):
6555
6556 2012-11-15  Jer Noble  <jer.noble@apple.com>
6557
6558         Crash at WebCore::PluginData::pluginFileForMimeType const + 38
6559         https://bugs.webkit.org/show_bug.cgi?id=102454
6560
6561         Reviewed by Dan Bernstein.
6562
6563         NULL-check the return value of Page::pluginData().
6564
6565         * loader/SubframeLoader.cpp:
6566         (WebCore::logPluginRequest):
6567
6568 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6569
6570         [Chromium] Unreviewed build fix attempt on win
6571
6572         Include OpenTypeVerticalData.h
6573
6574         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6575         (WebCore):
6576
6577 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6578
6579         Unreviewed, rolling out r134881.
6580         http://trac.webkit.org/changeset/134881
6581         https://bugs.webkit.org/show_bug.cgi?id=102348
6582
6583         http/tests/appcache tests on JSC platforms are broken
6584
6585         * bindings/scripts/CodeGenerator.pm:
6586         (IsStrictSubtype):
6587         * bindings/scripts/CodeGeneratorJS.pm:
6588         (GenerateImplementation):
6589         * bindings/scripts/CodeGeneratorV8.pm:
6590         (GenerateHeader):
6591         (GetInternalFields):
6592         (IsSubType):
6593         (IsNodeSubType):
6594         (GenerateNormalAttrGetter):
6595         (GenerateNormalAttrSetter):
6596         (GenerateFunctionCallback):
6597         (GenerateImplementationIndexer):
6598         (GenerateToV8Converters):
6599
6600 2012-11-15  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
6601
6602         [TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
6603         https://bugs.webkit.org/show_bug.cgi?id=102420
6604
6605         Reviewed by Gyuyoung Kim.
6606
6607         Moved out texture upload without swizzle to the separate method and changed
6608         drawRepaintCounter to use no-swizzle method. This also fixes blue background
6609         of repaint counters in Qt Minibrowser.
6610         Added condition for sub-image buffer creation to not create it if full image is
6611         uploaded. This should give noticeable improvement for platforms that do not
6612         support sub-image upload to texture.
6613
6614         Covered by existing tests.
6615
6616         * platform/graphics/texmap/TextureMapperGL.cpp:
6617         (WebCore::TextureMapperGL::drawRepaintCounter):
6618         (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
6619         (WebCore):
6620         (WebCore::BitmapTextureGL::updateContents):
6621         * platform/graphics/texmap/TextureMapperGL.h:
6622         (BitmapTextureGL):
6623
6624 2012-11-15  Kent Tamura  <tkent@chromium.org>
6625
6626         A Spin button should release mouse event capturing when a modal dialog opens
6627         https://bugs.webkit.org/show_bug.cgi?id=98007
6628
6629         Reviewed by Hajime Morita.
6630
6631         Description of bug:
6632         If the mouse left button is pressed on a spin button in
6633         input[type=number] and a 'change' event handler opens a modal dialog
6634         such as alert(), a repeating timer doesn't stop and mouse event
6635         capturing isn't released even though the mouse pointer isn't on the spin
6636         button.
6637         A user will see repeating alert dialogs for a document like <input
6638         type=number value=1 onchange="if (this.value==1) {alert(...);
6639         this.value=1;}"> by clicking the up button.
6640
6641         How to solve:
6642         We should notify modal dialog or popup open to a spin button.
6643         This patch introduce PopupOpeningObserver. Chrome notifies it when
6644         any dialogs / popups is opening. SpinButtonElement implements
6645         PopupOpeningObserver and registers/unregisters itself to/from
6646         Chrome.
6647
6648         No new tests. This is a behavior change, but it's very hard to make an
6649         automated test for timer-related behavior.
6650
6651         * page/PopupOpeningObserver.h: Added.
6652         * GNUmakefile.list.am: Add PopupOpeningObserver.h
6653         * Target.pri: Ditto.
6654         * WebCore.gypi: Ditto.
6655         * WebCore.vcproj/WebCore.vcproj: Ditto.
6656         * WebCore.xcodeproj/project.pbxproj: Ditto.
6657
6658         * page/Chrome.cpp:
6659         (WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
6660         (WebCore::Chrome::runJavaScriptConfirm): Ditto.
6661         (WebCore::Chrome::runJavaScriptPrompt): Ditto.
6662         (WebCore::Chrome::createColorChooser): Ditto.
6663         (WebCore::Chrome::openDateTimeChooser):
6664         Added. Calls notifyPopupOpeningObservers before calling
6665         ChromeClient::openDateTimeChooser.
6666         (WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
6667         (WebCore::Chrome::createPopupMenu): Ditto.
6668         (WebCore::Chrome::createSearchPopupMenu): Ditto.
6669         (WebCore::Chrome::registerPopupOpeningObserver): Added.
6670         (WebCore::Chrome::unregisterPopupOpeningObserver): Added.
6671         (WebCore::Chrome::notifyPopupOpeningObservers): Added.
6672         * page/Chrome.h: Added new members and required class/struct declarations.
6673
6674         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
6675         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
6676         Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
6677         * html/shadow/PickerIndicatorElement.cpp:
6678         (WebCore::PickerIndicatorElement::openPopup): Ditto.
6679
6680         * html/shadow/SpinButtonElement.h:
6681         (SpinButtonElement): Declare willOpenPopup.
6682         * html/shadow/SpinButtonElement.cpp:
6683         (WebCore::SpinButtonElement::defaultEventHandler):
6684         Change the order of timer start and changing the value so that we
6685         can cancel the timer correctly.
6686         Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
6687         (WebCore::SpinButtonElement::willOpenPopup):
6688         Release mouse event capturing before opening a modal dialog.
6689         (WebCore::SpinButtonElement::releaseCapture):
6690         Calls Chrome::unregisterPopupOpeningObserver.
6691
6692
6693 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
6694
6695         Chaging pseudoClass (:enabled) should cause distribution
6696         https://bugs.webkit.org/show_bug.cgi?id=101900
6697
6698         Reviewed by Dimitri Glazkov.
6699
6700         When element's 'enabled' state is changed, we have to invalidate distribution.
6701
6702         According to the spec, :enabled matches anchor/area/link element having href attribute,
6703         and several form control elements which is not disabled. However, currently :enalbed does not match
6704         anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
6705
6706         Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
6707                fast/dom/shadow/pseudoclass-update-enabled-area.html
6708                fast/dom/shadow/pseudoclass-update-enabled-button.html
6709                fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
6710                fast/dom/shadow/pseudoclass-update-enabled-input.html
6711                fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
6712                fast/dom/shadow/pseudoclass-update-enabled-option.html
6713                fast/dom/shadow/pseudoclass-update-enabled-select.html
6714                fast/dom/shadow/pseudoclass-update-enabled-textarea.html
6715
6716         * html/HTMLAnchorElement.cpp:
6717         (WebCore::HTMLAnchorElement::parseAttribute):
6718         * html/HTMLFormControlElement.cpp:
6719         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
6720         * html/HTMLOptGroupElement.cpp:
6721         (WebCore::HTMLOptGroupElement::parseAttribute):
6722         * html/HTMLOptionElement.cpp:
6723         (WebCore::HTMLOptionElement::parseAttribute):
6724
6725 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6726
6727         Update DOMException name: ValidationError
6728         https://bugs.webkit.org/show_bug.cgi?id=102416
6729
6730         Reviewed by Kentaro Hara.
6731
6732         Patch 16 of 25 to update DOMException name to match the spec and Firefox.
6733
6734         VALIDATION_ERR is historical and not used in any spec or our code.
6735
6736         * dom/DOMCoreException.cpp:
6737         * dom/ExceptionCode.h:
6738
6739 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6740
6741         [V8] Remove IsSubType() from CodeGeneratorV8.pm
6742         https://bugs.webkit.org/show_bug.cgi?id=102348
6743
6744         Reviewed by Adam Barth.
6745
6746         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
6747
6748         No tests. No change in behavior.
6749
6750         * bindings/scripts/CodeGenerator.pm:
6751         (IsSubType):
6752         * bindings/scripts/CodeGeneratorJS.pm:
6753         (GenerateImplementation):
6754         * bindings/scripts/CodeGeneratorV8.pm:
6755         (GenerateHeader):
6756         (GetInternalFields):
6757         (GenerateNormalAttrGetter):
6758         (GenerateNormalAttrSetter):
6759         (GenerateFunctionCallback):
6760         (GenerateImplementationIndexer):
6761         (GenerateToV8Converters):
6762
6763 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6764
6765         Update DOMException name: NamespaceError
6766         https://bugs.webkit.org/show_bug.cgi?id=102395
6767
6768         Reviewed by Kentaro Hara.
6769
6770         Patch 14 of 25 to update DOMException name to match the spec and Firefox.
6771
6772         Updated existing tests.
6773
6774         * dom/DOMCoreException.cpp:
6775
6776 2012-11-15  Tien-Ren Chen  <trchen@chromium.org>
6777
6778         Add Settings to disable custom scrollbars on main frame
6779         https://bugs.webkit.org/show_bug.cgi?id=102323
6780
6781         Reviewed by Adam Barth.
6782
6783         Custom scrollbars on main frame don't really work well on touch devices.
6784         Add a setting to inhibit their creation.
6785
6786         No new tests. No change in default layout behavior.
6787
6788         * page/FrameView.cpp:
6789         (WebCore::FrameView::createScrollbar):
6790         * page/Settings.in:
6791
6792 2012-11-15  Rick Byers  <rbyers@chromium.org>
6793
6794         custom CSS cursors ignore hotspot values embedded in CUR files
6795         https://bugs.webkit.org/show_bug.cgi?id=100059
6796
6797         Reviewed by Kenneth Russell.
6798
6799         Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
6800         and plumb it through so that the existing calls to ImageSource::getHotSpot
6801         actually return the hot spot value when there is one.
6802
6803         Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
6804
6805         * platform/graphics/ImageSource.cpp:
6806         (WebCore::ImageSource::getHotSpot):
6807         * platform/graphics/chromium/DeferredImageDecoder.cpp:
6808         (WebCore::DeferredImageDecoder::hotSpot):
6809         (WebCore::DeferredImageDecoder::hotSpotAtIndex):
6810         * platform/graphics/chromium/DeferredImageDecoder.h:
6811         (DeferredImageDecoder):
6812         * platform/image-decoders/ImageDecoder.h:
6813         (WebCore::ImageDecoder::hotSpot):
6814         (WebCore::ImageDecoder::hotSpotAtIndex):
6815         (ImageDecoder):
6816         * platform/image-decoders/ico/ICOImageDecoder.cpp:
6817         (WebCore::ICOImageDecoder::hotSpot):
6818         (WebCore::ICOImageDecoder::hotSpotAtIndex):
6819         (WebCore::ICOImageDecoder::processDirectory):
6820         (WebCore::ICOImageDecoder::readDirectoryEntry):
6821         * platform/image-decoders/ico/ICOImageDecoder.h:
6822         (ICOImageDecoder):
6823         (IconDirectoryEntry):
6824
6825 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6826
6827         Make OpenTypeVerticalData be ref-counted
6828         https://bugs.webkit.org/show_bug.cgi?id=101971
6829
6830         Reviewed by Tony Chang.
6831
6832         FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
6833         OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
6834         via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
6835         SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
6836         delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
6837         it be ref-counted.
6838
6839         No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
6840
6841         * platform/graphics/FontCache.cpp:
6842         (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
6843         (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
6844         (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
6845         * platform/graphics/FontCache.h:
6846         * platform/graphics/SimpleFontData.cpp:
6847         (WebCore::SimpleFontData::SimpleFontData):
6848         * platform/graphics/SimpleFontData.h:
6849         Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
6850         (WebCore::SimpleFontData::verticalData):
6851         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
6852         (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
6853         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6854         (FontPlatformData):
6855         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
6856         (WebCore::FontPlatformData::verticalData): Ditto.
6857         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
6858         (WebCore):
6859         (FontPlatformData):
6860         * platform/graphics/opentype/OpenTypeVerticalData.h:
6861         (WebCore::OpenTypeVerticalData::create): Added.
6862         (OpenTypeVerticalData):
6863
6864 2012-11-15  Xingnan Wang  <xingnan.wang@intel.com>
6865
6866         Optimize the multiply-add in Biquad.cpp::process
6867         https://bugs.webkit.org/show_bug.cgi?id=75528
6868
6869         Reviewed by Brent Fulgham.
6870
6871         Pipeline the multiply-add with SSE2 intrinsics.
6872         Get ~45% performance improvement for the function.
6873
6874         * platform/audio/Biquad.cpp:
6875         (WebCore::Biquad::process):
6876
6877 2012-11-15  Alec Flett  <alecflett@chromium.org>
6878
6879         Add tests for explicit serialization values
6880         https://bugs.webkit.org/show_bug.cgi?id=96818
6881
6882         Reviewed by Adam Barth.
6883
6884         Expose direct access to the serialization/deserialization mechanisms
6885         of SerializedScriptValue to DumpRenderTree.
6886
6887         * testing/Internals.cpp:
6888         (WebCore::Internals::serializeObject):
6889         (WebCore):
6890         (WebCore::Internals::deserializeBuffer):
6891         * testing/Internals.h:
6892         (WebCore):
6893         * testing/Internals.idl:
6894
6895 2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
6896
6897         [GTK] Split WebCore/platform into a separate library
6898         https://bugs.webkit.org/show_bug.cgi?id=94435
6899
6900         Reviewed by Martin Robinson.
6901
6902         More people have been reporting problems when linking WebCore because
6903         the command line limit is being exceeded. Splitting WebCore a bit more
6904         is in order.
6905
6906         * GNUmakefile.am: add new libWebCorePlatform convenience library.
6907         * GNUmakefile.list.am: move list of platform/* files to its own variable.
6908
6909 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
6910
6911         Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
6912         https://bugs.webkit.org/show_bug.cgi?id=102036
6913
6914         Reviewed by Darin Adler.
6915
6916         Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
6917
6918         No tests added because code is unused, and compile is enough to verify that conculsively.
6919
6920         * css/StyleResolver.cpp:
6921
6922 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6923
6924         Update DOMException name: SyntaxError
6925         https://bugs.webkit.org/show_bug.cgi?id=102279
6926
6927         Reviewed by Kentaro Hara.
6928
6929         Patch 12 of 25 to update DOMException name to match the spec and Firefox.
6930
6931         Updated existing tests.
6932
6933         * dom/DOMCoreException.cpp:
6934
6935 2012-11-15  Takashi Sakamoto  <tasak@google.com>
6936
6937         [Win] key event's location does not work on Windows platform.
6938         https://bugs.webkit.org/show_bug.cgi?id=89742
6939
6940         Reviewed by Brent Fulgham.
6941
6942         As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
6943         directly provide a virtual keycode which distinguish between left-hand
6944         and right-hand keys. To obtain a virtual keycode, we have to look at
6945         lparam, i.e. scancode and extended key bit. So if the given virtual
6946         keycode is control, shift, or menu, use MapVirtualKey with scancode and
6947         extended key bit and recreate a virtual keycode which distinguishes
6948         between left-hand and right-hand.
6949
6950         No new tests, because left-hand keys, right-hand keys layout tests
6951         have been already added.
6952
6953         * platform/win/KeyEventWin.cpp:
6954         (WebCore::windowsKeycodeWithLocation):
6955         Use wparam and lparam to recreate a virtual keycode which distinguishes
6956         between left-hand and right-hand if the given wparam (=virtual keycode)
6957         is control, shift, or menu.
6958         (WebCore):
6959         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
6960         Use the newly added function to obtain windows virtual keycode.
6961
6962 2012-11-15  Joe Mason  <jmason@rim.com>
6963
6964         [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
6965         https://bugs.webkit.org/show_bug.cgi?id=102436
6966
6967         Reviewed by Rob Buis.
6968
6969         The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
6970         taking auth of its own. First we get a 407 from the proxy, and then when get past the
6971         proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
6972         type Proxy instead of HTTP.
6973
6974         The correct thing to do when that happens is skip the "update the auth type in the
6975         credentials" step, since these are actually new credentials and not just credentials being
6976         reused for a different auth type on the same server.
6977
6978         PR 241637
6979
6980         * platform/network/blackberry/NetworkJob.cpp:
6981         (WebCore::NetworkJob::notifyAuthReceived):
6982
6983 2012-11-15  Stephen Chenney  <schenney@chromium.org>
6984
6985         mpath elements do not clear resource lists before destruction
6986         https://bugs.webkit.org/show_bug.cgi?id=101505
6987
6988         Reviewed by Abhishek Arya.
6989
6990         The destructor for SVGMPathElement should clear its resources before
6991         deletion, so as not to leave hanging pointers in resource lists.
6992
6993         Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
6994
6995         * svg/SVGMPathElement.cpp:
6996         (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
6997         (WebCore):
6998         * svg/SVGMPathElement.h:
6999         (SVGMPathElement): Add destructor.
7000
7001 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7002
7003         Remove CodeGenerator::StripModule
7004         https://bugs.webkit.org/show_bug.cgi?id=102338
7005
7006         Reviewed by Adam Barth.
7007
7008         Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
7009         We can remove CodeGenerator::StripModule.
7010         This might break some internal builds if the internal builds are still
7011         using modules. Ping haraken@ you observe it.
7012
7013         No tests. No change in behavior.
7014
7015         * bindings/scripts/CodeGenerator.pm:
7016         (ForAllParents):
7017         (AttributeNameForGetterAndSetter):
7018         (IsStrictSubtype):
7019         * bindings/scripts/CodeGeneratorCPP.pm:
7020         (GetClassName):
7021         (GetImplClassName):
7022         (GetParentImplClassName):
7023         (GetParent):
7024         (ConversionNeeded):
7025         (GetCPPTypeGetter):
7026         (AddForwardDeclarationsForType):
7027         (AddIncludesForType):
7028         (GenerateImplementation):
7029         * bindings/scripts/CodeGeneratorGObject.pm:
7030         (GetParentClassName):
7031         (GetParentGObjType):
7032         (GetClassName):
7033         * bindings/scripts/CodeGeneratorJS.pm:
7034         (GetParentClassName):
7035         (AddIncludesForTypeInImpl):
7036         (AddIncludesForTypeInHeader):
7037         (GenerateParametersCheckExpression):
7038         (GenerateImplementation):
7039         (GenerateParametersCheck):
7040         (GetNativeTypeFromSignature):
7041         (JSValueToNative):
7042         (NativeToJSValue):
7043         * bindings/scripts/CodeGeneratorObjC.pm:
7044         (GetClassName):
7045         (GetImplClassName):
7046         (GetParentImplClassName):
7047         (GetParentAndProtocols):
7048         (GetPropertyAttributes):
7049         (ConversionNeeded):
7050         (GetObjCTypeGetter):
7051         (AddForwardDeclarationsForType):
7052         (AddIncludesForType):
7053         (GenerateImplementation):
7054         * bindings/scripts/CodeGeneratorV8.pm:
7055         (AddIncludesForType):
7056         (GenerateHeader):
7057         (IsSubType):
7058         (GenerateSingleBatchedAttribute):
7059         (GenerateImplementation):
7060         (BaseInterfaceName):
7061         (GetTypeFromSignature):
7062         (IsWrapperType):
7063
7064 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
7065
7066         Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
7067         https://bugs.webkit.org/show_bug.cgi?id=101696
7068
7069         Reviewed by Tony Chang.
7070
7071         Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
7072         This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
7073
7074         No new tests / covered by all existing CSS tests.
7075
7076         * css/StyleResolver.cpp:
7077         (WebCore::StyleResolver::applyProperty):
7078
7079 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7080
7081         [V8] Remove redundant $interfaceName from function parameters
7082         https://bugs.webkit.org/show_bug.cgi?id=102334
7083
7084         Reviewed by Adam Barth.
7085
7086         'sub func { my $dataNode = shift; my $interfaceName = shift; }'
7087         is redundant. We can get $interfaceName by $dataNode->name.
7088
7089         No tests. No change in behavior.
7090
7091         * bindings/scripts/CodeGeneratorV8.pm:
7092         (GenerateOpaqueRootForGC):
7093         (GenerateHeader):
7094         (GenerateConstructorGetter):
7095         (GenerateNormalAttrGetter):
7096         (GenerateReplaceableAttrSetter):
7097         (GenerateNormalAttrSetter):
7098         (GenerateOverloadedFunctionCallback):
7099         (GenerateFunctionCallback):
7100         (GenerateOverloadedConstructorCallback):
7101         (GenerateSingleConstructorCallback):
7102         (GenerateConstructorCallback):
7103         (GenerateEventConstructorCallback):
7104         (GenerateTypedArrayConstructorCallback):
7105         (GenerateNamedConstructorCallback):
7106         (GenerateBatchedAttributeData):
7107         (GenerateImplementation):
7108         (GenerateToV8Converters):
7109         (GetNativeTypeForConversions):
7110
7111 2012-11-15  Simon Fraser  <simon.fraser@apple.com>
7112
7113         Ensure that scrollbar layers show debug borders
7114         https://bugs.webkit.org/show_bug.cgi?id=102429
7115
7116         Reviewed by Anders Carlsson.
7117
7118         After r133517, scrollbar layers no longer showed debug borders, which
7119         was very confusing. Fix this by explicitly calling setShowDebugBorder()
7120         on the scrollbar-related layers owned by RenderLayerCompositor
7121         and RenderLayerBacking.
7122         
7123         * rendering/RenderLayerBacking.cpp:
7124         (WebCore::RenderLayerBacking::updateDebugIndicators):
7125         * rendering/RenderLayerCompositor.cpp:
7126         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
7127         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
7128
7129 2012-11-15  Andreas Kling  <akling@apple.com>
7130
7131         ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
7132         <http://webkit.org/b/102423>
7133
7134         Reviewed by Anders Carlsson.
7135
7136         Use Element::getAttributeItem() to find out if the element has a given attribute
7137         instead of fastHasAttribute() since that causes assertions for the "style" attribute.
7138
7139         * html/parser/HTMLConstructionSite.cpp:
7140         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7141
7142 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7143
7144         Update DOMException name: DOMStringSizeError
7145         https://bugs.webkit.org/show_bug.cgi?id=102089
7146
7147         Reviewed by Ojan Vafai.
7148
7149         Patch 2 of 25 to update DOMException name to match the spec and Firefox.
7150
7151         DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
7152
7153         * dom/DOMCoreException.cpp:
7154         * dom/ExceptionCode.h:
7155
7156 2012-11-15  Joshua Bell  <jsbell@chromium.org>
7157
7158         IndexedDB: Indexing tests are flaky-crashing
7159         https://bugs.webkit.org/show_bug.cgi?id=102283
7160
7161         Reviewed by Tony Chang.
7162
7163         Processing the final task can cause IDBTransactionBackendImpl references to be released
7164         by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
7165         swapping queues) control would fall off the end of the function. The loop termination
7166         check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
7167         the method completes.
7168
7169         Test: storage/indexeddb/transaction-crash-in-tasks.html
7170
7171         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
7172         (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
7173         (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
7174         (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
7175
7176 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7177
7178         MutationObserver wrapper should not be collected while still observing
7179         https://bugs.webkit.org/show_bug.cgi?id=102328
7180
7181         Reviewed by Adam Barth.
7182
7183         Make MutationObserver an ActiveDOMObject so that the wrapper is not
7184         collected while it is still observing the DOM. This is needed because
7185         the wrapper is passed into the callback and expandos on the wrapper
7186         should be preserved.
7187
7188         Test: fast/mutation/observer-wrapper-dropoff.html
7189
7190         * bindings/js/JSMutationObserverCustom.cpp:
7191         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
7192         * bindings/v8/custom/V8MutationObserverCustom.cpp:
7193         (WebCore::V8MutationObserver::constructorCallback):
7194         * dom/MutationObserver.cpp:
7195         (WebCore::MutationObserver::create):
7196         (WebCore::MutationObserver::MutationObserver):
7197         (WebCore::MutationObserver::observationStarted):
7198         (WebCore::MutationObserver::observationEnded):
7199         * dom/MutationObserver.h:
7200         (WebCore):
7201         * dom/MutationObserver.idl:
7202
7203 2012-11-15  Tony Chang  <tony@chromium.org>
7204
7205         Generate Settings from a .in file
7206         https://bugs.webkit.org/show_bug.cgi?id=100393
7207
7208         Reviewed by Adam Barth.
7209
7210         Generate most settings from an .in file to reduce human mistakes and
7211         to make it easier to add/remove new settings.
7212
7213         I only moved settings that are easy to move at this point.  There are many more that
7214         have some minor naming inconsistencies that we can also move to Settings.in, but I'll
7215         do that in a follow up patch.
7216
7217         This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
7218
7219         No new tests, this is a refactor.
7220
7221         * CMakeLists.txt:
7222         * DerivedSources.make: Run make_settings.pl.
7223         * DerivedSources.pri: Run make_settings.pl.
7224         * GNUmakefile.am: Run make_settings.pl.
7225         * GNUmakefile.list.am:
7226         * WebCore.exp.in: Remove functions that are now inline in the header.
7227         * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
7228         * WebCore.gyp/scripts/action_makenames.py:
7229         (main): Allow make_settings.pl.
7230         * WebCore.order: Remove functions that are now inline in the header.
7231         * html/ValidationMessage.cpp:
7232         (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
7233         * page/Settings.cpp:
7234         (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
7235         * page/Settings.h:
7236         (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
7237         * page/Settings.in: Added.
7238         * page/make_settings.pl: Added.
7239         (defaultItemFactory):
7240         (generateCode):
7241         (generateHeader): Use a similar model as make_names.pl.
7242         (printConditionalMacros):
7243         (printGettersAndSetters):
7244         (printMemberVariables):
7245         (printGetterAndSetter):
7246         (printInitializerList):
7247         (printInitializer):
7248
7249 2012-11-15  Alpha Lam  <hclam@chromium.org>
7250
7251         [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
7252         https://bugs.webkit.org/show_bug.cgi?id=102019
7253
7254         Reviewed by Stephen White.
7255
7256         Goal of this change is to keep ImageDecodingStore clean and only do
7257         image caching. Logic of creating lazily decoded SkBitmaps is moved into
7258         DeferredImageDecoder.
7259
7260         In particular these two methods are moved:
7261         - ImageDecodingStore::createLazyDecodedSkBitmap
7262         - ImageDecodingStore::resizeLazyDecodedSkBitmap
7263
7264         No new tests. There is no new code (really). It is just moved from
7265         ImageDecodingStore to DeferredImageDecoder.
7266
7267         No change in behavior. Code is tested with:
7268         Unit tests: webkit_unit_tests
7269         Layout test: platform/chromium/virtual/deferred
7270
7271         * platform/graphics/chromium/DeferredImageDecoder.cpp:
7272         (WebCore::DeferredImageDecoder::isLazyDecoded):
7273         (WebCore):
7274         (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
7275         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
7276         (WebCore::DeferredImageDecoder::setData):
7277         (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
7278         * platform/graphics/chromium/DeferredImageDecoder.h:
7279         (WebCore):
7280         (DeferredImageDecoder):
7281         * platform/graphics/chromium/ImageDecodingStore.cpp:
7282         * platform/graphics/chromium/ImageDecodingStore.h:
7283         (ImageDecodingStore):
7284         * platform/graphics/chromium/ImageFrameGenerator.cpp:
7285         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
7286         * platform/graphics/chromium/ImageFrameGenerator.h:
7287         (WebCore::ImageFrameGenerator::create):
7288         (ImageFrameGenerator):
7289         * platform/graphics/skia/NativeImageSkia.cpp:
7290         (WebCore::NativeImageSkia::resizedBitmap):
7291
7292 2012-11-15  Roger Fong  <roger_fong@apple.com>
7293
7294         Unreviewed. Build fix for Windows after r134767.
7295
7296         Update vsprops and vcproj files to reflect changes to file locations in r134767.
7297
7298         * WebCore.vcproj/WebCore.vcproj:
7299         * WebCore.vcproj/WebCoreCommon.vsprops:
7300
7301 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7302
7303         Track subframe count to avoid traversing the tree when there's no subframes
7304         https://bugs.webkit.org/show_bug.cgi?id=101821
7305
7306         Reviewed by Ojan Vafai.
7307
7308         Bug 101619 showed a 9-14% improvement from not walking the children during
7309         removeChild looking for frames when there's known to be no frames. The fix
7310         in that bug only avoids this walk when the whole document has no frames, this
7311         patch extends it to skip traversing subtrees that have no iframes by hooking
7312         the frame assignment to walk up the tree and keep track of the count of frames
7313         in the subtree on contentFrame assignment and then decrement it on disconnect.
7314
7315         No new tests, this is just a perf refactor.
7316
7317         * dom/ContainerNode.cpp:
7318         (WebCore::willRemoveChildren):
7319         * dom/ContainerNodeAlgorithms.cpp:
7320         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7321         * dom/ContainerNodeAlgorithms.h:
7322         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
7323         (ChildFrameDisconnector):
7324         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7325           Renamed from collectDescendant() to better reflect what it really does.
7326         (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
7327           Renamed from disconnect() to better reflect what it really does.
7328         (WebCore::ChildFrameDisconnector::disconnect):
7329           New method that does the collection of frame owners on either the root
7330           or only it's descendants.
7331         * dom/Node.cpp:
7332         (WebCore::Node::connectedSubframeCount):
7333         (WebCore::Node::incrementConnectedSubframeCount):
7334         (WebCore::Node::decrementConnectedSubframeCount):
7335         * dom/Node.h:
7336         * dom/NodeRareData.h:
7337         (WebCore::NodeRareData::NodeRareData):
7338         (WebCore::NodeRareData::connectedSubframeCount):
7339         (WebCore::NodeRareData::incrementConnectedSubframeCount):
7340         (WebCore::NodeRareData::decrementConnectedSubframeCount):
7341         * html/HTMLFrameOwnerElement.cpp:
7342         (WebCore::HTMLFrameOwnerElement::setContentFrame):
7343         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
7344
7345 2012-11-15  Alpha Lam  <hclam@chromium.org>
7346
7347         [chromium] WebGL texImage2D fails with deferred image decoding
7348         https://bugs.webkit.org/show_bug.cgi?id=102310
7349
7350         Reviewed by Kenneth Russell.
7351
7352         Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
7353         to decode an image. When deferred image decoding is enabled this class
7354         generates an ImageFrame marked as incomplete, which WebGL rejects. This results
7355         in failing of texImage2D.
7356
7357         This change uses ImageDecoder directly instead of ImageSource. This skips
7358         the code path of deferred image decoding. This behavior is correct because
7359         GraphicsContext3D wants to decode the image differently with alpha not
7360         premultiplied and color profile applied optionally.
7361
7362         Added a test to prove this change fixed the bug.
7363
7364         Test: fast/images/webgl-teximage2d.html
7365
7366         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
7367         (WebCore::GraphicsContext3D::getImageData):
7368
7369 2012-11-15  Jer Noble  <jer.noble@apple.com>
7370
7371         Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
7372
7373         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7374         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7375
7376 2012-11-15  Jer Noble  <jer.noble@apple.com>
7377
7378         Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
7379
7380         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7381         (WebCore::WebCoreAVFResourceLoader::responseReceived):
7382         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7383
7384 2012-11-15  Adam Barth  <abarth@webkit.org>
7385
7386         [V8] We shouldn't call deprecated V8 APIs
7387         https://bugs.webkit.org/show_bug.cgi?id=102407
7388
7389         Reviewed by Eric Seidel.
7390
7391         This patch was written by Sven Panne on the V8 team. He would prefer
7392         that we not call deprecated V8 APIs. This patch updates these call
7393         sites to more modern idioms.
7394
7395         * bindings/scripts/CodeGeneratorV8.pm:
7396         (GenerateConstructorGetter):
7397         (GenerateImplementation):
7398         * bindings/scripts/test/V8/V8TestObj.cpp:
7399         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
7400         * bindings/v8/PageScriptDebugServer.cpp:
7401         (WebCore::PageScriptDebugServer::addListener):
7402         * bindings/v8/ScriptController.cpp:
7403         (WebCore::ScriptController::setContextDebugId):
7404         (WebCore::ScriptController::contextDebugId):
7405         * bindings/v8/ScriptProfiler.cpp:
7406         (WebCore::ScriptProfiler::objectByHeapObjectId):
7407             - This code doesn't seem to do anything anymore.
7408         * bindings/v8/V8DOMConfiguration.h:
7409         (WebCore::V8DOMConfiguration::configureAttribute):
7410         * bindings/v8/V8DOMWindowShell.cpp:
7411         (WebCore::setInjectedScriptContextDebugId):
7412         * bindings/v8/V8DOMWrapper.cpp:
7413         (WebCore::V8DOMWrapper::maybeDOMWrapper):
7414         (WebCore::V8DOMWrapper::isWrapperOfType):
7415         * bindings/v8/V8EventListenerList.h:
7416         (WebCore::V8EventListenerList::doFindWrapper):
7417         (WebCore::V8EventListenerList::findOrCreateWrapper):
7418         * bindings/v8/WorkerContextExecutionProxy.cpp:
7419         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
7420         * bindings/v8/WrapperTypeInfo.h:
7421         (WebCore::WrapperTypeInfo::unwrap):
7422
7423 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7424
7425         Unreviewed, rolling out r134800 and r134805.
7426         http://trac.webkit.org/changeset/134800
7427         http://trac.webkit.org/changeset/134805
7428         https://bugs.webkit.org/show_bug.cgi?id=102417
7429
7430         This patch broke chromium port (Requested by jianli on
7431         #webkit).
7432
7433         * Modules/mediastream/RTCPeerConnection.cpp:
7434         (WebCore::RTCPeerConnection::RTCPeerConnection):
7435         (WebCore::RTCPeerConnection::createOffer):
7436         (WebCore::RTCPeerConnection::createAnswer):
7437         (WebCore::RTCPeerConnection::setLocalDescription):
7438         (WebCore::RTCPeerConnection::localDescription):
7439         (WebCore::RTCPeerConnection::setRemoteDescription):
7440         (WebCore::RTCPeerConnection::remoteDescription):
7441         (WebCore::RTCPeerConnection::updateIce):
7442         (WebCore::RTCPeerConnection::addIceCandidate):
7443         (WebCore::RTCPeerConnection::readyState):
7444         (WebCore::RTCPeerConnection::iceState):
7445         (WebCore::RTCPeerConnection::addStream):
7446         (WebCore::RTCPeerConnection::close):
7447         (WebCore::RTCPeerConnection::stop):
7448         (WebCore::RTCPeerConnection::changeReadyState):
7449         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7450         * Modules/mediastream/RTCPeerConnection.h:
7451         (RTCPeerConnection):
7452         * Modules/mediastream/RTCPeerConnection.idl:
7453         * dom/EventNames.h:
7454         (WebCore):
7455         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7456         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7457         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7458         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7459         (RTCPeerConnectionHandlerClient):
7460         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7461         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7462         (RTCPeerConnectionHandlerChromium):
7463
7464 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7465
7466         Remove Node::aboutToUnload and be more explicit about what it was for
7467         https://bugs.webkit.org/show_bug.cgi?id=102357
7468
7469         Reviewed by Ryosuke Niwa.
7470
7471         Node::aboutToUnload was confusingly named because it was only called on
7472         the focused node, and it really only existed to support notifying the
7473         embedder that inputs should stop being editable on unload. Instead add
7474         a new method to HTMLInputElement that ends editing and call that
7475         explicitly in the FrameLoader so it's clear what this is about.
7476
7477         No new tests, this is just a refactoring.
7478
7479         * dom/Node.h:
7480         * html/HTMLInputElement.cpp:
7481         (WebCore::HTMLInputElement::endEditing):
7482             New method that handles finishing editing.
7483         * html/HTMLInputElement.h:
7484         (HTMLInputElement):
7485         * html/TextFieldInputType.cpp:
7486         (WebCore::TextFieldInputType::handleBlurEvent):
7487             Use the new method to reduce code duplication.
7488         * loader/FrameLoader.cpp:
7489         (WebCore::FrameLoader::stopLoading):
7490             Be explicit about what this check was for.
7491
7492 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7493
7494         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
7495         https://bugs.webkit.org/show_bug.cgi?id=102386
7496
7497         Reviewed by Adam Barth.
7498
7499         Existing tests expanded to cover patch.
7500
7501         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7502         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7503         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7504         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7505         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
7506         (WebCore):
7507         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7508         (WebKit):
7509         (RTCPeerConnectionHandlerChromium):
7510
7511 2012-11-15  Rick Byers  <rbyers@chromium.org>
7512
7513         No tests for changing mouse cursors
7514         https://bugs.webkit.org/show_bug.cgi?id=100550
7515
7516         Reviewed by Brent Fulgham.
7517
7518         Add infrastructure to keep track of the last set mouse cursor,
7519         and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
7520         we can reliably detect when an uninitialized Cursor object is used (such as
7521         the one that can be returned from OptionalCursor in the NoCursorChange scenario).
7522
7523         Test: fast/events/mouse-cursor.html
7524
7525         * WebCore.exp.in: Add Cursor copy ctor export
7526         * page/EventHandler.cpp:
7527         (WebCore::OptionalCursor::cursor):
7528         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
7529         * page/EventHandler.h:
7530         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
7531         * platform/Cursor.h:
7532         (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
7533         (WebCore::Cursor::type): Assert cursor type is valid.
7534         * testing/Internals.cpp:
7535         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
7536         (WebCore):
7537         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
7538         * testing/Internals.h: Declare getCurrentCursorInfo
7539         * testing/Internals.idl: Declare getCurrentCursorInfo
7540
7541 2012-11-13  Jer Noble  <jer.noble@apple.com>
7542
7543         Support loading of blob URLs in AVFoundation.
7544         https://bugs.webkit.org/show_bug.cgi?id=102182
7545
7546         Reviewed by Eric Carlson.
7547
7548         Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
7549
7550         Test: media/video-src-blob.html
7551
7552         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
7553         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7554         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
7555             media path if the key scheme is skp://.
7556         (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
7557             the media engine requests it.
7558         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
7559         
7560         Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
7561         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7562         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
7563         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
7564         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
7565
7566         Add a new helper class to manage loading the CachedRawResource and feed the incoming
7567         data to the AVAssetResourceLoader.
7568         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
7569         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
7570         (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
7571         (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
7572         (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
7573         (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
7574         (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
7575         (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
7576             AVAssetResourceLoadingRequest.
7577         (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
7578         (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
7579             has completed.
7580         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
7581             field of the AVAssetResourceLoadingRequest.
7582
7583         Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
7584         document's cachedResourceLoader.
7585         * html/HTMLMediaElement.cpp:
7586         (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
7587         * html/HTMLMediaElement.h:
7588         * platform/graphics/MediaPlayer.cpp:
7589         (WebCore::MediaPlayer::cachedResourceLoader):
7590         * platform/graphics/MediaPlayer.h:
7591         (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
7592
7593         Add a convenience method to convert from MIME type -> UTI.
7594         * platform/network/mac/UTIUtilities.h:
7595         * platform/network/mac/UTIUtilities.mm:
7596         (WebCore::UTIFromMIMEType):
7597
7598         Add new files to project.
7599         * WebCore.xcodeproj/project.pbxproj:
7600
7601 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7602
7603         Remove initiallyFitToViewport attribute
7604         https://bugs.webkit.org/show_bug.cgi?id=102392
7605
7606         Reviewed by Noam Rosenthal.
7607
7608         Remove the initiallyFitToViewport which shouldn't have been
7609         added in the first place. We now reset userScalable to auto (-1)
7610         in case it was not explicitly set by the web author.
7611
7612         Same behavior, covered by existing tests.
7613
7614         * dom/ViewportArguments.cpp:
7615         (WebCore::ViewportArguments::resolve):
7616         * dom/ViewportArguments.h:
7617         (ViewportAttributes):
7618
7619 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7620
7621         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
7622         https://bugs.webkit.org/show_bug.cgi?id=102382
7623
7624         Reviewed by Adam Barth.
7625
7626         Updating readyState & iceState, and adding iceGatheringState.
7627         Also safeguarding the event timer callback.
7628
7629         Patch covered by existing tests.
7630
7631         * Modules/mediastream/RTCPeerConnection.cpp:
7632         (WebCore::RTCPeerConnection::RTCPeerConnection):
7633         (WebCore::RTCPeerConnection::createOffer):
7634         (WebCore::RTCPeerConnection::createAnswer):
7635         (WebCore::RTCPeerConnection::setLocalDescription):
7636         (WebCore::RTCPeerConnection::localDescription):
7637         (WebCore::RTCPeerConnection::setRemoteDescription):
7638         (WebCore::RTCPeerConnection::remoteDescription):
7639         (WebCore::RTCPeerConnection::updateIce):
7640         (WebCore::RTCPeerConnection::addIceCandidate):
7641         (WebCore::RTCPeerConnection::readyState):
7642         (WebCore::RTCPeerConnection::iceGatheringState):
7643         (WebCore):
7644         (WebCore::RTCPeerConnection::iceState):
7645         (WebCore::RTCPeerConnection::addStream):
7646         (WebCore::RTCPeerConnection::close):
7647         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
7648         (WebCore::RTCPeerConnection::stop):
7649         (WebCore::RTCPeerConnection::changeReadyState):
7650         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7651         * Modules/mediastream/RTCPeerConnection.h:
7652         (RTCPeerConnection):
7653         * Modules/mediastream/RTCPeerConnection.idl:
7654         * dom/EventNames.h:
7655         (WebCore):
7656         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7657         (RTCPeerConnectionHandlerClient):
7658         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7659         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
7660         (WebCore):
7661         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7662         (RTCPeerConnectionHandlerChromium):
7663
7664 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7665
7666         Unreviewed, rolling out r134649 and r134665.
7667         http://trac.webkit.org/changeset/134649
7668         http://trac.webkit.org/changeset/134665
7669         https://bugs.webkit.org/show_bug.cgi?id=102413
7670
7671         Broke a ton of downstream chromium tests (Requested by japhet
7672         on #webkit).
7673
7674         * loader/DocumentLoader.cpp:
7675         (WebCore::DocumentLoader::DocumentLoader):
7676         (WebCore::DocumentLoader::~DocumentLoader):
7677         (WebCore::DocumentLoader::finishedLoading):
7678         (WebCore::DocumentLoader::clearMainResourceLoader):
7679         (WebCore::DocumentLoader::isLoadingInAPISense):
7680         (WebCore::DocumentLoader::documentURL):
7681         (WebCore::DocumentLoader::isLoadingMainResource):
7682         (WebCore::DocumentLoader::startLoadingMainResource):
7683         * loader/DocumentLoader.h:
7684         (DocumentLoader):
7685         * loader/FrameLoader.cpp:
7686         (WebCore::FrameLoader::FrameLoader):
7687         (WebCore::FrameLoader::init):
7688         * loader/FrameLoaderStateMachine.cpp:
7689         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
7690         * loader/FrameLoaderStateMachine.h:
7691         * loader/MainResourceLoader.cpp:
7692         (WebCore::shouldLoadAsEmptyDocument):
7693         (WebCore):
7694         (WebCore::MainResourceLoader::continueAfterContentPolicy):
7695         (WebCore::MainResourceLoader::didReceiveResponse):
7696         (WebCore::MainResourceLoader::didFinishLoading):
7697         (WebCore::MainResourceLoader::handleEmptyLoad):
7698         (WebCore::MainResourceLoader::loadNow):
7699         (WebCore::MainResourceLoader::load):
7700         * loader/MainResourceLoader.h:
7701         (MainResourceLoader):
7702
7703 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7704
7705         Correct syntax of old-style IDL files
7706         https://bugs.webkit.org/show_bug.cgi?id=102335
7707
7708         Reviewed by Adam Barth.
7709
7710         Recently tasak@ corrected an IDL syntax of almost all IDL files.
7711         We should correct the rest of them.
7712
7713         No tests. No change in behavior.
7714
7715         * html/canvas/OESElementIndexUint.idl:
7716         * page/PerformanceMark.idl:
7717         * page/PerformanceMeasure.idl:
7718
7719 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7720
7721         Remove isHTMLInputElement since it's unused and toInputElement exists 
7722         https://bugs.webkit.org/show_bug.cgi?id=102358
7723
7724         Reviewed by Ojan Vafai.
7725
7726         Remove isHTMLInputElement as no one uses it. Everyone just uses
7727         Node::toInputElement and checks for a 0 return value instead.
7728
7729         toInputElement is also more reliable as there's no requirement that
7730         subclasses of HTMLInputElement have the tag name of inputTag so using
7731         this method in a check could potentially miss future subclasses with
7732         different tag names, though none exist right now.
7733
7734         No new tests, this just deletes dead code.
7735
7736         * html/HTMLInputElement.h:
7737
7738 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7739
7740         Update DOMException name: NotSupportedError
7741         https://bugs.webkit.org/show_bug.cgi?id=102139
7742
7743         Reviewed by Ojan Vafai.
7744
7745         Patch 9 of 25 to update DOMException name to match the spec and Firefox.
7746
7747         Updated existing tests.
7748
7749         * dom/DOMCoreException.cpp:
7750
7751 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7752
7753         Remove isHTMLInputElement since it's unused and toInputElement exists 
7754         https://bugs.webkit.org/show_bug.cgi?id=102358
7755
7756         Reviewed by Ojan Vafai.
7757
7758         Remove isHTMLInputElement as no one uses it. Everyone just uses
7759         Node::toInputElement and checks for a 0 return value instead.
7760
7761         toInputElement is also more reliable as there's no requirement that
7762         subclasses of HTMLInputElement have the tag name of inputTag so using
7763         this method in a check could potentially miss future subclasses with
7764         different tag names, though none exist right now.
7765
7766         No new tests, this just deletes dead code.
7767
7768         * html/HTMLInputElement.h:
7769
7770 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7771
7772         Update DOMException name: NoModificationAllowedError
7773         https://bugs.webkit.org/show_bug.cgi?id=102134
7774
7775         Reviewed by Ojan Vafai.
7776
7777         Patch 7 of 25 to update DOMException name to match the spec and Firefox.
7778
7779         Updated existing tests.
7780
7781         * dom/DOMCoreException.cpp:
7782
7783 2012-11-15  Miguel Garcia  <miguelg@chromium.org>
7784
7785         Remove unnecesary dependencies INPUT_TYPE_COLOR
7786         https://bugs.webkit.org/show_bug.cgi?id=102379
7787
7788         Reviewed by Darin Adler.
7789
7790         Platforms should be able to enable INPUT_TYPE_COLOR without enabling
7791         CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
7792         compile errors in such configuration.
7793
7794         No new tests since this is not adding any extra functionality.
7795
7796         * WebCore.gyp/WebCore.gyp:
7797         * html/ColorInputType.cpp:
7798         (WebCore::ColorInputType::shouldShowSuggestions):
7799         * make-file-arrays.py:
7800         (main):
7801
7802 2012-11-15  Eric Carlson  <eric.carlson@apple.com>
7803
7804         Update computed line position algorithm
7805         https://bugs.webkit.org/show_bug.cgi?id=93779
7806
7807         Reviewed by Philippe Normand.
7808
7809         Compute the position of a text track relative to rendered tracks. This is needed to position
7810         cues correctly when there is more than one text track.
7811
7812         Test: media/track/track-cue-container-rendering-position.html
7813
7814         * html/track/TextTrack.cpp:
7815         (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
7816         (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
7817             to other rendered tracks.
7818         * html/track/TextTrack.h:
7819
7820         * html/track/TextTrackCue.cpp:
7821         (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
7822             instead of trackIndex() so cues are positioned correctly.
7823
7824         * html/track/TextTrackList.cpp:
7825         (TextTrackList::getTrackIndex): Change return type from unsigned to int.
7826         (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
7827         * html/track/TextTrackList.h:
7828
7829 2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
7830
7831         [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
7832         https://bugs.webkit.org/show_bug.cgi?id=101323
7833
7834         Reviewed by Martin Robinson.
7835
7836         Removing ifdef since we bumped Harfbuzz dependency. This is the
7837         real fix replacing the previous workaround of having a Chromium
7838         specific ifdef here, since Chromium uses a newer HarfBuzz version
7839         already.
7840
7841         No new tests, covered by css3/flexbox/inline-flex-crash.html
7842         which will not crash anymore even with the ifdef removed.
7843
7844         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
7845         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
7846
7847 2012-11-15  Andreas Kling  <kling@webkit.org>
7848
7849         REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
7850         <http://webkit.org/b/102304>
7851
7852         Reviewed by Anders Carlsson.
7853
7854         Test: fast/dom/cloneNode-below-body-attribute-merging.html
7855
7856         * html/parser/HTMLConstructionSite.cpp:
7857         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7858
7859             Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
7860             we're merging attributes into.
7861
7862         * dom/ElementAttributeData.h:
7863         (ElementAttributeData):
7864
7865             Remove a now-unnecessary friend declaration.
7866
7867 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7868
7869         Prevent creation of detached frames in ShadowRoot
7870         https://bugs.webkit.org/show_bug.cgi?id=102333
7871
7872         Reviewed by Dimitri Glazkov.
7873
7874         Similar to Bug 94717 you can create a loaded iframe in a detached
7875         subtree using ShadowRoot. To fix this we just need to make
7876         SubframeLoadingDisabler traverse through shadow boundaries.
7877
7878         Test: fast/frames/detached-shadow-frame.html
7879
7880         * html/HTMLFrameOwnerElement.h:
7881         (WebCore::SubframeLoadingDisabler::canLoadFrame):
7882
7883 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
7884
7885         Changing pseudoClass (:visited) should cause distribution.
7886         https://bugs.webkit.org/show_bug.cgi?id=101700
7887
7888         Reviewed by Dimitri Glazkov.
7889
7890         When href attribute of an anchor or area element is changed, we have to invalidate distribution.
7891
7892         Since we would like to check a few pseudoClasses at once, we make the argument of
7893         SelectRuleFeatureSet::hasSelectorFor int.
7894
7895         Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
7896                fast/dom/shadow/pseudoclass-update-visited-area.html
7897
7898         * dom/ElementShadow.cpp:
7899         (WebCore::invalidateParentDistributionIfNecessary):
7900         * dom/ElementShadow.h:
7901         (WebCore):
7902         * html/HTMLAnchorElement.cpp:
7903         (WebCore::HTMLAnchorElement::parseAttribute):
7904         * html/shadow/SelectRuleFeatureSet.h:
7905         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
7906
7907 2012-11-15  Balazs Kelemen  <kbalazs@webkit.org>
7908
7909         Coordinated Graphics: support the "freeze animations" API
7910         https://bugs.webkit.org/show_bug.cgi?id=100703
7911
7912         Reviewed by Noam Rosenthal.
7913
7914         Make animations resumable in Coordinated Graphics.
7915         Pausing was already implemented.
7916
7917         Tested with animations and transitions tests. No tests to be
7918         unskipped because these tests has been working without this API
7919         as well (although this is the preferred way).
7920
7921         * platform/graphics/GraphicsLayerAnimation.cpp:
7922         (WebCore::GraphicsLayerAnimation::apply):
7923         (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
7924         Do not consider the time while we was suspended as part of
7925         the total running time.
7926         (WebCore):
7927         (WebCore::GraphicsLayerAnimation::resume):
7928         (WebCore::GraphicsLayerAnimations::suspend):
7929         (WebCore::GraphicsLayerAnimations::resume):
7930         * platform/graphics/GraphicsLayerAnimation.h:
7931         (GraphicsLayerAnimation):
7932         (GraphicsLayerAnimations):
7933
7934 2012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>
7935
7936         Relocate the ARM NEON SVG filter optimizations
7937         https://bugs.webkit.org/show_bug.cgi?id=102214
7938
7939         Reviewed by Zoltan Herczeg.
7940
7941         Relocate the ARM filter optimizations into platform/graphics/cpu/arm
7942         to keep them together with the others.
7943         From now all graphics optimization for ARM NEON should go here.
7944
7945         * CMakeLists.txt:
7946         * GNUmakefile.am:
7947         * GNUmakefile.list.am:
7948         * Target.pri:
7949         * WebCore.gyp/WebCore.gyp:
7950         * WebCore.gypi:
7951         * WebCore.pri:
7952         * WebCore.xcodeproj/project.pbxproj:
7953         * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
7954         (WebCore):
7955         (FEBlendUtilitiesNEON):
7956         (WebCore::FEBlendUtilitiesNEON::div255):
7957         (WebCore::FEBlendUtilitiesNEON::normal):
7958         (WebCore::FEBlendUtilitiesNEON::multiply):
7959         (WebCore::FEBlendUtilitiesNEON::screen):
7960         (WebCore::FEBlendUtilitiesNEON::darken):
7961         (WebCore::FEBlendUtilitiesNEON::lighten):
7962         (WebCore::FEBlend::platformApplyNEON):
7963         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
7964         (WebCore):
7965         (WebCore::FEComposite::computeArithmeticPixelsNeon):
7966         (WebCore::FEComposite::platformArithmeticNeon):
7967         * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
7968         (WebCore):
7969         (WebCore::boxBlurNEON):
7970         * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
7971         (WebCore):
7972         (WebCore::feLightingConstantsForNeon):
7973         (WebCore::FELighting::platformApplyNeonWorker):
7974         (WebCore::FELighting::getPowerCoefficients):
7975         * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
7976         (WebCore):
7977         (FELightingFloatArgumentsForNeon):
7978         (FELightingPaintingDataForNeon):
7979         (WebCore::FELighting::platformApplyNeon):
7980         * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
7981         (WebCore):
7982         (WebCore::loadRGBA8AsFloat):
7983         (WebCore::storeFloatAsRGBA8):
7984
7985 2012-11-15  Mike West  <mkwst@chromium.org>
7986
7987         We should trigger a console warning when we encounter invalid sandbox flags.
7988         https://bugs.webkit.org/show_bug.cgi?id=101956
7989
7990         Reviewed by Adam Barth.
7991
7992         A developer who writes '<iframe sandbox="allowScripts">' probably has
7993         something in mind other than what the browser interprets. In these
7994         situations, we should log a console warning that notes 'allowScripts'
7995         is an invalid sandbox flag ('allow-scripts' is probably what she
7996         meant).
7997
7998         This patch does the simplest thing possible: it throws a warning that
7999         lists the invalid flags encountered for sandbox attributes on iframes,
8000         and for sandbox Content Security Policy directives.
8001
8002         Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
8003                http/tests/security/sandboxed-iframe-invalid.html
8004
8005         * dom/SecurityContext.cpp:
8006         (WebCore::SecurityContext::parseSandboxPolicy):
8007         * dom/SecurityContext.h:
8008         (SecurityContext):
8009             Accept a new out parameter, invalidTokensErrorMessage. If invalid
8010             tokens are encountered, build an error message string, and pass it
8011             back to the caller through this parameter.
8012         * html/HTMLIFrameElement.cpp:
8013         (WebCore::HTMLIFrameElement::parseAttribute):
8014         * page/ContentSecurityPolicy.cpp:
8015         (WebCore::CSPDirectiveList::applySandboxPolicy):
8016             When applying a sandbox policy, pass a string into
8017             SecurityContext::parseSandboxPolicy to grab any errors that might
8018             be encountered, and log a warning in that event.
8019         (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
8020         (WebCore):
8021         * page/ContentSecurityPolicy.h:
8022             Adding a new method to report invalid sandbox flags.
8023
8024 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8025
8026         Rename member vars in ViewportArgument to match css-device-adapt
8027         https://bugs.webkit.org/show_bug.cgi?id=102355
8028
8029         Reviewed by Gyuyoung Kim.
8030
8031         No behavior change, thus no new tests.
8032
8033         * dom/ViewportArguments.cpp:
8034         (WebCore::ViewportArguments::resolve):
8035         (WebCore::setViewportFeature):
8036         * dom/ViewportArguments.h:
8037         (WebCore::ViewportArguments::ViewportArguments):
8038         (ViewportArguments):
8039         (WebCore::ViewportArguments::operator==):
8040
8041 2012-11-15  Andrey Adaikin  <aandrey@chromium.org>
8042
8043         Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
8044         https://bugs.webkit.org/show_bug.cgi?id=102366
8045
8046         Reviewed by Vsevolod Vlasov.
8047
8048         * inspector/InjectedScriptCanvasModuleSource.js:
8049         (.):
8050
8051 2012-11-15  Mark Rowe  <mrowe@apple.com>
8052
8053         Build fix.
8054
8055         Disable deprecation warnings in a few places that need it.
8056
8057         * platform/graphics/ca/mac/TileCache.mm:
8058         (WebCore::TileCache::drawRepaintCounter):
8059         * platform/graphics/mac/FontMac.mm:
8060         (WebCore::showGlyphsWithAdvances):
8061         * platform/graphics/mac/WebLayer.mm:
8062         (drawLayerContents):
8063
8064 2012-11-15  Kent Tamura  <tkent@chromium.org>
8065
8066         Support stand-alone month names in calendar picker
8067         https://bugs.webkit.org/show_bug.cgi?id=102196
8068
8069         Reviewed by Kentaro Hara.
8070
8071         We have showed non stand-alone month names in any locales. However
8072         we should show stand-alone month names in some locales such as
8073         Russian.
8074
8075         This patch introduce PagePopupController::formatMonth. It is
8076         exposed to page-popups, and format year-month pairs in the same
8077         way as input[type=month].
8078
8079         No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
8080
8081         * Resources/pagepopups/calendarPicker.js:
8082         (Month.prototype.toLocaleString):
8083         Calls pagePopupController.formatMonth except Japanese locale.
8084         (handleArgumentsTimeout):
8085         Remove unnecessary default monthLabels.
8086         * page/PagePopupController.cpp:
8087         (WebCore::PagePopupController::formatMonth): Added.
8088         * page/PagePopupController.h:
8089         (PagePopupController): Declare formatMonth.
8090         * page/PagePopupController.idl: Add formatMonth.
8091
8092 2012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
8093
8094         Web Inspector: Fix new JS compiler warnings.
8095         https://bugs.webkit.org/show_bug.cgi?id=102341
8096
8097         Reviewed by Yury Semikhatsky.
8098
8099         New version of compiler finds new inconsistencies.
8100
8101         * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
8102         * inspector/front-end/DOMBreakpointsSidebarPane.js:
8103         Declared instance property on WebInspector.
8104         * inspector/front-end/Script.js: Normalized parameter notation.
8105
8106 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8107
8108         Unreviewed build fix.
8109
8110         * dom/ViewportArguments.cpp:
8111         (WebCore::convertToUserSpace): Add static
8112
8113 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8114
8115         Refactor ViewportArguments to only use CSS units
8116         https://bugs.webkit.org/show_bug.cgi?id=102287
8117
8118         Reviewed by Noam Rosenthal.
8119
8120         Refactor the ViewportArgument code to use a member method for
8121         resolving the viewport. This new method only uses arguments in
8122         CSS units.
8123
8124         This is preparation for adding the CSS Device Adaptation support.
8125
8126         Tested by existing tests fast/viewport.
8127
8128         * dom/ViewportArguments.cpp:
8129         (WebCore::clampLengthValue):
8130         (WebCore::clampScaleValue): New utility functions.
8131         (WebCore::ViewportArguments::resolve):
8132         (WebCore::convertToUserSpace): Added until everyone provides arguments
8133         only in CSS units and not device ones.
8134         (WebCore::computeViewportAttributes):
8135         (WebCore::computeMinimumScaleFactorForContentContained):
8136         (WebCore):
8137         (WebCore::restrictMinimumScaleFactorToViewportSize):
8138         * dom/ViewportArguments.h:
8139         (ViewportArguments):
8140
8141 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
8142
8143         Changing pseudoClass (:disabled) should cause distribution.
8144         https://bugs.webkit.org/show_bug.cgi?id=101901
8145
8146         Reviewed by Hajime Morita.
8147
8148         We have to invalidate distribution when pseudo-class (:disabled) is changed.
8149
8150         According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
8151         option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
8152         have 'disabled' state, but we need a command element to make it 'disabled' state.
8153
8154         Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
8155                fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
8156                fast/dom/shadow/pseudoclass-update-disabled-input.html
8157                fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
8158                fast/dom/shadow/pseudoclass-update-disabled-option.html
8159                fast/dom/shadow/pseudoclass-update-disabled-select.html
8160                fast/dom/shadow/pseudoclass-update-disabled-textarea.html
8161
8162         * html/HTMLFormControlElement.cpp:
8163         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
8164         * html/HTMLOptGroupElement.cpp:
8165         (WebCore::HTMLOptGroupElement::parseAttribute):
8166         * html/HTMLOptionElement.cpp:
8167         (WebCore::HTMLOptionElement::parseAttribute):
8168
8169 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
8170
8171         Unreviewed, rolling out r134691, r134703, r134715, r134716,
8172         and r134733.
8173         http://trac.webkit.org/changeset/134691
8174         http://trac.webkit.org/changeset/134703
8175         http://trac.webkit.org/changeset/134715
8176         http://trac.webkit.org/changeset/134716
8177         http://trac.webkit.org/changeset/134733
8178         https://bugs.webkit.org/show_bug.cgi?id=102342
8179
8180         "Broke the Apple Windows Debug and GTK builds." (Requested by
8181         dydx on #webkit).
8182
8183         * WebCore.exp.in:
8184         * bindings/js/SerializedScriptValue.h:
8185         * testing/Internals.cpp:
8186         * testing/Internals.h:
8187         (WebCore):
8188         * testing/Internals.idl:
8189
8190 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
8191
8192         Not reviewed: fixing inspector tests under Qt.
8193
8194         * inspector/front-end/TestController.js:
8195         * inspector/front-end/utilities.js:
8196         (.):
8197
8198 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8199
8200         Unreviewed. Rebaselined run-bindings-tests.
8201
8202         * bindings/scripts/test/V8/V8TestNode.h:
8203         (WebCore::toV8Fast):
8204
8205 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
8206
8207         Don't use temporary clip rects when hit testing
8208         https://bugs.webkit.org/show_bug.cgi?id=102329
8209
8210         Reviewed by Beth Dakin.
8211
8212         We now cache clip rects separately for painting, hit testing etc. Hit testing
8213         clip rects are always shrunk to exclude scrollbars (so that hit testing on
8214         the scrollbars works), so we no longer every need to use temporary clip rects
8215         during hit testing.
8216
8217         Added an assertion that the scrollbar relevancy when we computed the clip rects
8218         is the same as that when using them.
8219         
8220         * rendering/RenderLayer.cpp:
8221         (WebCore::RenderLayer::hitTestLayer):
8222         (WebCore::RenderLayer::updateClipRects):
8223         * rendering/RenderLayer.h:
8224         (WebCore::ClipRectsCache::ClipRectsCache):
8225         (ClipRectsCache):
8226
8227 2012-11-14  Dirk Schulze  <krit@webkit.org>
8228
8229         Support animation of basic shape 'polygon'
8230         https://bugs.webkit.org/show_bug.cgi?id=102080
8231
8232         Reviewed by Daniel Bates.
8233
8234         The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
8235         patch http://trac.webkit.org/changeset/134352.
8236         This is a follow-up patch to make 'polygon' animatable as well, as long as the number
8237         of vertices between start and end polygon is the same.
8238
8239         Added polygon animation test to existing test:
8240             fast/exclusions/shape-inside/shape-inside-animation.html
8241             css3/masking/clip-path-animation.html
8242
8243         * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
8244         * rendering/style/BasicShapes.cpp:
8245         (WebCore::BasicShape::canBlend): Polygons are allowed now.
8246         (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
8247
8248 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8249
8250         Unreviewed. Fix code generator warnings.
8251
8252         * bindings/scripts/CodeGeneratorV8.pm:
8253         (GenerateFunctionCallback):
8254         (GenerateImplementation):
8255
8256 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8257
8258         Changing pseudoClass (:checked) should cause distribution.
8259         https://bugs.webkit.org/show_bug.cgi?id=101902
8260
8261         Reviewed by Dimitri Glazkov.
8262
8263         When the 'checked' state is changed, we have to invalidate distribution.
8264
8265         According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
8266         a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
8267
8268         Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
8269                fast/dom/shadow/pseudoclass-update-checked-option.html
8270
8271         * html/HTMLInputElement.cpp:
8272         (WebCore::HTMLInputElement::setChecked):
8273         * html/HTMLOptionElement.cpp:
8274         (WebCore::HTMLOptionElement::setSelectedState):
8275
8276 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8277
8278         [V8] Kill $implClassName from CodeGeneratorV8.pm
8279         https://bugs.webkit.org/show_bug.cgi?id=102312
8280
8281         Reviewed by Adam Barth.
8282
8283         $implClassName and $interfaceName are the same.
8284         Sometimes we are passing both $implClassName and $interfaceName to
8285         subroutines. We can kill $implClassName.
8286
8287         No tests. No change in behavior.
8288
8289         * bindings/scripts/CodeGeneratorV8.pm:
8290         (GenerateOpaqueRootForGC):
8291         (GenerateHeader):
8292         (GenerateDomainSafeFunctionGetter):
8293         (GenerateDomainSafeFunctionSetter):
8294         (GenerateConstructorGetter):
8295         (GenerateNormalAttrGetter):
8296         (GenerateReplaceableAttrSetter):
8297         (GenerateNormalAttrSetter):
8298         (GenerateEventListenerCallback):
8299         (GenerateOverloadedFunctionCallback):
8300         (GenerateFunctionCallback):
8301         (GenerateParametersCheck):
8302         (GenerateOverloadedConstructorCallback):
8303         (GenerateSingleConstructorCallback):
8304         (GenerateConstructorCallback):
8305         (GenerateEventConstructorCallback):
8306         (GenerateTypedArrayConstructorCallback):
8307         (GenerateNamedConstructorCallback):
8308         (GenerateImplementation):
8309         (GenerateFunctionCallString):
8310
8311 2012-11-14  Adam Barth  <abarth@webkit.org>
8312
8313         [V8] We can shave one instruction off toV8Fast
8314         https://bugs.webkit.org/show_bug.cgi?id=102297
8315
8316         Reviewed by Kentaro Hara.
8317
8318         There's no reason to store info.Holder in a local variable. Calling
8319         Holder() is essentially free because it's inlined to an offset read.
8320
8321         I doubt this patch moves the performance needle in any measurable way,
8322         but it makes the code slightly prettier.
8323
8324         * bindings/scripts/CodeGeneratorV8.pm:
8325         (GenerateHeader):
8326         * bindings/scripts/test/V8/V8TestNode.h:
8327         (WebCore::toV8Fast):
8328
8329 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8330
8331         [V8] Get rid of a redundant branch in JSValueToNative()
8332         https://bugs.webkit.org/show_bug.cgi?id=102311
8333
8334         Reviewed by Adam Barth.
8335
8336         No tests. No change in behavior.
8337
8338         * bindings/scripts/CodeGeneratorV8.pm:
8339         (JSValueToNative):
8340         (NativeToJSValue):
8341
8342 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8343
8344         Changing pseudoClass (:link) should cause distribution
8345         https://bugs.webkit.org/show_bug.cgi?id=101698
8346
8347         Reviewed by Hajime Morita.
8348
8349         CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
8350         we have to invalidate distribution.
8351
8352         According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
8353
8354         Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
8355                fast/dom/shadow/pseudoclass-update-link-area.html
8356
8357         * html/HTMLAnchorElement.cpp:
8358         (WebCore::HTMLAnchorElement::parseAttribute):
8359
8360 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8361
8362         Remove unused functions from CodeGenerator.pm
8363         https://bugs.webkit.org/show_bug.cgi?id=102316
8364
8365         Reviewed by Adam Barth.
8366
8367         No tests. No change in behavior.
8368
8369         * bindings/scripts/CodeGenerator.pm:
8370         (GenerateCompileTimeCheckForEnumsIfNeeded):
8371
8372 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
8373
8374         [BlackBerry] Update BB10 form theme.
8375         https://bugs.webkit.org/show_bug.cgi?id=100760
8376
8377         Reviewed by Rob Buis.
8378
8379         RIM PR 225755
8380         Internally Reviewed by Eli Fidler.
8381         Update checkbox, radio and menulist button style. Adjust border width
8382         and line height.
8383
8384         * platform/blackberry/RenderThemeBlackBerry.cpp:
8385         (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
8386         * platform/blackberry/RenderThemeBlackBerry.h:
8387         (RenderThemeBlackBerry):
8388
8389 2012-11-14  Erik Arvidsson  <arv@chromium.org>
8390
8391         Update DOMException name: InvalidModificationError
8392         https://bugs.webkit.org/show_bug.cgi?id=102281
8393
8394         Reviewed by Kentaro Hara.
8395
8396         Patch 13 of 25 to update DOMException name to match the spec and Firefox.
8397
8398         DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
8399
8400         * dom/DOMCoreException.cpp:
8401
8402 2012-11-14  Adam Barth  <abarth@webkit.org>
8403
8404         document variable in Document::axObjectCache is actually the topDocument
8405         https://bugs.webkit.org/show_bug.cgi?id=101966
8406
8407         Reviewed by Chris Fleizach.
8408
8409         Name change requested by Darin Adler.
8410
8411         * dom/Document.cpp:
8412         (WebCore::Document::axObjectCache):
8413
8414 2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
8415
8416         [CF]: XMLHttpRequest "timeout" events firing as "error" events
8417         https://bugs.webkit.org/show_bug.cgi?id=102271
8418
8419         Reviewed by David Kilzer.
8420
8421         Initialize the tiemout flag if the error results from a timeout
8422         in the USE(CFNETWORK) cases.
8423
8424         No new tests. This is covered by http/tests/xmlhttprequest/timeout
8425         tests on ports that USE(CFNETWORK).
8426
8427         * platform/network/cf/ResourceErrorCF.cpp:
8428         (WebCore::ResourceError::ResourceError):
8429         * platform/network/mac/ResourceErrorMac.mm:
8430         (WebCore::ResourceError::ResourceError):
8431
8432 2012-11-14  Nico Weber  <thakis@chromium.org>
8433
8434         [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
8435         https://bugs.webkit.org/show_bug.cgi?id=102282
8436
8437         Reviewed by James Robinson.
8438
8439         Chromium uses skia, and skia state is synced with CG context state at
8440         LocalCurrentGraphicsContext construction time. So delay that
8441         construction after context transforms have happened.
8442         (This regressed in http://trac.webkit.org/changeset/125830)
8443
8444         Covered by the new pixel test fast/forms/zoomed-controls.html. I
8445         couldn't find an existing test for this.
8446
8447         * platform/mac/ThemeMac.mm:
8448         (WebCore::paintCheckbox):
8449         (WebCore::paintRadio):
8450         (WebCore::paintButton):
8451
8452 2012-11-14  Mark Lam  <mark.lam@apple.com>
8453
8454         Change JSEventListener::m_jsFunction to be a weak ref.
8455         https://bugs.webkit.org/show_bug.cgi?id=101989.
8456
8457         Reviewed by Geoffrey Garen.
8458
8459         No new tests.
8460
8461         * ForwardingHeaders/heap/SlotVisitor.h: Added.
8462         * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
8463         * bindings/js/JSEventListener.cpp:
8464         (WebCore::JSEventListener::JSEventListener):
8465         (WebCore::JSEventListener::visitJSFunction):
8466         (WebCore::JSEventListener::operator==):
8467          - Removed the m_wrapper checks in operator==() because they are not
8468            needed. There is no longer any threat of m_jsFunction pointing to
8469            recycled memory. The use of weak refs will ensure that m_jsFunction
8470            is either still holding on to its old memory exclusively, or is 0'ed
8471            out when the GC collects it.
8472         * bindings/js/JSEventListener.h:
8473         (JSEventListener):
8474         (WebCore::JSEventListener::jsFunction):
8475
8476 2012-11-14  Dan Carney  <dcarney@google.com>
8477
8478         [V8] Rename dispatchWrap
8479         https://bugs.webkit.org/show_bug.cgi?id=102240
8480
8481         Reviewed by Adam Barth.
8482
8483         Mostly a rename:
8484         dispatchWrap->wrap
8485         wrapSlow->createWrapper
8486         dispatchWrapCustom->wrap
8487
8488         No new tests. No change in functionality.
8489
8490         * bindings/scripts/CodeGeneratorV8.pm:
8491         (GenerateHeader):
8492         (GenerateNormalAttrGetter):
8493         (GenerateImplementation):
8494         (GenerateToV8Converters):
8495         * bindings/scripts/IDLAttributes.txt:
8496         * bindings/scripts/test/V8/V8Float64Array.cpp:
8497         (WebCore::wrap):
8498         (WebCore::V8Float64Array::createWrapper):
8499         * bindings/scripts/test/V8/V8Float64Array.h:
8500         (V8Float64Array):
8501         (WebCore):
8502         (WebCore::toV8Object):
8503         (WebCore::toV8):
8504         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
8505         (WebCore::V8TestActiveDOMObject::createWrapper):
8506         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
8507         (V8TestActiveDOMObject):
8508         (WebCore::wrap):
8509         (WebCore::toV8Object):
8510         (WebCore::toV8):
8511         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
8512         (WebCore::V8TestCustomNamedGetter::createWrapper):
8513         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
8514         (V8TestCustomNamedGetter):
8515         (WebCore::wrap):
8516         (WebCore::toV8Object):
8517         (WebCore::toV8):
8518         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
8519         (WebCore::V8TestEventConstructor::createWrapper):
8520         * bindings/scripts/test/V8/V8TestEventConstructor.h:
8521         (V8TestEventConstructor):
8522         (WebCore::wrap):
8523         (WebCore::toV8Object):
8524         (WebCore::toV8):
8525         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
8526         (WebCore::V8TestEventTarget::createWrapper):
8527         * bindings/scripts/test/V8/V8TestEventTarget.h:
8528         (V8TestEventTarget):
8529         (WebCore::wrap):
8530         (WebCore::toV8Object):
8531         (WebCore::toV8):
8532         * bindings/scripts/test/V8/V8TestException.cpp:
8533         (WebCore::V8TestException::createWrapper):
8534         * bindings/scripts/test/V8/V8TestException.h:
8535         (V8TestException):
8536         (WebCore::wrap):
8537         (WebCore::toV8Object):
8538         (WebCore::toV8):
8539         * bindings/scripts/test/V8/V8TestInterface.cpp:
8540         (WebCore::V8TestInterface::createWrapper):
8541         * bindings/scripts/test/V8/V8TestInterface.h:
8542         (V8TestInterface):
8543         (WebCore::wrap):
8544         (WebCore::toV8Object):
8545         (WebCore::toV8):
8546         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
8547         (WebCore::V8TestMediaQueryListListener::createWrapper):
8548         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
8549         (V8TestMediaQueryListListener):
8550         (WebCore::wrap):
8551         (WebCore::toV8Object):
8552         (WebCore::toV8):
8553         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
8554         (WebCore::V8TestNamedConstructor::createWrapper):
8555         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
8556         (V8TestNamedConstructor):
8557         (WebCore::wrap):
8558         (WebCore::toV8Object):
8559         (WebCore::toV8):
8560         * bindings/scripts/test/V8/V8TestNode.cpp:
8561         (WebCore::V8TestNode::createWrapper):
8562         * bindings/scripts/test/V8/V8TestNode.h:
8563         (V8TestNode):
8564         (WebCore::wrap):
8565         (WebCore::toV8Object):
8566         (WebCore::toV8):
8567         (WebCore::toV8Fast):
8568         * bindings/scripts/test/V8/V8TestObj.cpp:
8569         (WebCore::V8TestObj::createWrapper):
8570         * bindings/scripts/test/V8/V8TestObj.h:
8571         (V8TestObj):
8572         (WebCore::wrap):
8573         (WebCore::toV8Object):
8574         (WebCore::toV8):
8575         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
8576         (WebCore::V8TestOverloadedConstructors::createWrapper):
8577         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
8578         (V8TestOverloadedConstructors):
8579         (WebCore::wrap):
8580         (WebCore::toV8Object):
8581         (WebCore::toV8):
8582         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
8583         (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
8584         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
8585         (V8TestSerializedScriptValueInterface):
8586         (WebCore::wrap):
8587         (WebCore::toV8Object):
8588         (WebCore::toV8):
8589         * bindings/v8/custom/V8BlobCustom.cpp:
8590         (WebCore::wrap):
8591         * bindings/v8/custom/V8CSSRuleCustom.cpp:
8592         (WebCore::wrap):
8593         * bindings/v8/custom/V8CSSValueCustom.cpp:
8594         (WebCore::wrap):
8595         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
8596         (WebCore::wrap):
8597         * bindings/v8/custom/V8DataViewCustom.cpp:
8598         (WebCore::wrap):
8599         * bindings/v8/custom/V8DocumentCustom.cpp:
8600         (WebCore::wrap):
8601         * bindings/v8/custom/V8ElementCustom.cpp:
8602         (WebCore):
8603         (WebCore::wrap):
8604         * bindings/v8/custom/V8EntryCustom.cpp:
8605         (WebCore::wrap):
8606         * bindings/v8/custom/V8EntrySyncCustom.cpp:
8607         (WebCore::wrap):
8608         * bindings/v8/custom/V8EventCustom.cpp:
8609         (WebCore):
8610         (WebCore::wrap):
8611         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
8612         (WebCore::wrap):
8613         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
8614         (WebCore::wrap):
8615         * bindings/v8/custom/V8HTMLElementCustom.cpp:
8616         (WebCore::wrap):
8617         * bindings/v8/custom/V8ImageDataCustom.cpp:
8618         (WebCore::wrap):
8619         * bindings/v8/custom/V8NodeCustom.cpp:
8620         (WebCore::wrap):
8621         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
8622         (WebCore::wrap):
8623         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
8624         (WebCore::wrap):
8625         * bindings/v8/custom/V8SVGElementCustom.cpp:
8626         (WebCore::wrap):
8627         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
8628         (WebCore::wrap):
8629         * bindings/v8/custom/V8StyleSheetCustom.cpp:
8630         (WebCore::wrap):
8631         * dom/make_names.pl:
8632         (printWrapperFunctions):
8633         (printWrapperFactoryCppFile):
8634
8635 2012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>
8636
8637         [EFL] Refactor theme to choose whether to support foreground color of selection
8638         https://bugs.webkit.org/show_bug.cgi?id=102037
8639
8640         Reviewed by Gyuyoung Kim.
8641
8642         RenderThemeEfl can change foreground color of selection using theme file.
8643         But it can not disable supports of foreground color to keep the text color
8644         which is selected.
8645
8646         This patch refactors color classes of theme file from active/inactive classes
8647         to foreground/background classes so that RenderThemeEfl checks whether
8648         theme file supports foreground color class.
8649
8650         * platform/efl/RenderThemeEfl.cpp:
8651         (WebCore::fillColorsFromEdjeClass):
8652         (WebCore::RenderThemeEfl::setColorFromThemeClass):
8653         (WebCore::RenderThemeEfl::loadTheme):
8654         (WebCore::RenderThemeEfl::RenderThemeEfl):
8655         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
8656         (WebCore):
8657         * platform/efl/RenderThemeEfl.h:
8658         (RenderThemeEfl):
8659
8660 2012-11-14  Tony Chang  <tony@chromium.org>
8661
8662         Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
8663         https://bugs.webkit.org/show_bug.cgi?id=102295
8664
8665         Reviewed by Andreas Kling.
8666
8667         Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
8668
8669         No new tests because there should be no change in behavior.
8670
8671         * css/CSSGrammar.y.in:
8672         * css/CSSParser.cpp:
8673         (WebCore::CSSParser::CSSParser):
8674         (WebCore::CSSParser::parseValue):
8675         (WebCore::CSSParser::parseColor):
8676         (WebCore::CSSParser::parseDeclaration):
8677         (WebCore):
8678         (WebCore::filterProperties):
8679         (WebCore::CSSParser::createStylePropertySet):
8680         (WebCore::CSSParser::addProperty):
8681         (WebCore::CSSParser::rollbackLastProperties):
8682         (WebCore::CSSParser::clearProperties):
8683         (WebCore::CSSParser::parse4Values):
8684         (WebCore::CSSParser::parseFlowThread):
8685         (WebCore::CSSParser::addTextDecorationProperty):
8686         (WebCore::CSSParser::createFloatingSelectorVector):
8687         (WebCore::CSSParser::sinkFloatingSelectorVector):
8688         (WebCore::CSSParser::createStyleRule):
8689         (WebCore::CSSParser::createFontFaceRule):
8690         (WebCore::CSSParser::createPageRule):
8691         (WebCore::CSSParser::setReusableRegionSelectorVector):
8692         (WebCore::CSSParser::startDeclarationsForMarginBox):
8693         (WebCore::CSSParser::endDeclarationsForMarginBox):
8694         (WebCore::CSSParser::deleteFontFaceOnlyValues):
8695         * css/CSSParser.h:
8696         (WebCore::CSSParser::hasProperties):
8697         (WebCore::CSSParser::reusableSelectorVector):
8698         (CSSParser):
8699         (WebCore::CSSParser::reusableRegionSelectorVector):
8700         * css/CSSParserValues.cpp:
8701         (WebCore::CSSParserSelector::adoptSelectorVector):
8702         * css/CSSParserValues.h:
8703         (CSSParserSelector):
8704         * css/CSSSelectorList.cpp:
8705         (WebCore::CSSSelectorList::adoptSelectorVector):
8706         * css/CSSSelectorList.h:
8707         (CSSSelectorList):
8708         * css/SVGCSSParser.cpp:
8709         (WebCore::CSSParser::parseSVGValue):
8710         * css/StyleRule.cpp:
8711         (WebCore::StyleRuleRegion::StyleRuleRegion):
8712         * css/StyleRule.h:
8713         (WebCore::StyleRule::parserAdoptSelectorVector):
8714         (WebCore::StyleRulePage::parserAdoptSelectorVector):
8715         (WebCore::StyleRuleRegion::create):
8716         (StyleRuleRegion):
8717
8718 2012-11-14  Alec Flett  <alecflett@chromium.org>
8719
8720         Add tests for explicit serialization values
8721         https://bugs.webkit.org/show_bug.cgi?id=96818
8722
8723         Reviewed by Adam Barth.
8724
8725         Expose direct access to the serialization/deserialization mechanisms
8726         of SerializedScriptValue to DumpRenderTree.
8727
8728         * testing/Internals.cpp:
8729         (WebCore::Internals::serializeObject):
8730         (WebCore):
8731         (WebCore::Internals::deserializeBuffer):
8732         * testing/Internals.h:
8733         (WebCore):
8734         * testing/Internals.idl:
8735
8736 2012-11-14  Michael Pruett  <michael@68k.org>
8737
8738         IndexedDB: Add clear() method to JSC ScriptValue
8739         https://bugs.webkit.org/show_bug.cgi?id=102288
8740
8741         Reviewed by Kentaro Hara.
8742
8743         IndexedDB uses the ScriptValue::clear() method, which existed
8744         previously only in the V8 implementation of ScriptValue. This
8745         change is necessary to implement IndexedDB for JSC.
8746
8747         Tests: storage/indexeddb/*
8748
8749         * bindings/js/ScriptValue.h:
8750         (WebCore::ScriptValue::clear):
8751         (ScriptValue):
8752
8753 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8754
8755         IndexedDB: Indexing tests are flaky-crashing
8756         https://bugs.webkit.org/show_bug.cgi?id=102283
8757
8758         Reviewed by Tony Chang.
8759
8760         Don't commit the transaction if there are outstanding pre-emptive events
8761         from indexing operations.
8762
8763         Speculative fix for the flakiness.
8764
8765         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
8766         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
8767
8768 2012-11-14  Tony Chang  <tony@chromium.org>
8769
8770         Crash in flexbox when removing absolutely positioned children
8771         https://bugs.webkit.org/show_bug.cgi?id=100465
8772
8773         Reviewed by Ojan Vafai.
8774
8775         We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
8776         This value gets set during flexbox layout. When we remove an absolutely
8777         positioned child, we don't relayout and this value would get stale.
8778
8779         Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
8780         so the value doesn't get stale when we remove absolutely positioned children.
8781         Also change the loop in firstLineBoxBaseline to bail if we run off the end of
8782         the iterator.
8783
8784         Test: css3/flexbox/crash-removing-out-of-flow-child.html
8785
8786         * rendering/RenderFlexibleBox.cpp:
8787         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
8788         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
8789         (WebCore::RenderFlexibleBox::layoutBlock):
8790         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
8791         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
8792         * rendering/RenderFlexibleBox.h:
8793
8794 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8795
8796         IndexedDB: Remove magic numbers in record comparator, handle missing case
8797         https://bugs.webkit.org/show_bug.cgi?id=102255
8798
8799         Reviewed by Tony Chang.
8800
8801         For some ranges of metadata entries, a simple type byte comparison is sufficient
8802         for the backing store comparator. In two places those ranges used magic numbers,
8803         one of which was incorrect - which could lead to failed reads/writes.
8804
8805         Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
8806
8807         * Modules/indexeddb/IDBLevelDBCoding.cpp:
8808         (IDBLevelDBCoding):
8809         (WebCore::IDBLevelDBCoding::compare):
8810         * Modules/indexeddb/IDBLevelDBCoding.h:
8811
8812 2012-11-14  Dirk Schulze  <krit@webkit.org>
8813
8814         Cleanup BasicShape blending check
8815         https://bugs.webkit.org/show_bug.cgi?id=102289
8816
8817         Reviewed by Daniel Bates.
8818
8819         CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
8820         twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
8821         is a preparation for follow-up patches.
8822
8823         Pure refactoring without behavior change, no new tests.
8824
8825         * page/animation/CSSPropertyAnimation.cpp:
8826         (WebCore::blendFunc): Call new canBlend method for blending verification.
8827         * rendering/style/BasicShapes.cpp:
8828         (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
8829         (WebCore):
8830         * rendering/style/BasicShapes.h:
8831
8832 2012-11-14  Dirk Schulze  <krit@webkit.org>
8833
8834         [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
8835         https://bugs.webkit.org/show_bug.cgi?id=102123
8836
8837         Reviewed by Antti Koivisto.
8838
8839         The '-webkit-shape-inside' propery takes a BasicShape as input like
8840         '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
8841         make '-webkit-shape-inside' animatable as well.
8842
8843         Test: fast/exclusions/shape-inside/shape-inside-animation.html
8844
8845         * page/animation/CSSPropertyAnimation.cpp:
8846         (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
8847             input then '-webkit-clip-path'.
8848         (WebCore):
8849         (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
8850             '-webkit-shape-ourside' as well.
8851         (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
8852         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
8853
8854 2012-11-14  Helder Correia  <helder.correia@nokia.com>
8855
8856         [TexMap][Cairo] Accelerated compositing debug visuals
8857         https://bugs.webkit.org/show_bug.cgi?id=101883
8858
8859         Reviewed by Kenneth Rohde Christiansen.
8860
8861         No new tests, just introducing a debug feature.
8862
8863         Add a Cairo implementation to complement the patch from bug 90116
8864         (http://trac.webkit.org/changeset/122275).
8865
8866         For this feature to be enabled, the environment variable
8867         WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
8868         both repaint counters and tile borders will be painted.
8869
8870         A Cairo-specific drawRepaintCounter() implementation was added to
8871         TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
8872         the counters. It is then uploaded to a BitmapTexture acquired
8873         from the pool and finally draw by TextureMapper. The actual compositing
8874         happens inside LayerBackingStore::paintToTextureMapper(). Each
8875         LayerBackingStoreTile has a repaint counter which gets incremented in
8876         LayerBackingStore::updateTile().
8877
8878         * platform/graphics/texmap/TextureMapperGL.cpp:
8879         (WebCore::TextureMapperGL::drawRepaintCounter):
8880
8881 2012-11-14  Michael Pruett  <michael@68k.org>
8882
8883         IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
8884         https://bugs.webkit.org/show_bug.cgi?id=102268
8885
8886         Reviewed by Geoffrey Garen.
8887
8888         Add JSNoStaticTables attribute to IndexedDB interface
8889         definitions. This attribute must be specified in interfaces
8890         which can be accessed from workers.
8891
8892         Tests: storage/indexeddb/*
8893
8894         * Modules/indexeddb/IDBAny.idl:
8895         * Modules/indexeddb/IDBCursor.idl:
8896         * Modules/indexeddb/IDBCursorWithValue.idl:
8897         * Modules/indexeddb/IDBDatabase.idl:
8898         * Modules/indexeddb/IDBDatabaseException.idl:
8899         * Modules/indexeddb/IDBFactory.idl:
8900         * Modules/indexeddb/IDBIndex.idl:
8901         * Modules/indexeddb/IDBKey.idl:
8902         * Modules/indexeddb/IDBKeyRange.idl:
8903         * Modules/indexeddb/IDBObjectStore.idl:
8904         * Modules/indexeddb/IDBOpenDBRequest.idl:
8905         * Modules/indexeddb/IDBRequest.idl:
8906         * Modules/indexeddb/IDBTransaction.idl:
8907         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
8908         * Modules/indexeddb/IDBVersionChangeEvent.idl:
8909         * Modules/indexeddb/IDBVersionChangeRequest.idl:
8910         * dom/DOMStringList.idl:
8911
8912 2012-11-14  Michael Pruett  <michael@68k.org>
8913
8914         IndexedDB: Replace int64 with int64_t
8915         https://bugs.webkit.org/show_bug.cgi?id=102270
8916
8917         Reviewed by Tony Chang.
8918
8919         Cleaning up coding inconsistencies, no change in behavior.
8920
8921         Tests: storage/indexeddb/*
8922
8923         * Modules/indexeddb/IDBDatabase.cpp:
8924         (WebCore::IDBDatabase::deleteObjectStore):
8925         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
8926         (WebCore::IDBObjectStoreBackendImpl::putInternal):
8927
8928 2012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
8929
8930         [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
8931         https://bugs.webkit.org/show_bug.cgi?id=102000
8932
8933         Reviewed by Noam Rosenthal.
8934
8935         Add helper functions to clear viewport before painting. Those functions
8936         used by EFL Webkit2 port to set view background to match page background
8937         in order to reduce visibility of flicker during scrolling/scaling/repainting
8938         where page tiles are not ready.
8939
8940         * platform/graphics/texmap/TextureMapper.h:
8941         * platform/graphics/texmap/TextureMapperGL.cpp:
8942         (WebCore::TextureMapperGL::drawSolidColor):
8943         (WebCore):
8944         * platform/graphics/texmap/TextureMapperGL.h:
8945         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
8946         (WebCore::TextureMapperImageBuffer::drawSolidColor):
8947         (WebCore):
8948         * platform/graphics/texmap/TextureMapperImageBuffer.h:
8949
8950 2012-11-14  Mark Lam  <mark.lam@apple.com>
8951
8952         Fixed regressions due to adding JSEventListener::m_wrapper null checks.
8953         https://bugs.webkit.org/show_bug.cgi?id=102183.
8954
8955         Reviewed by Geoffrey Garen.
8956
8957         Fixed JSEventListener::operator==() to work within the contract that
8958         when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
8959         some typos in comments.
8960
8961         No new tests.
8962
8963         * bindings/js/JSEventListener.cpp:
8964         (WebCore::JSEventListener::visitJSFunction):
8965         (WebCore::JSEventListener::operator==):
8966         * bindings/js/JSEventListener.h:
8967         (WebCore::JSEventListener::jsFunction):
8968
8969 2012-11-14  Nate Chapin  <japhet@chromium.org>
8970
8971         Fix chromium asserts from r134649.
8972
8973         Rubber-stamped by Adam Barth.
8974
8975         MainResourceLoader was calling releaseResources() twice when cancelled
8976         within MainResourceLoader::load(), so check reachedTerminalState() before
8977         calling releaseResources() there.
8978
8979         * loader/MainResourceLoader.cpp:
8980         (WebCore::MainResourceLoader::load):
8981
8982 2012-11-14  Andreas Kling  <kling@webkit.org>
8983
8984         Only resolve presentation attribute style once per shared ElementAttributeData.
8985         <http://webkit.org/b/100990>
8986
8987         Reviewed by Antti Koivisto.
8988
8989         Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
8990         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
8991         since the state is no longer per-Element.
8992
8993         I've left the presentation attribute cache in there for now, since it still covers the case where
8994         two elements have the same presentation attributes but different non-presentation attributes.
8995         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
8996
8997         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
8998         * dom/StyledElement.h:
8999         (WebCore::StyledElement::presentationAttributeStyle):
9000         (WebCore::ElementAttributeData::ElementAttributeData):
9001         * dom/ElementAttributeData.h:
9002         (WebCore::ElementAttributeData::ElementAttributeData):
9003         (ElementAttributeData):
9004         * dom/Node.h:
9005
9006             Move presentation attribute style dirty flag from Node to ElementAttributeData.
9007
9008         * dom/ElementAttributeData.cpp:
9009         (SameSizeAsElementAttributeData):
9010
9011             Add a compile-time object size assertion for ElementAttributeData.
9012
9013         * dom/StyledElement.cpp:
9014         (WebCore::StyledElement::attributeChanged):
9015
9016             Don't mark the presentation attribute style dirty if the element is using an immutable (implies
9017             shared) ElementAttributeData and another element has already generated the StylePropertySet.
9018             The element itself is still marked for style recalc like before, this just avoids the process
9019             of converting the attributes to CSS properties.
9020
9021 2012-11-14  Scott Violet  <sky@chromium.org>
9022
9023         [Chromium] Refactor theme font lookup into a factory
9024         https://bugs.webkit.org/show_bug.cgi?id=101949
9025
9026         Reviewed by Tony Chang.
9027
9028         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
9029
9030         No new tests. Refactoring only.
9031
9032         * WebCore.gyp/WebCore.gyp:
9033         * WebCore.gypi:
9034         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
9035         (WebCore):
9036         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
9037         * rendering/RenderThemeChromiumFontProvider.h: Added.
9038         (WTF):
9039         (WebCore):
9040         (RenderThemeChromiumFontProvider): This is the font related methods.
9041         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
9042         (WebCore):
9043         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
9044         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
9045         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
9046         (WebCore):
9047         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
9048         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
9049         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
9050         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
9051         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
9052         * rendering/RenderThemeChromiumSkia.cpp:
9053         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
9054         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
9055         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
9056         * rendering/RenderThemeChromiumSkia.h:
9057         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
9058         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
9059         (WebCore):
9060         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
9061         (RenderThemeChromiumWin):
9062
9063 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9064
9065         Update DOMException name: InUseAttributeError
9066         https://bugs.webkit.org/show_bug.cgi?id=102141
9067
9068         Reviewed by Ojan Vafai.
9069
9070         Patch 10 of 25 to update DOMException name to match the spec and Firefox.
9071
9072         The name for this is not in the spec but the case was selected to match
9073         Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
9074
9075         INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
9076
9077         * dom/DOMCoreException.cpp:
9078         * dom/ExceptionCode.h:
9079
9080 2012-11-14  Lynn Neir  <lynn.neir@skype.net>
9081
9082         [WinCairo] Incorrect line-height for styled menulist (select tag)
9083         in windows theme.
9084         https://bugs.webkit.org/show_bug.cgi?id=79435
9085
9086         Reviewed by Brent Fulgham
9087
9088         Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
9089         to Windows theme to fix issue.
9090
9091         Tests: fast/forms/menulist-restrict-line-height.html
9092                fast/forms/control-restrict-line-height.html
9093                fast/forms/basic-selects.html
9094
9095         * rendering/RenderThemeWin.cpp:
9096         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
9097         height to the correct initial height.
9098
9099 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9100
9101         Update DOMException name: WrongDocumentError
9102         https://bugs.webkit.org/show_bug.cgi?id=102096
9103
9104         Reviewed by Ojan Vafai.
9105
9106         Patch 4 of 25 to update DOMException name to match the spec and Firefox.
9107
9108         Updated existing tests.
9109
9110         * dom/DOMCoreException.cpp:
9111
9112 2012-11-14  Nate Chapin  <japhet@chromium.org>
9113
9114         Move empty loading to DocumentLoader, simplify FrameLoader::init()
9115         https://bugs.webkit.org/show_bug.cgi?id=101512
9116
9117         Reviewed by Adam Barth.
9118
9119         No new tests, though several outputs changed because we no longer send resource
9120             load callbacks for empty loads.
9121
9122         * loader/DocumentLoader.cpp:
9123         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
9124             loads directly here.
9125         * loader/DocumentLoader.h:
9126         * loader/FrameLoader.cpp:
9127         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
9128             were previously being reset in init(). Given that the FrameLoader is in
9129             an inconsistent state before init() is called anyway, there doesn't seem
9130             to be a disadvantage to just initializing them to their post-init() values.
9131         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
9132             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
9133         * loader/FrameLoaderStateMachine.cpp:
9134         * loader/FrameLoaderStateMachine.h:
9135         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
9136         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
9137             load got deferred, which won't happen now. Return void and always treat
9138             as returning false.
9139         * loader/MainResourceLoader.h:
9140
9141 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9142
9143         Update DOMException name: InvalidStateError
9144         https://bugs.webkit.org/show_bug.cgi?id=102241
9145
9146         Reviewed by Ojan Vafai.
9147
9148         Patch 11 of 25 to update DOMException name to match the spec and Firefox.
9149
9150         Updated existing tests.
9151
9152         * dom/DOMCoreException.cpp:
9153
9154 2012-11-14  Joshua Bell  <jsbell@chromium.org>
9155
9156         Rename NATIVE_TYPE_ERR to TypeError
9157         https://bugs.webkit.org/show_bug.cgi?id=102114
9158
9159         Reviewed by Kentaro Hara.
9160
9161         Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
9162         V8 binding code had colliding enum members, which required prefixing.
9163
9164         No new tests - just internal renames.
9165
9166         * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
9167         (WebCore::IDBCursor::advance):
9168         (WebCore::IDBCursor::stringToDirection):
9169         (WebCore::IDBCursor::directionToString):
9170         * Modules/indexeddb/IDBDatabase.cpp: Ditto.
9171         (WebCore::IDBDatabase::setVersion):
9172         * Modules/indexeddb/IDBFactory.cpp: Ditto.
9173         (WebCore::IDBFactory::open):
9174         (WebCore::IDBFactory::openInternal):
9175         (WebCore::IDBFactory::deleteDatabase):
9176         * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
9177         (WebCore::IDBObjectStore::createIndex):
9178         * Modules/indexeddb/IDBTransaction.cpp: Ditto.
9179         (WebCore::IDBTransaction::stringToMode):
9180         (WebCore::IDBTransaction::modeToString):
9181         * bindings/js/JSDOMBinding.cpp: Ditto.
9182         (WebCore::setDOMException):
9183         * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
9184         (WebCore::DateExtension::OnSleepDetected):
9185         * bindings/v8/NPV8Object.cpp: Ditto.
9186         (_NPN_SetException):
9187         * bindings/v8/V8Binding.cpp: Ditto.
9188         (WebCore::throwError):
9189         (WebCore::handleMaxRecursionDepthExceeded):
9190         * bindings/v8/V8Binding.h: Ditto.
9191         (WebCore):
9192         * bindings/v8/V8NPObject.cpp: Ditto.
9193         (WebCore::npObjectInvokeImpl):
9194         (WebCore::npObjectGetProperty):
9195         (WebCore::npObjectSetProperty):
9196         (WebCore::npObjectPropertyEnumerator):
9197         * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
9198         (WebCore::V8ThrowException::setDOMException):
9199         (WebCore::V8ThrowException::throwError):
9200         (WebCore::V8ThrowException::throwTypeError):
9201         (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
9202         * bindings/v8/V8ThrowException.h:
9203         (V8ThrowException):
9204         * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
9205         (WebCore::WorkerContextExecutionProxy::evaluate):
9206         * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
9207         (WebCore::V8ArrayBuffer::constructorCallback):
9208         * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
9209         (WebCore::constructWebGLArrayWithArrayBufferArgument):
9210         (WebCore::constructWebGLArray):
9211         (WebCore::setWebGLArrayHelper):
9212         * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
9213         (WebCore::V8AudioContext::constructorCallback):
9214         * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
9215         (WebCore::V8Blob::constructorCallback):
9216         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
9217         (WebCore::V8Clipboard::clearDataCallback):
9218         (WebCore::V8Clipboard::setDragImageCallback):
9219         * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
9220         (WebCore::V8DOMFormData::appendCallback):
9221         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
9222         (WebCore::V8SQLResultSetRowList::itemCallback):
9223         * dom/ExceptionCode.h: Add WebIDL exception types.
9224
9225 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
9226
9227         [BlackBerry] Style BB10 time input field font.
9228         https://bugs.webkit.org/show_bug.cgi?id=102260.
9229
9230         Reviewed by Rob Buis.
9231
9232         RIM PR 243355
9233         Adjust time input field font using BB10 system default font.
9234
9235         * css/themeBlackBerry.css:
9236         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
9237
9238 2012-11-14  Li Yin  <li.yin@intel.com>
9239
9240         createDelay should raise exception when the maxDelayTime parameter is incorrect.
9241         https://bugs.webkit.org/show_bug.cgi?id=102173
9242
9243         Reviewed by Chris Rogers.
9244
9245         Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
9246         The specified value must be greater than zero and less than three minutes or a
9247         NOT_SUPPORTED_ERR exception will be thrown.
9248
9249         Tests: webaudio/delaynode-maxdelaylimit.html
9250
9251         * Modules/webaudio/AudioContext.cpp:
9252         (WebCore::AudioContext::createDelay):
9253         * Modules/webaudio/AudioContext.h:
9254         (AudioContext):
9255         * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
9256         * Modules/webaudio/DelayNode.cpp:
9257         (WebCore):
9258         (WebCore::DelayNode::DelayNode):
9259         * Modules/webaudio/DelayNode.h:
9260         (WebCore::DelayNode::create):
9261         (DelayNode):
9262
9263 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
9264
9265         Don't pass a paintingRoot when painting from RenderLayerBacking
9266         https://bugs.webkit.org/show_bug.cgi?id=102256
9267
9268         Reviewed by David Hyatt.
9269
9270         The 'paintingRoot' parameter to the RenderLayer paint functions
9271         is used when painting just a subtree (e.g. when painting dragged
9272         selections). There is no need to pass it when a RenderLayerBacking
9273         paints its contents or overlay scrollbars.
9274         
9275         Passing it requires an expensive isDescendant() check, so passing
9276         null is more efficient.
9277         
9278         * rendering/RenderLayer.h:
9279         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
9280         * rendering/RenderLayerBacking.cpp:
9281         (WebCore::RenderLayerBacking::paintIntoLayer):
9282         (WebCore::RenderLayerBacking::paintContents):
9283         * rendering/RenderLayerBacking.h:
9284         (RenderLayerBacking):
9285
9286 2012-11-14  Alec Flett  <alecflett@chromium.org>
9287
9288         Add DOMRequestState to maintain world/ScriptExecutionContext state
9289         https://bugs.webkit.org/show_bug.cgi?id=102102
9290
9291         Reviewed by Adam Barth.
9292
9293         Introduce DOMRequestState, and convert IndexedDB over.
9294
9295         No new tests, this is an abstraction layer for existing code.
9296
9297         * Modules/indexeddb/IDBRequest.cpp:
9298         (WebCore::IDBRequest::IDBRequest):
9299         (WebCore::IDBRequest::onSuccess):
9300         (WebCore::IDBRequest::dispatchEvent):
9301         * Modules/indexeddb/IDBRequest.h:
9302         (IDBRequest):
9303         * WebCore.gypi:
9304         * bindings/v8/DOMRequestState.h: Added.
9305         (WebCore):
9306         (DOMRequestState):
9307         (WebCore::DOMRequestState::DOMRequestState):
9308         (Scope):
9309         (WebCore::DOMRequestState::Scope::Scope):
9310         (WebCore::DOMRequestState::scope):
9311
9312 2012-11-14  Justin Novosad  <junov@google.com>
9313
9314         Boxes with rounded corners and thin borders are too slow to draw
9315         https://bugs.webkit.org/show_bug.cgi?id=101974
9316
9317         Reviewed by Simon Fraser.
9318
9319         With the current implementation RenderBox::
9320         determineBackgroundBleedAvoidance() uses the slow path
9321         BackgroundBleedUseTransparencyLayer for some very common use cases,
9322         notably for drawing rectangles with rounded corners that have thin
9323         borders. This is because the BackgroundBleedShrinkBackground
9324         strategy requires a border at least two pixels wide on all sides. This
9325         patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
9326         This approach consists in drawing the border first, with an inset inner
9327         edge (for anti-aliased compositing to work well).  This approach only
9328         works with opaque solid edges and opaque single-layer backgrounds.
9329         By using this approach rather than BackgroundBleedUseTransparencyLayer,
9330         we save two clipPath, one save and one saveLayer on the
9331         GraphicsContext. This patch gets good coverage from existing layout
9332         tests. One additional test was added to exercise mitring, thick edges
9333         and anti-aliasing edge cases under the new painting algorithm.
9334
9335         Test: fast/borders/border-radius-wide-border-05.html
9336
9337         * rendering/RenderBox.cpp:
9338         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
9339         Added selection criteria for BackgroundOverBorder
9340         (WebCore::RenderBox::paintBoxDecorations):
9341         Added a preliminary paintBorder pass for BackgroundOverBorder
9342         (WebCore::RenderBox::paintBackground):
9343         Insetting the background to to innerBorder when bleedAvoidance is
9344         BackgroundOverBorder.  This why BackgroundOverBorder only works for
9345         Opaque solid edges.
9346         (WebCore):
9347         (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
9348         Utility method use by determineBackgroundBleedAvoidance to test the
9349         background's eligibility for BackgroundOverBorder bleed avoidance
9350         strategy.  The reason the background must be a single layer is to avoid
9351         color bleeding from layer compositing along anti-aliased edges
9352         * rendering/RenderBox.h:
9353         (RenderBox):
9354         * rendering/RenderBoxModelObject.cpp:
9355         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
9356         (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
9357         Added support for BackgroundOverBorder by applying a one pixel inset.
9358         (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
9359         Set the background rect to the inner border for BackgroundOverBorder
9360         (WebCore):
9361         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
9362         Added support for BackgroundOverBorder by using 
9363         backgroundRoundedRectAdjustedForBleedAvoidance
9364         (WebCore::RenderBoxModelObject::paintBorderSides):
9365         Added support for BackgroundOverBorder by applying per-side inset
9366         adjustments.
9367         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
9368         (WebCore::RenderBoxModelObject::paintBorder):
9369         Added support for BackgroundOverBorder by using an adjusted inner
9370         border, but not if sides are painted individually.
9371         * rendering/RenderBoxModelObject.h:
9372         (RenderBoxModelObject):
9373
9374 2012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>
9375
9376         [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
9377         https://bugs.webkit.org/show_bug.cgi?id=76219
9378
9379         Reviewed by Brent Fulgham.
9380
9381         This patch is to fix a memory leak problem which occurs
9382         in every rendering process on Wincairo port.
9383         By applying this patch, the memory allocated in cairo 
9384         library will be released by calling cairo_destroy.
9385
9386         * platform/graphics/win/GraphicsContextCairoWin.cpp:
9387         (WebCore::GraphicsContext::platformInit):
9388
9389 2012-11-14  Sami Kyostila  <skyostil@chromium.org>
9390
9391         Optimize painting of composited scrolling layers
9392         https://bugs.webkit.org/show_bug.cgi?id=96087
9393
9394         Reviewed by Simon Fraser.
9395
9396         Don't completely repaint accelerated scrolling layers when the scroll offset
9397         changes.
9398
9399         Test: compositing/overflow/scrolling-without-painting.html
9400
9401         * platform/graphics/GraphicsLayer.cpp:
9402         (WebCore::GraphicsLayer::setOffsetFromRenderer):
9403         * platform/graphics/GraphicsLayer.h:
9404         (GraphicsLayer):
9405         * rendering/RenderLayerBacking.cpp:
9406         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
9407
9408 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9409
9410         Web Inspector: keep track of mutation observers and disconnect them upon upload
9411         https://bugs.webkit.org/show_bug.cgi?id=102239
9412
9413         Reviewed by Vsevolod Vlasov.
9414
9415         Otherwise we hit memory leaks.
9416
9417         * inspector/front-end/DefaultTextEditor.js:
9418         (WebInspector.DefaultTextEditor.prototype.wasShown):
9419         (WebInspector.DefaultTextEditor.prototype.willHide):
9420         (WebInspector.TextEditorMainPanel.prototype._wasShown):
9421         (WebInspector.TextEditorMainPanel.prototype._willHide):
9422         (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
9423         (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
9424         * inspector/front-end/utilities.js:
9425
9426 2012-11-14  Sergio Villar Senin  <svillar@igalia.com>
9427
9428         [Qt] Use a node image if there is no drag image set for Drag&Drop
9429         https://bugs.webkit.org/show_bug.cgi?id=102124
9430
9431         Reviewed by Simon Hausmann.
9432
9433         Use the nodeImage provided by the frame if there is no dragImage in
9434         the clipboard for the current drag&drop operation.
9435
9436         * platform/qt/ClipboardQt.cpp:
9437         (WebCore::ClipboardQt::createDragImage):
9438
9439 2012-11-14  Max Vujovic  <mvujovic@adobe.com>
9440
9441         Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
9442         https://bugs.webkit.org/show_bug.cgi?id=101846
9443
9444         Reviewed by Simon Fraser.
9445
9446         If software-rendered CSS Filters have not been used in the document, avoid doing the second
9447         tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
9448         enclosing filter layer.
9449
9450         No new tests. We now avoid a filters related code path for a performance improvement when
9451         we're not using filters.
9452
9453         * page/FrameView.cpp:
9454         (WebCore::FrameView::FrameView):
9455         * page/FrameView.h:
9456         (FrameView):
9457         (WebCore::FrameView::setHasSoftwareFilters):
9458         (WebCore::FrameView::hasSoftwareFilters):
9459         * rendering/RenderLayer.cpp:
9460         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
9461         * rendering/RenderObject.cpp:
9462         (WebCore::RenderObject::containerForRepaint):
9463
9464 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9465
9466         Update DOMException name: NotFoundError
9467         https://bugs.webkit.org/show_bug.cgi?id=102137
9468
9469         Reviewed by Ojan Vafai.
9470
9471         Patch 8 of 25 to update DOMException name to match the spec and Firefox.
9472
9473         Updated existing tests.
9474
9475         * dom/DOMCoreException.cpp:
9476
9477 2012-11-14  Otto Derek Cheung  <otcheung@rim.com>
9478
9479         [BlackBerry] Updating BB Cookie database to use WAL
9480         https://bugs.webkit.org/show_bug.cgi?id=102237
9481
9482         Reviewed by Rob Buis.
9483
9484         The cookie database is accessed by one process only and should be updated to
9485         use the WAL journal mode for better I/O performance.
9486
9487         PR 236553
9488
9489         cookieCollection.db-wal is created after the conversion to WAL.
9490         Tested cookie persistence by logging on to random sites and restarting the browser and
9491         check if it automatically logs in.
9492         Also tested using Opera's cookie persistence test.
9493
9494         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
9495         (WebCore::CookieDatabaseBackingStore::invokeOpen):
9496
9497 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9498
9499         Update DOMException name: IndexSizeError
9500         https://bugs.webkit.org/show_bug.cgi?id=102087
9501
9502         Reviewed by Ojan Vafai.
9503
9504         This is the first in a series of updates to DOMException name to match
9505         the spec and Firefox.
9506
9507         Patch 1 of 25
9508
9509         Updated existing tests.
9510
9511         * dom/DOMCoreException.cpp:
9512         (WebCore):
9513
9514 2012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>
9515
9516         Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
9517         https://bugs.webkit.org/show_bug.cgi?id=102205
9518
9519         Reviewed by Csaba Osztrogonác.
9520
9521         Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
9522
9523         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
9524         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
9525         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
9526         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
9527
9528 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9529
9530         Update DOMException name: NoDataAllowedError
9531         https://bugs.webkit.org/show_bug.cgi?id=102132
9532
9533         Reviewed by Darin Adler.
9534
9535         Patch 6 of 25 to update DOMException name to match the spec and Firefox.
9536
9537         NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
9538
9539         * dom/DOMCoreException.cpp:
9540         (WebCore):
9541         * dom/ExceptionCode.h:
9542
9543 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9544
9545         Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
9546         https://bugs.webkit.org/show_bug.cgi?id=102219
9547
9548         Reviewed by Alexander Pavlov.
9549
9550         Force elements module load upon context menu invocation.
9551
9552         * inspector/front-end/ElementsTreeOutline.js:
9553         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
9554         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
9555
9556 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9557
9558         Unreviewed, rolling out r134523.
9559         http://trac.webkit.org/changeset/134523
9560         https://bugs.webkit.org/show_bug.cgi?id=102218
9561
9562         brake chrome windows build, as it references a non existing
9563         header js/DOMRequestState.h (Requested by jochen__ on
9564         #webkit).
9565
9566         * Modules/indexeddb/IDBCursor.cpp:
9567         (WebCore::IDBCursor::setValueReady):
9568         * Modules/indexeddb/IDBCursor.h:
9569         (IDBCursor):
9570         * Modules/indexeddb/IDBRequest.cpp:
9571         (WebCore::IDBRequest::IDBRequest):
9572         (WebCore::IDBRequest::onSuccess):
9573         (WebCore::IDBRequest::stop):
9574         (WebCore::IDBRequest::dispatchEvent):
9575         * Modules/indexeddb/IDBRequest.h:
9576         (IDBRequest):
9577         * WebCore.gypi:
9578         * bindings/v8/DOMRequestState.h: Removed.
9579         * bindings/v8/IDBBindingUtilities.cpp:
9580         (WebCore::deserializeIDBValue):
9581         (WebCore::idbKeyToScriptValue):
9582         * bindings/v8/IDBBindingUtilities.h:
9583         (WebCore):
9584
9585 2012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>
9586
9587         Add platform implementation of remote web inspector server for GTK port.
9588         https://bugs.webkit.org/show_bug.cgi?id=88094 
9589
9590         Reviewed by Gustavo Noronha Silva.
9591
9592         Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
9593         Needed to pass remote inspector server socket connection. The change is tested with 
9594         inspector server API tests.
9595
9596         * platform/network/soup/SocketStreamHandle.h:
9597         (WebCore::SocketStreamHandle::create):
9598         (SocketStreamHandle):
9599         * platform/network/soup/SocketStreamHandleSoup.cpp:
9600         (WebCore::SocketStreamHandle::SocketStreamHandle):
9601         (WebCore):
9602         (WebCore::SocketStreamHandle::connected):
9603         (WebCore::SocketStreamHandle::platformSend):
9604         (WebCore::SocketStreamHandle::platformClose):
9605
9606 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9607
9608         Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
9609         https://bugs.webkit.org/show_bug.cgi?id=102212
9610
9611         Reviewed by Vsevolod Vlasov.
9612
9613         * inspector/front-end/ObjectPropertiesSection.js:
9614         (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
9615
9616 2012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>
9617
9618         Web Inspector: NMI add instrumentation for WebAudo related stuff.
9619         They use about 16Mb for shared data on pages with webaudio.
9620         As example Angry Birds app.
9621         https://bugs.webkit.org/show_bug.cgi?id=101729
9622
9623         Reviewed by Yury Semikhatsky.
9624
9625         Plain vanilla instrumentation for audio and webaudio classes.
9626         AudioContext is a kind of ActiveDOMObject. I found that these objects
9627         are accessible through ScriptExecutuionContext and ScriptExecutionContext
9628         is an ancestor of Document. Document class was instrumented earler.
9629         I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
9630         and now AudioContext and other ActiveDOMObjects are reacheable from Document.
9631
9632         Test: inspector-protocol/nmi-webaudio.html
9633
9634         * Modules/webaudio/AudioContext.cpp:
9635         (WebCore::AudioContext::reportMemoryUsage):
9636         (WebCore):
9637         * Modules/webaudio/AudioContext.h:
9638         (AudioContext):
9639         * Modules/webaudio/AudioNode.cpp:
9640         (WebCore::AudioNode::reportMemoryUsage):
9641         (WebCore):
9642         * Modules/webaudio/AudioNode.h:
9643         (AudioNode):
9644         * dom/ActiveDOMObject.cpp:
9645         (WebCore::ActiveDOMObject::reportMemoryUsage):
9646         (WebCore):
9647         * dom/ActiveDOMObject.h:
9648         (ActiveDOMObject):
9649         * dom/Document.cpp:
9650         (WebCore::Document::reportMemoryUsage):
9651         * dom/ScriptExecutionContext.cpp:
9652         (WebCore::ScriptExecutionContext::reportMemoryUsage):
9653         (WebCore):
9654         * dom/ScriptExecutionContext.h:
9655         (ScriptExecutionContext):
9656         * dom/SecurityContext.cpp:
9657         (WebCore::SecurityContext::reportMemoryUsage):
9658         (WebCore):
9659         * dom/SecurityContext.h:
9660         (SecurityContext):
9661         * dom/WebCoreMemoryInstrumentation.cpp:
9662         (WebCore):
9663         * dom/WebCoreMemoryInstrumentation.h:
9664         (WebCoreMemoryTypes):
9665         * platform/audio/AudioArray.h:
9666         (AudioArray):
9667         (WebCore::AudioArray::reportMemoryUsage):
9668         * platform/audio/FFTFrame.cpp:
9669         (WebCore::FFTFrame::reportMemoryUsage):
9670         (WebCore):
9671         * platform/audio/FFTFrame.h:
9672         (FFTFrame):
9673         * platform/audio/HRTFDatabase.cpp:
9674         (WebCore::HRTFDatabase::reportMemoryUsage):
9675         (WebCore):
9676         * platform/audio/HRTFDatabase.h:
9677         (HRTFDatabase):
9678         * platform/audio/HRTFDatabaseLoader.cpp:
9679         (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
9680         (WebCore):
9681         * platform/audio/HRTFDatabaseLoader.h:
9682         (HRTFDatabaseLoader):
9683         * platform/audio/HRTFElevation.cpp:
9684         (WebCore::HRTFElevation::reportMemoryUsage):
9685         (WebCore):
9686         * platform/audio/HRTFElevation.h:
9687         (HRTFElevation):
9688         * platform/audio/HRTFKernel.cpp:
9689         (WebCore::HRTFKernel::reportMemoryUsage):
9690         (WebCore):
9691         * platform/audio/HRTFKernel.h:
9692         (HRTFKernel):
9693
9694 2012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
9695
9696         Web Inspector: Settings screen: close button overlays view title on mac.
9697         https://bugs.webkit.org/show_bug.cgi?id=102198
9698
9699         Reviewed by Pavel Feldman.
9700
9701         Added margin-left for mac. Adjusted title height and vertical positioning.
9702
9703         * inspector/front-end/helpScreen.css:
9704         (.help-window-caption): Adjusted title height.
9705         (.help-window-title): Adjusted title vertical positioning. 
9706         (body.platform-mac .help-window-main .help-window-title): Fixed margin.
9707
9708 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
9709
9710         Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
9711         https://bugs.webkit.org/show_bug.cgi?id=101905
9712
9713         Reviewed by Vsevolod Vlasov.
9714
9715         Currently we use heuristics for detecting damaged model range upon DOM mutation.
9716         This change adds signals from the last selection and keyboard events in order to
9717         further improve the heuristics quality.
9718
9719         * inspector/front-end/DefaultTextEditor.js:
9720         (WebInspector.DefaultTextEditor):
9721         (WebInspector.DefaultTextEditor.EditInfo):
9722         (WebInspector.DefaultTextEditor.prototype._handleTextInput):
9723         (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
9724         (WebInspector.DefaultTextEditor.prototype.lastSelection):
9725         (WebInspector.DefaultTextEditor.prototype.wasShown):
9726         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
9727         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
9728         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
9729         (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
9730         (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
9731         * inspector/front-end/TextEditorModel.js:
9732         (WebInspector.TextRange.prototype.compareTo):
9733         (WebInspector.TextRange.prototype.shift):
9734         (WebInspector.TextEditorModel.endsWithBracketRegex.):
9735
9736 2012-11-14  Dan Carney  <dcarney@google.com>
9737
9738         [V8] use toV8Fast in all relevant Node getters
9739         https://bugs.webkit.org/show_bug.cgi?id=100851
9740
9741         Reviewed by Kentaro Hara.
9742
9743         The toV8Fast function for Node objects is now called in all getters
9744         instead of toV8.
9745
9746         No new tests. Test coverage extensive.
9747
9748         * bindings/scripts/CodeGeneratorV8.pm:
9749         (GenerateHeader):
9750         (GenerateNormalAttrGetter):
9751         (IsDOMNodeType):
9752         * bindings/scripts/test/V8/V8TestNode.h:
9753         (WebCore::toV8Fast):
9754
9755 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
9756
9757         Clean up use of adjustWindowRect
9758         https://bugs.webkit.org/show_bug.cgi?id=102072
9759
9760         Reviewed by Gyuyoung Kim.
9761
9762         Tested by fast/dom/Window/open-window-min-size.html
9763
9764         * loader/FrameLoader.cpp:
9765         (WebCore::createWindow):
9766
9767             Validate the window size here so that it is not just done for
9768             .open, but also for .showModalDialog. This is compatible with
9769             other browsers such as IE and Firefox (though IE > 6, enforces
9770             a minimum width of 250 instead of 100 as Firefox and us.)
9771
9772         * page/DOMWindow.cpp:
9773         (WebCore):
9774         (WebCore::DOMWindow::adjustWindowRect):
9775
9776             Make it a static method which only takes page. It was never
9777             called from anywhere without a valid page, so the page check
9778             has been turned into an assert, and two of the arguments have
9779             been removed as they can be accessed via the page.
9780
9781         (WebCore::DOMWindow::moveBy):
9782         (WebCore::DOMWindow::moveTo):
9783         (WebCore::DOMWindow::resizeBy):
9784         (WebCore::DOMWindow::resizeTo):
9785
9786             Update use of adjustWindowRect.
9787
9788         (WebCore::DOMWindow::open):
9789
9790             Avoid modifying the WindowFeatures as the WebCore::createWindow
9791             validates and adjusts the arguments.
9792
9793         * page/DOMWindow.h:
9794         (DOMWindow):
9795
9796 2012-11-14  Takashi Sakamoto  <tasak@google.com>
9797
9798         Crash when replacing parts of text inputs with content: url(...)
9799         https://bugs.webkit.org/show_bug.cgi?id=101133
9800
9801         Reviewed by Kent Tamura.
9802
9803         Disable directly setting content of elements in an input element's
9804         shadow dom tree, because the setting breaks input element's behavior.
9805
9806         Tests: fast/forms/number/number-content-url-crash.html
9807                fast/forms/search/search-content-url-crash.html
9808
9809         * css/html.css:
9810         (input::-webkit-textfield-decoration-container):
9811         Use important to disable overriding an input element's content
9812         property.
9813         * html/TextFieldInputType.cpp:
9814         (WebCore::TextFieldInputType::attach):
9815         Added ASSERTION. No content should be applied to
9816         input::-webkit-textfield-decoration-container.
9817
9818 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9819
9820         Unreviewed. Rebaselined run-bindings-tests results.
9821
9822         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
9823         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
9824         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
9825         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
9826         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
9827         (WebCore::V8TestOverloadedConstructors::wrapSlow):
9828
9829 2012-11-14  Anton Muhin  <antonm@chromium.org>
9830
9831         Provide return types for custom WebGLRenderingContext methods
9832         https://bugs.webkit.org/show_bug.cgi?id=100777
9833
9834         Reviewed by Kenneth Russell.
9835
9836         No new tests as doesn't change generated code.
9837
9838         * html/canvas/WebGLRenderingContext.idl:
9839
9840 2012-11-14  Kent Tamura  <tkent@chromium.org>
9841
9842         Support for localization tests of calendar picker
9843         https://bugs.webkit.org/show_bug.cgi?id=102181
9844
9845         Reviewed by Kentaro Hara.
9846
9847         Introduce DateTimeChooserParameters::locale to inform locale to
9848         DateTimeChooser implementations. However we pass defaultLanguage
9849         unless tests calls internals.settings.
9850         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
9851
9852         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
9853
9854         * html/HTMLInputElement.cpp:
9855         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9856         Set DateTimeChooserParameters::locale up.
9857         * platform/DateTimeChooser.h:
9858         (DateTimeChooserParameters): Add 'locale' member.
9859
9860 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9861
9862         Web Inspector: highlight is not updating as one edits CSS properties
9863         https://bugs.webkit.org/show_bug.cgi?id=102191
9864
9865         Reviewed by Alexander Pavlov.
9866
9867         We should update highlight upon layout / style recalculation.
9868
9869         * inspector/InspectorInstrumentation.cpp:
9870         (WebCore):
9871         (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
9872         * inspector/InspectorPageAgent.cpp:
9873         (WebCore::InspectorPageAgent::InspectorPageAgent):
9874         (WebCore::InspectorPageAgent::enable):
9875         (WebCore::InspectorPageAgent::disable):
9876         (WebCore::InspectorPageAgent::domContentEventFired):
9877         (WebCore::InspectorPageAgent::didPaint):
9878         (WebCore::InspectorPageAgent::didLayout):
9879         (WebCore::InspectorPageAgent::didScroll):
9880         (WebCore):
9881         (WebCore::InspectorPageAgent::didRecalculateStyle):
9882         * inspector/InspectorPageAgent.h:
9883
9884 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9885
9886         Unreviewed, rolling out r134566.
9887         http://trac.webkit.org/changeset/134566
9888         https://bugs.webkit.org/show_bug.cgi?id=102197
9889
9890         "it broke Chromium Android Release build" (Requested by
9891         haraken on #webkit).
9892
9893         * html/HTMLInputElement.cpp:
9894         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9895         * platform/DateTimeChooser.h:
9896         (DateTimeChooserParameters):
9897
9898 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
9899
9900         Web Inspector: No content available for requests made from flash
9901         https://bugs.webkit.org/show_bug.cgi?id=101560
9902
9903         Reviewed by Pavel Feldman.
9904
9905         Network request data is now saved to inspector cache in following cases:
9906          - Error status code;
9907          - No cached resource available;
9908          - Cached resource has ShouldNotBufferData option set.
9909         Drive-by: refactored didReceiveResponse logic to be clearer.
9910
9911         * inspector/InspectorResourceAgent.cpp:
9912         (WebCore::InspectorResourceAgent::didReceiveResponse):
9913         (WebCore::InspectorResourceAgent::didReceiveData):
9914         * loader/cache/CachedResource.h:
9915         (WebCore::CachedResource::shouldBufferData):
9916
9917 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
9918
9919         Changing pseudoClass (:target) should cause distribution
9920         https://bugs.webkit.org/show_bug.cgi?id=101699
9921
9922         Reviewed by Hajime Morita.
9923
9924         When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
9925         by consulting with SelectRuleFeatureSet.
9926
9927         We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
9928
9929         Test: fast/dom/shadow/pseudoclass-update-target.html
9930
9931         * dom/Document.cpp:
9932         (WebCore::Document::setCSSTarget):
9933         * dom/ElementShadow.cpp:
9934         (WebCore::invalidateParentDistributionIfNecessary):
9935         (WebCore):
9936         * dom/ElementShadow.h:
9937         (WebCore):
9938         * html/shadow/SelectRuleFeatureSet.h:
9939         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
9940         (SelectRuleFeatureSet):
9941
9942 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9943
9944         [V8] DOM wrapper objects should be collected in minor GC cycles
9945         https://bugs.webkit.org/show_bug.cgi?id=98725
9946
9947         Reviewed by Adam Barth.
9948
9949         Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
9950         have to survive two minor GC cycles, be promoted to the old space
9951         and wait for a heavy major GC cycle.
9952
9953         This patch enables V8 to collect DOM Nodes in minor GC cycles.
9954         For real world applications, I confirmed that minor GC cycles
9955         reclaims a substantial amount of memory (24 MB for Facebook,
9956         235 MB for Google Calendar) with acceptable overhead (~10 ms
9957         per minor GC cycle). No performance regression in Dromaeo
9958         DOM tests.
9959
9960         A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
9961         Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
9962         A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
9963
9964         * bindings/v8/IntrusiveDOMWrapperMap.h:
9965         (WebCore::IntrusiveDOMWrapperMap::set):
9966         * bindings/v8/V8DOMWindowShell.cpp:
9967         (WebCore::initializeV8IfNeeded):
9968         * bindings/v8/V8GCController.cpp:
9969         (WebCore):
9970         (WebCore::gcTree):
9971         (WebCore::V8GCController::newWrapperBorn):
9972         (WebCore::V8GCController::gcPrologue):
9973         (WebCore::V8GCController::minorGCPrologue):
9974         (WebCore::V8GCController::majorGCPrologue):
9975         (WebCore::V8GCController::gcEpilogue):
9976         (WebCore::V8GCController::minorGCEpilogue):
9977         (WebCore::V8GCController::majorGCEpilogue):
9978         * bindings/v8/V8GCController.h:
9979         (WebCore):
9980         (V8GCController):
9981         * bindings/v8/WorkerContextExecutionProxy.cpp:
9982         (WebCore::WorkerContextExecutionProxy::initIsolate):
9983         * dom/Element.cpp:
9984         (WebCore::Element::focus):
9985         * dom/Node.h:
9986         (WebCore::Node::inEden):
9987         (WebCore::Node::setEden):
9988         (Node):
9989
9990 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9991
9992         [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
9993         https://bugs.webkit.org/show_bug.cgi?id=101917
9994
9995         Reviewed by Adam Barth.
9996
9997         setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
9998         We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
9999         createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
10000
10001         No tests. No change in behavior.
10002
10003         * bindings/scripts/CodeGeneratorV8.pm:
10004         (GenerateConstructorCallback):
10005         (GenerateEventConstructorCallback):
10006         (GenerateNamedConstructorCallback):
10007         (GenerateToV8Converters):
10008         * bindings/v8/V8DOMWindowShell.cpp:
10009         (WebCore::V8DOMWindowShell::installDOMWindow):
10010         * bindings/v8/V8DOMWrapper.cpp:
10011         (WebCore::V8DOMWrapper::instantiateV8Object):
10012         * bindings/v8/V8DOMWrapper.h:
10013         (V8DOMWrapper):
10014         (WebCore::V8DOMWrapper::createDOMWrapper):
10015         * bindings/v8/WorkerContextExecutionProxy.cpp:
10016         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
10017         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
10018         (WebCore::V8ArrayBuffer::constructorCallback):
10019         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
10020         (WebCore::wrapArrayBufferView):
10021         (WebCore::constructWebGLArray):
10022         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
10023         (WebCore::V8DOMFormData::constructorCallback):
10024         * bindings/v8/custom/V8DataViewCustom.cpp:
10025         (WebCore::V8DataView::constructorCallback):
10026         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
10027         (WebCore::v8HTMLImageElementConstructorCallback):
10028         * bindings/v8/custom/V8IntentConstructor.cpp:
10029         (WebCore::V8Intent::constructorCallback):
10030         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
10031         (WebCore::V8MessageChannel::constructorCallback):
10032         * bindings/v8/custom/V8MutationObserverCustom.cpp:
10033         (WebCore::V8MutationObserver::constructorCallback):
10034         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
10035         (WebCore::V8WebKitPoint::constructorCallback):
10036         * bindings/v8/custom/V8WebSocketCustom.cpp:
10037         (WebCore::V8WebSocket::constructorCallback):
10038         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
10039         (WebCore::V8XMLHttpRequest::constructorCallback):
10040
10041 2012-11-14  Kent Tamura  <tkent@chromium.org>
10042
10043         Support for localization tests of calendar picker
10044         https://bugs.webkit.org/show_bug.cgi?id=102181
10045
10046         Reviewed by Kentaro Hara.
10047
10048         Introduce DateTimeChooserParameters::locale to inform locale to
10049         DateTimeChooser implementations. However we pass defaultLanguage
10050         unless tests calls internals.settings.
10051         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
10052
10053         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
10054
10055         * html/HTMLInputElement.cpp:
10056         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
10057         Set DateTimeChooserParameters::locale up.
10058         * platform/DateTimeChooser.h:
10059         (DateTimeChooserParameters): Add 'locale' member.
10060
10061 2012-11-14  Alexei Filippov  <alph@chromium.org>
10062
10063         Web Inspector: Show total memory in the NMI snapshot header
10064         https://bugs.webkit.org/show_bug.cgi?id=101922
10065
10066         Reviewed by Pavel Feldman.
10067
10068         * inspector/front-end/NativeMemorySnapshotView.js:
10069         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
10070         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
10071
10072 2012-11-14  Jan Keromnes  <janx@linux.com>
10073
10074         Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
10075         https://bugs.webkit.org/show_bug.cgi?id=102142
10076
10077         Reviewed by Pavel Feldman.
10078
10079         Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
10080
10081         * inspector/front-end/CodeMirrorTextEditor.js:
10082         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
10083
10084 2012-11-13  Kent Tamura  <tkent@chromium.org>
10085
10086         Use menulist-button instead of menulist for date/time input types
10087         https://bugs.webkit.org/show_bug.cgi?id=101886
10088
10089         Reviewed by Hajime Morita.
10090
10091         Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
10092         not menulist. We had better apply common one by default.
10093
10094         No new tests. Covered by fast/forms/*/*-appearance-*.html.
10095
10096         * css/html.css:
10097         (input[type="date"]): Switch menulist-button from menulist.
10098         (input[type="datetime"]): Ditto.
10099         (input[type="datetime-local"]): Ditto.
10100         (input[type="month"]): Ditto.
10101         (input[type="time"]): Ditto.
10102         (input[type="week"]): Ditto.
10103         (input::-webkit-date-and-time-value):
10104         Add top, right, bottom margins. The right margin is important when
10105         dir=rtl is specified.
10106         whitespace:pre is needed to align baseline in a case of empty values.
10107         * css/themeChromiumAndroid.css:
10108         Remove redundant style declaration.
10109         * css/themeWin.css:
10110         Remove padding adjustment for date/time input types. It is for
10111         textfields.
10112
10113 2012-11-13  Vincent Scheib  <scheib@chromium.org>
10114
10115         Remove RuntimeEnabledFeatures::isPointerLockEnabled.
10116         https://bugs.webkit.org/show_bug.cgi?id=102107
10117
10118         Reviewed by Adam Barth.
10119
10120         The runtime flag is always true now that the feature is enabled by default in Chromium.
10121
10122         * bindings/generic/RuntimeEnabledFeatures.cpp:
10123         (WebCore):
10124         * bindings/generic/RuntimeEnabledFeatures.h:
10125         (RuntimeEnabledFeatures):
10126         * dom/Document.idl:
10127         * dom/Element.idl:
10128         * dom/MouseEvent.idl:
10129
10130 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10131
10132         Web Inspector: JsDoc-annotate KeyboardShortcuts
10133         https://bugs.webkit.org/show_bug.cgi?id=101301
10134
10135         Reviewed by Pavel Feldman.
10136
10137         JsDoc-annotate KeyboardShortcuts to improve readability.
10138
10139         * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
10140         * inspector/front-end/KeyboardShortcut.js: Add annotations.
10141         * inspector/front-end/Panel.js: Make event parameter typed.
10142         * inspector/front-end/inspector.js: Ditto.
10143
10144 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10145
10146         Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
10147         https://bugs.webkit.org/show_bug.cgi?id=101907
10148
10149         Reviewed by Pavel Feldman.
10150
10151         Status bar control element should have common interface for
10152         easier management.
10153         In this patch getter/setter for StatusBarButton "disabled" are replaced
10154         with regular functions "enabled"/"setEnabled"; added "setEnabled"
10155         to StatusBarCombo; added new base class StatusBarItem with
10156         method "setEnabled" and member "element".
10157
10158         * inspector/front-end/CPUProfileView.js: Adopted refactoring.
10159         * inspector/front-end/DockController.js: Ditto.
10160         * inspector/front-end/ScriptsPanel.js: Ditto.
10161         * inspector/front-end/TimelinePanel.js: Ditto.
10162         * inspector/front-end/inspector.js: Ditto.
10163         * inspector/front-end/StatusBarButton.js:
10164         (WebInspector.StatusBarItem): Added.
10165         (WebInspector.StatusBarButton): Replaced getter/setter with
10166         regular functions.
10167         (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
10168
10169 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10170
10171         Web Inspector: Console: update tab/shift-tab shortcut description.
10172         https://bugs.webkit.org/show_bug.cgi?id=102175
10173
10174         Reviewed by Pavel Feldman.
10175
10176         For "Tab / Shift-Tab" it said "Next/previous suggestion".
10177         Actually, shift-tab to do nothing, and tab auto-completes common prefix.
10178
10179         * English.lproj/localizedStrings.js: Replaced string.
10180         * inspector/front-end/ConsoleView.js: Updated shortcut registration.
10181
10182 2012-11-13  Dana Jansens  <danakj@chromium.org>
10183
10184         [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
10185         https://bugs.webkit.org/show_bug.cgi?id=102130
10186
10187         Reviewed by James Robinson.
10188
10189         The current method of setting debug borders on GraphicsLayers requires
10190         every GraphicsLayerClient to set the value on the layer(s) it
10191         represents. This skips the NonCompositedContentHost as well as any
10192         other clients other than RenderLayerBacking - including layers from the
10193         inspector.
10194
10195         Instead, pass the debug border setting directly to the
10196         WebLayerTreeSettings where the compositor can use the flag to enable
10197         borders on all layers globally.
10198
10199         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
10200         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
10201         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
10202         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
10203         (WebCore::GraphicsLayerChromium::setupContentsLayer):
10204         * platform/graphics/chromium/GraphicsLayerChromium.h:
10205         (GraphicsLayerChromium):
10206
10207 2012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
10208
10209         Enable calendar picker for input types datetime/datetime-local
10210         https://bugs.webkit.org/show_bug.cgi?id=101889
10211
10212         Reviewed by Kent Tamura.
10213
10214         This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
10215         When a user choose a date from calendar picker, year/month/day fields of the input
10216         element are updated and hour/minute/second fields are unchanged.
10217
10218         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
10219                platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html
10220
10221         * Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
10222         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
10223         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
10224         If the given value is not valid for the element, try to parse it as a date string.
10225         * html/DateTimeInputType.cpp:
10226         (WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
10227         * html/DateTimeLocalInputType.cpp:
10228         (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
10229         * html/shadow/DateTimeEditElement.cpp:
10230         (WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
10231         (WebCore):
10232         * html/shadow/DateTimeEditElement.h:
10233         (DateTimeEditElement):
10234         * rendering/RenderThemeChromiumCommon.cpp:
10235         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.
10236
10237 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10238
10239         Unreviewed, rolling out r134524.
10240         http://trac.webkit.org/changeset/134524
10241         https://bugs.webkit.org/show_bug.cgi?id=102177
10242
10243         "Chromiium build broken" (Requested by haraken on #webkit).
10244
10245         * WebCore.gyp/WebCore.gyp:
10246         * WebCore.gypi:
10247         * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
10248         * rendering/RenderThemeChromiumFontProvider.h: Removed.
10249         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
10250         * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
10251         * rendering/RenderThemeChromiumSkia.cpp:
10252         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
10253         (WebCore::RenderThemeChromiumSkia::systemFont):
10254         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
10255         * rendering/RenderThemeChromiumSkia.h:
10256         (RenderThemeChromiumSkia):
10257         * rendering/RenderThemeChromiumWin.cpp:
10258         (WebCore):
10259         (WebCore::getNonClientMetrics):
10260         (WebCore::systemFontSize):
10261         (WebCore::pointsToPixels):
10262         (WebCore::RenderThemeChromiumWin::systemFont):
10263         (WebCore::RenderThemeChromiumWin::setDefaultFontSize):
10264         * rendering/RenderThemeChromiumWin.h:
10265         (RenderThemeChromiumWin):
10266
10267 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10268
10269         Fix compile warning [-Wsign-compare]
10270         https://bugs.webkit.org/show_bug.cgi?id=101458
10271
10272         Reviewed by Alexey Proskuryakov.
10273
10274         Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
10275         However, it leads -Wsign-compare compile warning.
10276         Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.
10277
10278         * platform/posix/SharedBufferPOSIX.cpp:
10279         (WebCore::SharedBuffer::createWithContentsOfFile):
10280
10281 2012-11-13  Keishi Hattori  <keishi@webkit.org>
10282
10283         Enable datalist UI for input types week and month
10284         https://bugs.webkit.org/show_bug.cgi?id=102041
10285
10286         Reviewed by Kent Tamura.
10287
10288         Enabling datalist UI for input types week and month.
10289
10290         No new tests. Tests will be added later in Bug 102039 and Bug 102040.
10291
10292         * rendering/RenderThemeChromiumCommon.cpp:
10293         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.
10294
10295 2012-11-13  Eberhard Graether  <egraether@google.com>
10296
10297         checkbox to toggle FPS counter in the inspector's settings
10298         https://bugs.webkit.org/show_bug.cgi?id=99660
10299
10300         Reviewed by Pavel Feldman.
10301
10302         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
10303
10304         No new tests.
10305
10306         * English.lproj/localizedStrings.js:
10307         * inspector/Inspector.json:
10308         * inspector/InspectorClient.h:
10309         (WebCore::InspectorClient::canShowFPSCounter):
10310         (WebCore::InspectorClient::setShowFPSCounter):
10311         (InspectorClient):
10312         * inspector/InspectorPageAgent.cpp:
10313         (PageAgentState):
10314         (WebCore::InspectorPageAgent::enable):
10315         (WebCore::InspectorPageAgent::disable):
10316         (WebCore::InspectorPageAgent::canShowFPSCounter):
10317         (WebCore):
10318         (WebCore::InspectorPageAgent::setShowFPSCounter):
10319         * inspector/InspectorPageAgent.h:
10320         * inspector/front-end/Settings.js:
10321         * inspector/front-end/SettingsScreen.js:
10322         (WebInspector.GenericSettingsTab):
10323         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
10324         * inspector/front-end/inspector.js:
10325         (WebInspector.doLoadedDone):
10326
10327 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
10328
10329         Collect necessary features for SelectRuleFeatureSet
10330         https://bugs.webkit.org/show_bug.cgi?id=102160
10331
10332         Reviewed by Dimitri Glazkov.
10333
10334         When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
10335         distribution, we would like to collect RuleFeature from select attributes.
10336
10337         According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
10338         indeterminate, link, target, and visited. We collect them in this patch.
10339
10340         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
10341
10342         * html/shadow/SelectRuleFeatureSet.cpp:
10343         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
10344         (WebCore::SelectRuleFeatureSet::add):
10345         (WebCore::SelectRuleFeatureSet::clear):
10346         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
10347         * html/shadow/SelectRuleFeatureSet.h:
10348         (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
10349         (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
10350         (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
10351         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
10352         (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
10353         (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
10354         (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
10355         (SelectRuleFeatureSet):
10356         (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
10357         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
10358         * testing/Internals.cpp:
10359         (WebCore::Internals::hasSelectorForPseudoClassInShadow):
10360         (WebCore):
10361         * testing/Internals.h:
10362         (Internals):
10363         * testing/Internals.idl:
10364
10365 2012-11-13  Andreas Kling  <kling@webkit.org>
10366
10367         Move inline style logic from ElementAttributeData to StyledElement.
10368         <http://webkit.org/b/102120>
10369
10370         Reviewed by Antti Koivisto.
10371
10372         Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
10373         No difference in behavior, just making ElementAttributeData dumber.
10374
10375         * css/StylePropertySet.cpp:
10376         * css/StylePropertySet.h:
10377         (WebCore::StylePropertySet::hasCSSOMWrapper):
10378         (WebCore::StylePropertySet::cssStyleDeclaration):
10379
10380             Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
10381             to instantiate a CSSOM wrapper unnecessarily.
10382
10383         * dom/StyledElement.h:
10384         (WebCore::StyledElement::inlineStyle):
10385         * dom/ElementAttributeData.cpp:
10386         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
10387         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
10388         (WebCore::ElementAttributeData::reportMemoryUsage):
10389         * dom/ElementAttributeData.h:
10390         (WebCore::ElementAttributeData::inlineStyle):
10391         (ElementAttributeData):
10392
10393             Renamed m_inlineStyleDecl to m_inlineStyle. Finally.
10394
10395         * dom/StyledElement.cpp:
10396         (WebCore::StyledElement::~StyledElement):
10397
10398             Detach the CSSOM wrapper from the inline style if there is one.
10399
10400         (WebCore::StyledElement::ensureMutableInlineStyle):
10401         (WebCore::StyledElement::style):
10402
10403             Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
10404             actually does. Update call sites accordingly.
10405
10406         (WebCore::StyledElement::inlineStyleCSSOMWrapper):
10407
10408             Added helper to get the CSSOM wrapper for the element's inline style if there is one.
10409
10410         (WebCore::StyledElement::styleAttributeChanged):
10411
10412             Do the work to parse/update/replace the inline style attribute here instead of
10413             in an ElementAttributeData method.
10414
10415         (WebCore::StyledElement::setInlineStyleProperty):
10416         (WebCore::StyledElement::removeInlineStyleProperty):
10417         (WebCore::StyledElement::removeAllInlineStyleProperties):
10418         * editing/ApplyStyleCommand.cpp:
10419         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
10420         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
10421         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
10422         * editing/ReplaceSelectionCommand.cpp:
10423         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
10424         * html/canvas/CanvasStyle.cpp:
10425         (WebCore::currentColor):
10426
10427             s/ensureInlineStyle/ensureMutableInlineStyle/
10428
10429 2012-11-13  Li Yin  <li.yin@intel.com>
10430
10431         fast/forms/file/input-file-write-files.html should cover correct setting value
10432         https://bugs.webkit.org/show_bug.cgi?id=100085
10433
10434         Reviewed by Kentaro Hara.
10435
10436         Fix the GObject and Objective C bindings comparibility issue. Preserving existing
10437         behavior for those may be important in idl.
10438
10439         No new tests, because fast/forms/file/input-file-value.html has covered it.
10440
10441         * html/HTMLInputElement.idl:
10442
10443 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10444
10445         [EFL] Fix build warning in NetworkStateNotifierEfl.cpp
10446         https://bugs.webkit.org/show_bug.cgi?id=102061
10447
10448         Reviewed by Gyuyoung Kim.
10449
10450         The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.
10451
10452         * platform/network/efl/NetworkStateNotifierEfl.cpp:
10453         (WebCore::readSocketCallback):
10454
10455 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
10456
10457         Don't mark scrolling contents as dirty if RenderLayerBacking is going away
10458         https://bugs.webkit.org/show_bug.cgi?id=101947
10459
10460         Reviewed by Simon Fraser.
10461
10462         When a scrolling contents graphics layer is created or destroyed, the
10463         associated graphics layer is marked as needing display because some of
10464         the painted content may have migrated between the primary graphics layer
10465         and the scrolling layer.
10466
10467         This causes a problem when the RenderLayerBacking is being destroyed,
10468         because setNeedsDisplay() needs to check from the compositor whether to
10469         track repaints or not. If the RenderLayerBacking is being destroyed, the
10470         value returned by compositor() is garbage and this causes a crash.
10471
10472         This patch fixes the problem by making RenderLayer::compositor() return a null
10473         pointer when the renderer no longer has a view.
10474
10475         Covered by existing layout tests in compositing/overflow/.
10476
10477         * rendering/RenderLayer.cpp:
10478         (WebCore::RenderLayer::compositor):
10479
10480 2012-11-13  Erik Arvidsson  <arv@chromium.org>
10481
10482         Update DOMException name: InvalidCharacterError
10483         https://bugs.webkit.org/show_bug.cgi?id=102128
10484
10485         Reviewed by Darin Adler.
10486
10487         Patch 5 of 25 to update DOMException name to match the spec and Firefox.
10488
10489         Updated existing tests.
10490
10491         * dom/DOMCoreException.cpp:
10492
10493 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10494
10495         IndexedDB: Run multiple tasks per transaction tick
10496         https://bugs.webkit.org/show_bug.cgi?id=97738
10497
10498         Reviewed by Tony Chang.
10499
10500         Process multiple tasks from the pending queue(s) when the timer fires. The
10501         task may initiate new tasks that change which queue is active (e.g. indexing
10502         operations) so the loop must re-check each tick which queue to use.
10503
10504         In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
10505         in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
10506
10507         No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
10508
10509         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
10510         (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
10511         (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
10512
10513 2012-11-13  Elliott Sprehn  <esprehn@chromium.org>
10514
10515         Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
10516         https://bugs.webkit.org/show_bug.cgi?id=102012
10517
10518         Reviewed by Ojan Vafai.
10519
10520         Previously if you modified the subtree that was being removed from a
10521         removeChild from inside an unload handler on an <iframe> inside the
10522         subtree you'd get an exception which is wrong. Instead we just need to
10523         disable all frame loading there.
10524
10525         This works because either the subtree will be removed and the frame never
10526         loading doesn't matter, or some section of the subtree that contains the
10527         frame will be moved to another part of the document which will cause the
10528         frame to load when it's inserted there.
10529
10530         I also added a check for <object> elements. It doesn't seem this is actually
10531         reachable in the existing code, but I'm not entirely sure since the frame
10532         loading and object/plugin handling is very confusing.
10533
10534         A better fix could be to repeatedly walk the subtree until all frames
10535         were disconnected or some iteration limit was hit and then force all leftover
10536         subframes to disconnect without firing unload handlers but this is such an
10537         edge case I don't think the complexity is necessary.
10538
10539         Test: fast/frames/modifications-in-subtree-unload.html
10540
10541         * dom/ContainerNodeAlgorithms.h:
10542         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
10543         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
10544         (ChildFrameDisconnector):
10545         (WebCore::ChildFrameDisconnector::disconnect):
10546         * dom/Node.cpp:
10547         (WebCore::checkAcceptChild): Removed exception.
10548         * html/HTMLFrameElementBase.cpp:
10549         (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
10550         * html/HTMLFrameOwnerElement.h:
10551         (SubframeLoadingDisabler):
10552         (WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
10553         (WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
10554         (WebCore::SubframeLoadingDisabler::canLoadFrame):
10555           Returns true if frames can be loaded in the subtree.
10556         (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
10557         * html/HTMLObjectElement.cpp:
10558         (WebCore::HTMLObjectElement::updateWidget):
10559           Check canLoadFrame(). I think this case is impossible, but it's better
10560           to be safe than sorry later.
10561
10562 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10563
10564         [V8] Add missing ENABLE(SVG) test in header
10565         https://bugs.webkit.org/show_bug.cgi?id=102143
10566
10567         Reviewed by Kentaro Hara.
10568
10569         Need to wrap the #include of a header that's only conditionally generated.
10570
10571         Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"
10572
10573         * bindings/v8/custom/V8ElementCustom.cpp:
10574
10575 2012-11-13  Jon Lee  <jonlee@apple.com>
10576
10577         Automatically run small plugins
10578         https://bugs.webkit.org/show_bug.cgi?id=102148
10579         <rdar://problem/12695560>
10580
10581         Reviewed by Darin Adler.
10582
10583         * rendering/RenderEmbeddedObject.h: Promote layout() to protected.
10584         * rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
10585         (WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
10586         If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
10587         display state to Playing. Assuming we will always layout before first paint, changing the state here
10588         should be safe.
10589         * rendering/RenderSnapshottedPlugIn.h:
10590
10591 2012-11-13  Kenneth Russell  <kbr@google.com>
10592
10593         Notify embedder of lost contexts and allow overriding of WebGL support
10594         https://bugs.webkit.org/show_bug.cgi?id=101826
10595
10596         Reviewed by Adam Barth.
10597
10598         Add hooks notifying the embedder when OpenGL contexts are lost and
10599         allowing overriding of WebGL support on a per-frame basis.
10600
10601         No tests yet; don't know how to test this solely within WebKit.
10602         Currently developing tests in the Chromium port exercising the
10603         notifications end-to-end. Once those are in place, I'm prepared to
10604         investigate adding tests for all ports.
10605
10606         * html/canvas/WebGLRenderingContext.cpp:
10607         (WebCore):
10608         (WebCore::WebGLRenderingContext::create):
10609           Check whether embedder vetoes creation of new WebGL contexts.
10610         (WebCore::WebGLRenderingContext::loseContextImpl):
10611           Notify embedder that context was lost.
10612         (WebCore::WebGLRenderingContext::maybeRestoreContext):
10613           Check whether embedder vetoes restoration of existing WebGL contexts.
10614         * loader/FrameLoaderClient.h:
10615         (FrameLoaderClient):
10616         (WebCore::FrameLoaderClient::allowWebGL):
10617         (WebCore::FrameLoaderClient::didLoseWebGLContext):
10618           Hooks notifying embedder of lost contexts and asking permission to run WebGL.
10619
10620 2012-11-13  Scott Violet  <sky@chromium.org>
10621
10622         [Chromium] Refactor theme font lookup into a factory
10623         https://bugs.webkit.org/show_bug.cgi?id=101949
10624
10625         Reviewed by Tony Chang.
10626
10627         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
10628
10629         No new tests. Refactoring only.
10630
10631         * WebCore.gyp/WebCore.gyp:
10632         * WebCore.gypi:
10633         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
10634         (WebCore):
10635         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
10636         * rendering/RenderThemeChromiumFontProvider.h: Added.
10637         (WTF):
10638         (WebCore):
10639         (RenderThemeChromiumFontProvider): This is the font related methods.
10640         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
10641         (WebCore):
10642         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
10643         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
10644         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
10645         (WebCore):
10646         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
10647         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
10648         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
10649         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
10650         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
10651         * rendering/RenderThemeChromiumSkia.cpp:
10652         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
10653         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
10654         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
10655         * rendering/RenderThemeChromiumSkia.h:
10656         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
10657         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
10658         (WebCore):
10659         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
10660         (RenderThemeChromiumWin):
10661
10662 2012-11-13  Alec Flett  <alecflett@chromium.org>
10663
10664         Add DOMRequestState to maintain world/ScriptExecutionContext state
10665         https://bugs.webkit.org/show_bug.cgi?id=102102
10666
10667         Reviewed by Adam Barth.
10668
10669         Introduce DOMRequestState, and convert IndexedDB over.
10670
10671         No new tests, this is an abstraction layer for existing code.
10672
10673         * Modules/indexeddb/IDBRequest.cpp:
10674         (WebCore::IDBRequest::IDBRequest):
10675         (WebCore::IDBRequest::onSuccess):
10676         (WebCore::IDBRequest::dispatchEvent):
10677         * Modules/indexeddb/IDBRequest.h:
10678         (IDBRequest):
10679         * WebCore.gypi:
10680         * bindings/v8/DOMRequestState.h: Added.
10681         (WebCore):
10682         (DOMRequestState):
10683         (WebCore::DOMRequestState::DOMRequestState):
10684         (Scope):
10685         (WebCore::DOMRequestState::Scope::Scope):
10686         (WebCore::DOMRequestState::scope):
10687
10688 2012-11-13  Robert Sesek  <rsesek@chromium.org>
10689
10690         Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
10691         https://bugs.webkit.org/show_bug.cgi?id=101634
10692
10693         Reviewed by Adam Barth.
10694
10695         This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
10696         into RenderThemeMacShared.
10697
10698         No new tests, just refactoring.
10699
10700         * WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
10701         * WebCore.gypi: Add RenderThemeMacShared.{h,mm}
10702         * WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
10703         * rendering/RenderThemeChromiumMac.h:
10704         * rendering/RenderThemeChromiumMac.mm:
10705         (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
10706         (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
10707         (WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
10708         * rendering/RenderThemeMac.h:
10709         (RenderThemeMac):
10710         * rendering/RenderThemeMac.mm:
10711         (WebCore):
10712         (WebCore::RenderTheme::themeForPage):
10713         (WebCore::RenderThemeMac::create):
10714         (WebCore::RenderThemeMac::RenderThemeMac):
10715         (WebCore::RenderThemeMac::~RenderThemeMac):
10716         (WebCore::RenderThemeMac::documentViewFor):
10717         (WebCore::mediaControllerTheme):
10718         (WebCore::RenderThemeMac::paintMediaSliderTrack):
10719         (WebCore::RenderThemeMac::paintMediaRewindButton):
10720         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
10721         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
10722         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
10723         (WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
10724         (WebCore::RenderThemeMac::extraFullScreenStyleSheet):
10725         * rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
10726         (WebCore):
10727         (RenderThemeMacShared):
10728         (WebCore::RenderThemeMacShared::supportsControlTints):
10729         (WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
10730         (WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
10731         (WebCore::RenderThemeMacShared::supportsClosedCaptioning):
10732         (WebCore::RenderThemeMacShared::updateActiveState):
10733         * rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
10734         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
10735         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
10736         (-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
10737         (WebCore):
10738         (WebCore::RenderThemeMacShared::RenderThemeMacShared):
10739         (WebCore::RenderThemeMacShared::~RenderThemeMacShared):
10740         (WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
10741         (WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
10742         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
10743         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
10744         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
10745         (WebCore::RenderThemeMacShared::platformFocusRingColor):
10746         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
10747         (WebCore::toFontWeight):
10748         (WebCore::RenderThemeMacShared::systemFont):
10749         (WebCore::convertNSColorToColor):
10750         (WebCore::menuBackgroundColor):
10751         (WebCore::RenderThemeMacShared::platformColorsDidChange):
10752         (WebCore::RenderThemeMacShared::systemColor):
10753         (WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
10754         (WebCore::RenderThemeMacShared::isControlStyled):
10755         (WebCore::RenderThemeMacShared::adjustRepaintRect):
10756         (WebCore::RenderThemeMacShared::inflateRect):
10757         (WebCore::RenderThemeMacShared::convertToPaintingRect):
10758         (WebCore::RenderThemeMacShared::updateCheckedState):
10759         (WebCore::RenderThemeMacShared::updateEnabledState):
10760         (WebCore::RenderThemeMacShared::updateFocusedState):
10761         (WebCore::RenderThemeMacShared::updatePressedState):
10762         (WebCore::RenderThemeMacShared::controlSupportsTints):
10763         (WebCore::RenderThemeMacShared::controlSizeForFont):
10764         (WebCore::RenderThemeMacShared::setControlSize):
10765         (WebCore::RenderThemeMacShared::sizeForFont):
10766         (WebCore::RenderThemeMacShared::sizeForSystemFont):
10767         (WebCore::RenderThemeMacShared::setSizeFromFont):
10768         (WebCore::RenderThemeMacShared::setFontFromControlSize):
10769         (WebCore::RenderThemeMacShared::controlSizeForSystemFont):
10770         (WebCore::RenderThemeMacShared::paintTextField):
10771         (WebCore::RenderThemeMacShared::adjustTextFieldStyle):
10772         (WebCore::RenderThemeMacShared::paintCapsLockIndicator):
10773         (WebCore::RenderThemeMacShared::paintTextArea):
10774         (WebCore::RenderThemeMacShared::adjustTextAreaStyle):
10775         (WebCore::RenderThemeMacShared::popupButtonMargins):
10776         (WebCore::RenderThemeMacShared::popupButtonSizes):
10777         (WebCore::RenderThemeMacShared::popupButtonPadding):
10778         (WebCore::RenderThemeMacShared::paintMenuList):
10779         (WebCore::RenderThemeMacShared::meterSizeForBounds):
10780         (WebCore::RenderThemeMacShared::paintMeter):
10781         (WebCore::RenderThemeMacShared::supportsMeter):
10782         (WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
10783         (WebCore::RenderThemeMacShared::levelIndicatorFor):
10784         (WebCore::RenderThemeMacShared::progressBarSizes):
10785         (WebCore::RenderThemeMacShared::progressBarMargins):
10786         (WebCore::RenderThemeMacShared::minimumProgressBarHeight):
10787         (WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
10788         (WebCore::RenderThemeMacShared::animationDurationForProgressBar):
10789         (WebCore::RenderThemeMacShared::adjustProgressBarStyle):
10790         (WebCore::RenderThemeMacShared::paintProgressBar):
10791         (WebCore::TopGradientInterpolate):
10792         (WebCore::BottomGradientInterpolate):
10793         (WebCore::MainGradientInterpolate):
10794         (WebCore::TrackGradientInterpolate):
10795         (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
10796         (WebCore::RenderThemeMacShared::paintMenuListButton):
10797         (WebCore::menuListButtonSizes):
10798         (WebCore::RenderThemeMacShared::adjustMenuListStyle):
10799         (WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
10800         (WebCore::RenderThemeMacShared::popupInternalPaddingRight):
10801         (WebCore::RenderThemeMacShared::popupInternalPaddingTop):
10802         (WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
10803         (WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
10804         (WebCore::RenderThemeMacShared::setPopupButtonCellState):
10805         (WebCore::RenderThemeMacShared::menuListSizes):
10806         (WebCore::RenderThemeMacShared::minimumMenuListSize):
10807         (WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
10808         (WebCore::RenderThemeMacShared::paintSliderTrack):
10809         (WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
10810         (WebCore::RenderThemeMacShared::paintSliderThumb):
10811         (WebCore::RenderThemeMacShared::paintSearchField):
10812         (WebCore::RenderThemeMacShared::setSearchCellState):
10813         (WebCore::RenderThemeMacShared::searchFieldSizes):
10814         (WebCore::RenderThemeMacShared::setSearchFieldSize):
10815         (WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
10816         (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
10817         (WebCore::RenderThemeMacShared::cancelButtonSizes):
10818         (WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
10819         (WebCore::RenderThemeMacShared::resultsButtonSizes):
10820         (WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
10821         (WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
10822         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
10823         (WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
10824         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
10825         (WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
10826         (WebCore::RenderThemeMacShared::sliderTickSize):
10827         (WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
10828         (WebCore::RenderThemeMacShared::adjustSliderThumbSize):
10829         (WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
10830         (WebCore::RenderThemeMacShared::popupButton):
10831         (WebCore::RenderThemeMacShared::search):
10832         (WebCore::RenderThemeMacShared::searchMenuTemplate):
10833         (WebCore::RenderThemeMacShared::sliderThumbHorizontal):
10834         (WebCore::RenderThemeMacShared::sliderThumbVertical):
10835         (WebCore::RenderThemeMacShared::textField):
10836         (WebCore::RenderThemeMacShared::fileListNameForWidth):
10837         (WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):
10838
10839 2012-11-13  Tab Atkins  <jackalmage@gmail.com>
10840
10841         CSS @charset parsing is too loose, doesn't match other browsers
10842         https://bugs.webkit.org/show_bug.cgi?id=101527
10843
10844         Reviewed by Alexey Proskuryakov.
10845
10846         Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
10847         IE and FF have changed to be strict about @charset parsing,
10848         as the CSS 2.1 spec requires.
10849         Since @charset use is very uncommon anyway,
10850         we should match the new behavior and the spec for platform consistency.
10851
10852         Test: fast/encoding/css-charset-evil/css-charset-evil.html
10853
10854         * loader/TextResourceDecoder.cpp:
10855         (WebCore::bytesEqual):
10856         (WebCore::TextResourceDecoder::checkForCSSCharset):
10857
10858 2012-11-13  Kenichi Ishibashi  <bashi@chromium.org>
10859
10860         [WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
10861         https://bugs.webkit.org/show_bug.cgi?id=101569
10862
10863         Reviewed by Alexey Proskuryakov.
10864
10865         Replace unpaired surrogates with replacing character (U+FFFD) when
10866         encoding text messages and close reasons. This change is aimed at
10867         following the changes on the WebSocket API specification.
10868
10869         Test: http/tests/websocket/tests/hybi/close-reason-too-long.html
10870
10871         * Modules/websockets/WebSocket.cpp:
10872         (WebCore::WebSocket::close):
10873         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10874         text message. Remove invalid utf-8 check.
10875         * Modules/websockets/WebSocketChannel.cpp:
10876         (WebCore::WebSocketChannel::send):
10877         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10878         close reason. Remove invalid utf-8 check.
10879
10880 2012-11-13  Christophe Dumez  <christophe.dumez@intel.com>
10881
10882         Make HTMLLegendElement.form behave according to specification
10883         https://bugs.webkit.org/show_bug.cgi?id=101044
10884
10885         Reviewed by Kent Tamura.
10886
10887         According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
10888         The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
10889         not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
10890         same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.
10891
10892         This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
10893         not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
10894         return the same value as the parent fieldset's form attribute.
10895
10896         Test: fast/forms/legend/legend-form.html
10897
10898         * html/HTMLLegendElement.cpp:
10899         (WebCore):
10900         (WebCore::HTMLLegendElement::virtualForm):
10901         * html/HTMLLegendElement.h:
10902         (HTMLLegendElement):
10903
10904 2012-11-13  Mark Lam  <mark.lam@apple.com>
10905
10906         Make an assertion in JSEventListener::jsFunction() more useful.
10907         https://bugs.webkit.org/show_bug.cgi?id=101985.
10908
10909         Reviewed by Geoffrey Garen.
10910
10911         The assertion was weakened in r134495. This strengthens it again.
10912
10913         No new tests.
10914
10915         * bindings/js/JSEventListener.h:
10916         (WebCore::JSEventListener::jsFunction):
10917
10918 2012-11-13  Dean Jackson  <dino@apple.com>
10919
10920         Support list of tracks in caption media controls
10921         https://bugs.webkit.org/show_bug.cgi?id=101669
10922
10923         Reviewed by Eric Carlson.
10924
10925         Attempt four of commit. The first two times caused build failures on Chromium. The third time
10926         crashed the Windows test bot. It's also been rebased since r134488.
10927
10928         Add some new elements to the media control shadow DOM that display the list of available
10929         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
10930         where it is given a very basic design. At the moment only the list of available tracks
10931         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
10932
10933         No new tests - this doesn't expose any testable surface.
10934
10935         * css/mediaControls.css: Added default rules that hide the new elements.
10936         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
10937         * html/shadow/MediaControlElements.cpp:
10938         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
10939         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
10940         (WebCore::MediaControlClosedCaptionsContainerElement::create):
10941         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
10942         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
10943         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
10944         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
10945         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
10946         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
10947         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
10948         * html/shadow/MediaControlElements.h:
10949         (MediaControlElement):
10950         (MediaControlToggleClosedCaptionsButtonElement):
10951         (MediaControlClosedCaptionsContainerElement):
10952         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
10953         * html/shadow/MediaControlsApple.cpp:
10954         (WebCore::MediaControlsApple::MediaControlsApple):
10955         (WebCore::MediaControlsApple::create): New track container and list elements created.
10956         (WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
10957         (WebCore::MediaControlsApple::hide):
10958         (WebCore::MediaControlsApple::makeTransparent):
10959         (WebCore::MediaControlsApple::reset):
10960         (WebCore::MediaControlsApple::reportedError):
10961         (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
10962         (WebCore):
10963         * html/shadow/MediaControlsApple.h:
10964         (MediaControlsApple):
10965         * html/shadow/MediaControlsChromium.cpp:
10966         (WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
10967         * html/shadow/MediaControls.h:
10968         (MediaControls):
10969         * platform/Language.cpp:
10970         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
10971         * platform/Language.h:
10972         (WebCore):
10973         * rendering/RenderMediaControls.cpp:
10974         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
10975         * rendering/RenderMediaControlsChromium.cpp:
10976         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
10977
10978 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
10979
10980         Unreviewed, rolling out r134377.
10981         http://trac.webkit.org/changeset/134377
10982         https://bugs.webkit.org/show_bug.cgi?id=101133
10983
10984         Caused a mysterious Android Clang build failure, needs
10985         investigation before landing again.
10986
10987         * css/html.css:
10988         (input::-webkit-textfield-decoration-container):
10989         * html/TextFieldInputType.cpp:
10990         (WebCore::TextFieldInputType::attach):
10991
10992 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10993
10994         Unreviewed, rolling out r134482.
10995         http://trac.webkit.org/changeset/134482
10996         https://bugs.webkit.org/show_bug.cgi?id=102140
10997
10998         The patch causes fast/regions/moved-content-node-crash.html to
10999         crash in Debug mode due to ASSERTION. (Requested by abucur on
11000         #webkit).
11001
11002         * rendering/InlineFlowBox.cpp:
11003         (SameSizeAsInlineFlowBox):
11004         * rendering/InlineFlowBox.h:
11005         (WebCore::InlineFlowBox::InlineFlowBox):
11006         (InlineFlowBox):
11007         * rendering/RenderBlock.cpp:
11008         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
11009         * rendering/RenderBlockLineLayout.cpp:
11010         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
11011         (WebCore::RenderBlock::linkToEndLineIfNeeded):
11012         (WebCore::RenderBlock::determineStartPosition):
11013         * rendering/RootInlineBox.cpp:
11014         (WebCore::RootInlineBox::RootInlineBox):
11015         * rendering/RootInlineBox.h:
11016         (WebCore):
11017         (WebCore::RootInlineBox::paginationStrut):
11018         (WebCore::RootInlineBox::setPaginationStrut):
11019         (WebCore::RootInlineBox::isFirstAfterPageBreak):
11020         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
11021         (WebCore::RootInlineBox::paginatedLineWidth):
11022         (WebCore::RootInlineBox::setPaginatedLineWidth):
11023         (RootInlineBox):
11024
11025 2012-11-13  Xianzhu Wang  <wangxianzhu@chromium.org>
11026
11027         Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
11028         https://bugs.webkit.org/show_bug.cgi?id=102108
11029
11030         Reviewed by Adam Barth.
11031
11032         No new tests. Fix clang build break.
11033
11034         * html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"
11035
11036 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11037
11038         AX: MathML types need to be semantically identified in AX tree
11039         https://bugs.webkit.org/show_bug.cgi?id=101263
11040
11041         Reviewed by Beth Dakin.
11042
11043         Semantically identify various MathML elements within the AX tree. This will allow
11044         screen readers to identify math types so that equations can be output more accurately.
11045
11046         Test: platform/mac/accessibility/mathml-elements.html
11047
11048         * accessibility/AccessibilityObject.h:
11049         (AccessibilityObject):
11050         (WebCore::AccessibilityObject::isMathElement):
11051         (WebCore::AccessibilityObject::isMathFraction):
11052         (WebCore::AccessibilityObject::isMathFenced):
11053         (WebCore::AccessibilityObject::isMathSubscriptSuperscript):
11054         (WebCore::AccessibilityObject::isMathRow):
11055         (WebCore::AccessibilityObject::isMathUnderOver):
11056         (WebCore::AccessibilityObject::isMathRoot):
11057         (WebCore::AccessibilityObject::isMathSquareRoot):
11058         (WebCore::AccessibilityObject::isMathText):
11059         (WebCore::AccessibilityObject::isMathNumber):
11060         (WebCore::AccessibilityObject::isMathOperator):
11061         (WebCore::AccessibilityObject::isMathFenceOperator):
11062         (WebCore::AccessibilityObject::isMathSeparatorOperator):
11063         (WebCore::AccessibilityObject::isMathIdentifier):
11064         (WebCore::AccessibilityObject::isMathTable):
11065         (WebCore::AccessibilityObject::isMathTableRow):
11066         (WebCore::AccessibilityObject::isMathTableCell):
11067         (WebCore::AccessibilityObject::mathRadicandObject):
11068         (WebCore::AccessibilityObject::mathRootIndexObject):
11069         (WebCore::AccessibilityObject::mathUnderObject):
11070         (WebCore::AccessibilityObject::mathOverObject):
11071         (WebCore::AccessibilityObject::mathNumeratorObject):
11072         (WebCore::AccessibilityObject::mathDenominatorObject):
11073         (WebCore::AccessibilityObject::mathBaseObject):
11074         (WebCore::AccessibilityObject::mathSubscriptObject):
11075         (WebCore::AccessibilityObject::mathSuperscriptObject):
11076         (WebCore::AccessibilityObject::mathFencedOpenString):
11077         (WebCore::AccessibilityObject::mathFencedCloseString):
11078         * accessibility/AccessibilityRenderObject.cpp:
11079         (WebCore::startOfContinuations):
11080             Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
11081         (WebCore::AccessibilityRenderObject::textUnderElement):
11082             Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
11083         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
11084             Handle ignored cases for math elements
11085         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
11086         (WebCore::AccessibilityRenderObject::isMathElement):
11087         (WebCore::AccessibilityRenderObject::isMathFraction):
11088         (WebCore::AccessibilityRenderObject::isMathFenced):
11089         (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
11090         (WebCore::AccessibilityRenderObject::isMathRow):
11091         (WebCore::AccessibilityRenderObject::isMathUnderOver):
11092         (WebCore::AccessibilityRenderObject::isMathSquareRoot):
11093         (WebCore::AccessibilityRenderObject::isMathRoot):
11094         (WebCore::AccessibilityRenderObject::isMathOperator):
11095         (WebCore::AccessibilityRenderObject::isMathFenceOperator):
11096         (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
11097         (WebCore::AccessibilityRenderObject::isMathText):
11098         (WebCore::AccessibilityRenderObject::isMathNumber):
11099         (WebCore::AccessibilityRenderObject::isMathIdentifier):
11100         (WebCore::AccessibilityRenderObject::isMathTable):
11101         (WebCore::AccessibilityRenderObject::isMathTableRow):
11102         (WebCore::AccessibilityRenderObject::isMathTableCell):
11103         (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
11104             Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
11105         (WebCore::AccessibilityRenderObject::mathRadicandObject):
11106         (WebCore::AccessibilityRenderObject::mathRootIndexObject):
11107         (WebCore::AccessibilityRenderObject::mathNumeratorObject):
11108         (WebCore::AccessibilityRenderObject::mathDenominatorObject):
11109         (WebCore::AccessibilityRenderObject::mathUnderObject):
11110         (WebCore::AccessibilityRenderObject::mathOverObject):
11111         (WebCore::AccessibilityRenderObject::mathBaseObject):
11112         (WebCore::AccessibilityRenderObject::mathSubscriptObject):
11113         (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
11114         (WebCore::AccessibilityRenderObject::mathFencedOpenString):
11115         (WebCore::AccessibilityRenderObject::mathFencedCloseString):
11116         * accessibility/AccessibilityRenderObject.h:
11117         (AccessibilityRenderObject):
11118         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11119         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
11120         (createAccessibilityRoleMap):
11121         (-[WebAccessibilityObjectWrapper subrole]):
11122         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
11123         * rendering/mathml/RenderMathMLBlock.cpp:
11124         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
11125         * rendering/mathml/RenderMathMLBlock.h:
11126         (WebCore::RenderMathMLBlock::isRenderMathMLFenced):
11127         (WebCore::RenderMathMLBlock::isRenderMathMLFraction):
11128         (WebCore::RenderMathMLBlock::isRenderMathMLRoot):
11129         (WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
11130         (WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
11131         (WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
11132         (WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
11133         (WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
11134             Add ability to identify anonymous render blocks as items that AX should ignore.
11135         (RenderMathMLBlock):
11136         * rendering/mathml/RenderMathMLFenced.cpp:
11137         (WebCore::RenderMathMLFenced::createMathMLOperator):
11138             Identify which kind of math operator is being created on the fly (Fence or Separator)
11139         (WebCore::RenderMathMLFenced::makeFences):
11140         (WebCore::RenderMathMLFenced::addChild):
11141         * rendering/mathml/RenderMathMLFenced.h:
11142         (WebCore::RenderMathMLFenced::isRenderMathMLFenced):
11143         (RenderMathMLFenced):
11144         * rendering/mathml/RenderMathMLFraction.h:
11145         (WebCore::RenderMathMLFraction::isRenderMathMLFraction):
11146         * rendering/mathml/RenderMathMLOperator.cpp:
11147         (WebCore::RenderMathMLOperator::RenderMathMLOperator):
11148         (WebCore::RenderMathMLOperator::updateFromElement):
11149         (WebCore::RenderMathMLOperator::createGlyph):
11150              Mark anonymous render blocks as AX ignored.
11151         * rendering/mathml/RenderMathMLOperator.h:
11152         (WebCore::RenderMathMLOperator::setOperatorType):
11153         (WebCore::RenderMathMLOperator::operatorType):
11154         (RenderMathMLOperator):
11155         * rendering/mathml/RenderMathMLRoot.h:
11156         (WebCore::RenderMathMLRoot::isRenderMathMLRoot):
11157         * rendering/mathml/RenderMathMLSquareRoot.h:
11158         (WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
11159         * rendering/mathml/RenderMathMLSubSup.h:
11160         (WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
11161         * rendering/mathml/RenderMathMLUnderOver.h:
11162         (WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
11163         
11164 2012-11-13  Mark Lam  <mark.lam@apple.com>
11165
11166         JSEventListener should not access m_jsFunction when its wrapper is gone.
11167         https://bugs.webkit.org/show_bug.cgi?id=101985.
11168
11169         Reviewed by Geoffrey Garen.
11170
11171         Added a few null checks for m_wrapper before we do anything with m_jsFunction.
11172
11173         No new tests.
11174
11175         * bindings/js/JSEventListener.cpp:
11176         (WebCore::JSEventListener::initializeJSFunction):
11177         - Removed a now invalid assertion. m_wrapper is expected to have a
11178           valid non-zero value when jsFunction is valid. However, in the case
11179           of JSLazyEventListener (which extends JSEventListener), m_wrapper is
11180           initially 0 when m_jsFunction has not been realized yet. When
11181           JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
11182           it will set m_wrapper to an appropriate wrapper object.
11183
11184           For this reason, JSEventListener::jsFunction() cannot do the null
11185           check on m_wrapper until after the call to initializeJSFunction.
11186
11187           This, in turns, means that in the case of the non-lazy
11188           JSEventListener, initializeJSFunction() will also be called, and
11189           if the GC has collected the m_wrapper but the JSEventListener has
11190           not been removed yet, it is possible to see a null m_wrapper while
11191           m_jsFunction contains a non-zero stale value.
11192
11193           Hence, this assertion of (m_wrapper || !m_jsFunction) in
11194           JSEventListener::initializeJSFunction() is not always true and
11195           should be removed.
11196
11197         (WebCore::JSEventListener::visitJSFunction):
11198         (WebCore::JSEventListener::operator==):
11199         * bindings/js/JSEventListener.h:
11200         (WebCore::JSEventListener::jsFunction):
11201
11202 2012-11-13  Adam Barth  <abarth@webkit.org>
11203
11204         [V8] instantiateV8Object should encapulate the tricky creationContext logic
11205         https://bugs.webkit.org/show_bug.cgi?id=102117
11206
11207         Reviewed by Eric Seidel.
11208
11209         The logic around creationContext is tricky. Rather than putting the
11210         logic in the code generator, we can centralize the logic in
11211         instantiateV8Object.
11212
11213         This patch shouldn't have any behavior change.
11214
11215         * bindings/scripts/CodeGeneratorV8.pm:
11216         (GenerateToV8Converters):
11217         * bindings/v8/V8DOMWrapper.cpp:
11218         (V8WrapperInstantiationScope):
11219         (WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
11220         (WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
11221         (WebCore::V8WrapperInstantiationScope::context):
11222         (WebCore):
11223         (WebCore::V8DOMWrapper::instantiateV8Object):
11224         * bindings/v8/V8DOMWrapper.h:
11225         (V8DOMWrapper):
11226
11227 2012-11-13  Silvia Pfeiffer  <silviapf@chromium.org>
11228
11229         Clean up the inheritance tree under the MediaControls Class.
11230         https://bugs.webkit.org/show_bug.cgi?id=88871
11231
11232         Reviewed by Eric Carlson.
11233
11234         This patch removes code duplication between the Chromium and Safari
11235         media controls shadow DOMs.
11236         This is achieved by pulling common functions that are identical (or
11237         almost identical) between the different platforms into the base class.
11238         The derived classes are renamed based on their platform:
11239         - MediaControlRootElement                to MediaControlsApple.
11240         - MediaControlRootElementChromium        to MediaControlsChromium.
11241         - MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
11242         MediaControls is now no longer an abstract base class, but its "create"
11243         function is only implemented in the port-specific header file, so it's
11244         on purpose incomplete in the MediaControls.cpp file.
11245
11246         No new tests because this is refactoring work only.
11247
11248         * CMakeLists.txt:
11249           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11250         * GNUmakefile.list.am:
11251           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11252         * Target.pri:
11253           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11254         * WebCore.gypi:
11255           Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
11256         * WebCore.order:
11257           Rename MediaControlRootElement symbols to MediaControlsApple symbols.
11258         * WebCore.vcproj/WebCore.vcproj:
11259           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11260         * WebCore.xcodeproj/project.pbxproj:
11261           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11262         * html/shadow/MediaControlElements.cpp:
11263         (WebCore::MediaControlTimelineElement::defaultEventHandler):
11264           Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
11265           Rename updateTimeDisplay() to updateCurrentTimeDisplay().
11266         * html/shadow/MediaControls.cpp:
11267         (WebCore::MediaControls::MediaControls):
11268           Added initialization for media elements that all platform controls share.
11269         (WebCore):
11270           Removed include files that are already included in header file.
11271         (WebCore::MediaControls::setMediaController):
11272           Added controller assignment for media elements that all platform controls share.
11273         (WebCore::MediaControls::reset):
11274           Added resets for media elements that all platform controls share.
11275         (WebCore::MediaControls::reportedError):
11276           Added error handling for media elements that all platform controls share.
11277         (WebCore::MediaControls::loadedMetadata):
11278           Added default action for loadedMetadata event.
11279         (WebCore::MediaControls::show):
11280         (WebCore::MediaControls::hide):
11281         (WebCore::MediaControls::makeOpaque):
11282         (WebCore::MediaControls::makeTransparent):
11283         (WebCore::MediaControls::shouldHideControls):
11284         (WebCore::MediaControls::bufferingProgressed):
11285         (WebCore::MediaControls::playbackStarted):
11286         (WebCore::MediaControls::playbackProgressed):
11287         (WebCore::MediaControls::playbackStopped):
11288         (WebCore::MediaControls::updateCurrentTimeDisplay):
11289         (WebCore::MediaControls::showVolumeSlider):
11290         (WebCore::MediaControls::changedMute):
11291         (WebCore::MediaControls::changedVolume):
11292         (WebCore::MediaControls::changedClosedCaptionsVisibility):
11293         (WebCore::MediaControls::enteredFullscreen):
11294         (WebCore::MediaControls::exitedFullscreen):
11295         (WebCore::MediaControls::defaultEventHandler):
11296         (WebCore::MediaControls::hideFullscreenControlsTimerFired):
11297         (WebCore::MediaControls::startHideFullscreenControlsTimer):
11298         (WebCore::MediaControls::stopHideFullscreenControlsTimer):
11299         (WebCore::MediaControls::shadowPseudoId):
11300         (WebCore::MediaControls::containsRelatedTarget):
11301         (WebCore::MediaControls::createTextTrackDisplay):
11302         (WebCore::MediaControls::showTextTrackDisplay):
11303         (WebCore::MediaControls::hideTextTrackDisplay):
11304         (WebCore::MediaControls::updateTextTrackDisplay):
11305           Added default actions for all these media controls member functions.
11306         * html/shadow/MediaControls.h:
11307         (WebCore):
11308           Added include files and forward class declarations that all media controls share.
11309         (MediaControls):
11310           Make all pure virtual functions that have default implementations just virtual.
11311         (WebCore::MediaControls::updateStatusDisplay):
11312           Add an empty virtual updateStatusDisplay function which is used by media elements.
11313         * html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
11314           Reduced Apple-specific media control functions by relying on default implementations in the base class.
11315         * html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
11316           Reduced Apple-specific media control elements by relying on some elements in the base class.
11317         * html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
11318           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11319         * html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
11320           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11321         * html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
11322           Renamed class name and base class name.
11323         * html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
11324           Renamed class name and base class name.
11325         * rendering/RenderTheme.h:
11326         (WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
11327           Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.
11328
11329 2012-11-13  Benjamin Poulain  <benjamin@webkit.org>
11330
11331         CSSParser::setStyleSheet() should be inline
11332         https://bugs.webkit.org/show_bug.cgi?id=101829
11333
11334         Reviewed by Andreas Kling.
11335
11336         * css/CSSParser.cpp:
11337         * css/CSSParser.h:
11338         (WebCore::CSSParser::setStyleSheet):
11339         CSSParser::setStyleSheet() just assign a pointer, it does not even
11340         change a ref-count. The function should probably be in the header.
11341
11342 2012-11-13  Andrei Bucur  <abucur@adobe.com>
11343
11344         [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
11345         https://bugs.webkit.org/show_bug.cgi?id=101332
11346
11347         Reviewed by David Hyatt.
11348
11349         Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
11350         the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
11351         including a new member, the containing Region for the line.
11352         The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
11353         styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
11354         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
11355         the task of updating the containing Region to the block.
11356
11357         Tests: No new tests because there is no functional change.
11358
11359         * rendering/InlineFlowBox.cpp:
11360         (SameSizeAsInlineFlowBox):
11361         * rendering/InlineFlowBox.h:
11362         (WebCore::InlineFlowBox::InlineFlowBox):
11363         (InlineFlowBox):
11364         * rendering/RenderBlock.cpp:
11365         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
11366         * rendering/RenderBlockLineLayout.cpp:
11367         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
11368         (WebCore::RenderBlock::linkToEndLineIfNeeded):
11369         (WebCore::RenderBlock::determineStartPosition):
11370         * rendering/RootInlineBox.cpp:
11371         (WebCore::RootInlineBox::RootInlineBox):
11372         (WebCore::RootInlineBox::setContainingRegion):
11373         (WebCore):
11374         * rendering/RootInlineBox.h:
11375         (WebCore):
11376         (WebCore::RootInlineBox::paginationStrut):
11377         (WebCore::RootInlineBox::setPaginationStrut):
11378         (WebCore::RootInlineBox::isFirstAfterPageBreak):
11379         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
11380         (WebCore::RootInlineBox::paginatedLineWidth):
11381         (WebCore::RootInlineBox::setPaginatedLineWidth):
11382         (RootInlineBox):
11383         (WebCore::RootInlineBox::containingRegion):
11384         (WebCore::RootInlineBox::ensureLineFragmentationData):
11385         (LineFragmentationData):
11386         (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
11387
11388 2012-11-13  Milian Wolff  <milian.wolff@kdab.com>
11389
11390         [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
11391         https://bugs.webkit.org/show_bug.cgi?id=98038
11392
11393         Reviewed by Simon Hausmann.
11394
11395         Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.
11396
11397         * platform/graphics/OpenGLShims.cpp:
11398         (WebCore):
11399
11400 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11401
11402         WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
11403         https://bugs.webkit.org/show_bug.cgi?id=101616
11404
11405         Reviewed by Beth Dakin.
11406
11407         If the rowheader role is exposed because the element is not within a table, the mac platform
11408         should map that to a generic group.
11409
11410         Test: platform/mac/accessibility/rowheader-outside-table-role.html
11411
11412         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11413         (createAccessibilityRoleMap):
11414
11415 2012-11-13  Stephen White  <senorblanco@chromium.org>
11416
11417         [Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
11418         https://bugs.webkit.org/show_bug.cgi?id=101952
11419
11420         Reviewed by James Robinson.
11421
11422         With these changes, all of the css3/filters tests pass when the
11423         if-test in GraphicsLayerChromium::setFilters() is forced true (for
11424         now, it remains true only if there's a reference filter in the chain).
11425
11426         Covered by the css3/filters tests (when the switch is thrown in
11427         GraphicsLayerChromium::setFilters()).
11428
11429         * WebCore.gypi:
11430         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
11431         Drop to software rendering if there's a custom filter in the chain.
11432         This is the same as the WebFilterOperations path is doing.
11433         * platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
11434         * platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
11435         New implementation of drop-shadow filter; equivalent to
11436         the path in cc/render_surface_filters.cc.
11437         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
11438         Fix the sepia and grayscale filters (value was inverted).
11439
11440 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11441
11442         Unreviewed, rolling out r134442.
11443         http://trac.webkit.org/changeset/134442
11444         https://bugs.webkit.org/show_bug.cgi?id=102111
11445
11446         Does not compile on apple-mac (Requested by abarth on
11447         #webkit).
11448
11449         * CMakeLists.txt:
11450         * GNUmakefile.list.am:
11451         * Target.pri:
11452         * WebCore.gypi:
11453         * WebCore.vcproj/WebCore.vcproj:
11454         * WebCore.xcodeproj/project.pbxproj:
11455         * css/CSSCursorImageValue.cpp:
11456         (WebCore::CSSCursorImageValue::cachedImage):
11457         * css/CSSFontFaceSrcValue.cpp:
11458         (WebCore::CSSFontFaceSrcValue::cachedFont):
11459         * css/CSSImageSetValue.cpp:
11460         (WebCore::CSSImageSetValue::cachedImageSet):
11461         * css/CSSImageValue.cpp:
11462         (WebCore::CSSImageValue::cachedImage):
11463         * css/CSSImageValue.h:
11464         (WebCore):
11465         (CSSImageValue):
11466         * css/StyleResolver.cpp:
11467         (WebCore::StyleResolver::loadPendingImage):
11468         * css/StyleRuleImport.cpp:
11469         (WebCore::StyleRuleImport::requestStyleSheet):
11470         * css/WebKitCSSSVGDocumentValue.cpp:
11471         (WebCore::WebKitCSSSVGDocumentValue::load):
11472         * css/WebKitCSSShaderValue.cpp:
11473         (WebCore::WebKitCSSShaderValue::cachedShader):
11474         * dom/ScriptElement.cpp:
11475         (WebCore::ScriptElement::requestScript):
11476         * html/HTMLLinkElement.cpp:
11477         (WebCore::HTMLLinkElement::process):
11478         * html/parser/CSSPreloadScanner.cpp:
11479         (WebCore::CSSPreloadScanner::emitRule):
11480         * html/parser/CSSPreloadScanner.h:
11481         (CSSPreloadScanner):
11482         * html/parser/HTMLPreloadScanner.cpp:
11483         (WebCore::PreloadTask::preload):
11484         * loader/ImageLoader.cpp:
11485         (WebCore::ImageLoader::updateFromElement):
11486         * loader/cache/CachedResourceLoader.cpp:
11487         (WebCore::CachedResourceLoader::requestImage):
11488         (WebCore::CachedResourceLoader::requestResource):
11489         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11490         (WebCore):
11491         (WebCore::CachedResourceLoader::preload):
11492         * loader/cache/CachedResourceLoader.h:
11493         (WebCore):
11494         (CachedResourceLoader):
11495         * loader/cache/CachedResourceRequest.cpp:
11496         (WebCore::CachedResourceRequest::CachedResourceRequest):
11497         * loader/cache/CachedResourceRequest.h:
11498         (CachedResourceRequest):
11499         (WebCore::CachedResourceRequest::defer):
11500         (WebCore::CachedResourceRequest::setDefer):
11501         * loader/cache/CachedResourceRequestInitiators.cpp: Removed.
11502         * loader/cache/CachedResourceRequestInitiators.h: Removed.
11503         * loader/icon/IconLoader.cpp:
11504         (WebCore::IconLoader::startLoading):
11505         * platform/ThreadGlobalData.cpp:
11506         (WebCore::ThreadGlobalData::ThreadGlobalData):
11507         * platform/ThreadGlobalData.h:
11508         (ThreadGlobalData):
11509         * svg/SVGFEImageElement.cpp:
11510         (WebCore::SVGFEImageElement::requestImageResource):
11511         * svg/SVGFontFaceUriElement.cpp:
11512         (WebCore::SVGFontFaceUriElement::loadFont):
11513         * svg/SVGUseElement.cpp:
11514         (WebCore::SVGUseElement::svgAttributeChanged):
11515
11516 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11517
11518         AX: file upload input text value is not exposed through accessibility
11519         https://bugs.webkit.org/show_bug.cgi?id=100583
11520
11521         Reviewed by Beth Dakin.
11522
11523         This is a hard problem to solve on the Mac because there are three pieces of information
11524              1) The type of button 2) The text on the button 3) The text for the value.
11525         I think the best compromise is to label this as a file upload button type in the role description, 
11526         and then expose the file path text as the AXTitle. 
11527         This will give the more relevant information and should be clear what is happening.
11528
11529         Test: platform/mac/accessibility/file-upload-button-subrole.html
11530
11531         * English.lproj/Localizable.strings:
11532         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11533         (-[WebAccessibilityObjectWrapper subrole]):
11534         (-[WebAccessibilityObjectWrapper roleDescription]):
11535         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
11536         * platform/LocalizedStrings.cpp:
11537         (WebCore::AXFileUploadButtonText):
11538         * platform/LocalizedStrings.h:
11539
11540 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11541
11542         Unreviewed, rolling out r133944.
11543         http://trac.webkit.org/changeset/133944
11544         https://bugs.webkit.org/show_bug.cgi?id=102118
11545
11546         Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
11547         #webkit).
11548
11549         * bindings/scripts/CodeGeneratorV8.pm:
11550         (GenerateFunctionCallback):
11551         (GenerateParametersCheck):
11552         (GenerateSingleConstructorCallback):
11553         (GenerateNamedConstructorCallback):
11554         (TypeCanFailConversion):
11555         * dom/Element.cpp:
11556         (WebCore::Element::setAttributeNode):
11557         (WebCore::Element::removeAttributeNode):
11558         * dom/Element.idl:
11559
11560 2012-11-13  Adam Barth  <abarth@webkit.org>
11561
11562         Unreviewed.
11563
11564         Update run-bindings-tests results.
11565
11566         * bindings/scripts/test/V8/V8Float64Array.cpp:
11567         (WebCore::V8Float64Array::dispatchWrapCustom):
11568         (WebCore::V8Float64Array::wrapSlow):
11569         * bindings/scripts/test/V8/V8Float64Array.h:
11570         (WebCore::V8Float64Array::toNative):
11571         (V8Float64Array):
11572         (WebCore):
11573         (WebCore::dispatchWrap):
11574         (WebCore::toV8Object):
11575         (WebCore::toV8):
11576         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
11577         (WebCore::V8TestActiveDOMObject::wrapSlow):
11578         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
11579         (WebCore::V8TestActiveDOMObject::toNative):
11580         (V8TestActiveDOMObject):
11581         (WebCore):
11582         (WebCore::dispatchWrap):
11583         (WebCore::toV8Object):
11584         (WebCore::toV8):
11585         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
11586         (WebCore::V8TestCustomNamedGetter::wrapSlow):
11587         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
11588         (WebCore::V8TestCustomNamedGetter::toNative):
11589         (V8TestCustomNamedGetter):
11590         (WebCore):
11591         (WebCore::dispatchWrap):
11592         (WebCore::toV8Object):
11593         (WebCore::toV8):
11594         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
11595         (WebCore::V8TestEventConstructor::wrapSlow):
11596         * bindings/scripts/test/V8/V8TestEventConstructor.h:
11597         (WebCore::V8TestEventConstructor::toNative):
11598         (V8TestEventConstructor):
11599         (WebCore):
11600         (WebCore::dispatchWrap):
11601         (WebCore::toV8Object):
11602         (WebCore::toV8):
11603         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
11604         (WebCore::V8TestEventTarget::wrapSlow):
11605         * bindings/scripts/test/V8/V8TestEventTarget.h:
11606         (WebCore::V8TestEventTarget::toNative):
11607         (V8TestEventTarget):
11608         (WebCore):
11609         (WebCore::dispatchWrap):
11610         (WebCore::toV8Object):
11611         (WebCore::toV8):
11612         * bindings/scripts/test/V8/V8TestException.cpp:
11613         (WebCore::V8TestException::wrapSlow):
11614         * bindings/scripts/test/V8/V8TestException.h:
11615         (WebCore::V8TestException::toNative):
11616         (V8TestException):
11617         (WebCore):
11618         (WebCore::dispatchWrap):
11619         (WebCore::toV8Object):
11620         (WebCore::toV8):
11621         * bindings/scripts/test/V8/V8TestInterface.cpp:
11622         (WebCore::V8TestInterface::wrapSlow):
11623         * bindings/scripts/test/V8/V8TestInterface.h:
11624         (WebCore::V8TestInterface::toNative):
11625         (V8TestInterface):
11626         (WebCore):
11627         (WebCore::dispatchWrap):
11628         (WebCore::toV8Object):
11629         (WebCore::toV8):
11630         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
11631         (WebCore::V8TestMediaQueryListListener::wrapSlow):
11632         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
11633         (WebCore::V8TestMediaQueryListListener::toNative):
11634         (V8TestMediaQueryListListener):
11635         (WebCore):
11636         (WebCore::dispatchWrap):
11637         (WebCore::toV8Object):
11638         (WebCore::toV8):
11639         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
11640         (WebCore::V8TestNamedConstructor::wrapSlow):
11641         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
11642         (WebCore::V8TestNamedConstructor::toNative):
11643         (V8TestNamedConstructor):
11644         (WebCore):
11645         (WebCore::dispatchWrap):
11646         (WebCore::toV8Object):
11647         (WebCore::toV8):
11648         * bindings/scripts/test/V8/V8TestNode.cpp:
11649         (WebCore::V8TestNode::wrapSlow):
11650         * bindings/scripts/test/V8/V8TestNode.h:
11651         (WebCore::V8TestNode::toNative):
11652         (V8TestNode):
11653         (WebCore):
11654         (WebCore::dispatchWrap):
11655         (WebCore::toV8Object):
11656         (WebCore::toV8):
11657         (WebCore::toV8Fast):
11658         * bindings/scripts/test/V8/V8TestObj.cpp:
11659         (WebCore::V8TestObj::wrapSlow):
11660         * bindings/scripts/test/V8/V8TestObj.h:
11661         (WebCore::V8TestObj::toNative):
11662         (V8TestObj):
11663         (WebCore):
11664         (WebCore::dispatchWrap):
11665         (WebCore::toV8Object):
11666         (WebCore::toV8):
11667         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
11668         (WebCore::V8TestOverloadedConstructors::wrapSlow):
11669         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
11670         (WebCore::V8TestOverloadedConstructors::toNative):
11671         (V8TestOverloadedConstructors):
11672         (WebCore):
11673         (WebCore::dispatchWrap):
11674         (WebCore::toV8Object):
11675         (WebCore::toV8):
11676         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
11677         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
11678         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
11679         (WebCore::V8TestSerializedScriptValueInterface::toNative):
11680         (V8TestSerializedScriptValueInterface):
11681         (WebCore):
11682         (WebCore::dispatchWrap):
11683         (WebCore::toV8Object):
11684         (WebCore::toV8):
11685
11686 2012-11-13  Adam Barth  <abarth@webkit.org>
11687
11688         Unreviewed.
11689
11690         Speculative build fix for Qt.
11691
11692         * dom/make_names.pl:
11693         (printWrapperFactoryCppFile):
11694
11695 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
11696
11697         Allow painting outside overflow clip in accelerated scrolling layers
11698         https://bugs.webkit.org/show_bug.cgi?id=100524
11699
11700         Reviewed by Simon Fraser.
11701
11702         In preparation for avoiding repaints when scrolling child layers, make it
11703         possible to paint outside the overflow clip.
11704
11705         Test: compositing/overflow/updating-scrolling-content.html
11706
11707         * rendering/LayoutState.h:
11708         (LayoutState):
11709         * rendering/RenderBlock.cpp:
11710         (WebCore::RenderBlock::paint):
11711         * rendering/RenderBox.cpp:
11712         (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
11713         * rendering/RenderLayer.cpp:
11714         (WebCore::RenderLayer::repaintBlockSelectionGaps):
11715
11716 2012-11-13  Patrick Gansterer  <paroga@webkit.org>
11717
11718         Port SimpleFontDataWin.cpp to WinCE
11719         https://bugs.webkit.org/show_bug.cgi?id=97889
11720
11721         Reviewed by Brent Fulgham.
11722
11723         Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too in a next step.
11724         Also cleaned up the include headers.
11725
11726         * platform/graphics/win/SimpleFontDataWin.cpp:
11727         (WebCore::SimpleFontData::initGDIFont):
11728         (WebCore::SimpleFontData::platformDestroy):
11729         (WebCore::SimpleFontData::boundsForGDIGlyph):
11730         (WebCore):
11731         (WebCore::SimpleFontData::widthForGDIGlyph):
11732
11733 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
11734
11735         Web Inspector: [Chromium] move spectrum.css into the standalone css files group.
11736
11737         Not reviewed: moved css file in gypi.
11738
11739         * WebCore.gypi:
11740
11741 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11742
11743         Unreviewed, rolling out r134434.
11744         http://trac.webkit.org/changeset/134434
11745         https://bugs.webkit.org/show_bug.cgi?id=102072
11746
11747         The test that was added asserts in loader.
11748
11749         * loader/FrameLoader.cpp:
11750         (WebCore::createWindow):
11751         * page/DOMWindow.cpp:
11752         (WebCore):
11753         (WebCore::DOMWindow::adjustWindowRect):
11754         (WebCore::DOMWindow::moveBy):
11755         (WebCore::DOMWindow::moveTo):
11756         (WebCore::DOMWindow::resizeBy):
11757         (WebCore::DOMWindow::resizeTo):
11758         (WebCore::DOMWindow::open):
11759         (WebCore::DOMWindow::showModalDialog):
11760         * page/DOMWindow.h:
11761         (DOMWindow):
11762
11763 2012-11-13  Dan Carney  <dcarney@google.com>
11764
11765         [V8] More efficient wrapper dispatch
11766         https://bugs.webkit.org/show_bug.cgi?id=102082
11767
11768         Reviewed by Adam Barth.
11769
11770         Dispatching a call to V8Whatever::wrap involved a chain
11771         of calls, each of which checked its wrapper cache.
11772         This refactor gives calls only 2 choices of functions to call:
11773         toV8 and toV8Object instead of wrap. wrap has been renamed to
11774         dispatchWrap and no longer contains cache checks.
11775         Additionally, classes which require a custom toV8 function
11776         have had all wrapping and caching calls removed, as they could
11777         not have been accessed.
11778
11779         No new tests. Sufficiently covered.
11780
11781         * Modules/indexeddb/IDBAny.idl:
11782         * Modules/indexeddb/IDBKey.idl:
11783         * WebCore.gypi:
11784         * bindings/scripts/CodeGeneratorV8.pm:
11785         (GenerateHeader):
11786         (GenerateNormalAttrGetter):
11787         (GenerateImplementation):
11788         (GenerateToV8Converters):
11789         * bindings/scripts/IDLAttributes.txt:
11790         * bindings/v8/SerializedScriptValue.cpp:
11791         * bindings/v8/custom/V8BlobCustom.cpp:
11792         (WebCore::V8Blob::dispatchWrapCustom):
11793         * bindings/v8/custom/V8CSSRuleCustom.cpp:
11794         (WebCore::V8CSSRule::dispatchWrapCustom):
11795         * bindings/v8/custom/V8CSSValueCustom.cpp:
11796         (WebCore::V8CSSValue::dispatchWrapCustom):
11797         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
11798         (WebCore::V8CanvasRenderingContext::dispatchWrapCustom):
11799         * bindings/v8/custom/V8DataViewCustom.cpp:
11800         (WebCore):
11801         (WebCore::V8DataView::dispatchWrapCustom):
11802         * bindings/v8/custom/V8DocumentCustom.cpp:
11803         (WebCore::V8Document::dispatchWrapCustom):
11804         * bindings/v8/custom/V8ElementCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8PerformanceEntryCustom.cpp.
11805         (WebCore):
11806         (WebCore::V8Element::dispatchWrapCustom):
11807         * bindings/v8/custom/V8EntryCustom.cpp:
11808         (WebCore::V8Entry::dispatchWrapCustom):
11809         * bindings/v8/custom/V8EntrySyncCustom.cpp:
11810         (WebCore::V8EntrySync::dispatchWrapCustom):
11811         * bindings/v8/custom/V8EventCustom.cpp:
11812         (WebCore):
11813         (WebCore::V8Event::dispatchWrapCustom):
11814         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
11815         (WebCore::V8HTMLCollection::dispatchWrapCustom):
11816         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
11817         (WebCore::V8HTMLDocument::dispatchWrapCustom):
11818         * bindings/v8/custom/V8HTMLElementCustom.cpp:
11819         (WebCore::V8HTMLElement::dispatchWrapCustom):
11820         * bindings/v8/custom/V8ImageDataCustom.cpp:
11821         (WebCore::V8ImageData::dispatchWrapCustom):
11822         * bindings/v8/custom/V8NodeCustom.cpp:
11823         (WebCore::V8Node::dispatchWrapCustom):
11824         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
11825         (WebCore::V8PerformanceEntry::dispatchWrapCustom):
11826         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
11827         (WebCore::V8SVGDocument::dispatchWrapCustom):
11828         * bindings/v8/custom/V8SVGElementCustom.cpp:
11829         (WebCore::V8SVGElement::dispatchWrapCustom):
11830         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
11831         (WebCore::V8SVGPathSeg::dispatchWrapCustom):
11832         * bindings/v8/custom/V8StyleSheetCustom.cpp:
11833         (WebCore::V8StyleSheet::dispatchWrapCustom):
11834         * dom/Element.idl:
11835         * dom/make_names.pl:
11836         (printWrapperFunctions):
11837         (printWrapperFactoryCppFile):
11838         (printWrapperFactoryHeaderFile):
11839         * html/MicroDataItemValue.idl:
11840         * inspector/ScriptProfile.idl:
11841         * inspector/ScriptProfileNode.idl:
11842         * page/DOMWindow.idl:
11843         * workers/WorkerContext.idl:
11844
11845 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11846
11847         Unreviewed, rolling out r134367.
11848         http://trac.webkit.org/changeset/134367
11849         https://bugs.webkit.org/show_bug.cgi?id=100738
11850
11851         Speculative rollout, could have cause Dromaeo setAttribute
11852         perf regression.
11853
11854         * dom/Element.cpp:
11855         (WebCore::Element::attributeChanged):
11856         (WebCore::checkNeedsStyleInvalidationForClassChange):
11857         (WebCore::Element::classAttributeChanged):
11858
11859 2012-11-13  Marja Hölttä  <marja@chromium.org>
11860
11861         Add initiator to CachedResourceRequest.
11862         https://bugs.webkit.org/show_bug.cgi?id=101935
11863
11864         Reviewed by Adam Barth.
11865
11866         Motivation: Chromium needs to know which elements request a
11867         resource (such as an image or a script) (bug 92761). In addition,
11868         for exposing resource timing information (bug 84883) we need to
11869         store the initiator, and this is the first step towards it.
11870
11871         No new tests: No visible change in behavior.
11872
11873         * CMakeLists.txt:
11874         * GNUmakefile.list.am:
11875         * Target.pri:
11876         * WebCore.gypi:
11877         * WebCore.vcproj/WebCore.vcproj:
11878         * WebCore.xcodeproj/project.pbxproj:
11879         * css/CSSCrossfadeValue.cpp:
11880         (WebCore::cachedImageForCSSValue):
11881         * css/CSSCursorImageValue.cpp:
11882         (WebCore::CSSCursorImageValue::cachedImage):
11883         * css/CSSFontFaceSrcValue.cpp:
11884         (WebCore::CSSFontFaceSrcValue::cachedFont):
11885         * css/CSSImageSetValue.cpp:
11886         (WebCore::CSSImageSetValue::cachedImageSet):
11887         * css/CSSImageValue.cpp:
11888         (WebCore::CSSImageValue::cachedImage):
11889         * css/CSSImageValue.h:
11890         (WebCore):
11891         (CSSImageValue):
11892         * css/StyleResolver.cpp:
11893         (WebCore::StyleResolver::loadPendingImage):
11894         * css/StyleRuleImport.cpp:
11895         (WebCore::StyleRuleImport::requestStyleSheet):
11896         * css/WebKitCSSSVGDocumentValue.cpp:
11897         (WebCore::WebKitCSSSVGDocumentValue::load):
11898         * css/WebKitCSSShaderValue.cpp:
11899         (WebCore::WebKitCSSShaderValue::cachedShader):
11900         * dom/ScriptElement.cpp:
11901         (WebCore::ScriptElement::requestScript):
11902         * html/HTMLLinkElement.cpp:
11903         (WebCore::HTMLLinkElement::process):
11904         * html/parser/CSSPreloadScanner.cpp:
11905         (WebCore::CSSPreloadScanner::emitRule):
11906         * html/parser/CSSPreloadScanner.h:
11907         (CSSPreloadScanner):
11908         * html/parser/HTMLPreloadScanner.cpp:
11909         (WebCore::PreloadTask::preload):
11910         * loader/ImageLoader.cpp:
11911         (WebCore::ImageLoader::updateFromElement):
11912         * loader/cache/CachedResourceLoader.cpp:
11913         (WebCore::CachedResourceLoader::requestImage):
11914         (WebCore::CachedResourceLoader::requestResource):
11915         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11916         (WebCore):
11917         (WebCore::CachedResourceLoader::preload):
11918         * loader/cache/CachedResourceLoader.h:
11919         (WebCore):
11920         (CachedResourceLoader):
11921         * loader/cache/CachedResourceRequest.cpp:
11922         (WebCore::CachedResourceRequest::CachedResourceRequest):
11923         (WebCore):
11924         (WebCore::CachedResourceRequest::~CachedResourceRequest):
11925         (WebCore::CachedResourceRequest::setInitiator):
11926         (WebCore::CachedResourceRequest::initiatorName):
11927         (WebCore::CachedResourceRequest::initiatorDocument):
11928         (WebCore::CachedResourceRequest::initiatorElement):
11929         * loader/cache/CachedResourceRequest.h:
11930         (WebCore):
11931         (WebCore::CachedResourceRequest::setOptions):
11932         (WebCore::CachedResourceRequest::defer):
11933         (WebCore::CachedResourceRequest::setDefer):
11934         (CachedResourceRequest):
11935         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11936         (WebCore):
11937         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
11938         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11939         (WebCore):
11940         (CachedResourceRequestInitiators):
11941         (WebCore::cachedResourceRequestInitiators):
11942         * loader/icon/IconLoader.cpp:
11943         (WebCore::IconLoader::startLoading):
11944         * platform/ThreadGlobalData.cpp:
11945         (WebCore::ThreadGlobalData::ThreadGlobalData):
11946         * platform/ThreadGlobalData.h:
11947         (WebCore):
11948         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
11949         (ThreadGlobalData):
11950         * svg/SVGFEImageElement.cpp:
11951         (WebCore::SVGFEImageElement::requestImageResource):
11952         * svg/SVGFontFaceUriElement.cpp:
11953         (WebCore::SVGFontFaceUriElement::loadFont):
11954         * svg/SVGUseElement.cpp:
11955         (WebCore::SVGUseElement::svgAttributeChanged):
11956
11957 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11958
11959         Unreviewed, rolling out r134345.
11960         http://trac.webkit.org/changeset/134345
11961         https://bugs.webkit.org/show_bug.cgi?id=102106
11962
11963         Incomplete support for NATIVE_TYPE_ERR in objc and other
11964         bindings (Requested by jsbell on #webkit).
11965
11966         * Modules/mediastream/MediaConstraintsImpl.cpp:
11967         (WebCore::MediaConstraintsImpl::create):
11968         * Modules/mediastream/MediaStreamTrackList.cpp:
11969         (WebCore::MediaStreamTrackList::add):
11970         (WebCore::MediaStreamTrackList::remove):
11971         * Modules/mediastream/RTCDataChannel.cpp:
11972         (WebCore::RTCDataChannel::setBinaryType):
11973         * Modules/mediastream/RTCIceCandidate.cpp:
11974         (WebCore::RTCIceCandidate::create):
11975         * Modules/mediastream/RTCPeerConnection.cpp:
11976         (WebCore::RTCPeerConnection::parseConfiguration):
11977         (WebCore::RTCPeerConnection::createOffer):
11978         (WebCore::RTCPeerConnection::createAnswer):
11979         (WebCore::RTCPeerConnection::setLocalDescription):
11980         (WebCore::RTCPeerConnection::setRemoteDescription):
11981         (WebCore::RTCPeerConnection::addIceCandidate):
11982         (WebCore::RTCPeerConnection::addStream):
11983         (WebCore::RTCPeerConnection::removeStream):
11984         * Modules/mediastream/RTCSessionDescription.cpp:
11985         (WebCore::RTCSessionDescription::create):
11986         (WebCore::RTCSessionDescription::setType):
11987         * bindings/js/CallbackFunction.cpp:
11988         (WebCore::checkFunctionOnlyCallback):
11989         * bindings/js/JSCustomXPathNSResolver.cpp:
11990         (WebCore::JSCustomXPathNSResolver::create):
11991         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
11992         (WebCore::JSHTMLOptionsCollection::add):
11993         * bindings/js/JSHTMLSelectElementCustom.cpp:
11994         (WebCore::selectIndexSetter):
11995         * bindings/js/JSMutationObserverCustom.cpp:
11996         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
11997         * bindings/js/JSSQLResultSetRowListCustom.cpp:
11998         (WebCore::JSSQLResultSetRowList::item):
11999         * bindings/js/JSSQLTransactionCustom.cpp:
12000         (WebCore::JSSQLTransaction::executeSql):
12001         * bindings/js/JSSQLTransactionSyncCustom.cpp:
12002         (WebCore::JSSQLTransactionSync::executeSql):
12003         * bindings/scripts/CodeGeneratorJS.pm:
12004         (GenerateParametersCheck):
12005         * bindings/scripts/CodeGeneratorObjC.pm:
12006         (GenerateImplementation):
12007         * bindings/scripts/CodeGeneratorV8.pm:
12008         (GenerateFunctionCallString):
12009         * bindings/v8/V8Callback.h:
12010         (WebCore::createFunctionOnlyCallback):
12011         * bindings/v8/V8Collection.cpp:
12012         (WebCore::toOptionsCollectionSetter):
12013         * bindings/v8/custom/V8DocumentCustom.cpp:
12014         (WebCore::V8Document::evaluateCallback):
12015         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
12016         (WebCore::V8HTMLOptionsCollection::addCallback):
12017         * bindings/v8/custom/V8MutationObserverCustom.cpp:
12018         (WebCore::V8MutationObserver::constructorCallback):
12019         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
12020         (WebCore::V8SQLTransaction::executeSqlCallback):
12021         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
12022         (WebCore::V8SQLTransactionSync::executeSqlCallback):
12023         * dom/DOMCoreException.idl:
12024         * html/HTMLElement.cpp:
12025         (WebCore::HTMLElement::insertAdjacentElement):
12026         * html/HTMLMediaElement.cpp:
12027         (WebCore::HTMLMediaElement::webkitAddKey):
12028         * html/HTMLOptionsCollection.cpp:
12029         (WebCore::HTMLOptionsCollection::add):
12030         * html/canvas/CanvasRenderingContext2D.cpp:
12031         (WebCore::CanvasRenderingContext2D::drawImage):
12032         (WebCore::CanvasRenderingContext2D::createPattern):
12033         (WebCore::CanvasRenderingContext2D::putImageData):
12034         (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
12035         * page/Crypto.cpp:
12036         (WebCore::Crypto::getRandomValues):
12037         * page/DOMSelection.cpp:
12038         (WebCore::DOMSelection::extend):
12039         * svg/properties/SVGTransformListPropertyTearOff.h:
12040         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
12041
12042 2012-11-13  Erik Arvidsson  <arv@chromium.org>
12043
12044         Update DOMException name: HierarchyRequestError
12045         https://bugs.webkit.org/show_bug.cgi?id=102092
12046
12047         Reviewed by Ojan Vafai.
12048
12049         Patch 3 of 25 to update DOMException name to match the spec and Firefox.
12050
12051         Updated existing tests.
12052
12053         * dom/DOMCoreException.cpp:
12054
12055 2012-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
12056
12057         Clean up use of adjustWindowRect
12058         https://bugs.webkit.org/show_bug.cgi?id=102072
12059
12060         Reviewed by Alexis Menard.
12061
12062         Tested by fast/dom/Window/open-window-min-size.html
12063
12064         * loader/FrameLoader.cpp:
12065         (WebCore::createWindow):
12066
12067             Validate the window size here so that it is not just done for
12068             .open, but also for .showModalDialog. This is compatible with
12069             other browsers such as IE and Firefox (though IE > 6, enforces
12070             a minimum width of 250 instead of 100 as Firefox and us.)
12071
12072         * page/DOMWindow.cpp:
12073         (WebCore):
12074         (WebCore::DOMWindow::adjustWindowRect):
12075
12076             Make it a static method which only takes page. It was never
12077             called from anywhere without a valid page, so the page check
12078             has been turned into an assert, and two of the arguments have
12079             been removed as they can be accessed via the page.
12080
12081         (WebCore::DOMWindow::moveBy):
12082         (WebCore::DOMWindow::moveTo):
12083         (WebCore::DOMWindow::resizeBy):
12084         (WebCore::DOMWindow::resizeTo):
12085
12086             Update use of adjustWindowRect.
12087
12088         (WebCore::DOMWindow::open):
12089
12090             Avoid modifying the WindowFeatures as the WebCore::createWindow
12091             validates and adjusts the arguments.
12092
12093         * page/DOMWindow.h:
12094         (DOMWindow):
12095
12096 2012-11-13  Bem Jones-Bey  <bjonesbe@adobe.com>
12097
12098         [CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
12099         https://bugs.webkit.org/show_bug.cgi?id=97736
12100
12101         Reviewed by Andreas Kling.
12102
12103         Rename properties to match updated spec.
12104
12105         Tests: fast/exclusions/shape-margin-parsing.html
12106                fast/exclusions/shape-padding-parsing.html
12107
12108         * css/CSSComputedStyleDeclaration.cpp:
12109         (WebCore):
12110         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
12111         * css/CSSParser.cpp:
12112         (WebCore::isSimpleLengthPropertyID):
12113         (WebCore::CSSParser::parseValue):
12114         * css/CSSProperty.cpp:
12115         (WebCore::CSSProperty::isInheritedProperty):
12116         * css/CSSPropertyNames.in:
12117         * css/StyleBuilder.cpp:
12118         (WebCore::StyleBuilder::StyleBuilder):
12119         * css/StylePropertySet.cpp:
12120         (WebCore::StylePropertySet::asText):
12121         * css/StylePropertyShorthand.cpp:
12122         (WebCore::webkitWrapShorthand):
12123         * css/StyleResolver.cpp:
12124         (WebCore::StyleResolver::applyProperty):
12125         * rendering/style/RenderStyle.cpp:
12126         (WebCore::RenderStyle::diff):
12127         * rendering/style/RenderStyle.h:
12128         * rendering/style/StyleRareNonInheritedData.cpp:
12129         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
12130         (WebCore::StyleRareNonInheritedData::operator==):
12131         * rendering/style/StyleRareNonInheritedData.h:
12132         (StyleRareNonInheritedData):
12133
12134 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12135
12136         Unreviewed, rolling out r134418.
12137         http://trac.webkit.org/changeset/134418
12138         https://bugs.webkit.org/show_bug.cgi?id=101903
12139
12140         The newly added test is crashing on cr-win.
12141
12142         * dom/ElementShadow.cpp:
12143         * dom/ElementShadow.h:
12144         * html/HTMLInputElement.cpp:
12145         (WebCore::HTMLInputElement::updateType):
12146         (WebCore::HTMLInputElement::setIndeterminate):
12147         * html/HTMLProgressElement.cpp:
12148         (WebCore::HTMLProgressElement::didElementStateChange):
12149         * html/shadow/SelectRuleFeatureSet.cpp:
12150         (WebCore::SelectRuleFeatureSet::add):
12151         (WebCore::SelectRuleFeatureSet::clear):
12152         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12153         * html/shadow/SelectRuleFeatureSet.h:
12154         (SelectRuleFeatureSet):
12155
12156 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12157
12158         Unreviewed, rolling out r134391.
12159         http://trac.webkit.org/changeset/134391
12160         https://bugs.webkit.org/show_bug.cgi?id=99660
12161
12162         Speculative rollout, trying to fix browser_tests failure.
12163
12164         * English.lproj/localizedStrings.js:
12165         * inspector/Inspector.json:
12166         * inspector/InspectorClient.h:
12167         * inspector/InspectorPageAgent.cpp:
12168         (PageAgentState):
12169         (WebCore::InspectorPageAgent::enable):
12170         (WebCore::InspectorPageAgent::disable):
12171         * inspector/InspectorPageAgent.h:
12172         * inspector/front-end/Settings.js:
12173         * inspector/front-end/SettingsScreen.js:
12174         (WebInspector.GenericSettingsTab):
12175         * inspector/front-end/inspector.js:
12176         (WebInspector.doLoadedDone):
12177
12178 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
12179
12180         Unreviewed, rolling out r134205.
12181         http://trac.webkit.org/changeset/134205
12182         https://bugs.webkit.org/show_bug.cgi?id=102093
12183
12184         Broke webkit-flow-inlines-dynamic.html on several ports
12185         (Requested by mihnea on #webkit).
12186
12187         * css/StyleResolver.cpp:
12188         (WebCore::StyleResolver::isValidRegionStyleProperty):
12189         * rendering/InlineBox.cpp:
12190         * rendering/InlineBox.h:
12191         (WebCore):
12192         (InlineBox):
12193         * rendering/InlineFlowBox.cpp:
12194         (WebCore::InlineFlowBox::addToLine):
12195         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
12196         * rendering/RenderRegion.cpp:
12197         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
12198         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
12199         (WebCore::RenderRegion::computeStyleInRegion):
12200         (WebCore::RenderRegion::computeChildrenStyleInRegion):
12201         (WebCore::RenderRegion::setObjectStyleInRegion):
12202         (WebCore::RenderRegion::clearObjectStyleInRegion):
12203         * rendering/RenderRegion.h:
12204         (RenderRegion):
12205         (ObjectRegionStyleInfo):
12206
12207 2012-11-13  Andreas Kling  <kling@webkit.org>
12208
12209         Remove the non-const overload of ElementAttributeData::inlineStyle().
12210
12211         Rubber-stamped by Anders Koivisto.
12212
12213         No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.
12214
12215         * dom/ElementAttributeData.h:
12216
12217 2012-11-13  Keishi Hattori  <keishi@webkit.org>
12218
12219         [Chromium] Enable input type month/week
12220         https://bugs.webkit.org/show_bug.cgi?id=102042
12221
12222         Reviewed by Kent Tamura.
12223
12224         Enable input type month/week for Chromium.
12225
12226         No new tests. Tests will be added later in Bug 102045 and Bug 102046.
12227
12228         * bindings/generic/RuntimeEnabledFeatures.cpp:
12229         (WebCore):
12230
12231 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12232
12233         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
12234         https://bugs.webkit.org/show_bug.cgi?id=101906
12235
12236         Reviewed by Dimitri Glazkov.
12237
12238         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
12239         setPseudo()/pseudo() instead.
12240
12241         No new tests, covered by existing tests.
12242
12243         * html/HTMLMeterElement.cpp:
12244         (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
12245         it anywhere, we have to set it into pseudo attribute here.
12246         (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
12247         * html/shadow/MeterShadowElement.cpp:
12248         (WebCore::MeterInnerElement::MeterInnerElement):
12249         (WebCore::MeterValueElement::valuePseudoId):
12250         * html/shadow/MeterShadowElement.h:
12251         (MeterInnerElement):
12252         (WebCore::MeterBarElement::MeterBarElement):
12253         (MeterBarElement):
12254         (WebCore::MeterValueElement::MeterValueElement):
12255         (WebCore::MeterValueElement::updatePseudo):
12256         (MeterValueElement):
12257
12258 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12259
12260         Changing pseudoClass (:indeterminate) should cause distribution
12261         https://bugs.webkit.org/show_bug.cgi?id=101903
12262
12263         Reviewed by Dimitri Glazkov.
12264
12265         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
12266         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
12267
12268         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
12269         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
12270
12271         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
12272                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
12273
12274         * dom/ElementShadow.cpp:
12275         (WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
12276         have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
12277         here.
12278         (WebCore):
12279         * dom/ElementShadow.h:
12280         (WebCore):
12281         * html/HTMLInputElement.cpp:
12282         (WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
12283         (WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
12284         * html/HTMLProgressElement.cpp:
12285         (WebCore::HTMLProgressElement::didElementStateChange):
12286         * html/shadow/SelectRuleFeatureSet.cpp:
12287         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
12288         (WebCore::SelectRuleFeatureSet::add):
12289         (WebCore::SelectRuleFeatureSet::clear):
12290         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12291         * html/shadow/SelectRuleFeatureSet.h:
12292         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
12293         (SelectRuleFeatureSet):
12294
12295 2012-11-13  Andreas Kling  <kling@webkit.org>
12296
12297         Exploit ElementAttributeData sharing in Node.cloneNode.
12298         <http://webkit.org/b/101374>
12299
12300         Reviewed by Anders Carlsson.
12301
12302         Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
12303         If the source data is immutable, simply ref it from the new node at virtually no cost.
12304
12305         If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
12306         Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
12307         and memory in the long run.
12308
12309         ~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.
12310
12311         * dom/Element.cpp:
12312         (WebCore::Element::cloneAttributesFromElement):
12313
12314             Move attribute data cloning logic from ElementAttributeData to Element.
12315
12316         * dom/ElementAttributeData.cpp:
12317         (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
12318         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
12319         (WebCore::ElementAttributeData::ElementAttributeData):
12320         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
12321         (WebCore::ElementAttributeData::makeMutableCopy):
12322         (WebCore::ElementAttributeData::makeImmutableCopy):
12323         * dom/ElementAttributeData.h:
12324         (ElementAttributeData):
12325         (ImmutableElementAttributeData):
12326         (MutableElementAttributeData):
12327
12328             Add facilities for converting a mutable ElementAttributeData to an immutable one.
12329             Share some code in the common base class constructor.
12330
12331 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12332
12333         Unreviewed. Build fix of V8 bindings.
12334
12335         * bindings/v8/V8DOMWrapper.cpp:
12336         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12337
12338 2012-11-13  Andrey Adaikin  <aandrey@chromium.org>
12339
12340         Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
12341         https://bugs.webkit.org/show_bug.cgi?id=102071
12342
12343         Reviewed by Pavel Feldman.
12344
12345         * inspector/front-end/CanvasProfileView.js:
12346         (WebInspector.CanvasProfileView):
12347         (WebInspector.CanvasProfileView.prototype.dispose):
12348         (WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
12349         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
12350         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
12351         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
12352         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
12353         (WebInspector.CanvasProfileView.prototype._createCallNode):
12354         * inspector/front-end/canvasProfiler.css:
12355         (#canvas-replay-image.wait):
12356
12357 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
12358
12359         Web Inspector: Settings screen: some panel shortcuts are missing
12360         https://bugs.webkit.org/show_bug.cgi?id=101026
12361
12362         Reviewed by Pavel Feldman.
12363
12364         Panels, that have not been loaded by the time shortcuts view was
12365         initialized, had no chance to register shortcuts.
12366
12367         Solution: move shortcut registration (for shortcuts screen) to panel
12368         descriptors.
12369
12370         More changes: add JsDoc annotations to ShortcutScreen and change "key"
12371         parameter type for raw string to key descriptor object.
12372
12373         * WebCore.gypi: Added TimelinePanelDescriptor.js file.
12374         * WebCore.vcproj/WebCore.vcproj: Ditto.
12375         * inspector/compile-front-end.py: Ditto.
12376         * inspector/front-end/WebKit.qrc: Ditto.
12377         * inspector/front-end/inspector.html: Ditto.
12378         * inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
12379         * inspector/front-end/GoToLineDialog.js: Ditto.
12380         * inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
12381         shortcuts registration.
12382         * inspector/front-end/ElementsPanel.js: Ditto.
12383         * inspector/front-end/ScriptsPanel.js: Ditto.
12384         * inspector/front-end/StylesSidebarPane.js: Ditto.
12385         * inspector/front-end/TimelinePanel.js: Ditto.
12386         * inspector/front-end/ConsoleView.js: Changes order of lines to increase
12387         readability.
12388         * inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
12389         shortcuts registration and key descriptor constants.
12390         * inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
12391         * inspector/front-end/TimelinePanelDescriptor.js: Ditto.
12392         * inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
12393         "registerShortcuts" method accept array of key descriptors.
12394         (WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
12395         * inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
12396         type from string to key descriptor.
12397         * inspector/front-end/inspector.js: Register shortcuts using
12398         panel descriptors.
12399         (WebInspector._panelDescriptors): Removed duplicate line.
12400
12401 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12402
12403         Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
12404         https://bugs.webkit.org/show_bug.cgi?id=102060
12405
12406         Reviewed by Zoltan Herczeg.
12407
12408         Adding more NEONized packing functions to GraphicsContext3DNEON.h.
12409         These functions are three times faster with this intrinsics optimizations.
12410
12411         * platform/graphics/GraphicsContext3D.cpp:
12412         (WebCore):
12413         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
12414         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
12415         (ARM):
12416         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
12417         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
12418         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):
12419
12420 2012-11-13  Csaba Osztrogonác  <ossy@webkit.org>
12421
12422         [Qt] Enable Mutation observer
12423         https://bugs.webkit.org/show_bug.cgi?id=102066
12424
12425         Reviewed by Pavel Feldman.
12426
12427         * DerivedSources.pri: Add missing IDL files.
12428
12429 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12430
12431         [V8] Make isValidDOMObject() static
12432         https://bugs.webkit.org/show_bug.cgi?id=101914
12433
12434         Reviewed by Adam Barth.
12435
12436         isValidDOMObject() is used by DOMWrapper.cpp only.
12437
12438         No tests. No change in behavior.
12439
12440         * bindings/v8/V8DOMWrapper.cpp:
12441         (WebCore::isValidDOMObject):
12442         (WebCore):
12443         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12444         * bindings/v8/V8DOMWrapper.h:
12445         (V8DOMWrapper):
12446
12447 2012-11-13  Mihnea Ovidenie  <mihnea@adobe.com>
12448
12449         [CSSRegions] Incorrect computed height for content with region-break-before
12450         https://bugs.webkit.org/show_bug.cgi?id=101862
12451
12452         Reviewed by Julien Chaffraix.
12453
12454         When processing the region breaks for auto-height regions, we skipped the case
12455         when the region-break-before occurred in the first region in the chain which was
12456         an auto-height region. Because of that, the region computed height was not 0
12457         as it was supposed to be, but rather LayoutUnit::max() / 2.
12458
12459         Test: fast/regions/autoheight-breakbefore-wrongheight.html
12460
12461         * rendering/RenderFlowThread.cpp:
12462         (WebCore::RenderFlowThread::addForcedRegionBreak):
12463         Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
12464         and the first region in chain is an auto-height region.
12465         * rendering/RenderRegion.cpp:
12466         (WebCore::RenderRegion::updateLogicalHeight):
12467         Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.
12468
12469 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12470
12471         Memory instrumentation: remove reportMemoryUsage method from ImageObserver
12472         https://bugs.webkit.org/show_bug.cgi?id=102058
12473
12474         Reviewed by Pavel Feldman.
12475
12476         * bindings/v8/V8PerIsolateData.cpp:
12477         (WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
12478         each element of the vector as generic vector instrumentation will take care of it.
12479         * platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
12480         we don't count its by the pointer to the base class which may differ from the actual
12481         object address.
12482         (WebCore::Image::reportMemoryUsage):
12483         * platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
12484         (ImageObserver):
12485
12486 2012-11-13  Eberhard Graether  <egraether@google.com>
12487
12488         checkbox to toggle FPS counter in the inspector's settings
12489         https://bugs.webkit.org/show_bug.cgi?id=99660
12490
12491         Reviewed by Pavel Feldman.
12492
12493         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
12494
12495         No new tests.
12496
12497         * English.lproj/localizedStrings.js:
12498         * inspector/Inspector.json:
12499         * inspector/InspectorClient.h:
12500         (WebCore::InspectorClient::canShowFPSCounter):
12501         (WebCore::InspectorClient::setShowFPSCounter):
12502         (InspectorClient):
12503         * inspector/InspectorPageAgent.cpp:
12504         (PageAgentState):
12505         (WebCore::InspectorPageAgent::enable):
12506         (WebCore::InspectorPageAgent::disable):
12507         (WebCore::InspectorPageAgent::canShowFPSCounter):
12508         (WebCore):
12509         (WebCore::InspectorPageAgent::setShowFPSCounter):
12510         * inspector/InspectorPageAgent.h:
12511         * inspector/front-end/Settings.js:
12512         * inspector/front-end/SettingsScreen.js:
12513         (WebInspector.GenericSettingsTab):
12514         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
12515         * inspector/front-end/inspector.js:
12516         (WebInspector.doLoadedDone):
12517
12518 2012-11-12  Kent Tamura  <tkent@chromium.org>
12519
12520         Unable to set valid time value to input[type=time] with user interaction in some cases
12521         https://bugs.webkit.org/show_bug.cgi?id=102048
12522
12523         Reviewed by Kentaro Hara.
12524
12525         The implementations of shouldMillisecondFieldReadOnly,
12526         shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
12527         incorrect. We need to check if a part of the minimum value matches to
12528         the corresponding part of the current value.
12529
12530         Also, we had better check hour field editability.
12531
12532         Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
12533
12534         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
12535         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
12536         Fix a problem that hh:mm:00.sss didn't create a seconds field.
12537         * html/shadow/DateTimeEditElement.cpp:
12538         (DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
12539         (WebCore::DateTimeEditBuilder::visitField):
12540         Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
12541         (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
12542         Added. An hour field should be read-only if the step value is a multiple
12543         of a day and the hour part of the minimum value matches to the hour part
12544         of the value.
12545         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
12546         A millisecond field should be read-only if the step value is a multiple
12547         of one second and the millisecond part of the minimum value matches to
12548         the millisecond part of the value.
12549         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
12550         A minute field should be read-only if the step value is a multiple of
12551         one hour and the minute part of the minimum value matches to the minute
12552         part of the value.
12553         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
12554         A second field should be read-only if the step value is a multiple of
12555         one minute and the second part of the minimum value matches to the second
12556         part of the value.
12557         * platform/Decimal.cpp:
12558         (WebCore::Decimal::remainder):
12559         Fix a bug in case that the fractional part of quotient is >= 0.5. Also
12560         make this matches to C99, C++11, ECMAScript behavior.
12561
12562 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12563
12564         Memory instrumentation: MemoryBlock name should not include full path to the block
12565         https://bugs.webkit.org/show_bug.cgi?id=102055
12566
12567         Reviewed by Pavel Feldman.
12568
12569         * inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
12570         intead of fully qualified name.
12571
12572 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12573
12574         Web Inspector: get rid of enter/exitTextChangeMode in the editor
12575         https://bugs.webkit.org/show_bug.cgi?id=101845
12576
12577         Reviewed by Vsevolod Vlasov.
12578
12579         They seem to do nothing.
12580
12581         * inspector/front-end/DefaultTextEditor.js:
12582         (WebInspector.DefaultTextEditor.prototype._textChanged):
12583         (WebInspector.DefaultTextEditor.prototype.editRange):
12584         (WebInspector.TextEditorMainPanel):
12585         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
12586         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12587         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12588         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12589         * inspector/front-end/TextEditorModel.js:
12590         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12591
12592 2012-11-13  Tommy Widenflycht  <tommyw@google.com>
12593
12594         Remove the custom WebSocket::send for both V8 and JSC
12595         https://bugs.webkit.org/show_bug.cgi?id=101936
12596
12597         Reviewed by Kentaro Hara.
12598
12599         This patch removes the custom WebSocket::send since it isn't needed anymore.
12600
12601         Patch covered by existing tests.
12602
12603         * Modules/websockets/WebSocket.idl:
12604         * UseV8.cmake:
12605         * WebCore.gypi:
12606         * bindings/js/JSWebSocketCustom.cpp:
12607         * bindings/v8/custom/V8WebSocketCustom.cpp: Removed.
12608
12609 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12610
12611         Web Inspector: move indentation logic into TextEditorModel
12612         https://bugs.webkit.org/show_bug.cgi?id=101842
12613
12614         Reviewed by Vsevolod Vlasov.
12615
12616         I'd like to move as much headless logic into the TextEditorModel as possible.
12617         Drive by: removed some dead code, converted getter into function and moved undo
12618         mark state into the model as well.
12619
12620         * inspector/front-end/DefaultTextEditor.js:
12621         (WebInspector.DefaultTextEditor.prototype.editRange):
12622         (WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
12623         (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
12624         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12625         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12626         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12627         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
12628         (WebInspector.TextEditorMainChunk):
12629         (WebInspector.TextEditorMainChunk.prototype.isDecorated):
12630         (WebInspector.TextEditorMainChunk.prototype.set expanded):
12631         * inspector/front-end/TextEditorModel.js:
12632         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12633
12634 2012-11-13  Hayato Ito  <hayato@chromium.org>
12635
12636         Unreviewed attempt to fix the chromium mac-build after r134348.
12637
12638         * platform/graphics/mac/FontMac.mm:
12639         (WebCore::Font::drawGlyphs):
12640         * platform/mac/WebCoreSystemInterface.h:
12641         * platform/mac/WebCoreSystemInterface.mm:
12642
12643 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12644
12645         Web Inspector: migrate text editor to mutation observers
12646         https://bugs.webkit.org/show_bug.cgi?id=101841
12647
12648         Reviewed by Vsevolod Vlasov.
12649
12650         Otherwise, we miss notifications on the removed lines.
12651
12652         * inspector/front-end/DefaultTextEditor.js:
12653         (WebInspector.DefaultTextEditor.prototype.wasShown):
12654         (WebInspector.DefaultTextEditor.prototype.willHide):
12655         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
12656         (WebInspector.TextEditorMainPanel):
12657         (WebInspector.TextEditorMainPanel.prototype._wasShown):
12658         (WebInspector.TextEditorMainPanel.prototype._willHide):
12659         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
12660         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
12661         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
12662         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
12663         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
12664         (WebInspector.TextEditorMainPanel.prototype._paintLine):
12665         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
12666         (WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
12667         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
12668         (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
12669         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12670         * inspector/front-end/externs.js:
12671         (WebKitMutation):
12672         (WebKitMutationObserver.prototype.observe):
12673         (WebKitMutationObserver.prototype.disconnect):
12674         * inspector/front-end/textEditor.css:
12675         (.debug-fadeout):
12676         (@-webkit-keyframes debug-fadeout):
12677         (to):
12678
12679 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12680
12681         Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
12682         https://bugs.webkit.org/show_bug.cgi?id=101473
12683
12684         Reviewed by Zoltan Herczeg.
12685
12686         With NEON intrinsics the packing/unpacking functions can be optimized well.
12687         This particular function is about 3 times faster with ARM NEON. On top level tests
12688         the speed up was 1.18x.
12689
12690         * CMakeLists.txt:
12691         * GNUmakefile.am:
12692         * GNUmakefile.list.am:
12693         * Target.pri:
12694         * WebCore.gyp/WebCore.gyp:
12695         * WebCore.gypi:
12696         * WebCore.pri:
12697         * WebCore.xcodeproj/project.pbxproj:
12698         * platform/graphics/GraphicsContext3D.cpp:
12699         (WebCore):
12700         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
12701         (WebCore):
12702         (ARM):
12703         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
12704         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):
12705
12706 2012-11-13  Takashi Sakamoto  <tasak@google.com>
12707
12708         Crash when replacing parts of text inputs with content: url(...)
12709         https://bugs.webkit.org/show_bug.cgi?id=101133
12710
12711         Reviewed by Kent Tamura.
12712
12713         Disable directly setting content of elements in an input element's
12714         shadow dom tree, because the setting breaks input element's behavior.
12715
12716         Tests: fast/forms/number/number-content-url-crash.html
12717                fast/forms/search/search-content-url-crash.html
12718
12719         * css/html.css:
12720         (input::-webkit-textfield-decoration-container):
12721         Use important to disable overriding an input element's content
12722         property.
12723         * html/TextFieldInputType.cpp:
12724         (WebCore::TextFieldInputType::attach):
12725         Added ASSERTION. No content should be applied to
12726         input::-webkit-textfield-decoration-container.
12727
12728 2012-11-12  Huang Dongsung  <luxtella@company100.net>
12729
12730         [Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
12731         https://bugs.webkit.org/show_bug.cgi?id=101918
12732
12733         Reviewed by Noam Rosenthal.
12734
12735         Remove TiledBackingStore::rect(), because it is not used anymore.
12736
12737         * platform/graphics/TiledBackingStore.h:
12738         (TiledBackingStore):
12739
12740 2012-11-12  Adam Barth  <abarth@webkit.org>
12741
12742         [V8] We should be able to recover the V8DOMWindowShell more quickly
12743         https://bugs.webkit.org/show_bug.cgi?id=102020
12744
12745         Reviewed by Kentaro Hara.
12746
12747         For isolated worlds, we used to store the V8DOMWindowShell as an
12748         internal field of the inner DOM window. This patch moves the pointer to
12749         an internal field of the v8::Context, which saves us the work of
12750         looking up the inner DOM window.
12751
12752         Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
12753         because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
12754         the V8PerContextData when we detach the V8DOMWindowShell from the
12755         frame.)
12756
12757         * bindings/scripts/CodeGeneratorV8.pm:
12758         (GetInternalFields):
12759         * bindings/v8/V8DOMWindowShell.cpp:
12760         (WebCore::V8DOMWindowShell::initializeIfNeeded):
12761         * bindings/v8/V8DOMWindowShell.h:
12762         (WebCore::V8DOMWindowShell::getEntered):
12763         * bindings/v8/V8PerContextData.h:
12764
12765 2012-11-12  Kentaro Hara  <haraken@chromium.org>
12766
12767         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
12768         https://bugs.webkit.org/show_bug.cgi?id=101054
12769
12770         Reviewed by Adam Barth.
12771
12772         I'm investigating a Chromium crash bug:
12773         http://code.google.com/p/chromium/issues/detail?id=155942
12774
12775         I've not yet identified the root cause (because I can't reproduce
12776         the crash), but it looks like we are storing NULL pointers to
12777         V8 internal fields. Just in case, we can add an ASSERT() to
12778         guarantee that NULL pointers are never stored. (Also I'm hoping
12779         that this ASSERT() will give me more debug information.)
12780
12781         No tests. No change in behavior.
12782
12783         * bindings/v8/V8DOMWrapper.h:
12784         (WebCore::V8DOMWrapper::setDOMWrapper):
12785
12786 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
12787
12788         Changing id, className, or attribute should invalidate distribution
12789         https://bugs.webkit.org/show_bug.cgi?id=100738
12790
12791         Reviewed by Dimitri Glazkov.
12792
12793         When id, className, or attribute is changed, we might have to invalidate distribution.
12794         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
12795         and invalidate distribution only if necessary.
12796
12797         When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
12798         So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
12799
12800         Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
12801         to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.
12802
12803         DOM/ModifyAttribute.html
12804         Before this patch:
12805                 median  stdev  min      max    [ms]
12806           1st   115.62   0.67  114.75   117.00
12807           2nd   115.08   1.13  113.25   117.58
12808           3rd   114.75   1.16  113.42   117.83
12809
12810         After this patch:
12811                 median  stdev  min      max    [ms]
12812           1st   102.55   0.95  101.25   104.50
12813           2nd   103.10   0.86  102.20   100.95
12814           3rd   103.30   1.05  102.10   106.65
12815
12816         Tests: fast/dom/shadow/distribution-attribute-modified.html
12817                fast/dom/shadow/distribution-className-modified.html
12818                fast/dom/shadow/distribution-id-modified.html
12819                fast/dom/shadow/reprojection-attribute-modified.html
12820                fast/dom/shadow/reprojection-className-modified.html
12821                fast/dom/shadow/reprojection-id-modified.html
12822
12823         * dom/Element.cpp:
12824         (WebCore::Element::attributeChanged):
12825         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
12826         (HasSelectorForClassStyleFunctor):
12827         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
12828         (WebCore):
12829         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
12830         (HasSelectorForClassDistributionFunctor):
12831         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
12832         (WebCore::checkFunctorForClassChange):
12833         (WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
12834         (WebCore::checkNeedsDistributionInvalidationForClassChange):
12835         (WebCore::Element::classAttributeChanged):
12836
12837 2012-11-12  Joe Mason  <jmason@rim.com>
12838
12839         [BlackBerry] NetworkJob should not check if data is received with HEAD
12840         https://bugs.webkit.org/show_bug.cgi?id=102034
12841
12842         Reviewed by George Staikos.
12843
12844         Internal PR: 241391
12845
12846         Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
12847         have no data.
12848
12849         Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html
12850
12851         * platform/network/blackberry/NetworkJob.cpp:
12852         (WebCore::NetworkJob::NetworkJob):
12853         (WebCore::NetworkJob::initialize):
12854         (WebCore::NetworkJob::shouldNotifyClientFailed):
12855         * platform/network/blackberry/NetworkJob.h:
12856         (NetworkJob):
12857
12858 2012-11-12  Adam Barth  <abarth@webkit.org>
12859
12860         [V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
12861         https://bugs.webkit.org/show_bug.cgi?id=102015
12862
12863         Reviewed by Kentaro Hara.
12864
12865         Previously, Nodes had a special path through
12866         V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
12867         could find the V8PerContextData quickly. Now that we can get the
12868         V8PerContextData from the v8::Context quickly, we can move Nodes to the
12869         general case. The net consequence is that creation of all DOM objects
12870         should be as fast as Nodes are.
12871
12872         * bindings/scripts/CodeGeneratorV8.pm:
12873         (GenerateToV8Converters):
12874         * bindings/scripts/test/V8/V8Float64Array.cpp:
12875         (WebCore::V8Float64Array::wrapSlow):
12876         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
12877         (WebCore::V8TestActiveDOMObject::wrapSlow):
12878         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
12879         (WebCore::V8TestCustomNamedGetter::wrapSlow):
12880         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
12881         (WebCore::V8TestEventConstructor::wrapSlow):
12882         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
12883         (WebCore::V8TestEventTarget::wrapSlow):
12884         * bindings/scripts/test/V8/V8TestException.cpp:
12885         (WebCore::V8TestException::wrapSlow):
12886         * bindings/scripts/test/V8/V8TestInterface.cpp:
12887         (WebCore::V8TestInterface::wrapSlow):
12888         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
12889         (WebCore::V8TestMediaQueryListListener::wrapSlow):
12890         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
12891         (WebCore::V8TestNamedConstructor::wrapSlow):
12892         * bindings/scripts/test/V8/V8TestNode.cpp:
12893         (WebCore::V8TestNode::wrapSlow):
12894         * bindings/scripts/test/V8/V8TestObj.cpp:
12895         (WebCore::V8TestObj::wrapSlow):
12896         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
12897         (WebCore::V8TestOverloadedConstructors::wrapSlow):
12898         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
12899         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
12900         * bindings/v8/V8Binding.cpp:
12901         * bindings/v8/V8Binding.h:
12902         (WebCore):
12903         * bindings/v8/V8DOMWrapper.cpp:
12904         (WebCore::V8DOMWrapper::instantiateV8Object):
12905         * bindings/v8/V8DOMWrapper.h:
12906         (V8DOMWrapper):
12907
12908 2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
12909
12910         Some CSS properties are not handled on StyleResolver::applyProperty
12911         https://bugs.webkit.org/show_bug.cgi?id=102027
12912
12913         Reviewed by Gyuyoung Kim.
12914
12915         The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
12916         need to be handled on StyleResolver::applyProperty.
12917
12918         * css/StyleResolver.cpp:
12919         (WebCore::StyleResolver::applyProperty):
12920
12921 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12922
12923         Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
12924         https://bugs.webkit.org/show_bug.cgi?id=102031
12925
12926         Reviewed by Beth Dakin.
12927
12928         RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
12929         and calculateLayerBounds() multiple times for painting a single layer.
12930         
12931         Keep track of whether we've computed the root-relative bounds and do it on demand.
12932         Compute the offset relative to rootLayer once, and pass it around as an optional parameter
12933         to functions that need it.
12934
12935         * rendering/RenderLayer.cpp:
12936         (WebCore::RenderLayer::paintLayerContents):
12937         (WebCore::RenderLayer::hitTestLayer):
12938         (WebCore::RenderLayer::calculateRects):
12939         (WebCore::RenderLayer::intersectsDamageRect):
12940         (WebCore::RenderLayer::boundingBox):
12941         (WebCore::RenderLayer::calculateLayerBounds):
12942         * rendering/RenderLayer.h:
12943         * rendering/RenderLayerCompositor.cpp:
12944         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12945
12946 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12947
12948         Change calculateLayerBounds() from a static function to a member function
12949         https://bugs.webkit.org/show_bug.cgi?id=102022
12950
12951         Reviewed by Beth Dakin.
12952
12953         calculateLayerBounds() has grown into a substantial function after
12954         starting live as a little utility function, so make it a member function
12955         of RenderLayer, and adjust callers accordingly.
12956
12957         * rendering/RenderLayer.cpp:
12958         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
12959         (WebCore::RenderLayer::paintLayerContents):
12960         (WebCore::RenderLayer::calculateLayerBounds):
12961         * rendering/RenderLayer.h:
12962         * rendering/RenderLayerCompositor.cpp:
12963         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12964
12965 2012-11-12  Alexei Filippov  <alph@chromium.org>
12966
12967         Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
12968         https://bugs.webkit.org/show_bug.cgi?id=101601
12969
12970         Reviewed by Yury Semikhatsky.
12971
12972         * English.lproj/localizedStrings.js:
12973         * inspector/front-end/NativeMemorySnapshotView.js:
12974         * inspector/front-end/Settings.js:
12975         * inspector/front-end/SettingsScreen.js:
12976         (WebInspector.GenericSettingsTab):
12977
12978 2012-11-10  Dirk Schulze  <krit@webkit.org>
12979
12980         BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
12981         https://bugs.webkit.org/show_bug.cgi?id=101854
12982
12983         Reviewed by Andreas Kling.
12984
12985         The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
12986         blend with themselves. This patch introduces simple interpolation of BasicShapes for
12987         the -webkit-clip-path property.
12988
12989         Test: css3/masking/clip-path-animation.html
12990
12991         * page/animation/CSSPropertyAnimation.cpp:
12992         (WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
12993             It skips blending on <clipPath> references, polygons and if the shapes are not of
12994             the same type.
12995         (WebCore):
12996         (PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
12997         (WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
12998         (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
12999             properties.
13000         * rendering/style/BasicShapes.cpp:
13001             The blending is done by each shape itself. This is similar to FilterOperations or
13002             TransformOperations.
13003         (WebCore::BasicShapeRectangle::blend):
13004         (WebCore):
13005         (WebCore::BasicShapeCircle::blend):
13006         (WebCore::BasicShapeEllipse::blend):
13007         (WebCore::BasicShapePolygon::blend):
13008         * rendering/style/BasicShapes.h:
13009             Added new blending functions to header.
13010         (BasicShape):
13011         (BasicShapeRectangle):
13012         (BasicShapeCircle):
13013         (BasicShapeEllipse):
13014         (BasicShapePolygon):
13015
13016 2012-11-12  Adam Barth  <abarth@webkit.org>
13017
13018         [V8] We should be able to get V8PerContextData from a v8::Context more quickly
13019         https://bugs.webkit.org/show_bug.cgi?id=102008
13020
13021         Reviewed by Ojan Vafai.
13022
13023         This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
13024         API to get the V8PerContextData associated with a v8::Context much more
13025         quickly. We no longer need to use a hidden property on the inner global
13026         object. This patch will enable future optimizations.
13027
13028         * bindings/v8/V8HiddenPropertyName.h:
13029         (WebCore):
13030         * bindings/v8/V8PerContextData.cpp:
13031         (WebCore::V8PerContextData::dispose):
13032         (WebCore::V8PerContextData::init):
13033         * bindings/v8/V8PerContextData.h:
13034         (WebCore::V8PerContextData::from):
13035
13036 2012-11-12  Elliott Sprehn  <esprehn@chromium.org>
13037
13038         Make Frames and HTMLFrameOwnerElement less friendly
13039         https://bugs.webkit.org/show_bug.cgi?id=102003
13040
13041         Reviewed by Ojan Vafai.
13042
13043         Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
13044         this patch makes it go through a method to allow future hooks when frames
13045         are associated with owners.
13046
13047         No new tests, this is just a refactor.
13048
13049         * html/HTMLFrameOwnerElement.cpp:
13050         (WebCore::HTMLFrameOwnerElement::setContentFrame):
13051         * html/HTMLFrameOwnerElement.h:
13052         (HTMLFrameOwnerElement):
13053         (WebCore::HTMLFrameOwnerElement::clearContentFrame):
13054         * page/Frame.cpp:
13055         (WebCore::Frame::Frame): Use new methods.
13056
13057 2012-11-12  Beth Dakin  <bdakin@apple.com>
13058
13059         Zoomed-in scrolling is very slow when deviceScaleFactor > 1
13060         https://bugs.webkit.org/show_bug.cgi?id=101787
13061
13062         Reviewed by Simon Fraser.
13063
13064         This patch adds a new member to the GraphicsContextState that tracks 
13065         whether or not fonts should be subpixel-quantized. We want to default 
13066         to sibpixel-quantizing, but we'll turn it off if we're scrolling 
13067         content that cannot be scrolled on the scrolling thread.
13068
13069         State has a new bool shouldSubpixelQuantizeFonts. It defaults to true 
13070         since normally we do want to quantize.
13071         * platform/graphics/GraphicsContext.cpp:
13072         (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
13073         (WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
13074         * platform/graphics/GraphicsContext.h:
13075         (WebCore::GraphicsContextState::GraphicsContextState):
13076         (GraphicsContextState):
13077         (GraphicsContext):
13078
13079         wkSetCGFontRenderingMode now takes a BOOL parameter which indicates 
13080         whether or not it should try to subpixel-quantize the fonts.
13081         * platform/graphics/mac/FontMac.mm:
13082         (WebCore::Font::drawGlyphs):
13083         * platform/mac/WebCoreSystemInterface.h:
13084         * platform/mac/WebCoreSystemInterface.mm:
13085
13086         Disable subpixel-quantization for overflow areas, subframes, and 
13087         content that is scrolling on the main thread.
13088         * rendering/RenderLayer.cpp:
13089         (WebCore::RenderLayer::paintLayerContents):
13090
13091 2012-11-12  Timothy Hatcher  <timothy@apple.com>
13092
13093         Expose InspectorFrontendClientLocal::setAttachedWindow as public.
13094
13095         This allows external actions to update the docked state in the frontend.
13096
13097         https://bugs.webkit.org/show_bug.cgi?id=102023
13098
13099         Reviewed by Anders Carlsson.
13100
13101         * inspector/InspectorFrontendClientLocal.h:
13102         Moved InspectorFrontendClientLocal::setAttachedWindow to public section.
13103
13104 2012-11-12  Erik Arvidsson  <arv@chromium.org>
13105
13106         Replace DOMException TYPE_MISMATCH_ERR with TypeError
13107         https://bugs.webkit.org/show_bug.cgi?id=101604
13108
13109         Reviewed by Adam Barth.
13110
13111         DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.
13112
13113         We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
13114         the spec mandates TypeError being thrown.
13115
13116         Updated existing tests.
13117
13118         * Modules/mediastream/MediaConstraintsImpl.cpp:
13119         * Modules/mediastream/MediaStreamTrackList.cpp:
13120         * Modules/mediastream/PeerConnection00.cpp:
13121         * Modules/mediastream/RTCDataChannel.cpp:
13122         * Modules/mediastream/RTCIceCandidate.cpp:
13123         * Modules/mediastream/RTCPeerConnection.cpp:
13124         * Modules/mediastream/RTCSessionDescription.cpp:
13125         * Modules/mediastream/SessionDescription.cpp:
13126         * bindings/js/CallbackFunction.cpp:
13127         * bindings/js/JSCustomXPathNSResolver.cpp:
13128         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13129         * bindings/js/JSHTMLSelectElementCustom.cpp:
13130         * bindings/js/JSMutationObserverCustom.cpp:
13131         * bindings/js/JSSQLResultSetRowListCustom.cpp:
13132         * bindings/js/JSSQLTransactionCustom.cpp:
13133         * bindings/js/JSSQLTransactionSyncCustom.cpp:
13134         * bindings/scripts/CodeGeneratorJS.pm:
13135         * bindings/scripts/CodeGeneratorObjC.pm:
13136         * bindings/scripts/CodeGeneratorV8.pm:
13137         * bindings/v8/V8Callback.h:
13138         * bindings/v8/V8Collection.cpp:
13139         * bindings/v8/custom/V8DocumentCustom.cpp:
13140         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13141         * bindings/v8/custom/V8MutationObserverCustom.cpp:
13142         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
13143         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
13144         * dom/DOMCoreException.idl:
13145         * html/HTMLElement.cpp:
13146         * html/HTMLMediaElement.cpp:
13147         * html/HTMLOptionsCollection.cpp:
13148         * html/canvas/CanvasRenderingContext2D.cpp:
13149         * page/Crypto.cpp:
13150         * page/DOMSelection.cpp:
13151         * svg/properties/SVGTransformListPropertyTearOff.h:
13152
13153 2012-11-12  Joshua Bell  <jsbell@chromium.org>
13154
13155         IndexedDB: Use sequence<> instead of DOMString[] in IDL
13156         https://bugs.webkit.org/show_bug.cgi?id=100539
13157
13158         Reviewed by Adam Barth.
13159
13160         In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
13161         WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
13162         to that. Note webkit.org/b/100537 which requires sequence<String> instead.
13163
13164         Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
13165
13166         * Modules/indexeddb/IDBDatabase.cpp:
13167         (WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
13168         * Modules/indexeddb/IDBDatabase.h:
13169         (WebCore::IDBDatabase::transaction):
13170         (IDBDatabase):
13171         * Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
13172         * Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
13173         * Modules/indexeddb/IDBObjectStore.h:
13174         (WebCore::IDBObjectStore::createIndex):
13175         * Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>
13176
13177 2012-11-12  Anders Carlsson  <andersca@apple.com>
13178
13179         Remove Leopard only gradient code
13180         https://bugs.webkit.org/show_bug.cgi?id=102033
13181
13182         Reviewed by Dan Bernstein.
13183
13184         USE_CG_SHADING was only ever true on Leopard, so we can remove it now.
13185
13186         * platform/graphics/Gradient.h:
13187         * platform/graphics/cg/GradientCG.cpp:
13188         (WebCore::Gradient::platformDestroy):
13189         (WebCore::Gradient::platformGradient):
13190         (WebCore::Gradient::paint):
13191
13192 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13193
13194         [BlackBerry] Update BB10 form theme.
13195         https://bugs.webkit.org/show_bug.cgi?id=100760
13196
13197         Reviewed by Rob Buis.
13198
13199         RIM PR 237003
13200         Internally Reviewed by Eli Fidler.
13201         Since we nolonger use small font for form controls, adjust paddingDivisor
13202         ratio to decrease the padding value.
13203
13204         * platform/blackberry/RenderThemeBlackBerry.cpp:
13205         (WebCore):
13206
13207 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13208
13209         Fix filter dirty rect regression from r134311
13210         https://bugs.webkit.org/show_bug.cgi?id=102002
13211
13212         Reviewed by Beth Dakin.
13213
13214         When rendering with filters, the code can inflate the root-relative
13215         paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
13216         broke this behavior.
13217     
13218         Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
13219         and using it for the rest of the function.
13220
13221         * rendering/RenderLayer.cpp:
13222         (WebCore::RenderLayer::paintLayerContents):
13223
13224 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13225
13226         [V8] V8Event::valueAccessorGetter() in custom binding is not used
13227         https://bugs.webkit.org/show_bug.cgi?id=101893
13228
13229         Reviewed by Adam Barth.
13230
13231         No tests. No change in behavior.
13232
13233         * bindings/v8/custom/V8EventCustom.cpp:
13234
13235 2012-11-12  Roger Fong  <roger_fong@apple.com>
13236
13237         Web Inspector: Fix docking behaviour on Windows.
13238         https://bugs.webkit.org/show_bug.cgi?id=101978
13239
13240         Reviewed by Brian Weinstein.
13241
13242         There are a number of problems with docking behaviour on Windows.
13243         For starters, it does not ever constrain the inspector's size properly while docked.
13244         It also does not properly set the whether or not the inspector can be docked/undocked.
13245         This patch fixes both issues.
13246
13247         * inspector/InspectorFrontendClientLocal.cpp:
13248         (WebCore::InspectorFrontendClientLocal::frontendLoaded):
13249         Switch order of calling bringToFront and setDockingUnavailable.
13250
13251 2012-11-12  Adam Barth  <abarth@webkit.org>
13252
13253         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
13254         https://bugs.webkit.org/show_bug.cgi?id=101519
13255
13256         Reviewed by Ojan Vafai.
13257
13258         There should be no change in behavior.  The new API is slightly faster
13259         than the old API (and apparently works correctly internally in V8).
13260
13261         * bindings/scripts/CodeGeneratorV8.pm:
13262         (GenerateHeader):
13263         * bindings/scripts/test/V8/V8Float64Array.h:
13264         (WebCore::V8Float64Array::toNative):
13265         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
13266         (WebCore::V8TestActiveDOMObject::toNative):
13267         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
13268         (WebCore::V8TestCustomNamedGetter::toNative):
13269         * bindings/scripts/test/V8/V8TestEventConstructor.h:
13270         (WebCore::V8TestEventConstructor::toNative):
13271         * bindings/scripts/test/V8/V8TestEventTarget.h:
13272         (WebCore::V8TestEventTarget::toNative):
13273         * bindings/scripts/test/V8/V8TestException.h:
13274         (WebCore::V8TestException::toNative):
13275         * bindings/scripts/test/V8/V8TestInterface.h:
13276         (WebCore::V8TestInterface::toNative):
13277         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
13278         (WebCore::V8TestMediaQueryListListener::toNative):
13279         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
13280         (WebCore::V8TestNamedConstructor::toNative):
13281         * bindings/scripts/test/V8/V8TestNode.h:
13282         (WebCore::V8TestNode::toNative):
13283         * bindings/scripts/test/V8/V8TestObj.h:
13284         (WebCore::V8TestObj::toNative):
13285         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
13286         (WebCore::V8TestSerializedScriptValueInterface::toNative):
13287         * bindings/v8/NPV8Object.cpp:
13288         (WebCore::v8ObjectToNPObject):
13289         (WebCore::npCreateV8ScriptObject):
13290         * bindings/v8/V8Collection.h:
13291         (WebCore::toNativeCollection):
13292         * bindings/v8/V8DOMWindowShell.cpp:
13293         (WebCore::setIsolatedWorldField):
13294         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
13295         * bindings/v8/V8DOMWrapper.cpp:
13296         (WebCore::V8DOMWrapper::isWrapperOfType):
13297         * bindings/v8/V8DOMWrapper.h:
13298         (WebCore::V8DOMWrapper::setDOMWrapper):
13299         (WebCore::V8DOMWrapper::clearDOMWrapper):
13300         * bindings/v8/WrapperTypeInfo.h:
13301         (WebCore::toNative):
13302         (WebCore::toWrapperTypeInfo):
13303
13304 2012-11-12  Andreas Kling  <kling@webkit.org>
13305
13306         Rename AttributeStyle => PresentationAttributeStyle across WebCore.
13307         <http://webkit.org/b/101975>
13308
13309         Rubber-stamped by Antti Koivisto.
13310
13311         The completely separate concepts of "attribute style" and "style attribute" were a bit too
13312         easy to confuse in variable and method names. Reconfigure our terminology to call it
13313         "presentation attribute style" instead of "attribute style".
13314
13315         * css/StyleResolver.cpp:
13316         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
13317         (WebCore::StyleResolver::matchAllRules):
13318         (WebCore::StyleResolver::canShareStyleWithElement):
13319         * dom/Attr.cpp:
13320         (WebCore::Attr::style):
13321         * dom/ElementAttributeData.cpp:
13322         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
13323         (WebCore::ElementAttributeData::reportMemoryUsage):
13324         * dom/ElementAttributeData.h:
13325         (WebCore::ElementAttributeData::presentationAttributeStyle):
13326         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
13327         (ElementAttributeData):
13328         * dom/Node.h:
13329         (WebCore::Node::attributeStyleDirty):
13330         (WebCore::Node::setPresentationAttributeStyleDirty):
13331         (WebCore::Node::clearPresentationAttributeStyleDirty):
13332         * dom/StyledElement.cpp:
13333         (WebCore::StyledElement::attributeChanged):
13334         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
13335         (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
13336         * dom/StyledElement.h:
13337         (WebCore::StyledElement::additionalPresentationAttributeStyle):
13338         (StyledElement):
13339         (WebCore::StyledElement::collectStyleForPresentationAttribute):
13340         (WebCore::StyledElement::presentationAttributeStyle):
13341         * html/HTMLBRElement.cpp:
13342         (WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
13343         * html/HTMLBRElement.h:
13344         (HTMLBRElement):
13345         * html/HTMLBodyElement.cpp:
13346         (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
13347         * html/HTMLBodyElement.h:
13348         (HTMLBodyElement):
13349         * html/HTMLDivElement.cpp:
13350         (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
13351         * html/HTMLDivElement.h:
13352         (HTMLDivElement):
13353         * html/HTMLElement.cpp:
13354         (WebCore::HTMLElement::applyBorderAttributeToStyle):
13355         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
13356         (WebCore::HTMLElement::collectStyleForPresentationAttribute):
13357         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
13358         (WebCore::HTMLElement::addHTMLLengthToStyle):
13359         * html/HTMLElement.h:
13360         (HTMLElement):
13361         * html/HTMLEmbedElement.cpp:
13362         (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
13363         * html/HTMLEmbedElement.h:
13364         (HTMLEmbedElement):
13365         * html/HTMLFontElement.cpp:
13366         (WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
13367         * html/HTMLFontElement.h:
13368         (HTMLFontElement):
13369         * html/HTMLFrameSetElement.cpp:
13370         (WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
13371         * html/HTMLFrameSetElement.h:
13372         (HTMLFrameSetElement):
13373         * html/HTMLHRElement.cpp:
13374         (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
13375         * html/HTMLHRElement.h:
13376         (HTMLHRElement):
13377         * html/HTMLIFrameElement.cpp:
13378         (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
13379         * html/HTMLIFrameElement.h:
13380         (HTMLIFrameElement):
13381         * html/HTMLImageElement.cpp:
13382         (WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
13383         * html/HTMLImageElement.h:
13384         (HTMLImageElement):
13385         * html/HTMLInputElement.cpp:
13386         (WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
13387         * html/HTMLInputElement.h:
13388         (HTMLInputElement):
13389         * html/HTMLLIElement.cpp:
13390         (WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
13391         * html/HTMLLIElement.h:
13392         (HTMLLIElement):
13393         * html/HTMLMarqueeElement.cpp:
13394         (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
13395         * html/HTMLMarqueeElement.h:
13396         (HTMLMarqueeElement):
13397         * html/HTMLOListElement.cpp:
13398         (WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
13399         * html/HTMLOListElement.h:
13400         (HTMLOListElement):
13401         * html/HTMLObjectElement.cpp:
13402         (WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
13403         * html/HTMLObjectElement.h:
13404         (HTMLObjectElement):
13405         * html/HTMLParagraphElement.cpp:
13406         (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
13407         * html/HTMLParagraphElement.h:
13408         (HTMLParagraphElement):
13409         * html/HTMLPlugInElement.cpp:
13410         (WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
13411         * html/HTMLPlugInElement.h:
13412         (HTMLPlugInElement):
13413         * html/HTMLPreElement.cpp:
13414         (WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
13415         * html/HTMLPreElement.h:
13416         (HTMLPreElement):
13417         * html/HTMLTableCaptionElement.cpp:
13418         (WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
13419         * html/HTMLTableCaptionElement.h:
13420         (HTMLTableCaptionElement):
13421         * html/HTMLTableCellElement.cpp:
13422         (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
13423         (WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
13424         * html/HTMLTableCellElement.h:
13425         (HTMLTableCellElement):
13426         * html/HTMLTableColElement.cpp:
13427         (WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
13428         (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
13429         * html/HTMLTableColElement.h:
13430         (HTMLTableColElement):
13431         * html/HTMLTableElement.cpp:
13432         (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
13433         (WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
13434         * html/HTMLTableElement.h:
13435         (HTMLTableElement):
13436         * html/HTMLTablePartElement.cpp:
13437         (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
13438         * html/HTMLTablePartElement.h:
13439         (HTMLTablePartElement):
13440         * html/HTMLTableSectionElement.cpp:
13441         (WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
13442         * html/HTMLTableSectionElement.h:
13443         (HTMLTableSectionElement):
13444         * html/HTMLTextAreaElement.cpp:
13445         (WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
13446         * html/HTMLTextAreaElement.h:
13447         (HTMLTextAreaElement):
13448         * html/HTMLUListElement.cpp:
13449         (WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
13450         * html/HTMLUListElement.h:
13451         (HTMLUListElement):
13452         * html/HTMLVideoElement.cpp:
13453         (WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
13454         * html/HTMLVideoElement.h:
13455         (HTMLVideoElement):
13456         * inspector/InspectorCSSAgent.cpp:
13457         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
13458         * mathml/MathMLElement.cpp:
13459         (WebCore::MathMLElement::collectStyleForPresentationAttribute):
13460         * mathml/MathMLElement.h:
13461         (MathMLElement):
13462         * svg/SVGImageElement.cpp:
13463         (WebCore::SVGImageElement::collectStyleForPresentationAttribute):
13464         * svg/SVGImageElement.h:
13465         (SVGImageElement):
13466         * svg/SVGStyledElement.cpp:
13467         (WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
13468         * svg/SVGStyledElement.h:
13469         (SVGStyledElement):
13470         * svg/SVGTextContentElement.cpp:
13471         (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
13472         * svg/SVGTextContentElement.h:
13473         (SVGTextContentElement):
13474
13475 2012-11-12  Adam Barth  <abarth@webkit.org>
13476
13477         [V8] Many things crash when switching to V8's new aligned pointer API
13478         https://bugs.webkit.org/show_bug.cgi?id=101994
13479
13480         Reviewed by Eric Seidel.
13481
13482         When using the aligned pointer API, we need to make sure to initialize
13483         every internal field that we later read because the new API has better
13484         error checks than the old API. This patch explicitly initializes the
13485         enteredIsolatedWorldIndex internal field to zero for main worlds,
13486         fixing the LayoutTest crashes from our previous attempt to move the
13487         aligned pointer API.
13488
13489         * bindings/v8/V8DOMWindowShell.cpp:
13490         (WebCore::V8DOMWindowShell::initializeIfNeeded):
13491
13492 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13493
13494         Reduce the crazy number of parameters to RenderLayer painting member functions
13495         https://bugs.webkit.org/show_bug.cgi?id=101895
13496
13497         Reviewed by Beth Dakin.
13498
13499         The various RenderLayer::paintLayer* functions took a lot of arguments, most
13500         of which were passed down directly to descendants.
13501         
13502         Gather these arguments into a LayerPaintingInfo struct.
13503
13504         * rendering/RenderLayer.cpp:
13505         (WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
13506         to descendant paint calls.
13507         (WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
13508         (WebCore::RenderLayer::paintLayer): When painting transformed layers, we
13509         make a new LayerPaintingInfo because the root layer is shifted.
13510         (WebCore::RenderLayer::paintLayerContentsAndReflection):
13511         (WebCore::RenderLayer::paintLayerContents):
13512         (WebCore::RenderLayer::paintList):
13513         (WebCore::RenderLayer::paintPaginatedChildLayer):
13514         (WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
13515         struct for column painting.
13516         * rendering/RenderLayer.h:
13517         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
13518         (LayerPaintingInfo):
13519         * rendering/RenderLayerBacking.cpp:
13520         (WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
13521         to enter layer painting.
13522         * rendering/RenderReplica.cpp:
13523         (WebCore::RenderReplica::paint): Ditto.
13524
13525 2012-11-12  Brady Eidson  <beidson@apple.com>
13526
13527         NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
13528         https://bugs.webkit.org/show_bug.cgi?id=101872
13529
13530         Reviewed by Alexey Proskuryakov.
13531
13532         Expose shouldSniffContent to pass it along to the NetworkProcess.
13533
13534         * loader/ResourceLoader.h:
13535         (WebCore::ResourceLoader::shouldSniffContent):
13536
13537 2012-11-12  Christophe Dumez  <christophe.dumez@intel.com>
13538
13539         Fix memory leak in createSurfaceForBackingStore()
13540         https://bugs.webkit.org/show_bug.cgi?id=101941
13541
13542         Reviewed by Kenneth Rohde Christiansen.
13543
13544         Fix memory leak in createSurfaceForBackingStore(),
13545         the RefPtr<cairo_surface_t> should be released
13546         when returned since we pass ownership to the
13547         caller.
13548
13549         No new tests, no behavior change for layout tests.
13550
13551         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13552         (WebCore::createSurfaceForBackingStore):
13553
13554 2012-11-12  Joe Mason  <jmason@rim.com>
13555
13556         [BlackBerry] Update to new proxyInfo API
13557         https://bugs.webkit.org/show_bug.cgi?id=101945
13558
13559         Reviewed by George Staikos.
13560
13561         Internal PR: 234680
13562         Reviewed internally by: Leo Yang
13563
13564         The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
13565         have been replaced with a single, more efficient proxyInfo method.
13566
13567         No new tests because this is an API update with no behaviour change.
13568
13569         * platform/network/blackberry/NetworkJob.cpp:
13570         (WebCore::NetworkJob::sendRequestWithCredentials):
13571         (WebCore::NetworkJob::storeCredentials):
13572
13573 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13574
13575         Unreviewed, rolling out r126157.
13576         http://trac.webkit.org/changeset/126157
13577         https://bugs.webkit.org/show_bug.cgi?id=101954
13578
13579         This patch caused (untestable) regression of the volume
13580         property on Mac, Win, and Blackberry ports. (Requested by
13581         jernoble on #webkit).
13582
13583         * platform/graphics/MediaPlayer.cpp:
13584         (WebCore::MediaPlayer::loadWithNextMediaEngine):
13585         (WebCore::MediaPlayer::setVolume):
13586         (WebCore::MediaPlayer::setMuted):
13587         (WebCore::MediaPlayer::setPreservesPitch):
13588         (WebCore::MediaPlayer::setSize):
13589         (WebCore::MediaPlayer::setVisible):
13590         (WebCore::MediaPlayer::setPreload):
13591
13592 2012-11-12  Arpita Bahuguna  <arpitabahuguna@gmail.com>
13593
13594         Specified width CSS tables should not include border and padding as part of that width.
13595         https://bugs.webkit.org/show_bug.cgi?id=77028
13596
13597         Reviewed by Julien Chaffraix.
13598
13599         CSS table width should not include border and padding even though HTML
13600         tables size as though their width includes border/padding.
13601
13602         This is applicable for all CSS tables with specified widths.
13603
13604         The change would also make our rendering of CSS tables with specified
13605         width similar to that of Opera, IE and FF.
13606
13607         Test: fast/table/css-table-width-with-border-padding.html
13608
13609         * rendering/RenderTable.cpp:
13610         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
13611         Added check for all (positive) specified widths for CSS tables to
13612         consider border and padding outside of the specified width.
13613
13614 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13615
13616         Move resolving blob references to FormData.
13617         https://bugs.webkit.org/show_bug.cgi?id=101754
13618
13619         Reviewed by Simon Hausmann.
13620
13621         Resolving Blob-references to a set of just File and Data is done similar by several platforms.
13622         This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
13623         BlackBerry network implementation.
13624
13625         * platform/network/FormData.cpp:
13626         (WebCore::appendBlobResolved):
13627         (WebCore::FormData::resolveBlobReferences):
13628         * platform/network/FormData.h:
13629         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
13630         (WebCore::ResourceRequest::initializePlatformRequest):
13631         * platform/network/cf/FormDataStreamCFNet.cpp:
13632         (WebCore::setHTTPBody):
13633         * platform/network/qt/QNetworkReplyHandler.cpp:
13634         (WebCore::FormDataIODevice::prepareFormElements):
13635
13636 2012-11-12  Zeno Albisser  <zeno@webkit.org>
13637
13638         GraphicsSurfaceGLX does not handle transparency correctly.
13639         https://bugs.webkit.org/show_bug.cgi?id=101943
13640
13641         GraphicsSurfacGLX must consistently use RGBA texture format.
13642         glXCreateWindow must be called after creating the XWindow
13643         that serves as a temporary offscreen texture storage, in order
13644         to allow for transparency.
13645         When creating the offscreen XWindow we must make sure,
13646         that we use a framebuffer configuration that supports
13647         an alpha mask.
13648
13649         Reviewed by Noam Rosenthal.
13650
13651         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
13652         (WebCore):
13653         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
13654         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
13655         (WebCore::GraphicsSurfacePrivate::createSurface):
13656         (GraphicsSurfacePrivate):
13657         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
13658
13659 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13660
13661         Unreviewed, rolling out r134225.
13662         http://trac.webkit.org/changeset/134225
13663         https://bugs.webkit.org/show_bug.cgi?id=101948
13664
13665         Appears to have broken the EFL and GTK builds (Requested by
13666         abarth on #webkit).
13667
13668         * bindings/js/JSHTMLElementCustom.cpp:
13669         (WebCore):
13670         (WebCore::JSHTMLElement::itemValue):
13671         (WebCore::JSHTMLElement::setItemValue):
13672         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13673         (WebCore):
13674         (WebCore::V8HTMLElement::itemValueAccessorGetter):
13675         (WebCore::V8HTMLElement::itemValueAccessorSetter):
13676         * html/HTMLElement.idl:
13677
13678 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13679
13680         hitTestResultAtPoint does two hit-tests if called on non main frame
13681         https://bugs.webkit.org/show_bug.cgi?id=101915
13682
13683         Reviewed by Antonio Gomes.
13684
13685         Always redirect hitTestResultAtPoint to the main-frame. This used to being
13686         done on every result that hit anything, which caused running the expensive 
13687         hit-tests multiple times in almost all cases.
13688
13689         * page/EventHandler.cpp:
13690         (WebCore::EventHandler::hitTestResultAtPoint):
13691
13692 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13693
13694         [V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
13695         https://bugs.webkit.org/show_bug.cgi?id=101892
13696
13697         Reviewed by Adam Barth.
13698
13699         We can remove [Custom] from callUID in ScriptProfileNode.idl.
13700
13701         No tests. No change in behavior.
13702
13703         * GNUmakefile.list.am:
13704         * Target.pri:
13705         * UseJSC.cmake:
13706         * WebCore.gypi:
13707         * WebCore.vcproj/WebCore.vcproj:
13708         * WebCore.xcodeproj/project.pbxproj:
13709         * bindings/js/JSBindingsAllInOne.cpp:
13710         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
13711         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
13712         * inspector/ScriptProfileNode.idl:
13713
13714 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13715
13716         [V8] Performance::memory getter needs not to be [Custom]
13717         https://bugs.webkit.org/show_bug.cgi?id=101890
13718
13719         Reviewed by Adam Barth.
13720
13721         No tests. No change in behavior.
13722
13723         * UseV8.cmake:
13724         * WebCore.gypi:
13725         * bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
13726         * page/Performance.idl:
13727
13728 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13729
13730         [V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
13731         https://bugs.webkit.org/show_bug.cgi?id=101888
13732
13733         Reviewed by Adam Barth.
13734
13735         We can remove [Custom] from getter. It is possible to remove [Custom]
13736         from setter, but it changes the current behavior.
13737         (I think the current implementation of the setter is wrong.
13738         I'll fix it in another patch.)
13739
13740         No tests. No change in behavior.
13741
13742         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13743         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13744         * html/HTMLOptionsCollection.idl:
13745
13746 2012-11-12  Yael Aharon  <yael.aharon@intel.com>
13747
13748         [EFL][WK2][AC] Black screen when applications use software backend.
13749         https://bugs.webkit.org/show_bug.cgi?id=101659
13750
13751         Reviewed by Kenneth Rohde Christiansen.
13752
13753         Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.
13754
13755         No new tests. Will be covered when running existing tests without enabling openGL.
13756
13757         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13758         (WebCore::createSurfaceForImage):
13759         (WebCore):
13760         * platform/graphics/efl/CairoUtilitiesEfl.h:
13761         (WebCore):
13762
13763 2012-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
13764
13765         Unreviewed. Fix make distcheck.
13766
13767         * GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
13768         contain idl files anymore.
13769         * GNUmakefile.list.am: Add missing header files.
13770
13771 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
13772
13773         MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
13774         https://bugs.webkit.org/show_bug.cgi?id=101733
13775
13776         Reviewed by Jochen Eisinger.
13777
13778         This patch adds better verification to MediaConstraintsImpl.
13779
13780         Existing tests expanded to cover this change.
13781
13782         * Modules/mediastream/MediaConstraintsImpl.cpp:
13783         (WebCore::MediaConstraintsImpl::initialize):
13784
13785 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13786
13787         Unreviewed, rolling out r134223.
13788         http://trac.webkit.org/changeset/134223
13789         https://bugs.webkit.org/show_bug.cgi?id=101939
13790
13791         Breaks inspector tests (Requested by pfeldman on #webkit).
13792
13793         * inspector/front-end/DefaultTextEditor.js:
13794         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
13795         (WebInspector.TextEditorMainPanel):
13796         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
13797         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
13798         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
13799         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
13800         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
13801         (WebInspector.TextEditorMainPanel.prototype._paintLine):
13802         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
13803         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
13804         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
13805         * inspector/front-end/externs.js:
13806         * inspector/front-end/textEditor.css:
13807
13808 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13809
13810         [Qt] Support ResourceRequest's setTimeoutInterval
13811         https://bugs.webkit.org/show_bug.cgi?id=101731
13812
13813         Reviewed by Simon Hausmann.
13814
13815         Establish a timeout and return the correct error when it is triggered.
13816
13817         Tested by existing http/tests/xmlhttprequest/timeout tests.
13818
13819         * platform/network/ResourceRequestBase.cpp:
13820         * platform/network/qt/QNetworkReplyHandler.cpp:
13821         (WebCore::QNetworkReplyHandler::release):
13822         (WebCore::QNetworkReplyHandler::finish):
13823         (WebCore::QNetworkReplyHandler::timeout):
13824         (WebCore::QNetworkReplyHandler::timerEvent):
13825         (WebCore::QNetworkReplyHandler::start):
13826         * platform/network/qt/QNetworkReplyHandler.h:
13827         (QNetworkReplyHandler):
13828
13829 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13830
13831         Unreviewed, rolling out r134224.
13832         http://trac.webkit.org/changeset/134224
13833         https://bugs.webkit.org/show_bug.cgi?id=101937
13834
13835         asserting on bawts (Requested by kling on #webkit).
13836
13837         * rendering/style/RenderStyle.cpp:
13838         (WebCore::RenderStyle::diff):
13839         (WebCore::RenderStyle::setColor):
13840         (WebCore::RenderStyle::setVisitedLinkColor):
13841         * rendering/style/RenderStyle.h:
13842         * rendering/style/StyleBackgroundData.cpp:
13843         (WebCore::StyleBackgroundData::StyleBackgroundData):
13844         * rendering/style/StyleBackgroundData.h:
13845         (WebCore::StyleBackgroundData::color):
13846         (StyleBackgroundData):
13847         * rendering/style/StyleInheritedData.cpp:
13848         (WebCore::StyleInheritedData::StyleInheritedData):
13849         * rendering/style/StyleInheritedData.h:
13850         (StyleInheritedData):
13851         * rendering/style/StyleMultiColData.cpp:
13852         (WebCore::StyleMultiColData::StyleMultiColData):
13853         * rendering/style/StyleMultiColData.h:
13854         (StyleMultiColData):
13855         * rendering/style/StyleRareInheritedData.cpp:
13856         (SameSizeAsStyleRareInheritedData):
13857         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
13858         (WebCore::StyleRareInheritedData::operator==):
13859         * rendering/style/StyleRareInheritedData.h:
13860         (WebCore):
13861         (StyleRareInheritedData):
13862         * rendering/style/StyleRareNonInheritedData.cpp:
13863         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
13864         (WebCore::StyleRareNonInheritedData::operator==):
13865         * rendering/style/StyleRareNonInheritedData.h:
13866         (StyleRareNonInheritedData):
13867
13868 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13869
13870         [BlackBerry] Update BB10 form theme.
13871         https://bugs.webkit.org/show_bug.cgi?id=100760
13872
13873         Reviewed by Rob Buis.
13874
13875         RIM PR 236993
13876         Internally Reviewed by Jeff Rogers.
13877         Use slide and paint method on slider range and media controls.
13878
13879         * platform/blackberry/RenderThemeBlackBerry.cpp:
13880         (WebCore):
13881         (WebCore::drawThreeSliceHorizontal):
13882         (WebCore::drawThreeSliceVertical):
13883         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13884         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
13885         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
13886         (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
13887         * platform/blackberry/RenderThemeBlackBerry.h:
13888         (RenderThemeBlackBerry):
13889
13890 2012-11-12  Kent Tamura  <tkent@chromium.org>
13891
13892         Refactoring: set read-only values on layout in DateTimeEditElement
13893         https://bugs.webkit.org/show_bug.cgi?id=101916
13894
13895         Reviewed by Kentaro Hara.
13896
13897         We have always updated read-only values when we set an empty value or
13898         DateTimeFieldsState. It has wasted CPU time because such read-only
13899         values are never updated after layout() essentially. So, we set
13900         read-only values in DateTimeEditBuilder used by layout(), and remove
13901         dateForReadOnlyField arguments of setEmptyValue and
13902         setValueAsDateTimeFieldsState.
13903
13904         No new tests. This should not make behavior changes.
13905
13906         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
13907         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
13908         We removed dateForReadOnlyField argument because read-only values are
13909         already set in DateTimeFieldElement::layout().
13910         * html/shadow/DateTimeEditElement.cpp:
13911         (WebCore::DateTimeEditBuilder::visitField):
13912         Set a value to a read-only minute/second/millisecond field while
13913         building UI elements.
13914         Also, changed variable types for millisecond and second fields to
13915         RefPtr<DateTimeNumericFieldElement> because we'd like to call
13916         setValueAsDate, which is private in DateTimeMillisecondFieldElement and
13917         DateTimeSecondFieldElement
13918         (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
13919         We removed dateForReadOnlyField argument because read-only values are
13920         already set in DateTimeFieldElement::layout().
13921         (WebCore::DateTimeEditElement::setEmptyValue): Ditto.
13922         * html/shadow/DateTimeEditElement.h:
13923         (DateTimeEditElement):
13924         Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.
13925
13926         * html/shadow/DateTimeFieldElement.cpp:
13927         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
13928         We removed dateForReadOnlyField argument because read-only values are
13929         already set in DateTimeFieldElement::layout().
13930         * html/shadow/DateTimeFieldElement.h:
13931         (DateTimeFieldElement): Ditto.
13932
13933         * html/shadow/DateTimeFieldElements.cpp: Ditto.
13934         * html/shadow/DateTimeFieldElements.h: Ditto.
13935         * html/shadow/DateTimeNumericFieldElement.cpp:
13936         (WebCore::DateTimeNumericFieldElement::setEmptyValue):
13937         It should do nothing if it is read-only because a read-only value was
13938         already set just after construction.
13939         * html/shadow/DateTimeNumericFieldElement.h:
13940         (DateTimeNumericFieldElement):
13941         Removed dateForReadOnlyField argument of setEmptyValue.
13942         * html/shadow/DateTimeSymbolicFieldElement.cpp:
13943         (WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
13944         * html/shadow/DateTimeSymbolicFieldElement.h:
13945         (DateTimeSymbolicFieldElement): Ditto.
13946
13947 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13948
13949         [BlackBerry] Update BB10 form theme.
13950         https://bugs.webkit.org/show_bug.cgi?id=100760
13951
13952         Reviewed by Rob Buis.
13953
13954         RIM PR 236993
13955         Internally Reviewed by Jeff Rogers.
13956         Enable GL slider.
13957
13958         * platform/blackberry/RenderThemeBlackBerry.cpp:
13959         (WebCore::drawThreeSlice):
13960         (WebCore):
13961         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13962         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
13963
13964 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13965
13966         [V8][JSC] HTMLElement::itemValue() needs not to be custom
13967         https://bugs.webkit.org/show_bug.cgi?id=101882
13968
13969         Reviewed by Adam Barth.
13970
13971         We can remove a [Custom] IDL attribute.
13972
13973         No tests. No change in behavior.
13974
13975         * bindings/js/JSHTMLElementCustom.cpp:
13976         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13977         * html/HTMLElement.idl:
13978
13979 2012-11-12  Andreas Kling  <kling@webkit.org>
13980
13981         RenderStyle: Pack Color members tighter in substructures.
13982         <http://webkit.org/b/101860>
13983
13984         Reviewed by Antti Koivisto.
13985
13986         For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
13987         members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.
13988
13989         Memory saved per instance:
13990
13991             - StyleMultiColData:          4 bytes
13992             - StyleBackgroundData:        8 bytes
13993             - StyleInheritedData:         8 bytes
13994             - StyleRareInheritedData:    24 bytes
13995             - StyleRareNonInheritedData: 24 bytes
13996
13997         323kB progression on Membuster3.
13998
13999         * rendering/style/RenderStyle.cpp:
14000         (WebCore::RenderStyle::diff):
14001         (WebCore::RenderStyle::setColor):
14002         (WebCore::RenderStyle::setVisitedLinkColor):
14003         (WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
14004         (WebCore::RenderStyle::setBackgroundColor):
14005         * rendering/style/RenderStyle.h:
14006         * rendering/style/StyleBackgroundData.cpp:
14007         (WebCore::StyleBackgroundData::StyleBackgroundData):
14008         * rendering/style/StyleBackgroundData.h:
14009         (WebCore::StyleBackgroundData::color):
14010         (StyleBackgroundData):
14011         * rendering/style/StyleInheritedData.cpp:
14012         (WebCore::StyleInheritedData::StyleInheritedData):
14013         * rendering/style/StyleInheritedData.h:
14014         (StyleInheritedData):
14015         * rendering/style/StyleMultiColData.cpp:
14016         (WebCore::StyleMultiColData::StyleMultiColData):
14017         (WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
14018         * rendering/style/StyleMultiColData.h:
14019         (StyleMultiColData):
14020         (WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
14021         * rendering/style/StyleRareInheritedData.cpp:
14022         (SameSizeAsStyleRareInheritedData):
14023         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
14024         (WebCore::StyleRareInheritedData::operator==):
14025         (WebCore::StyleRareInheritedData::setTextStrokeColor):
14026         (WebCore::StyleRareInheritedData::setTextFillColor):
14027         (WebCore::StyleRareInheritedData::setTextEmphasisColor):
14028         (WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
14029         (WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
14030         (WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
14031         * rendering/style/StyleRareInheritedData.h:
14032         (StyleRareInheritedData):
14033         (WebCore::StyleRareInheritedData::textStrokeColor):
14034         (WebCore::StyleRareInheritedData::textFillColor):
14035         (WebCore::StyleRareInheritedData::textEmphasisColor):
14036         (WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
14037         (WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
14038         (WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
14039         * rendering/style/StyleRareNonInheritedData.cpp:
14040         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
14041         (WebCore::StyleRareNonInheritedData::operator==):
14042         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
14043         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
14044         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
14045         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
14046         (WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
14047         (WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
14048         * rendering/style/StyleRareNonInheritedData.h:
14049         (WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
14050         (WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
14051         (WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
14052         (WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
14053         (WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
14054         (WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
14055         (StyleRareNonInheritedData):
14056
14057 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14058
14059         Web Inspector: migrate text editor to mutation observers
14060         https://bugs.webkit.org/show_bug.cgi?id=101841
14061
14062         Reviewed by Vsevolod Vlasov.
14063
14064         Otherwise, we miss notifications on the removed lines.
14065
14066         * inspector/front-end/DefaultTextEditor.js:
14067         (WebInspector.TextEditorMainPanel):
14068         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
14069         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
14070         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
14071         (WebInspector.TextEditorMainPanel.prototype._handleMutation):
14072         * inspector/front-end/externs.js:
14073         (WebKitMutation):
14074         (WebKitMutationObserver.prototype.observe):
14075         (WebKitMutationObserver.prototype.disconnect):
14076
14077 2012-11-12  Allan Sandfeld Jensen  <sandfeld@kde.org>
14078
14079         [Qt] Flash-plugin starts with wrong width
14080         https://bugs.webkit.org/show_bug.cgi?id=101836
14081
14082         Reviewed by Simon Hausmann.
14083
14084         Defer the setWindow call, so that the one time it is called it will have its final size.
14085
14086         * plugins/PluginPackage.cpp:
14087         (WebCore::PluginPackage::determineQuirks):
14088
14089 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14090
14091         Remove the V8 custom code for WebSockets constructor
14092         https://bugs.webkit.org/show_bug.cgi?id=100801
14093
14094         Reviewed by Kentaro Hara.
14095
14096         This patch does the following:
14097
14098         1) Modifies the V8 code generator to support overloaded constructors,
14099            the JS generator is fixed to work as before. Proper support for JS will come later.
14100
14101         2) Modifies WebSocket.h/.cpp for the new constructors.
14102
14103         Tested by running WebSockets layout tests.
14104
14105         * Modules/websockets/WebSocket.cpp:
14106         (WebCore::WebSocket::create):
14107         (WebCore):
14108         * Modules/websockets/WebSocket.h:
14109         (WebSocket):
14110         * Modules/websockets/WebSocket.idl:
14111         * bindings/scripts/CodeGeneratorJS.pm:
14112         (GenerateConstructorDefinition):
14113         * bindings/scripts/CodeGeneratorV8.pm:
14114         (GenerateHeader):
14115         (GenerateOverloadedConstructorCallback):
14116         (GenerateSingleConstructorCallback):
14117         (GenerateConstructorCallback):
14118         (GenerateImplementation):
14119         * bindings/scripts/IDLParser.pm:
14120         (copyAttributes):
14121         (parseExtendedAttributeList):
14122         (parseExtendedAttributes):
14123         (applyExtendedAttributeList):
14124         * bindings/scripts/IDLStructure.pm:
14125         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
14126         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
14127         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
14128         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
14129         (WebDOMTestOverloadedConstructors::operator=):
14130         (WebDOMTestOverloadedConstructors::impl):
14131         (WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
14132         (toWebCore):
14133         (toWebKit):
14134         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
14135         (WebCore):
14136         (WebDOMTestOverloadedConstructors):
14137         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
14138         (WebKit):
14139         (WebKit::kit):
14140         (WebKit::core):
14141         (WebKit::wrapTestOverloadedConstructors):
14142         (webkit_dom_test_overloaded_constructors_finalize):
14143         (webkit_dom_test_overloaded_constructors_set_property):
14144         (webkit_dom_test_overloaded_constructors_get_property):
14145         (webkit_dom_test_overloaded_constructors_constructed):
14146         (webkit_dom_test_overloaded_constructors_class_init):
14147         (webkit_dom_test_overloaded_constructors_init):
14148         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
14149         (_WebKitDOMTestOverloadedConstructors):
14150         (_WebKitDOMTestOverloadedConstructorsClass):
14151         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
14152         (WebKit):
14153         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
14154         (WebCore):
14155         (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
14156         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
14157         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
14158         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
14159         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
14160         (WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
14161         (WebCore::JSTestOverloadedConstructorsPrototype::self):
14162         (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
14163         (WebCore::JSTestOverloadedConstructors::finishCreation):
14164         (WebCore::JSTestOverloadedConstructors::createPrototype):
14165         (WebCore::JSTestOverloadedConstructors::destroy):
14166         (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
14167         (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
14168         (WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
14169         (WebCore::jsTestOverloadedConstructorsConstructor):
14170         (WebCore::JSTestOverloadedConstructors::getConstructor):
14171         (WebCore::isObservable):
14172         (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
14173         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
14174         (WebCore::toJS):
14175         (WebCore::toTestOverloadedConstructors):
14176         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
14177         (WebCore):
14178         (JSTestOverloadedConstructors):
14179         (WebCore::JSTestOverloadedConstructors::create):
14180         (WebCore::JSTestOverloadedConstructors::createStructure):
14181         (WebCore::JSTestOverloadedConstructors::impl):
14182         (WebCore::JSTestOverloadedConstructors::releaseImpl):
14183         (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
14184         (JSTestOverloadedConstructorsOwner):
14185         (WebCore::wrapperOwner):
14186         (WebCore::wrapperContext):
14187         (JSTestOverloadedConstructorsPrototype):
14188         (WebCore::JSTestOverloadedConstructorsPrototype::create):
14189         (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
14190         (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
14191         (JSTestOverloadedConstructorsConstructor):
14192         (WebCore::JSTestOverloadedConstructorsConstructor::create):
14193         (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
14194         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
14195         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
14196         (-[DOMTestOverloadedConstructors dealloc]):
14197         (-[DOMTestOverloadedConstructors finalize]):
14198         (core):
14199         (kit):
14200         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
14201         (WebCore):
14202         * bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
14203         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
14204         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
14205         (WebCore):
14206         (TestOverloadedConstructorsV8Internal):
14207         (WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
14208         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
14209         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
14210         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
14211         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
14212         (WebCore::V8TestOverloadedConstructors::constructorCallback):
14213         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
14214         (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
14215         (WebCore::V8TestOverloadedConstructors::GetTemplate):
14216         (WebCore::V8TestOverloadedConstructors::HasInstance):
14217         (WebCore::V8TestOverloadedConstructors::wrapSlow):
14218         (WebCore::V8TestOverloadedConstructors::derefObject):
14219         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
14220         (WebCore):
14221         (V8TestOverloadedConstructors):
14222         (WebCore::V8TestOverloadedConstructors::toNative):
14223         (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
14224         (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
14225         (WebCore::V8TestOverloadedConstructors::wrap):
14226         (WebCore::toV8):
14227         * bindings/v8/custom/V8WebSocketCustom.cpp:
14228
14229 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14230
14231         [Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
14232         https://bugs.webkit.org/show_bug.cgi?id=101891
14233
14234         Reviewed by Hajime Morita.
14235
14236         We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
14237         since it will have more features than the original RuleFeatureSet has.
14238
14239         Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.
14240
14241         No new tests, no change in behavior.
14242
14243         * CMakeLists.txt:
14244         * GNUmakefile.list.am:
14245         * Target.pri:
14246         * WebCore.gypi:
14247         * WebCore.vcproj/WebCore.vcproj:
14248         * WebCore.xcodeproj/project.pbxproj:
14249         * dom/ElementShadow.h:
14250         (ElementShadow):
14251         (WebCore::ElementShadow::selectRuleFeatureSet):
14252         (WebCore):
14253         * html/shadow/SelectRuleFeatureSet.cpp: Added.
14254         (WebCore):
14255         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
14256         (WebCore::SelectRuleFeatureSet::add):
14257         (WebCore::SelectRuleFeatureSet::clear):
14258         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
14259         * html/shadow/SelectRuleFeatureSet.h: Added.
14260         (WebCore):
14261         (SelectRuleFeatureSet):
14262         (WebCore::SelectRuleFeatureSet::hasSelectorForId):
14263         (WebCore::SelectRuleFeatureSet::hasSelectorForClass):
14264         (WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
14265         * testing/Internals.cpp:
14266         (WebCore::Internals::hasSelectorForIdInShadow):
14267         (WebCore::Internals::hasSelectorForClassInShadow):
14268         (WebCore::Internals::hasSelectorForAttributeInShadow):
14269
14270 2012-11-13  Keishi Hattori  <keishi@webkit.org>
14271
14272         Build fix for Chromium Android (caused by r134216)
14273
14274         Unreviewed.
14275
14276         No new tests.
14277
14278         * platform/text/PlatformLocale.cpp:
14279         (WebCore::Locale::formatDateTime):
14280
14281 2012-11-12  Keishi Hattori  <keishi@webkit.org>
14282
14283         Add support for week/month to Locale::formatDateTime()
14284         https://bugs.webkit.org/show_bug.cgi?id=101878
14285
14286         Reviewed by Kent Tamura.
14287
14288         Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.
14289
14290         Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.
14291
14292         * platform/text/PlatformLocale.cpp:
14293         (WebCore::DateTimeStringBuilder::visitField):
14294         (WebCore::Locale::formatDateTime): Support week and month types.
14295
14296 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
14297
14298         [Qt] Can not load MHTML documents
14299         https://bugs.webkit.org/show_bug.cgi?id=101765
14300
14301         Reviewed by Simon Hausmann.
14302
14303         Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.
14304
14305         Tested by existing mhtml/ tests.
14306
14307         * platform/qt/MIMETypeRegistryQt.cpp:
14308         (WebCore):
14309
14310 2012-11-12  Andreas Kling  <akling@apple.com>
14311
14312         Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
14313         <http://webkit.org/b/101850>
14314
14315         Reviewed by Antti Koivisto.
14316
14317         Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
14318         222kB progression on Membuster3.
14319
14320         * platform/network/ResourceRequestBase.cpp:
14321         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
14322
14323 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14324
14325         MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
14326         https://bugs.webkit.org/show_bug.cgi?id=101751
14327
14328         Reviewed by Adam Barth.
14329
14330         This patch queues the events until the JS interpreter is in an idle state.
14331
14332         Existing tests cover this patch.
14333
14334         * Modules/mediastream/RTCDataChannel.cpp:
14335         (WebCore::RTCDataChannel::RTCDataChannel):
14336         (WebCore::RTCDataChannel::readyStateChanged):
14337         (WebCore::RTCDataChannel::dataArrived):
14338         (WebCore::RTCDataChannel::error):
14339         (WebCore::RTCDataChannel::scheduleDispatchEvent):
14340         (WebCore):
14341         (WebCore::RTCDataChannel::scheduledEventTimerFired):
14342         * Modules/mediastream/RTCDataChannel.h:
14343         (RTCDataChannel):
14344         * platform/chromium/support/WebRTCDataChannel.cpp:
14345         (WebKit::WebRTCDataChannel::setBufferedAmount):
14346         (WebKit::WebRTCDataChannel::readyStateChanged):
14347         (WebKit::WebRTCDataChannel::dataArrived):
14348         (WebKit::WebRTCDataChannel::error):
14349
14350 2012-11-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>
14351
14352         Remove HTMLInputElement dependency from PickerIndicatorElement
14353         https://bugs.webkit.org/show_bug.cgi?id=101913
14354
14355         Reviewed by Kent Tamura.
14356
14357         Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
14358         PickerIndicatorElement. It makes easier to add interactions between picker indicator
14359         and its owner without having to add functions to HTMLInputElement.
14360
14361         No new tests. This is just a refactor.
14362
14363         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
14364         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
14365         (WebCore):
14366         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
14367         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
14368         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
14369         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
14370         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
14371         * html/BaseMultipleFieldsDateAndTimeInputType.h:
14372         (WebCore):
14373         (BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
14374         * html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
14375         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
14376         (WebCore::PickerIndicatorElement::create):
14377         (WebCore::PickerIndicatorElement::defaultEventHandler):
14378         (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
14379         (WebCore::PickerIndicatorElement::didChooseValue):
14380         (WebCore::PickerIndicatorElement::openPopup):
14381         * html/shadow/PickerIndicatorElement.h:
14382         (PickerIndicatorElement): Added a PickerIndicatorOwner member.
14383         (PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
14384         (WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
14385         (WebCore::PickerIndicatorElement::removePickerIndicatorOwner):
14386
14387 2012-11-12  Mihnea Ovidenie  <mihnea@adobe.com>
14388
14389         [CSSRegions]Add support for text-shadow in region styling
14390         https://bugs.webkit.org/show_bug.cgi?id=94472
14391
14392         Reviewed by David Hyatt.
14393
14394         Original patch by Andrei Onea.
14395         Add support for text-shadow in region styling (@-webkit-region rule).
14396         In addition to the previously supported region styling properties (background-color and color),
14397         text-shadow requires the computation of an element style in region at layout time.
14398
14399         This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
14400         can be used to retrieve the object style in region (if already cached) or to compute it
14401         on the spot. When computing the object style in region, we need to compute the style in region
14402         also for the object ancestor, up to the content nodes.
14403
14404         This patch also refactors the way styles in region are computed and stored, because
14405         we can compute the style in region not only at paint time, but also at layout time.
14406
14407         Test: fast/regions/region-style-text-shadow.html
14408
14409         * css/StyleResolver.cpp:
14410         (WebCore::StyleResolver::isValidRegionStyleProperty):
14411         Allow text-shadow to be used in region styling.
14412         * rendering/InlineBox.cpp:
14413         (WebCore::InlineBox::styleInRegion):
14414         Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
14415         Compute the style in region if not computed yet.
14416         (WebCore::InlineBox::regionDuringLayout):
14417         Retrieve the region in which an InlineBox is being flowed.
14418         * rendering/InlineBox.h:
14419         * rendering/InlineFlowBox.cpp: Take region styling into account.
14420         (WebCore::InlineFlowBox::addToLine):
14421         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
14422         * rendering/RenderRegion.cpp:
14423         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
14424         (WebCore::canCacheObjectStyleInRegion):
14425         Test if we can cache the computed style in region.
14426         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
14427         (WebCore::RenderRegion::computeStyleInRegion):
14428         (WebCore::RenderRegion::setChildrenStyleInRegion):
14429         (WebCore::setObjectHasBoxDecorationsFlag):
14430         (WebCore::RenderRegion::setObjectStyleInRegion):
14431         (WebCore::RenderRegion::clearObjectStyleInRegion):
14432         (WebCore::RenderRegion::ensureRegionStyleForObject):
14433         * rendering/RenderRegion.h:
14434
14435 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
14436
14437         Unreviewed, rolling out r134154.
14438         http://trac.webkit.org/changeset/134154
14439         https://bugs.webkit.org/show_bug.cgi?id=101919
14440
14441         Causes plenty of crashes on GTK and Apple Win builders
14442         (Requested by zdobersek on #webkit).
14443
14444         * css/mediaControls.css:
14445         * css/mediaControlsQuickTime.css:
14446         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
14447         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
14448         * html/shadow/MediaControlElements.cpp:
14449         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
14450         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
14451         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
14452         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
14453         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
14454         * html/shadow/MediaControlElements.h:
14455         (MediaControlElement):
14456         (MediaControlToggleClosedCaptionsButtonElement):
14457         * html/shadow/MediaControlRootElement.cpp:
14458         (WebCore::MediaControlRootElement::MediaControlRootElement):
14459         (WebCore::MediaControlRootElement::create):
14460         (WebCore::MediaControlRootElement::setMediaController):
14461         (WebCore::MediaControlRootElement::hide):
14462         (WebCore::MediaControlRootElement::makeTransparent):
14463         (WebCore::MediaControlRootElement::reset):
14464         (WebCore::MediaControlRootElement::reportedError):
14465         * html/shadow/MediaControlRootElement.h:
14466         (WebCore):
14467         (MediaControlRootElement):
14468         * html/shadow/MediaControlRootElementChromium.cpp:
14469         (WebCore::MediaControlRootElementChromium::initializeControls):
14470         * html/shadow/MediaControls.h:
14471         (MediaControls):
14472         * platform/Language.cpp:
14473         (WebCore):
14474         * platform/Language.h:
14475         (WebCore):
14476         * rendering/RenderMediaControls.cpp:
14477         (WebCore::RenderMediaControls::paintMediaControlsPart):
14478         * rendering/RenderMediaControlsChromium.cpp:
14479         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
14480
14481 2012-11-12  Mike West  <mkwst@chromium.org>
14482
14483         'for (x in y)' requires 'var' declaration in ConsoleMessage.js
14484         https://bugs.webkit.org/show_bug.cgi?id=101908
14485
14486         Reviewed by Pavel Feldman.
14487
14488         r134166 should have included a 'var' declaration in its 'for (x in y)'
14489         loop. This patch adds the missing 'var' in order to prevent leakage into
14490         the global context.
14491
14492         * inspector/front-end/ConsoleMessage.js:
14493         (WebInspector.ConsoleMessageImpl.prototype.append):
14494         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14495
14496 2012-11-12  Zeno Albisser  <zeno@webkit.org>
14497
14498         [Qt] MiniBrowser should not strongly depend on QtTestSupport.
14499         https://bugs.webkit.org/show_bug.cgi?id=101775
14500
14501         Introducing HAVE(QTTESTSUPPORT) to allow building
14502         MiniBrowser without QtTestSupport.
14503         This is necessary when using a production build.
14504
14505         Reviewed by Tor Arne Vestbø.
14506
14507         * Target.pri:
14508         * platform/qt/QtTestSupport.h:
14509
14510 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14511
14512         Web Inspector: wasShown is called twice when show() is called from within wasShown
14513         https://bugs.webkit.org/show_bug.cgi?id=101858
14514
14515         Reviewed by Vsevolod Vlasov.
14516
14517         When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
14518         We now mute one of them.
14519
14520         * inspector/front-end/View.js:
14521         (WebInspector.View):
14522         (WebInspector.View.prototype._inNotification):
14523         (WebInspector.View.prototype._parentIsShowing):
14524         (WebInspector.View.prototype._callOnVisibleChildren):
14525         (WebInspector.View.prototype._processWasShown):
14526         (WebInspector.View.prototype._processWillHide):
14527         (WebInspector.View.prototype._processOnResize):
14528         (WebInspector.View.prototype._notify):
14529         (WebInspector.View.prototype.show):
14530
14531 2012-11-12  Ryosuke Niwa  <rniwa@webkit.org>
14532
14533         Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
14534         in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.
14535
14536         Furthermore, we can't update layout in updateAppearance. So do that in its call sites.
14537
14538         * editing/FrameSelection.cpp:
14539         (WebCore::FrameSelection::setSelection):
14540         (WebCore::FrameSelection::recomputeCaretRect):
14541         (WebCore::FrameSelection::updateAppearance):
14542         (WebCore::FrameSelection::setCaretVisibility):
14543
14544 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14545
14546         Don't update style when attaching in HTMLMeterElement
14547         https://bugs.webkit.org/show_bug.cgi?id=101714
14548
14549         Reviewed by Hajime Morita.
14550
14551         HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
14552         can cause style-update prevention. The similar thing has already happened in Bug 100507.
14553
14554         Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.
14555
14556         Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html
14557
14558         * html/HTMLMeterElement.cpp:
14559         * html/HTMLMeterElement.h:
14560         (HTMLMeterElement): Removed attach(). We don't need it.
14561
14562 2012-11-09  Ryosuke Niwa  <rniwa@webkit.org>
14563
14564         Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
14565         https://bugs.webkit.org/show_bug.cgi?id=101547
14566
14567         Reviewed by Simon Fraser.
14568
14569         I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
14570         previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
14571         selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
14572         This will let us avoid doing an extra layout upon destruction and not regress repaint tests.
14573
14574         Covered by existing tests.
14575
14576         * editing/FrameSelection.cpp:
14577         (WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
14578         (WebCore::FrameSelection::prepareForDestruction): Added.
14579         (WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
14580         Also, don't update style before updating selection unless text caret is disabled since we always
14581         update the layout (including style) when text caret is enabled.
14582         * editing/FrameSelection.h:
14583         (FrameSelection):
14584         * loader/FrameLoader.cpp:
14585         (WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.
14586
14587 2012-11-11  Dongwoo Joshua Im  <dw.im@samsung.com>
14588
14589         [CSS3] Parsing the property, text-align-last.
14590         https://bugs.webkit.org/show_bug.cgi?id=99439
14591
14592         Reviewed by Julien Chaffraix.
14593
14594         This patch implements the parsing side of the "text-align-last" property specified
14595         in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
14596         Specification link : http://www.w3.org/TR/css3-text/#text-align-last
14597
14598         Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
14599                fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
14600
14601         * css/CSSComputedStyleDeclaration.cpp:
14602         (WebCore):
14603         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
14604         * css/CSSParser.cpp:
14605         (WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
14606         * css/CSSPrimitiveValueMappings.h:
14607         (WebCore):
14608         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
14609         (WebCore::CSSPrimitiveValue::operator ETextAlignLast):
14610         * css/CSSProperty.cpp:
14611         (WebCore::CSSProperty::isInheritedProperty):
14612         * css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
14613         * css/StyleBuilder.cpp:
14614         (WebCore::StyleBuilder::StyleBuilder):
14615         * css/StylePropertySet.cpp:
14616         (WebCore):
14617         * css/StyleResolver.cpp:
14618         (WebCore::StyleResolver::applyProperty):
14619         * rendering/style/RenderStyle.h:
14620         * rendering/style/RenderStyleConstants.h:
14621         * rendering/style/StyleRareInheritedData.cpp:
14622         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
14623         (WebCore::StyleRareInheritedData::operator==):
14624         * rendering/style/StyleRareInheritedData.h:
14625         (StyleRareInheritedData): Add m_textAlignLast.
14626
14627 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14628
14629         [Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
14630         https://bugs.webkit.org/show_bug.cgi?id=101881
14631
14632         Reviewed by Kent Tamura.
14633
14634         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
14635         setPseudo()/pseudo() instead.
14636
14637         No new tests, simple refacotring.
14638
14639         * html/HTMLKeygenElement.cpp:
14640         (WebCore::KeygenSelectElement::KeygenSelectElement):
14641         (KeygenSelectElement):
14642
14643 2012-11-11  Adam Barth  <abarth@webkit.org>
14644
14645         Many DOMWindowProperties would benefit from being ScriptWrappable
14646         https://bugs.webkit.org/show_bug.cgi?id=101887
14647
14648         Reviewed by Kentaro Hara.
14649
14650         These object are only ever created at the behest of script, which means
14651         making them ScriptWrappable is a win.
14652
14653         * page/BarInfo.h:
14654         * page/Console.h:
14655         * page/Crypto.h:
14656         * page/History.h:
14657         * page/Location.h:
14658         * page/Navigator.h:
14659         * page/Performance.h:
14660
14661 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14662
14663         [V8] HTMLDocument::all() needs not to be custom
14664         https://bugs.webkit.org/show_bug.cgi?id=101875
14665
14666         Reviewed by Adam Barth.
14667
14668         We can easily remove the custom getter from V8 because the
14669         custom setter sets .all by ForceSet(). On the other hand,
14670         it is non-trivial to remove the custom getter from JSC
14671         because the custom setter sets .all by putDirect()
14672         and the custom getter wants to get it by getDirect().
14673
14674         No tests. No change in behavior.
14675
14676         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
14677         * html/HTMLDocument.idl:
14678
14679 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14680
14681         [V8] V8Console::memoryAttrGetter() needs not to be custom
14682         https://bugs.webkit.org/show_bug.cgi?id=101873
14683
14684         Reviewed by Adam Barth.
14685
14686         No tests. No change in behavior.
14687
14688         * bindings/v8/custom/V8ConsoleCustom.cpp:
14689         (WebCore):
14690         * page/Console.idl:
14691
14692 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14693
14694         [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
14695         https://bugs.webkit.org/show_bug.cgi?id=101180
14696
14697         Reviewed by Dimitri Glazkov.
14698
14699         This is a preparation patch for Bug 100451.
14700
14701         We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
14702         When an element attribute is changed, we might have to invalidate content distribution,
14703         however it's high cost operation. So we would like to check RuleFeatureSet used in
14704         select attributes to determine we really need to invalidate distribution.
14705
14706         Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
14707         first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
14708         For the performance reason, we have a flag to check whether we need to collect features again.
14709
14710         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
14711
14712         * WebCore.exp.in:
14713         * dom/ElementShadow.cpp:
14714         (WebCore::ElementShadow::ElementShadow):
14715         (WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
14716         nodes (and their ShadowDOM).
14717         (WebCore):
14718         (WebCore::ElementShadow::ensureSelectFeatureSetCollected):
14719         (WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
14720         ShadowDOM. We need to collect id, class, and attribute names.
14721         * dom/ElementShadow.h:
14722         (WebCore::ElementShadow::shouldCollectSelectFeatureSet):
14723         (ElementShadow):
14724         (WebCore::ElementShadow::hasSelectorForId):
14725         (WebCore):
14726         (WebCore::ElementShadow::hasSelectorForClass):
14727         (WebCore::ElementShadow::hasSelectorForAttribute):
14728         * html/shadow/HTMLContentElement.cpp:
14729         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
14730         (WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
14731         (WebCore::HTMLContentElement::removedFrom): ditto.
14732         * html/shadow/HTMLContentElement.h:
14733         (WebCore::toHTMLContentElement):
14734         (WebCore):
14735         * testing/Internals.cpp:
14736         (WebCore::Internals::hasSelectorForIdInShadow):
14737         (WebCore):
14738         (WebCore::Internals::hasSelectorForClassInShadow):
14739         (WebCore::Internals::hasSelectorForAttributeInShadow):
14740         * testing/Internals.h:
14741         (Internals):
14742         * testing/Internals.idl:
14743
14744 2012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>
14745
14746         Unreviewed, rolling out r134144.
14747         http://trac.webkit.org/changeset/134144
14748         https://bugs.webkit.org/show_bug.cgi?id=101876
14749
14750         seems to break win 7 chromium browser test (Requested by
14751         hayato on #webkit).
14752
14753         * WebCore.exp.in:
14754         * page/EventHandler.cpp:
14755         (WebCore):
14756         (WebCore::EventHandler::handleMouseMoveEvent):
14757         * page/EventHandler.h:
14758         (EventHandler):
14759         * testing/Internals.cpp:
14760         * testing/Internals.h:
14761         * testing/Internals.idl:
14762
14763 2012-11-11  Kent Tamura  <tkent@chromium.org>
14764
14765         Internals: MockPagePopup should not update DOM structure during detach()
14766         https://bugs.webkit.org/show_bug.cgi?id=101710
14767
14768         Reviewed by Hajime Morita.
14769
14770         PickerIndicatorElement::detach calls
14771         MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
14772         which remove the mock iframe from the tree. But updating the tree during
14773         detach() is dangerous.
14774
14775         MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
14776         requests to call 'close' asynchronously, and 'close' removes the mock
14777         iframe. We need to change MockPagePopup so that it is ref-couted and has
14778         a timer.
14779
14780         No new tests. This is a change for the test harness.
14781
14782         * testing/MockPagePopupDriver.cpp:
14783         (MockPagePopup): Make this ref-counted, add closeLater, add close, and
14784         add m_closeTimer.
14785         (WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
14786         (WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
14787         (WebCore::MockPagePopup::closeLater):
14788         - Add one reference to avoid destruction by m_mockPagePopup.clear() in
14789           closePagePopup.
14790         - Notify didClosePopup here because the client expects didClosePopup is
14791           called synchronously.
14792         - Invoke the timer to call 'close'
14793         (WebCore::MockPagePopup::close):
14794         Just remove one reference. This means calling the desructor.
14795         (WebCore::MockPagePopup::~MockPagePopup):
14796         Move didClosePopup call to caloseLater.
14797         (WebCore::MockPagePopupDriver::closePagePopup):
14798         Request to close PagePopup.
14799         Clear PagePopupClient in m_pagePopupController because this object is
14800         necessary until MockPagePopup is closed, but it should not have a
14801         reference to the PagePopupClient.
14802         * testing/MockPagePopupDriver.h:
14803         (MockPagePopupDriver): Make MockPagePopup ref-counted.
14804
14805 2012-11-11  Adam Barth  <abarth@webkit.org>
14806
14807         axObjectCache code is more complicated than necessary
14808         https://bugs.webkit.org/show_bug.cgi?id=101820
14809
14810         Reviewed by Darin Adler.
14811
14812         This code should use OwnPtr rather than manually calling new/delete.
14813         Also, instead of using a "double check" pattern, we can just access the
14814         private fields on the top document directly.
14815
14816         * dom/Document.cpp:
14817         (WebCore::Document::Document):
14818         (WebCore::Document::clearAXObjectCache):
14819         (WebCore::Document::axObjectCacheExists):
14820         (WebCore):
14821         (WebCore::Document::axObjectCache):
14822         * dom/Document.h:
14823         (Document):
14824
14825 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14826
14827         Save one call to containerForRepaint() when updating layer positions
14828         https://bugs.webkit.org/show_bug.cgi?id=101856
14829
14830         Reviewed by Dan Bernstein.
14831
14832          RenderLayer::updateLayerPositions() has already computed the repaint container,
14833          but calls computeRepaintRects() which computes it again. Computing the repaint
14834          container involves a walk back up the layer tree, so calling it during a tree
14835          traversal is costly.
14836          
14837          Fix by passing the repaint container down into computeRepaintRects().
14838
14839         * rendering/RenderLayer.cpp:
14840         (WebCore::RenderLayer::updateLayerPositions):
14841         (WebCore::RenderLayer::computeRepaintRects):
14842         (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
14843         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
14844         (WebCore::RenderLayer::setHasVisibleContent):
14845         * rendering/RenderLayer.h:
14846         (RenderLayer):
14847
14848 2012-11-11  Kenichi Ishibashi  <bashi@chromium.org>
14849
14850         WTFString::utf8() should have a mode of conversion to use replacement character
14851         https://bugs.webkit.org/show_bug.cgi?id=101678
14852
14853         Reviewed by Alexey Proskuryakov.
14854
14855         Follow the change on String::utf8()
14856
14857         No new tests. No changes in behavior.
14858
14859         * Modules/websockets/WebSocket.cpp:
14860         (WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
14861         * Modules/websockets/WebSocketChannel.cpp:
14862         (WebCore::WebSocketChannel::send): Ditto.
14863         * html/MediaFragmentURIParser.cpp:
14864         (WebCore::MediaFragmentURIParser::parseFragments): Ditto.
14865         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
14866         (WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
14867         * platform/network/blackberry/rss/RSSFilterStream.cpp:
14868         (WebCore::RSSFilterStream::convertContentToHtml): Ditto.
14869         * platform/network/blackberry/rss/RSSGenerator.cpp:
14870         (WebCore::RSSGenerator::generateHtml): Ditto.
14871
14872 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14873
14874         Coalesce main thread scroll position updates
14875         https://bugs.webkit.org/show_bug.cgi?id=101855
14876
14877         Reviewed by Anders Carlsson.
14878
14879         When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls 
14880         from ScrollingTree would pile up on the main thread, and we'd handle several per
14881         runloop cycle when scrolling fast. This causes extra work especially on pages
14882         with position:fixed elements which must update RenderLayers on scrolling.
14883         
14884         Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
14885         scrolling updates to one per runloop.
14886
14887         * page/scrolling/ScrollingCoordinator.cpp:
14888         (WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
14889         for the scheduled scroll position update.
14890         (WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If 
14891         the timer is active and the parameters match, just update the target scroll
14892         position and return. If the params don't match, dispatch the scheduled update,
14893         and then the new one. Otherwise, prime the timer.
14894         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
14895         the existing updateMainFrameScrollPosition() with the saved values.
14896         * page/scrolling/ScrollingCoordinator.h:
14897         * page/scrolling/ScrollingTree.cpp:
14898         (WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
14899         rather than updateMainFrameScrollPosition().
14900         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14901         (WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
14902         position elements to jiggle with the patch; we should be calling syncPosition() (which just
14903         sets the position data, without touching CA layers).
14904
14905 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14906
14907         Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
14908         https://bugs.webkit.org/show_bug.cgi?id=101514
14909
14910         Reviewed by Tim Horton.
14911
14912         ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
14913         ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
14914         we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
14915         set the layer position (rather than just doing a 'sync').
14916
14917         * page/scrolling/ScrollingCoordinator.cpp:
14918         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
14919         * page/scrolling/ScrollingCoordinator.h:
14920         * page/scrolling/ScrollingTree.cpp:
14921         (WebCore::ScrollingTree::updateMainFrameScrollPosition):
14922         * page/scrolling/ScrollingTree.h:
14923         * page/scrolling/mac/ScrollingCoordinatorMac.h:
14924         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14925         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
14926         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
14927
14928 2012-11-10  Sheriff Bot  <webkit.review.bot@gmail.com>
14929
14930         Unreviewed, rolling out r134069.
14931         http://trac.webkit.org/changeset/134069
14932         https://bugs.webkit.org/show_bug.cgi?id=101852
14933
14934         "It is a wrong way to fix the problem. See discussions in bug
14935         96614" (Requested by 1JTAAPQFJ on #webkit).
14936
14937         * bindings/js/JSDictionary.cpp:
14938         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
14939
14940 2012-11-10  Mike West  <mkwst@chromium.org>
14941
14942         Web Inspector: Multiple '%c' formatting options should all have effect.
14943         https://bugs.webkit.org/show_bug.cgi?id=101495
14944
14945         Reviewed by Pavel Feldman.
14946
14947         This patch supports multiple '%c' formatting blocks in console messages.
14948         'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
14949         do exactly what you expect: "blue!" will be blue, and "green!" will be
14950         green.
14951
14952         The implementation moves the styles off the message's parent 'span', and
14953         onto new 'span' elements that wrap the various textual bits of the
14954         message.
14955
14956         * inspector/front-end/ConsoleMessage.js:
14957         (WebInspector.ConsoleMessageImpl.prototype.):
14958         (WebInspector.ConsoleMessageImpl.prototype.append):
14959         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14960
14961 2012-11-10  Mike West  <mkwst@chromium.org>
14962
14963         Including <CoreText/CoreText.h> breaks the chromium/mac build.
14964         https://bugs.webkit.org/show_bug.cgi?id=101851
14965
14966         Reviewed by Dan Bernstein.
14967
14968         r134146 introduced inclusion of 'CoreText/CoreText.h' in
14969         SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
14970         around, it looks like this needs to be modified to include
14971         'ApplicationServices/ApplicationServices.h'.
14972
14973         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
14974             Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
14975         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
14976             Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.
14977
14978 2012-11-10  Andreas Kling  <kling@webkit.org>
14979
14980         Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
14981         <http://webkit.org/b/101849>
14982
14983         Reviewed by Anders Carlsson.
14984
14985         Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
14986         possible moment, to avoid unnecessarily detaching and cloning from attribute data.
14987
14988         120 kB progression on Membuster3.
14989
14990         * dom/Element.cpp:
14991         (WebCore::Element::setAttributeInternal):
14992         (WebCore::Element::addAttributeInternal):
14993
14994 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14995
14996         Some minor optimizations in RenderLayer
14997         https://bugs.webkit.org/show_bug.cgi?id=101847
14998
14999         Reviewed by Anders Carlsson.
15000
15001         Some minor performance improvements in RenderLayer code.
15002
15003         * rendering/RenderLayer.cpp:
15004         (WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
15005         so prefix it with an isInline() check which tests a bit on RenderObject.
15006         (WebCore::RenderLayer::localBoundingBox): Ditto.
15007         (WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
15008         into a local variable.
15009
15010 2012-11-10  Anders Carlsson  <andersca@apple.com>
15011
15012         Document::m_fullScreenElementStack should be a Vector
15013         https://bugs.webkit.org/show_bug.cgi?id=101844
15014
15015         Reviewed by Andreas Kling.
15016
15017         m_fullScreenElementStack is currently a Deque where elements are being prepended
15018         and removed from the beginning in LIFO order, so it can be replaced with a Vector.
15019
15020         * dom/Document.cpp:
15021         (WebCore::Document::requestFullScreenForElement):
15022         (WebCore::Document::webkitCancelFullScreen):
15023         (WebCore::Document::popFullscreenElementStack):
15024         (WebCore::Document::pushFullscreenElementStack):
15025         * dom/Document.h:
15026         (WebCore::Document::webkitFullscreenElement):
15027         (Document):
15028
15029 2012-11-10  Adam Barth  <abarth@webkit.org>
15030
15031         [V8] Clean up header includes and ifdefs in V8GCController
15032         https://bugs.webkit.org/show_bug.cgi?id=101691
15033
15034         Reviewed by Kentaro Hara.
15035
15036         This file doesn't need to include all these headers anymore.
15037
15038         * bindings/v8/V8GCController.cpp:
15039         (WebCore::workingSetEstimateMBMutex):
15040         (WebCore::V8GCController::majorGCEpilogue):
15041         (WebCore::V8GCController::checkMemoryUsage):
15042
15043 2012-11-10  Joseph Pecoraro  <pecoraro@apple.com>
15044
15045         [Mac] Guard WebCore PageVisibility Symbol Export
15046         https://bugs.webkit.org/show_bug.cgi?id=101817
15047
15048         Reviewed by Andreas Kling.
15049
15050         Guard the export with the same ENABLE guards around its definition
15051         and implementation.
15052
15053         * WebCore.exp.in:
15054
15055 2012-11-10  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
15056
15057         [css] text-decoration:none no longer valid
15058         https://bugs.webkit.org/show_bug.cgi?id=101529
15059
15060         Reviewed by Ojan Vafai.
15061
15062         This patch fixes an issue where the 'none' value was parsed as explicitly
15063         'initial' value. However true in a sense that the initial value for the
15064         'text-decoration' property is 'none', the value itself could not be parsed as
15065         'initial'.
15066
15067         The getComputedStyle layout tests for 'text-decoration' and
15068         '-webkit-text-decoration-line' CSS properties are updated with the correct
15069         results.
15070
15071         * css/CSSParser.cpp:
15072         (WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
15073         gets its own identifier value instead of explicit initial.
15074
15075 2012-11-09  Dean Jackson  <dino@apple.com>
15076
15077         Support list of tracks in caption media controls
15078         https://bugs.webkit.org/show_bug.cgi?id=101669
15079
15080         Reviewed by Eric Carlson.
15081
15082         Attempt three of commit. The first two times caused build failures on Chromium.
15083
15084         Add some new elements to the media control shadow DOM that display the list of available
15085         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15086         where it is given a very basic design. At the moment only the list of available tracks
15087         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15088
15089         No new tests - this doesn't expose any testable surface.
15090
15091         * css/mediaControls.css: Added default rules that hide the new elements.
15092         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15093         * html/shadow/MediaControlElements.cpp:
15094         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15095         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15096         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15097         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15098         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15099         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15100         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15101         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15102         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15103         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15104         * html/shadow/MediaControlElements.h:
15105         (MediaControlElement):
15106         (MediaControlToggleClosedCaptionsButtonElement):
15107         (MediaControlClosedCaptionsContainerElement):
15108         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15109         * html/shadow/MediaControlRootElement.cpp:
15110         (WebCore::MediaControlRootElement::MediaControlRootElement):
15111         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15112         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15113         (WebCore::MediaControlRootElement::hide):
15114         (WebCore::MediaControlRootElement::makeTransparent):
15115         (WebCore::MediaControlRootElement::reset):
15116         (WebCore::MediaControlRootElement::reportedError):
15117         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15118         (WebCore):
15119         * html/shadow/MediaControlRootElement.h:
15120         (WebCore):
15121         (MediaControlRootElement):
15122         * html/shadow/MediaControlRootElementChromium.cpp:
15123         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15124         * html/shadow/MediaControls.h:
15125         (MediaControls):
15126         * platform/Language.cpp:
15127         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15128         * platform/Language.h:
15129         (WebCore):
15130         * rendering/RenderMediaControls.cpp:
15131         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15132         * rendering/RenderMediaControlsChromium.cpp:
15133         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15134
15135 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15136
15137         Unreviewed, rolling out r134152.
15138         http://trac.webkit.org/changeset/134152
15139         https://bugs.webkit.org/show_bug.cgi?id=101831
15140
15141         broke chromium again (Requested by dino_ on #webkit).
15142
15143         * css/mediaControls.css:
15144         * css/mediaControlsQuickTime.css:
15145         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15146         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15147         * html/shadow/MediaControlElements.cpp:
15148         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15149         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15150         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15151         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15152         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15153         * html/shadow/MediaControlElements.h:
15154         (MediaControlElement):
15155         (MediaControlToggleClosedCaptionsButtonElement):
15156         * html/shadow/MediaControlRootElement.cpp:
15157         (WebCore::MediaControlRootElement::MediaControlRootElement):
15158         (WebCore::MediaControlRootElement::create):
15159         (WebCore::MediaControlRootElement::setMediaController):
15160         (WebCore::MediaControlRootElement::hide):
15161         (WebCore::MediaControlRootElement::makeTransparent):
15162         (WebCore::MediaControlRootElement::reset):
15163         (WebCore::MediaControlRootElement::reportedError):
15164         * html/shadow/MediaControlRootElement.h:
15165         (WebCore):
15166         (MediaControlRootElement):
15167         * html/shadow/MediaControlRootElementChromium.cpp:
15168         (WebCore::MediaControlRootElementChromium::initializeControls):
15169         * html/shadow/MediaControls.h:
15170         (MediaControls):
15171         * platform/Language.cpp:
15172         (WebCore):
15173         * platform/Language.h:
15174         (WebCore):
15175         * rendering/RenderMediaControls.cpp:
15176         (WebCore::RenderMediaControls::paintMediaControlsPart):
15177         * rendering/RenderMediaControlsChromium.cpp:
15178         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
15179
15180 2012-11-09  Dean Jackson  <dino@apple.com>
15181
15182         Support list of tracks in caption media controls
15183         https://bugs.webkit.org/show_bug.cgi?id=101669
15184
15185         Reviewed by Eric Carlson.
15186
15187         Attempt two of commit. The first time caused a build failure on Chromium.
15188
15189         Add some new elements to the media control shadow DOM that display the list of available
15190         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15191         where it is given a very basic design. At the moment only the list of available tracks
15192         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15193
15194         No new tests - this doesn't expose any testable surface.
15195
15196         * css/mediaControls.css: Added default rules that hide the new elements.
15197         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15198         * html/shadow/MediaControlElements.cpp:
15199         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15200         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15201         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15202         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15203         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15204         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15205         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15206         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15207         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15208         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15209         * html/shadow/MediaControlElements.h:
15210         (MediaControlElement):
15211         (MediaControlToggleClosedCaptionsButtonElement):
15212         (MediaControlClosedCaptionsContainerElement):
15213         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15214         * html/shadow/MediaControlRootElement.cpp:
15215         (WebCore::MediaControlRootElement::MediaControlRootElement):
15216         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15217         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15218         (WebCore::MediaControlRootElement::hide):
15219         (WebCore::MediaControlRootElement::makeTransparent):
15220         (WebCore::MediaControlRootElement::reset):
15221         (WebCore::MediaControlRootElement::reportedError):
15222         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15223         (WebCore):
15224         * html/shadow/MediaControlRootElement.h:
15225         (WebCore):
15226         (MediaControlRootElement):
15227         * html/shadow/MediaControlRootElementChromium.cpp:
15228         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15229         * html/shadow/MediaControls.h:
15230         (MediaControls):
15231         * platform/Language.cpp:
15232         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15233         * platform/Language.h:
15234         (WebCore):
15235         * rendering/RenderMediaControls.cpp:
15236         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15237         * rendering/RenderMediaControlsChromium.cpp:
15238         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15239
15240 2012-11-09  Ojan Vafai  <ojan@chromium.org>
15241
15242         Should only fire a single set of mouse events and update hover state once when scrolling is done
15243         https://bugs.webkit.org/show_bug.cgi?id=99940
15244
15245         Reviewed by Levi Weintraub.
15246
15247         -Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
15248         timer is fired, we ensure the actual goal of not firing fake mouse events
15249         until the scroll is completed. This is the core part of this change.
15250         -Change our mouse event throttling to keep a running average of how long
15251         mouse events take and adjust throttling appropriately.
15252         Test: fast/scrolling/fake-mouse-event-throttling.html
15253         -Maintain a minimum throttle of 100ms.
15254
15255         * page/EventHandler.cpp:
15256         (WebCore):
15257         (WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
15258         (WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
15259         Keep track of a running average instead of max. This lets us adjust throttling
15260         dynamically without punishing a page for having a single mouse event handler
15261         that takes disproportionately long.
15262         (RunningAverageDurationTracker):
15263         (WebCore::EventHandler::EventHandler):
15264         (WebCore::EventHandler::clear):
15265         (WebCore::EventHandler::mouseMoved):
15266         (WebCore::EventHandler::handleMouseMoveEvent):
15267         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
15268         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
15269         * page/EventHandler.h:
15270         (EventHandler):
15271         * platform/Timer.h:
15272         (WebCore::DeferrableOneShotTimer::setDelay):
15273         (WebCore::DeferrableOneShotTimer::delay):
15274         Add a way of adjusting the timer delay.
15275
15276 2012-11-09  Rick Byers  <rbyers@chromium.org>
15277
15278         Move chromium to USE(LAZY_NATIVE_CURSOR)
15279         https://bugs.webkit.org/show_bug.cgi?id=101501
15280
15281         Reviewed by Adam Barth.
15282
15283         This simplifies cursor handling in chromium and unifies it with other
15284         ports for easier code sharing and testing by moving to the
15285         USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.
15286
15287         PlatformCursor adds no value in chromium since the sandboxing model
15288         requires the cursor information be marshalled to the browser process
15289         before being turned into a real OS cursor.
15290
15291         Test: fast/events/mouse-cursor.html
15292
15293         * WebCore.gypi:
15294         * platform/Cursor.h:
15295         (WebCore):
15296         * platform/chromium/CursorChromium.cpp:
15297         (WebCore::Cursor::Cursor):
15298         (WebCore::Cursor::operator=):
15299         (WebCore::Cursor::~Cursor):
15300         (WebCore::Cursor::ensurePlatformCursor):
15301         * platform/chromium/PlatformCursor.h: Removed.
15302
15303 2012-11-09  Noam Rosenthal  <noam.rosenthal@nokia.com>
15304
15305         Allow ports to decide whether an image should be directly composited
15306         https://bugs.webkit.org/show_bug.cgi?id=101827
15307
15308         Reviewed by Simon Fraser.
15309
15310         Tested by compositing/tiling/huge-layer-img.html.
15311
15312         * platform/graphics/GraphicsLayer.h:
15313         (WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
15314             Allow the GraphicsLayer implementation to decide if the image can be composited.
15315
15316         * rendering/RenderLayerBacking.cpp:
15317         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
15318             Take onto account the new shouldDirectlyCompositeImage check.
15319
15320 2012-11-09  Dan Bernstein  <mitz@apple.com>
15321
15322         SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
15323         https://bugs.webkit.org/show_bug.cgi?id=101799
15324
15325         Reviewed by Alexey Proskuryakov.
15326
15327         In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
15328         different behavior from not setting it at all. We can get the correct behavior and greatly
15329         simplify the code by not setting attributes to their default values.
15330
15331         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
15332         Removed redundant #import directives and changed the remaining ones to #include.
15333         (WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
15334         only add attributes that have non-default values.
15335
15336 2012-11-09  Rick Byers  <rbyers@chromium.org>
15337
15338         No tests for changing mouse cursors
15339         https://bugs.webkit.org/show_bug.cgi?id=100550
15340
15341         Reviewed by Adam Barth.
15342
15343         Add infrastructure to keep track of the last set mouse cursor,
15344         and then to query it from DumpRenderTree.
15345
15346         Test: fast/events/mouse-cursor.html
15347
15348         * WebCore.exp.in: Add Cursor copy ctor export
15349         * page/EventHandler.cpp:
15350         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
15351         * page/EventHandler.h:
15352         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
15353         * testing/Internals.cpp:
15354         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
15355         (WebCore):
15356         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
15357         * testing/Internals.h: Declare getCurrentCursorInfo
15358         * testing/Internals.idl: Declare getCurrentCursorInfo
15359
15360 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15361
15362         Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
15363         https://bugs.webkit.org/show_bug.cgi?id=101701
15364
15365         Reviewed by Noam Rosenthal.
15366
15367         Add TiledBackingStore::rect() because CoordinatedTile needs to know
15368         m_rect of TiledBackingStore.
15369
15370         * platform/graphics/TiledBackingStore.h:
15371         (WebCore::TiledBackingStore::rect):
15372
15373 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15374
15375         Unreviewed, rolling out r134139.
15376         http://trac.webkit.org/changeset/134139
15377         https://bugs.webkit.org/show_bug.cgi?id=101823
15378
15379         breaks chromium (android) build (Requested by thorton on
15380         #webkit).
15381
15382         * css/mediaControls.css:
15383         * css/mediaControlsQuickTime.css:
15384         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15385         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15386         * html/shadow/MediaControlElements.cpp:
15387         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15388         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15389         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15390         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15391         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15392         * html/shadow/MediaControlElements.h:
15393         (MediaControlElement):
15394         (MediaControlToggleClosedCaptionsButtonElement):
15395         * html/shadow/MediaControlRootElement.cpp:
15396         (WebCore::MediaControlRootElement::MediaControlRootElement):
15397         (WebCore::MediaControlRootElement::create):
15398         (WebCore::MediaControlRootElement::setMediaController):
15399         (WebCore::MediaControlRootElement::hide):
15400         (WebCore::MediaControlRootElement::makeTransparent):
15401         (WebCore::MediaControlRootElement::reset):
15402         (WebCore::MediaControlRootElement::reportedError):
15403         * html/shadow/MediaControlRootElement.h:
15404         (WebCore):
15405         (MediaControlRootElement):
15406         * html/shadow/MediaControlRootElementChromium.cpp:
15407         (WebCore::MediaControlRootElementChromium::initializeControls):
15408         * html/shadow/MediaControls.h:
15409         (MediaControls):
15410         * platform/Language.cpp:
15411         (WebCore):
15412         * platform/Language.h:
15413         (WebCore):
15414
15415 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15416
15417         [TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
15418         https://bugs.webkit.org/show_bug.cgi?id=101675
15419
15420         Reviewed by Noam Rosenthal.
15421
15422         Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
15423         value equals image->nativeImageForCurrentFrame() by change, we can encounter
15424         undefined behavior.
15425
15426         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
15427         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
15428         (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
15429
15430 2012-11-09  Dean Jackson  <dino@apple.com>
15431
15432         Support list of tracks in caption media controls
15433         https://bugs.webkit.org/show_bug.cgi?id=101669
15434
15435         Reviewed by Eric Carlson.
15436
15437         Add some new elements to the media control shadow DOM that display the list of available
15438         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15439         where it is given a very basic design. At the moment only the list of available tracks
15440         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15441
15442         No new tests - this doesn't expose any testable surface.
15443
15444         * css/mediaControls.css: Added default rules that hide the new elements.
15445         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15446         * html/shadow/MediaControlElements.cpp:
15447         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15448         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15449         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15450         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15451         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15452         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15453         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15454         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15455         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15456         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15457         * html/shadow/MediaControlElements.h:
15458         (MediaControlElement):
15459         (MediaControlToggleClosedCaptionsButtonElement):
15460         (MediaControlClosedCaptionsContainerElement):
15461         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15462         * html/shadow/MediaControlRootElement.cpp:
15463         (WebCore::MediaControlRootElement::MediaControlRootElement):
15464         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15465         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15466         (WebCore::MediaControlRootElement::hide):
15467         (WebCore::MediaControlRootElement::makeTransparent):
15468         (WebCore::MediaControlRootElement::reset):
15469         (WebCore::MediaControlRootElement::reportedError):
15470         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15471         (WebCore):
15472         * html/shadow/MediaControlRootElement.h:
15473         (WebCore):
15474         (MediaControlRootElement):
15475         * html/shadow/MediaControlRootElementChromium.cpp:
15476         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15477         * html/shadow/MediaControls.h:
15478         (MediaControls):
15479         * platform/Language.cpp:
15480         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15481         * platform/Language.h:
15482         (WebCore):
15483
15484 2012-11-09  Noel Gordon  <noel.gordon@gmail.com>
15485
15486         [chromium] Should pass fast/images/paletted-png-with-color-profile.html
15487         https://bugs.webkit.org/show_bug.cgi?id=101551
15488
15489         Reviewed by Adam Barth.
15490
15491         Support decoding color PALETTE images that have an ICC color profile.
15492
15493         Covered by fast/images/png-suite/test.html and many other fast/image tests.
15494
15495         * platform/image-decoders/png/PNGImageDecoder.cpp:
15496         (WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
15497         transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
15498         corrected. Use the transparency count from the tRNS reader to detect the expansion
15499         of RGB and PALLETE image pixels to RGBA.
15500
15501 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15502
15503         Correct hit-test point scaling for document.elementFromPoint
15504         https://bugs.webkit.org/show_bug.cgi?id=101798
15505
15506         Reviewed by Adam Barth.
15507
15508         The hit-test point come from user JavaScript is in the document coordinate.
15509         Convert to the frame coordinate with correct scale factor for hit test.
15510
15511         Test: fast/dom/elementFromPoint-scaled-scrolled.html
15512
15513         * dom/Document.cpp:
15514         (WebCore::nodeFromPoint):
15515
15516 2012-11-09  Alec Flett  <alecflett@chromium.org>
15517
15518         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15519         https://bugs.webkit.org/show_bug.cgi?id=101415
15520
15521         Reviewed by Tony Chang.
15522
15523         Combine abstract interface IDBBackingStore with its only
15524         implementation, IDBLevelDBBackingStore, to reduce code
15525         complexity. The legacy structure existed to support a SQLLite
15526         IDBBackingStore, but it is no longer worth the complexity to
15527         support this abstraction.
15528
15529         Changes include:
15530         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15531
15532         2) Merge together IDBBackingStore's inner classes: Cursor,
15533         Transaction, and ObjectStoreRecordIdentfier with their respective
15534         subclasses in IDBLevelDBBackingStore.
15535
15536         3) Simplifying the inner Transaction class to not be refcounted or
15537         virtualized, to allow it to be a simple concrete member of its
15538         owner, IDBTransactionBackendImpl.
15539
15540         No new tests as this is purely a refactor.
15541
15542         * Modules/indexeddb/IDBBackingStore.cpp:
15543         (WebCore::recordInternalError):
15544         (WebCore::setUpMetadata):
15545         (WebCore::IDBBackingStore::IDBBackingStore):
15546         (WebCore):
15547         (WebCore::IDBBackingStore::~IDBBackingStore):
15548         (WebCore::IDBBackingStore::open):
15549         (WebCore::IDBBackingStore::getDatabaseNames):
15550         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15551         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15552         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15553         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15554         (WebCore::deleteRange):
15555         (WebCore::IDBBackingStore::deleteDatabase):
15556         (WebCore::IDBBackingStore::getObjectStores):
15557         (WebCore::setMaxObjectStoreId):
15558         (WebCore::IDBBackingStore::createObjectStore):
15559         (WebCore::IDBBackingStore::deleteObjectStore):
15560         (WebCore::IDBBackingStore::getRecord):
15561         (WebCore::IDBBackingStore::putRecord):
15562         (WebCore::IDBBackingStore::clearObjectStore):
15563         (WebCore::IDBBackingStore::deleteRecord):
15564         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15565         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15566         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15567         (WebCore::IDBBackingStore::getIndexes):
15568         (WebCore::setMaxIndexId):
15569         (WebCore::IDBBackingStore::createIndex):
15570         (WebCore::IDBBackingStore::deleteIndex):
15571         (WebCore::IDBBackingStore::putIndexDataForRecord):
15572         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15573         (WebCore::IDBBackingStore::findKeyInIndex):
15574         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15575         (WebCore::IDBBackingStore::keyExistsInIndex):
15576         (WebCore::IDBBackingStore::Cursor::Cursor):
15577         (WebCore::IDBBackingStore::Cursor::firstSeek):
15578         (WebCore::IDBBackingStore::Cursor::advance):
15579         (WebCore::IDBBackingStore::Cursor::continueFunction):
15580         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15581         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15582         (WebCore::ObjectStoreKeyCursorImpl::create):
15583         (ObjectStoreKeyCursorImpl):
15584         (WebCore::ObjectStoreKeyCursorImpl::value):
15585         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15586         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15587         (WebCore::ObjectStoreCursorImpl::create):
15588         (ObjectStoreCursorImpl):
15589         (WebCore::ObjectStoreCursorImpl::value):
15590         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15591         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15592         (WebCore::IndexKeyCursorImpl::create):
15593         (IndexKeyCursorImpl):
15594         (WebCore::IndexKeyCursorImpl::value):
15595         (WebCore::IndexKeyCursorImpl::primaryKey):
15596         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15597         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15598         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15599         (WebCore::IndexCursorImpl::create):
15600         (IndexCursorImpl):
15601         (WebCore::IndexCursorImpl::value):
15602         (WebCore::IndexCursorImpl::primaryKey):
15603         (WebCore::IndexCursorImpl::recordIdentifier):
15604         (WebCore::IndexCursorImpl::IndexCursorImpl):
15605         (WebCore::IndexCursorImpl::loadCurrentRow):
15606         (WebCore::objectStoreCursorOptions):
15607         (WebCore::indexCursorOptions):
15608         (WebCore::IDBBackingStore::openObjectStoreCursor):
15609         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15610         (WebCore::IDBBackingStore::openIndexKeyCursor):
15611         (WebCore::IDBBackingStore::openIndexCursor):
15612         (WebCore::IDBBackingStore::Transaction::Transaction):
15613         (WebCore::IDBBackingStore::Transaction::begin):
15614         (WebCore::IDBBackingStore::Transaction::commit):
15615         (WebCore::IDBBackingStore::Transaction::rollback):
15616         * Modules/indexeddb/IDBBackingStore.h:
15617         (WebCore):
15618         (IDBBackingStore):
15619         (RecordIdentifier):
15620         (WebCore::IDBBackingStore::RecordIdentifier::create):
15621         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15622         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15623         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15624         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15625         (WebCore::IDBBackingStore::RecordIdentifier::version):
15626         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15627         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15628         (Transaction):
15629         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15630         (CursorOptions):
15631         (Cursor):
15632         (WebCore::IDBBackingStore::Cursor::Cursor):
15633         (WebCore::IDBBackingStore::Cursor::key):
15634         (WebCore::IDBBackingStore::Cursor::primaryKey):
15635         (WebCore::IDBBackingStore::Cursor::~Cursor):
15636         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15637         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15638         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15639         (WebCore::IDBIndexBackendImpl::countInternal):
15640         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15641         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15642         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15643         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15644         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15645         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15646         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15647         (WebCore::IDBTransactionBackendImpl::abort):
15648         (WebCore::IDBTransactionBackendImpl::commit):
15649         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15650         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15651         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15652         * WebCore.xcodeproj/project.pbxproj:
15653
15654 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15655
15656         Correct scroll adjustment for touchEvent.clientX/clientY
15657         https://bugs.webkit.org/show_bug.cgi?id=101800
15658
15659         Reviewed by Adam Barth.
15660
15661         FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
15662         Convert to document coordinate before passing to JavaScript.
15663
15664         Test: fast/events/touch/touch-scaled-scrolled.html
15665
15666         * dom/Touch.cpp:
15667         (WebCore::contentsX):
15668         (WebCore::contentsY):
15669
15670 2012-11-09  Alexandru Chiculita  <achicu@adobe.com>
15671
15672         [Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
15673         https://bugs.webkit.org/show_bug.cgi?id=98990
15674
15675         Reviewed by Noam Rosenthal.
15676
15677         Added code that draws the Custom Filter in the TextureMapperGL. Also added 
15678         required code to make a depth buffer for a BitmapTextureGL.
15679
15680         Note that the code is not optimized yet, so it will always recompile the shader.
15681
15682         Test: css3/filters/custom/composited/custom-filter-blend-modes.html
15683
15684         * platform/graphics/texmap/TextureMapperGL.cpp:
15685         (WebCore::BitmapTextureGL::BitmapTextureGL):
15686         (WebCore::getPassesRequiredForFilter):
15687         (WebCore):
15688         (WebCore::TextureMapperGL::drawUsingCustomFilter):
15689         (WebCore::BitmapTextureGL::applyFilters):
15690         (WebCore::BitmapTextureGL::initializeDepthBuffer):
15691         (WebCore::BitmapTextureGL::~BitmapTextureGL):
15692         * platform/graphics/texmap/TextureMapperGL.h:
15693         (BitmapTextureGL):
15694
15695 2012-11-09  Sadrul Habib Chowdhury  <sadrul@chromium.org>
15696
15697         CustomEvent: Allow taking in a serialized value during initialization.
15698         https://bugs.webkit.org/show_bug.cgi?id=101348
15699
15700         Reviewed by Adam Barth.
15701
15702         If a CustomEvent is initialized using a serialized value, then for each access
15703         to |detail|, the value is deserialized first. This way, each world gets a different
15704         deserialization.
15705
15706         * UseV8.cmake:
15707         * WebCore.gypi:
15708         * bindings/v8/V8HiddenPropertyName.h:
15709         (WebCore):
15710         * bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
15711         (WebCore):
15712         (WebCore::V8CustomEvent::detailAccessorGetter):
15713         * dom/CustomEvent.cpp:
15714         (WebCore::CustomEvent::initCustomEvent):
15715         (WebCore):
15716         * dom/CustomEvent.h:
15717         (CustomEvent):
15718         (WebCore::CustomEvent::serializedScriptValue):
15719         * dom/CustomEvent.idl:
15720
15721 2012-11-09  Brady Eidson  <beidson@apple.com>
15722
15723         Implement WebResourceBuffer::isEmpty()
15724         https://bugs.webkit.org/show_bug.cgi?id=101805
15725
15726         Reviewed by Alexey Proskuryakov.
15727
15728         This is required to make the existing subresource loading in NetworkProcess work correctly,
15729         as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver 
15730         the data to the ResourceLoader.
15731
15732         No new tests (No change in behavior in any configuration we test.)
15733
15734         * loader/ResourceBuffer.h: Make isEmpty() virtual.
15735
15736 2012-11-09  Michael Saboff  <msaboff@apple.com>
15737
15738         HTML Attributes names and values should be created as 8 bit string where possible
15739         https://bugs.webkit.org/show_bug.cgi?id=101781
15740
15741         Reviewed by Filip Pizlo.
15742
15743         Given that almost all attribute names and values are lower case ASCII, we should try to
15744         create 8 bit strings to process them.  Creating an AtomicString already tries to make
15745         an 8 bit string, so that didn't need to change.
15746
15747         No new tests, functionality covered by existing tests.
15748
15749         * html/HTMLViewSourceDocument.cpp:
15750         (WebCore::HTMLViewSourceDocument::processTagToken):
15751         * html/parser/HTMLMetaCharsetParser.cpp:
15752         (WebCore::HTMLMetaCharsetParser::processMeta):
15753         * html/parser/HTMLPreloadScanner.cpp:
15754         (WebCore::PreloadTask::processAttributes):
15755
15756 2012-11-09  Dana Jansens  <danakj@chromium.org>
15757
15758         [chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
15759         https://bugs.webkit.org/show_bug.cgi?id=101795
15760
15761         Reviewed by James Robinson.
15762
15763         * WebCore.gyp/WebCore.gyp:
15764
15765 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15766
15767         Unreviewed, rolling out r134101.
15768         http://trac.webkit.org/changeset/134101
15769         https://bugs.webkit.org/show_bug.cgi?id=101790
15770
15771         IDBDatabaseBackendTest.BackingStoreRetention failing
15772         (Requested by jsbell|gardener on #webkit).
15773
15774         * GNUmakefile.list.am:
15775         * Modules/indexeddb/IDBBackingStore.cpp:
15776         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
15777         (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
15778         (WebCore::IDBLevelDBBackingStore::open):
15779         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
15780         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
15781         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
15782         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
15783         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
15784         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
15785         (WebCore::IDBLevelDBBackingStore::getObjectStores):
15786         (WebCore::IDBLevelDBBackingStore::createObjectStore):
15787         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
15788         (WebCore::IDBLevelDBBackingStore::getRecord):
15789         (WebCore):
15790         (WebCore::IDBLevelDBBackingStore::putRecord):
15791         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
15792         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
15793         (WebCore::IDBLevelDBBackingStore::deleteRecord):
15794         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
15795         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15796         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
15797         (WebCore::IDBLevelDBBackingStore::getIndexes):
15798         (WebCore::IDBLevelDBBackingStore::createIndex):
15799         (WebCore::IDBLevelDBBackingStore::deleteIndex):
15800         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
15801         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
15802         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
15803         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
15804         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
15805         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
15806         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
15807         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
15808         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
15809         (WebCore::IDBLevelDBBackingStore::createTransaction):
15810         (WebCore::IDBLevelDBBackingStore::Transaction::create):
15811         (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
15812         (WebCore::IDBLevelDBBackingStore::Transaction::begin):
15813         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
15814         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
15815         (WebCore::IDBLevelDBBackingStore::backingStoreExists):
15816         * Modules/indexeddb/IDBBackingStore.h:
15817         (WebCore):
15818         (WebCore::IDBBackingStore::~IDBBackingStore):
15819         (IDBBackingStore):
15820         (RecordIdentifier):
15821         (WebCore::IDBBackingStore::Cursor::~Cursor):
15822         (WebCore::IDBBackingStore::Transaction::~Transaction):
15823         (Transaction):
15824         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15825         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15826         * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
15827         (WebCore):
15828         (IDBLevelDBBackingStore):
15829         (Transaction):
15830         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
15831         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15832         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15833         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15834         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15835         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15836         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15837         (WebCore::IDBTransactionBackendImpl::abort):
15838         (WebCore::IDBTransactionBackendImpl::commit):
15839         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15840         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15841         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15842         * WebCore.xcodeproj/project.pbxproj:
15843
15844 2012-11-09  Erik Arvidsson  <arv@chromium.org>
15845
15846         REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
15847         https://bugs.webkit.org/show_bug.cgi?id=101627
15848
15849         Reviewed by Alexey Proskuryakov.
15850
15851         We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
15852         was changed. If an element is moved from a standards document to a quirks mode document the
15853         m_classNamesForQuirksMode would not be up to date which lead to wrong results.
15854
15855         Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).
15856
15857         Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html
15858
15859         * html/ClassList.cpp:
15860         (WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
15861                                           it is up to date.
15862         * html/ClassList.h:
15863
15864 2012-11-09  Alec Flett  <alecflett@chromium.org>
15865
15866         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15867         https://bugs.webkit.org/show_bug.cgi?id=101415
15868
15869         Reviewed by Tony Chang.
15870
15871         Combine abstract interface IDBBackingStore with its only
15872         implementation, IDBLevelDBBackingStore, to reduce code
15873         complexity. The legacy structure existed to support a SQLLite
15874         IDBBackingStore, but it is no longer worth the complexity to
15875         support this abstraction.
15876
15877         Changes include:
15878         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15879
15880         2) Merge together IDBBackingStore's inner classes: Cursor,
15881         Transaction, and ObjectStoreRecordIdentfier with their respective
15882         subclasses in IDBLevelDBBackingStore.
15883
15884         3) Simplifying the inner Transaction class to not be refcounted or
15885         virtualized, to allow it to be a simple concrete member of its
15886         owner, IDBTransactionBackendImpl.
15887
15888         No new tests as this is purely a refactor.
15889
15890         * Modules/indexeddb/IDBBackingStore.cpp:
15891         (WebCore::recordInternalError):
15892         (WebCore::setUpMetadata):
15893         (WebCore::IDBBackingStore::IDBBackingStore):
15894         (WebCore):
15895         (WebCore::IDBBackingStore::~IDBBackingStore):
15896         (WebCore::IDBBackingStore::open):
15897         (WebCore::IDBBackingStore::getDatabaseNames):
15898         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15899         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15900         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15901         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15902         (WebCore::deleteRange):
15903         (WebCore::IDBBackingStore::deleteDatabase):
15904         (WebCore::IDBBackingStore::getObjectStores):
15905         (WebCore::setMaxObjectStoreId):
15906         (WebCore::IDBBackingStore::createObjectStore):
15907         (WebCore::IDBBackingStore::deleteObjectStore):
15908         (WebCore::IDBBackingStore::getRecord):
15909         (WebCore::IDBBackingStore::putRecord):
15910         (WebCore::IDBBackingStore::clearObjectStore):
15911         (WebCore::IDBBackingStore::deleteRecord):
15912         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15913         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15914         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15915         (WebCore::IDBBackingStore::getIndexes):
15916         (WebCore::setMaxIndexId):
15917         (WebCore::IDBBackingStore::createIndex):
15918         (WebCore::IDBBackingStore::deleteIndex):
15919         (WebCore::IDBBackingStore::putIndexDataForRecord):
15920         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15921         (WebCore::IDBBackingStore::findKeyInIndex):
15922         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15923         (WebCore::IDBBackingStore::keyExistsInIndex):
15924         (WebCore::IDBBackingStore::Cursor::Cursor):
15925         (WebCore::IDBBackingStore::Cursor::firstSeek):
15926         (WebCore::IDBBackingStore::Cursor::advance):
15927         (WebCore::IDBBackingStore::Cursor::continueFunction):
15928         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15929         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15930         (WebCore::ObjectStoreKeyCursorImpl::create):
15931         (ObjectStoreKeyCursorImpl):
15932         (WebCore::ObjectStoreKeyCursorImpl::value):
15933         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15934         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15935         (WebCore::ObjectStoreCursorImpl::create):
15936         (ObjectStoreCursorImpl):
15937         (WebCore::ObjectStoreCursorImpl::value):
15938         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15939         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15940         (WebCore::IndexKeyCursorImpl::create):
15941         (IndexKeyCursorImpl):
15942         (WebCore::IndexKeyCursorImpl::value):
15943         (WebCore::IndexKeyCursorImpl::primaryKey):
15944         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15945         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15946         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15947         (WebCore::IndexCursorImpl::create):
15948         (IndexCursorImpl):
15949         (WebCore::IndexCursorImpl::value):
15950         (WebCore::IndexCursorImpl::primaryKey):
15951         (WebCore::IndexCursorImpl::recordIdentifier):
15952         (WebCore::IndexCursorImpl::IndexCursorImpl):
15953         (WebCore::IndexCursorImpl::loadCurrentRow):
15954         (WebCore::objectStoreCursorOptions):
15955         (WebCore::indexCursorOptions):
15956         (WebCore::IDBBackingStore::openObjectStoreCursor):
15957         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15958         (WebCore::IDBBackingStore::openIndexKeyCursor):
15959         (WebCore::IDBBackingStore::openIndexCursor):
15960         (WebCore::IDBBackingStore::Transaction::Transaction):
15961         (WebCore::IDBBackingStore::Transaction::begin):
15962         (WebCore::IDBBackingStore::Transaction::commit):
15963         (WebCore::IDBBackingStore::Transaction::rollback):
15964         * Modules/indexeddb/IDBBackingStore.h:
15965         (WebCore):
15966         (IDBBackingStore):
15967         (RecordIdentifier):
15968         (WebCore::IDBBackingStore::RecordIdentifier::create):
15969         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15970         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15971         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15972         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15973         (WebCore::IDBBackingStore::RecordIdentifier::version):
15974         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15975         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15976         (Transaction):
15977         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15978         (CursorOptions):
15979         (Cursor):
15980         (WebCore::IDBBackingStore::Cursor::Cursor):
15981         (WebCore::IDBBackingStore::Cursor::key):
15982         (WebCore::IDBBackingStore::Cursor::primaryKey):
15983         (WebCore::IDBBackingStore::Cursor::~Cursor):
15984         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15985         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15986         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15987         (WebCore::IDBIndexBackendImpl::countInternal):
15988         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15989         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15990         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15991         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15992         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15993         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15994         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15995         (WebCore::IDBTransactionBackendImpl::abort):
15996         (WebCore::IDBTransactionBackendImpl::commit):
15997         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15998         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15999         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
16000         * WebCore.xcodeproj/project.pbxproj:
16001
16002 2012-10-28  Timothy Hatcher  <timothy@apple.com>
16003
16004         Make -webkit-canvas in CSS use the full backing store instead
16005         of always 1x when rendering.
16006
16007         https://bugs.webkit.org/show_bug.cgi?id=100611
16008
16009         Reviewed by Dean Jackson.
16010
16011         Test: fast/canvas/canvas-as-image-hidpi.html
16012
16013         * html/HTMLCanvasElement.cpp:
16014         (WebCore::HTMLCanvasElement::makePresentationCopy): Pass Unscaled to copyImage.
16015         (WebCore::HTMLCanvasElement::copiedImage): Ditto.
16016         * platform/graphics/ImageBuffer.h:
16017         * platform/graphics/cg/ImageBufferCG.cpp:
16018         (WebCore::ImageBuffer::copyImage): Added Scale parameter and use copyNativeImage for Unscaled.
16019         * platform/graphics/cairo/ImageBufferCairo.cpp:
16020         (WebCore::ImageBuffer::copyImage): Added unnamed ScaleBehavior parameter.
16021         * platform/graphics/qt/ImageBufferQt.cpp:
16022         (WebCore::ImageBuffer::copyImage): Ditto.
16023         * platform/graphics/skia/ImageBufferSkia.cpp:
16024         (WebCore::ImageBuffer::copyImage): Ditto.
16025         * platform/graphics/wince/ImageBufferWinCE.cpp:
16026         (WebCore::ImageBuffer::copyImage): Ditto.
16027         * platform/graphics/wx/ImageBufferWx.cpp:
16028         (WebCore::ImageBuffer::copyImage): Ditto.
16029
16030 2012-10-28  Timothy Hatcher  <timothy@apple.com>
16031
16032         Reset the canvas backing store pixel ratio when the buffer resizes.
16033
16034         The backing store was not being recreated using the current page pixel ratio
16035         when a resize occurred.
16036
16037         https://bugs.webkit.org/show_bug.cgi?id=100608
16038
16039         Reviewed by Darin Adler.
16040
16041         Test: fast/canvas/canvas-resize-reset-pixelRatio.html
16042
16043         * html/HTMLCanvasElement.cpp:
16044         (WebCore::HTMLCanvasElement::HTMLCanvasElement): Use targetDeviceScaleFactor.
16045         (WebCore::HTMLCanvasElement::reset): Do a clear only if the pixel ratios also
16046         match. Store the new pixel ratio in m_deviceScaleFactor.
16047         (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Added.
16048         * html/HTMLCanvasElement.h:
16049         (WebCore::HTMLCanvasElement::setSize): Return early only if the sizes and
16050         pixel ratios match.
16051
16052 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
16053
16054         RemoveFormat command doesn't remove background color
16055         https://bugs.webkit.org/show_bug.cgi?id=101682
16056
16057         Reviewed by Tony Chang.
16058
16059         Fixed the bug by removing all non-transparent background-color properties.
16060
16061         Test: editing/execCommand/remove-format-background-color.html
16062
16063         * editing/RemoveFormatCommand.cpp:
16064         (WebCore::RemoveFormatCommand::doApply):
16065
16066 2012-11-09  Alec Flett  <alecflett@chromium.org>
16067
16068         IndexedDB: switch frontend to use int64_t-based references
16069         https://bugs.webkit.org/show_bug.cgi?id=100426
16070
16071         Reviewed by Tony Chang.
16072
16073         Remove String-based objectStore/index references, obsoleted by
16074         https://bugs.webkit.org/show_bug.cgi?id=100425.
16075
16076         No new tests as this is the second half of a refactor.
16077
16078         * Modules/indexeddb/IDBCallbacks.h:
16079         * Modules/indexeddb/IDBDatabase.cpp:
16080         (WebCore::IDBDatabase::deleteObjectStore):
16081         (WebCore::IDBDatabase::transaction):
16082         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16083         (WebCore::IDBDatabaseBackendImpl::setVersion):
16084         (WebCore::IDBDatabaseBackendImpl::transaction):
16085         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16086         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16087         (IDBDatabaseBackendImpl):
16088         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16089         (IDBDatabaseBackendInterface):
16090         * Modules/indexeddb/IDBMetadata.h:
16091         (WebCore::IDBObjectStoreMetadata::findIndex):
16092         (IDBObjectStoreMetadata):
16093         (WebCore::IDBObjectStoreMetadata::containsIndex):
16094         * Modules/indexeddb/IDBObjectStore.cpp:
16095         (WebCore::IDBObjectStore::put):
16096         (WebCore):
16097         (WebCore::IDBObjectStore::index):
16098         (WebCore::IDBObjectStore::deleteIndex):
16099         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16100         (WebCore::IDBObjectStoreBackendImpl::put):
16101         (WebCore):
16102         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
16103         (IDBObjectStoreBackendImpl):
16104         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
16105         * inspector/Inspector-1.0.json:
16106         * inspector/Inspector.json:
16107         * inspector/InspectorIndexedDBAgent.cpp:
16108         (WebCore):
16109         (WebCore::InspectorIndexedDBAgent::requestData):
16110         * inspector/InspectorIndexedDBAgent.h:
16111         (InspectorIndexedDBAgent):
16112
16113 2012-11-09  Mario Sanchez Prada  <mario@webkit.org>
16114
16115         [GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk
16116         https://bugs.webkit.org/show_bug.cgi?id=101727
16117
16118         Reviewed by Chris Fleizach.
16119
16120         Added conditional compilation checks for GTK+ specific
16121         accessibility code, to pave the way for sharing this
16122         implementation with other ports (e.g WebKitEFL).
16123
16124         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
16125         (webkitAccessibleTextGetTextAfterOffset): Added conditional
16126         compilation checks, only implementing it in GTK so far.
16127         (webkitAccessibleTextGetTextAtOffset): Ditto.
16128         (webkitAccessibleTextGetTextBeforeOffset): Ditto.
16129         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
16130         (atkParentOfRootObject): Added conditional compilation checks,
16131         only implementing in GTK the part of getting the accessible object
16132         for the root object.
16133         (webkitAccessibleGetParent): Updated comments.
16134         (webkitAccessibleGetNChildren): Ditto.
16135         (webkitAccessibleRefChild): Ditto.
16136         (webkitAccessibleGetIndexInParent): Ditto.
16137         (webkitAccessibleGetAttributes): Only set the 'toolkit' attribute
16138         for GTK. Other ports might be interested in this too.
16139         (setAtkStateSetFromCoreObject): Updated comments.
16140
16141 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16142
16143         MediaStream API: Don't trigger any object deletion during RTCPeerConnection::stop
16144         https://bugs.webkit.org/show_bug.cgi?id=101586
16145
16146         Reviewed by Adam Barth.
16147
16148         Stop calling stop on the RTCPeerConnectionHandler, and don't delete it, when
16149         ActiveDOMObject::stop is called on RTCPeerConnection. Due to the async nature of the new
16150         API some WebCore objects might be cleaned away which is not allowed at this stage.
16151
16152         This behaviour is not possible to test unfortunately in webkit.
16153
16154         * Modules/mediastream/RTCPeerConnection.cpp:
16155         (WebCore::RTCPeerConnection::stop):
16156
16157 2012-11-09  Joshua Bell  <jsbell@chromium.org>
16158
16159         [Chromium] Unreviewed gardening. Fix chromium-win builds following r134082
16160
16161         * WebCore.gypi:
16162
16163 2012-11-09  Dan Carney  <dcarney@google.com>
16164
16165         [V8] Remove ScriptController::windowShell()
16166         https://bugs.webkit.org/show_bug.cgi?id=100235
16167
16168         Reviewed by Adam Barth.
16169
16170         Refactored windowShell(DOMWrapperWorld*) and
16171         existingWindowShell(DOMWrapperWorld*) to be like JSC.
16172
16173         No new tests. No change in functionality.
16174
16175         * bindings/scripts/CodeGeneratorV8.pm:
16176         (GenerateToV8Converters):
16177         * bindings/v8/DOMWrapperWorld.cpp:
16178         (WebCore::isolatedWorldMap):
16179         (WebCore::DOMWrapperWorld::getAllWorlds):
16180         (WebCore):
16181         * bindings/v8/DOMWrapperWorld.h:
16182         (DOMWrapperWorld):
16183         * bindings/v8/PageScriptDebugServer.cpp:
16184         (WebCore::PageScriptDebugServer::addListener):
16185         * bindings/v8/ScriptController.cpp:
16186         (WebCore::ScriptController::~ScriptController):
16187         (WebCore::ScriptController::clearForOutOfMemory):
16188         (WebCore):
16189         (WebCore::ScriptController::clearForClose):
16190         (WebCore::ScriptController::updateSecurityOrigin):
16191         (WebCore::ScriptController::initializeMainWorld): Returns true if the main world was initialized.
16192         (WebCore::existingWindowShellWorkaroundWorld):
16193         (WebCore::ScriptController::existingWindowShell):
16194         (WebCore::ScriptController::windowShell):
16195         (WebCore::ScriptController::evaluateInIsolatedWorld):
16196         (WebCore::ScriptController::currentWorldContext):
16197         (WebCore::ScriptController::mainWorldContext):
16198         (WebCore::ScriptController::haveInterpreter):
16199         (WebCore::ScriptController::enableEval):
16200         (WebCore::ScriptController::disableEval):
16201         (WebCore::ScriptController::clearWindowShell):
16202         (WebCore::ScriptController::setContextDebugId):
16203         (WebCore::ScriptController::updateDocument):
16204         (WebCore::ScriptController::namedItemAdded):
16205         (WebCore::ScriptController::namedItemRemoved):
16206         * bindings/v8/ScriptController.h:
16207         (ScriptController):
16208         (WebCore::ScriptController::getAllWorlds):
16209         * bindings/v8/V8Binding.cpp:
16210         (WebCore::perContextDataForCurrentWorld):
16211         (WebCore::handleOutOfMemory):
16212         * bindings/v8/V8DOMWindowShell.cpp:
16213         (WebCore::V8DOMWindowShell::initializeIfNeeded):
16214         (WebCore::V8DOMWindowShell::updateDocument):
16215         (WebCore::V8DOMWindowShell::namedItemAdded):
16216         (WebCore::V8DOMWindowShell::namedItemRemoved):
16217         * bindings/v8/V8DOMWindowShell.h:
16218         (WebCore::V8DOMWindowShell::isContextInitialized):
16219         (WebCore::V8DOMWindowShell::isGlobalInitialized):
16220         * bindings/v8/custom/V8DocumentCustom.cpp:
16221         (WebCore::toV8):
16222         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
16223         (WebCore::toV8):
16224         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
16225         (WebCore::toV8):
16226
16227 2012-11-09  Adam Barth  <abarth@webkit.org>
16228
16229         [V8] Remove a level of indirection in DOMDataStore
16230         https://bugs.webkit.org/show_bug.cgi?id=101690
16231
16232         Reviewed by Kentaro Hara.
16233
16234         There is no longer any reason for the DOMDataStore to hold the wrapper
16235         map via a pointer. It can just hold the wrapper map directly, saving a
16236         level of indirection. I doubt this has any measurable performance gain.
16237
16238         * bindings/v8/DOMDataStore.cpp:
16239         (WebCore::DOMDataStore::DOMDataStore):
16240         (WebCore::DOMDataStore::~DOMDataStore):
16241         (WebCore::DOMDataStore::reportMemoryUsage):
16242         * bindings/v8/DOMDataStore.h:
16243         (WebCore::DOMDataStore::get):
16244         (WebCore::DOMDataStore::set):
16245         (DOMDataStore):
16246
16247 2012-11-09  Mihnea Ovidenie  <mihnea@adobe.com>
16248
16249         [CSSRegions] Region styling properties are not filtered correctly
16250         https://bugs.webkit.org/show_bug.cgi?id=101768
16251
16252         Reviewed by Andreas Kling.
16253
16254         Region styling allows only a handful of css properties. There is a mechanism in place,
16255         in StyleResolver::isValidRegionStyleProperty that filters the supported region style properties.
16256         In order to be effective, this mechanism relies on RuleData::m_isInRegionRule being set correctly.
16257         This patch makes sure that the flag RuleData::m_isInRegionRule is set properly in RuleData constructor.
16258
16259         Test: fast/regions/region-style-not-supported-properties.html
16260
16261         * css/RuleSet.cpp:
16262         (WebCore::RuleData::RuleData):
16263
16264 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16265
16266         MediaStream API: Deleting all files relating to the deprecated PeerConnection00
16267         https://bugs.webkit.org/show_bug.cgi?id=101730
16268
16269         Reviewed by Adam Barth.
16270
16271         Since RTCPeerConenction has superseeded PeerConnection00 this patch removes all
16272         files relating to the old API.
16273
16274         No testing needed, the remaining tests makes sure that nothing else breaks.
16275
16276         * CMakeLists.txt:
16277         * GNUmakefile.list.am:
16278         * Modules/mediastream/DOMWindowMediaStream.idl:
16279         * Modules/mediastream/IceCallback.h: Removed.
16280         * Modules/mediastream/IceCallback.idl: Removed.
16281         * Modules/mediastream/IceCandidate.cpp: Removed.
16282         * Modules/mediastream/IceCandidate.h: Removed.
16283         * Modules/mediastream/IceCandidate.idl: Removed.
16284         * Modules/mediastream/PeerConnection00.cpp: Removed.
16285         * Modules/mediastream/PeerConnection00.h: Removed.
16286         * Modules/mediastream/PeerConnection00.idl: Removed.
16287         * Modules/mediastream/SessionDescription.cpp: Removed.
16288         * Modules/mediastream/SessionDescription.h: Removed.
16289         * Modules/mediastream/SessionDescription.idl: Removed.
16290         * WebCore.gypi:
16291         * bindings/generic/RuntimeEnabledFeatures.cpp:
16292         (WebCore):
16293         * bindings/generic/RuntimeEnabledFeatures.h:
16294         (RuntimeEnabledFeatures):
16295         * dom/EventTargetFactory.in:
16296         * platform/chromium/support/WebICECandidateDescriptor.cpp: Removed.
16297         * platform/chromium/support/WebICEOptions.cpp: Removed.
16298         * platform/chromium/support/WebMediaHints.cpp: Removed.
16299         * platform/mediastream/IceCandidateDescriptor.cpp: Removed.
16300         * platform/mediastream/IceCandidateDescriptor.h: Removed.
16301         * platform/mediastream/IceOptions.cpp: Removed.
16302         * platform/mediastream/IceOptions.h: Removed.
16303         * platform/mediastream/MediaHints.cpp: Removed.
16304         * platform/mediastream/MediaHints.h: Removed.
16305         * platform/mediastream/MediaStreamCenter.h:
16306         (WebCore):
16307         (MediaStreamCenter):
16308         * platform/mediastream/PeerConnection00Handler.cpp: Removed.
16309         * platform/mediastream/PeerConnection00Handler.h: Removed.
16310         * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
16311         * platform/mediastream/SessionDescriptionDescriptor.cpp: Removed.
16312         * platform/mediastream/SessionDescriptionDescriptor.h: Removed.
16313         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
16314         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
16315         (WebCore):
16316         (MediaStreamCenterBlackBerry):
16317         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
16318         * platform/mediastream/chromium/MediaStreamCenterChromium.h:
16319         (WebCore):
16320         (MediaStreamCenterChromium):
16321         * platform/mediastream/chromium/PeerConnection00Handler.cpp: Removed.
16322         * platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Removed.
16323         * platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Removed.
16324         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
16325         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
16326         (WebCore):
16327         (MediaStreamCenterGStreamer):
16328
16329 2012-11-09  Jer Noble  <jer.noble@apple.com>
16330
16331         Plugin diagnostic logging should send plugin file basename instead of MIME type.
16332         https://bugs.webkit.org/show_bug.cgi?id=101679
16333
16334         Reviewed by Eric Carlson.
16335
16336         Log the basename of the plugin file rather than the mime type so as to more
16337         accurately log which plugin was used to handle the request.
16338
16339         * loader/SubframeLoader.cpp:
16340         (WebCore::logPluginRequest): Log the plugin 'file' field, if present.
16341         * plugins/PluginData.cpp:
16342         (WebCore::PluginData::pluginInfoForMimeType): Factored out from pluginNameForMimeType.
16343         (WebCore::PluginData::pluginNameForMimeType): Use pluginInfoForMimeType to retrieve name field.
16344         (WebCore::PluginData::pluginFileForMimeType): Use pluginInfoForMimeType to retrieve file field.
16345         * plugins/PluginData.h:
16346
16347 2012-11-09  Alexey Proskuryakov  <ap@apple.com>
16348
16349         CookieJar uses Document class, which is a layering violation
16350         https://bugs.webkit.org/show_bug.cgi?id=101621
16351
16352         Reviewed by Brady Eidson.
16353
16354         Split CookieJar in two parts, one that takes a Document, and another that is a pure
16355         platform one, using NetworkingContext to access the correct platform storage.
16356
16357         * GNUmakefile.list.am:
16358         * PlatformBlackBerry.cmake:
16359         * Target.pri:
16360         * WebCore.gypi:
16361         * WebCore.gyp/WebCore.gyp:
16362         * WebCore.vcproj/WebCore.vcproj:
16363         * WebCore.xcodeproj/project.pbxproj:
16364         Updated.
16365
16366         * loader/CookieJar.cpp: Added.
16367         (WebCore::networkingContext):
16368         (WebCore::cookies):
16369         (WebCore::setCookies):
16370         (WebCore::cookiesEnabled):
16371         (WebCore::cookieRequestHeaderFieldValue):
16372         (WebCore::getRawCookies):
16373         (WebCore::deleteCookie):
16374         (WebCore::getHostnamesWithCookies):
16375         (WebCore::deleteCookiesForHostname):
16376         (WebCore::deleteAllCookies):
16377         * loader/CookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16378         This is an adaptor for pure platform implementations. Clients continue to use the
16379         old interface unchanged.
16380
16381         * platform/blackberry/CookieJarBlackBerry.cpp: Removed.
16382         * loader/blackberry/CookieJarBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/CookieJarBlackBerry.cpp.
16383         * platform/network/chromium/CookieJarChromium.cpp: Removed.
16384         * loader/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/platform/network/chromium/CookieJarChromium.cpp.
16385         These platforms do not have a pure platform implementation yet, so they just keep
16386         to use original implementations. Since the code is not in platform/ any more, the
16387         violation is resolved for Chromium and Blackberry, too.
16388
16389         * platform/CookieJar.h: Removed.
16390         * platform/network/PlatformCookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16391         The platform interface is now more uniform - all functions take a NetworkingContext
16392         instead of hardcoding which cookie storage to use in some cases.
16393         Renamed functions that are only useful for document.cookie implementation to look
16394         less generic.
16395
16396         * platform/mac/CookieJar.mm: Removed.
16397         * platform/network/mac/CookieJarMac.mm: Copied from Source/WebCore/platform/mac/CookieJar.mm.
16398         (WebCore::cookiesForDOM): This now takes a context instead of Document, and also
16399         takes a firstParty URL (unused on Mac, but used on some other platforms).
16400         (WebCore::cookieRequestHeaderFieldValue): Get cookie storage from context (and
16401         use shared one if context is null).
16402         (WebCore::setCookiesFromDOM): Ditto.
16403         (WebCore::cookiesEnabled): Ditto.
16404         (WebCore::getRawCookies): Ditto.
16405         (WebCore::deleteCookie): Ditto.
16406         (WebCore::getHostnamesWithCookies): Ditto. This used to only support default storage,
16407         but its cleaner to have a uniform interface.
16408         (WebCore::deleteCookiesForHostname): Ditto.
16409         (WebCore::deleteAllCookies): Ditto.
16410
16411         * platform/network/cf/CookieJarCFNet.cpp:
16412         Same changes as on Mac.
16413
16414         * platform/network/curl/CookieJarCurl.cpp:
16415         Updated for new interface. Implementation is largely a dummy one.
16416
16417         * platform/qt/CookieJarQt.h: Removed.
16418         * platform/network/qt/CookieJarQt.h: Copied from Source/WebCore/platform/qt/CookieJarQt.h.
16419         Moved to a common location, most cookie files were in network/ already.
16420
16421         * platform/qt/CookieJarQt.cpp: Removed.
16422         * platform/network/qt/CookieJarQt.cpp: Copied from Source/WebCore/platform/qt/CookieJarQt.cpp.
16423         (WebCore::setCookiesFromDOM): Use context's or shared cooke jar as appropriate.
16424         (WebCore::cookiesForDOM): Ditto.
16425         (WebCore::cookieRequestHeaderFieldValue): Ditto.
16426         (WebCore::cookiesEnabled): Ditto.
16427         (WebCore::getRawCookies): Ditto.
16428         (WebCore::deleteCookie): Ditto.
16429         (WebCore::getHostnamesWithCookies): Back-end implementation can only handle shared
16430         jar here, assert that argument does not request another one.
16431         (WebCore::deleteCookiesForHostname): Ditto.
16432         (WebCore::deleteAllCookies): Ditto.
16433
16434         * platform/network/soup/CookieJarSoup.cpp:
16435         (WebCore::cookieJarForContext):
16436         (WebCore::setCookiesFromDOM):
16437         (WebCore::cookiesForContext):
16438         (WebCore::cookiesForDOM):
16439         (WebCore::cookieRequestHeaderFieldValue):
16440         (WebCore::cookiesEnabled):
16441         (WebCore::getRawCookies):
16442         (WebCore::deleteCookie):
16443         (WebCore::getHostnamesWithCookies):
16444         (WebCore::deleteCookiesForHostname):
16445         (WebCore::deleteAllCookies):
16446         Updated for new function signatures, and use the same cross-platform logic for
16447         choosing a cookie jar.
16448
16449         * platform/network/soup/CookieJarSoup.h: Don't include unnecessary CooieJar.h.
16450         
16451         * platform/network/win/CookieJarWin.cpp:
16452         (WebCore::setCookiesFromDOM):
16453         (WebCore::cookiesForDOM):
16454         (WebCore::cookieRequestHeaderFieldValue):
16455         (WebCore::cookiesEnabled):
16456         (WebCore::getRawCookies):
16457         (WebCore::deleteCookie):
16458         (WebCore::getHostnamesWithCookies):
16459         (WebCore::deleteCookiesForHostname):
16460         (WebCore::deleteAllCookies):
16461         Updated for new function signatures.
16462
16463 2012-11-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
16464
16465         [css] Text decoration's "blink" not valid when CSS3_TEXT is enabled
16466         https://bugs.webkit.org/show_bug.cgi?id=101750
16467
16468         Reviewed by Ojan Vafai.
16469
16470         This patch fixes an issue regarding "blink" value, which is valid for CSS 2.1
16471         "text-decoration" property, but recently have its parser function modified by
16472         the addition of CSS3 "-webkit-text-decoration-line" property.
16473
16474         The 'fast/css/getComputedStyle/getComputedStyle-text-decoration.html'
16475         layout test is updated with all possible value combinations.
16476
16477         * css/CSSParser.cpp:
16478         (WebCore::CSSParser::parseTextDecoration): Added 'blink' value to list
16479         if accepted.
16480
16481 2012-11-09  Xan Lopez  <xlopez@igalia.com>
16482
16483         [GTK] Do not use 'ls' to list IDL files in EXTRA_DIST
16484         https://bugs.webkit.org/show_bug.cgi?id=101581
16485
16486         Reviewed by Martin Robinson.
16487
16488         Use normal GNU Make wildcards instead of 'ls' to list files in
16489         EXTRA_DIST, it's safer and more straightforward.
16490
16491         * GNUmakefile.am: ditto.
16492
16493 2012-11-09  Charles Wei  <charles.wei@torchmobile.com.cn>
16494
16495         Need to clear exception in JSDictionary that might have been caused by previous operation.
16496         https://bugs.webkit.org/show_bug.cgi?id=96614
16497
16498         Reviewed by George Staikos.
16499
16500         IndexedDB IDBDatabase::createObjectStore supports both String type of KeyPath and
16501         String Array type of KeyPath. It will first try to get the keyPath as a String Array,
16502         if fails, it will try to get KeyPath as a String, from the Dictionary. The first get
16503         will leave the internal ExecState of Dictionary in exception state. We need to clear
16504         the exception state before the 2nd query, otherwise the second query will also fail.
16505
16506         No new tests. The existing test case LayoutTests/storage/indexeddb/tutorial.html should
16507         now work with this patch.
16508         * bindings/js/JSDictionary.cpp:
16509         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
16510
16511 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16512
16513         Month/week picker should submit month/week string
16514         https://bugs.webkit.org/show_bug.cgi?id=101744
16515
16516         Reviewed by Kent Tamura.
16517
16518         Month/week picker should submit month/week string and not yyyy-mm-dd.
16519
16520         No new tests. Test will be added in Bug 101555 and Bug 101556.
16521
16522         * Resources/pagepopups/calendarPicker.js:
16523         (DaysTable.prototype._handleDayClick):
16524
16525 2012-11-07  Pavel Feldman  <pfeldman@chromium.org>
16526
16527         Web Inspector: wrong output for empty object {}
16528         https://bugs.webkit.org/show_bug.cgi?id=101356
16529
16530         Reviewed by Vsevolod Vlasov.
16531
16532         Changed preview formatting to iterate over enumerable properties only + visit the prototypes.
16533
16534         * inspector/InjectedScriptSource.js:
16535         (.):
16536         * inspector/front-end/ConsoleMessage.js:
16537         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
16538
16539 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16540
16541         Fix annotations in page popup files
16542         https://bugs.webkit.org/show_bug.cgi?id=101736
16543
16544         Reviewed by Kent Tamura.
16545
16546         Add @constructor where needed. Replacing /* with /** for annotations.
16547
16548         No new tests. No behavior change.
16549
16550         * Resources/pagepopups/calendarPicker.js:
16551         * Resources/pagepopups/pickerCommon.js:
16552         * Resources/pagepopups/suggestionPicker.js:
16553
16554 2012-11-09  Huang Dongsung  <luxtella@company100.net>
16555
16556         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
16557         https://bugs.webkit.org/show_bug.cgi?id=101656
16558
16559         Reviewed by Kenneth Rohde Christiansen.
16560
16561         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
16562         smartly, but currently TiledBackingStore expects a contents rect is big enough
16563         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
16564         is usually wrong expectation.
16565
16566         We must compute cover and keep rects using the visibleRect, instead of
16567         the rect intersecting the visibleRect with m_rect, because TBS can be
16568         used as a backing store of GraphicsLayer and the visible rect usually
16569         does not intersect with m_rect.
16570         In the below case, the intersecting rect is an empty.
16571
16572          +---------------+
16573          |               |
16574          |   m_rect      |
16575          |       +-------|-----------------------+
16576          |       | HERE  |  cover or keep        |
16577          +---------------+      rect             |
16578                  |         +---------+           |
16579                  |         | visible |           |
16580                  |         |  rect   |           |
16581                  |         +---------+           |
16582                  |                               |
16583                  |                               |
16584                  +-------------------------------+
16585
16586         We must create or keep the tiles in the HERE region. Currently in the
16587         case, we do not create or keep tiles on the HERE region. Moreover, in
16588         the case, we early return, which means we don't remove any tiles. It
16589         causes to waste heap and video memory.
16590
16591         This patch changes TiledBackingStore to manage tiles smartly for
16592         Coordinated Graphics.
16593
16594         Changing cache policy is not testable in layout tests.
16595
16596         * platform/graphics/TiledBackingStore.cpp:
16597         (WebCore::TiledBackingStore::visibleRect):
16598         (WebCore::TiledBackingStore::visibleAreaIsCovered):
16599         (WebCore::TiledBackingStore::createTiles):
16600         (WebCore::TiledBackingStore::adjustForContentsRect):
16601         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
16602         * platform/graphics/TiledBackingStore.h:
16603         (TiledBackingStore):
16604
16605 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16606
16607         Fix undefined variable in Week constructor for calendar picker
16608         https://bugs.webkit.org/show_bug.cgi?id=101734
16609
16610         Reviewed by Kent Tamura.
16611
16612         Closer compiler found an undefined variable in the Week constructor.
16613
16614         No new tests. This code isn't used.
16615
16616         * Resources/pagepopups/calendarPicker.js:
16617         (Week): Used wrong variable name.
16618
16619 2012-11-09  Pavel Feldman  <pfeldman@chromium.org>
16620
16621         Web Inspector: render canvas log as a grid.
16622         https://bugs.webkit.org/show_bug.cgi?id=101732
16623
16624         Reviewed by Vsevolod Vlasov.
16625
16626         * English.lproj/localizedStrings.js:
16627         * inspector/front-end/CanvasProfileView.js:
16628         (WebInspector.CanvasProfileView):
16629         (WebInspector.CanvasProfileView.prototype._onSelectTraceLog):
16630         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
16631         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
16632         (WebInspector.CanvasProfileHeader.prototype.traceLogId):
16633         (WebInspector.CanvasLogGrid):
16634         (WebInspector.CanvasLogGrid.prototype._didReceiveTraceLog):
16635         (WebInspector.CanvasLogGrid.prototype._createCallNode):
16636         * inspector/front-end/DataGrid.js:
16637         (WebInspector.DataGridNode.prototype.createCell):
16638         * inspector/front-end/canvasProfiler.css:
16639         (#canvas-replay-image-container):
16640
16641 2012-11-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
16642
16643         Regression(r107593) Crash in ContextMenuController::addInspectElementItem()
16644         https://bugs.webkit.org/show_bug.cgi?id=101595
16645
16646         Reviewed by Simon Hausmann.
16647
16648         If the contextMenu is a null pointer treat it as empty, appendItem will later
16649         create it if necessary.
16650
16651         * page/ContextMenuController.cpp:
16652         (WebCore::ContextMenuController::addInspectElementItem):
16653
16654 2012-11-09  Christophe Dumez  <christophe.dumez@intel.com>
16655
16656         [EFL][WK2] Add support for custom cursors
16657         https://bugs.webkit.org/show_bug.cgi?id=101723
16658
16659         Reviewed by Kenneth Rohde Christiansen.
16660
16661         Add getEvasObject() virtual method to Image class and
16662         provide implementation for BitmapImage.
16663
16664         No new tests, no behavior change.
16665
16666         * platform/efl/CursorEfl.cpp:
16667         (WebCore::cursorString):
16668         * platform/graphics/BitmapImage.h:
16669         (BitmapImage):
16670         * platform/graphics/Image.h:
16671         (Image):
16672         (WebCore::Image::getEvasObject):
16673         * platform/graphics/efl/ImageEfl.cpp:
16674         (WebCore::BitmapImage::getEvasObject):
16675         (WebCore):
16676
16677 2012-11-09  Adam Barth  <abarth@webkit.org>
16678
16679         IndexedDB should use mostly ScriptWrappable DOM objects
16680         https://bugs.webkit.org/show_bug.cgi?id=101694
16681
16682         Reviewed by Kentaro Hara.
16683
16684         These object always have JavaScript wrappers, so we should store the
16685         wrappers inline to use less memory and be faster.
16686
16687         * Modules/indexeddb/IDBAny.h:
16688         * Modules/indexeddb/IDBCursor.h:
16689         * Modules/indexeddb/IDBDatabase.h:
16690         * Modules/indexeddb/IDBFactory.h:
16691         * Modules/indexeddb/IDBIndex.h:
16692         * Modules/indexeddb/IDBKey.h:
16693         * Modules/indexeddb/IDBKeyRange.h:
16694         * Modules/indexeddb/IDBObjectStore.h:
16695         * Modules/indexeddb/IDBRequest.h:
16696         * Modules/indexeddb/IDBTransaction.h:
16697
16698 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16699
16700         Web Inspector: Add meaningful error message when request content was evicted from inspector cache.
16701         https://bugs.webkit.org/show_bug.cgi?id=101578
16702
16703         Reviewed by Yury Semikhatsky.
16704
16705         Added specific error message when request content was evicted from inspector cache.
16706         Replaced purge with evict in fields/methods names.
16707
16708         * inspector/InspectorResourceAgent.cpp:
16709         (WebCore::InspectorResourceAgent::getResponseBody):
16710         * inspector/NetworkResourcesData.cpp:
16711         (WebCore::NetworkResourcesData::ResourceData::ResourceData):
16712         (WebCore::NetworkResourcesData::ResourceData::evictContent):
16713         (WebCore::NetworkResourcesData::setResourceContent):
16714         (WebCore::NetworkResourcesData::maybeAddResourceData):
16715         (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
16716         (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
16717         (WebCore::NetworkResourcesData::ensureFreeSpace):
16718         * inspector/NetworkResourcesData.h:
16719         (WebCore::NetworkResourcesData::ResourceData::isContentEvicted):
16720         (ResourceData):
16721
16722 2012-11-09  Kent Tamura  <tkent@chromium.org>
16723
16724         Don't use RenderTextControlSingleLine for date/time input types without the multiple-fields UI
16725         https://bugs.webkit.org/show_bug.cgi?id=101722
16726
16727         Reviewed by Hajime Morita.
16728
16729         Because the date/time input types are not textfields, we should not use
16730         RenderTextControlSingleLine, and don't need to create shadow trees for
16731         RenderTextControlSingleLine.
16732
16733         No new tests. Covered by fast/forms/*/*-appearance-*.html.
16734
16735         * css/html.css:
16736         (input[type="date"]):
16737         It has menulist appeanrace by default, and should be a flexible box to
16738         center the inner text. 10em width is almost same as the default width of
16739         text fields.
16740         (input[type="datetime"]): Ditto.
16741         (input[type="datetime-local"]): Ditto.
16742         (input[type="month"]): Ditto.
16743         (input[type="time"]): Ditto.
16744         (input[type="week"]): Ditto.
16745         (input::-webkit-date-and-time-value):
16746         Added. A style for the inner text block.
16747         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
16748         (WebCore::BaseChooserOnlyDateAndTimeInputType::createRenderer):
16749         Don't create RenderTextControlSingleLine.
16750         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue):
16751         Skip TextFieldInputType::updateInnerTextValue.
16752         (WebCore::BaseChooserOnlyDateAndTimeInputType::forwardEvent):
16753         Skip TextFieldInputType::forwardEvent.
16754         (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
16755         Just add one element to the shadow root.
16756         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
16757         Sets a localized value to the inner text block.
16758         (WebCore::BaseChooserOnlyDateAndTimeInputType::setValue):
16759         Calls updateAppearance if the value is updated.
16760         * html/BaseChooserOnlyDateAndTimeInputType.h:
16761         (BaseChooserOnlyDateAndTimeInputType): Declare updateAppearance,
16762         createRenderer, updateInnerTextValue, forwardEvent, createShadowSubtree,
16763         and setValue.
16764         * html/BaseDateAndTimeInputType.h:
16765         (WebCore): Add a FIXME comment.
16766         (BaseDateAndTimeInputType):
16767         Make visibleValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16768         * html/TextFieldInputType.h:
16769         (TextFieldInputType):
16770         Make setValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16771
16772 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16773
16774         Web Inspector: Clarify meaning of different urls in protocol.
16775         https://bugs.webkit.org/show_bug.cgi?id=101582
16776
16777         Reviewed by Yury Semikhatsky.
16778
16779         * inspector/Inspector.json:
16780
16781 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16782
16783         Month picker should select the current month when navigating while keeping selection position.
16784         https://bugs.webkit.org/show_bug.cgi?id=101724
16785
16786         Reviewed by Kent Tamura.
16787
16788         Month picker needs to behave differently because selection won't be in the same position when changing current month.
16789
16790         No new tests. Test will be added in Bug 101556.
16791
16792         * Resources/pagepopups/calendarPicker.js:
16793         (DaysTable.prototype.navigateToMonth): Date/Week picker should keep selection position for first selected date node.
16794         (DaysTable.prototype._startMoveInAnimation): Moving shared code to separate function.
16795         (MonthPickerDaysTable.prototype.navigateToMonth): Month picker should just select the month.
16796
16797 2012-11-09  Alexei Filippov  <alph@chromium.org>
16798
16799         Web Inspector: Fix heap snapshots counted several times by NMI
16800         https://bugs.webkit.org/show_bug.cgi?id=101085
16801
16802         The fix moves snapshots size counting to V8PerIsolateData class. As long
16803         as it has one instance per isolate its reportMemoryUsage should be
16804         called once per isolate.
16805
16806         Reviewed by Yury Semikhatsky.
16807
16808         * bindings/v8/V8PerIsolateData.cpp:
16809         (WebCore::V8PerIsolateData::reportMemoryUsage):
16810         * inspector/InspectorProfilerAgent.cpp:
16811         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
16812
16813 2012-11-08  Pavel Feldman  <pfeldman@chromium.org>
16814
16815         Web Inspector: split SplitView into SplitView and SidebarView
16816         https://bugs.webkit.org/show_bug.cgi?id=101612
16817
16818         Reviewed by Vsevolod Vlasov.
16819
16820         Currently, SplitView is rather a sidebar view. I'm extracting the reusable split component from it.
16821
16822         * WebCore.gypi:
16823         * WebCore.vcproj/WebCore.vcproj:
16824         * inspector/compile-front-end.py:
16825         * inspector/front-end/AuditsPanel.js:
16826         (WebInspector.AuditsPanel):
16827         * inspector/front-end/CSSNamedFlowCollectionsView.js:
16828         (WebInspector.CSSNamedFlowCollectionsView):
16829         (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
16830         * inspector/front-end/ElementsPanel.js:
16831         * inspector/front-end/FileSystemView.js:
16832         (WebInspector.FileSystemView):
16833         * inspector/front-end/MemoryStatistics.js:
16834         (WebInspector.CounterUI):
16835         (WebInspector.MemoryStatistics.prototype.setTopPosition):
16836         (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
16837         (WebInspector.MemoryStatistics.prototype.visible):
16838         (WebInspector.MemoryStatistics.prototype.show):
16839         (WebInspector.MemoryStatistics.prototype.hide):
16840         * inspector/front-end/NavigatorOverlayController.js:
16841         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
16842         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
16843         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
16844         (WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
16845         * inspector/front-end/NetworkPanel.js:
16846         * inspector/front-end/Panel.js:
16847         (WebInspector.Panel.prototype.createSidebarView):
16848         (WebInspector.Panel.prototype.createSidebarViewWithTree):
16849         * inspector/front-end/ProfilesPanel.js:
16850         (WebInspector.ProfilesPanel):
16851         * inspector/front-end/ResourcesPanel.js:
16852         * inspector/front-end/ScriptsPanel.js:
16853         (WebInspector.ScriptsPanel):
16854         * inspector/front-end/SidebarView.js: Added.
16855         (WebInspector.SidebarView):
16856         (WebInspector.SidebarView.prototype._hasLeftSidebar):
16857         (WebInspector.SidebarView.prototype.get mainElement):
16858         (WebInspector.SidebarView.prototype.get sidebarElement):
16859         (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
16860         (WebInspector.SidebarView.prototype.setMinimalSidebarWidth):
16861         (WebInspector.SidebarView.prototype.setMinimalMainWidthPercent):
16862         (WebInspector.SidebarView.prototype.setSidebarWidth):
16863         (WebInspector.SidebarView.prototype.sidebarWidth):
16864         (WebInspector.SidebarView.prototype.onResize):
16865         (WebInspector.SidebarView.prototype.applyConstraints):
16866         (WebInspector.SidebarView.prototype.hideMainElement):
16867         (WebInspector.SidebarView.prototype.showMainElement):
16868         (WebInspector.SidebarView.prototype.hideSidebarElement):
16869         (WebInspector.SidebarView.prototype.showSidebarElement):
16870         (WebInspector.SidebarView.prototype.elementsToRestoreScrollPositionsFor):
16871         * inspector/front-end/SplitView.js:
16872         (WebInspector.SplitView):
16873         (WebInspector.SplitView.prototype.firstElement):
16874         (WebInspector.SplitView.prototype.secondElement):
16875         (WebInspector.SplitView.prototype.setChangeFirstOnResize):
16876         (WebInspector.SplitView.prototype.resizerElement):
16877         (WebInspector.SplitView.prototype.showOnlyFirst):
16878         (WebInspector.SplitView.prototype.showOnlySecond):
16879         (WebInspector.SplitView.prototype._showOnly):
16880         (WebInspector.SplitView.prototype._removeAllLayoutProperties):
16881         (WebInspector.SplitView.prototype.showBoth):
16882         (WebInspector.SplitView.prototype.setResizable):
16883         (WebInspector.SplitView.prototype.setSplitOffset):
16884         (WebInspector.SplitView.prototype.splitOffset):
16885         (WebInspector.SplitView.prototype._innerSetSplitOffset):
16886         (WebInspector.SplitView.prototype._startResizerDragging):
16887         * inspector/front-end/TimelinePanel.js:
16888         * inspector/front-end/WebKit.qrc:
16889         * inspector/front-end/inspector.html:
16890         * inspector/front-end/splitView.css:
16891
16892 2012-11-09  Andrey Lushnikov  <lushnikov@google.com>
16893
16894         Web Inspector: Ctrl+A in the network panel should select resource content, not the entire panel
16895         https://bugs.webkit.org/show_bug.cgi?id=101591
16896
16897         Reviewed by Vsevolod Vlasov.
16898
16899         Intercept Ctrl+A event in DefaultTextEditor to select resource content
16900
16901         * inspector/front-end/DefaultTextEditor.js:
16902         (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Added Ctrl+A
16903         (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Intercept Ctrl+A even for readonly fields
16904         (WebInspector.TextEditorMainPanel.prototype.handleSelectAll):
16905         * inspector/front-end/KeyboardShortcut.js: Added SelectAll constant for Ctrl+A combination
16906
16907 2012-11-09  Dan Carney  <dcarney@google.com>
16908
16909         [V8] Main world should have one DOMDataStore
16910         https://bugs.webkit.org/show_bug.cgi?id=101470
16911
16912         Reviewed by Kentaro Hara.
16913
16914         The main world DOMWrapperWorld held onto a DOMDataStore that should
16915         never be used, as there is a static one optimized for speed in
16916         DOMDataStore.
16917
16918         No new tests. No change in functionality.
16919
16920         * bindings/v8/DOMDataStore.cpp:
16921         (WebCore::DOMDataStore::current):
16922         * bindings/v8/DOMWrapperWorld.h:
16923         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
16924         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
16925         * bindings/v8/V8DOMWrapper.h:
16926         (WebCore::V8DOMWrapper::getCachedWrapper):
16927
16928 2012-11-09  Alexei Filippov  <alph@chromium.org>
16929
16930         Web Inspector: Navigating around NMI snapshot grid with keys breaks the grid
16931         https://bugs.webkit.org/show_bug.cgi?id=101611
16932
16933         Reviewed by Yury Semikhatsky.
16934
16935         Keys navigation cause populate message sent to the node. The node should
16936         not react on populate messages but the first one.
16937
16938         * inspector/front-end/NativeMemorySnapshotView.js:
16939
16940 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
16941
16942         Web Inspector: Timeline: "Send Request" events are shown out of order.
16943         https://bugs.webkit.org/show_bug.cgi?id=101544
16944
16945         Reviewed by Yury Semikhatsky.
16946
16947         Solution: replace obsolete out-of-order record pushing with frontend
16948         record reparenting.
16949
16950         * inspector/InspectorTimelineAgent.cpp:
16951         (WebCore::InspectorTimelineAgent::willSendResourceRequest): Replaced
16952         direct record pushing with standard appendRecord invokation.
16953         * inspector/front-end/TimelinePresentationModel.js:
16954         (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
16955         Made "Send Request" records top-level if gluing is on.
16956
16957 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
16958
16959         Unreviewed, rolling out r134010.
16960         http://trac.webkit.org/changeset/134010
16961         https://bugs.webkit.org/show_bug.cgi?id=101716
16962
16963         Broke the chromium windows build. (Requested by noel_ on
16964         #webkit).
16965
16966         * Modules/indexeddb/IDBAny.cpp:
16967         * Modules/indexeddb/IDBCallbacks.h:
16968         * Modules/indexeddb/IDBDatabase.cpp:
16969         (WebCore::IDBDatabase::createObjectStore):
16970         (WebCore::IDBDatabase::deleteObjectStore):
16971         (WebCore::IDBDatabase::transaction):
16972         * Modules/indexeddb/IDBDatabase.h:
16973         (IDBDatabase):
16974         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16975         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
16976         (WebCore):
16977         (WebCore::IDBDatabaseBackendImpl::setVersion):
16978         (WebCore::IDBDatabaseBackendImpl::transaction):
16979         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16980         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16981         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
16982         (IDBDatabaseBackendImpl):
16983         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16984         (WebCore):
16985         (IDBDatabaseBackendInterface):
16986         * Modules/indexeddb/IDBMetadata.h:
16987         (WebCore::IDBObjectStoreMetadata::containsIndex):
16988         (WebCore::IDBDatabaseMetadata::findObjectStore):
16989         (IDBDatabaseMetadata):
16990         (WebCore::IDBDatabaseMetadata::containsObjectStore):
16991         * Modules/indexeddb/IDBObjectStore.cpp:
16992         (WebCore::IDBObjectStore::put):
16993         (WebCore):
16994         (WebCore::IDBObjectStore::createIndex):
16995         (WebCore::IDBObjectStore::index):
16996         (WebCore::IDBObjectStore::deleteIndex):
16997         * Modules/indexeddb/IDBObjectStore.h:
16998         (WebCore::IDBObjectStore::openCursor):
16999         (IDBObjectStore):
17000         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17001         (WebCore::IDBObjectStoreBackendImpl::put):
17002         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
17003         (WebCore):
17004         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
17005         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
17006         (WebCore::IDBObjectStoreBackendImpl::index):
17007         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
17008         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
17009         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
17010         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17011         (IDBObjectStoreBackendImpl):
17012         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17013         (WebCore):
17014         * Modules/indexeddb/IDBTransaction.cpp:
17015         (WebCore::IDBTransaction::objectStore):
17016         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
17017         (WebCore::IDBTransactionBackendImpl::objectStore):
17018         (WebCore):
17019         * Modules/indexeddb/IDBTransactionBackendImpl.h:
17020         (IDBTransactionBackendImpl):
17021         * Modules/indexeddb/IDBTransactionBackendInterface.h:
17022
17023 2012-11-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
17024
17025         [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded
17026         https://bugs.webkit.org/show_bug.cgi?id=101570
17027
17028         Reviewed by Gustavo Noronha Silva.
17029
17030         Expose a new method to check whether a vector of loaded languages is empty.
17031         WK2-EFL needs it to set the default language (if the client didn't set any) when
17032         spelling setting is being enabled. This change makes it more convenient to check
17033         whether the dictionaries vector is empty.
17034
17035         No new tests, no behavior change.
17036
17037         * platform/text/enchant/TextCheckerEnchant.cpp:
17038         (TextCheckerEnchant::checkSpellingOfString):
17039         (TextCheckerEnchant::getGuessesForWord):
17040         (TextCheckerEnchant::loadedSpellCheckingLanguages):
17041         A newly exposed method is used internally too.
17042
17043         * platform/text/enchant/TextCheckerEnchant.h:
17044         (WebCore::TextCheckerEnchant::hasDictionary):
17045         Add an inline hasDictionary() method.
17046
17047 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17048
17049         [Refactoring] Remove shadowPseudoId() and use pseudo() instead in TextTrackCue
17050         https://bugs.webkit.org/show_bug.cgi?id=101702
17051
17052         Reviewed by Hajime Morita.
17053
17054         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from TextTrackCue and use
17055         setPseudo()/pseudo() instead.
17056
17057         No new tests, simple refactoring.
17058
17059         * html/track/TextTrackCue.cpp:
17060         (WebCore::TextTrackCueBox::TextTrackCueBox):
17061         * html/track/TextTrackCue.h:
17062         (TextTrackCueBox):
17063
17064 2012-11-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
17065
17066         table not aligned in center column and seems shrunk because of float:right (table-layout: fixed and width: 100%)
17067         https://bugs.webkit.org/show_bug.cgi?id=18153
17068
17069         Reviewed by Beth Dakin.
17070
17071         Preferred logical width is computed incorrectly for fixed layout tables
17072         with 100% percent width, in standards mode.
17073
17074         According to our fixed table layout algorithm (CSS2 specification - 17.5.2.1)
17075         the ultimate width of the table is the greater of the value of the
17076         'width' property for the table elements and the sum of the column
17077         widths.
17078
17079         For our specific scenario we have a fixed layout table with 100% width
17080         consisting of columns with fixed widths, the sum of which is less than
17081         the specified width of the table (i.e. 100% of the containing block).
17082         Even then the applied width is the cummulative of the width of the
17083         columns.
17084
17085         This happens because of the quirks mode check added in
17086         FixedTableLayout::computePreferredLogicalWidths(), which prohibits the
17087         setting of maxWidth to our fixed layout table with percent width, and
17088         which perhaps is not required anymore.
17089
17090         Test: fast/table/fixed-table-layout/table-with-percent-width.html
17091
17092         * rendering/FixedTableLayout.cpp:
17093         (WebCore::FixedTableLayout::computePreferredLogicalWidths):
17094         Removed the quirks mode check.
17095
17096 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17097
17098         Unreviewed, rolling out r134004.
17099         http://trac.webkit.org/changeset/134004
17100         https://bugs.webkit.org/show_bug.cgi?id=101713
17101
17102         multiple crashes (Requested by hayato on #webkit).
17103
17104         * rendering/RenderThemeMac.mm:
17105         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17106         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17107         (WebCore::RenderThemeMac::paintMediaMuteButton):
17108         (WebCore::RenderThemeMac::paintMediaPlayButton):
17109         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17110         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17111         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17112         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17113         (WebCore::RenderThemeMac::paintMediaRewindButton):
17114         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17115         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17116         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17117         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17118         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17119         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17120         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17121         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17122         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17123         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17124
17125 2012-11-08  Jan Keromnes  <janx@linux.com>
17126
17127         Web Inspector: stop using cursorCoords in CodeMirrorTextEditor
17128         https://bugs.webkit.org/show_bug.cgi?id=101607
17129
17130         Reviewed by Vsevolod Vlasov.
17131
17132         API changes completing migration to v3.
17133
17134         * inspector/front-end/CodeMirrorTextEditor.js:
17135         (WebInspector.CodeMirrorTextEditor):
17136         (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
17137         (WebInspector.CodeMirrorTextEditor.prototype.selection):
17138
17139 2012-11-08  Alexei Filippov  <alph@chromium.org>
17140
17141         Web Inspector: make "Other" bar color darker in NMI snapshot.
17142         https://bugs.webkit.org/show_bug.cgi?id=101602
17143
17144         Reviewed by Vsevolod Vlasov.
17145
17146         * inspector/front-end/NativeMemorySnapshotView.js:
17147         (WebInspector.MemoryBlockViewProperties._initialize):
17148
17149 2012-11-08  Alec Flett  <alecflett@chromium.org>
17150
17151         IndexedDB: switch frontend to use int64_t-based references
17152         https://bugs.webkit.org/show_bug.cgi?id=100426
17153
17154         Reviewed by Tony Chang.
17155
17156         Remove String-based objectStore/index references, obsoleted by
17157         https://bugs.webkit.org/show_bug.cgi?id=100425.
17158
17159         No new tests as this is the second half of a refactor.
17160
17161         * Modules/indexeddb/IDBCallbacks.h:
17162         * Modules/indexeddb/IDBDatabase.cpp:
17163         (WebCore::IDBDatabase::deleteObjectStore):
17164         (WebCore::IDBDatabase::transaction):
17165         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17166         (WebCore::IDBDatabaseBackendImpl::setVersion):
17167         (WebCore::IDBDatabaseBackendImpl::transaction):
17168         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17169         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17170         (IDBDatabaseBackendImpl):
17171         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17172         (IDBDatabaseBackendInterface):
17173         * Modules/indexeddb/IDBMetadata.h:
17174         (WebCore::IDBObjectStoreMetadata::findIndex):
17175         (IDBObjectStoreMetadata):
17176         (WebCore::IDBObjectStoreMetadata::containsIndex):
17177         * Modules/indexeddb/IDBObjectStore.cpp:
17178         (WebCore::IDBObjectStore::put):
17179         (WebCore):
17180         (WebCore::IDBObjectStore::index):
17181         (WebCore::IDBObjectStore::deleteIndex):
17182         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17183         (WebCore::IDBObjectStoreBackendImpl::put):
17184         (WebCore):
17185         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17186         (IDBObjectStoreBackendImpl):
17187         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17188         * inspector/Inspector-1.0.json:
17189         * inspector/Inspector.json:
17190         * inspector/InspectorIndexedDBAgent.cpp:
17191         (WebCore):
17192         (WebCore::InspectorIndexedDBAgent::requestData):
17193         * inspector/InspectorIndexedDBAgent.h:
17194         (InspectorIndexedDBAgent):
17195
17196 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17197
17198         [Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
17199         https://bugs.webkit.org/show_bug.cgi?id=101692
17200
17201         Reviewed by Dimitri Glazkov.
17202
17203         We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
17204
17205         No new tests, simple refactoring.
17206
17207         * css/RuleFeature.cpp:
17208         (WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
17209         (WebCore):
17210         * css/RuleFeature.h:
17211         (WebCore):
17212         (RuleFeatureSet):
17213         * css/RuleSet.cpp:
17214         (WebCore::collectFeaturesFromRuleData):
17215
17216 2012-11-08  Robert Sesek  <rsesek@chromium.org>
17217
17218         Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
17219         https://bugs.webkit.org/show_bug.cgi?id=101634
17220
17221         Reviewed by Adam Barth.
17222
17223         No new tests, just disabling unused code in Chromium port.
17224
17225         * rendering/RenderThemeMac.mm:
17226         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17227         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17228         (WebCore::RenderThemeMac::paintMediaMuteButton):
17229         (WebCore::RenderThemeMac::paintMediaPlayButton):
17230         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17231         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17232         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17233         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17234         (WebCore::RenderThemeMac::paintMediaRewindButton):
17235         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17236         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17237         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17238         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17239         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17240         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17241         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17242         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17243         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17244         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17245
17246 2012-11-08  Keishi Hattori  <keishi@webkit.org>
17247
17248         Enable calendar picker for input types week/month
17249         https://bugs.webkit.org/show_bug.cgi?id=101553
17250
17251         Reviewed by Kent Tamura.
17252
17253         Enabling calendar picker for <input type=week/month>
17254
17255         No new tests. Tests will be added later in Bug 101556 and Bug 101555.
17256
17257         * rendering/RenderThemeChromiumCommon.cpp:
17258         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
17259
17260 2012-11-08  Robin Cao  <robin.cao@torchmobile.com.cn>
17261
17262         [BlackBerry] Change the default return value of MediaPlayerPrivate::hasSingleSecurityOrigin
17263         https://bugs.webkit.org/show_bug.cgi?id=101681
17264
17265         Reviewed by George Staikos.
17266
17267         Since the platform player in BlackBerry disallows resources that come from different origins,
17268         so it's safe to directly returns true here.
17269
17270         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
17271         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
17272
17273 2012-11-08  Mark Lam  <mark.lam@apple.com>
17274
17275         Renamed ...InlineMethods.h files to ...Inlines.h.
17276         https://bugs.webkit.org/show_bug.cgi?id=101145.
17277
17278         Reviewed by Geoffrey Garen.
17279
17280         This is only a refactoring effort to rename the files. There are no
17281         functionality changes.
17282
17283         No new tests.
17284
17285         * GNUmakefile.list.am:
17286         * Target.pri:
17287         * WebCore.gypi:
17288         * WebCore.vcproj/WebCore.vcproj:
17289         * WebCore.xcodeproj/project.pbxproj:
17290         * html/parser/HTMLEntityParser.cpp:
17291         * html/parser/HTMLTokenizer.cpp:
17292         * html/track/WebVTTTokenizer.cpp:
17293         * xml/parser/CharacterReferenceParserInlineMethods.h: Removed.
17294         * xml/parser/CharacterReferenceParserInlines.h: Copied from Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h.
17295         * xml/parser/MarkupTokenizerInlineMethods.h: Removed.
17296         * xml/parser/MarkupTokenizerInlines.h: Copied from Source/WebCore/xml/parser/MarkupTokenizerInlineMethods.h.
17297         * xml/parser/XMLCharacterReferenceParser.cpp:
17298         * xml/parser/XMLTokenizer.cpp:
17299
17300 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17301
17302         Unreviewed, rolling out r133984.
17303         http://trac.webkit.org/changeset/133984
17304         https://bugs.webkit.org/show_bug.cgi?id=101684
17305
17306         windows build error. (Requested by hayato on #webkit).
17307
17308         * Modules/indexeddb/IDBCallbacks.h:
17309         * Modules/indexeddb/IDBDatabase.cpp:
17310         (WebCore::IDBDatabase::createObjectStore):
17311         (WebCore::IDBDatabase::deleteObjectStore):
17312         (WebCore::IDBDatabase::transaction):
17313         * Modules/indexeddb/IDBDatabase.h:
17314         (IDBDatabase):
17315         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17316         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
17317         (WebCore):
17318         (WebCore::IDBDatabaseBackendImpl::setVersion):
17319         (WebCore::IDBDatabaseBackendImpl::transaction):
17320         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17321         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17322         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
17323         (IDBDatabaseBackendImpl):
17324         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17325         (IDBDatabaseBackendInterface):
17326         * Modules/indexeddb/IDBMetadata.h:
17327         (WebCore::IDBObjectStoreMetadata::containsIndex):
17328         (WebCore::IDBDatabaseMetadata::findObjectStore):
17329         (IDBDatabaseMetadata):
17330         (WebCore::IDBDatabaseMetadata::containsObjectStore):
17331         * Modules/indexeddb/IDBObjectStore.cpp:
17332         (WebCore::IDBObjectStore::put):
17333         (WebCore):
17334         (WebCore::IDBObjectStore::createIndex):
17335         (WebCore::IDBObjectStore::index):
17336         (WebCore::IDBObjectStore::deleteIndex):
17337         * Modules/indexeddb/IDBObjectStore.h:
17338         (WebCore::IDBObjectStore::openCursor):
17339         (IDBObjectStore):
17340         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17341         (WebCore::IDBObjectStoreBackendImpl::put):
17342         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
17343         (WebCore):
17344         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
17345         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
17346         (WebCore::IDBObjectStoreBackendImpl::index):
17347         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
17348         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
17349         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
17350         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17351         (IDBObjectStoreBackendImpl):
17352         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17353         * Modules/indexeddb/IDBTransaction.cpp:
17354         (WebCore::IDBTransaction::objectStore):
17355         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
17356         (WebCore::IDBTransactionBackendImpl::objectStore):
17357         (WebCore):
17358         * Modules/indexeddb/IDBTransactionBackendImpl.h:
17359         (IDBTransactionBackendImpl):
17360         * Modules/indexeddb/IDBTransactionBackendInterface.h:
17361
17362 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17363
17364         HTMLContentElement should preserve parsed CSSSelectorList
17365         https://bugs.webkit.org/show_bug.cgi?id=101543
17366
17367         Reviewed by Dimitri Glazkov.
17368
17369         We would like to preserve CSSSelectorList for select attribute of HTMLContentElement.
17370
17371         Before, we parsed and validated select attribute every time distribution happens. If we preserve the parsed
17372         CSSSelectorList, we can reduce distribution time.
17373
17374         This is also a prepration patch for Bug 101180. It also needs the parsed CSSSelectorList. We don't want to
17375         parse and validate it again.
17376
17377         No new tests, covered by exising tests.
17378
17379         * html/shadow/ContentSelectorQuery.cpp:
17380         (WebCore::ContentSelectorQuery::ContentSelectorQuery): We don't parse select attribute here anymore.
17381         if it's already parsed.
17382         (WebCore::ContentSelectorQuery::matches):
17383         * html/shadow/ContentSelectorQuery.h:
17384         (ContentSelectorQuery):
17385         * html/shadow/HTMLContentElement.cpp:
17386         (WebCore::HTMLContentElement::HTMLContentElement):
17387         (WebCore::HTMLContentElement::isSelectValid):
17388         (WebCore::HTMLContentElement::ensureSelectParsed): If we don't have parsed the current select attribute,
17389         we parse and validate it.
17390         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, we have to have a flag enabled
17391         to parse select attrite again.
17392         (WebCore::validateSubSelector): Moved from ContentSelectorQuery.
17393         (WebCore):
17394         (WebCore::validateSelector): Moved from ContentSelectorQuery.
17395         (WebCore::HTMLContentElement::validateSelect):
17396         * html/shadow/HTMLContentElement.h:
17397         (HTMLContentElement):
17398         (WebCore::HTMLContentElement::setSelect):
17399         (WebCore):
17400         (WebCore::HTMLContentElement::selectorList):
17401         * html/shadow/HTMLShadowElement.cpp:
17402         (WebCore::HTMLShadowElement::emptySelectorList):
17403         (WebCore):
17404         * html/shadow/HTMLShadowElement.h:
17405         (HTMLShadowElement):
17406         (WebCore::HTMLShadowElement::selectorList):
17407         * html/shadow/InsertionPoint.h:
17408         (InsertionPoint):
17409
17410 2012-11-08  Alec Flett  <alecflett@chromium.org>
17411
17412         IndexedDB: switch frontend to use int64_t-based references
17413         https://bugs.webkit.org/show_bug.cgi?id=100426
17414
17415         Reviewed by Tony Chang.
17416
17417         Remove String-based objectStore/index references, obsoleted by
17418         https://bugs.webkit.org/show_bug.cgi?id=100425.
17419
17420         No new tests as this is the second half of a refactor.
17421
17422         * Modules/indexeddb/IDBCallbacks.h:
17423         * Modules/indexeddb/IDBDatabase.cpp:
17424         (WebCore::IDBDatabase::deleteObjectStore):
17425         (WebCore::IDBDatabase::transaction):
17426         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17427         (WebCore::IDBDatabaseBackendImpl::setVersion):
17428         (WebCore::IDBDatabaseBackendImpl::transaction):
17429         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17430         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17431         (IDBDatabaseBackendImpl):
17432         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17433         (IDBDatabaseBackendInterface):
17434         * Modules/indexeddb/IDBMetadata.h:
17435         (WebCore::IDBObjectStoreMetadata::findIndex):
17436         (IDBObjectStoreMetadata):
17437         (WebCore::IDBObjectStoreMetadata::containsIndex):
17438         * Modules/indexeddb/IDBObjectStore.cpp:
17439         (WebCore::IDBObjectStore::put):
17440         (WebCore):
17441         (WebCore::IDBObjectStore::index):
17442         (WebCore::IDBObjectStore::deleteIndex):
17443         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17444         (WebCore::IDBObjectStoreBackendImpl::put):
17445         (WebCore):
17446         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17447         (IDBObjectStoreBackendImpl):
17448         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17449         * inspector/Inspector-1.0.json:
17450         * inspector/Inspector.json:
17451         * inspector/InspectorIndexedDBAgent.cpp:
17452         (WebCore):
17453         (WebCore::InspectorIndexedDBAgent::requestData):
17454         * inspector/InspectorIndexedDBAgent.h:
17455         (InspectorIndexedDBAgent):
17456
17457 2012-11-08  Kenichi Ishibashi  <bashi@chromium.org>
17458
17459         [Chromium] Arabic digits should appear left-to-right
17460         https://bugs.webkit.org/show_bug.cgi?id=101440
17461
17462         Reviewed by Tony Chang.
17463
17464         Call hb_buffer_set_direction() to set direction when drawing glyphs or
17465         direction should be overridden. Leave direction setting to HarfBuzz when
17466         WebKit is calculating widths because the direction is LTR by default while
17467         calculating widths.  Set script before shaping so that HarfBuzz can estimate
17468         appropriate direction.
17469
17470         Test: fast/text/international/arabic-digits.html
17471
17472         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
17473         (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
17474         Add m_script. This holds the script of the run.
17475         (WebCore::HarfBuzzShaper::shape):
17476         Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
17477         direction should be overridden.
17478         (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
17479         Set script of HarfBuzzRuns.
17480         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
17481         Add an argument that indicates it should set direction.
17482         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
17483         (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
17484         (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
17485         (WebCore::HarfBuzzShaper::HarfBuzzRun::script):
17486         (HarfBuzzRun):
17487         (HarfBuzzShaper):
17488
17489 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17490
17491         [TexMap] Remove contentsLayer() in GraphicsLayerTextureMapper.
17492         https://bugs.webkit.org/show_bug.cgi?id=101658
17493
17494         Reviewed by Noam Rosenthal.
17495
17496         GraphicsLayerTextureMapper::contentsLayer() is duplicated to
17497         GraphicsLayer::platformLayer(), so we remove it.
17498
17499         No new tests, this is just a refactor.
17500
17501         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
17502         (WebCore::GraphicsLayerTextureMapper::platformLayer):
17503         * platform/graphics/texmap/TextureMapperLayer.cpp:
17504         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
17505
17506 2012-11-08  Benjamin Poulain  <benjamin@webkit.org>
17507
17508         Improve the use of AtomicString with literals
17509         https://bugs.webkit.org/show_bug.cgi?id=101298
17510
17511         Reviewed by Darin Adler.
17512
17513         Fix a bunch of cases of AtomicString with literals:
17514         -Do not create temporary AtomicString to perform a comparison, that is very wasteful.
17515         -Use the ConstructFromLiteral constructor whenever it makes sense.
17516         -Make "x-frame-options" static instead of creating it for each response.
17517         -Use ASCIILiteral() instead of AtomicString() in EventHandler, the function takes a String,
17518          not an AtomicString.
17519
17520         * Modules/battery/BatteryController.cpp:
17521         (WebCore::BatteryController::supplementName):
17522         * Modules/battery/NavigatorBattery.cpp:
17523         (WebCore::NavigatorBattery::from):
17524         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
17525         (WebCore::DraggedIsolatedFileSystem::supplementName):
17526         * Modules/gamepad/NavigatorGamepad.cpp:
17527         (WebCore::NavigatorGamepad::from):
17528         * Modules/geolocation/GeolocationController.cpp:
17529         (WebCore::GeolocationController::supplementName):
17530         * Modules/geolocation/NavigatorGeolocation.cpp:
17531         (WebCore::NavigatorGeolocation::from):
17532         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
17533         (WebCore::DOMWindowIndexedDatabase::from):
17534         * Modules/indexeddb/IDBCursor.cpp:
17535         (WebCore::IDBCursor::directionNext):
17536         (WebCore::IDBCursor::directionNextUnique):
17537         (WebCore::IDBCursor::directionPrev):
17538         (WebCore::IDBCursor::directionPrevUnique):
17539         * Modules/indexeddb/IDBRequest.cpp:
17540         (WebCore::IDBRequest::readyState):
17541         * Modules/indexeddb/IDBTransaction.cpp:
17542         (WebCore::IDBTransaction::modeReadOnly):
17543         (WebCore::IDBTransaction::modeReadWrite):
17544         (WebCore::IDBTransaction::modeVersionChange):
17545         (WebCore::IDBTransaction::modeReadOnlyLegacy):
17546         (WebCore::IDBTransaction::modeReadWriteLegacy):
17547         * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
17548         (WebCore::PageGroupIndexedDatabase::from):
17549         * Modules/intents/DOMWindowIntents.cpp:
17550         (WebCore::DOMWindowIntents::from):
17551         * Modules/mediastream/UserMediaController.cpp:
17552         (WebCore::UserMediaController::supplementName):
17553         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
17554         (WebCore::NavigatorContentUtils::supplementName):
17555         * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
17556         (WebCore::NavigatorNetworkInfoConnection::from):
17557         * Modules/networkinfo/NetworkInfoController.cpp:
17558         (WebCore::NetworkInfoController::supplementName):
17559         * Modules/notifications/DOMWindowNotifications.cpp:
17560         (WebCore::DOMWindowNotifications::from):
17561         * Modules/notifications/NotificationController.cpp:
17562         (WebCore::NotificationController::supplementName):
17563         * Modules/quota/DOMWindowQuota.cpp:
17564         (WebCore::DOMWindowQuota::from):
17565         * Modules/speech/SpeechRecognitionController.cpp:
17566         (WebCore::SpeechRecognitionController::supplementName):
17567         * Modules/vibration/Vibration.cpp:
17568         (WebCore::Vibration::supplementName):
17569         * accessibility/AccessibilityObject.cpp:
17570         (WebCore::AccessibilityObject::invalidStatus):
17571         * accessibility/AccessibilityRenderObject.cpp:
17572         (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
17573         (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
17574         * bindings/v8/custom/V8DOMWindowCustom.cpp:
17575         (WebCore::V8DOMWindow::namedSecurityCheck):
17576         * bindings/v8/custom/V8NodeListCustom.cpp:
17577         (WebCore::V8NodeList::namedPropertyGetter):
17578         * dom/ContextFeatures.cpp:
17579         (WebCore::ContextFeatures::supplementName):
17580         * dom/DeviceMotionController.cpp:
17581         (WebCore::DeviceMotionController::supplementName):
17582         * dom/DeviceOrientationController.cpp:
17583         (WebCore::DeviceOrientationController::supplementName):
17584         * dom/Element.cpp:
17585         (WebCore::Element::webkitRegionOverset):
17586         * dom/MutationRecord.cpp:
17587         * html/FileInputType.cpp:
17588         (WebCore::UploadButtonElement::shadowPseudoId):
17589         * html/FormController.cpp:
17590         (WebCore::SavedFormState::getReferencedFilePaths):
17591         (WebCore::FormKeyGenerator::formKey):
17592         * html/HTMLButtonElement.cpp:
17593         (WebCore::HTMLButtonElement::formControlType):
17594         * html/HTMLDetailsElement.cpp:
17595         (WebCore::summaryQuerySelector):
17596         * html/HTMLFieldSetElement.cpp:
17597         (WebCore::HTMLFieldSetElement::formControlType):
17598         * html/HTMLKeygenElement.cpp:
17599         (WebCore::KeygenSelectElement::shadowPseudoId):
17600         (WebCore::HTMLKeygenElement::formControlType):
17601         * html/HTMLOptGroupElement.cpp:
17602         (WebCore::HTMLOptGroupElement::formControlType):
17603         * html/HTMLOutputElement.cpp:
17604         (WebCore::HTMLOutputElement::formControlType):
17605         * html/HTMLSelectElement.cpp:
17606         (WebCore::HTMLSelectElement::formControlType):
17607         * html/HTMLTextAreaElement.cpp:
17608         (WebCore::HTMLTextAreaElement::formControlType):
17609         * html/HTMLTextFormControlElement.cpp:
17610         (WebCore::directionString):
17611         * html/shadow/DateTimeEditElement.cpp:
17612         (WebCore::DateTimeEditElement::DateTimeEditElement):
17613         * html/shadow/DateTimeFieldElements.cpp:
17614         (WebCore::DateTimeAMPMFieldElement::create):
17615         (WebCore::DateTimeDayFieldElement::create):
17616         (WebCore::DateTimeHourFieldElement::create):
17617         (WebCore::DateTimeMillisecondFieldElement::create):
17618         (WebCore::DateTimeMinuteFieldElement::create):
17619         (WebCore::DateTimeMonthFieldElement::create):
17620         (WebCore::DateTimeSecondFieldElement::create):
17621         (WebCore::DateTimeSymbolicMonthFieldElement::create):
17622         (WebCore::DateTimeWeekFieldElement::create):
17623         (WebCore::DateTimeYearFieldElement::create):
17624         * html/shadow/DetailsMarkerControl.cpp:
17625         (WebCore::DetailsMarkerControl::shadowPseudoId):
17626         * html/shadow/ImageInnerElement.cpp:
17627         (WebCore::ImageInnerElement::shadowPseudoId):
17628         * html/shadow/MediaControlElements.cpp:
17629         (WebCore::MediaControlPanelElement::shadowPseudoId):
17630         (WebCore::MediaControlTimelineContainerElement::shadowPseudoId):
17631         (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId):
17632         (WebCore::MediaControlStatusDisplayElement::shadowPseudoId):
17633         (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId):
17634         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId):
17635         (WebCore::MediaControlPlayButtonElement::shadowPseudoId):
17636         (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
17637         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId):
17638         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId):
17639         (WebCore::MediaControlRewindButtonElement::shadowPseudoId):
17640         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId):
17641         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
17642         (WebCore::MediaControlTimelineElement::shadowPseudoId):
17643         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId):
17644         (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId):
17645         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId):
17646         (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId):
17647         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId):
17648         (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId):
17649         (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId):
17650         (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId):
17651         * html/shadow/MediaControlRootElement.cpp:
17652         (WebCore::MediaControlRootElement::shadowPseudoId):
17653         * html/shadow/MediaControlRootElementChromium.cpp:
17654         (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
17655         (WebCore::MediaControlRootElementChromium::shadowPseudoId):
17656         * html/shadow/MediaControlRootElementChromiumAndroid.cpp:
17657         (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
17658         * html/shadow/MeterShadowElement.cpp:
17659         (WebCore::MeterInnerElement::shadowPseudoId):
17660         (WebCore::MeterBarElement::shadowPseudoId):
17661         (WebCore::MeterValueElement::shadowPseudoId):
17662         * html/shadow/ProgressShadowElement.cpp:
17663         (WebCore::ProgressInnerElement::shadowPseudoId):
17664         (WebCore::ProgressBarElement::shadowPseudoId):
17665         (WebCore::ProgressValueElement::shadowPseudoId):
17666         * html/shadow/SliderThumbElement.cpp:
17667         (WebCore::sliderThumbShadowPseudoId):
17668         (WebCore::mediaSliderThumbShadowPseudoId):
17669         (WebCore::SliderContainerElement::shadowPseudoId):
17670         * html/shadow/SpinButtonElement.cpp:
17671         (WebCore::SpinButtonElement::shadowPseudoId):
17672         * html/shadow/TextControlInnerElements.cpp:
17673         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
17674         (WebCore::SearchFieldCancelButtonElement::shadowPseudoId):
17675         (WebCore::InputFieldSpeechButtonElement::shadowPseudoId):
17676         * html/track/TextTrackCue.cpp:
17677         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId):
17678         * loader/CrossOriginAccessControl.cpp:
17679         (WebCore::passesAccessControlCheck):
17680         * loader/MainResourceLoader.cpp:
17681         (WebCore::MainResourceLoader::didReceiveResponse):
17682         * loader/PrerendererClient.cpp:
17683         (WebCore::PrerendererClient::supplementName):
17684         * loader/cache/CachedResource.cpp:
17685         (WebCore::CachedResource::updateResponseAfterRevalidation):
17686         * page/DOMWindowPagePopup.cpp:
17687         (WebCore::DOMWindowPagePopup::supplementName):
17688         * page/EventHandler.cpp:
17689         (WebCore::EventHandler::handlePasteGlobalSelection):
17690         (WebCore::focusDirectionForKey):
17691         * page/SpeechInput.cpp:
17692         (WebCore::SpeechInput::supplementName):
17693         * page/animation/CompositeAnimation.cpp:
17694         (WebCore::CompositeAnimation::updateKeyframeAnimations):
17695         * platform/graphics/FontCache.cpp:
17696         (WebCore::alternateFamilyName):
17697         * platform/graphics/MediaPlayer.cpp:
17698         (WebCore::applicationOctetStream):
17699         (WebCore::textPlain):
17700         (WebCore::codecs):
17701         * platform/graphics/chromium/FontCacheAndroid.cpp:
17702         (WebCore::FontCache::getLastResortFallbackFont):
17703         * platform/graphics/filters/SourceAlpha.cpp:
17704         (WebCore::SourceAlpha::effectName):
17705         * platform/graphics/filters/SourceGraphic.cpp:
17706         (WebCore::SourceGraphic::effectName):
17707         * platform/graphics/mac/FontCacheMac.mm:
17708         (WebCore::FontCache::getSimilarFontPlatformData):
17709         (WebCore::FontCache::getLastResortFallbackFont):
17710         * platform/graphics/skia/FontCacheSkia.cpp:
17711         (WebCore::FontCache::getLastResortFallbackFont):
17712         * platform/graphics/win/FontCacheWin.cpp:
17713         (WebCore::FontCache::getLastResortFallbackFont):
17714         * platform/graphics/wx/FontCacheWx.cpp:
17715         (WebCore::FontCache::getSimilarFontPlatformData):
17716         * platform/network/ResourceResponseBase.cpp:
17717         (WebCore::ResourceResponseBase::setHTTPHeaderField):
17718         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
17719         (WebCore::ResourceResponseBase::hasCacheValidatorFields):
17720         (WebCore::ResourceResponseBase::date):
17721         (WebCore::ResourceResponseBase::age):
17722         (WebCore::ResourceResponseBase::expires):
17723         (WebCore::ResourceResponseBase::lastModified):
17724         (WebCore::ResourceResponseBase::isAttachment):
17725         * rendering/RenderTextControlMultiLine.cpp:
17726         (WebCore::RenderTextControlMultiLine::getAvgCharWidth):
17727         * rendering/RenderTextControlSingleLine.cpp:
17728         (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
17729         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
17730         * svg/SVGAnimateColorElement.cpp:
17731         (WebCore::attributeValueIsCurrentColor):
17732         * svg/SVGAnimateMotionElement.cpp:
17733         (WebCore::SVGAnimateMotionElement::rotateMode):
17734         * svg/SVGAnimationElement.cpp:
17735         (WebCore::SVGAnimationElement::setCalcMode):
17736         (WebCore::SVGAnimationElement::setAttributeType):
17737         (WebCore::SVGAnimationElement::isAdditive):
17738         (WebCore::SVGAnimationElement::isAccumulated):
17739         (WebCore::inheritsFromProperty):
17740         * svg/SVGFEConvolveMatrixElement.cpp:
17741         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
17742         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
17743         (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
17744         (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
17745         * svg/SVGFEDiffuseLightingElement.cpp:
17746         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
17747         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
17748         * svg/SVGFEDropShadowElement.cpp:
17749         (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
17750         (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
17751         * svg/SVGFEGaussianBlurElement.cpp:
17752         (WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
17753         (WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
17754         * svg/SVGFEMorphologyElement.cpp:
17755         (WebCore::SVGFEMorphologyElement::radiusXIdentifier):
17756         (WebCore::SVGFEMorphologyElement::radiusYIdentifier):
17757         * svg/SVGFESpecularLightingElement.cpp:
17758         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
17759         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
17760         * svg/SVGFETurbulenceElement.cpp:
17761         (WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
17762         (WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
17763         * svg/SVGFilterElement.cpp:
17764         (WebCore::SVGFilterElement::filterResXIdentifier):
17765         (WebCore::SVGFilterElement::filterResYIdentifier):
17766         * svg/SVGLangSpace.cpp:
17767         (WebCore::SVGLangSpace::xmlspace):
17768         (WebCore::SVGLangSpace::addSupportedAttributes):
17769         * svg/SVGMarkerElement.cpp:
17770         (WebCore::SVGMarkerElement::orientTypeIdentifier):
17771         (WebCore::SVGMarkerElement::orientAngleIdentifier):
17772         (WebCore::SVGMarkerElement::synchronizeOrientType):
17773         * svg/SVGSVGElement.cpp:
17774         (WebCore::SVGSVGElement::contentScriptType):
17775         (WebCore::SVGSVGElement::contentStyleType):
17776         * svg/SVGStyleElement.cpp:
17777         (WebCore::SVGStyleElement::type):
17778         (WebCore::SVGStyleElement::media):
17779         * svg/SVGTextContentElement.cpp:
17780         (WebCore::SVGTextContentElement::collectStyleForAttribute):
17781         * svg/SVGViewSpec.cpp:
17782         (WebCore::SVGViewSpec::viewBoxIdentifier):
17783         (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
17784         (WebCore::SVGViewSpec::transformIdentifier):
17785         * svg/animation/SVGSMILElement.cpp:
17786         (WebCore::SVGSMILElement::parseClockValue):
17787         (WebCore::SVGSMILElement::restart):
17788         (WebCore::SVGSMILElement::fill):
17789         (WebCore::SVGSMILElement::repeatCount):
17790         * testing/InternalSettings.cpp:
17791         (WebCore::InternalSettings::from):
17792         * xml/parser/XMLTreeBuilder.cpp:
17793         (WebCore::XMLTreeBuilder::processDOCTYPE):
17794         (WebCore::XMLTreeBuilder::processXMLEntity):
17795
17796 2012-11-08  Beth Dakin  <bdakin@apple.com>
17797
17798         https://bugs.webkit.org/show_bug.cgi?id=101644
17799         Fixed header on Facebook news feed becomes detached from top of 
17800         viewport after rubber band scrolling
17801         -and corresponding-
17802         <rdar://problem/12651944>
17803
17804         Reviewed by Simon Fraser.
17805
17806         There is code to handle this for non-threaded scrolling on FrameView. 
17807         This patch moves most of that code into a convenience function on 
17808         ScrollingCoordinator.
17809
17810         Have FrameView::scrollOffsetForFixedPosition() call 
17811         WebCore::scrollOffsetForFixedPosition() with all the right 
17812         parameters.
17813         * page/FrameView.cpp:
17814         (WebCore::FrameView::scrollOffsetForFixedPosition):
17815
17816         Here's where all the math happens.
17817         * page/scrolling/ScrollingCoordinator.cpp:
17818         (WebCore::fixedPositionScrollOffset):
17819         (WebCore::scrollOffsetForFixedPosition):
17820
17821         The viewportRect in these three places needs to have the 
17822         adjusted-for-fixed offset.
17823         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
17824         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
17825         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
17826         * rendering/RenderLayerCompositor.cpp:
17827         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
17828
17829 2012-11-08  Alpha Lam  <hclam@chromium.org>
17830
17831         [chromium] Deferred image decoding fails with image orientation
17832         https://bugs.webkit.org/show_bug.cgi?id=101648
17833
17834         Reviewed by Stephen White.
17835
17836         When an image is deferred save the orientation state. Once this state
17837         is cached it can be used to reply future queries since this state is
17838         static.
17839
17840         No new tests but platform/chromium/virtual/deferred/fast/images/image-orientation.html is passing now.
17841
17842         * platform/graphics/chromium/DeferredImageDecoder.cpp:
17843         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
17844         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
17845         (WebCore::DeferredImageDecoder::orientation):
17846         * platform/graphics/chromium/DeferredImageDecoder.h:
17847         (DeferredImageDecoder):
17848
17849 2012-11-08  Andreas Kling  <kling@webkit.org>
17850
17851         DocumentLoader: Shrink-to-fit the ResourceResponse vector after loading completes.
17852         <http://webkit.org/b/101657>
17853
17854         Reviewed by Anders Carlsson.
17855
17856         Shrink DocumentLoader::m_responses to exact size when we stop adding responses to it,
17857         as we know it won't grow after that.
17858
17859         520kB progression on Membuster3.
17860
17861         * loader/DocumentLoader.cpp:
17862         (WebCore::DocumentLoader::stopRecordingResponses):
17863
17864 2012-11-08  Hans Muller  <hmuller@adobe.com>
17865
17866         [CSS Exclusions] Polygon with horizontal bottom edges returns incorrect segments
17867         https://bugs.webkit.org/show_bug.cgi?id=100874
17868
17869         Reviewed by Dirk Schulze.
17870
17871         Revised the way that computeXIntersections() handles intersections with horizotal polygon edges.
17872         Deciding if a vertex intersection corresponds to a polygon "edge crossing", i.e. a change from inside
17873         to outside or outside to inside, now depends on which side of the horizontal line the function's
17874         y parameter corresponds to. If the y corresponds to the top of the line, then isaMinY the parameter
17875         is true, and an intersection with a horizontal edge is only considered to be an edge crossing if
17876         if the inside of the polygon is just below the horizontal edge.  When isMinY is false then the inside
17877         of the polygon must be just above the horizontal edge.
17878
17879         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html
17880                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html
17881
17882         * rendering/ExclusionPolygon.cpp:
17883         (WebCore::getVertexIntersectionVertices): Corrected two cases where the next/previous vertex was determined incorrectly.
17884         (WebCore::ExclusionPolygon::computeXIntersections): Added a bool isMinY parameter which specifies if the y parameter corresponds to the top or bottom a horizontal line.
17885         (WebCore::ExclusionPolygon::getExcludedIntervals): Added the new computeXIntersections() parameter.
17886         (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
17887         * rendering/ExclusionPolygon.h:
17888         (WebCore::ExclusionPolygonEdge::previousEdge): Corrected the previousEdge() function.
17889
17890 2012-11-08  Otto Derek Cheung  <otcheung@rim.com>
17891
17892         [BlackBerry] Disable cookies on file://
17893         https://bugs.webkit.org/show_bug.cgi?id=101646
17894
17895         Reviewed by Rob Buis.
17896
17897         Disabling cookies on file and local in the browser app.
17898
17899         PR 239779
17900
17901         Tested by trying to set and retrieve cookies on WI while browsing
17902         files on the file scheme.
17903
17904         * platform/blackberry/CookieManager.cpp:
17905         (WebCore):
17906         (WebCore::shouldIgnoreScheme):
17907         (WebCore::CookieManager::getRawCookies):
17908         (WebCore::CookieManager::checkAndTreatCookie):
17909
17910 2012-11-08  Joshua Bell  <jsbell@chromium.org>
17911
17912         Expose snapshots in platform/leveldb wrapper API
17913         https://bugs.webkit.org/show_bug.cgi?id=100786
17914
17915         Reviewed by Tony Chang.
17916
17917         Expose leveldb "snapshots" in the LevelDB API. A snapshot lets you observe the database
17918         as it was when the snapshot was taken. This can be used to implement parallel transactions,
17919         e.g. where a read transaction won't see updates made by a later write transaction.
17920
17921         Tests: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.Transaction*'
17922
17923         * platform/leveldb/LevelDBDatabase.cpp:
17924         (WebCore::LevelDBSnapshot::LevelDBSnapshot): New (but for now internal-only) wrapper type.
17925         (WebCore):
17926         (WebCore::LevelDBSnapshot::~LevelDBSnapshot): Release the leveldb::Snapshot.
17927         (WebCore::LevelDBDatabase::get): Optional snapshot argument, for use by transactions.
17928         (WebCore::LevelDBDatabase::createIterator): Ditto.
17929         * platform/leveldb/LevelDBDatabase.h:
17930         (leveldb):
17931         (WebCore):
17932         (LevelDBSnapshot):
17933         (LevelDBDatabase):
17934         * platform/leveldb/LevelDBTransaction.cpp:
17935         (WebCore::LevelDBTransaction::LevelDBTransaction): Initialize a snapshot.
17936         (WebCore::LevelDBTransaction::get):
17937         (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
17938         * platform/leveldb/LevelDBTransaction.h:
17939         (LevelDBTransaction):
17940
17941 2012-11-08  Brady Eidson  <beidson@apple.com>
17942
17943         Have NetworkProcess do the actual loading of subresources.
17944         https://bugs.webkit.org/show_bug.cgi?id=101640
17945
17946         Reviewed by Alexey Proskuryakov.
17947
17948         No new tests (No change in behavior in any configuration we test.)
17949
17950         * WebCore.exp.in:
17951         * loader/ResourceBuffer.h: Virtualize a few methods for ports to override.
17952
17953 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17954
17955         Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.
17956         https://bugs.webkit.org/show_bug.cgi?id=101424
17957
17958         Reviewed by Noam Rosenthal.
17959
17960         This patch adds ASSERT to TextureMapperLayer while fixing this bug in
17961         WebKit2.
17962
17963         * platform/graphics/texmap/TextureMapperLayer.cpp:
17964         (WebCore::TextureMapperLayer::paintSelf):
17965
17966 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17967
17968         Unreviewed, rolling out r133945.
17969         http://trac.webkit.org/changeset/133945
17970         https://bugs.webkit.org/show_bug.cgi?id=101645
17971
17972         Numerous layout and unit test failures (Requested by
17973         jsbell|gardener on #webkit).
17974
17975         * bindings/scripts/CodeGeneratorV8.pm:
17976         (GenerateHeader):
17977         * bindings/scripts/test/V8/V8Float64Array.h:
17978         (WebCore::V8Float64Array::toNative):
17979         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
17980         (WebCore::V8TestActiveDOMObject::toNative):
17981         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
17982         (WebCore::V8TestCustomNamedGetter::toNative):
17983         * bindings/scripts/test/V8/V8TestEventConstructor.h:
17984         (WebCore::V8TestEventConstructor::toNative):
17985         * bindings/scripts/test/V8/V8TestEventTarget.h:
17986         (WebCore::V8TestEventTarget::toNative):
17987         * bindings/scripts/test/V8/V8TestException.h:
17988         (WebCore::V8TestException::toNative):
17989         * bindings/scripts/test/V8/V8TestInterface.h:
17990         (WebCore::V8TestInterface::toNative):
17991         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
17992         (WebCore::V8TestMediaQueryListListener::toNative):
17993         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
17994         (WebCore::V8TestNamedConstructor::toNative):
17995         * bindings/scripts/test/V8/V8TestNode.h:
17996         (WebCore::V8TestNode::toNative):
17997         * bindings/scripts/test/V8/V8TestObj.h:
17998         (WebCore::V8TestObj::toNative):
17999         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
18000         (WebCore::V8TestSerializedScriptValueInterface::toNative):
18001         * bindings/v8/NPV8Object.cpp:
18002         (WebCore::v8ObjectToNPObject):
18003         (WebCore::npCreateV8ScriptObject):
18004         * bindings/v8/V8Collection.h:
18005         (WebCore::toNativeCollection):
18006         * bindings/v8/V8DOMWindowShell.cpp:
18007         (WebCore::setIsolatedWorldField):
18008         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
18009         * bindings/v8/V8DOMWrapper.cpp:
18010         (WebCore::V8DOMWrapper::isWrapperOfType):
18011         * bindings/v8/V8DOMWrapper.h:
18012         (WebCore::V8DOMWrapper::setDOMWrapper):
18013         (WebCore::V8DOMWrapper::clearDOMWrapper):
18014         * bindings/v8/WrapperTypeInfo.h:
18015         (WebCore::toNative):
18016         (WebCore::toWrapperTypeInfo):
18017
18018 2012-11-01  Filip Pizlo  <fpizlo@apple.com>
18019
18020         JSC should infer when indexed storage contains only integers or doubles
18021         https://bugs.webkit.org/show_bug.cgi?id=98606
18022
18023         Reviewed by Oliver Hunt.
18024
18025         Just refactoring WebCore to pass 0 for the ArrayAllocationProfile*.
18026
18027         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
18028         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
18029         * bindings/js/JSClipboardCustom.cpp:
18030         (WebCore::JSClipboard::types):
18031         * bindings/js/JSDOMBinding.cpp:
18032         (WebCore::jsArray):
18033         * bindings/js/JSDOMBinding.h:
18034         (WebCore::jsArray):
18035         * bindings/js/JSInjectedScriptHostCustom.cpp:
18036         (WebCore::getJSListenerFunctions):
18037         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
18038         (WebCore::JSJavaScriptCallFrame::scopeChain):
18039         * bindings/js/JSMessageEventCustom.cpp:
18040         (WebCore::JSMessageEvent::ports):
18041         * bindings/js/JSMutationCallbackCustom.cpp:
18042         (WebCore::JSMutationCallback::handleEvent):
18043         * bindings/js/JSWebGLRenderingContextCustom.cpp:
18044         (WebCore::toJS):
18045         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
18046         (WebCore::JSWebGLRenderingContext::getSupportedExtensions):
18047         * bindings/js/SerializedScriptValue.cpp:
18048         (WebCore::CloneDeserializer::deserialize):
18049
18050 2012-11-08  Tiancheng Jiang  <tijiang@rim.com>
18051
18052         [BlackBerry] Update BB10 date input form.
18053         https://bugs.webkit.org/show_bug.cgi?id=101075
18054
18055         Reviewed by Rob Buis.
18056
18057         RIM PR 234531
18058         Internally Reviewed by Mike Fenton.
18059         Change date input appearance to button and hide caret when click on them.
18060
18061         * css/themeBlackBerry.css:
18062         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
18063
18064 2012-11-08  Adam Barth  <abarth@webkit.org>
18065
18066         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
18067         https://bugs.webkit.org/show_bug.cgi?id=101519
18068
18069         Reviewed by Ojan Vafai.
18070
18071         There should be no change in behavior.  The new API is slightly faster
18072         than the old API (and apparently works correctly internally in V8).
18073
18074         * bindings/scripts/CodeGeneratorV8.pm:
18075         (GenerateHeader):
18076         * bindings/scripts/test/V8/V8Float64Array.h:
18077         (WebCore::V8Float64Array::toNative):
18078         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
18079         (WebCore::V8TestActiveDOMObject::toNative):
18080         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
18081         (WebCore::V8TestCustomNamedGetter::toNative):
18082         * bindings/scripts/test/V8/V8TestEventConstructor.h:
18083         (WebCore::V8TestEventConstructor::toNative):
18084         * bindings/scripts/test/V8/V8TestEventTarget.h:
18085         (WebCore::V8TestEventTarget::toNative):
18086         * bindings/scripts/test/V8/V8TestException.h:
18087         (WebCore::V8TestException::toNative):
18088         * bindings/scripts/test/V8/V8TestInterface.h:
18089         (WebCore::V8TestInterface::toNative):
18090         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
18091         (WebCore::V8TestMediaQueryListListener::toNative):
18092         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
18093         (WebCore::V8TestNamedConstructor::toNative):
18094         * bindings/scripts/test/V8/V8TestNode.h:
18095         (WebCore::V8TestNode::toNative):
18096         * bindings/scripts/test/V8/V8TestObj.h:
18097         (WebCore::V8TestObj::toNative):
18098         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
18099         (WebCore::V8TestSerializedScriptValueInterface::toNative):
18100         * bindings/v8/NPV8Object.cpp:
18101         (WebCore::v8ObjectToNPObject):
18102         (WebCore::npCreateV8ScriptObject):
18103         * bindings/v8/V8Collection.h:
18104         (WebCore::toNativeCollection):
18105         * bindings/v8/V8DOMWindowShell.cpp:
18106         (WebCore::setIsolatedWorldField):
18107         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
18108         * bindings/v8/V8DOMWrapper.cpp:
18109         (WebCore::V8DOMWrapper::isWrapperOfType):
18110         * bindings/v8/V8DOMWrapper.h:
18111         (WebCore::V8DOMWrapper::setDOMWrapper):
18112         (WebCore::V8DOMWrapper::clearDOMWrapper):
18113         * bindings/v8/WrapperTypeInfo.h:
18114         (WebCore::toNative):
18115         (WebCore::toWrapperTypeInfo):
18116
18117 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18118
18119         setAttributeNode and friends should not have optional argument
18120         https://bugs.webkit.org/show_bug.cgi?id=101631
18121
18122         Reviewed by Ojan Vafai.
18123
18124         http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-887236154
18125
18126         Fix getAttributeNode, getAttributeNodeNS and removeAttributeNode to make the Attr
18127         argument mandatory.
18128
18129         These used to throw DOMExceptions when an invalid type was passed instead of
18130         TypeError which is also a spec violation.
18131
18132         Updated existing tests.
18133
18134         * bindings/scripts/CodeGeneratorV8.pm:
18135         * dom/Element.cpp:
18136         * dom/Element.idl:
18137
18138 2012-11-08  Joshua Bell  <jsbell@chromium.org>
18139
18140         IndexedDB: Remove unused error handling clauses when writing to transaction
18141         https://bugs.webkit.org/show_bug.cgi?id=100700
18142
18143         Reviewed by Tony Chang.
18144
18145         Transactions are written into in-memory data structures. This can only fail if allocation
18146         fails, so "success" results are always returned. Change the return types to void, and delete
18147         all of the unreachable error handling code.
18148
18149         No new tests - just refactoring/dead code removal.
18150
18151         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
18152         (WebCore::putBool): Only write to transactions.
18153         (WebCore):
18154         (WebCore::putInt): Ditto.
18155         (WebCore::putVarInt): Ditto.
18156         (WebCore::putString): Ditto.
18157         (WebCore::putIDBKeyPath): Ditto.
18158         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
18159         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
18160         (WebCore::deleteRange): Writes only to transaction, so can't fail.
18161         (WebCore::setMaxObjectStoreId):
18162         (WebCore::IDBLevelDBBackingStore::createObjectStore):
18163         (WebCore::getNewVersionNumber):
18164         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
18165         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
18166         (WebCore::setMaxIndexId):
18167         (WebCore::IDBLevelDBBackingStore::createIndex):
18168         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18169         * platform/leveldb/LevelDBTransaction.cpp:
18170         (WebCore::LevelDBTransaction::set): Return type is void.
18171         (WebCore::LevelDBTransaction::put): Ditto.
18172         (WebCore::LevelDBTransaction::remove): Ditto.
18173         * platform/leveldb/LevelDBTransaction.h:
18174         (LevelDBTransaction):
18175
18176 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
18177
18178         On Chromium, click-after-nested-block.html, focus_editable_html.html, and autoscroll.html
18179         hit assertion added in r133840
18180         https://bugs.webkit.org/show_bug.cgi?id=101576
18181
18182         Reviewed by Abhishek Arya.
18183
18184         Update layout before invalidating caret rect as needed.
18185         Existing tests cover this.
18186
18187         * editing/FrameSelection.cpp:
18188         (WebCore::FrameSelection::setCaretVisibility): Merged clearCaretRectIfNeeded.
18189         * editing/FrameSelection.h:
18190
18191 2012-11-08  Elliott Sprehn  <esprehn@chromium.org>
18192
18193         Skip frame owner disconnect when there's no frames
18194         https://bugs.webkit.org/show_bug.cgi?id=101619
18195
18196         Reviewed by Ojan Vafai.
18197
18198         Even when there's no subframes in the document we traverse down every
18199         subtree on Node removal looking for frames to disconnect. This patch
18200         checks document()->frame()->tree()->firstChild() to skip this traversal
18201         if there's no subframes.
18202
18203         No new tests, this just short circuits code for speed.
18204
18205         * dom/ContainerNodeAlgorithms.h:
18206         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
18207
18208 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18209
18210         Wrong error type is thrown for type errors in callbacks
18211         https://bugs.webkit.org/show_bug.cgi?id=101502
18212
18213         Reviewed by Adam Barth.
18214
18215         We should be throwing a TypeError and not a DOMException with code TYPE_MISMATCH_ERR.
18216
18217         http://www.w3.org/TR/WebIDL/#es-callback-function
18218
18219         Updated existing tests.
18220
18221         * bindings/scripts/CodeGeneratorJS.pm:
18222         * bindings/scripts/CodeGeneratorV8.pm:
18223         * bindings/scripts/test/JS/JSTestObj.cpp:
18224         * bindings/scripts/test/V8/V8TestObj.cpp:
18225
18226 2012-11-08  Andreas Kling  <kling@webkit.org>
18227
18228         4.68MB below RenderStyle::filter() on Membuster3.
18229         <http://webkit.org/b/101624>
18230         <rdar://problem/12663822>
18231
18232         Reviewed by Darin Adler.
18233
18234         Rename the non-const RenderStyle::filter() to mutableFilter() since using it causes us to detach
18235         from the rare non-inherited data (copy-on-write.)
18236         Most call sites were calling filter() on a RenderStyle* which was causing the bloat.
18237
18238         4.68MB progression on Membuster3.
18239
18240         * css/StyleResolver.cpp:
18241         (WebCore::StyleResolver::loadPendingSVGDocuments):
18242         (WebCore::StyleResolver::loadPendingShaders):
18243         * rendering/style/RenderStyle.h:
18244
18245 2012-11-08  Alexey Proskuryakov  <ap@apple.com>
18246
18247         Create loader/blackberry directory, because svn-apply cannot apply a patch that
18248         creates a directory and moves a file into it.
18249
18250         * loader/blackberry: Added.
18251
18252 2012-11-08  Geoffrey Garen  <ggaren@apple.com>
18253
18254         Mac build fix: Mark WidthCache.h 'private' so WebKit can use it.
18255
18256         Not reviewed.
18257
18258         * WebCore.xcodeproj/project.pbxproj:
18259
18260 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
18261
18262         Optimized kerning and ligatures using caching
18263         https://bugs.webkit.org/show_bug.cgi?id=101269
18264
18265         Reviewed by Dan Bernstein.
18266
18267         Consider three kinds of text layout, and the value of caching for each:
18268
18269             (1) 1 layout of 100% unique words: small negative value.
18270
18271             (2) 1 layout of English prose: medium positive value.
18272
18273             (3) Many layouts of anything: extra-extra-large positive value.
18274
18275         Since we can't distinguish betwen these workflows a priori, we use statistical
18276         sampling. To minimize cost in (1) and maximize benefit in (2) and (3), we treat
18277         each cache access as a statistical sample, and use the cache in proportion to
18278         the observed probability of duplicate text measurement.
18279
18280         Benchmark results:
18281             plt3: 1% faster
18282             chapter-reflow-once-random: No change [*]
18283             chapter-reflow-once: 23% faster
18284             chapter-reflow-twice: 52% faster
18285             chapter-reflow-thrice: 68% faster
18286             chapter-reflow: 263% faster
18287             line-layout: 270% faster
18288
18289             [*] This is a stress test designed to make everything go wrong for
18290             caching. It does not represent real world content.
18291
18292         * GNUmakefile.list.am:
18293         * Target.pri:
18294         * WebCore.vcproj/WebCore.vcproj:
18295         * WebCore.xcodeproj/project.pbxproj:
18296         * platform/graphics/WidthCache.h: Added.
18297
18298         (WidthCache): Added a class that caches common word widths. This cache
18299         could cache more things or more cases in future -- but for now it seems
18300         to cover the common cases.
18301
18302         (SmallStringKey): Early profiling showed that allocating an AtomicString
18303         or String measurably added to the cost of the cache, so I added a custom
18304         string key that can be stored directly inside the table by value --
18305         empirically answering an age-old question with which Apple WebKit engineers
18306         seem to be obsessed.
18307
18308         (WebCore::WidthCache::SmallStringKey::capacity):
18309         (WebCore::WidthCache::SmallStringKey::SmallStringKey):
18310         (WebCore::WidthCache::SmallStringKey::characters):
18311         (WebCore::WidthCache::SmallStringKey::length):
18312         (WebCore::WidthCache::SmallStringKey::hash):
18313         (WebCore::WidthCache::SmallStringKey::isHashTableDeletedValue):
18314         (WebCore::WidthCache::SmallStringKey::isHashTableEmptyValue):
18315         (WebCore::WidthCache::SmallStringKeyHash::hash):
18316         (WebCore::WidthCache::SmallStringKeyHash::equal):
18317         (SmallStringKeyHash):
18318         (SmallStringKeyHashTraits):
18319         (WebCore::WidthCache::SmallStringKeyHashTraits::isEmptyValue): Ditto.
18320
18321         (WebCore::WidthCache::WidthCache):
18322         (WebCore::WidthCache::add): Separate out the "don't use the cache" case
18323         so the compiler can inline it separate, hopefully further reducing cases
18324         of (1).
18325
18326         (WebCore::WidthCache::addSlowCase): There's a little subtlety to the
18327         sampling policy here. Lots of different approaches are possible, and I
18328         just picked a simple one that seemed to work based on benchmarking. I'll
18329         point out some interesting sublteties I'm aware of here:
18330
18331             (*) Since we start at the min sampling rate, a font used for 20 words
18332             or fewer never allocates a cache. Anecdotally, some fonts seem to
18333             be used this way.
18334
18335             (*) When the sampling rate is x / y, sampling all x words in a row
18336             seems smart because some words may occur more commonly in relation to
18337             each other (such as 'each' and 'other'), and repeat workloads will
18338             lay out the same words in order. Intuitively, these are both reasons
18339             this policy may ramp up more effectively under load.
18340
18341             (*) I opted for linear back-off instead of, say, exponential back-off
18342             because we're not trying to back off to infinity -- just to our min
18343             sampling rate. Since we don't expect the cache to hit for every word,
18344             my guess is that exponential back-off would be too aggressive.
18345
18346             (*) Our "eviction" policy has an IQ of 1. I expect this is sufficient
18347             because it would be surprising to see a million unique words all used
18348             in the same document. (I would not like to play a Letterpress game
18349             against such a document.)
18350
18351         (WebCore::WidthCache::clear): Needed because a font can change, in which
18352         case we need to ditch its cache.
18353
18354         (WebCore::operator==): Needed for hashing.
18355
18356 2012-11-08  Andrey Kosyakov  <caseq@chromium.org>
18357
18358         Web Inspector: show statistics over selected frame range in Timeline's Frame mode
18359         https://bugs.webkit.org/show_bug.cgi?id=101593
18360
18361         Reviewed by Pavel Feldman.
18362
18363         - change status bar records counter wording to "N of M frames|records shown" depending on mode;
18364         - append average frame length and & stddev in frame mode;
18365         - expand the above to a popover that includes frame count, range duration and min/avg/max/stddev on frame length;
18366         - show frame bars & dividers iff selection range includes < 30 frames (drive-by)
18367
18368         * English.lproj/localizedStrings.js:
18369         * inspector/front-end/TimelineFrameController.js:
18370         (WebInspector.FrameStatistics):
18371         * inspector/front-end/TimelineModel.js:
18372         (WebInspector.TimelineModel.aggregateTimeByCategory):
18373         * inspector/front-end/TimelinePanel.js:
18374         (WebInspector.TimelinePanel.prototype.get statusBarItems):
18375         (WebInspector.TimelinePanel.prototype._createStatusBarItems.getAnchor):
18376         (WebInspector.TimelinePanel.prototype._createStatusBarItems):
18377         (WebInspector.TimelinePanel.prototype._updateRecordsCounter):
18378         (WebInspector.TimelinePanel.prototype._updateFrameStatistics):
18379         (WebInspector.TimelinePanel.prototype._showFrameStatistics):
18380         (WebInspector.TimelinePanel.prototype._updateFrameBars):
18381         (WebInspector.TimelinePanel.prototype._overviewModeChanged.set if):
18382         (WebInspector.TimelinePanel.prototype._overviewModeChanged):
18383         (WebInspector.TimelinePanel.prototype._refresh):
18384         * inspector/front-end/TimelinePresentationModel.js:
18385         (WebInspector.TimelinePresentationModel.prototype.):
18386         (WebInspector.TimelinePresentationModel.prototype.compareEndTime):
18387         (WebInspector.TimelinePresentationModel.prototype.filteredFrames):
18388         (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
18389         * inspector/front-end/timelinePanel.css:
18390         (.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
18391         (.timeline-records-stats):
18392         (.timeline-frames-stats):
18393
18394 2012-11-08  Jakob Petsovits  <jpetsovits@rim.com>
18395
18396         [BlackBerry] Rework the API to use document coordinates
18397         https://bugs.webkit.org/show_bug.cgi?id=101608
18398         RIM PR 173292
18399
18400         Reviewed by Adam Treat.
18401
18402         Provide a better API for WebPage to relay.
18403         See Source/WebKit/blackberry/ChangeLog for details.
18404
18405         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
18406         (WebCore::MediaPlayerPrivate::getWindowScreenRect):
18407         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
18408         (Platform):
18409         (BlackBerry):
18410         (MediaPlayerPrivate):
18411
18412 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
18413
18414         Unreviewed, rolling out r133892.
18415         http://trac.webkit.org/changeset/133892
18416         https://bugs.webkit.org/show_bug.cgi?id=101617
18417
18418         Compile failures on mac, android, linux (Requested by
18419         jsbell|gardener on #webkit).
18420
18421         * bindings/v8/DOMDataStore.cpp:
18422         (WebCore::DOMDataStore::current):
18423         * bindings/v8/DOMWrapperWorld.h:
18424         (WebCore::DOMWrapperWorld::domDataStore):
18425         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18426         * bindings/v8/V8DOMWrapper.h:
18427         (WebCore::V8DOMWrapper::getCachedWrapper):
18428
18429 2012-11-08  Andrey Adaikin  <aandrey@chromium.org>
18430
18431         Web Inspector: [Canvas] UI iterations: image on the top, auto replay
18432         https://bugs.webkit.org/show_bug.cgi?id=101584
18433
18434         Reviewed by Pavel Feldman.
18435
18436         * inspector/front-end/CanvasProfileView.js:
18437         (WebInspector.CanvasProfileView):
18438         (WebInspector.CanvasProfileView.prototype._showTraceLog):
18439         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
18440         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
18441         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
18442         * inspector/front-end/canvasProfiler.css:
18443         (.canvas-trace-log):
18444         (#canvas-replay-image-container):
18445         (#canvas-replay-image):
18446
18447 2012-11-08  Wei Fanzhe  <whyer1@gmail.com>
18448
18449         While absolute positioning is put before the first flexitem, flexitems will move to a new line.
18450         https://bugs.webkit.org/show_bug.cgi?id=101294
18451
18452         Reviewed by Ojan Vafai.
18453
18454         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.  
18455
18456         * rendering/RenderFlexibleBox.cpp:
18457         (WebCore::RenderFlexibleBox::computeNextFlexLine):
18458
18459 2012-11-08  Dimitri Glazkov  <dglazkov@chromium.org>
18460
18461         Unreviewed, rolling out r133429.
18462         http://trac.webkit.org/changeset/133429
18463         https://bugs.webkit.org/show_bug.cgi?id=101173
18464
18465         Speculative roll out, investigating perf regression.
18466
18467         * dom/ContextFeatures.cpp:
18468         * dom/ContextFeatures.h:
18469         * dom/Position.cpp:
18470         (WebCore::Position::Position):
18471         (WebCore::Position::findParent):
18472         * dom/TreeScope.cpp:
18473         (WebCore::TreeScope::getSelection):
18474         * html/HTMLTagNames.in:
18475         * html/shadow/HTMLContentElement.cpp:
18476         (WebCore::HTMLContentElement::contentTagName):
18477         * page/DOMWindow.idl:
18478
18479 2012-11-07  Emil A Eklund  <eae@chromium.org>
18480
18481         Fix enclosingLayoutRect calls in InlineFlowBox.h
18482         https://bugs.webkit.org/show_bug.cgi?id=101497
18483
18484         Reviewed by Levi Weintraub.
18485
18486         InlineFlowBox.h used to include LayoutTypesInlineMethods.h which
18487         overrid enclosingLayoutRect to call closingIntRect. When we
18488         removed the LayoutTypes abstraction we switched these to
18489         enclosingIntRect to preserve the behavior.
18490         This patch changes these back to enclosingLayoutRect which is
18491         the desired behavior.
18492
18493         Covered by existing tests.
18494
18495         * rendering/InlineFlowBox.h:
18496         (WebCore::InlineFlowBox::layoutOverflowRect):
18497         (WebCore::InlineFlowBox::visualOverflowRect):
18498
18499 2012-11-08  Philip Rogers  <pdr@google.com>
18500
18501         Remove unnecessary save/restore in SVGTextRunRenderingContext
18502         https://bugs.webkit.org/show_bug.cgi?id=101546
18503
18504         Reviewed by Andreas Kling.
18505
18506         This patch removes an unnecessary context save/restore SVGTextRunRenderingContext by
18507         refactoring the code to save off the stroke thickness.
18508
18509         No new tests as this is heavily covered by existing tests.
18510
18511         * rendering/svg/SVGTextRunRenderingContext.cpp:
18512         (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
18513
18514 2012-11-08  Carlos Garcia Campos  <cgarcia@igalia.com>
18515
18516         [GTK] Clean up includes in GObject DOM bindings code
18517         https://bugs.webkit.org/show_bug.cgi?id=101077
18518
18519         Reviewed by Kentaro Hara.
18520
18521         Remove some headers included multiple times for the same file and
18522         fix consistency in the includes style.
18523
18524         * bindings/gobject/DOMObjectCache.cpp:
18525         * bindings/gobject/GObjectEventListener.cpp:
18526         * bindings/gobject/GObjectEventListener.h:
18527         * bindings/gobject/WebKitDOMBinding.cpp:
18528         * bindings/gobject/WebKitDOMBinding.h:
18529         * bindings/gobject/WebKitDOMEventTarget.cpp:
18530         * bindings/gobject/WebKitDOMEventTarget.h:
18531         * bindings/gobject/WebKitDOMEventTargetPrivate.h:
18532         (WebKit):
18533         * bindings/gobject/WebKitDOMObject.cpp:
18534         * bindings/gobject/WebKitDOMObject.h:
18535         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
18536         * bindings/gobject/WebKitHTMLElementWrapperFactory.h:
18537         * bindings/scripts/CodeGeneratorGObject.pm:
18538         (GenerateHeader):
18539         (GenerateFunction):
18540         (Generate):
18541         (WriteData):
18542         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
18543         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
18544         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
18545         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
18546         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
18547         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
18548         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
18549         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
18550         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
18551         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
18552         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
18553         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
18554         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
18555         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
18556         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
18557         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
18558         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
18559         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
18560         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
18561         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
18562         * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
18563         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
18564         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
18565         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
18566         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
18567         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
18568         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
18569         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
18570         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
18571         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
18572         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
18573         * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
18574         * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
18575         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
18576         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
18577         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
18578         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
18579         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
18580         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
18581
18582 2012-11-08  Dan Carney  <dcarney@google.com>
18583
18584         [V8] Main world should have one DOMDataStore
18585         https://bugs.webkit.org/show_bug.cgi?id=101470
18586
18587         Reviewed by Kentaro Hara.
18588
18589         The main world DOMWrapperWorld held onto a DOMDataStore that should
18590         never be used, as there is a static one optimized for speed in
18591         DOMDataStore.
18592
18593         No new tests. No change in functionality.
18594
18595         * bindings/v8/DOMDataStore.cpp:
18596         (WebCore::DOMDataStore::current):
18597         * bindings/v8/DOMWrapperWorld.h:
18598         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
18599         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18600         * bindings/v8/V8DOMWrapper.h:
18601         (WebCore::V8DOMWrapper::getCachedWrapper):
18602
18603 2012-11-08  Laszlo Gombos  <l.gombos@samsung.com>
18604
18605         [EFL] Remove non-variable options from the build system
18606         https://bugs.webkit.org/show_bug.cgi?id=101506
18607
18608         Reviewed by Kenneth Rohde Christiansen.
18609
18610         Remove WTF_USE_ICU_UNICODE, WTF_USE_CAIRO and WTF_USE_FREETYPE cmake variables
18611         as these are always set to const 1 and not really configurable.
18612
18613         Remove duplicate platform/graphics/cairo include path from
18614         PlatformEfl.cmake.
18615
18616         No new tests as there is no new functionality.
18617
18618         * PlatformEfl.cmake:
18619
18620 2012-11-08  KyungTae Kim  <ktf.kim@samsung.com>
18621
18622         Unused parameters on GraphicsLayerUpdater.cpp
18623         https://bugs.webkit.org/show_bug.cgi?id=101577
18624
18625         Reviewed by Kentaro Hara.
18626
18627         The parameter 'displayID' is not used when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
18628         Use UNUSED_PARAM macro for removing -Wunused-parameter warnings
18629
18630         * platform/graphics/GraphicsLayerUpdater.cpp:
18631         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
18632         (WebCore::GraphicsLayerUpdater::screenDidChange):
18633
18634 2012-11-08  Alexander Pavlov  <apavlov@chromium.org>
18635
18636         Web Inspector: Add option to disable rulers (Elements panel)
18637         https://bugs.webkit.org/show_bug.cgi?id=101554
18638
18639         Reviewed by Pavel Feldman.
18640
18641         A new setting, showMetricsRulers, has been introduced (off by default, so users need to opt in to see the rulers).
18642         The setting value is passed into InspectorDOMAgent, down to the InspectorOverlayPage, which affects the drawGrid() and
18643         drawRulers() calls. As a side effect, the issue when the rulers were painted for elements having no renderers has been fixed.
18644
18645         No new tests, a UI change.
18646
18647         * English.lproj/localizedStrings.js: Add "Show rulers" string.
18648         * inspector/InspectorDOMAgent.cpp:
18649         (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): Copy over the showRulers value.
18650         * inspector/InspectorOverlay.cpp:
18651         (WebCore::buildObjectForHighlight): Copy over the showRulers value.
18652         * inspector/InspectorOverlay.h:
18653         (HighlightConfig): Add |bool showRulers|.
18654         (WebCore::Highlight::Highlight): Initialize fields.
18655         (Highlight): Add |bool showRulers|.
18656         (WebCore::Highlight::setDataFromConfig):
18657         * inspector/InspectorOverlayPage.html:
18658         * inspector/front-end/DOMAgent.js: Make use of WebInspector.settings.showMetricsRulers when building the highlight DTO.
18659         * inspector/front-end/Settings.js: Add showMetricsRulers.
18660         * inspector/front-end/SettingsScreen.js:
18661         (WebInspector.GenericSettingsTab): Add "Show rulers" checkbox in the Elements panel section.
18662
18663 2012-11-08  Alexander Shalamov  <alexander.shalamov@intel.com>
18664
18665         Warn in the inspector console when using dpi and dpcm units outside of media="print"
18666         https://bugs.webkit.org/show_bug.cgi?id=100865
18667
18668         Reviewed by Kenneth Rohde Christiansen.
18669
18670         Added function that prints warning to inspector console whenever dpi or dpcm CSS units
18671         are used for screen media.
18672
18673         Test: fast/media/mq-resolution-dpi-dpcm-warning.html
18674
18675         * css/CSSStyleSheet.cpp:
18676         (WebCore::CSSStyleSheet::setMediaQueries):
18677         * css/MediaList.cpp:
18678         (WebCore):
18679         (WebCore::addResolutionWarningMessageToConsole):
18680         (WebCore::reportMediaQueryWarningIfNeeded):
18681         * css/MediaList.h:
18682         (WebCore):
18683         * css/MediaQueryMatcher.cpp:
18684         (WebCore::MediaQueryMatcher::matchMedia):
18685         * css/StyleSheetContents.cpp:
18686         (WebCore::StyleSheetContents::parserAppendRule):
18687
18688 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18689
18690         Web Inspector: Console: "time" and "timeEnd" should have same number of required arguments
18691         https://bugs.webkit.org/show_bug.cgi?id=101451
18692
18693         Reviewed by Yury Semikhatsky.
18694
18695         Solution: make console.time "title" parameter mandatory.
18696
18697         * page/Console.idl: Changed parameter specification.
18698
18699 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
18700
18701         Unreviewed fixed inspector frontend compilation
18702
18703         * inspector/front-end/DataGrid.js:
18704
18705 2012-11-08  Zeno Albisser  <zeno@webkit.org>
18706
18707         GraphicsSurfaceGLX needs to query the drawable for YInversion.
18708         https://bugs.webkit.org/show_bug.cgi?id=101472
18709
18710         After r133049 the WebGL content is now displayed upside down
18711         for the Qt port. We cannot just apply a generic rule, that
18712         the content needs to be flipped upside down.
18713         Instead we have to query GLX to tell us, if the drawable's
18714         framebuffer is y-inverted.
18715
18716         Reviewed by Kenneth Rohde Christiansen.
18717
18718         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
18719         (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
18720         (GraphicsSurfacePrivate):
18721         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
18722
18723 2012-11-08  Mike West  <mkwst@chromium.org>
18724
18725         Warn when parsing an invalid X-Frame-Options header.
18726         https://bugs.webkit.org/show_bug.cgi?id=101447
18727
18728         Reviewed by Adam Barth.
18729
18730         An 'X-Frame-Options' header that contains an invalid option (that is,
18731         neither 'DENY' nor 'SAMEORIGIN') is ignored. This patch adds a console
18732         warning to notify developers that they've made a mistake.
18733
18734         Test: http/tests/security/XFrameOptions/x-frame-options-invalid.html
18735
18736         * dom/Document.cpp:
18737         (WebCore::Document::processHttpEquiv):
18738             Move the request identifier generation out of the failure block in
18739             order to pass it into 'shouldInterruptLoadForXFrameOptions'. This
18740             ensures that the console message is properly tied to a request.
18741         * loader/FrameLoader.cpp:
18742         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
18743         * loader/FrameLoader.h:
18744         (FrameLoader):
18745             'shouldInterruptLoadForXFrameOptions' now accepts a request
18746             identifier as a parameter, and generates a console message if the
18747             load is blocked.
18748         * loader/MainResourceLoader.cpp:
18749         (WebCore::MainResourceLoader::didReceiveResponse):
18750             Pass the request identifier into 'shouldInterruptLoadForXFrameOptions'.
18751
18752 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18753
18754         Web Inspector: Timeline: Improve time/timeEnd appearance.
18755         https://bugs.webkit.org/show_bug.cgi?id=100936
18756
18757         Reviewed by Yury Semikhatsky.
18758
18759         Changes:
18760         - time/timeEnd records should be top level records only in "glue" mode
18761         - time/timeEnd records should display "message" in record list / popover
18762         - glued records add aggregated statistics to root record
18763         - glued records do not reduce their origin self time
18764
18765         Test: inspector/timeline/timeline-time.html
18766
18767         * English.lproj/localizedStrings.js: Added "Message" string.
18768         * inspector/front-end/TimelinePresentationModel.js:
18769         (WebInspector.TimelinePresentationModel.Record): Added "origin" field.
18770
18771 2012-11-08  Yury Semikhatsky  <yurys@chromium.org>
18772
18773         Web Inspector: move front-end methods called from native part to InspectorFrontendAPI
18774         https://bugs.webkit.org/show_bug.cgi?id=101463
18775
18776         Reviewed by Vsevolod Vlasov.
18777
18778         Moved Web Inspector methods called from native code to InspectorFrontendAPI.
18779
18780         * inspector/InspectorClient.cpp:
18781         (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
18782         * inspector/InspectorFrontendHost.cpp:
18783         (WebCore::FrontendMenuProvider::create):
18784         (WebCore::FrontendMenuProvider::disconnect):
18785         (WebCore::FrontendMenuProvider::FrontendMenuProvider):
18786         (WebCore::FrontendMenuProvider::contextMenuItemSelected):
18787         (WebCore::FrontendMenuProvider::contextMenuCleared):
18788         (FrontendMenuProvider):
18789         (WebCore::InspectorFrontendHost::showContextMenu):
18790         * inspector/front-end/InspectorFrontendAPI.js:
18791         (InspectorFrontendAPI.loadCompleted):
18792         (InspectorFrontendAPI.contextMenuItemSelected):
18793         (InspectorFrontendAPI.contextMenuCleared):
18794         (InspectorFrontendAPI.dispatchMessageAsync):
18795         (InspectorFrontendAPI.dispatchMessage):
18796         * inspector/front-end/inspector.js:
18797
18798 2012-11-08  Kunihiko Sakamoto  <ksakamoto@chromium.org>
18799
18800         User can change a disabled select (drop down box)
18801         https://bugs.webkit.org/show_bug.cgi?id=100932
18802
18803         Reviewed by Kent Tamura.
18804
18805         <select> should not handle events if it's disabled.
18806
18807         Test: fast/forms/select/select-disabled.html
18808
18809         * html/HTMLSelectElement.cpp:
18810         (WebCore::HTMLSelectElement::defaultEventHandler):
18811
18812 2012-11-08  Alec Flett  <alecflett@chromium.org>
18813
18814         IndexedDB: Rename methods and remove dead code from IDBBackingStore
18815         https://bugs.webkit.org/show_bug.cgi?id=101488
18816
18817         Reviewed by Ojan Vafai.
18818
18819         In preparation for merging IDBBackingStore and IDBLevelDBBackingStore:
18820
18821         1) rename ObjectStoreRecordIdentifier to RecordIdentifier
18822         2) remove IDBBackingStore::forEachRecord and friends
18823         3) remove IDBBackingStore::Cursor::close, since it was an empty method.
18824
18825         No new tests as this is purely code cleanup.
18826
18827         * Modules/indexeddb/IDBBackingStore.cpp:
18828         (WebCore::IDBLevelDBBackingStore::getRecord):
18829         (WebCore):
18830         (WebCore::IDBLevelDBBackingStore::putRecord):
18831         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
18832         (WebCore::IDBLevelDBBackingStore::deleteRecord):
18833         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
18834         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18835         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
18836         * Modules/indexeddb/IDBBackingStore.h:
18837         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
18838         (IDBBackingStore):
18839         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
18840         (WebCore::IDBCursorBackendImpl::close):
18841         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
18842         (WebCore::IDBIndexBackendImpl::countInternal):
18843         (WebCore::IDBIndexBackendImpl::getInternal):
18844         (WebCore::IDBIndexBackendImpl::getKeyInternal):
18845         * Modules/indexeddb/IDBLevelDBBackingStore.h:
18846         (IDBLevelDBBackingStore):
18847         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
18848         (WebCore::IDBObjectStoreBackendImpl::getInternal):
18849         (WebCore):
18850         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
18851         (WebCore::IDBObjectStoreBackendImpl::putInternal):
18852         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
18853         (WebCore::IDBObjectStoreBackendImpl::countInternal):
18854
18855 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18856
18857         Web Inspector: console error after inspecting IndexedDB
18858         https://bugs.webkit.org/show_bug.cgi?id=101481
18859
18860         Reviewed by Pavel Feldman.
18861
18862         Added objectId nullity check to RemoteOBject::release.
18863         Drive-by added release for entry key and primaryKey.
18864
18865         * inspector/front-end/IndexedDBViews.js:
18866         (WebInspector.IDBDataView.prototype.clear):
18867         * inspector/front-end/RemoteObject.js:
18868         (WebInspector.RemoteObject.prototype.release):
18869
18870 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18871
18872         Web Inspector: Migrate inspector IndexedDB support to frontend API.
18873         https://bugs.webkit.org/show_bug.cgi?id=101457
18874
18875         Reviewed by Pavel Feldman.
18876
18877         Migrated IndexedDB support to web facing IndexedDB API.
18878
18879         * inspector/Inspector.json:
18880         * inspector/InspectorIndexedDBAgent.cpp:
18881         (WebCore):
18882         (WebCore::assertIDBFactory):
18883         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
18884         (WebCore::InspectorIndexedDBAgent::requestDatabase):
18885         (WebCore::InspectorIndexedDBAgent::requestData):
18886         * inspector/front-end/IndexedDBModel.js:
18887         (WebInspector.IndexedDBModel.prototype.innerCallback):
18888         (WebInspector.IndexedDBModel.prototype._requestData):
18889         * inspector/front-end/IndexedDBViews.js:
18890         (WebInspector.IDBDataView.prototype._updateData.callback):
18891         (WebInspector.IDBDataView.prototype._updateData):
18892         (WebInspector.IDBDataGridNode):
18893         (WebInspector.IDBDataGridNode.prototype.createCell):
18894
18895 2012-08-20  Taiju Tsuiki  <tzik@chromium.org>
18896
18897         Web Inspector: Drop dimmed crumb handling
18898         https://bugs.webkit.org/show_bug.cgi?id=94457
18899
18900         Reviewed by Vsevolod Vlasov.
18901
18902         No new tests. Existing inspector test should work.
18903
18904         * inspector/front-end/ElementsPanel.js:
18905         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
18906         (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
18907         * inspector/front-end/breadcrumbList.css:
18908
18909 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18910
18911         Web Inspector: Infinite loop in DataGrid::autoSizeColumn
18912         https://bugs.webkit.org/show_bug.cgi?id=101363
18913
18914         Reviewed by Pavel Feldman.
18915
18916         Test: inspector/datagrid-autosize.html
18917
18918         * inspector/front-end/DataGrid.js:
18919         (WebInspector.DataGrid.prototype._autoSizeWidths):
18920         (WebInspector.DataGrid.prototype.autoSizeColumns):
18921
18922 2012-11-07  Keishi Hattori  <keishi@webkit.org>
18923
18924         Implement week picking to calendar picker
18925         https://bugs.webkit.org/show_bug.cgi?id=101449
18926
18927         Reviewed by Kent Tamura.
18928
18929         This adds week picker mode to CalendarPicker.
18930
18931         No new tests. Tests will be added later when this feature is enabled in DRT.
18932
18933         * Resources/pagepopups/calendarPicker.css:
18934         (.month-mode .day):
18935         (.week-mode .available.day-selected.monday): Rounded corners around week selection.
18936         (.week-mode .available.day-selected.sunday): Ditto.
18937         (.week-mode .unavailable.day-selected):
18938         (.week-mode .unavailable.day-selected.monday):
18939         (.week-mode .unavailable.day-selected.sunday):
18940         (.week-mode .week-column.unavailable.day-selected):
18941         (.week-column): Hide week column unless in week mode.
18942         (.week-mode .week-column):
18943         * Resources/pagepopups/calendarPicker.js:
18944         (parseDateString): Support week string.
18945         (Week):
18946         (Week.parse): Parses "yyyy-Www" string.
18947         (Week.createFromDate): Creates Week containing datetime.
18948         (Week.createFromToday): Creates Week containing today.
18949         (Week.weekOneStartDateForYear): Returns the start date for the first week of year.
18950         (Week.numberOfWeeksInYear): Returns the number of weeks in year.
18951         (Week._numberOfWeeksSinceDate): Returns number of weeks since a date.
18952         (Week.prototype.equals): Returns true if the Weeks are the same.
18953         (Week.prototype.previous): Returns the previous Week.
18954         (Week.prototype.next): Returns the next Week.
18955         (Week.prototype.startDate): Returns start datetime of Week.
18956         (Week.prototype.endDate): Returns end datetime of Week.
18957         (Week.prototype.valueOf): Returns the milliseconds since epoch.
18958         (Week.prototype.toString): Returns ISO week string.
18959         (CalendarPicker): Add week picker mode.
18960         (CalendarPicker.prototype.showMonth): Use NavigationBehaviour instead of bools.
18961         (YearMonthController.prototype.attachTo): Fix bug.
18962         (YearMonthController.prototype.moveRelatively): Use new showMonth.
18963         (DaysTable.prototype.attachTo): Add week number column.
18964         (DaysTable.prototype._renderMonth): Render week numbers.
18965         (DaysTable.prototype.navigateToMonth): Render week numbers.
18966         (DaysTable.prototype.selectRange):
18967         (DaysTable.prototype._selectRangeAtPosition): Week number nodes have an positionX of -1.
18968         (DaysTable.prototype._maybeSetPreviousMonth):
18969         (DaysTable.prototype._maybeSetNextMonth):
18970         (MonthPickerDaysTable.prototype.selectRange):
18971         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange):
18972         (MonthPickerDaysTable.prototype._handleKey):
18973         (WeekPickerDaysTable): Added.
18974         (WeekPickerDaysTable.prototype._markRangeAsSelected): Marks week as selected.
18975         (WeekPickerDaysTable.prototype.selectRange): Selects week.
18976         (WeekPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects week and navigate to show entire selection.
18977         (WeekPickerDaysTable.prototype._rangeForNode): Returns Week for node.
18978         (WeekPickerDaysTable.prototype._handleKey):
18979
18980 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
18981
18982         Unreviewed, rolling out r133841.
18983         http://trac.webkit.org/changeset/133841
18984         https://bugs.webkit.org/show_bug.cgi?id=101542
18985
18986         Reverted patches were innocent (Requested by shinyak on
18987         #webkit).
18988
18989         * WebCore.exp.in:
18990         * dom/Element.cpp:
18991         (WebCore::Element::shadowPseudoId):
18992         * dom/Element.h:
18993         (Element):
18994         * dom/ElementRareData.cpp:
18995         (WebCore::ElementRareData::reportMemoryUsage):
18996         * dom/ElementRareData.h:
18997         (ElementRareData):
18998         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
18999         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
19000         * html/ColorInputType.cpp:
19001         (WebCore::ColorInputType::createShadowSubtree):
19002         * html/HTMLTextAreaElement.cpp:
19003         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
19004         * html/RangeInputType.cpp:
19005         (WebCore::RangeInputType::createShadowSubtree):
19006         * html/TextFieldInputType.cpp:
19007         (WebCore::TextFieldInputType::createShadowSubtree):
19008         (WebCore::TextFieldInputType::updatePlaceholderText):
19009         * html/ValidationMessage.cpp:
19010         (WebCore::ValidationMessage::buildBubbleTree):
19011         * html/shadow/DateTimeEditElement.cpp:
19012         (WebCore::DateTimeEditBuilder::visitLiteral):
19013         (WebCore::DateTimeEditElement::DateTimeEditElement):
19014         * html/shadow/DateTimeFieldElement.cpp:
19015         (WebCore::DateTimeFieldElement::initialize):
19016         * html/shadow/DateTimeFieldElement.h:
19017         (DateTimeFieldElement):
19018         * html/shadow/PickerIndicatorElement.cpp:
19019         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
19020         * html/track/TextTrackCue.cpp:
19021         (WebCore::TextTrackCueBox::TextTrackCueBox):
19022         (WebCore::TextTrackCue::updateDisplayTree):
19023         * testing/Internals.cpp:
19024         (WebCore::Internals::setShadowPseudoId):
19025
19026 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
19027
19028         Fix EFL build, which has accelerated compositing disabled, by making
19029         repaintViewRectangle() const.
19030
19031         * rendering/RenderView.cpp:
19032         (WebCore::RenderView::repaintViewRectangle):
19033         * rendering/RenderView.h:
19034         (RenderView):
19035
19036 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
19037
19038         constify ALL the repaint containers
19039         https://bugs.webkit.org/show_bug.cgi?id=101541
19040
19041         Reviewed by Beth Dakin.
19042
19043         Make all the RenderLayerModelObject* repaintContainer arguments const, since
19044         these member functions should have no need to mutate this object.
19045
19046         * WebCore.exp.in:
19047         * rendering/RenderBR.h:
19048         * rendering/RenderBlock.cpp:
19049         (WebCore::RenderBlock::selectionGapRectsForRepaint):
19050         (WebCore::RenderBlock::rectWithOutlineForRepaint):
19051         * rendering/RenderBlock.h:
19052         * rendering/RenderBox.cpp:
19053         (WebCore::RenderBox::outlineBoundsForRepaint):
19054         (WebCore::RenderBox::mapLocalToContainer):
19055         (WebCore::RenderBox::clippedOverflowRectForRepaint):
19056         (WebCore::RenderBox::computeRectForRepaint):
19057         * rendering/RenderBox.h:
19058         * rendering/RenderFlowThread.cpp:
19059         (WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
19060         * rendering/RenderFlowThread.h:
19061         * rendering/RenderInline.cpp:
19062         (WebCore::RenderInline::clippedOverflowRectForRepaint):
19063         (WebCore::RenderInline::rectWithOutlineForRepaint):
19064         (WebCore::RenderInline::computeRectForRepaint):
19065         (WebCore::RenderInline::mapLocalToContainer):
19066         * rendering/RenderInline.h:
19067         * rendering/RenderListMarker.cpp:
19068         (WebCore::RenderListMarker::selectionRectForRepaint):
19069         * rendering/RenderListMarker.h:
19070         * rendering/RenderObject.cpp:
19071         (WebCore::RenderObject::repaintUsingContainer):
19072         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
19073         (WebCore::RenderObject::rectWithOutlineForRepaint):
19074         (WebCore::RenderObject::clippedOverflowRectForRepaint):
19075         (WebCore::RenderObject::computeRectForRepaint):
19076         (WebCore::RenderObject::computeFloatRectForRepaint):
19077         (WebCore::RenderObject::mapLocalToContainer):
19078         (WebCore::RenderObject::localToContainerQuad):
19079         (WebCore::RenderObject::localToContainerPoint):
19080         * rendering/RenderObject.h:
19081         (WebCore::RenderObject::selectionRectForRepaint):
19082         (WebCore::RenderObject::outlineBoundsForRepaint):
19083         * rendering/RenderReplaced.cpp:
19084         (WebCore::RenderReplaced::selectionRectForRepaint):
19085         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
19086         * rendering/RenderReplaced.h:
19087         * rendering/RenderTableCell.cpp:
19088         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
19089         (WebCore::RenderTableCell::computeRectForRepaint):
19090         * rendering/RenderTableCell.h:
19091         * rendering/RenderTableCol.cpp:
19092         (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
19093         * rendering/RenderTableCol.h:
19094         * rendering/RenderTableRow.cpp:
19095         (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
19096         * rendering/RenderTableRow.h:
19097         * rendering/RenderText.cpp:
19098         (WebCore::RenderText::clippedOverflowRectForRepaint):
19099         (WebCore::RenderText::selectionRectForRepaint):
19100         * rendering/RenderText.h:
19101         * rendering/RenderView.cpp:
19102         (WebCore::RenderView::mapLocalToContainer):
19103         (WebCore::RenderView::computeRectForRepaint):
19104         * rendering/RenderView.h:
19105         * rendering/svg/RenderSVGForeignObject.cpp:
19106         (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
19107         (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
19108         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
19109         * rendering/svg/RenderSVGForeignObject.h:
19110         * rendering/svg/RenderSVGGradientStop.h:
19111         * rendering/svg/RenderSVGHiddenContainer.h:
19112         * rendering/svg/RenderSVGInline.cpp:
19113         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
19114         (WebCore::RenderSVGInline::computeFloatRectForRepaint):
19115         (WebCore::RenderSVGInline::mapLocalToContainer):
19116         * rendering/svg/RenderSVGInline.h:
19117         * rendering/svg/RenderSVGModelObject.cpp:
19118         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
19119         (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
19120         (WebCore::RenderSVGModelObject::mapLocalToContainer):
19121         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
19122         * rendering/svg/RenderSVGModelObject.h:
19123         * rendering/svg/RenderSVGRoot.cpp:
19124         (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
19125         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
19126         (WebCore::RenderSVGRoot::mapLocalToContainer):
19127         * rendering/svg/RenderSVGRoot.h:
19128         * rendering/svg/RenderSVGText.cpp:
19129         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
19130         (WebCore::RenderSVGText::computeRectForRepaint):
19131         (WebCore::RenderSVGText::computeFloatRectForRepaint):
19132         (WebCore::RenderSVGText::mapLocalToContainer):
19133         * rendering/svg/RenderSVGText.h:
19134         * rendering/svg/SVGRenderSupport.cpp:
19135         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
19136         (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
19137         (WebCore::SVGRenderSupport::mapLocalToContainer):
19138         * rendering/svg/SVGRenderSupport.h:
19139         (SVGRenderSupport):
19140
19141 2012-11-07  Kent Tamura  <tkent@chromium.org>
19142
19143         [Chromium-win] Refactor date/time format conversion code in LocaleWin
19144         https://bugs.webkit.org/show_bug.cgi?id=101329
19145
19146         Reviewed by Kentaro Hara.
19147
19148         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
19149         similar jobs with different code. We can merge them into one function.
19150
19151         As for the date format conversion, we have tokenized a format string and
19152         stored token objects into a vector. We skip token object generation and
19153         generate a LDML-compliant pattern string during parsing.
19154
19155         No new tests. This should make no behavior changes and
19156         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
19157
19158         * platform/text/win/LocaleWin.cpp:
19159         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
19160         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
19161         convertWindowsTimeFormatToLDML.
19162         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
19163         (WebCore::convertWindowsDateTimeFormat):
19164         Renamed from parseDateFormat, and supports time format symbols.
19165         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
19166         (WebCore::LocaleWin::monthFormat): Ditto.
19167         (WebCore::LocaleWin::timeFormat): Ditto.
19168         (WebCore::LocaleWin::shortTimeFormat): Ditto.
19169         * platform/text/win/LocaleWin.h:
19170         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
19171
19172 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
19173
19174         Unreviewed, rolling out r133428 and r133749
19175         https://bugs.webkit.org/show_bug.cgi?id=101533
19176
19177         These patches might cause memory regression.
19178
19179         * WebCore.exp.in:
19180         * dom/Element.cpp:
19181         (WebCore::Element::shadowPseudoId):
19182         (WebCore):
19183         (WebCore::Element::setShadowPseudoId):
19184         * dom/Element.h:
19185         (Element):
19186         * dom/ElementRareData.cpp:
19187         (WebCore::ElementRareData::reportMemoryUsage):
19188         * dom/ElementRareData.h:
19189         (ElementRareData):
19190         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
19191         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
19192         * html/ColorInputType.cpp:
19193         (WebCore::ColorInputType::createShadowSubtree):
19194         * html/HTMLTextAreaElement.cpp:
19195         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
19196         * html/RangeInputType.cpp:
19197         (WebCore::RangeInputType::createShadowSubtree):
19198         * html/TextFieldInputType.cpp:
19199         (WebCore::TextFieldInputType::createShadowSubtree):
19200         (WebCore::TextFieldInputType::updatePlaceholderText):
19201         * html/ValidationMessage.cpp:
19202         (WebCore::ValidationMessage::buildBubbleTree):
19203         * html/shadow/DateTimeEditElement.cpp:
19204         (WebCore::DateTimeEditBuilder::visitLiteral):
19205         (WebCore::DateTimeEditElement::DateTimeEditElement):
19206         * html/shadow/DateTimeFieldElement.cpp:
19207         (WebCore::DateTimeFieldElement::initialize):
19208         * html/shadow/DateTimeFieldElement.h:
19209         (DateTimeFieldElement):
19210         * html/shadow/PickerIndicatorElement.cpp:
19211         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
19212         * html/track/TextTrackCue.cpp:
19213         (WebCore::TextTrackCueBox::TextTrackCueBox):
19214         (WebCore::TextTrackCue::updateDisplayTree):
19215         * testing/Internals.cpp:
19216         (WebCore::Internals::setShadowPseudoId):
19217
19218 2012-11-07  Ryosuke Niwa  <rniwa@webkit.org>
19219
19220         Crash in WebCore::RenderLayer::normalFlowList
19221         https://bugs.webkit.org/show_bug.cgi?id=101528
19222
19223         Reviewed by Simon Fraser.
19224
19225         Make sure the layout is up to date before re-computing the caret rect.
19226         Avoid doing the layout when the selection is cleared since we can always stop
19227         the blink timer in that case.
19228
19229         Unfortunately, we haven't found any reproduction of this crash yet.
19230
19231         * editing/FrameSelection.cpp:
19232         (WebCore::isNonOrphanedCaret):
19233         (WebCore::FrameSelection::localCaretRect):
19234         (WebCore::FrameSelection::updateAppearance):
19235
19236 2012-11-07  Adam Barth  <abarth@webkit.org>
19237
19238         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19239         https://bugs.webkit.org/show_bug.cgi?id=101110
19240
19241         Reviewed by Kentaro Hara.
19242
19243         Hopefully the memory issues with this patch have been resolved by
19244         fixing bug 101525. This patch re-lands this patch again, hopefully for
19245         the last time.
19246
19247         * bindings/v8/DOMDataStore.cpp:
19248         (WebCore::DOMDataStore::weakCallback):
19249         * bindings/v8/DOMDataStore.h:
19250         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19251         (WebCore::DOMDataStore::getWrapperFromObject):
19252         (WebCore::DOMDataStore::setWrapperInObject):
19253
19254 2012-11-07  KyungTae Kim  <ktf.kim@samsung.com>
19255
19256         Seam occurred between pieces of ShadowBlur on floating point zoom
19257         https://bugs.webkit.org/show_bug.cgi?id=101435
19258
19259         Reviewed by Simon Fraser.
19260
19261         When paint Shadow that doesn't have blurred edge on floating point zoom,
19262         pixel seam (pixel cracks) occurred between pieces of the ShadowBlur because of unaligned clip rect.
19263         So, enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing)
19264         even if the unaligned clip rect occurred.
19265
19266
19267         * platform/graphics/ShadowBlur.cpp:
19268         (WebCore::ShadowBlur::calculateLayerBoundingRect):
19269
19270 2012-11-07  Tim Horton  <timothy_horton@apple.com>
19271
19272         Repaint issues with -webkit-svg-shadow used on a container
19273         https://bugs.webkit.org/show_bug.cgi?id=65643
19274         <rdar://problem/7600532>
19275
19276         Reviewed by Simon Fraser.
19277
19278         SVG renderer repaint rects are currently expanded only by the shadow of
19279         the renderer itself; however, the area they need to repaint can be larger
19280         than that, if their parents also have shadows. We need to take into account
19281         parent's shadows (respecting transforms, as well).
19282
19283         clippedOverflowRectForRepaint already recurses upwards through the render tree,
19284         and ends up with a rect in layout coordinates, so we manually apply the shadow
19285         at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
19286         us to get the raw repaint rect without the shadow baked-in).
19287
19288         repaintRectInLocalCoordinates now includes shadows from all parents.
19289
19290         Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
19291         shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
19292         We can just swap the order of these things to correct this.
19293
19294         Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg
19295
19296         * rendering/RenderObject.cpp:
19297         (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.
19298         (WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
19299         * rendering/svg/RenderSVGImage.cpp:
19300         (WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
19301         * rendering/svg/RenderSVGImage.h:
19302         (WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19303         * rendering/svg/RenderSVGModelObject.cpp:
19304         (WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
19305         * rendering/svg/RenderSVGModelObject.h:
19306         (WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19307         (WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
19308         (WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
19309         * rendering/svg/RenderSVGRoot.cpp:
19310         (WebCore::RenderSVGRoot::RenderSVGRoot):
19311         (WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
19312         (WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
19313         * rendering/svg/RenderSVGRoot.h:
19314         (WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
19315         (WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
19316         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19317         * rendering/svg/RenderSVGShape.cpp:
19318         (WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
19319         * rendering/svg/RenderSVGShape.h:
19320         (WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19321         * rendering/svg/SVGRenderSupport.cpp:
19322         (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19323         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
19324         (WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
19325         (WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
19326         (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
19327         transforming the repaint rect back into local coordinates.
19328         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
19329         * rendering/svg/SVGRenderSupport.h:
19330
19331 2012-11-07  Anders Carlsson  <andersca@apple.com>
19332
19333         Add RemoteGraphicsLayer class
19334         https://bugs.webkit.org/show_bug.cgi?id=101535
19335
19336         Reviewed by Simon Fraser.
19337
19338         * WebCore.exp.in:
19339         Export GraphicsLayer symbols required by WebKit2.
19340
19341         * WebCore.xcodeproj/project.pbxproj:
19342         Make GraphicsLayerFactory.h a private header.
19343
19344 2012-11-07  Adam Barth  <abarth@webkit.org>
19345
19346         [V8] Don't leak <img> elements in content scripts
19347         https://bugs.webkit.org/show_bug.cgi?id=101525
19348
19349         Reviewed by Ojan Vafai.
19350
19351         I found the leak that was causing a problem for bug 101110. We weren't
19352         filling in the derefObjectFunction for HTMLImageElements (and
19353         potentially some other types of elements). That manifests today as a
19354         memory leak in content scripts (which use the derefObjectFunction for
19355         nodes) and caused a memory leak after bug 101110 because we started
19356         using the derefObjectFunction in the main world as well.
19357
19358         This patch adds ASSERTs so that we won't make this mistake in the future.
19359
19360         * bindings/scripts/CodeGeneratorV8.pm:
19361         (GenerateNamedConstructorCallback):
19362         * bindings/v8/DOMDataStore.cpp:
19363         (WebCore::DOMDataStore::weakCallback):
19364         * bindings/v8/DOMWrapperMap.h:
19365         (WebCore::DOMWrapperMap::defaultWeakCallback):
19366         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
19367         (WebCore):
19368
19369 2012-11-07  Alec Flett  <alecflett@chromium.org>
19370
19371         IndexedDB: Prepare for IDBBackingStore merge by renaming IDBLevelDBBackingStore.cpp
19372         https://bugs.webkit.org/show_bug.cgi?id=101486
19373
19374         Reviewed by Ojan Vafai.
19375
19376         Rename IDBLevelDBBackingStore.cpp to IDBBackingStore.cpp in
19377         preparation for merging these classes. This will make the merge
19378         diffs sane. See https://bugs.webkit.org/show_bug.cgi?id=101415
19379         for the final goal.
19380
19381         No new tests, this is is just a rename and minor style fix.
19382
19383         * CMakeLists.txt:
19384         * GNUmakefile.list.am:
19385         * Modules/indexeddb/IDBBackingStore.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp.
19386         * WebCore.gypi:
19387         * WebCore.xcodeproj/project.pbxproj:
19388
19389 2012-11-07  Adam Barth  <abarth@webkit.org>
19390
19391         [V8] Prepare DOMDataStore to be able to store ScriptWrappable wrappers inline
19392         https://bugs.webkit.org/show_bug.cgi?id=101523
19393
19394         Unreviewed. Technically this patch hasn't been reviewed, but it is part
19395         of a patch that was reviewed by Kentaro Hara.
19396
19397         Sadly, my patch for bug 101110 triggered the regression again. This
19398         patch is a smaller incremental step towards the patch in bug 101110. It
19399         doesn't make that much sense on its own, but it will help me isolate
19400         the source of the regression.
19401
19402         * bindings/v8/DOMDataStore.h:
19403         (WebCore::DOMDataStore::get):
19404         (DOMDataStore):
19405         (WebCore::DOMDataStore::set):
19406         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19407         (WebCore::DOMDataStore::getWrapperFromObject):
19408         (WebCore::DOMDataStore::setWrapperInObject):
19409
19410 2012-11-05  Ryosuke Niwa  <rniwa@webkit.org>
19411
19412         SimplifyMarkupCommand takes a disproportionally long time to run when there are many nodes to remove
19413         https://bugs.webkit.org/show_bug.cgi?id=101144
19414
19415         Reviewed by Enrica Casucci.
19416
19417         The bug was caused by attach() happening between each node removal. Since the command was trying
19418         to remove millions of node in some cases, attach()ing render objects for each node being reinserted
19419         imposed a huge runtime cost.
19420
19421         Fixed the bug by using lazy attach when removing nodes and avoiding calls to isContentEditable.
19422         Also remove all ancestors at once when they are direct child/parent of each other so that we don't
19423         remove an ancestor and then insert its child back only to remove it again in the next iteration.
19424
19425         No new tests since it doesn't change the asymptotic performance, and adding a new performance test for
19426         this specific case is not the worth the increase in the bot cycle time. I'll note that the email
19427         attached in the original radar bug (<rdar://problem/12179712>) took 100 seconds to open now only takes
19428         7 seconds to open on my MacPro.
19429
19430         * editing/AppendNodeCommand.cpp:
19431         (WebCore::AppendNodeCommand::doApply): Takes a flag indicating whether we should assume nodes are editable
19432         without calling isContentEditable or not.
19433         * editing/ApplyStyleCommand.cpp:
19434         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Update the style as later code requires render
19435         object.
19436         * editing/CompositeEditCommand.cpp:
19437         (WebCore::CompositeEditCommand::insertNodeBefore): Passes a flag to the command.
19438         (WebCore::CompositeEditCommand::removeNode): Ditto.
19439         (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
19440         * editing/CompositeEditCommand.h:
19441         (CompositeEditCommand):
19442         * editing/DeleteSelectionCommand.cpp:
19443         (WebCore::DeleteSelectionCommand::removeNode): Takes a flag indicating whether we should assume nodes are
19444         editable without calling isContentEditable or not.
19445         * editing/DeleteSelectionCommand.h:
19446         (DeleteSelectionCommand):
19447         * editing/EditCommand.h:
19448         * editing/InsertIntoTextNodeCommand.cpp:
19449         (WebCore::InsertIntoTextNodeCommand::doApply): Update the layout when password echo is enabled since
19450         we need to have render objects for echoing.
19451         * editing/InsertNodeBeforeCommand.cpp:
19452         (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Ditto.
19453         (WebCore::InsertNodeBeforeCommand::doApply): Ditto; also always use lazy attach.
19454         (WebCore::InsertNodeBeforeCommand::doUnapply):
19455         * editing/InsertNodeBeforeCommand.h:
19456         (WebCore::InsertNodeBeforeCommand::create):
19457         (InsertNodeBeforeCommand):
19458         * editing/RemoveNodeCommand.cpp:
19459         (WebCore::RemoveNodeCommand::RemoveNodeCommand): Ditto about the flag.
19460         (WebCore::RemoveNodeCommand::doApply):
19461         * editing/RemoveNodeCommand.h:
19462         (WebCore::RemoveNodeCommand::create):
19463         (RemoveNodeCommand):
19464         * editing/RemoveNodePreservingChildrenCommand.cpp:
19465         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): Ditto.
19466         (WebCore::RemoveNodePreservingChildrenCommand::doApply):
19467         * editing/RemoveNodePreservingChildrenCommand.h:
19468         (WebCore::RemoveNodePreservingChildrenCommand::create):
19469         (RemoveNodePreservingChildrenCommand):
19470         * editing/SimplifyMarkupCommand.cpp:
19471         (WebCore::SimplifyMarkupCommand::doApply):
19472         (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Added to optimize removals of multiple
19473         ancestors.
19474         * editing/SimplifyMarkupCommand.h:
19475         (SimplifyMarkupCommand):
19476
19477 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
19478
19479         Unreviewed, rolling out r133810.
19480         http://trac.webkit.org/changeset/133810
19481         https://bugs.webkit.org/show_bug.cgi?id=101520
19482
19483         This patch made ws_single_peak_r regress by 15% (Requested by
19484         abarth on #webkit).
19485
19486         * bindings/v8/DOMDataStore.cpp:
19487         (WebCore::DOMDataStore::weakCallback):
19488         * bindings/v8/DOMDataStore.h:
19489         (WebCore::DOMDataStore::get):
19490         (WebCore::DOMDataStore::set):
19491         (DOMDataStore):
19492
19493 2012-11-07  Elliott Sprehn  <esprehn@chromium.org>
19494
19495         Clean up confused use of Document::renderer and renderView
19496         https://bugs.webkit.org/show_bug.cgi?id=101484
19497
19498         Reviewed by Ojan Vafai.
19499
19500         Document::renderer and Document::renderView are the same thing, but it seems
19501         people don't always realize it and check if document()->renderer() is a RenderView.
19502
19503         This patch cleans up usage of document()->renderer() and document()->renderView() and
19504         simplifies the code that was written without realizing they were the same thing.
19505
19506         No new tests, this is just a refactor.
19507
19508         * accessibility/AccessibilityRenderObject.cpp:
19509         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): Lots of simplification.
19510         * dom/Element.cpp:
19511         (WebCore::Element::screenRect):
19512         (WebCore::Element::unregisterNamedFlowContentNode): Remove unneeded conditional.
19513         * editing/FrameSelection.cpp: Remove verbose casts.
19514         (WebCore::clearRenderViewSelection):
19515         (WebCore::FrameSelection::recomputeCaretRect):
19516         (WebCore::CaretBase::invalidateCaretRect):
19517         (WebCore::FrameSelection::focusedOrActiveStateChanged):
19518         * page/Frame.cpp:
19519         (WebCore::Frame::contentRenderer): Vastly simplified.
19520         * page/PrintContext.cpp: Remove verbose casts.
19521         (WebCore::PrintContext::computePageRects):
19522         (WebCore::PrintContext::computePageRectsWithPageSizeInternal):
19523         * page/wince/FrameWinCE.cpp:
19524         (WebCore::computePageRectsForFrame): Remove unreachable code.
19525         * rendering/RenderObject.cpp:
19526         (WebCore::RenderObject::maximalOutlineSize): Remove verbose cast.
19527
19528 2012-11-07  Adam Barth  <abarth@webkit.org>
19529
19530         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19531         https://bugs.webkit.org/show_bug.cgi?id=101110
19532
19533         Reviewed by Kentaro Hara.
19534
19535         This patch generalizes our support for storing wrappers in DOM objects
19536         to be usable for more than just nodes. After this patch, any object
19537         with a ScriptWrappable base class will have its wrapper stored inline
19538         in the object in the main world.
19539
19540         * bindings/v8/DOMDataStore.cpp:
19541         (WebCore::DOMDataStore::weakCallback):
19542         * bindings/v8/DOMDataStore.h:
19543         (WebCore::DOMDataStore::get):
19544         (WebCore::DOMDataStore::set):
19545
19546 2012-11-07  Tiancheng Jiang  <tijiang@rim.com>
19547
19548         [BlackBerry] Update BB10 form theme.
19549         https://bugs.webkit.org/show_bug.cgi?id=100760
19550
19551         Reviewed by Rob Buis.
19552
19553         RIM PR 236997
19554         Internally Reviewed by Jakob Petsovits.
19555
19556         Set font family to fix DRT test fast/forms/input-type-text-min-width.html
19557
19558         * platform/blackberry/RenderThemeBlackBerry.cpp:
19559         (WebCore::RenderThemeBlackBerry::defaultGUIFont):
19560         (WebCore):
19561         (WebCore::RenderThemeBlackBerry::systemFont):
19562
19563 2012-11-07  Beth Dakin  <bdakin@apple.com>
19564
19565         https://bugs.webkit.org/show_bug.cgi?id=101303
19566         Fixed position elements that are out of view still end up forcing 
19567         non-threaded scrolling
19568         -and corresponding-
19569         <rdar://problem/12642222>
19570
19571         Reviewed by Simon Fraser.
19572
19573         Re-name hasNonLayerFixedObjects() to 
19574         hasVisibleSlowRepaintFixedObjects() and make it virtual. 
19575         * page/scrolling/ScrollingCoordinator.cpp:
19576         (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects):
19577         (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
19578         * page/scrolling/ScrollingCoordinator.h:
19579         (ScrollingCoordinator):
19580
19581         Override hasVisibleSlowRepaintFixedObjects() to always return false. 
19582         We don't want to bother with the extra computation in the 
19583         ScrollingCoordinator implementation, though other ports might still 
19584         want it.
19585         * page/scrolling/mac/ScrollingCoordinatorMac.h:
19586         (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintFixedObjects):
19587         (ScrollingCoordinatorMac):
19588
19589         Make this function const so that we can call it from 
19590         requiresCompositingForPosition().
19591         * rendering/RenderLayerCompositor.cpp:
19592         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
19593
19594         Actually be thorough here and check if the fixed object has any 
19595         descendants that are visible in the view. If it does, then we do 
19596         want to composite the fixed object.
19597         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
19598         * rendering/RenderLayerCompositor.h:
19599
19600 2012-11-07  Roger Fong  <roger_fong@apple.com>
19601
19602         Unreviewed. Style fix following r133262.
19603
19604         * html/HTMLMediaElement.cpp:
19605         (WebCore::HTMLMediaElement::clearMediaPlayer):
19606         * html/HTMLMediaElement.h:
19607         (HTMLMediaElement):
19608
19609 2012-11-07  Adam Barth  <abarth@webkit.org>
19610
19611         [V8] DOMWrapperMap doesn't need to use virtual functions
19612         https://bugs.webkit.org/show_bug.cgi?id=101494
19613
19614         Reviewed by Kentaro Hara.
19615
19616         DOMWrapperMap has only one subclass. There's no reason to use virtual functions.
19617
19618         * bindings/v8/DOMDataStore.cpp:
19619         (WebCore::DOMDataStore::DOMDataStore):
19620         * bindings/v8/DOMWrapperMap.h:
19621         (WebCore::DOMWrapperMap::DOMWrapperMap):
19622         (WebCore::DOMWrapperMap::get):
19623         (WebCore::DOMWrapperMap::set):
19624         (WebCore::DOMWrapperMap::clear):
19625         (WebCore::DOMWrapperMap::reportMemoryUsage):
19626         (WebCore::DOMWrapperMap::remove):
19627         (WebCore::DOMWrapperMap::defaultWeakCallback):
19628         * bindings/v8/V8NPObject.cpp:
19629         (WebCore::staticNPObjectMap):
19630
19631 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19632
19633         [CSS Shaders] Remove the dependency on CustomFilterValidatedProgram from CustomFilterRenderer
19634         https://bugs.webkit.org/show_bug.cgi?id=101071
19635
19636         Reviewed by Dean Jackson.
19637
19638         I've removed the need to get a CustomFilterValidatedProgram from FilterEffectRenderer. It was only
19639         used to delay the compilation of the shader until it was really needed. Instead, the FilterEffectRenderer
19640         will directly get the compiled shader in the constructor. The callers that still want to avoid 
19641         compiling the shader until it is really needed can use the setCompiledProgram to inject the shader
19642         at a later time, before painting.
19643
19644         No new tests, the change is covered by the css3/filters/custom/ tests.
19645
19646         * platform/graphics/filters/CustomFilterConstants.h:
19647         * platform/graphics/filters/CustomFilterProgramInfo.h:
19648         * platform/graphics/filters/CustomFilterRenderer.cpp:
19649         (WebCore::CustomFilterRenderer::create):
19650         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
19651         (WebCore::CustomFilterRenderer::premultipliedAlpha):
19652         (WebCore::CustomFilterRenderer::setCompiledProgram):
19653         (WebCore):
19654         (WebCore::CustomFilterRenderer::prepareForDrawing):
19655         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
19656         * platform/graphics/filters/CustomFilterRenderer.h:
19657         (WebCore):
19658         (CustomFilterRenderer):
19659         (WebCore::CustomFilterRenderer::compiledProgram):
19660         * platform/graphics/filters/FECustomFilter.cpp:
19661         (WebCore::FECustomFilter::FECustomFilter):
19662         (WebCore::FECustomFilter::prepareForDrawing):
19663         * platform/graphics/filters/FECustomFilter.h:
19664         (FECustomFilter):
19665
19666 2012-11-07  Adam Barth  <abarth@webkit.org>
19667
19668         [V8] IntrusiveDOMWrapperMap is no longer needed and can be deleted
19669         https://bugs.webkit.org/show_bug.cgi?id=101493
19670
19671         Reviewed by Kentaro Hara.
19672
19673         This patch is another incremental step towards landing the patch in bug
19674         101110. In this patch, we delete IntrusiveDOMWrapperMap, which is no
19675         longer needed.
19676
19677         * WebCore.gypi:
19678         * bindings/v8/DOMDataStore.cpp:
19679         (WebCore::DOMDataStore::DOMDataStore):
19680         (WebCore::DOMDataStore::~DOMDataStore):
19681         (WebCore::DOMDataStore::reportMemoryUsage):
19682         (WebCore::DOMDataStore::weakCallback):
19683         (WebCore):
19684         * bindings/v8/DOMDataStore.h:
19685         (WebCore::DOMDataStore::get):
19686         (WebCore::DOMDataStore::set):
19687         (DOMDataStore):
19688         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
19689         * bindings/v8/V8GCController.cpp:
19690
19691 2012-11-07  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
19692
19693         [AC] glXChooseFBConfig() and glXGetVisualFromFBConfig() return values are leaking in GraphicsSurface
19694         https://bugs.webkit.org/show_bug.cgi?id=101475
19695
19696         Reviewed by Kenneth Rohde Christiansen.
19697
19698         Free the memory returned by glXChooseFBConfig and glXGetVisualFromFBConfig
19699         using XFree to avoid memory leaks.
19700
19701         No tests. No change in behavior.
19702
19703         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
19704         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
19705         (WebCore::GraphicsSurfacePrivate::createSurface):
19706
19707 2012-11-07  Fady Samuel  <fsamuel@chromium.org>
19708
19709         Autoresize should work even if turned on while the page is loading.
19710         https://bugs.webkit.org/show_bug.cgi?id=101380
19711
19712         Reviewed by David Levin.
19713
19714         Autoresize does not work in cases where it is turned on while loading.
19715         This patch addresses this by allowing autoSize to complete if it's turned on
19716         while loading and doing a final pass after loading.
19717
19718         * loader/FrameLoader.cpp:
19719         (WebCore::FrameLoader::checkCompleted):
19720         Adjust to call renamed function.
19721         * page/FrameView.cpp:
19722         (WebCore::FrameView::handleLoadCompleted):
19723         Rename function to encompass its expanded responsibilities (which include doing the final auto size after the load is completed).
19724         (WebCore::FrameView::autoSizeIfEnabled):
19725         Allow the size to shrink if autosize is adjusted while the page is loading.
19726         * page/FrameView.h:
19727         (FrameView):
19728         Renamed 'checkFlushDeferredRepaintsAfterLoadComplete' to 'handleLoadComplete'
19729
19730 2012-11-07  Philip Rogers  <pdr@google.com>
19731
19732         Skip SVG repaint tracking when parent container transforms
19733         https://bugs.webkit.org/show_bug.cgi?id=101177
19734
19735         Reviewed by Eric Seidel.
19736
19737         This patch skips child repaint rect checks when a parent container is transformed, leading
19738         to a 75% increase on the RoboHornet SVG benchmark:
19739             http://www.robohornet.org/#et=svg  (average of 2 runs)
19740             Before patch: 161.6ms
19741             After patch: 38.5ms
19742
19743         SVG transforms are relative to the local container which makes calculating an absolute
19744         repaint rect expensive because it requires multiplying the local repaint rect by each
19745         parent container's local transform. See SVGRenderSupport::computeFloatRectForRepaint
19746         as an example of this calculation.
19747
19748         This patch takes advantage of SVG's container rules: when a parent container's transform
19749         changes, all children must be repainted (there is no absolute positioning in SVG).
19750         SVGRenderSupport::checkForSVGRepaintDuringLayout has been added which checks for whether
19751         the parent transform changed before doing child repaint checks. A similar optimization is
19752         used in HTML (see RenderObject::checkForRepaintDuringLayout) where no repaint checking
19753         is done when the view is fully repainted.
19754
19755         This code is tested in existing tests.
19756
19757         * rendering/svg/RenderSVGContainer.cpp:
19758         (WebCore::RenderSVGContainer::layout):
19759         * rendering/svg/RenderSVGForeignObject.cpp:
19760         (WebCore::RenderSVGForeignObject::layout):
19761         * rendering/svg/RenderSVGImage.cpp:
19762         (WebCore::RenderSVGImage::layout):
19763         * rendering/svg/RenderSVGShape.cpp:
19764         (WebCore::RenderSVGShape::layout):
19765         * rendering/svg/RenderSVGText.cpp:
19766         (WebCore::RenderSVGText::layout):
19767         * rendering/svg/SVGRenderSupport.cpp:
19768         (WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
19769         (WebCore):
19770         * rendering/svg/SVGRenderSupport.h:
19771         (SVGRenderSupport):
19772
19773 2012-11-07  Chris Fleizach  <cfleizach@apple.com>
19774
19775         AX: Textfields don't get focus when navigated to from 'show all tabs' button
19776         https://bugs.webkit.org/show_bug.cgi?id=101369
19777
19778         Reviewed by Darin Adler.
19779
19780         When focus leaves a webpage, the webpage does not normally clear its focused node. When focus
19781         returns (through tab, or mouse click), then focus will be cleared and restored.
19782
19783         However, when focus is returned through accessibility means, focus is not cleared first, which
19784         means subsequent focus actions do nothing.
19785
19786         This fix will check if the focused node is the same as the node being focused, and if so, clear the focus first.
19787
19788         Making a layout test for this is not possible because it requires setting focus to something in the chrome, and then
19789         moving focus back to the webpage.
19790       
19791         * accessibility/AccessibilityRenderObject.cpp:
19792         (WebCore::AccessibilityRenderObject::setFocused):
19793
19794 2012-11-07  Adam Barth  <abarth@webkit.org>
19795
19796         [V8] We should hide the DOMWrapperMaps inside DOMDataStore
19797         https://bugs.webkit.org/show_bug.cgi?id=101430
19798
19799         Reviewed by Kentaro Hara.
19800
19801         This is yet another incremental step towards landing the patch in bug
19802         101110. In this patch, we hide the existence of DOMWrapperMaps inside
19803         DOMDataStore. In the process, we can remove V8DOMMap.cpp.
19804
19805         * UseV8.cmake:
19806         * WebCore.gypi:
19807         * bindings/v8/DOMDataStore.h:
19808         (WebCore::DOMDataStore::set):
19809         * bindings/v8/DOMWrapperWorld.h:
19810         * bindings/v8/ScriptProfiler.cpp:
19811         * bindings/v8/SerializedScriptValue.cpp:
19812         (WebCore::neuterBinding):
19813         * bindings/v8/V8DOMMap.cpp: Removed.
19814         * bindings/v8/V8DOMMap.h: Removed.
19815         * bindings/v8/V8DOMWindowShell.cpp:
19816         * bindings/v8/V8DOMWrapper.h:
19817         (WebCore::V8DOMWrapper::getCachedWrapper):
19818         (WebCore::V8DOMWrapper::setWrapperClass):
19819         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
19820         * bindings/v8/V8NPObject.cpp:
19821         * bindings/v8/WorkerContextExecutionProxy.cpp:
19822         * bindings/v8/WorkerScriptController.cpp:
19823
19824 2012-11-07  Varun Jain  <varunjain@chromium.org>
19825
19826         Add new gesture type, LongTap, which is basically the completion of a GestureLongPress
19827         https://bugs.webkit.org/show_bug.cgi?id=101385
19828
19829         Reviewed by Adam Barth.
19830
19831         Test: Only creating the new enum. No functionality change, hence no tests required.
19832
19833         * platform/PlatformEvent.h:
19834
19835 2012-11-05  Emil A Eklund  <eae@chromium.org>
19836
19837         Remove LayoutTypes abstraction
19838         https://bugs.webkit.org/show_bug.cgi?id=93050
19839
19840         Reviewed by Levi Weintraub.
19841
19842         Remove LayoutTypes abstraction and rename FractionalLayout* to
19843         Layout* now that all platforms use the FractionalLayout version
19844         (albeit with different fractions).
19845
19846         No new tests, no change in functionality.
19847
19848         * CMakeLists.txt:
19849         * GNUmakefile.list.am:
19850         * Target.pri:
19851         * WebCore.exp.in:
19852         * WebCore.gypi:
19853         * WebCore.vcproj/WebCore.vcproj:
19854         * WebCore.xcodeproj/project.pbxproj:
19855         * accessibility/AccessibilityNodeObject.cpp:
19856         * accessibility/AccessibilityNodeObject.h:
19857         * accessibility/AccessibilityObject.h:
19858         * accessibility/AccessibilityRenderObject.h:
19859         * css/LengthFunctions.cpp:
19860         * css/LengthFunctions.h:
19861         * dom/Document.h:
19862         * dom/DocumentMarkerController.h:
19863         * dom/ElementRareData.h:
19864         * dom/MouseRelatedEvent.h:
19865         * dom/Node.h:
19866         * dom/Touch.h:
19867         * editing/FrameSelection.cpp:
19868         * editing/FrameSelection.h:
19869         * editing/RenderedPosition.h:
19870         * html/HTMLAreaElement.h:
19871         * inspector/InspectorOverlay.h:
19872         * inspector/InspectorTimelineAgent.h:
19873         * inspector/TimelineRecordFactory.cpp:
19874         * inspector/TimelineRecordFactory.h:
19875         * loader/cache/CachedImage.h:
19876         * page/FocusController.h:
19877         * page/FrameView.h:
19878         * page/Page.h:
19879         * page/SpatialNavigation.cpp:
19880         * page/SpatialNavigation.h:
19881         * platform/FractionalLayoutUnit.h: Removed.
19882         * platform/LayoutUnit.h: Copied from Source/WebCore/platform/FractionalLayoutUnit.h.
19883         * platform/Length.h:
19884         * platform/PopupMenuClient.h:
19885         * platform/animation/AnimationUtilities.h:
19886         * platform/graphics/FloatPoint.cpp:
19887         * platform/graphics/FloatPoint.h:
19888         * platform/graphics/FloatRect.cpp:
19889         * platform/graphics/FloatRect.h:
19890         * platform/graphics/FloatSize.cpp:
19891         * platform/graphics/FloatSize.h:
19892         * platform/graphics/FractionalLayoutBoxExtent.cpp: Removed.
19893         * platform/graphics/FractionalLayoutBoxExtent.h: Removed.
19894         * platform/graphics/FractionalLayoutPoint.h: Removed.
19895         * platform/graphics/FractionalLayoutRect.cpp: Removed.
19896         * platform/graphics/FractionalLayoutRect.h: Removed.
19897         * platform/graphics/FractionalLayoutSize.h: Removed.
19898         * platform/graphics/GraphicsLayer.cpp:
19899         * platform/graphics/GraphicsLayerAnimation.cpp:
19900         * platform/graphics/IntRect.cpp:
19901         * platform/graphics/IntRect.h:
19902         * platform/graphics/LayoutBoxExtent.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp.
19903         * platform/graphics/LayoutBoxExtent.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h.
19904         * platform/graphics/LayoutPoint.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutPoint.h.
19905         * platform/graphics/LayoutRect.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.cpp.
19906         * platform/graphics/LayoutRect.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.h.
19907         * platform/graphics/LayoutSize.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutSize.h.
19908         * platform/graphics/MediaPlayer.h:
19909         * platform/graphics/filters/CustomFilterOperation.h:
19910         * platform/graphics/filters/CustomFilterParameterList.h:
19911         * platform/graphics/filters/FilterOperation.h:
19912         * platform/graphics/filters/FilterOperations.h:
19913         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
19914         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
19915         * platform/graphics/qt/FractionalLayoutPointQt.cpp: Removed.
19916         * platform/graphics/qt/FractionalLayoutRectQt.cpp: Removed.
19917         * platform/graphics/qt/FractionalLayoutSizeQt.cpp: Removed.
19918         * platform/graphics/qt/LayoutPointQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutPointQt.cpp.
19919         * platform/graphics/qt/LayoutRectQt.cpp: Added.
19920         * platform/graphics/qt/LayoutSizeQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutSizeQt.cpp.
19921         * platform/graphics/transforms/TransformOperations.h:
19922         * platform/graphics/transforms/TransformState.h:
19923         * platform/graphics/transforms/TransformationMatrix.cpp:
19924         * platform/graphics/transforms/TransformationMatrix.h:
19925         * rendering/AutoTableLayout.h:
19926         * rendering/ColumnInfo.h:
19927         * rendering/ExclusionShapeInsideInfo.h:
19928         * rendering/FilterEffectRenderer.h:
19929         * rendering/FixedTableLayout.h:
19930         * rendering/GapRects.h:
19931         * rendering/HitTestResult.h:
19932         * rendering/HitTestingTransformState.cpp:
19933         * rendering/HitTestingTransformState.h:
19934         * rendering/InlineFlowBox.cpp:
19935         * rendering/LayoutRepainter.cpp:
19936         * rendering/LayoutRepainter.h:
19937         * rendering/LayoutState.h:
19938         * rendering/LayoutTypes.h:
19939         * rendering/LayoutTypesInlineMethods.h:
19940         * rendering/PaintInfo.h:
19941         * rendering/RenderBlock.cpp:
19942         * rendering/RenderBlock.h:
19943         * rendering/RenderBlockLineLayout.cpp:
19944         * rendering/RenderBox.cpp:
19945         * rendering/RenderBox.h:
19946         * rendering/RenderBoxModelObject.cpp:
19947         * rendering/RenderBoxModelObject.h:
19948         * rendering/RenderDeprecatedFlexibleBox.cpp:
19949         * rendering/RenderFieldset.cpp:
19950         * rendering/RenderFlexibleBox.cpp:
19951         * rendering/RenderFlowThread.cpp:
19952         * rendering/RenderGeometryMap.h:
19953         * rendering/RenderImageResource.h:
19954         * rendering/RenderInline.cpp:
19955         * rendering/RenderLayer.cpp:
19956         * rendering/RenderLayerFilterInfo.h:
19957         * rendering/RenderLineBoxList.cpp:
19958         * rendering/RenderListMarker.cpp:
19959         * rendering/RenderMarquee.cpp:
19960         * rendering/RenderMenuList.h:
19961         * rendering/RenderMultiColumnBlock.cpp:
19962         * rendering/RenderMultiColumnSet.cpp:
19963         * rendering/RenderNamedFlowThread.cpp:
19964         * rendering/RenderObject.cpp:
19965         * rendering/RenderObject.h:
19966         * rendering/RenderOverflow.h:
19967         * rendering/RenderRegion.cpp:
19968         * rendering/RenderReplaced.cpp:
19969         * rendering/RenderTable.cpp:
19970         * rendering/RenderTable.h:
19971         * rendering/RenderText.cpp:
19972         * rendering/RenderThemeChromiumCommon.cpp:
19973         * rendering/RenderThemeChromiumCommon.h:
19974         * rendering/RenderTreeAsText.cpp:
19975         * rendering/RenderTreeAsText.h:
19976         * rendering/RenderView.h:
19977         * rendering/style/NinePieceImage.h:
19978         * rendering/style/RenderStyle.h:
19979         * rendering/style/ShadowData.cpp:
19980         * rendering/style/ShadowData.h:
19981         * rendering/style/StyleCachedImageSet.h:
19982         * rendering/style/StyleImage.h:
19983         * rendering/svg/SVGRenderSupport.h:
19984
19985 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19986
19987         CoordinatedGraphicsArgumentCoders should use ValidatedCustomFitlerOperation instead
19988         https://bugs.webkit.org/show_bug.cgi?id=100905
19989
19990         Reviewed by Noam Rosenthal.
19991
19992         Added getters for the validated shaders, so that platform code could extract them.
19993
19994         No new tests, just added two getters.
19995
19996         * platform/graphics/filters/CustomFilterValidatedProgram.h:
19997         (WebCore::CustomFilterValidatedProgram::validatedVertexShader):
19998         (WebCore::CustomFilterValidatedProgram::validatedFragmentShader):
19999         (CustomFilterValidatedProgram):
20000
20001 2012-11-07  Joshua Bell  <jsbell@chromium.org>
20002
20003         IndexedDB: Assertion failure with open() within upgradeneeded
20004         https://bugs.webkit.org/show_bug.cgi?id=96947
20005
20006         Reviewed by Dimitri Glazkov.
20007
20008         Postpone creation of the "pending second half open" until the version change
20009         transaction has started.
20010
20011         Test: storage/indexeddb/unblocked-version-changes.html
20012
20013         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
20014         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
20015         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
20016         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
20017         (IDBDatabaseBackendImpl):
20018         * Modules/indexeddb/IDBDatabaseCallbacks.h:
20019
20020 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
20021
20022         [CSS Shaders] Add CustomFilterMeshBoxType to ValidatedCustomFilterOperation
20023         https://bugs.webkit.org/show_bug.cgi?id=100890
20024
20025         Reviewed by Dean Jackson.
20026
20027         Added the CustomFilterMeshBoxType parameter to the ValidatedCustomFilterOperation.
20028
20029         No new tests, this parameter is not used in the implementation yet.
20030
20031         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
20032         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
20033         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
20034         (WebCore::ValidatedCustomFilterOperation::create):
20035         (WebCore::ValidatedCustomFilterOperation::meshBoxType):
20036         (WebCore::ValidatedCustomFilterOperation::operator==):
20037         (ValidatedCustomFilterOperation):
20038         * rendering/FilterEffectRenderer.cpp:
20039         (WebCore::createCustomFilterEffect):
20040         * rendering/RenderLayer.cpp:
20041         (WebCore::RenderLayer::computeFilterOperations):
20042
20043 2012-11-07  Sergio Villar Senin  <svillar@igalia.com>
20044
20045         [Qt] Implement deleteCookie() for persistent storage
20046         https://bugs.webkit.org/show_bug.cgi?id=101272
20047
20048         Reviewed by Jocelyn Turcotte.
20049
20050         Individual cookies were never persistently cleared as the
20051         deleteCookie() virtual method was not implemented for persistent
20052         storage. That's why cookies were only deleted for the current
20053         session.
20054
20055         * platform/qt/CookieJarQt.cpp:
20056         (WebCore::SharedCookieJarQt::deleteCookie):
20057         (WebCore): added deleteCookie() implementation for persistent
20058         storage.
20059         * platform/qt/CookieJarQt.h:
20060         (SharedCookieJarQt):
20061
20062 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20063
20064         [Shadow] Style should update when 'pseudo' attribute is dynamically updated
20065         https://bugs.webkit.org/show_bug.cgi?id=100918
20066
20067         Reviewed by Dimitri Glazkov.
20068
20069         When 'pseudo' attribute is changed and its element is in ShadowTree, we enable the styleShouldRecalc flag.
20070
20071         It would be fast if we have a set of pseudo attribute style value in RuleFeatureSet,
20072         but it might consume a lot of memory.
20073
20074         Test: fast/dom/shadow/pseudo-attribute-dynamic.html
20075
20076         * dom/Element.cpp:
20077         (WebCore::Element::attributeChanged):
20078
20079 2012-11-07  Ulan Degenbaev  <ulan@chromium.org>
20080
20081         [V8] WebKit sends unnecessary low memory notification when running memory benchmarks
20082         https://bugs.webkit.org/show_bug.cgi?id=101474
20083
20084         Reviewed by Kentaro Hara.
20085
20086         Do not send low memory notification to V8 when most of memory usage
20087         comes from V8 heap and not DOM objects. In this case V8 can schedule GC
20088         itself more optimally.
20089
20090         * bindings/v8/V8GCController.cpp:
20091         (WebCore::V8GCController::checkMemoryUsage):
20092
20093 2012-11-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
20094
20095         [Qt] Open link in this window action
20096         https://bugs.webkit.org/show_bug.cgi?id=101226
20097
20098         Reviewed by Simon Hausmann.
20099
20100         Adds the action to the WebCore context-menu controller.
20101
20102         * page/ContextMenuController.cpp:
20103         (WebCore::ContextMenuController::contextMenuItemSelected):
20104         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
20105         * platform/ContextMenuItem.h:
20106         * platform/LocalizedStrings.h:
20107         * platform/qt/LocalizedStringsQt.cpp:
20108         (WebCore::contextMenuItemTagOpenLinkInThisWindow):
20109
20110 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20111
20112         Web Inspector: [Canvas] closure compiler fixes
20113         https://bugs.webkit.org/show_bug.cgi?id=101459
20114
20115         Reviewed by Pavel Feldman.
20116
20117         * inspector/InjectedScriptCanvasModuleSource.js:
20118         (.):
20119
20120 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
20121
20122         Unreviewed, rolling out r133712.
20123         http://trac.webkit.org/changeset/133712
20124         https://bugs.webkit.org/show_bug.cgi?id=101461
20125
20126         Broke fast/forms/time* tests on chromium-win. (Requested by
20127         mkwst on #webkit).
20128
20129         * platform/text/win/LocaleWin.cpp:
20130         (WebCore::DateFormatToken::DateFormatToken):
20131         (DateFormatToken):
20132         (WebCore):
20133         (WebCore::isEraSymbol):
20134         (WebCore::isYearSymbol):
20135         (WebCore::isMonthSymbol):
20136         (WebCore::isDaySymbol):
20137         (WebCore::commitLiteralToken):
20138         (WebCore::parseDateFormat):
20139         (WebCore::LocaleWin::ensureShortDateTokens):
20140         (WebCore::convertWindowsDateFormatToLDML):
20141         (WebCore::mapCharacterToDateTimeFieldType):
20142         (WebCore::convertWindowsTimeFormatToLDML):
20143         (WebCore::LocaleWin::dateFormat):
20144         (WebCore::LocaleWin::monthFormat):
20145         (WebCore::LocaleWin::timeFormat):
20146         (WebCore::LocaleWin::shortTimeFormat):
20147         * platform/text/win/LocaleWin.h:
20148         (LocaleWin):
20149
20150 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20151
20152         Web Inspector: [Regression] Editing formatted source should not be allowed.
20153         https://bugs.webkit.org/show_bug.cgi?id=101355
20154
20155         Reviewed by Pavel Feldman.
20156
20157         * inspector/front-end/JavaScriptSourceFrame.js:
20158         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
20159         * inspector/front-end/UISourceCodeFrame.js:
20160         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
20161
20162 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20163
20164         [Shadow] Use setPseudo() instead of setShadowPseudoId().
20165         https://bugs.webkit.org/show_bug.cgi?id=101306
20166
20167         Reviewed by Kent Tamura.
20168
20169         We would like to remove setShadowPseudoId() and use setPseudo() instead, since ShadowDOM spec now has
20170         'pseudo' attribute.
20171
20172         We change all setShadowPseudoId() invocation to setPseudo() invocation. Also, when AtomicString is not
20173         constructed with AtomicStringFromLiteral, we use it.
20174
20175         No new tests, refactoring.
20176
20177         * WebCore.exp.in:
20178         * dom/Element.cpp:
20179         * dom/Element.h:
20180         (Element):
20181         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
20182         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
20183         * html/ColorInputType.cpp:
20184         (WebCore::ColorInputType::createShadowSubtree):
20185         * html/HTMLTextAreaElement.cpp:
20186         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
20187         * html/RangeInputType.cpp:
20188         (WebCore::RangeInputType::createShadowSubtree):
20189         * html/TextFieldInputType.cpp:
20190         (WebCore::TextFieldInputType::createShadowSubtree):
20191         (WebCore::TextFieldInputType::updatePlaceholderText):
20192         * html/ValidationMessage.cpp:
20193         (WebCore::ValidationMessage::buildBubbleTree):
20194         * html/shadow/DateTimeEditElement.cpp:
20195         (WebCore::DateTimeEditBuilder::visitLiteral):
20196         (WebCore::DateTimeEditElement::DateTimeEditElement):
20197         * html/shadow/DateTimeFieldElement.cpp:
20198         (WebCore::DateTimeFieldElement::initialize):
20199         * html/shadow/DateTimeFieldElement.h:
20200         (DateTimeFieldElement):
20201         * html/shadow/PickerIndicatorElement.cpp:
20202         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
20203         * html/track/TextTrackCue.cpp:
20204         (WebCore::TextTrackCueBox::TextTrackCueBox):
20205         (WebCore::TextTrackCue::updateDisplayTree):
20206         * testing/Internals.cpp:
20207         (WebCore::Internals::setShadowPseudoId):
20208
20209 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20210
20211         Web Inspector: [Canvas] Save CanvasGradient objects state for a replay
20212         https://bugs.webkit.org/show_bug.cgi?id=101432
20213
20214         Reviewed by Pavel Feldman.
20215
20216         Save CanvasGradient resource state for a subsequent replay. The gradient's state is modified by the gradient.addColorStop() call.
20217
20218         Test: inspector/profiler/canvas2d/canvas2d-gradient-capturing.html
20219
20220         * inspector/InjectedScriptCanvasModuleSource.js:
20221         (.):
20222
20223 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20224
20225         Web Inspector: [Regression] Snippets evaluations should not appear in Sources tab of navigator.
20226         https://bugs.webkit.org/show_bug.cgi?id=101354
20227
20228         Reviewed by Pavel Feldman.
20229
20230         * inspector/front-end/DebuggerScriptMapping.js:
20231         * inspector/front-end/NetworkUISourceCodeProvider.js:
20232         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
20233         * inspector/front-end/Script.js:
20234         (WebInspector.Script.prototype.isSnippet):
20235         * inspector/front-end/ScriptSnippetModel.js:
20236         (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
20237
20238 2012-11-07  Dan Carney  <dcarney@google.com>
20239
20240         [V8] Cleanup V8DOMWrapper::getCachedWrapper
20241         https://bugs.webkit.org/show_bug.cgi?id=100853
20242
20243         Reviewed by Adam Barth.
20244
20245         Slight cleanup. Removed redundant branch.
20246
20247         No new tests. No change in functionality.
20248
20249         * bindings/v8/V8DOMWrapper.h:
20250         (WebCore::V8DOMWrapper::getCachedWrapper):
20251
20252 2012-11-07  Simon Hausmann  <simon.hausmann@digia.com>
20253
20254         [Qt] Unreviewed trivial build fix adapting to QtMultimedia API changes
20255
20256         The QtMultimedia namespace is now called QMultimedia and
20257         QtMultimedia::MetaData is now QMediaMetaData.
20258
20259         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
20260         (WebCore::MediaPlayerPrivateQt::supportsType):
20261         (WebCore::MediaPlayerPrivateQt::totalBytes):
20262
20263 2012-11-07  Christophe Dumez  <christophe.dumez@intel.com>
20264
20265         Add replaceWithLiteral() method to WTF::String
20266         https://bugs.webkit.org/show_bug.cgi?id=101257
20267
20268         Reviewed by Benjamin Poulain.
20269
20270         Substitute String::replace() calls by String::replaceWithLiteral() where
20271         adequate, for efficiency.
20272
20273         No new tests, no behavior change.
20274
20275         * dom/Node.cpp:
20276         (WebCore::Node::showNode):
20277         * editing/EditingStyle.cpp:
20278         (WebCore::StyleChange::extractTextStyles):
20279         * editing/MarkupAccumulator.cpp:
20280         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
20281         * html/HTMLAnchorElement.cpp:
20282         (WebCore::HTMLAnchorElement::setSearch):
20283         * loader/FormSubmission.cpp:
20284         (WebCore::appendMailtoPostFormDataToURL):
20285         * platform/network/soup/ProxyResolverSoup.cpp:
20286         (soupProxyResolverWkSetProperty):
20287         * plugins/PluginView.cpp:
20288         (WebCore::makeURL):
20289         * rendering/InlineTextBox.cpp:
20290         (WebCore::InlineTextBox::showBox):
20291         * xml/XSLTProcessor.cpp:
20292         (WebCore::transformTextStringToXHTMLDocumentString):
20293
20294 2012-11-07  Kenneth Rohde Christiansen  <kenneth@webkit.org>
20295
20296         Remove support for "desktop-width" in the viewport meta tag
20297         https://bugs.webkit.org/show_bug.cgi?id=101217
20298
20299         Reviewed by Gyuyoung Kim.
20300
20301         This has been removed from the CSS Device Adaptation spec, and
20302         should be safe to remove as it is not documented anywhere (neither
20303         in blog posts).
20304
20305         The viewport meta should only support the legacy features.
20306
20307         * dom/ViewportArguments.cpp:
20308         (WebCore::computeViewportAttributes):
20309         (WebCore::findSizeValue):
20310         (WebCore::findScaleValue):
20311         (WebCore::findUserScalableValue):
20312         * dom/ViewportArguments.h:
20313
20314 2012-11-07  Dominik Röttsches  <dominik.rottsches@intel.com>
20315
20316         [EFL] Fix execution of exif-orientation-image-document.html on EFL Wk2 bot
20317         https://bugs.webkit.org/show_bug.cgi?id=101343
20318
20319         Reviewed by Kenneth Rohde Christiansen.
20320
20321         Add Cairo to the list of backends that support shouldRespectImageOrientation.
20322
20323         No new tests, fixes exif-orientation-image-document.html.
20324
20325         * rendering/RenderObject.cpp:
20326         (WebCore::RenderObject::shouldRespectImageOrientation):
20327
20328 2012-11-06  Yury Semikhatsky  <yurys@chromium.org>
20329
20330         Console not displaying all properties of an Object once native Constructor overwritten
20331         https://bugs.webkit.org/show_bug.cgi?id=101320
20332
20333         Reviewed by Pavel Feldman.
20334
20335         Use Object instance from {}.constructor when formatting inspector messages in the
20336         injected script. Otherwise inspected page may overwrite Object value and break inspector.
20337
20338         Test: inspector/console/console-Object-overwritten.html
20339
20340         * inspector/InjectedScriptSource.js:
20341
20342 2012-11-06  Keishi Hattori  <keishi@webkit.org>
20343
20344         Implement month picking to calendar picker
20345         https://bugs.webkit.org/show_bug.cgi?id=101333
20346
20347         Reviewed by Kent Tamura.
20348
20349         This adds month picker mode to CalendarPicker.
20350
20351         No new tests. Tests will be added later when this feature is enabled in DRT.
20352
20353         * Resources/pagepopups/calendarPicker.css:
20354         (.month-mode .day): Remove rounded corners when in month mode.
20355         * Resources/pagepopups/calendarPicker.js:
20356         (Month.createFromToday): Creates month containing today.
20357         (CalendarPicker): Set this.selectionConstructor to Day or Month depending on the mode. Create DayTables or MonthPickerDaysTable depending on the mode.
20358         (CalendarPicker.prototype.handleToday):
20359         (CalendarPicker.prototype._layoutButtons):
20360         (DaysTable.prototype._renderMonth): Set element.dataset.monthValue for all date nodes.
20361         (DaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20362         (DaysTable.prototype.selectRange): Selects a day.
20363         (DaysTable.prototype.selectRangeAndShowEntireRange): Same as selectRange.
20364         (DaysTable.prototype._selectRangeContainingNode):
20365         (DaysTable.prototype._rangeForNode): Returns Day for node.
20366         (DaysTable.prototype.startDate): Start datetime of visible date range. This value is inclusive.
20367         (DaysTable.prototype.endDate): End datetime of visible date range. This value is exclusive.
20368         (DaysTable.prototype._handleKey):
20369         (MonthPickerDaysTable):
20370         (MonthPickerDaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20371         (MonthPickerDaysTable.prototype.selectRange): Selects month. If month is not visible, navigates to that month.
20372         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects month. Navigates to the month.
20373         (MonthPickerDaysTable.prototype._rangeForNode): Returns Month for node.
20374         (MonthPickerDaysTable.prototype._handleKey): Arrow keys simply move the selection forwards or backwards.
20375
20376 2012-11-06  Dan Beam  <dbeam@chromium.org>
20377
20378         Enable REQUEST_AUTOCOMPLETE for chromium port
20379         https://bugs.webkit.org/show_bug.cgi?id=101376
20380
20381         Reviewed by Adam Barth.
20382
20383         Added a runtime enabled feature to control whether HTMLFormElement#requestAutocomplete is visible from JavaScript.
20384
20385         * bindings/generic/RuntimeEnabledFeatures.cpp:
20386         (WebCore):
20387         * bindings/generic/RuntimeEnabledFeatures.h:
20388         (RuntimeEnabledFeatures):
20389
20390         Added a binding from RuntimeEnabledFeatures that triggers [V8EnabledAtRuntime=requestAutocomplete].
20391
20392         (WebCore::RuntimeEnabledFeatures::requestAutocompleteEnabled):
20393
20394         Added a getter to WebCore to ask whether the runtime flag requestAutocomplete is on.
20395
20396         (WebCore::RuntimeEnabledFeatures::setRequestAutocompleteEnabled):
20397
20398         Added a setter to WebCore to affect the runtime flag requestAutocomplete.
20399
20400         * html/HTMLFormElement.idl:
20401
20402         Wrapped commonly grouped features in an #if defined(ENABLED_REQUEST_AUTOCOMPLETE) block and added [V8EnableAtRuntime]
20403         so these features can be changed with a command line switch in the chromium port.
20404
20405 2012-11-06  Adam Barth  <abarth@webkit.org>
20406
20407         [V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
20408         https://bugs.webkit.org/show_bug.cgi?id=101422
20409
20410         Reviewed by Kentaro Hara.
20411
20412         This patch is another incremental step towards the patch in Bug 10110.
20413         In this step, we unify setJSWrapperForDOMObject and
20414         setJSWrapperForDOMNode.
20415
20416         * bindings/scripts/CodeGeneratorV8.pm:
20417         (GenerateHeader):
20418         (GenerateNormalAttrGetter):
20419         (GenerateConstructorCallback):
20420         (GenerateNamedConstructorCallback):
20421         (GenerateToV8Converters):
20422         * bindings/scripts/test/V8/V8Float64Array.h:
20423         (WebCore::V8Float64Array::wrap):
20424         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20425         (WebCore::V8TestActiveDOMObject::wrap):
20426         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20427         (WebCore::V8TestCustomNamedGetter::wrap):
20428         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20429         (WebCore::V8TestEventConstructor::wrap):
20430         * bindings/scripts/test/V8/V8TestEventTarget.h:
20431         (WebCore::V8TestEventTarget::wrap):
20432         * bindings/scripts/test/V8/V8TestException.h:
20433         (WebCore::V8TestException::wrap):
20434         * bindings/scripts/test/V8/V8TestInterface.h:
20435         (WebCore::V8TestInterface::wrap):
20436         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20437         (WebCore::V8TestMediaQueryListListener::wrap):
20438         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20439         (WebCore::V8TestNamedConstructor::wrap):
20440         * bindings/scripts/test/V8/V8TestNode.cpp:
20441         (WebCore::V8TestNode::constructorCallback):
20442         (WebCore::V8TestNode::wrapSlow):
20443         * bindings/scripts/test/V8/V8TestObj.cpp:
20444         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20445         * bindings/scripts/test/V8/V8TestObj.h:
20446         (WebCore::V8TestObj::wrap):
20447         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20448         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20449         * bindings/v8/DOMDataStore.cpp:
20450         (WebCore::DOMDataStore::current):
20451         * bindings/v8/DOMDataStore.h:
20452         (WebCore::DOMDataStore::get):
20453         (DOMDataStore):
20454         * bindings/v8/V8DOMWrapper.cpp:
20455         * bindings/v8/V8DOMWrapper.h:
20456         (V8DOMWrapper):
20457         (WebCore::V8DOMWrapper::setJSWrapperPrivate):
20458         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20459         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20460         (WebCore::v8HTMLImageElementConstructorCallback):
20461
20462 2012-11-06  Ken Buchanan  <kenrb@chromium.org>
20463
20464         Crash due to column span under button element
20465         https://bugs.webkit.org/show_bug.cgi?id=101402
20466
20467         Reviewed by Abhishek Arya.
20468
20469         When there is a column-spanning child of a RenderButton
20470         splitBlocks() must split the RenderButton as well as its
20471         only permitted direct child, the anonymous block referenced
20472         by m_inner. A crash was occurring because splitBlocks()
20473         calls addChildIgnoringAnonymousColumnBlocks() to add the
20474         cloned m_inner to the cloned RenderButton, which meant the
20475         m_inner for the cloned RenderButton was not being set even
20476         though a child was being added. This violates state
20477         assumptions in the RenderButton code.
20478
20479         This patch prevents any descendants of RenderButton from
20480         spanning columns. Also, it adds a precautionary check in
20481         RenderButton::removeChild() to mitigate problems if similar
20482         state problems are found in future.
20483
20484         * rendering/RenderBlock.cpp:
20485         (WebCore::RenderBlock::containingColumnsBlock):
20486         * rendering/RenderButton.cpp:
20487         (WebCore::RenderButton::removeChild):
20488
20489 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
20490
20491         [Shadow] Pseudo custom-elements should start with 'x-'.
20492         https://bugs.webkit.org/show_bug.cgi?id=100919
20493
20494         Reviewed by Dimitri Glazkov.
20495
20496         Pseuco custom-elements should start with 'x-'. 'Pseudo' starting with '-webkit-' should work
20497         only in UserAgent ShadowDOM. If it's used in Author ShadowDOM, it should not work.
20498
20499         Test: fast/dom/shadow/pseudo-attribute-rendering.html
20500
20501         * css/SelectorChecker.cpp:
20502         (WebCore::SelectorChecker::checkSelector): Added ShadowRoot type check.
20503
20504 2012-11-06  Chris Evans  <cevans@google.com>
20505
20506         Re-order variables in BidiRun and LayoutState
20507         https://bugs.webkit.org/show_bug.cgi?id=100173
20508
20509         Reviewed by Eric Seidel.
20510
20511         The variable re-ordering and use of bitfields for bools has two benefits:
20512         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.
20513         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.
20514
20515         This change is exclusively about size savings; it is performance neutral as you would expect, including on Parser/html5-full-render.html
20516
20517         * platform/text/BidiResolver.h:
20518         (WebCore::BidiCharacterRun::BidiCharacterRun): impact from re-ordering members.
20519         (BidiCharacterRun): provide an efficiently packed bit of storage for BidiRun subclass to use, and re-order members to place bools adjacent.
20520         * rendering/BidiRun.h:
20521         (WebCore::BidiRun::BidiRun): use base class' efficiently packed bit storage for m_hasHyphen.
20522         (BidiRun): m_hasHyphen is now stored in the base class.
20523         * rendering/LayoutState.cpp:
20524         (WebCore::LayoutState::LayoutState):
20525         * rendering/LayoutState.h:
20526         (WebCore::LayoutState::LayoutState): impact from re-ordering members.
20527         (LayoutState): re-order members to place bools adjacently.
20528
20529 2012-11-06  Kent Tamura  <tkent@chromium.org>
20530
20531         [Chromium-win] Refactor date/time format conversion code in LocaleWin
20532         https://bugs.webkit.org/show_bug.cgi?id=101329
20533
20534         Reviewed by Kentaro Hara.
20535
20536         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
20537         similar jobs with different code. We can merge them into one function.
20538
20539         As for the date format conversion, we have tokenized a format string and
20540         stored token objects into a vector. We skip token object generation and
20541         generate a LDML-compliant pattern string during parsing.
20542
20543         No new tests. This should make no behavior changes and
20544         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
20545
20546         * platform/text/win/LocaleWin.cpp:
20547         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
20548         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
20549         convertWindowsTimeFormatToLDML.
20550         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
20551         (WebCore::convertWindowsDateTimeFormat):
20552         Renamed from parseDateFormat, and supports time format symbols.
20553         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
20554         (WebCore::LocaleWin::monthFormat): Ditto.
20555         (WebCore::LocaleWin::timeFormat): Ditto.
20556         (WebCore::LocaleWin::shortTimeFormat): Ditto.
20557         * platform/text/win/LocaleWin.h:
20558         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
20559
20560 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20561
20562         Make Document::renderer faster by using the cached ptr for RenderView
20563         https://bugs.webkit.org/show_bug.cgi?id=101409
20564
20565         Reviewed by Eric Seidel.
20566
20567         In Bug 101277 I made Document::renderView() just return m_renderView instead
20568         of casting the result of renderer(). While this made renderView() cheaper it
20569         makes more sense to just make renderer() faster for Document pointers and
20570         go back to the out of line method in RenderView.h because lots of places in
20571         the code do document()->renderer().
20572
20573         No new tests, this is just a refactor.
20574
20575         * dom/Document.h:
20576         (WebCore::Document::renderer):
20577         * rendering/RenderView.h:
20578         (WebCore::Document::renderView):
20579
20580 2012-11-06  Adam Barth  <abarth@webkit.org>
20581
20582         [V8] neuterBinding should remember the type of its argument
20583         https://bugs.webkit.org/show_bug.cgi?id=101413
20584
20585         Reviewed by Kentaro Hara.
20586
20587         This is a small part of the patch in
20588         https://bugs.webkit.org/show_bug.cgi?id=101110 that we can land
20589         separately to try to tease out what is causing the memory regression.
20590
20591         * bindings/v8/SerializedScriptValue.cpp:
20592         (WebCore):
20593         (WebCore::neuterBinding):
20594
20595 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20596
20597         Clean up which storage cookie jar functions use
20598         https://bugs.webkit.org/show_bug.cgi?id=101395
20599
20600         Reviewed by Brady Eidson.
20601
20602         * WebCore.exp.in:
20603         * platform/mac/WebCoreSystemInterface.h:
20604         * platform/mac/WebCoreSystemInterface.mm:
20605         Updated for two new WKSI functions.
20606
20607         * platform/CookieJar.h: Added explanatory comments.
20608
20609         * platform/mac/CookieJar.mm:
20610         (WebCore::cookies): Removed fallback on NSHTTPCookieStorage, the WKSI function
20611         already implements it.
20612         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20613         (WebCore::setCookies): Ditto.
20614         (WebCore::cookiesEnabled): Ditto.
20615         (WebCore::getRawCookies): Ditto.
20616         (WebCore::deleteCookie): Ditto.
20617         (WebCore::getHostnamesWithCookies): This function used to look at NSHTTPCookieStorage
20618         exclusively. While it makes sense to bypass private storage session, default storage
20619         session (currently only used for testing on Mac) is never OK to bypass. Changed to
20620         use a WKSI function that supports both.
20621         (WebCore::deleteCookiesForHostname): Ditto.
20622         (WebCore::deleteAllCookies): Ditto.
20623
20624         * platform/network/cf/CookieJarCFNet.cpp:
20625         (WebCore::getHostnamesWithCookies):
20626         (WebCore::deleteCookiesForHostname):
20627         (WebCore::deleteAllCookies):
20628         Updated to match Foundation, so now these functions bypass private session.
20629
20630         * platform/network/cf/CookieStorageCFNet.cpp:
20631         (WebCore::currentCFHTTPCookieStorage): Updated a comment.
20632         (WebCore::defaultCFHTTPCookieStorage):  Added a function that returns cookie storage
20633         for non-private session (or null if that would be an NSHTTPCookieStorage).        
20634         (WebCore::startObservingCookieChanges): We do not want to observe private cookies
20635         here, and we certainly don't want a mismatch between start/stop due to private
20636         browsing mode changes.
20637         (WebCore::stopObservingCookieChanges): Ditto.
20638
20639         * platform/network/cf/CookieStorageCFNet.h: Added defaultCFHTTPCookieStorage().
20640
20641 2012-11-06  Huang Dongsung  <luxtella@company100.net>
20642
20643         Build fix. r133601 broke the Windows build.
20644         https://bugs.webkit.org/show_bug.cgi?id=101404
20645
20646         Reviewed by Noam Rosenthal.
20647
20648         Only static const integral data members can be initialized within a class in the
20649         Windows, so we initialize static const double date members out of the class.
20650
20651         * platform/graphics/texmap/TextureMapper.cpp:
20652         (BitmapTexturePool):
20653         (WebCore):
20654
20655 2012-11-06  Simon Fraser  <simon.fraser@apple.com>
20656
20657         -webkit-background-clip:text produces artifacts when applied to the body and the browser is resized
20658         https://bugs.webkit.org/show_bug.cgi?id=89287
20659
20660         Reviewed by Beth Dakin.
20661
20662         If the body had -webkit-background-clip: text, we'd fail to paint
20663         anything behind it, so would see garbage pixels.
20664         
20665         Fix by having RenderView::paintBoxDecorations() check for a background-clip of "text"
20666         on the renderer that paints the root background.
20667         
20668         Added some new pixel tests for combinations of html and body transform
20669         and backgrounds; earlier versions of the patch broke some of these tests.
20670
20671         Tests: fast/backgrounds/background-clip-text-on-body.html
20672                fast/backgrounds/transformed-body-background.html
20673                fast/backgrounds/transformed-body-html-background.html
20674                fast/backgrounds/transformed-html-body-background.html
20675
20676         * rendering/RenderView.cpp:
20677         (WebCore::rendererObscuresBackground): Broke up the single condition
20678         into early 'false' returns when possible. We need to also check whether
20679         the renderer that actually paints the background (which might be the body)
20680         will fill it; background-clip: text does not.
20681         (WebCore::RenderView::paintBoxDecorations): Rather than checking firstChild(),
20682         actually check the root renderer, so that we can reliably get to the renderer
20683         that mains the root background.
20684
20685 2012-11-06  Stephen White  <senorblanco@chromium.org>
20686
20687         Implement save and restore for a bunch of InternalSettings state
20688         https://bugs.webkit.org/show_bug.cgi?id=101394
20689
20690         Reviewed by Dirk Pranke.
20691
20692         In http://trac.webkit.org/changeset/133399, I resolved a bunch of 
20693         flaky tests by saving and restoring the InternalSettings state
20694         EnableCompositingForFixedPosition.  On a hunch, I git grepped for all
20695         internal settings state which is being set by layout tests but not
20696         saved and restored.  It turns out there about 15 calls.
20697
20698         This patch takes care of five of them, mostly compositing-related.
20699         The others I was either not sure about, or were already at least
20700         being reset to known values by the testing harness.
20701
20702         Hopefully this will alleviate some further test flakiness.
20703
20704         * testing/InternalSettings.cpp:
20705         * testing/InternalSettings.h:
20706
20707 2012-11-06  KyungTae Kim  <ktf.kim@samsung.com>
20708
20709         Fix build warning in RenderLayer.cpp caused by r133628
20710         https://bugs.webkit.org/show_bug.cgi?id=101401
20711
20712         Reviewed by Simon Fraser.
20713
20714         The static function WebCore::frameViewFromLayer is only used when USE(ACCELERATED_COMPOSITING),
20715         so define it only that case for removing -Wunused-function warning
20716
20717         * rendering/RenderLayer.cpp:
20718         (WebCore):
20719
20720 2012-11-06  Hans Muller  <hmuller@adobe.com>
20721
20722         [CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order
20723         https://bugs.webkit.org/show_bug.cgi?id=100763
20724
20725         Reviewed by Darin Adler.
20726
20727         The ExclusionPolygon's internal logic, notably getVertexIntersectionVertices(),
20728         assumes that ExclusionPolygonEdge vertices are stored in clockwise order.
20729         If this is not true, then we construct the polygon's edges in reverse.
20730
20731         To determine if the vertices are in clockwise order, we compare the slope
20732         of the line between the top,left vertex and its previous vertex, with the
20733         the slope of the line of vertices before and after the top,left vertex.
20734         If the slope of the latter is greater, then top,left vertex is located
20735         to its left, and the vertices are clockwise.
20736
20737         Test: fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html
20738
20739         * rendering/ExclusionPolygon.cpp:
20740         (WebCore::determinant): Used to decide if the min vertex is on the left side of the line that passes through its adjacent vertices.
20741         (WebCore::ExclusionPolygon::ExclusionPolygon): If the polygon's vertices are specified in counterclockwise order, construct the edges in reverse.
20742         (WebCore::appendIntervalX): Made this an inline since it was only defined as a function for the sake of clarity.
20743
20744 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
20745
20746         [BlackBerry] Update BB10 form theme.
20747         https://bugs.webkit.org/show_bug.cgi?id=100760
20748
20749         Reviewed by Rob Buis.
20750
20751         RIM PR 238123
20752         Internal Reviewed by Chris Hutten-Czapski
20753         BB10 selection theme use slice image function to draw selection button,
20754         any border-radius setting other than 0 will make the button corner
20755         clipped. Always set button border-radius: 0 for BB10 theme.
20756
20757         * css/themeBlackBerry.css:
20758         (select[size][multiple]):
20759         (select[size="1"]):
20760
20761 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20762
20763         Remove branch from inside RenderObject::view now that renderer() is more expensive
20764         https://bugs.webkit.org/show_bug.cgi?id=101277
20765
20766         Reviewed by Eric Seidel.
20767
20768         It was observed in Bug 100057 that calling renderer() repeatedly now that it has a branch
20769         can be a performance regression. Now that we no longer keep a separate pointer for rare data
20770         in Document, we can use that space for a pointer to the RenderView making RenderObject::view()
20771         faster and removing the branch.
20772
20773         This is a 1% improvement on Parser/html5-full-render.html
20774
20775         This also cleans up the code because it turns out we don't need to have RenderObject::view() in
20776         RenderView.h because we can just call Document::renderView() and not do toRenderView. This makes
20777         it easier to find this method as it exists in the right header file now.
20778
20779         No new tests, this is just a refactor.
20780
20781         * WebCore.exp.in: Remove export of Document::renderView since it's inline now.
20782         * dom/Document.cpp:
20783         (WebCore::Document::Document):
20784         (WebCore::Document::setRenderer):
20785         (WebCore):
20786         * dom/Document.h:
20787         (WebCore::Document::renderView):
20788         (Document):
20789         * rendering/RenderObject.h:
20790         (WebCore::RenderObject::view):
20791         * rendering/RenderView.h:
20792         (WebCore):
20793
20794 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20795
20796         Unreviewed, rolling out r133526.
20797         http://trac.webkit.org/changeset/133526
20798         https://bugs.webkit.org/show_bug.cgi?id=101388
20799
20800         May have caused 15% memory regression in Chromium (Requested
20801         by jsbell|gardener on #webkit).
20802
20803         * UseV8.cmake:
20804         * WebCore.gypi:
20805         * bindings/scripts/CodeGeneratorV8.pm:
20806         (GenerateHeader):
20807         (GenerateNormalAttrGetter):
20808         (GenerateConstructorCallback):
20809         (GenerateNamedConstructorCallback):
20810         (GenerateToV8Converters):
20811         (GetDomMapFunction):
20812         (GetDomMapName):
20813         * bindings/scripts/test/V8/V8Float64Array.h:
20814         (WebCore::V8Float64Array::wrap):
20815         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20816         (WebCore::V8TestActiveDOMObject::wrap):
20817         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20818         (WebCore::V8TestCustomNamedGetter::wrap):
20819         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20820         (WebCore::V8TestEventConstructor::wrap):
20821         * bindings/scripts/test/V8/V8TestEventTarget.h:
20822         (WebCore::V8TestEventTarget::wrap):
20823         * bindings/scripts/test/V8/V8TestException.h:
20824         (WebCore::V8TestException::wrap):
20825         * bindings/scripts/test/V8/V8TestInterface.h:
20826         (WebCore::V8TestInterface::wrap):
20827         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20828         (WebCore::V8TestMediaQueryListListener::wrap):
20829         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20830         (WebCore::V8TestNamedConstructor::wrap):
20831         * bindings/scripts/test/V8/V8TestNode.cpp:
20832         (WebCore::V8TestNode::constructorCallback):
20833         (WebCore::V8TestNode::wrapSlow):
20834         * bindings/scripts/test/V8/V8TestObj.cpp:
20835         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20836         * bindings/scripts/test/V8/V8TestObj.h:
20837         (WebCore::V8TestObj::wrap):
20838         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20839         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20840         * bindings/v8/DOMDataStore.cpp:
20841         (WebCore::DOMDataStore::DOMDataStore):
20842         (WebCore::DOMDataStore::~DOMDataStore):
20843         (WebCore::DOMDataStore::current):
20844         (WebCore::DOMDataStore::reportMemoryUsage):
20845         * bindings/v8/DOMDataStore.h:
20846         (WebCore::DOMDataStore::domNodeMap):
20847         (WebCore::DOMDataStore::domObjectMap):
20848         (DOMDataStore):
20849         * bindings/v8/DOMWrapperMap.h:
20850         (WebCore):
20851         (DOMWrapperMap):
20852         (WebCore::DOMWrapperMap::~DOMWrapperMap):
20853         (WebCore::DOMWrapperHashMap::remove):
20854         * bindings/v8/DOMWrapperWorld.h:
20855         * bindings/v8/IntrusiveDOMWrapperMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20856         (WebCore):
20857         (IntrusiveDOMWrapperMap):
20858         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
20859         * bindings/v8/ScriptProfiler.cpp:
20860         * bindings/v8/SerializedScriptValue.cpp:
20861         (WebCore::neuterBinding):
20862         * bindings/v8/V8DOMMap.cpp: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20863         (WebCore):
20864         (WebCore::getDOMNodeMap):
20865         (WebCore::getDOMObjectMap):
20866         * bindings/v8/V8DOMMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20867         (WebCore):
20868         * bindings/v8/V8DOMWindowShell.cpp:
20869         * bindings/v8/V8DOMWrapper.cpp:
20870         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
20871         (WebCore):
20872         * bindings/v8/V8DOMWrapper.h:
20873         (V8DOMWrapper):
20874         (WebCore::V8DOMWrapper::getCachedWrapper):
20875         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20876         * bindings/v8/V8GCController.cpp:
20877         * bindings/v8/V8NPObject.cpp:
20878         * bindings/v8/WorkerContextExecutionProxy.cpp:
20879         * bindings/v8/WorkerScriptController.cpp:
20880         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20881         (WebCore::v8HTMLImageElementConstructorCallback):
20882
20883 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20884
20885         Some cookie code cleanup
20886         https://bugs.webkit.org/show_bug.cgi?id=101375
20887
20888         Reviewed by Dan Bernstein.
20889
20890         * platform/CookieJar.h: Fixed style. Grouped functions by which storage they operate
20891         on in Mac port, but didn't add explanatory comments yet, because this is different
20892         in some ports.
20893
20894         * platform/mac/CookieJar.mm:
20895         (WebCore): Removed special code for isHTTPOnly, it's present in Foundation in all
20896         supported OS X versions.
20897         (WebCore::filterCookies): Use -isHTTPOnly directly.
20898         (WebCore::cookies): Get rid of a variable for URL, implicit conversion works just as well.
20899         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20900         (WebCore::setCookies): Assert that no more than one cookie was created from one
20901         Set-Cookie header, document.cookie can only be used to set one cookie at a time.
20902         (WebCore::getRawCookies): Removed useless local variables.
20903
20904         * platform/network/CookieStorage.h: Removed an unneeded include, clarified a comment.
20905
20906         * platform/network/HTTPHeaderMap.h: Added a FIXME.
20907
20908 2012-11-06  John Griggs  <jgriggs@rim.com>
20909
20910         Implement MediaPlayerPrivate::didLoadingProgress for BlackBerry platform
20911         https://bugs.webkit.org/show_bug.cgi?id=100378
20912
20913         Reviewed by Eric Carlson.
20914
20915         Implement this method for BlackBerry platform.
20916
20917         New test: LayoutTests/media/progress-events-generated-correctly.html
20918
20919         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
20920         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
20921         (WebCore::MediaPlayerPrivate::didLoadingProgress):
20922         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
20923         (MediaPlayerPrivate):
20924
20925 2012-11-06  Adam Barth  <abarth@webkit.org>
20926
20927         DOMImplementation should use ScriptWrappable
20928         https://bugs.webkit.org/show_bug.cgi?id=101279
20929
20930         Reviewed by Eric Seidel.
20931
20932         This patch makes DOMImplementation ScriptWrappable. Both the V8 and JSC
20933         bindings automatically detect the presence of this base class and use
20934         it to optimize getting and setting JavaScript wrappers.
20935
20936         This patch is a 23% progression on Bindings/document-implementation for
20937         the V8 bindings and a 69% progression for the JSC bindings.
20938
20939         * dom/DOMImplementation.h:
20940
20941 2012-11-06  Benjamin Poulain  <benjamin@webkit.org>
20942
20943         Speed up TransformationMatrix::multiply() on modern ARM
20944         https://bugs.webkit.org/show_bug.cgi?id=101084
20945
20946         Reviewed by Gavin Barraclough.
20947
20948         The main improvements are:
20949         -Store the full source matrix in the registers d16 to d31. This way we avoid going
20950          back and forth to memory to use the operands.
20951          Since the full matrix is in register, we can also directly modify the memory of m_matrix,
20952          we no longer need the temporary matrix memcopied at the end.
20953         -Use of LoadMultiple and StoreMultiple to load-store the matrix parameters.
20954         -Use Multiply-Accumulate instead of VMUL followed by VADD. This half the number of instruction.
20955         -On regular ARMv7, using a loop to reuse the same code for each row also improve the performance.
20956
20957         Depending on the hardware, the new code takes 20% to 42% less time than the basic implementation.
20958
20959         * platform/graphics/transforms/TransformationMatrix.cpp:
20960         (WebCore::TransformationMatrix::multiply):
20961         * platform/graphics/transforms/TransformationMatrix.h:
20962         (TransformationMatrix):
20963
20964 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20965
20966         Unreviewed, rolling out r133529 and r133562.
20967         http://trac.webkit.org/changeset/133529
20968         http://trac.webkit.org/changeset/133562
20969         https://bugs.webkit.org/show_bug.cgi?id=101371
20970
20971         Caused 15% memory regression on Chromium page cyclers
20972         (Requested by jsbell|gardener on #webkit).
20973
20974         * platform/text/LineBreakIteratorPoolICU.h:
20975         (WebCore::LineBreakIteratorPool::take):
20976         (WebCore::LineBreakIteratorPool::put):
20977         (LineBreakIteratorPool):
20978         * platform/text/TextBreakIterator.cpp:
20979         (WebCore::acquireLineBreakIterator):
20980         * platform/text/TextBreakIterator.h:
20981         (WebCore):
20982         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
20983         (WebCore::LazyLineBreakIterator::get):
20984         (WebCore::LazyLineBreakIterator::reset):
20985         (LazyLineBreakIterator):
20986         * platform/text/TextBreakIteratorICU.cpp:
20987         (WebCore::acquireLineBreakIterator):
20988         (WebCore::releaseLineBreakIterator):
20989         * platform/text/gtk/TextBreakIteratorGtk.cpp:
20990         (WebCore::setUpIterator):
20991         (WebCore::acquireLineBreakIterator):
20992         * platform/text/wince/TextBreakIteratorWinCE.cpp:
20993         (WebCore::acquireLineBreakIterator):
20994         * rendering/RenderBlockLineLayout.cpp:
20995         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
20996         * rendering/RenderText.cpp:
20997         (WebCore::RenderText::computePreferredLogicalWidths):
20998         * rendering/RenderText.h:
20999         (WebCore):
21000         * rendering/break_lines.cpp:
21001         (WebCore):
21002         (WebCore::isBreakableSpace):
21003         (WebCore::needsLineBreakIterator):
21004         (WebCore::nextBreakablePosition):
21005         (WebCore::nextBreakablePositionIgnoringNBSP):
21006         * rendering/break_lines.h:
21007         (WebCore):
21008         (WebCore::isBreakable):
21009
21010 2012-11-06  Peter Beverloo  <peter@chromium.org>
21011
21012         [Chromium] Enable the JavaScript i18n API for Android
21013         https://bugs.webkit.org/show_bug.cgi?id=101357
21014
21015         Reviewed by Adam Barth.
21016
21017         Remove the conditional dependency on the v8-i18n API. The library is now
21018         always available in a Chromium for Android checkout.
21019
21020         * WebCore.gyp/WebCore.gyp:
21021
21022 2012-11-06  Adam Barth  <abarth@webkit.org>
21023
21024         ScriptWrappable should work for more than just Node
21025         https://bugs.webkit.org/show_bug.cgi?id=101319
21026
21027         Reviewed by Eric Seidel.
21028
21029         This patch generalizes the inline cached wrapper code path to work with
21030         all subclasses of ScriptWrappable, not just Node.
21031
21032         * bindings/js/JSDOMBinding.h:
21033         (WebCore::setInlineCachedWrapper):
21034         (WebCore::getInlineCachedWrapper):
21035         (WebCore):
21036         (WebCore::clearInlineCachedWrapper):
21037         (WebCore::cacheWrapper):
21038         * bindings/js/JSNodeCustom.h:
21039
21040 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
21041
21042         [BlackBerry] Update BB10 form theme.
21043         https://bugs.webkit.org/show_bug.cgi?id=100760
21044
21045         Reviewed by Rob Buis.
21046
21047         Revert webkit/ce306dcc698199a6f7ce679daf0a30c25d3a3d43 slider theme
21048         change which break media control and vertical slider.
21049
21050         RIM PR 236993
21051         Internal Reviewed by Jeff Rogers.
21052
21053         * platform/blackberry/RenderThemeBlackBerry.cpp:
21054         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
21055         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
21056
21057 2012-11-06  Michael Saboff  <msaboff@apple.com>
21058
21059         canonicalizedTitle() shouldn't convert 8 bit title strings to 16 bit
21060         https://bugs.webkit.org/show_bug.cgi?id=101105
21061
21062         Reviewed by Darin Adler.
21063
21064         Turned canonicalizedTitle() into a templated function based on character type.
21065         Changed call in updateTitle() to check the bitness of the title string to call
21066         the right template flavor of canonicalizedTitle().
21067         Made supporting changes by adding displayBufferModifiedByEncoding(LChar*, ...)
21068         and made TextEncoding::displayBuffer() a templated function as well.
21069
21070         No new tests needed, as functionality is unchanged.
21071
21072         * dom/Document.cpp:
21073         (WebCore::canonicalizedTitle):
21074         (WebCore::Document::updateTitle):
21075         (WebCore::Document::displayBufferModifiedByEncodingInternal):
21076         * dom/Document.h:
21077         (WebCore::Document::displayBufferModifiedByEncoding):
21078         * platform/text/TextEncoding.h:
21079         (TextEncoding):
21080         (WebCore::TextEncoding::displayBuffer):
21081
21082 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21083
21084         Fix RenderGeometryMap assertion when layers are scrolled during layout
21085         https://bugs.webkit.org/show_bug.cgi?id=101292
21086
21087         Reviewed by Beth Dakin.
21088
21089         When we set RenderLayer scroll positions as part of layout, we don't want
21090         to update compositing layers right away. Updating compositing layers
21091         requires that the entire layer tree has been updated from renderers,
21092         so that the geometry of all RenderLayers can be trusted. When this state
21093         was violated, RenderGeometryMap asserts.
21094         
21095         Fix by bailing from updateCompositingLayersAfterScroll() if FrameView
21096         tells us that we're doing layout. A full update of the compositing layers
21097         will happen later anyway.
21098
21099         Test: compositing/geometry/geometry-map-scroll-during-layout-assertion.html
21100
21101         * rendering/RenderLayer.cpp:
21102         (WebCore::frameViewFromLayer):
21103         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
21104
21105 2012-11-06  Michael Saboff  <msaboff@apple.com>
21106
21107         quoteCSSString() always creates a 16 bit string
21108         https://bugs.webkit.org/show_bug.cgi?id=101004
21109
21110         Reviewed by Darin Adler.
21111
21112         Added a new templated helper based on character type from the logic of quoteCSSString() to process
21113         the argument string based on its native bitness.
21114
21115         Functionality covered by existing tests.
21116
21117         * css/CSSParser.cpp:
21118         (WebCore::quoteCSSStringInternal):
21119         (WebCore::quoteCSSString):
21120
21121 2012-11-06  Andras Becsi  <andras.becsi@digia.com>
21122
21123         [Qt][WK2] Fit-to-width broken on pages with viewport meta tag
21124         https://bugs.webkit.org/show_bug.cgi?id=99715
21125
21126         Reviewed by Jocelyn Turcotte.
21127
21128         Add a bool that indicates if the content had an explicit
21129         initial-scale in the viewport meta tag.
21130
21131         * dom/ViewportArguments.cpp:
21132         (WebCore::computeViewportAttributes):
21133         * dom/ViewportArguments.h:
21134         (ViewportAttributes):
21135
21136 2012-11-06  Mike West  <mkwst@chromium.org>
21137
21138         CSP 1.1: Tweak the script interface to match the spec.
21139         https://bugs.webkit.org/show_bug.cgi?id=101321
21140
21141         Reviewed by Adam Barth.
21142
21143        This patch brings WebKit in line with the changes made to the spec in
21144        https://dvcs.w3.org/hg/content-security-policy/rev/5a29424a37d4.
21145        Specifically, the following:
21146
21147        - Renamed 'document.SecurityPolicy' to 'document.securityPolicy'
21148        - Converted the following to read-only boolean attributes:
21149          - 'allowsEval'
21150          - 'allowsInlineScript'
21151          - 'allowsInlineStyle'
21152          - 'isActive'
21153
21154         These changes only have effect for ports with CSP_NEXT enabled.
21155
21156         Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinescript.html
21157                http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinestyle.html
21158
21159         * dom/Document.idl:
21160         * page/DOMSecurityPolicy.idl:
21161             Tweaking the IDL files to match the new definition of the
21162             functionlity in the spec.
21163
21164 2012-11-06  Andrey Lushnikov  <lushnikov@google.com>
21165
21166         Added console.clear() method
21167
21168         Web Inspector: add console.clear()
21169         https://bugs.webkit.org/show_bug.cgi?id=101021
21170
21171         Reviewed by Vsevolod Vlasov.
21172
21173         Adds native implementation of console.clear
21174
21175         Test: inspector/console/console-clear-function.html
21176
21177         * English.lproj/localizedStrings.js: Adds 'Console was cleared' string
21178         * inspector/ConsoleMessage.cpp:
21179         (WebCore::messageTypeValue): Adds ClearMessageType
21180         * inspector/Inspector.json:
21181         * inspector/InspectorConsoleAgent.cpp:
21182         (WebCore::InspectorConsoleAgent::addMessageToConsole):
21183         * inspector/front-end/ConsoleMessage.js:
21184         (WebInspector.ConsoleMessageImpl.prototype._formatMessage): Display strategy for "clear" message
21185         * inspector/front-end/ConsoleModel.js:
21186         * inspector/front-end/inspector.css:
21187         (.console-info): Adds style for the 'console was cleared' message
21188         * page/Console.cpp: backend binging for console.clear()
21189         (WebCore::Console::clear):
21190         (WebCore):
21191         * page/Console.h:
21192         (Console):
21193         * page/Console.idl: Adds 'clear' message to protocol
21194         * page/ConsoleTypes.h:
21195
21196 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21197
21198         Heap-buffer-overflow in WebCore::TextTrackCueList::add
21199         https://bugs.webkit.org/show_bug.cgi?id=101018
21200
21201         Reviewed by Eric Carlson.
21202
21203         Added an extra check to avoid using a negative array index when a cue
21204         is added to the beginning of the list.
21205
21206         Test case added to LayoutTests/media/track/track-add-remove-cue.html.
21207
21208         * html/track/TextTrackCueList.cpp:
21209         (WebCore::TextTrackCueList::add):
21210
21211 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21212
21213         Regression(r132681): Heap-use-after-free in WebCore::RenderTextTrackCue::layout
21214         https://bugs.webkit.org/show_bug.cgi?id=100981
21215
21216         Reviewed by Eric Carlson.
21217
21218         Fixing a TextTrackCue use after free bug. textTrackRemoveCues() needs to be called when
21219         an HTMLTrackElement is removed from an HTMLMediaElement so that references to
21220         TextTrackCues are removed from m_cueTree.
21221
21222         Test: media/track/track-remove-by-setting-innerHTML.html
21223
21224         * html/HTMLMediaElement.cpp:
21225         (WebCore::HTMLMediaElement::willRemoveTrack):
21226
21227 2012-10-23  Stephen White  <senorblanco@chromium.org>
21228
21229         [skia] Implement reference (url) filters on composited layers.
21230         https://bugs.webkit.org/show_bug.cgi?id=100142
21231
21232         Reviewed by James Robinson.
21233
21234         Covered by css3/filters/effect-reference-hw.html
21235
21236         * WebCore.gyp/WebCore.gyp:
21237         * WebCore.gypi:
21238         Add new files.
21239         * WebCore.xcodeproj/project.pbxproj:
21240         Mark FilterEffect.h as "private".
21241         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
21242         (WebCore::GraphicsLayerChromium::setFilters):
21243         Use the new SkImageFilter builder and setLayer() infrastructure, but
21244         only if there's a reference filter in the chain.
21245         * platform/graphics/filters/FEBlend.h:
21246         * platform/graphics/filters/FEColorMatrix.h:
21247         * platform/graphics/filters/FEGaussianBlur.h:
21248         * platform/graphics/filters/FELighting.h:
21249         * platform/graphics/filters/FEMorphology.h:
21250         * platform/graphics/filters/FilterEffect.h:
21251         (WebCore::FilterEffect::createImageFilter):
21252         Add createImageFilter() factory function for building SkImageFilters.
21253         * platform/graphics/filters/FilterOperation.h:
21254         (WebCore::FilterOperation::ReferenceFilterOperation::filterEffect):
21255         (WebCore::FilterOperation::ReferenceFilterOperation::setFilterEffect):
21256         Add a FilterEffect member to ReferenceFilterOperation, and accessors
21257         for it.
21258         * platform/graphics/filters/skia/FEBlendSkia.cpp:
21259         (WebCore::FEBlend::createImageFilter):
21260         Implement SkImageFilter building for FEBlend filter.
21261         * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
21262         (WebCore::createColorFilter):
21263         (WebCore::FEColorMatrix::platformApplySkia):
21264         Refactor creation of SkColorFilter from an FEColorMatrix filter.
21265         (WebCore::FEColorMatrix::createImageFilter):
21266         Implement SkImageFilter building for FEColorMatrix filter.
21267         * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
21268         (WebCore::FEGaussianBlur::createImageFilter):
21269         Implement SkImageFilter building for FEGaussianBlur filter.
21270         * platform/graphics/filters/skia/FELightingSkia.cpp:
21271         (WebCore::FELighting::createImageFilter):
21272         Implement SkImageFilter building for FELighting filters.
21273         * platform/graphics/filters/skia/FEMorphologySkia.cpp:
21274         (WebCore::FEMorphology::createImageFilter):
21275         Implement SkImageFilter building for FEMorphology filter.
21276         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp: Added.
21277         (WebCore::SkiaImageFilterBuilder::SkiaImageFilterBuilder):
21278         (WebCore::SkiaImageFilterBuilder::build):
21279         * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
21280         Implement new helper class for building an SkImageFilter DAG from
21281         a FilterEffect DAG.  Can also build from FilterOperations list.
21282         * rendering/FilterEffectRenderer.cpp:
21283         (WebCore::FilterEffectRenderer::build):
21284         When building FilterEffects from a reference filter, also store the
21285         generated DAG on the ReferenceFilterOperation itself.
21286         * rendering/RenderLayer.cpp:
21287         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
21288         Even when in composited mode, if there's a reference filter in the 
21289         chain, build the FilterEffect DAG from it.
21290
21291 2012-11-06  Max Feil  <mfeil@rim.com>
21292
21293         [BlackBerry] Automatically go fullscreen on video play
21294         https://bugs.webkit.org/show_bug.cgi?id=101100
21295
21296         Reviewed by Eric Carlson.
21297
21298         There is a requirement to have HTML5 video automatically enter
21299         fullscreen when a video starts playing (PR131774). This change
21300         implements this feature, with restrictions. The main restriction
21301         is adherence to WebKit's philosophy of only entering fullscreen
21302         due to a user gesture. This is important in order to avoid
21303         pop-up advertisements and other unwanted fullscreen content.
21304         One consequence of this is that video elements with the autoplay
21305         attribute will not automatically enter fullscreen.
21306
21307         Other caveats:
21308         - This feature applies only to "small screen" devices where
21309         automatically going fullscreen makes more sense.
21310         - Fullscreen will only be entered automatically when the
21311         video is played from the beginning (current time is zero).
21312         It is assumed that if the user is resuming play from a paused
21313         state and is not in fullscreen mode, then they exited fullscreen
21314         mode intentionally.
21315
21316         Test: platform/blackberry/media/video-automatic-fullscreen.html
21317
21318         * html/HTMLMediaElement.cpp:
21319         (WebCore::HTMLMediaElement::mediaPlayerEnterFullscreen):
21320         (WebCore):
21321         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreen):
21322         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted):
21323         * html/HTMLMediaElement.h:
21324         (HTMLMediaElement):
21325         * platform/graphics/MediaPlayer.h:
21326         (WebCore::MediaPlayerClient::mediaPlayerEnterFullscreen):
21327         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreen):
21328         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreenPermitted):
21329         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
21330         (WebCore::MediaPlayerPrivate::play):
21331         (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
21332         (WebCore::MediaPlayerPrivate::conditionallyGoFullscreenAfterPlay):
21333         (WebCore):
21334         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
21335         (MediaPlayerPrivate):
21336
21337 2012-11-06  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
21338
21339         [WK2][EFL][GTK] early return of checkSpellingOfString treats correct words as misspelled
21340         https://bugs.webkit.org/show_bug.cgi?id=101215
21341
21342         Reviewed by Gustavo Noronha Silva.
21343
21344         Save the misspelled location and length of the string to the default values (-1, 0)
21345         at the beginning of the checkSpellingOfString method.
21346         It assumes that the words are spelled correctly and early return of method doesn't
21347         cause assertions in findFirstMisspelling (WebCore/editing/TextCheckingHelper.cpp).
21348
21349         * platform/text/enchant/TextCheckerEnchant.cpp:
21350         (TextCheckerEnchant::checkSpellingOfString):
21351
21352 2012-11-06  Huang Dongsung  <luxtella@company100.net>
21353
21354         [TexMap] Remove unused textures in the texture pool.
21355         https://bugs.webkit.org/show_bug.cgi?id=100706
21356
21357         Reviewed by Noam Rosenthal.
21358
21359         Currently, we do not remove textures in the texture pool of
21360         TextureMapper. The texture pool is destroyed when TextureMapper is
21361         destroyed. It means the texture pool consumes texture memory until its
21362         destruction. This patch removes textures if the textures have been not
21363         used in 3 seconds as LayerTreeCoordinator manages UpdateAtlases.
21364
21365         Changing cache policy is not testable in layout tests.
21366
21367         * platform/graphics/texmap/TextureMapper.cpp:
21368         (WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry):
21369         (WebCore::BitmapTexturePoolEntry::markUsed):
21370         (WebCore::BitmapTexturePoolEntry::compareTimeLastUsed):
21371         (BitmapTexturePoolEntry):
21372         (WebCore):
21373         (BitmapTexturePool):
21374         (WebCore::BitmapTexturePool::BitmapTexturePool):
21375         (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
21376         (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
21377         (WebCore::BitmapTexturePool::acquireTexture):
21378         (WebCore::TextureMapper::acquireTextureFromPool):
21379         (WebCore::TextureMapper::TextureMapper):
21380         (WebCore::TextureMapper::~TextureMapper):
21381         * platform/graphics/texmap/TextureMapper.h:
21382         (WebCore):
21383         (TextureMapper):
21384
21385 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
21386
21387         Web Inspector: NMI instrument CachedMetadata. It uses ~300k on plus.google.com
21388         https://bugs.webkit.org/show_bug.cgi?id=101067
21389
21390         Reviewed by Yury Semikhatsky.
21391
21392         Plain vanilla instrumentation for CachedMetadata class.
21393
21394         * CMakeLists.txt:
21395         * GNUmakefile.list.am:
21396         * Target.pri:
21397         * WebCore.gypi:
21398         * WebCore.vcproj/WebCore.vcproj:
21399         * WebCore.xcodeproj/project.pbxproj:
21400         * loader/CachedMetadata.cpp: Added.
21401         (WebCore):
21402         (WebCore::CachedMetadata::reportMemoryUsage):
21403         * loader/CachedMetadata.h:
21404         (CachedMetadata):
21405
21406 2012-11-06  Alexei Filippov  <alph@chromium.org>
21407
21408         Web Inspector: report physical memory really committed for JS heap in NMI
21409         https://bugs.webkit.org/show_bug.cgi?id=101335
21410
21411         Some OSes (e.g. Linux) perform lazy commits of requested memory.
21412         Because of that the committed memory may not retain any physical
21413         memory until the very first access to the committed chunk.
21414         That led to JS heap reported more physical memory than was currently
21415         in use.
21416
21417         Reviewed by Vsevolod Vlasov.
21418
21419         * bindings/v8/ScriptGCEvent.cpp:
21420         (WebCore::ScriptGCEvent::getHeapSize):
21421
21422 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21423
21424         Web Inspector: Breakpoint is not removed when it was set in non-formatted mode and then removed while in formatted mode.
21425         https://bugs.webkit.org/show_bug.cgi?id=100595
21426
21427         Reviewed by Yury Semikhatsky.
21428
21429         Breakpoints in storage are now updated/removed by file name saved from primary location when they were created,
21430         not by the name returned by UISourceCode (as this one could change when UISourceCode is formatted).
21431         SourceFileId is now used across BreakpointManager to specify file name.
21432         And breakpointStorageId is now used to specify (fileName, lineNumber) pair.
21433
21434         * inspector/front-end/BreakpointManager.js:
21435         (WebInspector.BreakpointManager.sourceFileId):
21436         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
21437         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): Removed redundant check.
21438         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
21439         (WebInspector.BreakpointManager.Breakpoint):
21440         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
21441         (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
21442         (set WebInspector.BreakpointManager.Storage.Item):
21443
21444 2012-11-06  Keishi Hattori  <keishi@webkit.org>
21445
21446         The "Rect" class in WebCore/Resources/pagepopups/pickerCommon.js should be renamed
21447         https://bugs.webkit.org/show_bug.cgi?id=101304
21448
21449         Reviewed by Kent Tamura.
21450
21451         The name Rect conflicts with CSS Rect.
21452
21453         No new tests. Just renaming.
21454
21455         * Resources/pagepopups/pickerCommon.js:
21456         (Rectangle): Renamed from Rect.
21457         (Rectangle.prototype.toString):
21458         (Rectangle.intersection):
21459         (adjustWindowRect):
21460         (hideWindow):
21461
21462 2012-11-06  Kentaro Hara  <haraken@chromium.org>
21463
21464         Replace setDOMWrapper(wrapper, 0) with resetDOMWrapper(wrapper)
21465         https://bugs.webkit.org/show_bug.cgi?id=101190
21466
21467         Reviewed by Adam Barth.
21468
21469         To guarantee that we never stores NULL pointers to V8 internal
21470         fields, we want to insert ASSERT()s to setDOMWrapper().
21471         This patch replaces setDOMWrapper() that intentionally
21472         passes NULL pointers with clearDOMWrapper().
21473
21474         No tests. No change in behavior.
21475
21476         * bindings/v8/V8DOMWrapper.h:
21477         (V8DOMWrapper):
21478         (WebCore::V8DOMWrapper::clearDOMWrapper):
21479         * bindings/v8/V8NPObject.cpp:
21480         (WebCore::forgetV8ObjectForNPObject):
21481
21482 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21483
21484         Web Inspector: Displayed name/path of urls in network tab of dev tools is inconsistent
21485         https://bugs.webkit.org/show_bug.cgi?id=101064
21486
21487         Reviewed by Yury Semikhatsky.
21488
21489         Extracted some generic methods from ParsedURL displayName getters (about:blank and data url handlers).
21490         Implemented consistent name() and path() method on NetworkRequest based on ParsedURL.
21491         NetworkPanel now uses name() and path() methods on NetworkRequest to show requests and search for them.
21492
21493         Test: http/tests/inspector/network/request-name-path.html
21494
21495         * inspector/front-end/NetworkPanel.js:
21496         (WebInspector.NetworkLogView.prototype._matchRequest):
21497         (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
21498         (WebInspector.NetworkLogView.prototype.performFilter):
21499         (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
21500         (WebInspector.NetworkDataGridNode.NameComparator):
21501         * inspector/front-end/NetworkRequest.js:
21502         (WebInspector.NetworkRequest.prototype.set url):
21503         (WebInspector.NetworkRequest.prototype.name):
21504         (WebInspector.NetworkRequest.prototype.path):
21505         (WebInspector.NetworkRequest.prototype._parseNameAndPathFromURL):
21506         * inspector/front-end/ParsedURL.js:
21507         (WebInspector.ParsedURL):
21508         (WebInspector.ParsedURL.prototype.get displayName):
21509         (WebInspector.ParsedURL.prototype.dataURLDisplayName):
21510         (WebInspector.ParsedURL.prototype.isAboutBlank):
21511         (WebInspector.ParsedURL.prototype.isDataURL):
21512
21513 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
21514
21515         Web Inspector: make Spectrum and Popover WebInspector.Views in order to enable reuse
21516         https://bugs.webkit.org/show_bug.cgi?id=101200
21517
21518         Reviewed by Yury Semikhatsky.
21519
21520         - Split Spectrum and SpectrumPopoverHelper (first is a component, second is controller)
21521         - Made Popover a root view in order to enable lazy style loading for potential subviews (such as Spectrum)
21522         - Extracted spectrum's css into a separate file
21523
21524         * WebCore.gypi:
21525         * WebCore.vcproj/WebCore.vcproj:
21526         * inspector/front-end/DOMExtension.js:
21527         (Element.prototype.positionAt):
21528         (Size):
21529         (Element.prototype.measurePreferredSize):
21530         * inspector/front-end/HeapSnapshotView.js:
21531         (WebInspector.HeapSnapshotView.prototype.willHide):
21532         (WebInspector.HeapSnapshotView.prototype._helpClicked):
21533         * inspector/front-end/Popover.js:
21534         (WebInspector.Popover):
21535         (WebInspector.Popover.prototype.show):
21536         (WebInspector.Popover.prototype.showView):
21537         (WebInspector.Popover.prototype._innerShow):
21538         (WebInspector.Popover.prototype.hide):
21539         (WebInspector.Popover.prototype.dispose):
21540         (WebInspector.Popover.prototype._positionElement):
21541         * inspector/front-end/Spectrum.js:
21542         (WebInspector.Spectrum.alphaDrag):
21543         (WebInspector.Spectrum):
21544         (WebInspector.Spectrum.prototype.wasShown):
21545         (WebInspector.SpectrumPopupHelper):
21546         (WebInspector.SpectrumPopupHelper.prototype.spectrum):
21547         (WebInspector.SpectrumPopupHelper.prototype.toggle):
21548         (WebInspector.SpectrumPopupHelper.prototype.show):
21549         (WebInspector.SpectrumPopupHelper.prototype.reposition):
21550         (WebInspector.SpectrumPopupHelper.prototype.hide):
21551         (WebInspector.ColorSwatch):
21552         (WebInspector.ColorSwatch.prototype.setColorString):
21553         * inspector/front-end/StylesSidebarPane.js:
21554         (WebInspector.StylesSidebarPane):
21555         (WebInspector.StylesSidebarPane.prototype.update):
21556         (WebInspector.StylesSidebarPane.prototype.willHide):
21557         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
21558         * inspector/front-end/View.js:
21559         (WebInspector.View.prototype.measurePreferredSize):
21560         * inspector/front-end/WebKit.qrc:
21561         * inspector/front-end/elementsPanel.css:
21562         (.image-preview-container img):
21563         * inspector/front-end/inspector.css:
21564         (.swatch):
21565         (.swatch-inner):
21566         (.swatch-inner:hover):
21567         * inspector/front-end/spectrum.css: Added.
21568         (.spectrum-container):
21569         (.spectrum-top):
21570         (.spectrum-color):
21571         (.spectrum-display-value):
21572         (.spectrum-hue):
21573         (.spectrum-fill):
21574         (.spectrum-range-container):
21575         (.spectrum-range-container *):
21576         (.spectrum-range-container label):
21577         (.spectrum-range-container input):
21578         (.spectrum-dragger, .spectrum-slider):
21579         (.spectrum-sat):
21580         (.spectrum-val):
21581         (.spectrum-dragger):
21582         (.spectrum-slider):
21583         (.spectrum-container .swatch):
21584
21585 2012-11-06  Takashi Sakamoto  <tasak@google.com>
21586
21587         removeAttribute('style') not working in certain circumstances
21588         https://bugs.webkit.org/show_bug.cgi?id=99295
21589
21590         Reviewed by Ryosuke Niwa.
21591
21592         After web developers did style.XXXX=YYYY for some element, the inline
21593         style should be always removable by using "removeAttribute('style')".
21594         Currently it depends on whether web developers invokes
21595         getAttribute('style'), setAttribute('style), and so on. E.g. once they
21596         invoke getAttribute('style'), removeAttribute('style') works. This is
21597         very confusing behavior.
21598         Looking at Firefox browser, removeAttribute('style') always removes
21599         all inline styles.
21600
21601         Test: fast/css/remove-attribute-style.html
21602
21603         * css/StylePropertySet.cpp:
21604         (WebCore::StylePropertySet::clear):
21605         Added a new method to remove all style properties.
21606         (WebCore):
21607         * css/StylePropertySet.h:
21608         (StylePropertySet):
21609         * dom/Element.cpp:
21610         (WebCore::Element::removeAttribute):
21611         If 'style' is given but the element has no style attribute, the old
21612         code did nothing. However, if the element is styled element and has any
21613         inline styles, the inline styles should be removed. So invoke
21614         StyledElement::removeAllInlineStyleProperties and if any inline styles
21615         are removed, invoke style recalc, too.
21616         * dom/StyledElement.cpp:
21617         (WebCore::StyledElement::removeAllInlineStyleProperties):
21618         Added a new method to remove all inline style propeties. If any inline
21619         style is removed, invoke inlineStyleChanged() to force style recalc.
21620         (WebCore):
21621         * dom/StyledElement.h:
21622         (StyledElement):
21623
21624 2012-11-06  Alexei Filippov  <alph@chromium.org>
21625
21626         Web Inspector: dim size bar for expanded item in native memory snapshot grid
21627         https://bugs.webkit.org/show_bug.cgi?id=101062
21628
21629         Reviewed by Yury Semikhatsky.
21630
21631         * inspector/front-end/nativeMemoryProfiler.css:
21632         (.native-snapshot-view .data-grid .expanded div.size-bar):
21633
21634 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21635
21636         [Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing
21637         https://bugs.webkit.org/show_bug.cgi?id=100826
21638
21639         Reviewed by Hajime Morita.
21640
21641         We used isUnknownPseudoElement() for these 3 meanings: 1) the element is a custom pseudo-element (starting with 'x-'),
21642         2) the element is a webkit custom pseudo-element (starting with '-webkit-'), and 3) the element has an unknown type.
21643         We would like to distinguish them when parsing CSSSelector types. Also, we disable using (3) type for using
21644         shadowPseudoId.
21645
21646         In this patch, we allow using WebKitCustomPseudoElement in AuthorShadowRoot, and CustomPseudoElement in
21647         UAShadowRoot. However, we will disable them later.
21648
21649         Test: fast/dom/shadow/shadow-pseudo-id.html
21650
21651         * css/CSSGrammar.y.in: Now we can discard UNKNOWN type. It should not match anything.
21652         * css/CSSParser.cpp:
21653         (WebCore::CSSParser::updateSpecifiersWithElementName):
21654         (WebCore::CSSParser::updateSpecifiers):
21655         * css/CSSParserValues.h:
21656         (WebCore::CSSParserSelector::isCustomPseudoElement):
21657         (CSSParserSelector):
21658         * css/CSSSelector.cpp:
21659         (WebCore::CSSSelector::pseudoId):
21660         (WebCore::CSSSelector::parsePseudoType):
21661         (WebCore::CSSSelector::isCustomPseudoType): Returns true if the type is PseudoUserAgentCustomElement or PseudoWebKitCustomElement.
21662         (WebCore::CSSSelector::extractPseudoType):
21663         * css/CSSSelector.h:
21664         (CSSSelector):
21665         (WebCore::CSSSelector::isCustomPseudoElement):
21666         (WebCore):
21667         * css/CSSSelectorList.cpp:
21668         (WebCore::SelectorHasInvalidSelectorFunctor::operator()): We will reject all selectors which were judged as
21669         UNKNOWN before. i.e. It contians all three types for now.
21670         (WebCore::CSSSelectorList::hasInvalidSelector): Renamed.
21671         * css/CSSSelectorList.h:
21672         (CSSSelectorList):
21673         * css/RuleSet.cpp:
21674         (WebCore::RuleSet::addRule):
21675         * css/SelectorChecker.cpp:
21676         (WebCore::SelectorChecker::checkSelector):
21677         * dom/Element.cpp:
21678         (WebCore::Element::setShadowPseudoId):
21679         * dom/SelectorQuery.cpp:
21680         (WebCore::SelectorQueryCache::add):
21681
21682 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21683
21684         [Shadow] ShadowRoot should know the existence of elements having ElementShadow.
21685         https://bugs.webkit.org/show_bug.cgi?id=100922
21686
21687         Reviewed by Hajime Morita.
21688
21689         We count the elements having ElementShadow in ShadowRoot. This is a prepation patch for to solve Bug 100451.
21690         We have a count-up and count-down login in ShadowRoot::insertedInto and ShadowRoot::removedFrom.
21691
21692         For performance reason, we have a flag that an element should be unregistered in ShadowRoot.
21693
21694         Test: fast/dom/shadow/has-elementshadow.html
21695
21696         * dom/ShadowRoot.cpp:
21697         (WebCore::ShadowRoot::ShadowRoot):
21698         (WebCore::ShadowRoot::insertedInto): Count up the number of elements having ElementShadow. ElementShadow
21699         is created only when the oldest ShadowRoot is created, we only count up only when this ShadowRoot is oldest.
21700         (WebCore):
21701         (WebCore::ShadowRoot::removedFrom): Count down if we used this ShadowRoot for count up.
21702         * dom/ShadowRoot.h:
21703         (ShadowRoot):
21704         (WebCore::ShadowRoot::registerElementShadow):
21705         (WebCore::ShadowRoot::unregisterElementShadow):
21706         (WebCore::ShadowRoot::hasElementShadow):
21707         (WebCore::ShadowRoot::countElementShadow):
21708         * testing/Internals.cpp:
21709         (WebCore::Internals::countElementShadow):
21710         (WebCore):
21711         * testing/Internals.h:
21712         (Internals):
21713         * testing/Internals.idl:
21714
21715 2012-11-06  Pavel Feldman  <pfeldman@chromium.org>
21716
21717         Web Inspector: show "debugging session terminated" message when remote debuggign connection is closed unexpectedly.
21718         https://bugs.webkit.org/show_bug.cgi?id=101030
21719
21720         Reviewed by Vsevolod Vlasov.
21721
21722         * inspector/front-end/inspector.js:
21723         (WebInspector.loaded.WebInspector.socket.onclose):
21724         (WebInspector.loaded):
21725         (WebInspector.detached):
21726
21727 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
21728
21729         Web Inspector: [Overrides] Add Chrome for Android and Firefox for Android user agent strings
21730         https://bugs.webkit.org/show_bug.cgi?id=100666
21731
21732         Reviewed by Pavel Feldman.
21733
21734         * inspector/front-end/SettingsScreen.js:
21735         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
21736
21737 2012-11-02  Yury Semikhatsky  <yurys@chromium.org>
21738
21739         Web Inspector: JavaScript web workers debugging crashes
21740         https://bugs.webkit.org/show_bug.cgi?id=101065
21741
21742         Reviewed by Alexander Pavlov.
21743
21744         Clear m_pageInspector when page inspector instance is deleted.
21745         Disable worker inspection when front-end disconnects.
21746
21747         Test: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
21748
21749         * inspector/InspectorWorkerAgent.cpp:
21750         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): notify
21751         WorkerMessagingProxy so that it can clear pointer to the channel.
21752
21753 2012-11-06  Nikita Vasilyev  <me@elv1s.ru>
21754
21755         Web Inspector: Console: wrap long URLs
21756         https://bugs.webkit.org/show_bug.cgi?id=100970
21757
21758         Reviewed by Yury Semikhatsky.
21759
21760         * inspector/front-end/inspector.css:
21761         (.console-message-url):
21762
21763 2012-11-05  Keishi Hattori  <keishi@webkit.org>
21764
21765         Introduce Day class to calendar picker
21766         https://bugs.webkit.org/show_bug.cgi?id=101194
21767
21768         Reviewed by Kent Tamura.
21769
21770         Introducing Day class so day, week, and month can all be abstracted. To
21771         solve some of the complexity around which months to show, I made
21772         CalendarPicker in charge of it. This also made YearMonthController and
21773         DaysTable independent of each other.
21774
21775         No new tests. Covered by existing calendar-picker-*.html tests.
21776
21777         * Resources/pagepopups/calendarPicker.js:
21778         (createUTCDate): Allow negative month or date.
21779         (parseDateString): Will return Day or Month depending on string format.
21780         (Day): Represents a day.
21781         (Day.parse): Parse yyyy-mm-dd.
21782         (Day.createFromDate): Creates a Day that contains a datetime.
21783         (Day.createFromToday): Creates Day for today. A method with the same name will be added to Week and Month in the future.
21784         (Day.prototype.equals): Returns true if they are the same.
21785         (Day.prototype.previous): Returns the previous day.
21786         (Day.prototype.next): Returns the next day.
21787         (Day.prototype.startDate): Returns the datetime that is the start of this day.
21788         (Day.prototype.endDate): Returns the datetime that is the start of this day.
21789         (Day.prototype.valueOf): Returns the milliseconds since epoch.
21790         (Day.prototype.toString): Returns an ISO date string.
21791         (Month): Fix bug in calculating month from value.
21792         (Month.prototype.endDate): Use Day.Maximum.
21793         (CalendarPicker): Added _currentMonth. yearMonthController and daysTable can be private members now.
21794         (CalendarPicker.prototype._layout):
21795         (CalendarPicker.prototype.handleToday): Use Day.createFromToday.
21796         (CalendarPicker.prototype.shouldShowMonth): Returns true if the month should be shown.
21797         (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.
21798         (CalendarPicker.prototype.currentMonth): Returns the current month that is shown.
21799         (YearMonthController): Removed _currentMonth.
21800         (YearMonthController.prototype.attachTo):
21801         (YearMonthController.prototype.setMonth):
21802         (YearMonthController.prototype._handleYearMonthChange): Use CalendarPicker.showMonth
21803         (YearMonthController.prototype.moveRelatively):
21804         (DaysTable):
21805         (CalendarPicker.prototype._stepMismatch): Made private.
21806         (CalendarPicker.prototype._outOfRange): Made private.
21807         (CalendarPicker.prototype.isValidDate): Take Day or Month instead of milliseconds since epoch.
21808         (DaysTable.prototype._renderMonth):
21809         (DaysTable.prototype.navigateToMonth): Shows a given month. Can use animation and leave the selection position as is.
21810         (DaysTable.prototype.selectRange): Select a range.
21811         (DaysTable.prototype._maybeSetPreviousMonth):
21812         (DaysTable.prototype._maybeSetNextMonth):
21813         (DaysTable.prototype._handleKey):
21814         (CalendarPicker.prototype._handleBodyKeyDown):
21815
21816 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21817
21818         Unreviewed, Adding #if PLATFORM(CHROMIUM) for the fix of
21819         https://bugs.webkit.org/show_bug.cgi?id=101009
21820
21821         This fix requires the most recent version of harfbuzz-ng.
21822         EFL port uses version 0.9.2, which doesn't have the fix.
21823
21824         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21825         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21826
21827 2012-11-05  Glenn Adams  <glenn@skynav.com>
21828
21829         Ensure acquireLineBreakIterator signature consistency on non-ICU ports.
21830         https://bugs.webkit.org/show_bug.cgi?id=101281
21831
21832         Reviewed by Ryosuke Niwa.
21833
21834         Fix (newly) inconsistent signature for acquireLineBreakIterator for non-ICU ports
21835         caused by http://trac.webkit.org/changeset/133529.
21836
21837         See new tests added from https://bugs.webkit.org/show_bug.cgi?id=89235.
21838
21839         * platform/text/TextBreakIterator.cpp:
21840         (WebCore::acquireLineBreakIterator):
21841         * platform/text/gtk/TextBreakIteratorGtk.cpp:
21842         (WebCore::setUpIterator):
21843         (WebCore::acquireLineBreakIterator):
21844         * platform/text/wince/TextBreakIteratorWinCE.cpp:
21845         (WebCore::acquireLineBreakIterator):
21846
21847 2012-11-05  Hayato Ito  <hayato@chromium.org>
21848
21849         Use switch/case statements instead of if/elseif in CSSSelector.cpp
21850         https://bugs.webkit.org/show_bug.cgi?id=100470
21851
21852         Reviewed by Ryosuke Niwa.
21853
21854         Minor clean up. We can get compiler warnings if we use switch/case statements here.
21855
21856         No changes to functionality, so no new tests.
21857
21858         * css/CSSSelector.cpp:
21859         (WebCore::CSSSelector::selectorText):
21860
21861 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21862
21863         [Chromium] Unicode combining diacritical aren't always combined on Linux
21864         https://bugs.webkit.org/show_bug.cgi?id=101009
21865
21866         Reviewed by Kent Tamura.
21867
21868         Add a space character to harfbuzzBuffer as pre-context. This will prevent
21869         harfbuzz from inserting dotted-circle.
21870
21871         Test: fast/text/international/combining-marks-position.html
21872
21873         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21874         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21875
21876 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
21877
21878         LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
21879         https://bugs.webkit.org/show_bug.cgi?id=101201
21880
21881         Reviewed by Hajime Morita.
21882
21883         When we use a bit field for enum, Windows compiler seems returning some wrong value.
21884         We would like to avoid using a bit field for enum value.
21885
21886         * dom/ShadowRoot.cpp:
21887         (WebCore::ShadowRoot::create):
21888         * dom/ShadowRoot.h:
21889         (WebCore::ShadowRoot::type):
21890         (WebCore::ShadowRoot::setType):
21891         (ShadowRoot):
21892
21893 2012-11-05  Benjamin Poulain  <benjamin@webkit.org>
21894
21895         TransformOperationInfo's constructor is really slow
21896         https://bugs.webkit.org/show_bug.cgi?id=101143
21897
21898         Reviewed by Sam Weinig.
21899
21900         TransformOperationInfo() was slow for a few reasons:
21901         -The function used a lot of branches. The basic assumption is that the input
21902          is incorrect, thus every character is an opportunity to fail.
21903         -Every branch had to be tested in order. If the name was matching the last if()
21904          all the previous names had to be tested.
21905         -Since equalIgnoringCase() was used in every branch, it was forcing the case folding
21906          every time.
21907         -When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.
21908
21909         This can be fixed by either
21910         1) Compute the lowercase name, then match it to a HashMap.
21911         2) Write a tree to quickly reduce the number of branch needed.
21912
21913         The first solution is not viable because 16bits strings case folding
21914         remains an important bottleneck.
21915
21916         Instead, the code now splits the names on simple characteristics to
21917         match any name in a limited number of branches.
21918
21919         The assumption is the input is correct, so & is used instead of && to
21920         avoid branches in favor of conditional instructions.
21921
21922         * css/CSSParser.cpp:
21923         (WebCore::TransformOperationInfo::TransformOperationInfo):
21924
21925 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21926
21927         RenderGeometryMap asserts when loading http://en.softonic.com/mac
21928         https://bugs.webkit.org/show_bug.cgi?id=101284
21929         <rdar://problem/11540560>
21930
21931         Reviewed by Tim Horton.
21932
21933         When FrameView::layout() calls document->updateStyleIfNeeded(), we
21934         can be in a state where FrameView::needsLayout() is false. However,
21935         this is a bad time to update compositing layers, because we're about
21936         to do layout, which will require us to update them again soon anyway,
21937         and some RenderLayers may not have been sized or positioned yet.
21938         
21939         Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
21940         and toggling it around this call to updateStyleIfNeeded().
21941         Read this state in updateCompositingLayersAfterStyleChange(), which is
21942         now called unconditionally by recalcStyle(), but returns early
21943         if this flag is set, or layout is pending.
21944
21945         * dom/Document.cpp:
21946         (WebCore::Document::recalcStyle):
21947         * page/FrameView.cpp:
21948         (WebCore::FrameView::reset):
21949         (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
21950         (WebCore::FrameView::layout):
21951         * page/FrameView.h:
21952         (FrameView):
21953
21954 2012-11-05  Beth Dakin  <bdakin@apple.com>
21955
21956         https://bugs.webkit.org/show_bug.cgi?id=101275
21957         Clean up ScrollingConstraints.h
21958
21959         Reviewed by Simon Fraser.
21960
21961         This class cleans up ScrollingConstraints.h by removing the constructors since the 
21962         compiler will generate those constructors for us anyway. The patch also makes the 
21963         two override functions private.
21964         * page/scrolling/ScrollingConstraints.h:
21965         (ViewportConstraints):
21966         (FixedPositionViewportConstraints):
21967         (StickyPositionViewportConstraints):
21968
21969 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21970
21971         Make Document::updateStyleIfNeeded() non-virtual
21972         https://bugs.webkit.org/show_bug.cgi?id=101273
21973
21974         Reviewed by Eric Seidel.
21975
21976         Document::updateStyleIfNeeded() has been virtual like forever, but
21977         no-one ever overrides it, so make it non-virtual.
21978
21979         * dom/Document.h:
21980         (Document):
21981
21982 2012-11-05  Philip Rogers  <pdr@google.com>
21983
21984         Unblock SVG external references
21985         https://bugs.webkit.org/show_bug.cgi?id=100635
21986
21987         Reviewed by Adam Barth.
21988
21989         This patch reverts r132849 and r132869 because the potential XSS issue
21990         turned out to not be an issue after all.
21991
21992         Covered by existing tests, many of which are re-whitelisted with this patch.
21993
21994         * loader/cache/CachedResourceLoader.cpp:
21995         (WebCore::CachedResourceLoader::canRequest):
21996
21997 2012-11-05  Beth Dakin  <bdakin@apple.com>
21998
21999         https://bugs.webkit.org/show_bug.cgi?id=101001
22000         Pages with position:fixed elements should still be able to scroll on 
22001         the scrolling thread
22002         -and corresponding-
22003         <rdar://problem/10857315>
22004
22005         Reviewed by Simon Fraser.
22006
22007         This patch adds two new classes. ScrollingStateFixedNode is a class 
22008         to represent fixed nodes in the state tree, and 
22009         ScrollingTreeFixedNode represents fixed node in the scrolling tree 
22010         over on the scrolling thread.
22011         * WebCore.xcodeproj/project.pbxproj:
22012
22013         When we are (non-programatically) scrolling fixed objects on the 
22014         scrolling thread, we do not want to do any work here. 
22015         * page/FrameView.cpp:
22016         (WebCore::FrameView::updateFixedElementsAfterScrolling):
22017
22018         Whenever we sync the position of the main frame's layer, we have to 
22019         do the same for scrolling tree children.
22020         * page/scrolling/ScrollingCoordinator.cpp:
22021         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
22022
22023         New ScrollingNodeType -- FixedNode, yay! And two new functions 
22024         specific to dealing with FixedNodes.
22025         * page/scrolling/ScrollingCoordinator.h:
22026         (WebCore::ScrollingCoordinator::updateViewportConstrainedNode):
22027         (WebCore::ScrollingCoordinator::syncChildPositions):
22028
22029         This is the new class that represents fixed nodes in the state tree. 
22030         All of the changed properties are stored within 
22031         FixedPositionViewportConstraints.
22032         * page/scrolling/ScrollingStateFixedNode.cpp: Added.
22033         (WebCore):
22034         (WebCore::ScrollingStateFixedNode::create):
22035         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
22036         (WebCore::ScrollingStateFixedNode::~ScrollingStateFixedNode):
22037         (WebCore::ScrollingStateFixedNode::updateConstraints):
22038         (WebCore::ScrollingStateFixedNode::dumpProperties):
22039         * page/scrolling/ScrollingStateFixedNode.h: Added.
22040         (WebCore):
22041         (ScrollingStateFixedNode):
22042         (WebCore::ScrollingStateFixedNode::viewportConstraints):
22043         (WebCore::toScrollingStateFixedNode):
22044
22045         Make sure to create the right type of clone for each node.
22046         * page/scrolling/ScrollingStateNode.cpp:
22047         (WebCore::ScrollingStateNode::cloneAndReset):
22048
22049         Now that m_children may be anything other than null, I found this 
22050         bug. We encounter it when the parameter to removeChild is this and we 
22051         want to remove all of our children. In that case, this is obviously 
22052         not found in its own child array.
22053         (WebCore::ScrollingStateNode::removeChild):
22054
22055         ScrollingStateNode now caches the GraphicsLayer in addition to the 
22056         PlatformLayer. This will allow us to sync the GraphicsLayer position 
22057         at the appropriate times.
22058         * page/scrolling/ScrollingStateNode.h:
22059         (WebCore::ScrollingStateNode::isScrollingStateFixedNode):
22060         (WebCore::ScrollingStateNode::graphicsLayer):
22061         (ScrollingStateNode):
22062
22063         Handle fixed nodes.
22064         * page/scrolling/ScrollingTree.cpp:
22065         (WebCore::ScrollingTree::updateTreeFromStateNode):
22066
22067         New function parentScrollPositionDidChange() is called on children 
22068         when the parent has scrolled.
22069         * page/scrolling/ScrollingTreeNode.h:
22070         (ScrollingTreeNode):
22071         * page/scrolling/ScrollingTreeScrollingNode.h:
22072         (ScrollingTreeScrollingNode):
22073
22074         Return true for supportsFixedPositionLayers(). 
22075         * page/scrolling/mac/ScrollingCoordinatorMac.h:
22076         (ScrollingCoordinatorMac):
22077
22078         Handle fixed nodes.
22079         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
22080         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
22081
22082         Now that m_children can be non-null I caught this pre-existing bug 
22083         where we would come times remove a node without updating the HashMap. 
22084         This patch fixes that by consolidating the removal into one function.
22085         (WebCore::ScrollingCoordinatorMac::removeNode):
22086         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
22087         (WebCore::ScrollingCoordinatorMac::clearStateTree):
22088
22089         Update the GraphicsLayers to reflect the new position that the 
22090         Scrolling thread has moved the underlying CALayer to already.
22091         (WebCore::ScrollingCoordinatorMac::syncChildPositions):
22092
22093         Pass new constraints over to the appropriate state node.
22094         (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
22095
22096         Cache the GraphicsLayer in addition to the PlatformLayer.
22097         * page/scrolling/mac/ScrollingStateNodeMac.mm:
22098         (WebCore::ScrollingStateNode::setScrollLayer):
22099
22100         Here is the new class that represents fixed nodes over on the 
22101         scrolling thread. 
22102         * page/scrolling/mac/ScrollingTreeFixedNode.h: Added.
22103         (WebCore):
22104         (ScrollingTreeFixedNode):
22105         * page/scrolling/mac/ScrollingTreeFixedNode.mm: Added.
22106         (WebCore):
22107         (WebCore::ScrollingTreeFixedNode::create):
22108         (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
22109         (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
22110         (WebCore::ScrollingTreeFixedNode::update):
22111
22112         This is where the magic happens. re-position the fixed object when 
22113         its parent has scrolled so that it appears to have not moved at all.
22114         (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
22115
22116         Whenever we change the position of a scrolling layer, tell our 
22117         children.
22118         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
22119         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
22120
22121         Handle fixed nodes.
22122         * rendering/RenderLayerBacking.cpp:
22123         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
22124
22125         detachFromScrollingCoordinator() needs to be public so that it can be 
22126         called from RenderLayerCompositor for fixed nodes.
22127         * rendering/RenderLayerBacking.h:
22128         (RenderLayerBacking):
22129
22130         RenderLayerCompositor takes control of attaching and detaching fixed 
22131         nodes to/from the ScrollingCoordinator. 
22132         * rendering/RenderLayerCompositor.cpp:
22133         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
22134         (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
22135         (WebCore::RenderLayerCompositor::updateBacking):
22136         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
22137         (WebCore::RenderLayerCompositor::didMoveOnscreen):
22138         (WebCore::RenderLayerCompositor::willMoveOffscreen):
22139         (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
22140         (WebCore::isRootmostFixedOrStickyLayer):
22141         (WebCore):
22142         (WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
22143         (WebCore::RenderLayerCompositor::addViewportConstrainedLayer):
22144         (WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
22145         (WebCore::RenderLayerCompositor::computeViewportConstraints):
22146         (WebCore::nearestScrollingCoordinatorAncestor):
22147         (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
22148         (WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
22149         (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
22150         (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
22151         * rendering/RenderLayerCompositor.h:
22152         (WebCore):
22153         (RenderLayerCompositor):
22154
22155 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
22156
22157         Cleaned up the Font class in preparation for optimizing kerning and ligatures
22158         https://bugs.webkit.org/show_bug.cgi?id=101258
22159
22160         Reviewed by Dan Bernstein.
22161
22162         * platform/graphics/Font.h:
22163         (WebCore::Font::typesettingFeatures):
22164         (WebCore::Font::computeTypesettingFeatures): Compute and cache our
22165         typesetting features instead of recomputing each time a client asks
22166         for them. This makes the class interface easier to use because
22167         "typesettingFeatures()" can appear in more than one expression without
22168         undue performance cost. This may also be a small speedup to code that
22169         calls typesettingFeatures() often for other reasons.
22170
22171         * platform/graphics/Font.cpp:
22172         (WebCore::Font::Font):
22173         (WebCore::Font::operator=):
22174         (WebCore::Font::update): Ditto.
22175
22176         (WebCore::Font::width): Unforked the width() function so all width-related
22177         interfaces can benefit from optimization without duplicate code.
22178
22179 2012-11-05  Peng Huang  <penghuang@google.com>
22180
22181         Webkit does not handle some media keys correctly On Linux gtk platform.
22182         https://bugs.webkit.org/show_bug.cgi?id=101221
22183
22184         Reviewed by Alexey Proskuryakov.
22185
22186         Add media keyboard support on Linux gtk platform.
22187
22188         * platform/chromium/KeyCodeConversionGtk.cpp:
22189         (WebCore::windowsKeyCodeForKeyEvent):
22190
22191 2012-11-05  Glenn Adams  <glenn@skynav.com>
22192
22193         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
22194         https://bugs.webkit.org/show_bug.cgi?id=89235
22195
22196         Reviewed by Eric Seidel.
22197
22198         See also wiki documentation at:
22199         [1] http://trac.webkit.org/wiki/LineBreaking
22200         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
22201
22202         Web exposed changes include:
22203         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
22204         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
22205         (3) See [2] above for details regarding interpretation.
22206
22207         Tests: css3/line-break/line-break-auto-centered.html
22208                css3/line-break/line-break-auto-half-kana.html
22209                css3/line-break/line-break-auto-hyphens.html
22210                css3/line-break/line-break-auto-inseparables.html
22211                css3/line-break/line-break-auto-iteration-marks.html
22212                css3/line-break/line-break-auto-postfixes.html
22213                css3/line-break/line-break-auto-prefixes.html
22214                css3/line-break/line-break-auto-sound-marks.html
22215                css3/line-break/line-break-loose-centered.html
22216                css3/line-break/line-break-loose-half-kana.html
22217                css3/line-break/line-break-loose-hyphens.html
22218                css3/line-break/line-break-loose-inseparables.html
22219                css3/line-break/line-break-loose-iteration-marks.html
22220                css3/line-break/line-break-loose-postfixes.html
22221                css3/line-break/line-break-loose-prefixes.html
22222                css3/line-break/line-break-loose-sound-marks.html
22223                css3/line-break/line-break-normal-centered.html
22224                css3/line-break/line-break-normal-half-kana.html
22225                css3/line-break/line-break-normal-hyphens.html
22226                css3/line-break/line-break-normal-inseparables.html
22227                css3/line-break/line-break-normal-iteration-marks.html
22228                css3/line-break/line-break-normal-postfixes.html
22229                css3/line-break/line-break-normal-prefixes.html
22230                css3/line-break/line-break-normal-sound-marks.html
22231                css3/line-break/line-break-strict-centered.html
22232                css3/line-break/line-break-strict-half-kana.html
22233                css3/line-break/line-break-strict-hyphens.html
22234                css3/line-break/line-break-strict-inseparables.html
22235                css3/line-break/line-break-strict-iteration-marks.html
22236                css3/line-break/line-break-strict-postfixes.html
22237                css3/line-break/line-break-strict-prefixes.html
22238                css3/line-break/line-break-strict-sound-marks.html
22239
22240         * platform/text/LineBreakIteratorPoolICU.h:
22241         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
22242         Add static function to construct ICU locale argument (also used as pool key) with additional
22243         break keyword.
22244         (WebCore::LineBreakIteratorPool::take):
22245         (WebCore::LineBreakIteratorPool::put):
22246         (LineBreakIteratorPool):
22247         Remove direct dependency from ICU library (and types), moving that dependency into
22248         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
22249         Update to take line break mode into account.
22250         Create (and cache) different break iterators depending on line break mode (in addition to locale),
22251         which entails expanding pool entry key format to optionally append "@break=" +
22252         "loose"|"normal"|"strict" keyword to locale string.
22253
22254         * platform/text/TextBreakIterator.h:
22255         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
22256         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
22257         (WebCore::LazyLineBreakIterator::get):
22258         (WebCore::LazyLineBreakIterator::reset):
22259         (LazyLineBreakIterator):
22260         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
22261         Add state member to indicate line break mode.
22262
22263         * platform/text/TextBreakIteratorICU.cpp:
22264         (WebCore::acquireLineBreakIterator):
22265         Use new line break mode when making iterator from pool.
22266         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
22267         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22268         (WebCore::releaseLineBreakIterator):
22269         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
22270         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22271         (WebCore::isCJKLocale):
22272         New functions for determining if CJK rules apply.
22273         (WebCore::openLineBreakIterator):
22274         New function for abstracting opening of ICU style line break iterator. This is now
22275         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22276         This function also takes into account the line break mode.
22277         (WebCore::closeLineBreakIterator):
22278         (WebCore::mapLineIteratorModeToRules):
22279         New function for abstracting closing of ICU style line break iterator. This is now
22280         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22281
22282         * rendering/RenderBlockLineLayout.cpp:
22283         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
22284         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
22285         Add looseMode local variable to prevent need for computing under isBreakable().
22286
22287         * rendering/RenderText.cpp:
22288         (WebCore::mapLineBreakToIteratorMode):
22289         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22290         and RenderBlock::LineBreaker::nextLineBreak.
22291         (WebCore::RenderText::computePreferredLogicalWidths):
22292         Ensure (lazy line) breakIterator is initialized for line break mode.
22293         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
22294
22295         * rendering/RenderText.h:
22296         (WebCore):
22297         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22298         and RenderBlock::LineBreaker::nextLineBreak.
22299
22300         * rendering/break_lines.cpp:
22301         (WebCore):
22302         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
22303         to include loose mode parameter.
22304         (WebCore::isBreakableSpace):
22305         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22306         accessor method on each invocation. Use new loose mode flavors off NBP functions.
22307         (WebCore::needsLineBreakIterator):
22308         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
22309         to prevent regression to non loose mode path.
22310         (WebCore::nextBreakablePosition):
22311         (WebCore::nextBreakablePositionIgnoringNBSP):
22312         Use new template parameter enums described above.
22313         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
22314         (WebCore::nextBreakablePositionLoose):
22315         Introduce two additional 'loose' mode flavors of NBP template expansions.
22316
22317         * rendering/break_lines.h:
22318         (WebCore):
22319         (WebCore::isBreakable):
22320         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22321         accessor method on each invocation.
22322
22323 2012-11-05  Adam Barth  <abarth@webkit.org>
22324
22325         webkitRegionLayoutUpdate is incorrectly named
22326         https://bugs.webkit.org/show_bug.cgi?id=100335
22327
22328         Reviewed by Ojan Vafai.
22329
22330         DOM event names are supposed to be lower case.
22331
22332         * dom/EventNames.h:
22333         (WebCore):
22334         * dom/WebKitNamedFlow.cpp:
22335         (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
22336
22337 2012-11-05  Adam Barth  <abarth@webkit.org>
22338
22339         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
22340         https://bugs.webkit.org/show_bug.cgi?id=101110
22341
22342         Reviewed by Kentaro Hara.
22343
22344         This patch generalizes our support for storing wrappers in DOM objects
22345         to be usable for more than just nodes. After this patch, any object
22346         with a ScriptWrappable base class will have its wrapper stored inline
22347         in the object in the main world.
22348
22349         To achieve this goal, this patch hides the details of how we map from
22350         objects to wrappers inside DOMDataStore and then removes the
22351         IntrusiveDOMWrapperMap class entirely. This approach lets us remove the
22352         DOMWrapperMap base class and make all of these functions non-virtual.
22353
22354         * UseV8.cmake:
22355         * WebCore.gypi:
22356             - Remove deleted files.
22357         * bindings/scripts/CodeGeneratorV8.pm:
22358         (GenerateHeader):
22359         (GenerateNormalAttrGetter):
22360         (GenerateConstructorCallback):
22361         (GenerateNamedConstructorCallback):
22362         (GenerateToV8Converters):
22363             - Rather than grabbing at the DOMWrapperMap directly, we now ask
22364               the DOMDataStore to do this work for us.
22365         * bindings/scripts/test/V8/V8Float64Array.h:
22366         (WebCore::V8Float64Array::wrap):
22367         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
22368         (WebCore::V8TestActiveDOMObject::wrap):
22369         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
22370         (WebCore::V8TestCustomNamedGetter::wrap):
22371         * bindings/scripts/test/V8/V8TestEventConstructor.h:
22372         (WebCore::V8TestEventConstructor::wrap):
22373         * bindings/scripts/test/V8/V8TestEventTarget.h:
22374         (WebCore::V8TestEventTarget::wrap):
22375         * bindings/scripts/test/V8/V8TestException.h:
22376         (WebCore::V8TestException::wrap):
22377         * bindings/scripts/test/V8/V8TestInterface.h:
22378         (WebCore::V8TestInterface::wrap):
22379         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
22380         (WebCore::V8TestMediaQueryListListener::wrap):
22381         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
22382         (WebCore::V8TestNamedConstructor::wrap):
22383         * bindings/scripts/test/V8/V8TestNode.cpp:
22384         (WebCore::V8TestNode::constructorCallback):
22385         (WebCore::V8TestNode::wrapSlow):
22386         * bindings/scripts/test/V8/V8TestObj.cpp:
22387         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
22388         * bindings/scripts/test/V8/V8TestObj.h:
22389         (WebCore::V8TestObj::wrap):
22390         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
22391         (WebCore::V8TestSerializedScriptValueInterface::wrap):
22392         * bindings/v8/DOMDataStore.cpp:
22393             - Updated run-bindings-test results.
22394         (WebCore::DOMDataStore::DOMDataStore):
22395         (WebCore::DOMDataStore::~DOMDataStore):
22396             - Simplify constructor and destructor now that there is only one
22397               hash map.
22398         (WebCore::DOMDataStore::current):
22399             - Now that V8DOMMap.cpp doesn't handle the null isolate case, we
22400               need to handle it here.
22401         (WebCore::DOMDataStore::reportMemoryUsage):
22402             - Simplfied now that there is only one wrapper map.
22403         (WebCore::DOMDataStore::weakCallback):
22404             - Moved from IntrusiveDOMWrapperMap.h
22405         * bindings/v8/DOMDataStore.h:
22406         (WebCore::DOMDataStore::get):
22407         (WebCore::DOMDataStore::set):
22408             - These functions now handle the intrusive case with a branch
22409               rather than with a virtual function call. In many cases, the
22410               branch can be optimized away by the compiler when the overloaded
22411               inline functions are inlined.
22412         (WebCore::DOMDataStore::wrapperIsStoredInObject):
22413             - Overloaded functions to determine whether to store the wrapper
22414               inside the object or in the hashmap.
22415         (WebCore::DOMDataStore::getWrapperFromObject):
22416         (WebCore::DOMDataStore::storeWrapperInObject):
22417             - Overloaded functions to get/set the wrapper from inside the
22418               object itself.
22419         * bindings/v8/DOMWrapperMap.h:
22420         (WebCore::DOMWrapperHashMap::get):
22421         (WebCore::DOMWrapperHashMap::set):
22422         (WebCore::DOMWrapperHashMap::clear):
22423         (WebCore::DOMWrapperHashMap::reportMemoryUsage):
22424         (WebCore::DOMWrapperHashMap::remove):
22425             - These functions are no longer virtual.
22426         * bindings/v8/DOMWrapperWorld.h:
22427         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
22428         * bindings/v8/ScriptProfiler.cpp:
22429         * bindings/v8/SerializedScriptValue.cpp:
22430         (WebCore::neuterBinding):
22431             - We need to keep the type information slightly longer so that we
22432               look in the right wrapper map.
22433         * bindings/v8/V8DOMMap.cpp: Removed.
22434         * bindings/v8/V8DOMMap.h: Removed.
22435         * bindings/v8/V8DOMWindowShell.cpp:
22436         * bindings/v8/V8DOMWrapper.cpp:
22437         * bindings/v8/V8DOMWrapper.h:
22438         (WebCore::V8DOMWrapper::getCachedWrapper):
22439             - Defer this work to the store.
22440         (WebCore::V8DOMWrapper::setWrapperClass):
22441             - An overloaded function to set the right wrapper class.
22442         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
22443             - This function is now general enough to handle ever kind of object.
22444         * bindings/v8/V8GCController.cpp:
22445         * bindings/v8/V8NPObject.cpp:
22446         * bindings/v8/WorkerContextExecutionProxy.cpp:
22447         * bindings/v8/WorkerScriptController.cpp:
22448         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
22449         (WebCore::v8HTMLImageElementConstructorCallback):
22450             - Call the more general function (instead of the now-deleted specialized function).
22451
22452 2012-11-05  Alexey Proskuryakov  <ap@apple.com>
22453
22454         Get rid of setCookieStoragePrivateBrowsingEnabled.
22455         https://bugs.webkit.org/show_bug.cgi?id=101247
22456
22457         Reviewed by Brady Eidson.
22458
22459         We were only doing anything here on Mac, and only because we couldn't know if
22460         sessions were in use. But sessions are always in use, and those obsolete changing
22461         cookie storage explicitly.
22462
22463         * platform/network/win/CookieStorageWin.cpp: Removed.
22464         * PlatformWinCE.cmake:
22465         * WebCore.gypi:
22466         No more CookieStorageWin.cpp with an empty implementation.
22467     
22468         * WebCore.exp.in:
22469         * platform/mac/WebCoreSystemInterface.h:
22470         * platform/mac/WebCoreSystemInterface.mm:
22471         We no longer need this WKSI function.
22472
22473         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled):
22474         Removed the only call to setCookieStoragePrivateBrowsingEnabled().
22475
22476         * platform/network/CookieStorage.h:
22477         * platform/network/cf/CookieStorageCFNet.cpp:
22478         * platform/network/curl/CookieJarCurl.cpp:
22479         * platform/network/soup/CookieStorageSoup.cpp:
22480         * platform/qt/TemporaryLinkStubsQt.cpp:
22481         Removed empty setCookieStoragePrivateBrowsingEnabled implementations.
22482
22483         * platform/network/mac/CookieStorageMac.mm: This function used to have a FIXME
22484         that we should observe private storage while in private browsing mode. I don't think
22485         that it was correct - Safari doesn't display content of private storage, and thus
22486         doesn't need to know about changes.
22487         The removal of this function has an effect on WebKit1 clients that enable private
22488         browsing. We used to globally change cookie storage, even for loads not initiated
22489         by WebKit. Now we match API description: "If private browsing is enabled, WebKit
22490         will not store information about sites the user visits."
22491
22492 2012-11-05  Florin Malita  <fmalita@chromium.org>
22493
22494         Crash when mixing layers, foreignObjects and SVG hidden containers
22495         https://bugs.webkit.org/show_bug.cgi?id=87297
22496
22497         Reviewed by Dirk Schulze.
22498
22499         Foreign objects may introduce content which requires layers, but layer creation is
22500         suppressed within RenderSVGHiddenContainer subtrees and this yields an inconsistent render
22501         tree state. This patch prevents foreignObject renderer instantiation under
22502         RenderSVGHiddenContainers.
22503
22504         Test: svg/foreignObject/foreign-object-defs-crash.svg
22505
22506         * svg/SVGForeignObjectElement.cpp:
22507         (WebCore::SVGForeignObjectElement::rendererIsNeeded):
22508         (WebCore):
22509         * svg/SVGForeignObjectElement.h:
22510         (SVGForeignObjectElement):
22511
22512 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22513
22514         Remove the unused m_fixedPositionedElements from RenderView
22515         https://bugs.webkit.org/show_bug.cgi?id=101251
22516
22517         Reviewed by Anders Carlsson.
22518
22519         m_fixedPositionedElements was completely unused. Remove it
22520         and the related typedef.
22521
22522         * rendering/RenderView.h:
22523         (RenderView):
22524
22525 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22526
22527         Fix layer borders to cleaning appear and disappear on switching
22528         https://bugs.webkit.org/show_bug.cgi?id=101136
22529
22530         Reviewed by Sam Weinig.
22531
22532         GraphicsLayers decided whether to show layer borders based
22533         on a callback through the GraphicsLayerClient. This made it
22534         hard to manage state, resulting in a failure to cleanly
22535         hide layers when toggled off via the preference.
22536         
22537         Changed the layer border and repaint counter visibility to be bits
22538         stored on GraphicsLayer just like other properties, with getters
22539         and setters. RenderLayerBacking now updates these debug
22540         indicators when we update other compositing layer properties.
22541         
22542         In GraphicsLayerCA, avoid calling updateDebugIndicators() explicitly
22543         in several places by setting the change flag DebugIndicatorsChanged
22544         for properties whose values affect the appearance of the debug border.
22545
22546         Removed the GraphicsLayerClient methods showDebugBorders() and
22547         showRepaintCounter() which are no longer required.
22548
22549         * platform/graphics/GraphicsLayer.cpp:
22550         (WebCore::GraphicsLayer::GraphicsLayer):
22551         (WebCore::GraphicsLayer::updateDebugIndicators):
22552         * platform/graphics/GraphicsLayer.h:
22553         (WebCore::GraphicsLayer::setShowDebugBorder):
22554         (WebCore::GraphicsLayer::isShowingDebugBorder):
22555         (WebCore::GraphicsLayer::setShowRepaintCounter):
22556         (WebCore::GraphicsLayer::isShowingRepaintCounter):
22557         (WebCore::GraphicsLayer::repaintCount):
22558         (WebCore::GraphicsLayer::incrementRepaintCount):
22559         * platform/graphics/GraphicsLayerClient.h:
22560         * platform/graphics/ca/GraphicsLayerCA.cpp:
22561         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
22562         (WebCore::GraphicsLayerCA::setMasksToBounds):
22563         (WebCore::GraphicsLayerCA::setDrawsContent):
22564         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
22565         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
22566         (WebCore::GraphicsLayerCA::updateMasksToBounds):
22567         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
22568         (WebCore::GraphicsLayerCA::updateDebugBorder):
22569         (WebCore::GraphicsLayerCA::setShowDebugBorder):
22570         (WebCore::GraphicsLayerCA::setShowRepaintCounter):
22571         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
22572         (WebCore::GraphicsLayerCA::setupContentsLayer):
22573         (WebCore::GraphicsLayerCA::cloneLayer):
22574         * platform/graphics/ca/GraphicsLayerCA.h:
22575         (GraphicsLayerCA):
22576         (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders):
22577         * rendering/RenderLayerBacking.cpp:
22578         (WebCore::RenderLayerBacking::updateDebugIndicators):
22579         * rendering/RenderLayerBacking.h:
22580         (RenderLayerBacking):
22581         * rendering/RenderLayerCompositor.cpp:
22582         (WebCore::RenderLayerCompositor::updateBacking):
22583         * rendering/RenderLayerCompositor.h:
22584         (RenderLayerCompositor):
22585
22586 2012-11-05  Genevieve Mak  <gmak@rim.com>
22587
22588         [BLACKBERRY] Update touch code to reflect touch refactor
22589         https://bugs.webkit.org/show_bug.cgi?id=101227
22590
22591         Reviewed by Rob Buis.
22592
22593         PR #2706785
22594         Reviewed Internally by: Mike Lattanzio
22595
22596         * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
22597         (WebCore::touchEventType):
22598         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
22599
22600 2012-11-05  Alok Priyadarshi  <alokp@chromium.org>
22601
22602         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
22603         https://bugs.webkit.org/show_bug.cgi?id=99083
22604
22605         Reviewed by Stephen White.
22606
22607         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
22608
22609         No new tests needed. This patch does not change anything functionally.
22610
22611         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
22612         (WebCore::GraphicsLayerChromium::setContentsOpaque):
22613         (WebCore::GraphicsLayerChromium::paint):
22614         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
22615         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
22616         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
22617         (OpaqueRectTrackingContentLayerDelegate):
22618
22619 2012-11-05  Stephen White  <senorblanco@chromium.org>
22620
22621         [chromium] Build fix after http://trac.webkit.org/changeset/133488.
22622         Removed a deleted file.  Unreviewed.
22623
22624         * WebCore.gypi:
22625
22626 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22627
22628         [V8] toV8(impl) should return null if impl is 0
22629         https://bugs.webkit.org/show_bug.cgi?id=101206
22630
22631         Reviewed by Adam Barth.
22632
22633         toV8(impl) should return null if impl is 0. However,
22634         V8HTMLCollection::toV8() does not have the null check.
22635         All other toV8()s return null.
22636
22637         No tests. I think there will be no call path that hits the change.
22638
22639         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
22640         (WebCore::toV8):
22641
22642 2012-11-05  David Barton  <dbarton@mathscribe.com>
22643
22644         Implement SimpleFontData::platformBoundsForGlyph on skia
22645         https://bugs.webkit.org/show_bug.cgi?id=101115
22646
22647         Reviewed by Eric Seidel.
22648
22649         The implementation is similar to SimpleFontData::platformWidthForGlyph on skia.
22650
22651         Tested by: fast/block/lineboxcontain/*glyphs*, mathml/presentation/*
22652
22653         * platform/graphics/skia/SimpleFontDataSkia.cpp:
22654         (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
22655
22656 2012-11-05  Andreas Kling  <kling@webkit.org>
22657
22658         Decouple Attr logic from ElementAttributeData.
22659         <http://webkit.org/b/101126>
22660
22661         Reviewed by Antti Koivisto.
22662
22663         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
22664         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
22665         can be shared by any number of Elements at a given time.
22666
22667         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
22668         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
22669
22670         * dom/Element.h:
22671         * dom/ElementAttributeData.h:
22672         * dom/Element.cpp:
22673         (WebCore::attrNodeListMap):
22674         (WebCore::attrNodeListForElement):
22675         (WebCore::ensureAttrNodeListForElement):
22676         (WebCore::removeAttrNodeListForElement):
22677         (WebCore::findAttrNodeInList):
22678         (WebCore::Element::~Element):
22679         (WebCore::Element::detachAttribute):
22680         (WebCore::Element::setAttributeNode):
22681         (WebCore::Element::removeAttributeInternal):
22682         (WebCore::Element::getAttributeNode):
22683         (WebCore::Element::getAttributeNodeNS):
22684         (WebCore::Element::normalizeAttributes):
22685         (WebCore::Element::attrIfExists):
22686         (WebCore::Element::ensureAttr):
22687         (WebCore::Element::detachAttrNodeFromElementWithValue):
22688         (WebCore::Element::detachAllAttrNodesFromElement):
22689         (WebCore::Element::cloneAttributesFromElement):
22690
22691             Move everything Attr-related into Element.cpp while simplifying some loops and remove
22692             conditions that are no longer needed as they used to depend on having an attributeData().
22693
22694         * dom/Node.h:
22695         (WebCore::Node::hasSyntheticAttrChildNodes):
22696         (WebCore::Node::setHasSyntheticAttrChildNodes):
22697
22698             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
22699
22700         * dom/Attr.cpp:
22701         (WebCore::Attr::detachFromElementWithValue):
22702
22703             Remove awkward indirection and let the call site deal with removing the Attr node from
22704             the Element's list of Attr nodes.
22705
22706         * dom/ElementAttributeData.cpp:
22707         (WebCore::ElementAttributeData::clearAttributes):
22708
22709             Remove now-unused Element* argument.
22710
22711 2012-11-05  Hans Muller  <hmuller@adobe.com>
22712
22713         [CSS Exclusions] Polygon edges should span colinear vertices
22714         https://bugs.webkit.org/show_bug.cgi?id=99343
22715
22716         Reviewed by Dirk Schulze.
22717
22718         ExclusionPolygonEdges now span coincident and collinear vertices. Currently
22719         pairs of vertices are only considered coincident if their coordinates are exactly
22720         equal. Similarly, a vertex is only considered collinear with an edge if the area
22721         of the triangle defined by the three vertices is exactly zero.  In the future it
22722         may be useful to relax the comparison with zero.
22723
22724         Tests: fast/exclusions/shape-inside/shape-inside-coincident-vertices.html
22725                fast/exclusions/shape-inside/shape-inside-collinear-vertices.html
22726
22727         * rendering/ExclusionPolygon.cpp:
22728         (WebCore::determinant): Used to measure collinearity.
22729         (WebCore):
22730         (WebCore::areCollinearPoints): True if three FloatPoint arguments are collinear per the test outlined above.
22731         (WebCore::areCoincidentPoints): True if the two FloatPoint arguments are equal.
22732         (WebCore::nextVertexIndex): The next vertex index in clockwise or counterclockwise order.
22733         (WebCore::ExclusionPolygon::findNextEdgeVertexIndex): Return the index of the next non-coincident, non-collinear vertex.
22734         (WebCore::ExclusionPolygon::ExclusionPolygon): Skip coincident and collinear vertices when building the list of edges.
22735         * rendering/ExclusionPolygon.h: Added private findNextEdgeVertexIndex() declaration.
22736
22737 2012-11-05  Christophe Dumez  <christophe.dumez@intel.com>
22738
22739         [EFL] Use POSIX implementation of SharedBuffer::createWithContentsOfFile()
22740         https://bugs.webkit.org/show_bug.cgi?id=101228
22741
22742         Reviewed by Kenneth Rohde Christiansen.
22743
22744         Get rid of EFL-specific implementation of SharedBuffer::createWithContentsOfFile()
22745         and reuse the POSIX one since it is pretty much the same.
22746
22747         No new tests, no behavior change.
22748
22749         * PlatformEfl.cmake:
22750         * platform/efl/SharedBufferEfl.cpp: Removed.
22751
22752 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22753
22754         Add a comment about a return value of IDBKey::toV8()
22755         https://bugs.webkit.org/show_bug.cgi?id=101212
22756
22757         Reviewed by Adam Barth.
22758
22759         Although all other toV8(impl) return null when impl is 0,
22760         IDBKey::toV8(impl) is expected to return undefined when impl is 0.
22761         This patch adds a comment about it.
22762
22763         No tests.
22764
22765         * bindings/js/JSIDBKeyCustom.cpp:
22766         (WebCore::toJS):
22767         * bindings/v8/custom/V8IDBKeyCustom.cpp:
22768         (WebCore::toV8):
22769
22770 2012-11-05  Dominik Röttsches  <dominik.rottsches@intel.com>
22771
22772         [Cairo] Make Cairo honor image orientation
22773         https://bugs.webkit.org/show_bug.cgi?id=101207
22774
22775         Reviewed by Kenneth Rohde Christiansen.
22776
22777         Implement transformed image drawing in BitmapImageCairo, similar
22778         as it was done for Skia in bug 100179, r132384.
22779         The image drawing code needs to transform the graphics context
22780         depending on exif orientation in order for this to work.
22781
22782         No new tests, covered by fast/images/exif-* which are passing now.
22783
22784         * platform/graphics/BitmapImage.h: Enable draw function which respects image orientation for Cairo.
22785         * platform/graphics/cairo/BitmapImageCairo.cpp:
22786         (WebCore::BitmapImage::draw): Apply ImageOrientation's transformFromDefault() transformation to context.
22787         (WebCore):
22788
22789 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22790
22791         [V8] Dispose() and Clear() should be always coupled for safety
22792         https://bugs.webkit.org/show_bug.cgi?id=101191
22793
22794         Reviewed by Adam Barth.
22795
22796         Clear() is not mandatory. However, to avoid misusing already
22797         disposed wrappers, Clear() should be always called just
22798         after Dispose().
22799
22800         No tests. No change in behavior.
22801
22802         * bindings/v8/DOMWrapperMap.h:
22803         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
22804         * bindings/v8/IntrusiveDOMWrapperMap.h:
22805         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
22806         * bindings/v8/NPV8Object.cpp:
22807         (WebCore::freeV8NPObject):
22808         * bindings/v8/ScheduledAction.cpp:
22809         (WebCore::ScheduledAction::~ScheduledAction):
22810         * bindings/v8/V8NPObject.cpp:
22811         (WebCore::V8NPTemplateMap::dispose):
22812         (WebCore::weakNPObjectCallback):
22813         (WebCore::forgetV8ObjectForNPObject):
22814         * bindings/v8/V8PerContextData.cpp:
22815         (WebCore::V8PerContextData::dispose):
22816         * bindings/v8/V8ValueCache.cpp:
22817         (WebCore::cachedStringCallback):
22818         (WebCore::IntegerCache::~IntegerCache):
22819         * bindings/v8/custom/V8InjectedScriptManager.cpp:
22820         (WebCore::WeakReferenceCallback):
22821
22822 2012-11-05  Hans Muller  <hmuller@adobe.com>
22823
22824         [CSS Exclusions] Layout of the first shape-inside line can be incorrect
22825         https://bugs.webkit.org/show_bug.cgi?id=100996
22826
22827         Reviewed by Dirk Schulze.
22828
22829         Made the conversion from floating point top/bottom logical shape bounds coordinates
22830         LayoutUnits explicit and corrected the case where the top value was truncated.  A
22831         float logicalTop value is converted to LayoutUnit with fromFloatCeil() to ensure
22832         that the LayoutUnit value is within the shape.
22833         
22834         Test: fast/exclusions/shape-inside/shape-inside-shape-logical-top.html
22835
22836         * rendering/ExclusionShapeInsideInfo.h:
22837         (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Redefined this method in terms of shapeLogicalBoundsY,Max().
22838         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):  Ditto.
22839         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):  Ditto.
22840         (ExclusionShapeInsideInfo):
22841         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsY): Explicit conversion from floating point shape coordinates to LayoutUnits.
22842         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsMaxY): Ditto.
22843
22844 2012-11-05  Antti Koivisto  <antti@apple.com>
22845
22846         Protect against resource deletion during iteration in MemoryCache::pruneDeadResourcesToSize
22847         https://bugs.webkit.org/show_bug.cgi?id=101211
22848
22849         Reviewed by Andreas Kling.
22850         
22851         Some crashes have been seen under MemoryCache::pruneDeadResourcesToSize. A possible cause is that
22852         destroyDecodedData() call ends up evicting the resource pointed by 'previous' pointer during iteration
22853         and deleting the object. This looks in principle possible via stylesheets and SVG images.
22854         
22855         Speculative fix, no repro, no obvious way to construct a test.
22856
22857         * loader/cache/MemoryCache.cpp:
22858         (WebCore::MemoryCache::pruneDeadResourcesToSize):
22859         
22860             Use CachedResourceHandle to protect the 'previous' pointer during iteration. Check if the
22861             resource has been kicked out from the cache during destroyDecodedData() and stop iterating
22862             if has (as it may die when CachedResourceHandle releases it).
22863             The 'current' pointer is not protected as the resource it points to is allowed to die.
22864             
22865 2012-11-05  Andrey Adaikin  <aandrey@chromium.org>
22866
22867         Web Inspector: Fix jscompiler cast syntax
22868         https://bugs.webkit.org/show_bug.cgi?id=101066
22869
22870         Reviewed by Pavel Feldman.
22871
22872         Casts should be in the form of "/** @type {TypeName} */ (expr)" instead of "/** @type {TypeName} */ expr".
22873
22874         * inspector/InjectedScriptCanvasModuleSource.js:
22875         (.):
22876         * inspector/InjectedScriptSource.js:
22877         (.):
22878         * inspector/front-end/ApplicationCacheModel.js:
22879         (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
22880         (WebInspector.ApplicationCacheModel.prototype._frameDetached):
22881         * inspector/front-end/AuditLauncherView.js:
22882         (WebInspector.AuditLauncherView.prototype._onRequestStarted):
22883         (WebInspector.AuditLauncherView.prototype._onRequestFinished):
22884         * inspector/front-end/BreakpointManager.js:
22885         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
22886         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
22887         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
22888         (WebInspector.BreakpointManager.prototype._breakpointResolved):
22889         (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
22890         (WebInspector.BreakpointManager.Storage):
22891         * inspector/front-end/BreakpointsSidebarPane.js:
22892         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
22893         * inspector/front-end/CSSNamedFlowCollectionsView.js:
22894         (WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
22895         (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
22896         (WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
22897         (WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
22898         * inspector/front-end/CSSSelectorProfileView.js:
22899         (WebInspector.CSSProfileHeader.prototype.createView):
22900         * inspector/front-end/CSSStyleModel.js:
22901         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
22902         (WebInspector.CSSStyleDeclaration.parseComputedStylePayload):
22903         * inspector/front-end/CompilerScriptMapping.js:
22904         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
22905         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
22906         * inspector/front-end/ConsoleView.js:
22907         (WebInspector.ConsoleView.prototype._frameAdded):
22908         (WebInspector.ConsoleView.prototype._frameRemoved):
22909         * inspector/front-end/DOMAgent.js:
22910         (WebInspector.DOMDocument):
22911         * inspector/front-end/DebuggerModel.js:
22912         (WebInspector.DebuggerModel.prototype.didSetBreakpoint):
22913         (WebInspector.DebuggerModel.prototype.setBreakpointByURL):
22914         (WebInspector.DebuggerModel.prototype.):
22915         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
22916         (WebInspector.DebuggerModel.CallFrame.prototype.get location):
22917         * inspector/front-end/DebuggerScriptMapping.js:
22918         (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
22919         * inspector/front-end/DirectoryContentView.js:
22920         (WebInspector.DirectoryContentView.prototype._sort):
22921         * inspector/front-end/ElementsPanel.js:
22922         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
22923         * inspector/front-end/ElementsPanelDescriptor.js:
22924         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
22925         * inspector/front-end/ElementsTreeOutline.js:
22926         (.get node):
22927         * inspector/front-end/ExtensionServer.js:
22928         (WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
22929         (WebInspector.ExtensionServer.prototype._handleOpenURL):
22930         (WebInspector.ExtensionServer.prototype._onGetResourceContent):
22931         (WebInspector.ExtensionServer.prototype._onSetResourceContent):
22932         (WebInspector.ExtensionServer.prototype._notifyResourceAdded):
22933         (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
22934         (WebInspector.ExtensionServer.prototype._notifyRequestFinished):
22935         * inspector/front-end/FileContentView.js:
22936         (WebInspector.FileContentView.prototype._metadataReceived):
22937         (WebInspector.FileContentView.FileContentProvider.prototype.requestContent):
22938         * inspector/front-end/FileSystemModel.js:
22939         (WebInspector.FileSystemModel.prototype._frameAdded):
22940         (WebInspector.FileSystemModel.prototype._frameNavigated):
22941         (WebInspector.FileSystemModel.prototype._frameDetached):
22942         * inspector/front-end/FileSystemView.js:
22943         (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
22944         (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
22945         * inspector/front-end/HandlerRegistry.js:
22946         (WebInspector.HandlerRegistry.prototype._appendHrefItems):
22947         * inspector/front-end/HeapSnapshotLoader.js:
22948         (WebInspector.HeapSnapshotLoader.prototype.write):
22949         * inspector/front-end/HeapSnapshotView.js:
22950         (WebInspector.HeapSnapshotView.prototype._changeBase):
22951         (WebInspector.HeapProfileHeader.prototype.load):
22952         (WebInspector.HeapProfileHeader.prototype._snapshotReceived):
22953         * inspector/front-end/IndexedDBModel.js:
22954         (WebInspector.IndexedDBModel.prototype._frameNavigated):
22955         (WebInspector.IndexedDBModel.prototype._frameDetached):
22956         * inspector/front-end/IndexedDBViews.js:
22957         (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
22958         * inspector/front-end/JavaScriptSourceFrame.js:
22959         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
22960         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
22961         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
22962         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
22963         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageRemoved):
22964         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
22965         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
22966         * inspector/front-end/MemoryStatistics.js:
22967         (WebInspector.MemoryStatistics.prototype.show):
22968         * inspector/front-end/NavigatorView.js:
22969         (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
22970         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
22971         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
22972         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
22973         * inspector/front-end/NetworkLog.js:
22974         (WebInspector.NetworkLog.prototype._onRequestStarted):
22975         * inspector/front-end/NetworkManager.js:
22976         (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
22977         * inspector/front-end/NetworkPanel.js:
22978         (WebInspector.NetworkLogView.prototype._onRequestUpdated):
22979         (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
22980         (WebInspector.NetworkPanel.prototype.reveal):
22981         (WebInspector.NetworkPanel.prototype.appendApplicableItems):
22982         * inspector/front-end/NetworkUISourceCodeProvider.js:
22983         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
22984         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
22985         * inspector/front-end/ObjectPopoverHelper.js:
22986         (WebInspector.ObjectPopoverHelper.prototype.):
22987         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
22988         * inspector/front-end/PresentationConsoleMessageHelper.js:
22989         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
22990         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
22991         * inspector/front-end/ProfilesPanel.js:
22992         * inspector/front-end/ResourceScriptMapping.js:
22993         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
22994         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
22995         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
22996         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
22997         * inspector/front-end/ResourceTreeModel.js:
22998         (WebInspector.ResourceTreeModel.prototype._onRequestFinished):
22999         (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
23000         * inspector/front-end/ResourcesPanel.js:
23001         (WebInspector.ResourcesPanel.prototype._databaseAdded):
23002         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
23003         (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
23004         (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
23005         (WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
23006         (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
23007         (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
23008         (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
23009         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext):
23010         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious):
23011         * inspector/front-end/RevisionHistoryView.js:
23012         (WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
23013         * inspector/front-end/SASSSourceMapping.js:
23014         (rawLocationToUILocation):
23015         * inspector/front-end/ScopeChainSidebarPane.js:
23016         (WebInspector.ScopeChainSidebarPane.prototype.update):
23017         * inspector/front-end/Script.js:
23018         (WebInspector.Script.Location.prototype.uiLocation):
23019         * inspector/front-end/ScriptFormatter.js:
23020         (WebInspector.ScriptFormatter.prototype.get _worker):
23021         * inspector/front-end/ScriptsPanel.js:
23022         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
23023         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
23024         (WebInspector.ScriptsPanel.prototype._editorClosed):
23025         (WebInspector.ScriptsPanel.prototype._editorSelected):
23026         (WebInspector.ScriptsPanel.prototype._scriptSelected):
23027         (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
23028         (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
23029         (WebInspector.ScriptsPanel.prototype.replaceAllWith):
23030         (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
23031         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
23032         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
23033         * inspector/front-end/ScriptsPanelDescriptor.js:
23034         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
23035         * inspector/front-end/StylesSourceMapping.js:
23036         (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
23037         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
23038         * inspector/front-end/TabbedEditorContainer.js:
23039         (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
23040         (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
23041         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
23042         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
23043         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
23044         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
23045         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
23046         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
23047         * inspector/front-end/TimelineModel.js:
23048         (WebInspector.TimelineModelLoader.prototype.write):
23049         * inspector/front-end/UISourceCodeFrame.js:
23050         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
23051         * inspector/front-end/Workspace.js:
23052         (WebInspector.WorkspaceController.prototype._frameAdded):
23053         (WebInspector.Project.prototype._fileAdded):
23054         (WebInspector.Project.prototype._fileRemoved):
23055
23056 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
23057
23058         Web Inspector: render message bubbles in CodeMirror experiment.
23059         https://bugs.webkit.org/show_bug.cgi?id=101164
23060
23061         Reviewed by Vsevolod Vlasov.
23062
23063         It sounds like addLineWidget just makes it happen.
23064
23065         * inspector/front-end/CodeMirrorTextEditor.js:
23066         (WebInspector.CodeMirrorTextEditor):
23067         (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
23068         (WebInspector.CodeMirrorTextEditor.prototype.get if):
23069         (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
23070         (WebInspector.CodeMirrorTextEditor.prototype._change):
23071         * inspector/front-end/DefaultTextEditor.js:
23072         (.preventDefaultOnMouseUp):
23073         * inspector/front-end/PresentationConsoleMessageHelper.js:
23074         (WebInspector.PresentationConsoleMessageHelper):
23075         * inspector/front-end/cm/cmdevtools.css:
23076         (.CodeMirror .webkit-html-message-bubble):
23077         (.CodeMirror .webkit-html-message-bubble img):
23078         (.CodeMirror .webkit-html-warning-message):
23079         (.CodeMirror .webkit-html-error-message):
23080
23081 2012-11-05  Thiago Marcos P. Santos  <thiago.santos@intel.com>
23082
23083         Validate CSS Device Adaptation properties and resolve shorthands
23084         https://bugs.webkit.org/show_bug.cgi?id=95962
23085
23086         Reviewed by Alexis Menard.
23087
23088         Add the missing keywords and properties for the viewport at-rule.
23089         Note that we have to mark that we are inside a viewport scope because
23090         some properties are not validated as they would be inside a style
23091         rule. As an example, the semantics of CSSPropertyWidth are completely
23092         different: on a viewport rule, it stands for a shorthand for the
23093         minimum and maximum width.
23094
23095         Test: css3/device-adapt/viewport-properties-validation.html
23096
23097         * css/CSSComputedStyleDeclaration.cpp:
23098         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
23099         * css/CSSParser.cpp:
23100         (WebCore::CSSParser::parseValue):
23101         (WebCore):
23102         (WebCore::CSSParser::parseViewportProperty):
23103         (WebCore::CSSParser::parseViewportShorthand):
23104         * css/CSSParser.h:
23105         * css/CSSProperty.cpp:
23106         (WebCore::CSSProperty::isInheritedProperty):
23107         * css/CSSPropertyNames.in:
23108         * css/CSSValueKeywords.in:
23109
23110 2012-11-05  Sheriff Bot  <webkit.review.bot@gmail.com>
23111
23112         Unreviewed, rolling out r133286, r133385, and r133394.
23113         http://trac.webkit.org/changeset/133286
23114         http://trac.webkit.org/changeset/133385
23115         http://trac.webkit.org/changeset/133394
23116         https://bugs.webkit.org/show_bug.cgi?id=101198
23117
23118         Broke image placement on some web sites. (Requested by kling
23119         on #webkit).
23120
23121         * css/StyleResolver.cpp:
23122         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
23123         (WebCore::StyleResolver::matchAllRules):
23124         (WebCore::StyleResolver::canShareStyleWithElement):
23125         * dom/Attr.cpp:
23126         (WebCore::Attr::detachFromElementWithValue):
23127         * dom/Element.cpp:
23128         (WebCore::Element::~Element):
23129         (WebCore::Element::detachAttribute):
23130         (WebCore::Element::getAttribute):
23131         (WebCore::Element::setAttributeNode):
23132         (WebCore::Element::removeAttributeInternal):
23133         (WebCore::Element::getAttributeNode):
23134         (WebCore::Element::getAttributeNodeNS):
23135         (WebCore::Element::normalizeAttributes):
23136         (WebCore::Element::attrIfExists):
23137         (WebCore::Element::ensureAttr):
23138         (WebCore::Element::cloneAttributesFromElement):
23139         * dom/Element.h:
23140         (Element):
23141         (WebCore::Element::updateInvalidAttributes):
23142         * dom/ElementAttributeData.cpp:
23143         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
23144         (WebCore):
23145         (WebCore::attrListMap):
23146         (WebCore::attrListForElement):
23147         (WebCore::ensureAttrListForElement):
23148         (WebCore::removeAttrListForElement):
23149         (WebCore::findAttrInList):
23150         (WebCore::ElementAttributeData::attrIfExists):
23151         (WebCore::ElementAttributeData::ensureAttr):
23152         (WebCore::ElementAttributeData::setAttr):
23153         (WebCore::ElementAttributeData::removeAttr):
23154         (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
23155         (WebCore::ElementAttributeData::reportMemoryUsage):
23156         (WebCore::ElementAttributeData::cloneDataFrom):
23157         (WebCore::ElementAttributeData::clearAttributes):
23158         (WebCore::ElementAttributeData::getAttributeNode):
23159         * dom/ElementAttributeData.h:
23160         (WebCore):
23161         (WebCore::ElementAttributeData::attributeStyle):
23162         (WebCore::ElementAttributeData::setAttributeStyle):
23163         (ElementAttributeData):
23164         (WebCore::ElementAttributeData::ElementAttributeData):
23165         * dom/Node.h:
23166         (WebCore):
23167         (WebCore::Node::hasAttrList):
23168         (WebCore::Node::attributeStyleDirty):
23169         (WebCore::Node::setAttributeStyleDirty):
23170         (WebCore::Node::clearAttributeStyleDirty):
23171         (Node):
23172         (WebCore::Node::setHasAttrList):
23173         (WebCore::Node::clearHasAttrList):
23174         (WebCore::Node::isStyleAttributeValid):
23175         (WebCore::Node::setIsStyleAttributeValid):
23176         (WebCore::Node::clearIsStyleAttributeValid):
23177         * dom/StyledElement.cpp:
23178         (WebCore::StyledElement::updateStyleAttribute):
23179         (WebCore::StyledElement::attributeChanged):
23180         (WebCore::StyledElement::styleAttributeChanged):
23181         (WebCore::StyledElement::inlineStyleChanged):
23182         (WebCore::StyledElement::updateAttributeStyle):
23183         * dom/StyledElement.h:
23184         (StyledElement):
23185         (WebCore::StyledElement::invalidateStyleAttribute):
23186         (WebCore::StyledElement::attributeStyle):
23187         * inspector/InspectorCSSAgent.cpp:
23188         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
23189
23190 2012-11-05  Simon Hausmann  <simon.hausmann@digia.com>
23191
23192         Unreviewed trivial Qt build fix.
23193
23194         Surround imports from QtGui by QT_{BEGIN,END}_NAMESPACE to fix namespaced
23195         builds.
23196
23197         * platform/graphics/qt/GraphicsContextQt.cpp:
23198         * platform/graphics/qt/ImageQt.cpp:
23199
23200 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
23201
23202         [Shadow] ShadowRoot type is not set correctly.
23203         https://bugs.webkit.org/show_bug.cgi?id=101188
23204
23205         Reviewed by Hajime Morita.
23206
23207         ShadowRoot type is not set correctly in Release build. We have had to remove #ifndef block.
23208
23209         Test: fast/dom/shadow/shadowroot-type.html
23210
23211         * dom/ShadowRoot.cpp:
23212         (WebCore::ShadowRoot::create):
23213         * testing/Internals.cpp:
23214         (WebCore::Internals::shadowRootType):
23215         (WebCore):
23216         * testing/Internals.h:
23217         (Internals):
23218         * testing/Internals.idl:
23219
23220 2012-11-05  Kent Tamura  <tkent@chromium.org>
23221
23222         BaseChooserOnlyDateAndTimeInputType should implement DateTimeChooserClient
23223         https://bugs.webkit.org/show_bug.cgi?id=101038
23224
23225         Reviewed by Hajime Morita.
23226
23227         Add DateTimeChooserClient behavior to BaseChooserOnlyDateAndTimeInputType.
23228         It means that date/time input elements without
23229         ENABLE_INPUT_MULTIPLE_FIELDS_UI can open date/time choosers by
23230         DOMActivate event.
23231
23232         This patch doesn't change behavior yet because Chromimum-Android port
23233         intercepts user events and doesn't deliver them to date/time input
23234         elements. <http://crbug.com/159381>
23235
23236         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23237         Add DateTimeChooserClient behavior. The code is similar to
23238         PickerIndicatorElement.
23239         (WebCore::BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType):
23240         Closes DateTimeChooser.
23241         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23242         Open DateTimeChooser if
23243          - The element is not disabled,
23244          - The element is not read-only,
23245          - The element has a renderer,
23246          - This event is created by a user gesture, and
23247          - The element has no DateTimeChooser.
23248         (WebCore::BaseChooserOnlyDateAndTimeInputType::detach):
23249         Closes DateTimeChooser.
23250         (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
23251         Set a string value coming from a chooser to the input element.
23252         (WebCore::BaseChooserOnlyDateAndTimeInputType::didEndChooser):
23253         Clear m_dateTimeChooser when the chooser was closed.
23254         (WebCore::BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser):
23255         Requests to close the chooser.
23256         * html/BaseChooserOnlyDateAndTimeInputType.h:
23257         (BaseChooserOnlyDateAndTimeInputType):
23258          - Implement DateTimeChooserClient
23259          - Add closeDateTimeChooser helper function.
23260          - Add detach override.
23261          - Add m_dateTimeChooser.
23262         * html/HTMLInputElement.cpp:
23263         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
23264         Added. The code is moved from PickerIndicatorElement.cpp in order to
23265         share it with BaseChooserOnlyDateAndTimeInputType.
23266         * html/HTMLInputElement.h:
23267         (HTMLInputElement): Declare setupDateTimeChooserParameters.
23268         * html/shadow/PickerIndicatorElement.cpp:
23269         (WebCore::PickerIndicatorElement::openPopup):
23270         Move some code to HTMLInputElement::setupDateTimeChooserParameters.
23271
23272 2012-11-04  Julien Chaffraix  <jchaffraix@webkit.org>
23273
23274         Fix the collapsing border code to handle mixed directionality at the row level
23275         https://bugs.webkit.org/show_bug.cgi?id=101060
23276
23277         Reviewed by Ojan Vafai.
23278
23279         After bug 87900, we support mixed directionality at the row-group level. For coherency
23280         - as the underlying code didn't support it - we were artificially ignoring 'direction'
23281         below the row-group. This change relaxes the restriction and patches the collapsing
23282         borders code to query the right style and border.
23283
23284         Tests: fast/table/border-collapsing/table-ltr-rows-mixed-direction.html
23285                fast/table/border-collapsing/table-rtl-row-mixed-direction.html
23286
23287         * rendering/RenderTable.cpp:
23288         (WebCore::RenderTable::tableStartBorderAdjoiningCell):
23289         (WebCore::RenderTable::tableEndBorderAdjoiningCell):
23290         Changed to query the row's direction.
23291
23292         * rendering/RenderTableCell.cpp:
23293         (WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
23294         (WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
23295         Added 2 helper functions. They determine if a specific cell's border
23296         adjoins the table. This code is required as the last cell's end border
23297         can be resolved against the start border.
23298
23299         (WebCore::RenderTableCell::computeCollapsedStartBorder):
23300         (WebCore::RenderTableCell::computeCollapsedEndBorder):
23301         Updated these functions now that being the start / end column doesn't mean
23302         that we have to resolve against the row / row-group / table's border.
23303
23304         * rendering/RenderTableCell.h:
23305         (WebCore::RenderTableCell::styleForCellFlow):
23306         Updated to return the row's style.
23307
23308         * rendering/RenderTableRow.cpp:
23309         (WebCore::RenderTableRow::borderAdjoiningStartCell):
23310         (WebCore::RenderTableRow::borderAdjoiningEndCell):
23311         * rendering/RenderTableSection.cpp:
23312         (WebCore::RenderTableSection::borderAdjoiningStartCell):
23313         (WebCore::RenderTableSection::borderAdjoiningEndCell):
23314         Updated these functions to work with mixed directionality.
23315
23316         * rendering/RenderTableSection.cpp:
23317         (WebCore::RenderTableSection::setLogicalPositionForCell):
23318         Changed this function to use the section's direction. This is wrong and should be changed
23319         once we properly fix the collapsing border code.
23320
23321         (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
23322         Added a FIXME.
23323
23324         * rendering/style/CollapsedBorderValue.h:
23325         (WebCore::CollapsedBorderValue::width):
23326         This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
23327         'border-style: off | hidden' should have a 0 width). This is covered by our existing tests (among others by
23328         fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html).
23329
23330 2012-11-04  Andrey Adaikin  <aandrey@chromium.org>
23331
23332         Web Inspector: [Canvas] do not blow up the capturing log
23333         https://bugs.webkit.org/show_bug.cgi?id=100752
23334
23335         Reviewed by Pavel Feldman.
23336
23337         Clear obsolete calls in the canvas 2D capturing log in runtime.
23338         Now we store in the log only minimum number of calls that are necessary to replay a
23339         canvas 2D context. To achieve that we find in runtime those calls in the log that no
23340         longer contribute to the final context state and remove them.
23341         These are the rules according which we find and remove such calls:
23342         - all PATH methods between a clip() call and beginPath() call can be removed
23343         - all MATRIX methods before a restore() or setTransform() call but after any PATH or corresponding save() method
23344         - all consecutive save() + restore() calls
23345
23346         Tests: inspector/profiler/canvas2d/canvas2d-api-changes.html
23347                inspector/profiler/canvas2d/canvas2d-profiler-capturing-basics.html
23348
23349         * inspector/InjectedScriptCanvasModuleSource.js:
23350         (.):
23351
23352 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23353
23354         [Shadow] ShadowRoot should have a method to return ShadowRootType.
23355         https://bugs.webkit.org/show_bug.cgi?id=101178
23356
23357         Reviewed by Hajime Morita.
23358
23359         When we style PseudoCustomElement, we have to know ShadowRootType.
23360         We would like to expose a method to get ShadowRootType also in Release mode.
23361
23362         This is a preparation patch for Bug 101170.
23363
23364         * dom/ShadowRoot.h:
23365         (ShadowRoot):
23366
23367 2012-11-04  Keishi Hattori  <keishi@webkit.org>
23368
23369         Introduce Month class to calendar picker
23370         https://bugs.webkit.org/show_bug.cgi?id=101024
23371
23372         Reviewed by Kent Tamura.
23373
23374         Month class needs to be introduced to implement a month picker. This
23375         patch just introduces the Month class into the calendar picker without
23376         changing the current behavior.
23377
23378         No new tests. Covered by existing calendar-picker-*.html tests.
23379
23380         * Resources/pagepopups/calendarPicker.js:
23381         (Month.prototype.toLocaleString): Returns a localized month string.
23382         (Month): Takes a Month object, number representing the month, or year and month numbers.
23383         (Month.parse): Returns a new Month from an ISO month string.
23384         (Month.createFromDate): Returns a new Month containing the given datetime.
23385         (Month.prototype.equals): Returns true if the given month is the same.
23386         (Month.prototype.previous): Returns the previous month.
23387         (Month.prototype.next): Returns the next month.
23388         (Month.prototype.startDate): Returns a datetime that is the start of this month. The value is inclusive.
23389         (Month.prototype.endDate): Returns a datetime that is the end of this month. The value is exclusive.
23390         (Month.prototype.valueOf): Returns a number representing the month.
23391         (Month.prototype.toString): Returns an ISO month string.
23392         (YearMonthController): Use Month object.
23393         (YearMonthController.prototype.attachTo): Year 275760 ends in September so use the year before to measure the label width.
23394         (YearMonthController.prototype.setMonth): Take a month object.
23395         (YearMonthController.prototype._redraw): Use ISO month string for element.dataset.value.
23396         (YearMonthController.prototype._handleYearMonthChange):
23397         (YearMonthController.prototype.moveRelatively):
23398         (DaysTable): Use Month object.
23399         (DaysTable.prototype._renderMonth): Take a month object. Testing for isNaN is moved up to fix a bug when showing September, 275760.
23400         (DaysTable.prototype._navigateToMonth): Take a month object.
23401         (DaysTable.prototype._navigateToMonthWithAnimation): Take a month object.
23402         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Take a month object.
23403         (DaysTable.prototype.selectDate):
23404         (DaysTable.prototype._maybeSetPreviousMonth): Use Month object to calculate the previous month.
23405         (DaysTable.prototype._maybeSetNextMonth): Use Month object to calculate the next month.
23406
23407 2012-11-04  Halton Huo  <halton.huo@intel.com>
23408
23409         [EFL] Use _LIBRARIES instead of _LIBRARY
23410         https://bugs.webkit.org/show_bug.cgi?id=101042
23411
23412         Reviewed by Gyuyoung Kim.
23413
23414         In CMake Find files, _LIBRARY is intended for internal use, should
23415         use _LIBRARIES instead.
23416
23417         * PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}
23418
23419 2012-11-04  MORITA Hajime  <morrita@google.com>
23420
23421         Shadow DOM should be able to be disabled per context.
23422         https://bugs.webkit.org/show_bug.cgi?id=101173
23423
23424         Reviewed by Dimitri Glazkov.
23425
23426         This change pulls back relevant bits from r131549. Note that if
23427         the the port enables runtime Shadow DOM flag, this can cause slow
23428         down on some Chromium page cycler test cases (which r131549
23429         attempted to fix).
23430
23431         This change is temporal and the flags should be switched back from
23432         ContextFeatures to RuntimeEnabledFeatures once it gains sufficent
23433         stability.
23434
23435         * dom/ContextFeatures.cpp:
23436         (WebCore::ContextFeatures::shadowDOMEnabled):
23437         (WebCore):
23438         * dom/ContextFeatures.h:
23439         * dom/Position.cpp:
23440         (WebCore::Position::Position):
23441         (WebCore::Position::findParent):
23442         * dom/TreeScope.cpp:
23443         (WebCore::TreeScope::getSelection):
23444         * html/HTMLTagNames.in:
23445         * html/shadow/HTMLContentElement.cpp:
23446         (WebCore::HTMLContentElement::contentTagName):
23447         * page/DOMWindow.idl:
23448
23449 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23450
23451         [Shadow] Implement custom pseudo-elements styling
23452         https://bugs.webkit.org/show_bug.cgi?id=100812
23453
23454         Reviewed by Hajime Morita.
23455
23456         Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.
23457
23458         Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
23459         and use pseudo()/setPseudo() instead (Bug 101171).
23460
23461         Test: fast/dom/shadow/styling-pseudo-attribute.html
23462
23463         * dom/Element.cpp:
23464         (WebCore::Element::shadowPseudoId):
23465         (WebCore::Element::setShadowPseudoId):
23466         * dom/ElementRareData.cpp:
23467         (WebCore::ElementRareData::reportMemoryUsage):
23468         * dom/ElementRareData.h:
23469         (ElementRareData):
23470
23471 2012-11-04  Kent Tamura  <tkent@chromium.org>
23472
23473         BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior
23474         https://bugs.webkit.org/show_bug.cgi?id=101039
23475
23476         Reviewed by Hajime Morita.
23477
23478         Add BaseClickableWithKeyInputType behavior to
23479         BaseChooserOnlyDateAndTimeInputType. It means date/time input types
23480         without ENABLE_INPUT_MULTIPLE_FIELDS_UI receive DOMActivate events by
23481         pressing space or enter key. They're going to open a date/time chooser
23482         by DOMActive event.
23483
23484         Because BaseChooserOnlyDateAndTimeInputType inherits from
23485         BaseDateAndTimeInputType, it can't inherit
23486         BaseClickableWithKeyInputType. So, this patch adds static helper
23487         functions to BaseClickableWithKeyInputType, and
23488         BaseChooserOnlyDateAndTimeInputType uses them.
23489
23490         This patch doesn't change behavior yet because Chromimum-Android port
23491         intercepts user events and doesn't deliver them to date/time input
23492         elements.
23493
23494         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23495         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23496         Add an empty implementation with a FIXME comment.
23497         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
23498         Add BaseClickableWithKeyInputType behavior by a helper function.
23499         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent): Ditto.
23500         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent): Ditto.
23501         (WebCore::BaseChooserOnlyDateAndTimeInputType::accessKeyAction): Ditto.
23502         * html/BaseChooserOnlyDateAndTimeInputType.h:
23503         (BaseChooserOnlyDateAndTimeInputType): Add function declarations.
23504         * html/BaseClickableWithKeyInputType.cpp:
23505         Add static helper functions, and existing member functions use them.
23506         * html/BaseClickableWithKeyInputType.h:
23507         (BaseClickableWithKeyInputType): Add declarations of the helper functions.
23508         * html/InputType.h:
23509         (InputType): Make dispatchSimulatedClickIfActive public because it is
23510         called from a helper function.
23511
23512 2012-11-04  Sheriff Bot  <webkit.review.bot@gmail.com>
23513
23514         Unreviewed, rolling out r133416.
23515         http://trac.webkit.org/changeset/133416
23516         https://bugs.webkit.org/show_bug.cgi?id=101169
23517
23518         Broke world selection by right click (Requested by rniwa on
23519         #webkit).
23520
23521         * page/EventHandler.cpp:
23522         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
23523         (WebCore::EventHandler::sendContextMenuEvent):
23524
23525 2012-11-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
23526
23527         Missing ASCIILiteral in a place of accessibility
23528         https://bugs.webkit.org/show_bug.cgi?id=101160
23529
23530         Reviewed by Darin Adler.
23531
23532         ASCIILiteral usage is being missed in a spot of accessibliity.
23533
23534         * accessibility/AccessibilityMediaControls.cpp:
23535         (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
23536
23537 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23538
23539         [Qt][WK2] setPlatformStrategies always asserts after r132744
23540         https://bugs.webkit.org/show_bug.cgi?id=100838
23541
23542         Reviewed by Simon Hausmann.
23543
23544         Reland with build fixes.
23545
23546         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23547         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23548         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23549         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23550         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23551         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23552         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23553         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23554         in non production mode.
23555
23556         Basically covered by all tests.
23557
23558         * Target.pri:
23559         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23560         initializeTestFonts uses it.
23561         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23562         is also under that.
23563         (WebKit):
23564         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23565         without calling initializeWebCoreQt.
23566         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23567         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23568         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23569         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23570         the job even if we would stop clearing all caches between tests. Also moved the call to
23571         QFontDatabase::removeAllApplicationFonts from callers to here.
23572         * platform/qt/QtTestSupport.h:
23573         (WebKit):
23574         (QtTestSupport):
23575
23576 2012-11-04  Florin Malita  <fmalita@chromium.org>
23577
23578         Color-profile property triggers assert
23579         https://bugs.webkit.org/show_bug.cgi?id=101080
23580
23581         Reviewed by Dirk Schulze.
23582
23583         CSSPropertyColorProfile is not handled in StyleResolver::applySVGProperty(), triggering the
23584         unimplemented property assert. Adding a stub entry to avoid that.
23585
23586         Test: svg/css/color-profile-crash.html
23587
23588         * css/SVGCSSStyleSelector.cpp:
23589         (WebCore::StyleResolver::applySVGProperty):
23590
23591 2012-11-04  Kaustubh Atrawalkar  <kaustubh@motorola.com>
23592
23593         Unable to copy text on disabled input fields on long press gesture
23594         https://bugs.webkit.org/show_bug.cgi?id=99698
23595
23596         Reviewed by Ryosuke Niwa.
23597
23598         Text from disabled input/text should be allowed to select. Replaced isContentEditable()
23599         with canStartSelection()
23600
23601         Test: fast/events/touch/gesture/disabled-input-text-selection.html
23602
23603         * page/EventHandler.cpp:
23604         (WebCore::EventHandler::handleGestureLongPress):
23605
23606 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23607
23608         Unreviewed, rolling out r133403, r133404, and r133409.
23609         http://trac.webkit.org/changeset/133403
23610         http://trac.webkit.org/changeset/133404
23611         http://trac.webkit.org/changeset/133409
23612         https://bugs.webkit.org/show_bug.cgi?id=101158
23613
23614         "Broke tests" (Requested by kbalazs on #webkit).
23615
23616         * Target.pri:
23617         * WebCore.pri:
23618         * platform/qt/QtTestSupport.h: Removed.
23619
23620 2012-11-03  Alexey Proskuryakov  <ap@apple.com>
23621
23622         Get rid of USE(CFURLSTORAGESESSIONS)
23623         https://bugs.webkit.org/show_bug.cgi?id=101131
23624
23625         Reviewed by Sam Weinig.
23626
23627         This is always enabled on CFNetwork based platforms.
23628
23629         * WebCore.exp.in:
23630         * page/Settings.cpp:
23631         (WebCore::Settings::setPrivateBrowsingEnabled):
23632         * platform/mac/CookieJar.mm:
23633         (WebCore::cookies):
23634         (WebCore::cookieRequestHeaderFieldValue):
23635         (WebCore::setCookies):
23636         (WebCore::cookiesEnabled):
23637         (WebCore::getRawCookies):
23638         (WebCore::deleteCookie):
23639         * platform/network/ResourceHandle.h:
23640         (ResourceHandle):
23641         * platform/network/cf/CookieStorageCFNet.cpp:
23642         (WebCore):
23643         (WebCore::currentCFHTTPCookieStorage):
23644         * platform/network/cf/CookieStorageCFNet.h:
23645         * platform/network/cf/ResourceHandleCFNet.cpp:
23646         (WebCore::willSendRequest):
23647         (WebCore::makeFinalRequest):
23648         (WebCore::ResourceHandle::willSendRequest):
23649         (WebCore):
23650         * platform/network/cf/ResourceRequest.h:
23651         (ResourceRequest):
23652         * platform/network/cf/ResourceRequestCFNet.cpp:
23653         (WebCore::ResourceRequest::doUpdatePlatformRequest):
23654         (WebCore):
23655         * platform/network/mac/CookieStorageMac.mm:
23656         (WebCore::setCookieStoragePrivateBrowsingEnabled):
23657         * platform/network/mac/ResourceHandleMac.mm:
23658         (WebCore::shouldRelaxThirdPartyCookiePolicy):
23659         (WebCore::ResourceHandle::createNSURLConnection):
23660         (WebCore::ResourceHandle::willSendRequest):
23661         (WebCore):
23662         * platform/network/mac/ResourceRequestMac.mm:
23663         (WebCore):
23664         (WebCore::ResourceRequest::setStorageSession):
23665
23666 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23667
23668         [Qt][WK2] setPlatformStrategies always asserts after r132744
23669         https://bugs.webkit.org/show_bug.cgi?id=100838
23670
23671         Reviewed by Simon Hausmann.
23672
23673         Reland with build fix.
23674
23675         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23676         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23677         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23678         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23679         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23680         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23681         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23682         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23683         in non production mode.
23684
23685         Basically covered by all tests.
23686
23687         * Target.pri:
23688         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23689         initializeTestFonts uses it.
23690         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23691         is also under that.
23692         (WebKit):
23693         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23694         without calling initializeWebCoreQt.
23695         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23696         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23697         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23698         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23699         the job even if we would stop clearing all caches between tests. Also moved the call to
23700         QFontDatabase::removeAllApplicationFonts from callers to here.
23701         * platform/qt/QtTestSupport.h:
23702         (WebKit):
23703         (QtTestSupport):
23704
23705 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23706
23707         Unreviewed, rolling out r133397.
23708         http://trac.webkit.org/changeset/133397
23709         https://bugs.webkit.org/show_bug.cgi?id=101155
23710
23711         "Broke Qt. No way to force the damn bots to do a clean build.
23712         I'm giving up." (Requested by kbalazs on #webkit).
23713
23714         * Target.pri:
23715         * WebCore.pri:
23716         * platform/qt/QtTestSupport.h: Removed.
23717
23718 2012-11-03  Stephen White  <senorblanco@chromium.org>
23719
23720         Speculative fix to eliminate flakiness in
23721         css3/filters/blur-filter-page-scroll-self.html
23722         https://bugs.webkit.org/show_bug.cgi?id=91620.
23723         Suspicion is that a prior test is setting
23724         window.internals.settings.setEnableCompositingForFixedPosition(true),
23725         causing this test to be intermittely run on the GPU, giving different
23726         pixel results depending on test order.
23727
23728         Reviewed by Jochen Eisinger.
23729
23730         Covered by css3/filters/blur-filter-page-scroll-self.html
23731
23732         * testing/InternalSettings.cpp:
23733         (WebCore::InternalSettings::Backup::Backup):
23734         (WebCore::InternalSettings::Backup::restoreTo):
23735         * testing/InternalSettings.h:
23736         (Backup):
23737
23738 2012-11-03  Mark Rowe  <mrowe@apple.com>
23739
23740         REGRESSION (r132858): Crash below -[DOMElement setClassName:] when called with a nil string
23741
23742         Reviewed by Anders Carlsson.
23743
23744         The changes in r132858 introduced an overload of AtomicString::add for CFStrings. However, the overload
23745         that was introduced is not null safe.
23746
23747         * platform/text/cf/AtomicStringCF.cpp:
23748         (WTF::AtomicString::add): Handle a null string by returning a null StringImpl.
23749
23750 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23751
23752         [Qt][WK2] setPlatformStrategies always asserts after r132744
23753         https://bugs.webkit.org/show_bug.cgi?id=100838
23754
23755         Reviewed by Simon Hausmann.
23756
23757         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23758         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23759         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23760         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23761         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23762         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23763         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23764         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23765         in non production mode.
23766
23767         Basically covered by all tests.
23768
23769         * Target.pri:
23770         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23771         initializeTestFonts uses it.
23772         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23773         is also under that.
23774         (WebKit):
23775         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23776         without calling initializeWebCoreQt.
23777         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23778         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23779         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23780         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23781         the job even if we would stop clearing all caches between tests. Also moved the call to
23782         QFontDatabase::removeAllApplicationFonts from callers to here.
23783         * platform/qt/QtTestSupport.h:
23784         (WebKit):
23785         (QtTestSupport):
23786
23787 2012-11-03  Dan Beam  <dbeam@chromium.org>
23788
23789         Implement HTMLFormElement#requestAutocomplete and associated events
23790         https://bugs.webkit.org/show_bug.cgi?id=100557
23791
23792         Reviewed by Adam Barth.
23793
23794         Implements an initial version of the proposal for interactive autocomplete outlined in this email:
23795         http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
23796
23797         The goal of this patch is to allow web authors to call formElement.requestAutocomplete(); after subscribing for
23798         autocomplete/autocompleteerror events on formElement. If the form's [autocomplete] attribute is "off" an
23799         error will be dispatched. Otherwise, a request will be issued to the FrameLoaderClient.  At the moment, the
23800         implementation in Chrome (https://codereview.chromium.org/11270018/) will simply dispatch an error until the
23801         UI on Chrome's side is built. Both autocomplete and autocompleteerror events will be dispatched asynchronously
23802         after a small delay to behave consistently in all situations and implementations.
23803
23804         Currently this is behind the feature flag REQUEST_AUTOCOMPLETE, which is disabled.
23805
23806         Test: fast/forms/form-request-autocomplete.html
23807
23808         * dom/EventNames.h:
23809         (WebCore):
23810
23811         Added autocomplete and autocompleteerror events. The autocomplete event is dispatched after a user adds more
23812         information to a form using the future UI. This is not currently dispatched in any implementation (including Chrome)
23813         but will be in the future. The autocompleteerror event is dispatched when the form has [autocomplete="off"] on the
23814         node being asked for an interactive autocomplete. The user agent may also dispatch this event if it doesn't implement
23815         this API but has turned on the feature flag, can't currently show an autocomplete UI (e.g. running headlessly or in
23816         an HTML notification, security concerns, or any other reason it desires).
23817
23818         * html/HTMLAttributeNames.in:
23819
23820         Added onautocomplete and onautocompleteerror attributes so they can be parsed when creating form elements and used
23821         as event listeners. For example:
23822
23823           <form onautocomplete="/* when autocomplete succeeds */" autocompleteerror="/* when autocomplete fails */">
23824
23825         * html/HTMLFormElement.cpp:
23826         (WebCore::HTMLFormElement::HTMLFormElement):
23827         (WebCore):
23828
23829         Added m_requestAutocompleteTimer (a timer that's used to dispatch events asynchronously) to the initializer list that
23830         triggers requestAutocompleteTimerFired when it times out.
23831
23832         (WebCore::HTMLFormElement::requestAutocomplete):
23833
23834         Called when HTMLFormElement#requestAutocomplete is called from JS (also see HTMLFormElement.idl) and decides whether
23835         to dispatch an error and exit early (in the case where autocomplete="off") or pass the request on to the
23836         FrameLoaderClient.
23837
23838         (WebCore::HTMLFormElement::finishRequestAutocomplete):
23839
23840         Called when the request for an interactive autocomplete is finished with either a success or error result. This
23841         causes an event to queue and fired after a 0 second delay. Events are owned by HTMLFormElement and reference the
23842         target element (this) until fired.
23843
23844         (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
23845
23846         Called when the event timer runs out to pump the queue of current events. Events are released on dispatch.
23847
23848         (WebCore::HTMLFormElement::parseAttribute):
23849
23850         Encountering onautocomplete or onautocompleteerror attributes while parsing HTMLFormElements now adds event listeners
23851         for autocomplete an autocompleteerror events (respectively) to dispatch the value of the attribute as a script.
23852
23853         * html/HTMLFormElement.h:
23854         (HTMLFormElement):
23855
23856         Added various methods and data members as required by the implementation.
23857
23858         * html/HTMLFormElement.idl:
23859
23860         Added the method requestAutocomplete and associated DOM event handler attributes (onautocomplete/onautocompleteerror)
23861         to HTMLFormElement's public DOM API (unprefixed, as per Ian Hickson's advice). All are require the Conditional
23862         REQUEST_AUTOCOMPLETE to be enabled to be activated.
23863
23864         * loader/EmptyClients.cpp:
23865         (WebCore):
23866         (WebCore::EmptyFrameLoaderClient::didRequestAutocomplete):
23867
23868         Added noop implementation for FrameLoader::didRequestAutocomplete.
23869
23870         * loader/EmptyClients.h:
23871         (EmptyFrameLoaderClient):
23872
23873         Added FrameLoader::didRequestAutocomplete to EmptyFrameLoaderClient interface.
23874
23875         * loader/FrameLoaderClient.h:
23876         (FrameLoaderClient):
23877
23878         Added noop implementation to FrameLoaderClient interface (which is implemented chromium's FrameLoaderLoaderImpl.cpp).
23879
23880 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23881
23882         Web Inspector: %d, %i, and %f log formatters have same result
23883         https://bugs.webkit.org/show_bug.cgi?id=101148
23884
23885         Reviewed by Alexander Pavlov.
23886
23887         Added separate formatters for %f, %i, %d and %s.
23888
23889         Test: inspector/console/console-message-format.html
23890
23891         * inspector/front-end/ConsoleMessage.js:
23892         (WebInspector.ConsoleMessageImpl.prototype.stringFormatter):
23893         (WebInspector.ConsoleMessageImpl.prototype.floatFormatter):
23894         (WebInspector.ConsoleMessageImpl.prototype.integerFormatter):
23895
23896 2012-11-03  Andreas Kling  <kling@webkit.org>
23897
23898         Decouple Attr logic from ElementAttributeData.
23899         <http://webkit.org/b/101126>
23900
23901         Reviewed by Antti Koivisto.
23902
23903         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
23904         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
23905         can be shared by any number of Elements at a given time.
23906
23907         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
23908         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
23909
23910         * dom/Element.h:
23911         * dom/ElementAttributeData.h:
23912         * dom/Element.cpp:
23913         (WebCore::attrNodeListMap):
23914         (WebCore::attrNodeListForElement):
23915         (WebCore::ensureAttrNodeListForElement):
23916         (WebCore::removeAttrNodeListForElement):
23917         (WebCore::findAttrNodeInList):
23918         (WebCore::Element::~Element):
23919         (WebCore::Element::detachAttribute):
23920         (WebCore::Element::setAttributeNode):
23921         (WebCore::Element::removeAttributeInternal):
23922         (WebCore::Element::getAttributeNode):
23923         (WebCore::Element::getAttributeNodeNS):
23924         (WebCore::Element::normalizeAttributes):
23925         (WebCore::Element::attrIfExists):
23926         (WebCore::Element::ensureAttr):
23927         (WebCore::Element::detachAttrNodeFromElementWithValue):
23928         (WebCore::Element::detachAllAttrNodesFromElement):
23929         (WebCore::Element::cloneAttributesFromElement):
23930
23931             Move everything Attr-related into Element.cpp while simplifying some loops and remove
23932             conditions that are no longer needed as they used to depend on having an attributeData().
23933
23934         * dom/Node.h:
23935         (WebCore::Node::hasSyntheticAttrChildNodes):
23936         (WebCore::Node::setHasSyntheticAttrChildNodes):
23937
23938             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
23939
23940         * dom/Attr.cpp:
23941         (WebCore::Attr::detachFromElementWithValue):
23942
23943             Remove awkward indirection and let the call site deal with removing the Attr node from
23944             the Element's list of Attr nodes.
23945
23946         * dom/ElementAttributeData.cpp:
23947         (WebCore::ElementAttributeData::clearAttributes):
23948
23949             Remove now-unused Element* argument.
23950
23951 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23952
23953         REGRESSION (r132014-r132047): Webkit Inspector Window docking broken
23954         https://bugs.webkit.org/show_bug.cgi?id=101125
23955
23956         Reviewed by Vsevolod Vlasov.
23957
23958         Added "bottom" as default docked state.
23959
23960         * inspector/front-end/DockController.js:
23961         (WebInspector.DockController):
23962
23963 2012-11-02  Shinya Kawanaka  <shinyak@chromium.org>
23964
23965         [Shadow] ShadowRoot should be able to know the existence of <content>
23966         https://bugs.webkit.org/show_bug.cgi?id=100921
23967
23968         Reviewed by Dimitri Glazkov.
23969
23970         When <content> is inserted into or removed from a shadow subtree, ShadowRoot counts the number of <content>.
23971         It provides O(1) method to check the existence of <content>.
23972
23973         This is necessary when we implement a fast checking path for distribution invalidation when an element attribute
23974         is changed. Larger context is explained in Bug 100451.
23975
23976         Test: fast/dom/shadow/has-content-elements.html
23977
23978         * dom/ShadowRoot.cpp:
23979         (WebCore::ShadowRoot::ShadowRoot):
23980         (WebCore::ShadowRoot::hasInsertionPoint): Since we track both <content> and <shadow>, we don't need to traverse
23981         all the descendants of ShadowRoot anymore.
23982         * dom/ShadowRoot.h:
23983         (WebCore::ShadowRoot::registerContentElement):
23984         (WebCore::ShadowRoot::unregisterContentElement):
23985         (WebCore::ShadowRoot::hasContentElement):
23986         (ShadowRoot):
23987         * html/shadow/HTMLContentElement.cpp:
23988         (WebCore::HTMLContentElement::HTMLContentElement):
23989         (WebCore::HTMLContentElement::insertedInto): When <content> is inserted into ShadowDOM subtree,
23990         we notify it to the ShadowRoot. Note that only active <content> element is counted.
23991         (WebCore):
23992         (WebCore::HTMLContentElement::removedFrom):
23993         * html/shadow/HTMLContentElement.h:
23994         (HTMLContentElement):
23995         * testing/Internals.cpp:
23996         (WebCore::Internals::hasContentElement):
23997         (WebCore):
23998         * testing/Internals.h:
23999         (Internals):
24000         * testing/Internals.idl:
24001
24002 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
24003
24004         sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle
24005         https://bugs.webkit.org/show_bug.cgi?id=99990
24006
24007         Reviewed by Darin Adler.
24008
24009         Move initialization code for sCurrentPaintTimeStamp to the below of early returns,
24010         because it was not reset after early return.
24011
24012         * page/FrameView.cpp:
24013         (WebCore::FrameView::paintContents):
24014
24015 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
24016
24017         Fix build warning in PluginView.cpp on release build
24018         https://bugs.webkit.org/show_bug.cgi?id=101049
24019
24020         Reviewed by Kentaro Hara.
24021
24022         The protocol, host, port parameters are not used when LOG_DISABLED
24023         Use UNUSED_PARAM macro for removing -Wunused-parameter warning
24024
24025         * plugins/PluginView.cpp:
24026         (WebCore::PluginView::getAuthenticationInfo):
24027
24028 2012-10-25  Martin Robinson  <mrobinson@igalia.com>
24029
24030         [GTK] Move soup authentication from GtkAuthenticationDialog to WebCore
24031         https://bugs.webkit.org/show_bug.cgi?id=99914
24032
24033         Reviewed by Carlos Garcia Campos.
24034
24035         Move the actual soup authentication code from the GtkAuthenticationDialog to ResourceHandleSoup.
24036         This allows a more generic implementation of authentication, for example, one where a WebKit2
24037         client can completely handle authentication.
24038
24039         No new tests. This does not change behavior.
24040
24041         * platform/gtk/GtkAuthenticationDialog.cpp: Remove references to the SoupPasswordManager, which
24042         is going away in the next release of Gnome. Instead we always assume that the authentication backend has
24043         support for remembering passwords and pass that information along with the answer to the authentication
24044         request.
24045
24046         The rest of the changes to this class can be summarized as:
24047         1. Getting the information from the AuthenticationChallenge instead of directly from the libsoup
24048            objects.
24049         2. Using the AuthenticationClient to accomplish the authentication instead of talking to libsoup
24050            directly.
24051         * platform/gtk/GtkAuthenticationDialog.h:
24052         (GtkAuthenticationDialog): Remove members which are no longer used.
24053         * platform/network/ResourceHandle.h:
24054         (ResourceHandle): ResourceHandleSoup now implements the entire AuthenticationClient interface.
24055         * platform/network/soup/ResourceHandleSoup.cpp:
24056         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge): Don't handle authentication
24057         for synchronous handles.
24058         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Now set the current challenge on
24059         the internal data structure.
24060         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added.
24061         (WebCore::ResourceHandle::receivedCredential): Added.
24062         (WebCore::ResourceHandle::receivedCancellation): Added.
24063         (WebCore::authenicateCallback): Pass the handle as the authentication client.
24064
24065 2012-11-02  Benjamin Poulain  <bpoulain@apple.com>
24066
24067         Improve CSSParser::setupParser() since the prefix/suffix are literals
24068         https://bugs.webkit.org/show_bug.cgi?id=101107
24069
24070         Reviewed by Andreas Kling.
24071
24072         * css/CSSParser.cpp:
24073         (WebCore::CSSParser::setupParser):
24074         * css/CSSParser.h:
24075         (CSSParser):
24076         (WebCore::CSSParser::setupParser):
24077         CSSParser::setupParser() is only used with literals prefix and suffix. We do not have
24078         to compute the length at runtime, we can direclty encode it in the binary.
24079
24080 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24081
24082         Unreviewed, rolling out r133375.
24083         http://trac.webkit.org/changeset/133375
24084         https://bugs.webkit.org/show_bug.cgi?id=101138
24085
24086         Caused 3 tests to fail on Mac (Requested by aboxhall-laptop on
24087         #webkit).
24088
24089         * platform/text/LineBreakIteratorPoolICU.h:
24090         (WebCore::LineBreakIteratorPool::take):
24091         (WebCore::LineBreakIteratorPool::put):
24092         (LineBreakIteratorPool):
24093         * platform/text/TextBreakIterator.h:
24094         (WebCore):
24095         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24096         (WebCore::LazyLineBreakIterator::get):
24097         (WebCore::LazyLineBreakIterator::reset):
24098         (LazyLineBreakIterator):
24099         * platform/text/TextBreakIteratorICU.cpp:
24100         (WebCore::acquireLineBreakIterator):
24101         (WebCore::releaseLineBreakIterator):
24102         * rendering/RenderBlockLineLayout.cpp:
24103         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24104         * rendering/RenderText.cpp:
24105         (WebCore::RenderText::computePreferredLogicalWidths):
24106         * rendering/RenderText.h:
24107         (WebCore):
24108         * rendering/break_lines.cpp:
24109         (WebCore):
24110         (WebCore::isBreakableSpace):
24111         (WebCore::needsLineBreakIterator):
24112         (WebCore::nextBreakablePosition):
24113         (WebCore::nextBreakablePositionIgnoringNBSP):
24114         * rendering/break_lines.h:
24115         (WebCore):
24116         (WebCore::isBreakable):
24117
24118 2012-11-02  Andreas Kling  <kling@webkit.org>
24119
24120         Cut overgrown ElementAttributeData bitfield.
24121         <http://webkit.org/b/101129>
24122
24123         Reviewed by Anders Carlsson.
24124
24125         Make sure the ElementAttributeData bitfield fits into 32 bits. Added a compile-time assertion
24126         to guard against future bloatage.
24127
24128         * dom/ElementAttributeData.cpp:
24129         (SameSizeAsElementAttributeData):
24130         * dom/ElementAttributeData.h:
24131         (ElementAttributeData):
24132
24133 2012-11-02  Michael Saboff  <msaboff@apple.com>
24134
24135         Crash calling is8Bit() in visitedLinkHash()
24136         https://bugs.webkit.org/show_bug.cgi?id=101119
24137
24138         Reviewed by Filip Pizlo.
24139
24140         Added an isEmpty() check to AttributeURL and KURL.
24141
24142         * platform/LinkHash.cpp:
24143         (WebCore::visitedLinkHash):
24144
24145 2012-11-02  Glenn Adams  <glenn@skynav.com>
24146
24147         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
24148         https://bugs.webkit.org/show_bug.cgi?id=89235
24149
24150         Reviewed by Eric Seidel.
24151
24152         See also wiki documentation at:
24153         [1] http://trac.webkit.org/wiki/LineBreaking
24154         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
24155
24156         Web exposed changes include:
24157         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
24158         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
24159         (3) See [2] above for details regarding interpretation.
24160
24161         Tests: css3/line-break/line-break-auto-centered.html
24162                css3/line-break/line-break-auto-half-kana.html
24163                css3/line-break/line-break-auto-hyphens.html
24164                css3/line-break/line-break-auto-inseparables.html
24165                css3/line-break/line-break-auto-iteration-marks.html
24166                css3/line-break/line-break-auto-postfixes.html
24167                css3/line-break/line-break-auto-prefixes.html
24168                css3/line-break/line-break-auto-sound-marks.html
24169                css3/line-break/line-break-loose-centered.html
24170                css3/line-break/line-break-loose-half-kana.html
24171                css3/line-break/line-break-loose-hyphens.html
24172                css3/line-break/line-break-loose-inseparables.html
24173                css3/line-break/line-break-loose-iteration-marks.html
24174                css3/line-break/line-break-loose-postfixes.html
24175                css3/line-break/line-break-loose-prefixes.html
24176                css3/line-break/line-break-loose-sound-marks.html
24177                css3/line-break/line-break-normal-centered.html
24178                css3/line-break/line-break-normal-half-kana.html
24179                css3/line-break/line-break-normal-hyphens.html
24180                css3/line-break/line-break-normal-inseparables.html
24181                css3/line-break/line-break-normal-iteration-marks.html
24182                css3/line-break/line-break-normal-postfixes.html
24183                css3/line-break/line-break-normal-prefixes.html
24184                css3/line-break/line-break-normal-sound-marks.html
24185                css3/line-break/line-break-strict-centered.html
24186                css3/line-break/line-break-strict-half-kana.html
24187                css3/line-break/line-break-strict-hyphens.html
24188                css3/line-break/line-break-strict-inseparables.html
24189                css3/line-break/line-break-strict-iteration-marks.html
24190                css3/line-break/line-break-strict-postfixes.html
24191                css3/line-break/line-break-strict-prefixes.html
24192                css3/line-break/line-break-strict-sound-marks.html
24193
24194         * platform/text/LineBreakIteratorPoolICU.h:
24195         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
24196         Add static function to construct ICU locale argument (also used as pool key) with additional
24197         break keyword.
24198         (WebCore::LineBreakIteratorPool::take):
24199         (WebCore::LineBreakIteratorPool::put):
24200         (LineBreakIteratorPool):
24201         Remove direct dependency from ICU library (and types), moving that dependency into
24202         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
24203         Update to take line break mode into account.
24204         Create (and cache) different break iterators depending on line break mode (in addition to locale),
24205         which entails expanding pool entry key format to optionally append "@break=" +
24206         "loose"|"normal"|"strict" keyword to locale string.
24207
24208         * platform/text/TextBreakIterator.h:
24209         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24210         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
24211         (WebCore::LazyLineBreakIterator::get):
24212         (WebCore::LazyLineBreakIterator::reset):
24213         (LazyLineBreakIterator):
24214         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
24215         Add state member to indicate line break mode.
24216
24217         * platform/text/TextBreakIteratorICU.cpp:
24218         (WebCore::acquireLineBreakIterator):
24219         Use new line break mode when making iterator from pool.
24220         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
24221         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24222         (WebCore::releaseLineBreakIterator):
24223         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
24224         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24225         (WebCore::isCJKLocale):
24226         New functions for determining if CJK rules apply.
24227         (WebCore::openLineBreakIterator):
24228         New function for abstracting opening of ICU style line break iterator. This is now
24229         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24230         This function also takes into account the line break mode.
24231         (WebCore::closeLineBreakIterator):
24232         (WebCore::mapLineIteratorModeToRules):
24233         New function for abstracting closing of ICU style line break iterator. This is now
24234         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24235
24236         * rendering/RenderBlockLineLayout.cpp:
24237         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24238         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
24239         Add looseMode local variable to prevent need for computing under isBreakable().
24240
24241         * rendering/RenderText.cpp:
24242         (WebCore::mapLineBreakToIteratorMode):
24243         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24244         and RenderBlock::LineBreaker::nextLineBreak.
24245         (WebCore::RenderText::computePreferredLogicalWidths):
24246         Ensure (lazy line) breakIterator is initialized for line break mode.
24247         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
24248
24249         * rendering/RenderText.h:
24250         (WebCore):
24251         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24252         and RenderBlock::LineBreaker::nextLineBreak.
24253
24254         * rendering/break_lines.cpp:
24255         (WebCore):
24256         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
24257         to include loose mode parameter.
24258         (WebCore::isBreakableSpace):
24259         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24260         accessor method on each invocation. Use new loose mode flavors off NBP functions.
24261         (WebCore::needsLineBreakIterator):
24262         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
24263         to prevent regression to non loose mode path.
24264         (WebCore::nextBreakablePosition):
24265         (WebCore::nextBreakablePositionIgnoringNBSP):
24266         Use new template parameter enums described above.
24267         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
24268         (WebCore::nextBreakablePositionLoose):
24269         Introduce two additional 'loose' mode flavors of NBP template expansions.
24270
24271         * rendering/break_lines.h:
24272         (WebCore):
24273         (WebCore::isBreakable):
24274         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24275         accessor method on each invocation.
24276
24277 2012-11-02  Elliott Sprehn  <esprehn@chromium.org>
24278
24279         Replace NodeRareData hash map with a union on m_renderer
24280         https://bugs.webkit.org/show_bug.cgi?id=100057
24281
24282         Reviewed by Eric Seidel.
24283
24284         Use a union on Node::m_renderer between NodeRareData* and RenderObject*. This removes
24285         the overhead of accessing rare data and the memory from the map.
24286
24287         This is an 8% improvement on Bindings/get-elements-by-tag-name.html which tested
24288         document.getElementsByTagName and was previously optimized in Bug 90059 for a 5% 
24289         improvement. As this is better than even the special casing for document that was
24290         done in that bug, general node list access should see an even greater win.
24291
24292         This reduces the memory usage on nytimes.com by 250k per Bug 101052 by
24293         removing the rare data map overhead.
24294
24295         This is also a 15% improvement on Parser/textarea-parsing.html
24296
24297         By removing the performance overhead of rareData() this patch addresses the performance
24298         issues raised in Bugs 73853, 87034 and 89635.
24299
24300         I ran Parser/html5-full-render.html and there was no performance regression after
24301         tuning Text::recalcTextStyle and the refactor that was done in r132684.
24302
24303         No new tests, this is just a refactor.
24304
24305         * dom/Document.cpp:
24306         (WebCore::Document::Document):
24307         * dom/Document.h:
24308         (WebCore::Node::Node):
24309         * dom/Element.cpp:
24310         (WebCore::Element::elementRareData):
24311         * dom/Node.cpp:
24312         (WebCore::Node::rareData):
24313         (WebCore::Node::ensureRareData):
24314         (WebCore::Node::clearRareData):
24315         (WebCore::Node::renderBox):
24316         (WebCore::Node::renderBoxModelObject):
24317         (WebCore::Node::reportMemoryUsage):
24318         * dom/Node.h:
24319         (NodeRareDataBase):
24320           Base class for NodeRareData that knows about the renderer so we can
24321           inline the accesses in Node.h
24322         (WebCore::NodeRareDataBase::renderer):
24323         (WebCore::NodeRareDataBase::setRenderer):
24324         (WebCore::NodeRareDataBase::~NodeRareDataBase):
24325         (WebCore::NodeRareDataBase::NodeRareDataBase):
24326         (WebCore):
24327         (WebCore::Node::renderer):
24328         (WebCore::Node::setRenderer):
24329         (Node):
24330         * dom/NodeRareData.h:
24331         * dom/NodeRenderStyle.h:
24332         (WebCore::Node::renderStyle):
24333         * dom/Text.cpp:
24334         (WebCore::Text::recalcTextStyle):
24335           This method appears very hot in html5-full-render.html and accessing the
24336           renderer 4 times caused a 2% performance regression with this patch. I
24337           reduced it to 1 access and there's no longer any performance regression.
24338         * dom/WebCoreMemoryInstrumentation.cpp:
24339           Removed tracking of the rare data map memory usage as there is no longer
24340           a map to track.
24341         * dom/WebCoreMemoryInstrumentation.h:
24342         * inspector/InspectorMemoryAgent.cpp:
24343         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
24344
24345 2012-11-02  Alexey Proskuryakov  <ap@apple.com>
24346
24347         [Mac] ResourceHandle changes for network process
24348         https://bugs.webkit.org/show_bug.cgi?id=101111
24349
24350         Reviewed by Jessie Berlin.
24351
24352         With NSOperationQueue, we'll be getting NetworkProcess delegate method calls
24353         on secondary threads, and so we won't block other requests while consulting with WebProcess.
24354
24355         * platform/network/NetworkingContext.h:
24356         (WebCore::NetworkingContext::scheduledRunLoopPairs):
24357         (WebCore::NetworkingContext::scheduledOperationQueue):
24358         Add an ability to schedule on an NSOperationQueue. Now that scheduling on run loop
24359         is not a must, give scheduledRunLoopPairs() a default implementation.
24360
24361         * platform/network/mac/ResourceHandleMac.mm: Removed isInitializingConnection
24362         static. It was only used to catch a long obsolete bug with debug logging, and
24363         cannot work with multiple threads.
24364         (WebCore::ResourceHandle::start): Scedule on a operation queue if applicable.
24365         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed a
24366         check that used isInitializingConnection.
24367
24368 2012-11-02  Chris Rogers  <crogers@google.com>
24369
24370         Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion
24371         https://bugs.webkit.org/show_bug.cgi?id=100885
24372
24373         Reviewed by Kenneth Russell.
24374
24375         AudioParamTimeline needs to use double-precision for time-values to avoid drift and precision issues.
24376
24377         Covered by existing tests.
24378
24379         * Modules/webaudio/AudioParam.cpp:
24380         (WebCore::AudioParam::calculateTimelineValues):
24381         * Modules/webaudio/AudioParamTimeline.cpp:
24382         (WebCore::AudioParamTimeline::valueForContextTime):
24383         (WebCore::AudioParamTimeline::valuesForTimeRange):
24384         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
24385         * Modules/webaudio/AudioParamTimeline.h:
24386         (AudioParamTimeline):
24387
24388 2012-11-02  Stephen Chenney  <schenney@chromium.org>
24389
24390         Reduce redundant code in SimpleFontData[platform]
24391         https://bugs.webkit.org/show_bug.cgi?id=97245
24392
24393         Reviewed by Eric Seidel.
24394
24395         Move duplicated code out of platform specific files and into the common file.
24396         This represents all of the methods in SimpleFontData that do not have genuine
24397         platform specific code.
24398
24399         No new tests because there is no change at all in the functionality.
24400
24401         * platform/graphics/SimpleFontData.cpp:
24402         (WebCore):
24403         (WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
24404         (WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
24405         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
24406         (WebCore): Removed common code.
24407         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
24408         (WebCore): Removed common code.
24409         * platform/graphics/mac/SimpleFontDataMac.mm:
24410         (WebCore): Removed common code.
24411         * platform/graphics/pango/SimpleFontDataPango.cpp:
24412         (WebCore): Removed common code.
24413         * platform/graphics/qt/SimpleFontDataQt.cpp:
24414         (WebCore): Removed common code.
24415         * platform/graphics/skia/SimpleFontDataSkia.cpp:
24416         (WebCore): Removed common code.
24417         * platform/graphics/win/SimpleFontDataWin.cpp:
24418         (WebCore): Removed common code.
24419         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
24420         (WebCore): Removed common code.
24421         * platform/graphics/wx/SimpleFontDataWx.cpp:
24422         (WebCore): Removed common code.
24423
24424 2012-11-02  Adam Barth  <abarth@webkit.org>
24425
24426         memory-instrumentation-cached-images.html is crashing
24427         https://bugs.webkit.org/show_bug.cgi?id=101103
24428
24429         Unreviewed.
24430
24431         Restore code deleted in http://trac.webkit.org/changeset/133331.
24432
24433         * bindings/v8/IntrusiveDOMWrapperMap.h:
24434
24435 2012-11-02  Simon Fraser  <simon.fraser@apple.com>
24436
24437         Enable SUBPIXEL_LAYOUT on Mac
24438         https://bugs.webkit.org/show_bug.cgi?id=101076
24439
24440         Reviewed by Dave Hyatt.
24441
24442         Define ENABLE_SUBPIXEL_LAYOUT and include it in FEATURE_DEFINES.
24443
24444         * Configurations/FeatureDefines.xcconfig:
24445
24446 2012-11-02  Lianghui Chen  <liachen@rim.com>
24447
24448         [BlackBerry] ResourceHandle::cancel() in ResourceHandleBlackBerry should setClient to null.
24449         https://bugs.webkit.org/show_bug.cgi?id=101082
24450
24451         Internal PR: 235410.
24452         Patch suggested by George Staikos, prepared by Lyon Chen.
24453         Reviewed by Yong Li.
24454
24455         ResourceHandle::cancel() should call setClient(0) to close the window
24456         during which it has been cancelled but its client is still there and can
24457         be called.
24458
24459         No new tests as it's a code improvement without obvious bug.
24460
24461         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
24462         (WebCore::ResourceHandle::cancel):
24463
24464 2012-11-02  Anders Carlsson  <andersca@apple.com>
24465
24466         Add a PluginInactive plug-in unavailability reason
24467         https://bugs.webkit.org/show_bug.cgi?id=101089
24468
24469         Reviewed by Sam Weinig.
24470
24471         This is to be used by Mac WebKit and WebKit2 shortly.
24472
24473         * English.lproj/Localizable.strings:
24474         * platform/LocalizedStrings.cpp:
24475         (WebCore::inactivePluginText):
24476         (WebCore):
24477         * platform/LocalizedStrings.h:
24478         (WebCore):
24479         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
24480         (WebCore::inactivePluginText):
24481         (WebCore):
24482         * platform/efl/LocalizedStringsEfl.cpp:
24483         (WebCore::inactivePluginText):
24484         (WebCore):
24485         * platform/gtk/LocalizedStringsGtk.cpp:
24486         (WebCore::inactivePluginText):
24487         (WebCore):
24488         * platform/qt/LocalizedStringsQt.cpp:
24489         (WebCore::inactivePluginText):
24490         (WebCore):
24491         * rendering/RenderEmbeddedObject.cpp:
24492         (WebCore::unavailablePluginReplacementText):
24493         * rendering/RenderEmbeddedObject.h:
24494
24495 2012-11-02  Rob Buis  <rbuis@rim.com>
24496
24497         [CMAKE] Remove QNX specific section
24498         https://bugs.webkit.org/show_bug.cgi?id=101063
24499
24500         Reviewed by Daniel Bates.
24501
24502         We do not need the QNX section anymore, so also remove the FEATURE_DEFINES_CSS variable as it
24503         equals FEATURE_DEFINES_WITH_SPACE_SEPARATOR.
24504
24505         * CMakeLists.txt:
24506
24507 2012-11-02  Michael Saboff  <msaboff@apple.com>
24508
24509         visitedHashLink() converts 8 bit URLs and attributes to 16 bits.
24510         https://bugs.webkit.org/show_bug.cgi?id=101014
24511
24512         Reviewed by Geoffrey Garen.
24513
24514         Converted most of the static methods to templated based on character type.  Changed visitedHashLink to 
24515         check bitness of both the base URL and attribute.  If both are 8 bit, then we process using the LChar
24516         version of the templated methods.  Otherwise we use the 16 bit flavor.
24517
24518         Changes covered by existing tests.
24519
24520         * platform/LinkHash.cpp:
24521         (WebCore::findSlashDotDotSlash):
24522         (WebCore::findSlashSlash):
24523         (WebCore::findSlashDotSlash):
24524         (WebCore::containsColonSlashSlash):
24525         (WebCore::squeezeOutNullCharacters):
24526         (WebCore::cleanSlashDotDotSlashes):
24527         (WebCore::mergeDoubleSlashes):
24528         (WebCore::cleanSlashDotSlashes):
24529         (WebCore::cleanPath):
24530         (WebCore::matchLetter):
24531         (WebCore::needsTrailingSlash):
24532         (WebCore::visitedURLInline):
24533         (WebCore::visitedURL):
24534         (WebCore::visitedLinkHash):
24535
24536 2012-11-02  Ian Vollick  <vollick@chromium.org>
24537
24538         Support invalidation tracking for composited layers
24539         https://bugs.webkit.org/show_bug.cgi?id=97801
24540
24541         Reviewed by Simon Fraser.
24542
24543         GraphicsLayers now store invalidated rects and can include them in
24544         the layer tree dump.
24545
24546         Test: compositing/repaint/invalidations-on-composited-layers.html
24547
24548         * WebCore.exp.in:
24549           Exports FrameView::resetTrackedRepaints()
24550         * page/FrameView.cpp:
24551         (WebCore::FrameView::setTracksRepaints):
24552           Notifies each compositor that we are starting/stopping repaints.
24553         (WebCore::FrameView::resetTrackedRepaints):
24554           Moved implementation to the cpp file.
24555         * platform/graphics/GraphicsLayer.cpp:
24556         (WebCore::GraphicsLayer::~GraphicsLayer):
24557           Clears the repaint rects associated with this layer.
24558         (WebCore::GraphicsLayer::resetTrackedRepaints):
24559           Clears the repaint rects associated with this layer.
24560           Note that the repaint rects are stored in a statically allocated
24561           HashMap to avoid using space on the graphics layers.
24562         (WebCore::GraphicsLayer::addRepaintRect):
24563           Adds a repaint rect to list associated with this layer in the
24564           hash map mentioned above.
24565         (WebCore::GraphicsLayer::dumpProperties):
24566           This has been modified to include the repaint rects in the dump
24567           if they've been requested.
24568         * platform/graphics/GraphicsLayerClient.h:
24569         (WebCore::GraphicsLayerClient::isTrackingRepaints):
24570           This is how graphics layers check if repaint tracking is happening.
24571           Returns false by default.
24572         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
24573         (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
24574         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
24575         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
24576           These now call GraphicsLayer::addRepaintRect as necessary.
24577         * platform/graphics/ca/GraphicsLayerCA.cpp:
24578         (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
24579           Now calls GraphicsLayer::addRepaintRect as necessary.
24580         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
24581         (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
24582         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
24583         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
24584           These now call GraphicsLayer::addRepaintRect as necessary.
24585         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
24586         (WebCore::GraphicsLayerClutter::setNeedsDisplay):
24587         (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect):
24588           These now call GraphicsLayer::addRepaintRect as necessary.
24589         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
24590         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
24591         (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
24592         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
24593           These now call GraphicsLayer::addRepaintRect as necessary.
24594         * rendering/RenderLayerBacking.cpp:
24595         (WebCore::RenderLayerBacking::isTrackingRepaints):
24596           Required since this is a GraphicsLayerClient.
24597         * rendering/RenderLayerCompositor.cpp:
24598         (WebCore::RenderLayerCompositor::layerTreeAsText):
24599           Now accepts a flag to include the repaint rects in the layer tree
24600           dump.
24601         (WebCore::resetTrackedRepaintRectsRecursive):
24602           Clears the repaint rects on all graphics layers.
24603         (WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
24604           Clears the repaint rects on all graphics layers.
24605         (WebCore::RenderLayerCompositor::isTrackingRepaints):
24606           Required since this is a GraphicsLayerClient.
24607         * testing/Internals.cpp:
24608         (WebCore::Internals::layerTreeAsText):
24609         * testing/Internals.h:
24610         * testing/Internals.idl:
24611           The internals changes plumb the new flag for including the repaint
24612           rects in the layer tree dump.
24613
24614 2012-11-02  Adam Barth  <abarth@webkit.org>
24615
24616         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
24617         https://bugs.webkit.org/show_bug.cgi?id=100973
24618
24619         Reviewed by Stephen White.
24620
24621         This is the first step towards using intrusive DOM wrapper maps more
24622         widely in WebCore (see
24623         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
24624         for more context).
24625
24626         * bindings/v8/DOMDataStore.cpp:
24627         (WebCore::DOMDataStore::DOMDataStore):
24628         * bindings/v8/IntrusiveDOMWrapperMap.h:
24629         (WebCore):
24630         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
24631
24632 2012-11-02  Adam Barth  <abarth@webkit.org>
24633
24634         ASSERT in RenderLayer::hitTestContents can fire
24635         https://bugs.webkit.org/show_bug.cgi?id=99656
24636
24637         Reviewed by Eric Seidel.
24638
24639         The issue is that updateHitTestResult and addNodeToRectBasedTestResult
24640         are using two different nodes. Since they aren't consistent, we violate
24641         assertions about only setting the inner node if we're doing a
24642         rect-based hit test. This patch makes the two consistent.
24643
24644         Test: fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html
24645
24646         * rendering/RenderBlock.cpp:
24647         (WebCore::RenderBlock::nodeForHitTest):
24648         (WebCore):
24649         (WebCore::RenderBlock::nodeAtPoint):
24650         (WebCore::RenderBlock::updateHitTestResult):
24651         * rendering/RenderBlock.h:
24652         (RenderBlock):
24653
24654 2012-11-02  Mike West  <mkwst@chromium.org>
24655
24656         Prefer 'Content-Security-Policy' to 'X-WebKit-CSP'.
24657         https://bugs.webkit.org/show_bug.cgi?id=101043
24658
24659         Reviewed by Adam Barth.
24660
24661         The canonical 'Content-Security-Policy' header landed in 133095, but we
24662         missed a few tests while updating to the new hotness. We also should
24663         start using the canonical header for the inspector.
24664
24665         This patch should have no visible change; tests should continue to pass
24666         with the new header, just as they did with the old header.
24667
24668         * inspector/front-end/inspector.html:
24669
24670 2012-11-02  Adam Barth  <abarth@webkit.org>
24671
24672         ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
24673         https://bugs.webkit.org/show_bug.cgi?id=100711
24674
24675         Reviewed by Eric Seidel.
24676
24677         No one is actively working on ENABLE(UNDO_MANAGER). There are some
24678         tricky lifetime issues in the UndoManager API that are complicating
24679         ongoing work to improve the interaction between WebCore and the garbage
24680         collector. Rather than leave this code in a broken state, we should
24681         remove it for the time being. We can always restore it from the svn
24682         history when there is an active owner for this code.
24683
24684         * CMakeLists.txt:
24685         * Configurations/FeatureDefines.xcconfig:
24686         * DerivedSources.cpp:
24687         * DerivedSources.make:
24688         * DerivedSources.pri:
24689         * GNUmakefile.features.am:
24690         * GNUmakefile.list.am:
24691         * Target.pri:
24692         * UseJSC.cmake:
24693         * UseV8.cmake:
24694         * WebCore.gypi:
24695         * WebCore.vcproj/WebCore.vcproj:
24696         * WebCore.xcodeproj/project.pbxproj:
24697         * bindings/js/DOMTransaction.cpp: Removed.
24698         * bindings/js/DOMTransaction.h: Removed.
24699         * bindings/js/JSBindingsAllInOne.cpp:
24700         * bindings/js/JSUndoManagerCustom.cpp: Removed.
24701         * bindings/v8/DOMTransaction.cpp: Removed.
24702         * bindings/v8/DOMTransaction.h: Removed.
24703         * bindings/v8/V8HiddenPropertyName.h:
24704         (WebCore):
24705         * bindings/v8/custom/V8DOMTransactionCustom.cpp: Removed.
24706         * bindings/v8/custom/V8UndoManagerCustom.cpp: Removed.
24707         * css/PropertySetCSSStyleDeclaration.cpp:
24708         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
24709         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
24710         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
24711         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
24712         * dom/CharacterData.cpp:
24713         (WebCore::CharacterData::setDataAndUpdate):
24714         * dom/ContainerNode.cpp:
24715         (WebCore::willRemoveChild):
24716         (WebCore::willRemoveChildren):
24717         (WebCore::updateTreeAfterInsertion):
24718         * dom/Document.cpp:
24719         (WebCore::Document::Document):
24720         * dom/Document.h:
24721         (WebCore):
24722         (Document):
24723         * dom/Document.idl:
24724         * dom/Element.cpp:
24725         (WebCore::Element::willModifyAttribute):
24726         * editing/CompositeEditCommand.h:
24727         * editing/DOMTransaction.idl: Removed.
24728         * editing/DOMTransactionStep.cpp: Removed.
24729         * editing/DOMTransactionStep.h: Removed.
24730         * editing/Editor.cpp:
24731         (WebCore::Editor::appliedEditing):
24732         (WebCore::Editor::unappliedEditing):
24733         (WebCore::Editor::reappliedEditing):
24734         (WebCore::Editor::canUndo):
24735         (WebCore::Editor::undo):
24736         (WebCore::Editor::canRedo):
24737         (WebCore::Editor::redo):
24738         * editing/UndoManager.cpp: Removed.
24739         * editing/UndoManager.h: Removed.
24740         * editing/UndoManager.idl: Removed.
24741         * editing/UndoStep.h:
24742         (UndoStep):
24743
24744 2012-11-02  Mike West  <mkwst@chromium.org>
24745
24746         Measure the usage of the various CSP headers.
24747         https://bugs.webkit.org/show_bug.cgi?id=100974
24748
24749         Reviewed by Adam Barth.
24750
24751         Currently, we're collecting metrics regarding usage of the
24752         'X-WebKit-CSP' and 'X-WebKit-CSP-Report-Only' HTTP headers. We've
24753         recently added support for the canonical 'Content-Security-Policy'
24754         and 'Content-Security-Policy-Report-Only' headers. This patch adds
24755         those headers explicitly into the metrics, giving insight into uptake
24756         of the unprefixed header, and into usage of pure reporting vs.
24757         enforcement.
24758
24759         No visible functionality should change; all Content Security Policy
24760         tests should continue to pass.
24761
24762         * page/ContentSecurityPolicy.cpp:
24763         (WebCore::ContentSecurityPolicy::didReceiveHeader):
24764             Convert the CSP header type into a FeatureObserver::Feature, and
24765             observe it.
24766         * page/FeatureObserver.h:
24767             Add three new values to the enum to cover the new header types.
24768
24769 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24770
24771         Fix silly mistake from http://trac.webkit.org/changeset/133315.
24772         Forgot to remove the "!".
24773
24774         * css/StyleResolver.cpp:
24775         (WebCore::StyleResolver::canShareStyleWithElement):
24776
24777 2012-11-02  Tom Sepez  <tsepez@chromium.org>
24778
24779         Support X-XSS-Protection: report=URL header syntax in XSSAuditor.
24780         https://bugs.webkit.org/show_bug.cgi?id=100892
24781
24782         Reviewed by Adam Barth.
24783
24784         This patch adds a security feature which allows a violation report to be sent back
24785         to a site when the XSSAuditor detects a reflected XSS against it.  It uses the same
24786         reporting mechanism as for CSP violation reports.
24787
24788         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-5.html
24789                http/tests/security/xssAuditor/malformed-xss-protection-header-6.html
24790                http/tests/security/xssAuditor/malformed-xss-protection-header-7.html
24791                http/tests/security/xssAuditor/malformed-xss-protection-header-8.html
24792                http/tests/security/xssAuditor/malformed-xss-protection-header-9.html
24793                http/tests/security/xssAuditor/report-script-tag.html
24794                http/tests/security/xssAuditor/xss-protection-parsing-03.html
24795                http/tests/security/xssAuditor/xss-protection-parsing-04.html
24796
24797         * html/parser/XSSAuditor.cpp:
24798         (WebCore::XSSAuditor::XSSAuditor):
24799         (WebCore::XSSAuditor::init):
24800         (WebCore::XSSAuditor::filterToken):
24801         Invoke Ping loader's violation reporting, if requested, when a reflected
24802         XSS is detected.
24803         
24804         * html/parser/XSSAuditor.h:
24805         XSSAuditor class need to store the report URL as well as the undigested versions
24806         of the request URL and request body for reporting.
24807
24808         * loader/MixedContentChecker.cpp:
24809         (WebCore):
24810         * loader/MixedContentChecker.h:
24811         (MixedContentChecker):
24812         Make isMixedContent() method public.
24813
24814         * loader/PingLoader.cpp:
24815         (WebCore::PingLoader::sendViolationReport):
24816         * loader/PingLoader.h:
24817         (PingLoader):
24818         * page/ContentSecurityPolicy.cpp:
24819         (WebCore::ContentSecurityPolicy::reportViolation):
24820         Renamed reportContentSecurityPolicyViolation() method to sendViolationReport(),
24821         since this is now used to send more than just CSP violations.
24822         
24823         * platform/network/HTTPParsers.cpp:
24824         (WebCore):
24825         (WebCore::skipEquals):
24826         (WebCore::skipValue):
24827         (WebCore::parseXSSProtectionHeader):
24828         * platform/network/HTTPParsers.h:
24829         Parse and return report= directive in X-XSS-Protection header.
24830         
24831 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24832
24833         Unreviewed, rolling out r133313.
24834         http://trac.webkit.org/changeset/133313
24835         https://bugs.webkit.org/show_bug.cgi?id=101078
24836
24837         "A lot of tests hit the ASSERTs introduced by this patch"
24838         (Requested by haraken on #webkit).
24839
24840         * bindings/v8/V8DOMWrapper.h:
24841         (WebCore::V8DOMWrapper::setDOMWrapper):
24842
24843 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24844
24845         Unreviewed, rolling out r132913.
24846         http://trac.webkit.org/changeset/132913
24847         https://bugs.webkit.org/show_bug.cgi?id=91850
24848
24849         Caused performance regressions.
24850         See https://bugs.webkit.org/show_bug.cgi?id=100872 for details.
24851
24852         * bindings/v8/V8PerIsolateData.cpp:
24853         (WebCore::V8PerIsolateData::visitExternalStrings):
24854         * bindings/v8/V8StringResource.cpp:
24855         (StringTraits):
24856         (WebCore::v8StringToWebCoreString):
24857         * bindings/v8/V8ValueCache.cpp:
24858         (WebCore::makeExternalString):
24859         (WebCore::WebCoreStringResource::visitStrings):
24860         * bindings/v8/V8ValueCache.h:
24861         (WebCore::WebCoreStringResource::WebCoreStringResource):
24862         (WebCore::WebCoreStringResource::~WebCoreStringResource):
24863         (WebCore::WebCoreStringResource::data):
24864         (WebCoreStringResource):
24865         (WebCore::WebCoreStringResource::length):
24866         (WebCore::WebCoreStringResource::atomicString):
24867         (WebCore::WebCoreStringResource::toStringResource):
24868
24869 2012-11-02  Martin Robinson  <mrobinson@igalia.com>
24870
24871         [GTK] Remove dependency on SoupPasswordManager
24872         https://bugs.webkit.org/show_bug.cgi?id=100775
24873
24874         Reviewed by Carlos Garcia Campos.
24875
24876         Remember passwords using libsecret instead of SoupPasswordManager. We accomplish this using
24877         a new class, CredentialBackingStore. CredentialBackingStore will soon be the thing that backs
24878         CredentialStoreGtk. The name is based on the name of a similar class from the BlackBerry port.
24879
24880         No new tests. This does not change behavior.
24881
24882         * GNUmakefile.am: Add libsecret flags to the build and the new directory to the include list.
24883         * GNUmakefile.list.am: Add new files to the source list.
24884         * platform/gtk/GRefPtrGtk.cpp: Add support for SecretValue to GRefPtrGtk.
24885         * platform/gtk/GtkAuthenticationDialog.cpp: Replace interaction with SoupPasswordManger with
24886         interaction with the CredentialBackingStore. Remove all conditional SoupPasswordManager guards.
24887         * platform/gtk/GtkAuthenticationDialog.h: Ditto.
24888         * platform/network/gtk/CredentialBackingStore.cpp: Added.
24889         * platform/network/gtk/CredentialBackingStore.h: Added.
24890
24891 2012-11-02  Jinwoo Song  <jinwoo7.song@samsung.com>
24892
24893         Fix build warning [-Wswitch]
24894         https://bugs.webkit.org/show_bug.cgi?id=101029
24895
24896         Reviewed by Alexey Proskuryakov.
24897
24898         Fix build warning message: enumeration value ‘Viewport’ not handled in switch [-Wswitch]
24899         in Source/WebCore/css/StyleSheetContents.cpp.
24900         Add case statement for 'Viewport' with the CSS_DEVICE_ADAPTATION macro.
24901
24902         * css/StyleSheetContents.cpp:
24903         (WebCore::childRulesHaveFailedOrCanceledSubresources):
24904
24905 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24906
24907         Move m_element checks out of canShareStyle into locateSharedStyle
24908         https://bugs.webkit.org/show_bug.cgi?id=101070
24909
24910         Reviewed by Darin Adler.
24911
24912         Can shareStyleWithElement is called for each sibling as we look for a
24913         shareElement. locateSharedStyle is called once for the element we're
24914         trying to find a style for. Checks that only depend on the latter
24915         element should, thus be in locateSharedStyle.
24916
24917         No new tests. There should be no change in behavior, except possibly
24918         a performance improvement in some cases.
24919
24920         * css/StyleResolver.cpp:
24921         (WebCore::StyleResolver::canShareStyleWithElement):
24922         (WebCore::StyleResolver::locateSharedStyle):
24923
24924 2012-11-02  Kentaro Hara  <haraken@chromium.org>
24925
24926         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
24927         https://bugs.webkit.org/show_bug.cgi?id=101054
24928
24929         Reviewed by Adam Barth.
24930
24931         I'm investigating a Chromium crash bug:
24932         http://code.google.com/p/chromium/issues/detail?id=155942
24933
24934         I've not yet identified the root cause (because I can't reproduce
24935         the crash), but it looks like we are storing NULL pointers to
24936         V8 internal fields. Just in case, we can add an ASSERT() to
24937         guarantee that NULL pointers are never stored. (Also I'm hoping
24938         that this ASSERT() will give me more debug information.)
24939
24940         No tests. No change in behavior.
24941
24942         * bindings/v8/V8DOMWrapper.h:
24943         (WebCore::V8DOMWrapper::setDOMWrapper):
24944
24945 2012-11-02  Kevin Ellis  <kevers@chromium.org>
24946
24947         Imrpove scoring in touch adjustment to address bias towards smaller targets.
24948         https://bugs.webkit.org/show_bug.cgi?id=101046
24949
24950         Reviewed by Antonio Gomes.
24951
24952         Update the touch overlap score for touch adjustmetn to normalize
24953         with respect to the maximum possible overlap rather than the size
24954         of the target element.  This change enables good overlap scores for
24955         small and large targets alike.  Prior to the patch it was not possible
24956         to get a good overlap score for a sufficiently larget target.
24957
24958         Covered by existing tests, which have been updated to reflect the
24959         intended behavior.
24960
24961         * page/TouchAdjustment.cpp:
24962         (WebCore::TouchAdjustment::hybridDistanceFunction):
24963
24964 2012-11-02  Mike West  <mkwst@chromium.org>
24965
24966         Web Inspector: Repeated errors are rendered incorrectly: link is not floating to the right.
24967         https://bugs.webkit.org/show_bug.cgi?id=101032
24968
24969         Reviewed by Yury Semikhatsky.
24970
24971         https://bugs.webkit.org/show_bug.cgi?id=100525 incorrectly added
24972         '-webkit-flex: 1' only to the list generated for errors in the console.
24973         It should have been added to normal warning text as well. This patch
24974         fixes the problem.
24975
24976         * inspector/front-end/inspector.css:
24977         (.repeated-message .outline-disclosure, .repeated-message > .console-message-text):
24978
24979 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
24980
24981         Web Inspector: Timeline: show popup for CPU bars.
24982         https://bugs.webkit.org/show_bug.cgi?id=100951
24983
24984         Reviewed by Pavel Feldman.
24985
24986         Each CPU bar can represent a combination of several shorter messages.
24987         We should show information about combined messages - start time,
24988         total duration, CPU time, message count.
24989
24990         * English.lproj/localizedStrings.js: Added "Message Count" string.
24991         * inspector/front-end/TimelinePanel.js:
24992         (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
24993         Supply elements with underlying info.
24994         * inspector/front-end/TimelinePresentationModel.js:
24995         (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
24996         Added.
24997
24998 2012-11-02  Alexei Filippov  <alph@chromium.org>
24999
25000         Web Inspector: Network panel grid UI is misaligned after r132888
25001         https://bugs.webkit.org/show_bug.cgi?id=101050
25002
25003         Rollback the change to basic data grid css and move it to the native memory
25004         snapshot datagrid css.
25005
25006         Reviewed by Alexander Pavlov.
25007
25008         * inspector/front-end/dataGrid.css:
25009         (.data-grid td):
25010         * inspector/front-end/nativeMemoryProfiler.css:
25011         (.native-snapshot-view .data-grid td):
25012
25013 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
25014
25015         Unreviewed, rolling out r133303.
25016         http://trac.webkit.org/changeset/133303
25017         https://bugs.webkit.org/show_bug.cgi?id=101068
25018
25019         "Broke qt wk2 build (seems like bots fails to rerun qmake if
25020         needed)" (Requested by kbalazs on #webkit).
25021
25022         * Target.pri:
25023         * WebCore.pri:
25024         * platform/PlatformStrategies.cpp:
25025         (WebCore):
25026         * platform/qt/QtTestSupport.h: Removed.
25027
25028 2012-11-02  Balazs Kelemen  <kbalazs@webkit.org>
25029
25030         [Qt][WK2] setPlatformStrategies always asserts after r132744
25031         https://bugs.webkit.org/show_bug.cgi?id=100838
25032
25033         Reviewed by Simon Hausmann.
25034
25035         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
25036         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
25037         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
25038         code. In order to keep the behavior, this patch adds exported helpers to WebCore
25039         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
25040         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
25041         add it to the WebKit1 API for the time being, but my goal was to move in the direction
25042         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
25043         in non production mode.
25044
25045         Basically covered by all tests.
25046
25047         * Target.pri:
25048         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
25049         initializeTestFonts uses it.
25050         * platform/PlatformStrategies.cpp:
25051         (WebCore): Zero initialize the global static variable as it is expected by the functions
25052         below. It is a side fix. It seems like it has not been shown on debug WebKit2 bots because
25053         common runtime environments tend to zero initialize statics by default - but I don't think
25054         we should rely on that.
25055         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
25056         is also under that.
25057         (WebKit):
25058         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
25059         without calling initializeWebCoreQt.
25060         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
25061         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
25062         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
25063         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
25064         the job even if we would stop clearing all caches between tests. Also moved the call to
25065         QFontDatabase::removeAllApplicationFonts from callers to here.
25066         * platform/qt/QtTestSupport.h:
25067         (WebKit):
25068         (QtTestSupport):
25069
25070 2012-11-02  Kent Tamura  <tkent@chromium.org>
25071
25072         Optimize DateTimeFormat::quoteAndAppendLiteral output
25073         https://bugs.webkit.org/show_bug.cgi?id=101040
25074
25075         Reviewed by Kentaro Hara.
25076
25077         In LDML date format pattern, only ASCII alphabet and quote have special
25078         roles. So we don't need to quote the input string if it doesn't contain
25079         them.
25080
25081         No new tests. Updated WebKit/chromium/tests/LocaleWinTest.cpp
25082
25083         * platform/text/DateTimeFormat.cpp:
25084         (WebCore::isASCIIAlphabetOrQuote): A helper to check special characters.
25085         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
25086         Append the input string as is if it has no special character.
25087
25088 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
25089
25090         Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
25091         https://bugs.webkit.org/show_bug.cgi?id=101052
25092
25093         Reviewed by Yury Semikhatsky.
25094
25095         I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
25096         MemoryAgent can visit it but instrumentation for these containers report no objectType.
25097         It means that addRootObject method needs to accept objectType property as an argument.
25098         Otherwise I would have had to create a proxy class with proper objectType.
25099
25100         * dom/WebCoreMemoryInstrumentation.cpp:
25101         (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
25102         (WebCore):
25103         * dom/WebCoreMemoryInstrumentation.h:
25104         (WebCoreMemoryInstrumentation):
25105         (WebCore):
25106         * inspector/InspectorMemoryAgent.cpp:
25107         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
25108
25109 2012-11-02  Michael Brüning  <michael.bruning@digia.com>
25110
25111         [Qt][WK2] ASSERT hit for every mouse click
25112         https://bugs.webkit.org/show_bug.cgi?id=100607
25113
25114         Reviewed by Jocelyn Turcotte.
25115
25116         Changed the logic of absolutePathForRenderer to use the first highlight box as the mid box 
25117         by uniting the two in case the mid box is empty. This allows the first box to be merged with
25118         the last box should they intersect, and thereby prevents an ASSERT in addHighlightRect that is
25119         triggered by two intersecting boxes being passed to addHighlightRect as separate ones.
25120
25121         Also, this patch removes some superfluous checks for LayoutRect::isEmpty, which is being checked
25122         in LayoutRect::intersects already.
25123
25124         No new tests, but added manual test: ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html
25125
25126         * page/GestureTapHighlighter.cpp:
25127
25128 2012-11-02  Arpita Bahuguna  <arpitabahuguna@gmail.com>
25129
25130         Regression r130057: Improper preferred width calculation when an inline replaced object, wrapped in an inline flow, follows some text.
25131         https://bugs.webkit.org/show_bug.cgi?id=99442
25132
25133         Reviewed by Levi Weintraub.
25134
25135         Extra width is displayed after an inline replaced object that follows some
25136         text (not ending in a whitespace) within an inline-block. This is due to
25137         the end width (endMin) of the text object being carried forward (via inlineMin)
25138         and added onto the next line containing the inline replaced object.
25139
25140         This was caused as a regression to, or rather became apparent post the fix
25141         http://trac.webkit.org/changeset/130057 which fixed the block's preferred
25142         width when a renderInline with width contained an inline replaced object.
25143
25144         Test: fast/block/block-with-inline-replaced-child-following-text.html
25145
25146         * rendering/RenderBlock.cpp:
25147         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
25148         Introduced another flag (shouldBreakLineAfterText) which is set when
25149         our current Text line (object) does not end in a whitespace, thereby
25150         implying that there could be more text following, for which the end width
25151         needs to be carried forward onto the next line.
25152
25153         In case the following object instead turns out to be an Inline Replaced
25154         object, we should terminate our previous line and reset this extra width.
25155         This is now being handled by checking for the shouldBreakLineAfterText
25156         flag while processing Inline Replaced objects.
25157
25158         Once set, shouldBreakLineAfterText shall be reset only if we get another
25159         Text object that ends in a whitespace, signifying the termination of
25160         that text line. For all other cases, we persist with this flag through
25161         the block's inline contents.
25162
25163 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
25164
25165         Web Inspector: Console: remove obsolete ctrl-shift-m shortcut
25166         https://bugs.webkit.org/show_bug.cgi?id=101036
25167
25168         Reviewed by Pavel Feldman.
25169
25170         Ctrl-shift-m on console dumps MemoryAgent.getDOMNodeCount
25171         This functionality seems to be obsolete.
25172
25173         * inspector/front-end/ConsoleView.js: Removed shortcut and function.
25174
25175 2012-11-02  Stephen Chenney  <schenney@chromium.org>
25176
25177         SVG classes cause layering violations in platform Font code
25178         https://bugs.webkit.org/show_bug.cgi?id=98513
25179
25180         Reviewed by Eric Seidel.
25181
25182         Add a contained class to save and restore GlpyhPage state in FontFallbackList.
25183         This allows us to remove the layering violation, and several methods, that
25184         previously existed to support SVGTextRunRenderingContext.
25185
25186         No new tests because no change at all in functionality.
25187
25188         * platform/graphics/FontFallbackList.h:
25189         (FontFallbackList):
25190         (GlyphPagesStateSaver): New state save and restore class
25191         (WebCore::FontFallbackList::GlyphPagesStateSaver::GlyphPagesStateSaver): Save GlyphPage state
25192         (WebCore::FontFallbackList::GlyphPagesStateSaver::~GlyphPagesStateSaver): Restore GlyphPage state
25193         * rendering/svg/SVGTextRunRenderingContext.cpp:
25194         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Shift to usage of the new class.
25195
25196 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25197
25198         Web Inspector: Fix compilation errors
25199         https://bugs.webkit.org/show_bug.cgi?id=101027
25200
25201         Reviewed by Yury Semikhatsky.
25202
25203         * inspector/InjectedScriptSource.js:
25204         (.):
25205         * inspector/front-end/NativeMemorySnapshotView.js:
25206         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
25207
25208 2012-11-02  Andreas Kling  <kling@webkit.org>
25209
25210         Only resolve attribute-derived style once per shared ElementAttributeData.
25211         <http://webkit.org/b/100990>
25212
25213         Reviewed by Antti Koivisto.
25214
25215         Track the serialization of the "style" attribute, and the dirtiness of the presentation attribute style
25216         on ElementAttributeData instead of in Node flags.
25217
25218         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
25219         since the state is no longer per-Element.
25220
25221         I've left the presentation attribute cache in there for now, since it covers two additional cases:
25222
25223             - Elements with the same attributes in different order.
25224             - Elements with the same presentation attributes, but with differing non-presentation attributes.
25225
25226         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
25227
25228         * dom/Node.h:
25229         * dom/ElementAttributeData.h:
25230         (WebCore::ElementAttributeData::presentationAttributeStyle):
25231         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
25232         (WebCore::ElementAttributeData::styleAttributeIsDirty):
25233         (WebCore::ElementAttributeData::setStyleAttributeIsDirty):
25234         (WebCore::ElementAttributeData::presentationAttributeStyleIsDirty):
25235         (WebCore::ElementAttributeData::setPresentationAttributeStyleIsDirty):
25236         (ElementAttributeData):
25237         (WebCore::ElementAttributeData::ElementAttributeData):
25238         * dom/Element.cpp:
25239         (WebCore::Element::getAttribute):
25240         * dom/Element.h:
25241         (WebCore::Element::styleAttributeIsDirty):
25242         (WebCore::Element::updateInvalidAttributes):
25243         * dom/StyledElement.cpp:
25244         (WebCore::StyledElement::updateStyleAttribute):
25245         (WebCore::StyledElement::attributeChanged):
25246         (WebCore::StyledElement::styleAttributeChanged):
25247         (WebCore::StyledElement::inlineStyleChanged):
25248         * dom/StyledElement.h:
25249         (WebCore::StyledElement::invalidateStyleAttribute):
25250
25251             Move the "attribute style dirty" and "style attribute valid" node flags to ElementAttributeData
25252             and change them to both use dirty semantics.
25253
25254         * dom/ElementAttributeData.cpp:
25255         (WebCore::ElementAttributeData::cloneDataFrom):
25256
25257             Share the presentation attribute style between cloned elements initially.
25258
25259         * dom/StyledElement.h:
25260         (WebCore::StyledElement::presentationAttributeStyle):
25261         * css/StyleResolver.cpp:
25262         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
25263         (WebCore::StyleResolver::matchAllRules):
25264         (WebCore::StyleResolver::canShareStyleWithElement):
25265         * dom/ElementAttributeData.cpp:
25266         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
25267         (WebCore::ElementAttributeData::reportMemoryUsage):
25268         * inspector/InspectorCSSAgent.cpp:
25269         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
25270
25271             Renamed StyledElement::attributeStyle() to presentationAttributeStyle(). The old name was too
25272             easily confused with "style attribute".
25273
25274         * dom/StyledElement.cpp:
25275         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
25276
25277             Renamed from updateAttributeStyle().
25278
25279 2012-11-01  Kent Tamura  <tkent@chromium.org>
25280
25281         Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
25282         https://bugs.webkit.org/show_bug.cgi?id=101007
25283
25284         Reviewed by Kentaro Hara.
25285
25286         ChromeClient::openDateTimeChooser and Locale::formatDateTime are
25287         necessary if one of date/time input types is enabled and even if
25288         ENABLE_INPUT_MULTIPLE_FIELDS_UI is disabled. So they should be wrapped
25289         with ENABLE(DATE_AND_TIME_INPUT_TYPES).
25290
25291         The following clases are used only for ChromeClient::openDateTimeChooser.
25292         They should be wrapped with the same flag.
25293           - class DateTimeChooser
25294           - class DateTiemChooserClient
25295
25296         The following classes/functions are used for
25297         Locale::formatDateTime. They should be wrapped with the same flag.
25298           - Locale::dateFormat
25299           - Locale::monthFormat
25300           - Locale::timeFormat
25301           - Locale::shortTimeFormat
25302           - Locale::monthLabels
25303           - Locale::shortMonthLabels
25304           - Locale::standAloneMonthLabels
25305           - Locale::shortStandAloneMonthLabels
25306           - class DateTimeFormat
25307
25308         Also, we change the meaning of ENABLE_CALENDAR_PICKER. It meant
25309          1) <input> supports calendar picker UI, and
25310          2) WebCore/Resources/pagepopups/ is used for the calendar UI implementation.
25311         Now ENABLE_CALENDAR_PICKER means only 2.
25312
25313         No new tests because of no behavior changes.
25314
25315         * html/BaseDateAndTimeInputType.h: This is necessary only if date/time
25316         input types are enabled because this is a common super class of
25317         date/time InputType classes.
25318         * html/BaseDateAndTimeInputType.cpp: Ditto.
25319         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Ditto.
25320         * html/BaseChooserOnlyDateAndTimeInputType.h: Ditto.
25321
25322         * page/ChromeClient.h: Change the flag for openDateTimeChooser, and add a comment.
25323         * loader/EmptyClients.cpp: Follow the openDateTimeChooser flag change.
25324         * loader/EmptyClients.h: Ditto.
25325         * platform/DateTimeChooser.h:
25326         This is needed only if ChromeClient::openDateTimeChooser is available.
25327         * platform/DateTimeChooserClient.h: Ditto.
25328
25329         * platform/LocalizedStrings.h:
25330         weekFormatInLDML is necessary if ENABLE(INPUT_TYPE_WEEK) regardless of
25331         ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25332
25333         * platform/text/PlatformLocale.h:
25334         Change the condition for Locale::formatDateTime and the code used by
25335         Locale::formatDateTime.
25336         * platform/text/PlatformLocale.cpp:
25337         (WebCore::Locale::formatDateTime):
25338         This is necessary even if !ENABLE(INPUT_MULTIPLE_FIELDS_UI), to produce
25339         localized representations of date/time values.
25340         * platform/text/LocaleICU.cpp:
25341         Change the condition for the code used by Locale::formatDateTime.
25342         * platform/text/LocaleICU.h: Ditto.
25343         * platform/text/LocaleNone.cpp: Ditto.
25344         * platform/text/mac/LocaleMac.h: Ditto.
25345         * platform/text/mac/LocaleMac.mm: Ditto.
25346         * platform/text/win/LocaleWin.cpp: Ditto.
25347         * platform/text/win/LocaleWin.h: Ditto.
25348         * platform/text/DateTimeFormat.cpp: Ditto.
25349         * platform/text/DateTimeFormat.h: Ditto.
25350
25351         * html/BaseMultipleFieldsDateAndTimeInputType.h:
25352         Remove some #if-#endif for a picker indicator element because
25353         ENABLE_CALENDAR_PICKER meaning is changed.
25354         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
25355
25356         * html/shadow/PickerIndicatorElement.cpp: CALENDAR_PICKER ->
25357         INPUT_MULTIPLE_FIELDS_UI because ENABLE_CALENDAR_PICKER meaning is changed.
25358         * html/shadow/PickerIndicatorElement.h: Ditto.
25359         * rendering/RenderDetailsMarker.cpp: Ditto.
25360         * rendering/RenderDetailsMarker.h: Ditto.
25361         * rendering/RenderTheme.h: Ditto.
25362         * rendering/RenderThemeChromiumCommon.cpp: Ditto.
25363         * rendering/RenderThemeChromiumCommon.h: Ditto.
25364         * rendering/RenderThemeChromiumMac.h: Ditto.
25365         * rendering/RenderThemeChromiumSkia.h: Ditto.
25366
25367 2012-11-02  Zeno Albisser  <zeno@webkit.org>
25368
25369         [Qt] Revert QCocoaNativeInterface workaround from r131720.
25370         https://bugs.webkit.org/show_bug.cgi?id=100842
25371
25372         Reviewed by Simon Hausmann.
25373
25374         After updating Qt5 on the buildbots, the workaround
25375         introduced in r131720 is not needed anymore.
25376
25377         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
25378         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
25379
25380 2012-11-02  Kent Tamura  <tkent@chromium.org>
25381
25382         Add a common base class for date/time input types without inline editing behavior
25383         https://bugs.webkit.org/show_bug.cgi?id=101031
25384
25385         Reviewed by Hajime Morita.
25386
25387         Add BaseChooserOnlyDateAndTimeInputType class, which will support
25388         DateTimeChooserClient, and date/time input types inherit it if
25389         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25390
25391         No new tests. This doesn't change any behavior.
25392
25393         * CMakeLists.txt: Add BaseChooserOnlyDateAndTimeInputType.{cpp,h}.
25394         * GNUmakefile.list.am: Ditto.
25395         * Target.pri: Ditto.
25396         * WebCore.gypi: Ditto.
25397         * WebCore.xcodeproj/project.pbxproj: Ditto.
25398         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Added.
25399         * html/BaseChooserOnlyDateAndTimeInputType.h: Added.
25400
25401         * html/DateInputType.h: Inherit BaseChooserOnlyDateAndTimeInputType if
25402         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25403         * html/DateTimeInputType.h: Ditto.
25404         * html/DateTimeLocalInputType.h: Ditto.
25405         * html/MonthInputType.h: Ditto.
25406         * html/TimeInputType.h: Ditto.
25407         * html/WeekInputType.h: Ditto.
25408
25409 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25410
25411         Web Inspector: [JSC] implement WorkerScriptDebugServer
25412         https://bugs.webkit.org/show_bug.cgi?id=99801
25413
25414         Reviewed by Yury Semikhatsky.
25415
25416         To implement Worker Inspector for JSC.
25417         The virtual function "runEventLoopWhilePaused" is defined, since there are different ways to block
25418         the JS running in worker-context and normal page-context.
25419         The function "isContentScript" now is virtual because the original invoked functions are useless
25420         and cause problem in worker-context.
25421         In function "WebCore::WorkerScriptController::attachDebugger", we invoke "initScriptIfNeeded" to
25422         ensure the JSGloblalObject exist in the case of attaching Debugger before executing the worker
25423         JS code (Pause on start).
25424
25425         No new test case.
25426
25427         * bindings/js/PageScriptDebugServer.cpp:
25428         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
25429         (WebCore):
25430         * bindings/js/PageScriptDebugServer.h:
25431         (PageScriptDebugServer):
25432         * bindings/js/ScriptDebugServer.cpp:
25433         (WebCore::ScriptDebugServer::isContentScript):
25434         (WebCore::ScriptDebugServer::pauseIfNeeded):
25435         * bindings/js/ScriptDebugServer.h:
25436         (JSC):
25437         (ScriptDebugServer):
25438         * bindings/js/WorkerScriptController.cpp:
25439         (WebCore::WorkerScriptController::attachDebugger):
25440         (WebCore):
25441         (WebCore::WorkerScriptController::detachDebugger):
25442         * bindings/js/WorkerScriptController.h:
25443         (WorkerScriptController):
25444         * bindings/js/WorkerScriptDebugServer.cpp:
25445         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
25446         (WebCore):
25447         (WebCore::WorkerScriptDebugServer::addListener):
25448         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
25449         (WebCore::WorkerScriptDebugServer::removeListener):
25450         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
25451         * bindings/js/WorkerScriptDebugServer.h:
25452         (WorkerScriptDebugServer):
25453         (WebCore::WorkerScriptDebugServer::getListenersForGlobalObject):
25454         (WebCore::WorkerScriptDebugServer::isContentScript):
25455
25456 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
25457
25458         Compilation warning in Node.cpp when USERSELECT_ALL is disabled
25459         https://bugs.webkit.org/show_bug.cgi?id=101025
25460
25461         Reviewed by Ryosuke Niwa.
25462
25463         The parameter 'treatment' is not used when USERSELECT_ALL is disabled. 
25464
25465         * dom/Node.cpp:
25466         (WebCore::Node::rendererIsEditable):
25467
25468 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
25469
25470         Web Inspector: Middle click closes an editor and pastes selection into current editor on Linux
25471         https://bugs.webkit.org/show_bug.cgi?id=100743
25472
25473         Reviewed by Alexander Pavlov.
25474
25475         Editor now consumes all middle mouse button mouse ups except for the ones in the main panel.
25476         TabbedPane now consumes all middle mouse button mouse ups as well.
25477         Navigator view does not pass focus anymore if element was selected with middle mouse button.
25478
25479         * inspector/front-end/DefaultTextEditor.js:
25480         (.preventDefaultOnMouseUp):
25481         (.consumeMouseUp):
25482         * inspector/front-end/NavigatorView.js:
25483         (WebInspector.NavigatorSourceTreeElement.prototype.ondblclick):
25484         * inspector/front-end/TabbedPane.js:
25485         (WebInspector.TabbedPane):
25486         (WebInspector.TabbedPane.prototype.onMouseUp):
25487         (WebInspector.TabbedPane.prototype.onMouseClick):
25488
25489 2012-11-01  Ilya Tikhonovsky  <loislo@chromium.org>
25490
25491         Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com
25492         https://bugs.webkit.org/show_bug.cgi?id=100866
25493
25494         Reviewed by Yury Semikhatsky.
25495
25496         Plain vanilla memory instrumentation code for HTMLInputElement which has a ElementShadow.
25497
25498         * CMakeLists.txt:
25499         * GNUmakefile.list.am:
25500         * Target.pri:
25501         * WebCore.gypi:
25502         * WebCore.vcproj/WebCore.vcproj:
25503         * dom/DocumentOrderedMap.cpp:
25504         (WebCore::DocumentOrderedMap::reportMemoryUsage):
25505         (WebCore):
25506         * dom/DocumentOrderedMap.h:
25507         (DocumentOrderedMap):
25508         * dom/Element.cpp:
25509         (WebCore::Element::reportMemoryUsage):
25510         (WebCore):
25511         * dom/Element.h:
25512         * dom/ElementRareData.cpp: Added.
25513         (WebCore):
25514         (WebCore::ElementRareData::reportMemoryUsage):
25515         * dom/ElementRareData.h:
25516         (ElementRareData):
25517         * dom/ElementShadow.cpp:
25518         (WebCore::ElementShadow::reportMemoryUsage):
25519         (WebCore):
25520         * dom/ElementShadow.h:
25521         (ElementShadow):
25522         * dom/Node.cpp:
25523         (WebCore::Node::reportMemoryUsage):
25524         * dom/NodeRareData.cpp: Added.
25525         (WebCore):
25526         (WebCore::NodeListsNodeData::reportMemoryUsage):
25527         (WebCore::NodeRareData::reportMemoryUsage):
25528         * dom/NodeRareData.h:
25529         (NodeListsNodeData):
25530         (NodeRareData):
25531         * dom/ShadowRoot.cpp:
25532         (WebCore):
25533         (WebCore::ShadowRoot::reportMemoryUsage):
25534         * dom/ShadowRoot.h:
25535         (ShadowRoot):
25536         * dom/TreeScope.cpp:
25537         (WebCore::TreeScope::reportMemoryUsage):
25538         (WebCore):
25539         * dom/TreeScope.h:
25540         (TreeScope):
25541         * html/HTMLFormControlElement.cpp:
25542         (WebCore::HTMLFormControlElement::reportMemoryUsage):
25543         (WebCore):
25544         * html/HTMLFormControlElement.h:
25545         (HTMLFormControlElement):
25546         * html/HTMLInputElement.cpp:
25547         (WebCore::HTMLInputElement::reportMemoryUsage):
25548         (WebCore):
25549         * html/HTMLInputElement.h:
25550         (HTMLInputElement):
25551         * html/HTMLTextFormControlElement.cpp:
25552         (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
25553         (WebCore):
25554         * html/HTMLTextFormControlElement.h:
25555         (HTMLTextFormControlElement):
25556
25557 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25558
25559         Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
25560         https://bugs.webkit.org/show_bug.cgi?id=97471
25561
25562         Reviewed by Pavel Feldman.
25563
25564         This patch is partly based on patch by Otto Derek Cheung <otcheung@rim.com>.
25565         Refactored CookieParser so that all cookies in front-end were WebInspector.Cookie object.
25566         Cookie table can now show Max-Age as well as Expires attribute of a cookie.
25567         Fixed expiresDate calculation.
25568         Removed getters from CookieParser for better compilation.
25569
25570         * English.lproj/localizedStrings.js:
25571         * inspector/front-end/AuditRules.js:
25572         (WebInspector.AuditRules.CookieRuleBase.prototype.mapResourceCookies):
25573         (WebInspector.AuditRules.CookieSizeRule.prototype._average):
25574         (WebInspector.AuditRules.CookieSizeRule.prototype._max):
25575         (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
25576         * inspector/front-end/CookieItemsView.js:
25577         (WebInspector.CookieItemsView.prototype._filterCookiesForDomain):
25578         * inspector/front-end/CookieParser.js:
25579         (WebInspector.CookieParser.prototype.cookies):
25580         (WebInspector.CookieParser.prototype._flushCookie):
25581         (WebInspector.CookieParser.prototype._addCookie):
25582         (WebInspector.Cookie.prototype.httpOnly):
25583         (WebInspector.Cookie.prototype.secure):
25584         (WebInspector.Cookie.prototype.session):
25585         (WebInspector.Cookie.prototype.path):
25586         (WebInspector.Cookie.prototype.domain):
25587         (WebInspector.Cookie.prototype.expires):
25588         (WebInspector.Cookie.prototype.maxAge):
25589         (WebInspector.Cookie.prototype.size):
25590         (WebInspector.Cookie.prototype.setSize):
25591         (WebInspector.Cookie.prototype.expiresDate):
25592         (WebInspector.Cookie.prototype.attributes):
25593         (WebInspector.Cookies.getCookiesAsync):
25594         (WebInspector.Cookies.buildCookiesFromString):
25595         (WebInspector.Cookies.buildCookieProtocolObject):
25596         (WebInspector.Cookies.cookieMatchesResourceURL):
25597         (WebInspector.Cookies.cookieDomainMatchesResourceDomain):
25598         * inspector/front-end/CookiesTable.js:
25599         (WebInspector.CookiesTable):
25600         (WebInspector.CookiesTable.prototype._totalSize):
25601         (WebInspector.CookiesTable.prototype._sortCookies.expiresCompare):
25602         (WebInspector.CookiesTable.prototype._sortCookies):
25603         (WebInspector.CookiesTable.prototype._createGridNode):
25604         * inspector/front-end/HAREntry.js:
25605         (WebInspector.HAREntry.prototype._buildCookie):
25606
25607 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
25608
25609         Memory instrumentation: do not call checkCountedObject with wrong pointers
25610         https://bugs.webkit.org/show_bug.cgi?id=100958
25611
25612         Reviewed by Alexander Pavlov.
25613
25614         Removed redundant call to checkCountedObject.
25615
25616         * inspector/MemoryInstrumentationImpl.cpp:
25617         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
25618
25619 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25620
25621         Web Inspector: a small defect in "WorkersSidebarPanel.js"
25622         https://bugs.webkit.org/show_bug.cgi?id=101022
25623
25624         Reviewed by Yury Semikhatsky.
25625
25626         In "autoattachToWorkersClicked", the "event.target.checked" doesn't alwyas valid, since the
25627         "event.target" might be a label.
25628
25629         The problem just causes an error report, doesn't effect function, so no new test case.
25630
25631         * inspector/front-end/WorkersSidebarPane.js:
25632         (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):
25633
25634 2012-11-01  Shinya Kawanaka  <shinyak@chromium.org>
25635
25636         [Shadow] Element should have getter and setter of attribute 'pseudo'
25637         https://bugs.webkit.org/show_bug.cgi?id=100831
25638
25639         Reviewed by Hajime Morita.
25640
25641         We expose 'pseudo' attribute in Element. When nothing is assigned to 'pseudo', it should return null.
25642
25643         Test: fast/dom/shadow/pseudo-attribute.html
25644
25645         * dom/Element.cpp:
25646         (WebCore::Element::pseudo):
25647         (WebCore):
25648         (WebCore::Element::setPseudo):
25649         * dom/Element.h:
25650         (Element):
25651         * dom/Element.idl:
25652         * html/HTMLAttributeNames.in:
25653
25654 2012-11-01  Roger Fong  <roger_fong@apple.com>
25655
25656         Build fix. http://trac.webkit.org/changeset/133252 broke the Windows build.
25657         https://bugs.webkit.org/show_bug.cgi?id=101008
25658
25659         Reviewed by fischman@chromium.org.
25660
25661         * html/HTMLMediaElement.cpp:
25662         (WebCore::HTMLMediaElement::clearMediaPlayer):
25663         * html/HTMLMediaElement.h:
25664         (HTMLMediaElement):
25665
25666 2012-11-01  Stephen White  <senorblanco@chromium.org>
25667
25668         Unreviewed, rolling out r133244.
25669         http://trac.webkit.org/changeset/133244
25670         https://bugs.webkit.org/show_bug.cgi?id=100973
25671
25672         Broke Chromium Mac (clang) builds.
25673
25674         * bindings/v8/DOMDataStore.cpp:
25675         (WebCore::DOMDataStore::DOMDataStore):
25676         * bindings/v8/IntrusiveDOMWrapperMap.h:
25677         (WebCore::DOMNodeWrapperMap::weakCallback):
25678
25679 2012-11-01  Ami Fischman  <fischman@chromium.org>
25680
25681         HTMLMediaPlayer should free m_player when src is set/changed
25682         https://bugs.webkit.org/show_bug.cgi?id=99647
25683
25684         Reviewed by Eric Carlson.
25685
25686         New ManualTest added; manual since leaking media players doesn't have layoutTestController-visible effects.
25687
25688         * html/HTMLMediaElement.cpp:
25689         (WebCore::HTMLMediaElement::parseAttribute): clearMediaPlayer() when src is set/changed
25690         (WebCore::HTMLMediaElement::userCancelledLoad): use new clearMediaPlayer() helper
25691         (WebCore::HTMLMediaElement::clearMediaPlayer): clear m_player and associated timers/flags
25692         (WebCore):
25693         (WebCore::HTMLMediaElement::createMediaPlayer): whitespace-only change
25694         * html/HTMLMediaElement.h: new method: createMediaPlayer().
25695         (HTMLMediaElement):
25696
25697 2012-11-01  Tom Sepez  <tsepez@chromium.org>
25698
25699         XSS blocker false positive when page contains <iframe src="">
25700         https://bugs.webkit.org/show_bug.cgi?id=93416
25701
25702         Reviewed by Adam Barth.
25703
25704         Treat src="" and src="about:blank" as safe resources even if they appear
25705         in the query parameters.
25706
25707         Tests: http/tests/security/xssAuditor/iframe-injection-allowed-2.html
25708                http/tests/security/xssAuditor/iframe-injection-allowed-3.html
25709                http/tests/security/xssAuditor/iframe-injection-allowed.html
25710
25711         * html/parser/XSSAuditor.cpp:
25712         (WebCore::XSSAuditor::isLikelySafeResource):
25713
25714 2012-11-01  Tien-Ren Chen  <trchen@chromium.org>
25715
25716         Fix assertion failure in RenderGeometryMap::absoluteRect when frame scale != 1.0
25717         https://bugs.webkit.org/show_bug.cgi?id=100912
25718
25719         Reviewed by Simon Fraser.
25720
25721         Frame scale will add transformation to RenderView, so fixed position doesn't
25722         get propagated up to the viewport by RenderGeometryMap. This is handled
25723         correctly in RenderView::mapLocalToContainer, causing the assertion to fail.
25724         This patch corrects RenderGeometryMap::mapToAbsolute to handle the RenderView
25725         transformation case.
25726
25727         A layout test is added to catch this issue. The test will crash debug build
25728         without this patch.
25729
25730         Test: compositing/geometry/fixed-position-composited-page-scale-scroll.html
25731
25732         * rendering/RenderGeometryMap.cpp:
25733         (WebCore::RenderGeometryMap::mapToAbsolute):
25734
25735 2012-11-01  Adam Barth  <abarth@webkit.org>
25736
25737         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
25738         https://bugs.webkit.org/show_bug.cgi?id=100973
25739
25740         Reviewed by Kentaro Hara.
25741
25742         This is the first step towards using intrusive DOM wrapper maps more
25743         widely in WebCore (see
25744         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
25745         for more context).
25746
25747         * bindings/v8/DOMDataStore.cpp:
25748         (WebCore::DOMDataStore::DOMDataStore):
25749         * bindings/v8/IntrusiveDOMWrapperMap.h:
25750         (WebCore):
25751         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
25752
25753 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25754
25755         [CSS Shaders] CustomFilterOperation should be converted to ValidatedCustomFilterOperation before using it
25756         https://bugs.webkit.org/show_bug.cgi?id=100533
25757
25758         Reviewed by Dean Jackson.
25759
25760         Added the code that converts a CustomFilterOperation to a ValidatedCustomFilterOperation.
25761         Both the software path and the composited one will use this operation instead. There will be
25762         no need to check the shader in platform code anymore.
25763
25764         No new tests, already covered by existing custom filter tests.
25765
25766         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
25767         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
25768         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
25769         (WebCore):
25770         (WebCore::ValidatedCustomFilterOperation::create):
25771         (ValidatedCustomFilterOperation):
25772         (WebCore::ValidatedCustomFilterOperation::validatedProgram):
25773         (WebCore::ValidatedCustomFilterOperation::parameters):
25774         (WebCore::ValidatedCustomFilterOperation::meshRows):
25775         (WebCore::ValidatedCustomFilterOperation::meshColumns):
25776         (WebCore::ValidatedCustomFilterOperation::meshType):
25777         (WebCore::ValidatedCustomFilterOperation::operator==):
25778         * rendering/FilterEffectRenderer.cpp:
25779         (WebCore::createCustomFilterEffect):
25780         (WebCore::FilterEffectRenderer::build):
25781         * rendering/RenderLayer.cpp:
25782         (WebCore::RenderLayer::ensureBacking):
25783         (WebCore::RenderLayer::clearBacking):
25784         (WebCore::RenderLayer::styleChanged): updateOrRemoveFilterClients needs to be called before the composited
25785         layer is updated. Otherwise the composited layer will never see a loaded filter in the first call.
25786         (WebCore):
25787         (WebCore::RenderLayer::isCSSCustomFilterEnabled):
25788         (WebCore::RenderLayer::computeFilterOperations):
25789         (WebCore::RenderLayer::updateOrRemoveFilterClients): Split updateOrRemoveFilterEffect into 2 functions.
25790         This one is supposed to add the clients needed to load network resources.
25791         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Figures out if a software fallback is needed 
25792         and creates a FilterEffectRenderer.
25793         * rendering/RenderLayer.h:
25794         (RenderLayer):
25795
25796 2012-11-01  Max Vujovic  <mvujovic@adobe.com>
25797
25798         [CSS Shaders] Get rid of internal tex coord attribute
25799         https://bugs.webkit.org/show_bug.cgi?id=94358
25800
25801         Reviewed by Dean Jackson.
25802
25803         Remove the internal css_a_texCoord attribute that WebKit added to shaders in order to
25804         sample the element texture by texture coordinate.
25805
25806         Now, the WebKit-added sampling code can leverage a_texCoord if the author defined it, or
25807         WebKit can add its own a_texCoord definition to the author's shader.
25808
25809         Note that vertex attributes are read-only in GLSL. Also, note that we already reject the
25810         shader if the author did not define a_texCoord with the correct type. Essentially, if
25811         a_texCoord exists in the author's validated shader, we are guaranteed that it's the correct
25812         type and that its value is unmodified.
25813
25814         Test: css3/filters/custom/custom-filter-a-tex-coord-optional.html
25815
25816         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
25817         (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
25818             Remove the references to m_internalTexCoordAttribLocation.
25819         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations): Ditto.
25820         * platform/graphics/filters/CustomFilterCompiledProgram.h: Ditto.
25821         * platform/graphics/filters/CustomFilterRenderer.cpp:
25822         (WebCore::CustomFilterRenderer::bindProgramAndBuffers): Ditto.
25823         (WebCore::CustomFilterRenderer::unbindVertexAttributes): Ditto.
25824         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
25825         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
25826             Pass the set of symbols found in the author's shaders to the rewriteMixVertexShader
25827             method.
25828         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
25829             If the author didn't define a_texCoord, add it to the end of the author's vertex 
25830             shader, but before the shader's new main function. As before, the new main function
25831             will pass the texture coordinate to the fragment shader via the css_v_texCoord varying.
25832         * platform/graphics/filters/CustomFilterValidatedProgram.h:
25833         (WebCore):
25834             Add a forward declaration for ANGLEShaderSymbol.
25835         (CustomFilterValidatedProgram):
25836             Update the method prototype for rewriteMixVertexShader.
25837
25838 2012-11-01  Chris Rogers  <crogers@google.com>
25839
25840         Ensure that AudioNode deletion is synchronized with a stable state of the rendering graph
25841         https://bugs.webkit.org/show_bug.cgi?id=100994
25842
25843         Reviewed by Kenneth Russell.
25844
25845         In some rare cases it has been observed that nodes are getting deleted in the main thread
25846         during an audio rendering quantum where the dirty inputs and outputs have not yet been cleaned
25847         via calls to handleDirtyAudioSummingJunctions() and handleDirtyAudioNodeOutputs().
25848         This was possible because nodes marked for deletion with markForDeletion() could be picked
25849         up in a subsequent call to deleteMarkedNodes() before the render quantum has finished and
25850         handlePostRenderTasks() has had a chance to reconcile these marked nodes and clean the dirty state.
25851         The solution is to manage the marked nodes in a separate vector which only gets copied to another
25852         vector truly eligible for deletion which is synchronized in handlePostRenderTasks().
25853
25854         * Modules/webaudio/AudioContext.cpp:
25855         (WebCore::AudioContext::markForDeletion):
25856         (WebCore::AudioContext::scheduleNodeDeletion):
25857         (WebCore::AudioContext::deleteMarkedNodes):
25858         * Modules/webaudio/AudioContext.h:
25859         (AudioContext):
25860
25861 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
25862
25863         Build fix after r133224 as suggested by Enrica.
25864         Confirmed the test failures go away on Chromium Mac locally.
25865
25866         * page/EventHandler.cpp:
25867         (WebCore::EventHandler::updateSelectionForMouseDrag):
25868
25869 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25870
25871         Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
25872
25873         Rubber-stamped by Joe Pecoraro.
25874
25875         All CFNetwork based platforms have this now, but not all use it at the moment.
25876
25877         * loader/ResourceLoader.h:
25878         * loader/SubresourceLoader.h:
25879         * loader/cf/SubresourceLoaderCF.cpp:
25880         * loader/mac/ResourceLoaderMac.mm:
25881         * platform/SharedBuffer.cpp:
25882         (WebCore::SharedBuffer::clear):
25883         (WebCore::SharedBuffer::buffer):
25884         (WebCore::SharedBuffer::getSomeData):
25885         * platform/SharedBuffer.h:
25886         * platform/cf/SharedBufferCF.cpp:
25887         * platform/network/ResourceHandle.h:
25888         * platform/network/ResourceHandleClient.h:
25889         (ResourceHandleClient):
25890         * platform/network/cf/ResourceHandleCFNet.cpp:
25891         (WebCore::willCacheResponse):
25892         (WebCore::ResourceHandle::createCFURLConnection):
25893         * platform/network/mac/ResourceHandleMac.mm:
25894
25895 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25896
25897         Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
25898         https://bugs.webkit.org/show_bug.cgi?id=100979
25899
25900         Reviewed by Joseph Pecoraro.
25901
25902         * loader/ResourceBuffer.cpp: (WebCore::ResourceBuffer::append):
25903         * loader/ResourceBuffer.h:
25904         Added a version of append() that takes CFDataRef, passing it directly to SharedBuffer.
25905
25906         * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::didReceiveDataArray):
25907         InspectorInstrumentation now takes a length. Unfortunately, we don't have encodedLength
25908         here, meaning that the results will likely be incorrect.
25909
25910         * platform/network/cf/ResourceHandleCFNet.cpp:
25911         (WebCore::willCacheResponse): Removed a version that needlessly used deprecated API.
25912         (WebCore::ResourceHandle::createCFURLConnection): This code assumed that
25913         HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) and USE(PROTECTION_SPACE_AUTH_CALLBACK) always
25914         come together. Changed to check for these separately.
25915
25916 2012-11-01  Rob Buis  <rbuis@rim.com>
25917
25918         [BlackBerry] Add more form validation strings
25919         https://bugs.webkit.org/show_bug.cgi?id=100978
25920
25921         Reviewed by Yong Li.
25922
25923         PR 210072
25924
25925         Implement these two methods properly.
25926
25927         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
25928         (WebCore::validationMessageRangeUnderflowText):
25929         (WebCore::validationMessageRangeOverflowText):
25930
25931 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25932
25933         [CSS Shaders] Move MeshBoxType out of CustomFilterOperation
25934         https://bugs.webkit.org/show_bug.cgi?id=100782
25935
25936         Reviewed by Dean Jackson.
25937
25938         Moved CustomFilter::MeshBoxType enum to the CustomFilterConstants.h file and renamed it to CustomFilterMeshBoxType. 
25939         This way we can reuse it without including the CustomFilterOperation file.
25940
25941         No new tests, just refactoring code.
25942
25943         * css/CSSPrimitiveValueMappings.h:
25944         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
25945         (WebCore::CSSPrimitiveValue::operator CustomFilterMeshBoxType):
25946         * css/StyleResolver.cpp:
25947         (WebCore::StyleResolver::createCustomFilterOperation):
25948         * platform/graphics/filters/CustomFilterArrayParameter.h: Adding AnimationUtilities.h for WebCore::blend, looks like
25949         CustomFilterOperation already included AnimationsUtilities.h indirectly.
25950         * platform/graphics/filters/CustomFilterConstants.h: Added CustomFilterMeshBoxType.
25951         * platform/graphics/filters/CustomFilterNumberParameter.h:
25952         * platform/graphics/filters/CustomFilterOperation.cpp:
25953         (WebCore::CustomFilterOperation::CustomFilterOperation):
25954         * platform/graphics/filters/CustomFilterOperation.h:
25955         (WebCore::CustomFilterOperation::create):
25956         (WebCore::CustomFilterOperation::meshBoxType):
25957         (CustomFilterOperation):
25958         * platform/graphics/filters/CustomFilterRenderer.cpp:
25959         (WebCore::CustomFilterRenderer::create):
25960         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
25961         * platform/graphics/filters/CustomFilterRenderer.h: Also removed the need to include CustomFilterOperation.h. Some other
25962         headers were needed to replace the files that were automatically incldued because of that file.
25963         (WebCore):
25964         (CustomFilterRenderer):
25965         * platform/graphics/filters/FECustomFilter.cpp:
25966         (WebCore::FECustomFilter::FECustomFilter):
25967         (WebCore::FECustomFilter::create):
25968         * platform/graphics/filters/FECustomFilter.h:
25969         (FECustomFilter):
25970
25971 2012-11-01  Enrica Casucci  <enrica@apple.com>
25972
25973         Part2 of: Extend -webkit-user-select with new value "all"
25974         <rdar://problem/10161404>
25975         https://bugs.webkit.org/show_bug.cgi?id=91912
25976
25977         Reviewed by Ryosuke Niwa.
25978
25979         The new value "all" for -webkit-user-select property gives content none-or-all selection option.
25980         The patch was originally prepared by Alice Cheng but the approach has been changed.
25981         The idea is to treat these elements like non editable, meaning that we should skip over them entirely
25982         when moving the cursor and a deletion should delete the element and all its descentants at once.
25983         The key change is in Node::rendererIsEditable where we now return false if the element style is
25984         userSelect: all. The other change is in the way we create the selection on mouse click and dragging
25985         over the element. In both cases we force the selection to extend over the entire element with
25986         the user-select: all attribute.
25987         This is currently enabled only for the Mac port.
25988
25989         Test: editing/selection/user-select-all-selection.html
25990
25991         * dom/Node.cpp: Added a parameter to isContentEditable to behave differently
25992         when called from JavaScript. Internally isContentEditable returns false on
25993         nodes with user-select: all style.
25994         (WebCore::Node::isContentEditable):
25995         (WebCore::Node::isContentRichlyEditable):
25996         (WebCore::Node::rendererIsEditable):
25997         (WebCore::Node::shouldUseInputMethod):
25998         (WebCore::Node::willRespondToMouseClickEvents):
25999         * dom/Node.h:
26000         (WebCore::Node::rendererIsEditable):
26001         (WebCore::Node::rendererIsRichlyEditable):
26002         * dom/Position.cpp:
26003         (WebCore::Position::nodeIsUserSelectAll): Added.
26004         (WebCore::Position::rootUserSelectAllForNode): Added.
26005         * dom/Position.h: Added static functions described above.
26006         * editing/ApplyStyleCommand.cpp:
26007         (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
26008         isContentEditable() call.
26009         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
26010         isContentEditable() call.
26011         * editing/DeleteFromTextNodeCommand.cpp:
26012         (WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
26013         isContentEditable() call.
26014         * editing/FrameSelection.cpp:
26015         (WebCore::adjustForwardPositionForUserSelectAll): New helper function.
26016         (WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
26017         (WebCore::FrameSelection::modifyExtendingRight):
26018         (WebCore::FrameSelection::modifyExtendingForward):
26019         (WebCore::FrameSelection::modifyExtendingLeft):
26020         (WebCore::FrameSelection::modifyExtendingBackward):
26021         (WebCore::FrameSelection::modify):
26022         (WebCore::CaretBase::invalidateCaretRect): Added parameter to
26023         isContentEditable() call.
26024         * editing/InsertNodeBeforeCommand.cpp:
26025         (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
26026         (WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
26027         * editing/RemoveNodeCommand.cpp:
26028         (WebCore::RemoveNodeCommand::doApply): Ditto.
26029         * editing/visible_units.cpp:
26030         (WebCore::startOfParagraph): We should not consider a paragraph break and element
26031         with user-select: all style, like we do at the border of editability.
26032         (WebCore::endOfParagraph): Ditto.
26033         * page/EventHandler.cpp:
26034         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
26035         around the element whose style is user-select: all.
26036         (WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
26037         * rendering/RootInlineBox.cpp:
26038         (WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
26039         If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
26040         we should return the selection state as SelectionBoth, assuming we went past the end selection.
26041         This avoids doing an incorrect gap filling for the selection highlighting.
26042
26043 2012-11-01  Alec Flett  <alecflett@chromium.org>
26044
26045         IndexedDB: Fix Windows build by re-adding a #include
26046         https://bugs.webkit.org/show_bug.cgi?id=100986
26047
26048         Reviewed by Stephen White.
26049
26050         Fix #include that broke windows.
26051
26052         * Modules/indexeddb/IDBCallbacks.h:
26053
26054 2012-11-01  David Barton  <dbarton@mathscribe.com>
26055
26056         REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
26057         https://bugs.webkit.org/show_bug.cgi?id=97390
26058
26059         Reviewed by Ojan Vafai.
26060
26061         In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
26062         in layout() will be the base's true height, without any flexbox stretching.
26063
26064         Tested by existing tests.
26065
26066         * rendering/mathml/RenderMathMLSubSup.cpp:
26067         (WebCore::RenderMathMLSubSup::fixAnonymousStyles):
26068         (WebCore::RenderMathMLSubSup::addChild):
26069         (WebCore::RenderMathMLSubSup::styleDidChange):
26070         * rendering/mathml/RenderMathMLSubSup.h:
26071         (RenderMathMLSubSup):
26072
26073 2012-11-01  Antti Koivisto  <antti@apple.com>
26074
26075         REGRESSION (r132941): attribute modification 10% performance regression
26076         https://bugs.webkit.org/show_bug.cgi?id=100873
26077
26078         Reviewed by Ojan Vafai.
26079
26080         Don't do the class change finding by mutating SpaceSplitString. It is slow. Instead use a bit vector
26081         to mark the unchanged classes
26082
26083         * css/StyleResolver.cpp:
26084         (WebCore):
26085         * css/StyleResolver.h:
26086         (WebCore::StyleResolver::hasSelectorForAttribute):
26087         (WebCore):
26088         (WebCore::StyleResolver::hasSelectorForClass):
26089         (WebCore::StyleResolver::hasSelectorForId):
26090         
26091             Inlined these and moved value validity testing to clients.
26092
26093         * dom/Element.cpp:
26094         (WebCore::checkNeedsStyleInvalidationForIdChange):
26095         (WebCore):
26096         (WebCore::Element::attributeChanged):
26097     
26098             Clean up id testing too.
26099
26100         (WebCore::checkNeedsStyleInvalidationForClassChange):
26101         
26102             Use bit vector for marking seen values. Avoids allocations and reffing.
26103
26104         (WebCore::Element::classAttributeChanged):
26105         
26106             Don't test if style is already invalid.
26107
26108 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
26109
26110         [Mac] Crash in Range::editingStartPosition
26111         https://bugs.webkit.org/show_bug.cgi?id=100972
26112
26113         Reviewed by Enrica Casucci.
26114
26115         Add a missing null pointer check. toNormalizedRange() can return null here, in which case the call to
26116         pastLastNode() will crash.
26117
26118         No new tests since determining the exact condition under which we go through the said code path and
26119         toNormalRange returns null is hard.
26120
26121         * editing/mac/EditorMac.mm:
26122         (WebCore::Editor::fontForSelection):
26123
26124 2012-11-01  Beth Dakin  <bdakin@apple.com>
26125
26126         https://bugs.webkit.org/show_bug.cgi?id=100917
26127         There should be a way to dump the scrolling tree from the layout tests
26128
26129         Reviewed by Simon Fraser.
26130
26131         New Internals call to dump the scrolling state tree as text. Calls through to the 
26132         ScrollingCoordinator.
26133         * testing/Internals.cpp:
26134         (WebCore::Internals::scrollingStateTreeAsText):
26135         (WebCore):
26136         * testing/Internals.h:
26137         * testing/Internals.idl:
26138         * WebCore.exp.in:
26139         * page/Page.cpp:
26140         (WebCore::Page::scrollingStateTreeAsText):
26141         (WebCore):
26142         * page/Page.h:
26143         (Page):
26144
26145         ScrollingCoordinator tells the rootStateNode to dump the tree as text.
26146         * page/scrolling/mac/ScrollingCoordinatorMac.h:
26147         (ScrollingCoordinatorMac):
26148         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
26149         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText):
26150         (WebCore):
26151         * page/scrolling/ScrollingCoordinator.cpp:
26152         (WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
26153         (WebCore):
26154         * page/scrolling/ScrollingCoordinator.h:
26155         (ScrollingCoordinator):
26156
26157         dumpNode() dumps generic stuff for each node, and dumpProperties will dump the 
26158         properties that are specific to different types of nodes.
26159         * page/scrolling/ScrollingStateNode.cpp:
26160         (WebCore::ScrollingStateNode::writeIndent):
26161         (WebCore):
26162         (WebCore::ScrollingStateNode::dumpNode):
26163         (WebCore::ScrollingStateNode::scrollingStateTreeAsText):
26164         * page/scrolling/ScrollingStateNode.h:
26165         (WebCore):
26166         (ScrollingStateNode):
26167         * page/scrolling/ScrollingStateScrollingNode.cpp:
26168         (WebCore::ScrollingStateScrollingNode::dumpProperties):
26169         (WebCore):
26170         * page/scrolling/ScrollingStateScrollingNode.h:
26171         (ScrollingStateScrollingNode):
26172
26173 2012-11-01  Kenneth Russell  <kbr@google.com>
26174
26175         Add RGB to supported destination formats of ImageBuffer::copyToPlatformTexture
26176         https://bugs.webkit.org/show_bug.cgi?id=100971
26177
26178         Reviewed by Stephen White.
26179
26180         The ImageBuffer::copyToPlatformTexture restriction added in
26181         r132965 was too restrictive. Allow RGB textures to prevent
26182         performance regressions.
26183
26184         * html/canvas/WebGLRenderingContext.cpp:
26185         (WebCore):
26186         (WebCore::WebGLRenderingContext::texImage2D):
26187         * platform/graphics/ImageBuffer.h:
26188         (ImageBuffer):
26189
26190 2012-11-01  Michael Matovsky  <mmatovsky@rim.com>
26191
26192         [BlackBerry] Web page view state should be preserved for pages loaded from page cache
26193         https://bugs.webkit.org/show_bug.cgi?id=100694
26194         Internal PR: 220488
26195
26196         Internally reviewed by Lianghui Chen, Joe Mason
26197         Reviewed by Rob Buis.
26198
26199         The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
26200         This requires web page view state to be saved in and restored from the corresponding page cache history item.
26201
26202         No new tests for platform specific internal change.
26203
26204         * history/blackberry/HistoryItemViewState.h:
26205         (HistoryItemViewState):
26206
26207 2012-11-01  Alec Flett  <alecflett@chromium.org>
26208
26209         IndexedDB: add methods to support id-based backend APIs
26210         https://bugs.webkit.org/show_bug.cgi?id=100425
26211
26212         Reviewed by Tony Chang.
26213
26214         First half of refactor involves adding a number of methods that
26215         are int64_t-based rather than String-based. As a part of this, the
26216         IDB*Metadata structs and the backend objectStore/index maps all
26217         use int64_t as keys, rather than String.
26218
26219         In addition, there were a number of cleanups that came out of the
26220         refactor:
26221
26222         - The list of object stores active in a transaction is now
26223           maintained by the frontend IDBTransaction rather than the backend
26224           IDBTransactionBackendImpl. This also had a simplifying rippling
26225           effect through other call signatures.
26226
26227         - I was able to remove an apparently old FIXME from
26228           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
26229
26230         - IDBObjectStoreBackendImpl's IndexWriter class got a little
26231           simpler since the id is now easily available in the
26232           IDBIndexMetadata.
26233
26234         - A number of methods got simpler in their int64_t versions,
26235           specifically dropping a number of ExceptionCodes.
26236
26237         There is also some glue code
26238         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
26239         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
26240
26241         No new tests, no new functionality as this is just a refactor.
26242
26243         * Modules/indexeddb/IDBDatabase.cpp:
26244         (WebCore::IDBDatabase::objectStoreNames):
26245         (WebCore::IDBDatabase::createObjectStore):
26246         (WebCore::IDBDatabase::deleteObjectStore):
26247         (WebCore::IDBDatabase::transaction):
26248         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
26249         (WebCore::IDBDatabaseBackendImpl::metadata):
26250         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
26251         (WebCore::IDBDatabaseBackendImpl::objectStore):
26252         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
26253         (WebCore):
26254         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26255         (WebCore::IDBDatabaseBackendImpl::transaction):
26256         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
26257         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
26258         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
26259         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
26260         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26261         (IDBDatabaseBackendImpl):
26262         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
26263         (IDBDatabaseBackendInterface):
26264         * Modules/indexeddb/IDBIndex.h:
26265         (WebCore::IDBIndex::id):
26266         (WebCore::IDBIndex::openKeyCursor):
26267         * Modules/indexeddb/IDBIndexBackendInterface.h:
26268         * Modules/indexeddb/IDBMetadata.h:
26269         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
26270         (IDBIndexMetadata):
26271         (IDBObjectStoreMetadata):
26272         (WebCore::IDBObjectStoreMetadata::containsIndex):
26273         (IDBDatabaseMetadata):
26274         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
26275         (WebCore::IDBDatabaseMetadata::containsObjectStore):
26276         * Modules/indexeddb/IDBObjectStore.cpp:
26277         (WebCore::IDBObjectStore::indexNames):
26278         (WebCore::IDBObjectStore::put):
26279         (WebCore::IDBObjectStore::createIndex):
26280         (WebCore::IDBObjectStore::index):
26281         (WebCore::IDBObjectStore::deleteIndex):
26282         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
26283         (WebCore::IDBObjectStoreBackendImpl::put):
26284         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
26285         (WebCore):
26286         (WebCore::makeIndexWriters):
26287         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
26288         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
26289         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
26290         (WebCore::IDBObjectStoreBackendImpl::putInternal):
26291         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
26292         (WebCore::IDBObjectStoreBackendImpl::createIndex):
26293         (WebCore::IDBObjectStoreBackendImpl::index):
26294         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
26295         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
26296         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
26297         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
26298         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
26299         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
26300         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
26301         (IDBObjectStoreBackendImpl):
26302         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
26303         * Modules/indexeddb/IDBOpenDBRequest.cpp:
26304         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
26305         * Modules/indexeddb/IDBRequest.cpp:
26306         (WebCore::IDBRequest::onSuccess):
26307         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
26308         * Modules/indexeddb/IDBTransaction.cpp:
26309         (WebCore::IDBTransaction::create):
26310         (WebCore::IDBTransaction::IDBTransaction):
26311         (WebCore::IDBTransaction::objectStore):
26312         * Modules/indexeddb/IDBTransaction.h:
26313         (IDBTransaction):
26314         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
26315         (WebCore::IDBTransactionBackendImpl::create):
26316         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
26317         (WebCore::IDBTransactionBackendImpl::objectStore):
26318         (WebCore):
26319         (WebCore::IDBTransactionBackendImpl::scheduleTask):
26320         * Modules/indexeddb/IDBTransactionBackendImpl.h:
26321         (IDBTransactionBackendImpl):
26322         * Modules/indexeddb/IDBTransactionBackendInterface.h:
26323
26324 2012-11-01  Adam Barth  <abarth@webkit.org>
26325
26326         [V8] The DOMWrapperVisitor abstraction is no longer needed
26327         https://bugs.webkit.org/show_bug.cgi?id=100965
26328
26329         Reviewed by Kentaro Hara.
26330
26331         This patch removes the DOMWrapperVisitor interface because it is no
26332         longer needed. As a consequence, DOMWrapperMaps no longer need to
26333         support enumeration, and we can move more DOM objects to use the faster
26334         intrusive wrappers.
26335
26336         There was one remaining user of DOMWrapperVisitor in the
26337         ScriptProfiler, which I've moved over to enumerating objects directly
26338         from V8, similar to a function above it in the same file.
26339
26340         * bindings/v8/DOMWrapperMap.h:
26341         (WebCore):
26342         (DOMWrapperMap):
26343         * bindings/v8/IntrusiveDOMWrapperMap.h:
26344         * bindings/v8/ScriptProfiler.cpp:
26345         (WebCore::ScriptProfiler::visitNodeWrappers):
26346         (WebCore::ScriptProfiler::visitExternalArrays):
26347
26348 2012-11-01  Mike West  <mkwst@chromium.org>
26349
26350         CSP 1.0: Warn when old-style directives encountered.
26351         https://bugs.webkit.org/show_bug.cgi?id=100883
26352
26353         Reviewed by Adam Barth.
26354
26355         In Mozilla's pre-W3C-spec implementation, a few directives are
26356         implemented that were either renamed, reworked, or removed from CSP 1.0.
26357         This patch adds special warning messages for three of those directives
26358         to set developer expectations correctly.
26359
26360         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated.html
26361
26362         * page/ContentSecurityPolicy.cpp:
26363         (WebCore::CSPDirectiveList::parseDirective):
26364         (WebCore::CSPDirectiveList::addDirective):
26365         (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
26366         * page/ContentSecurityPolicy.h:
26367             Rename 'reportUnrecognizedDirectives' to
26368             'reportUnsupportedDirectives', and teach it to give more descriptive
26369             error messages when encountering 'allow', 'options', and
26370             'policy-uri'.
26371
26372 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26373
26374         Web Inspector: Update CodeMirror to v3
26375         https://bugs.webkit.org/show_bug.cgi?id=99319
26376
26377         Reviewed by Vsevolod Vlasov.
26378
26379         Updated to ToT v3.
26380
26381         * inspector/front-end/CodeMirrorTextEditor.js:
26382         (WebInspector.CodeMirrorTextEditor):
26383         (WebInspector.CodeMirrorTextEditor.prototype._gutterClick):
26384         (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
26385         (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
26386         (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
26387         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
26388         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
26389         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
26390         (WebInspector.CodeMirrorTextEditor.prototype._change):
26391         * inspector/front-end/cm/cmdevtools.css:
26392         (.CodeMirror):
26393         (.CodeMirror-linenumber):
26394         (.cm-breakpoint):
26395         * inspector/front-end/cm/codemirror.css:
26396         (.CodeMirror):
26397         (.CodeMirror-scroll):
26398         (.CodeMirror-lines):
26399         (.CodeMirror pre):
26400         (.CodeMirror-scrollbar-filler):
26401         (.CodeMirror-gutters):
26402         (.CodeMirror-linenumbers):
26403         (.CodeMirror-linenumber):
26404         (.CodeMirror pre.CodeMirror-cursor):
26405         (.CodeMirror pre.CodeMirror-secondarycursor):
26406         (.cm-keymap-fat-cursor pre.CodeMirror-cursor):
26407         (.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id)):
26408         (.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite):
26409         (.cm-s-default .cm-keyword):
26410         (.cm-s-default .cm-atom):
26411         (.cm-s-default .cm-number):
26412         (.cm-s-default .cm-def):
26413         (.cm-s-default .cm-variable):
26414         (.cm-s-default .cm-variable-2):
26415         (.cm-s-default .cm-variable-3):
26416         (.cm-s-default .cm-property):
26417         (.cm-s-default .cm-operator):
26418         (.cm-s-default .cm-comment):
26419         (.cm-s-default .cm-string):
26420         (.cm-s-default .cm-string-2):
26421         (.cm-s-default .cm-meta):
26422         (.cm-s-default .cm-error):
26423         (.cm-s-default .cm-qualifier):
26424         (.cm-s-default .cm-builtin):
26425         (.cm-s-default .cm-bracket):
26426         (.cm-s-default .cm-tag):
26427         (.cm-s-default .cm-attribute):
26428         (.cm-s-default .cm-header):
26429         (.cm-s-default .cm-quote):
26430         (.cm-s-default .cm-hr):
26431         (.cm-s-default .cm-link):
26432         (.cm-header, .cm-strong):
26433         (.cm-em):
26434         (.cm-emstrong):
26435         (.cm-link):
26436         (.cm-invalidchar):
26437         (div.CodeMirror span.CodeMirror-matchingbracket):
26438         (div.CodeMirror span.CodeMirror-nonmatchingbracket):
26439         (.CodeMirror-sizer):
26440         (.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
26441         (.CodeMirror-vscrollbar):
26442         (.CodeMirror-hscrollbar):
26443         (.CodeMirror-gutter):
26444         (.CodeMirror-gutter-elt):
26445         (.CodeMirror-linebackground):
26446         (.CodeMirror-linewidget):
26447         (.CodeMirror-measure):
26448         (.CodeMirror-measure pre):
26449         (.CodeMirror-selected):
26450         (.CodeMirror-focused .CodeMirror-selected):
26451         (.CodeMirror span):
26452         * inspector/front-end/cm/codemirror.js:
26453         (window.CodeMirror.):
26454         (window.CodeMirror):
26455         * inspector/front-end/utilities.js:
26456
26457 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26458
26459         [BlackBerry] Update BB10 form theme.
26460         https://bugs.webkit.org/show_bug.cgi?id=100760
26461
26462         Reviewed by Rob Buis.
26463
26464         RIM PR 235194.
26465
26466         Check img pointer is null, if so, do early return.
26467
26468         * platform/blackberry/RenderThemeBlackBerry.cpp:
26469         (WebCore::drawControl):
26470         (WebCore::drawThreeSlice):
26471         (WebCore::drawNineSlice):
26472
26473 2012-11-01  Adam Barth  <abarth@webkit.org>
26474
26475         [V8] The V8DOMMap visitors are no longer needed
26476         https://bugs.webkit.org/show_bug.cgi?id=100963
26477
26478         Reviewed by Kentaro Hara.
26479
26480         This patch inlines visitAllDOMNodes into its one caller (and removes
26481         one layer of visitor adaptor abstraction).
26482
26483         * bindings/v8/ScriptProfiler.cpp:
26484         (WebCore::ScriptProfiler::visitNodeWrappers):
26485         * bindings/v8/V8DOMMap.cpp:
26486         * bindings/v8/V8DOMMap.h:
26487         (WebCore):
26488
26489 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26490
26491         [BlackBerry] Update BB10 form theme.
26492         https://bugs.webkit.org/show_bug.cgi?id=100760
26493
26494         Reviewed by Rob Buis.
26495
26496         RIM PR 235194.
26497
26498         Check img pointer is null, if so, do early return.
26499
26500         * platform/blackberry/RenderThemeBlackBerry.cpp:
26501         (WebCore::drawControl):
26502         (WebCore::drawThreeSlice):
26503         (WebCore::drawNineSlice):
26504
26505 2012-11-01  Adam Barth  <abarth@webkit.org>
26506
26507         Unreviewed. Build fix.
26508
26509         * bindings/v8/V8GCController.cpp:
26510
26511 2012-11-01  Christophe Dumez  <christophe.dumez@intel.com>
26512
26513         [EFL][WK2] Add Ewk_Auth_Request API
26514         https://bugs.webkit.org/show_bug.cgi?id=100858
26515
26516         Reviewed by Kenneth Rohde Christiansen.
26517
26518         Provide an AuthenticationClient for EFL port in WebCore so
26519         that we can handle authentication similarly to other ports
26520         of WebKit.
26521
26522         No new tests, no behavior change for layout tests.
26523
26524         * PlatformEfl.cmake: Add AuthenticationChallengeSoup.cpp to CMake.
26525         * loader/ResourceLoader.cpp:
26526         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
26527         * platform/network/ResourceHandle.h:
26528         (ResourceHandle): Have ResourceHandle subclass AuthenticationClient like
26529         most of the other ports.
26530         * platform/network/soup/AuthenticationChallengeSoup.cpp: Fix initialization
26531         of previousFailureCount member. It should be 1 if we are retrying
26532         authentication and 0 otherwise, not the opposite.
26533         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
26534         * platform/network/soup/ResourceHandleSoup.cpp: Provide implementation for EFL
26535         port of AuthenticationClient methods.
26536         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
26537         (WebCoreSynchronousLoader):
26538         (WebCore):
26539         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
26540         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
26541         (WebCore::ResourceHandle::receivedCredential):
26542         (WebCore::ResourceHandle::receivedCancellation):
26543         (WebCore::authenticateCallback):
26544         (WebCore::ResourceHandle::defaultSession):
26545
26546 2012-10-24  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
26547
26548         WebIconDatabase: Properly clean up on destruction
26549         https://bugs.webkit.org/show_bug.cgi?id=100237
26550
26551         Reviewed by Brady Eidson.
26552
26553         It's now possible that the IconDatabase gets destroyed since WebKit2
26554         isn't using it as a singleton.
26555
26556         Check that the database was properly closed rather than asserting that
26557         it won't get deleted.
26558
26559         * loader/icon/IconDatabase.cpp:
26560         (WebCore::IconDatabase::~IconDatabase):
26561
26562 2012-11-01  Alexei Filippov  <alph@chromium.org>
26563
26564         Web Inspector: make component subitems use parent color in native memory snapshots.
26565         https://bugs.webkit.org/show_bug.cgi?id=100876
26566
26567         A component subitems use the color of the component itself if the color
26568         is not explicitly specified for the subitem.
26569
26570         Reviewed by Yury Semikhatsky.
26571
26572         * inspector/front-end/NativeMemorySnapshotView.js:
26573         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
26574         (WebInspector.MemoryBlockViewProperties._initialize):
26575         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
26576
26577 2012-11-01  Emil A Eklund  <eae@chromium.org>
26578
26579         [subpixel] Change intrinsicSize to LayoutUnit
26580         https://bugs.webkit.org/show_bug.cgi?id=99104
26581
26582         Reviewed by Levi Weintraub.
26583
26584         Change RenderReplaced and intrinsicSize to LayoutUnit to avoid
26585         rounding problems when zooming/scaling. Also change imageSize to
26586         LayoutUnit as it can return a scaled size.
26587
26588         Test: fast/sub-pixel/tiled-canvas-elements.html
26589
26590         * html/ImageDocument.cpp:
26591         (WebCore::ImageDocumentParser::finish):
26592         * loader/cache/CachedImage.cpp:
26593         (WebCore::CachedImage::imageSizeForRenderer):
26594         * loader/cache/CachedImage.h:
26595         (CachedImage):
26596         * platform/graphics/FractionalLayoutSize.h:
26597         (FractionalLayoutSize):
26598         (WebCore::FractionalLayoutSize::scale):
26599         (WebCore::FractionalLayoutSize::clampToMinimumSize):
26600         * rendering/RenderBox.h:
26601         (WebCore::RenderBox::intrinsicSize):
26602         * rendering/RenderHTMLCanvas.cpp:
26603         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
26604         * rendering/RenderImage.cpp:
26605         (WebCore::RenderImage::imageChanged):
26606         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
26607         (WebCore::RenderImage::paintReplaced):
26608         (WebCore::RenderImage::minimumReplacedHeight):
26609         * rendering/RenderImage.h:
26610         (RenderImage):
26611         * rendering/RenderImageResource.h:
26612         (WebCore::RenderImageResource::imageSize):
26613         * rendering/RenderImageResourceStyleImage.h:
26614         * rendering/RenderReplaced.cpp:
26615         (WebCore::RenderReplaced::RenderReplaced):
26616         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
26617         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
26618         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
26619         * rendering/RenderReplaced.h:
26620         (RenderReplaced):
26621         (WebCore::RenderReplaced::minimumReplacedHeight):
26622         (WebCore::RenderReplaced::setIntrinsicSize):
26623         * rendering/RenderVideo.cpp:
26624         (WebCore::RenderVideo::updateIntrinsicSize):
26625         (WebCore::RenderVideo::calculateIntrinsicSize):
26626         (WebCore::RenderVideo::videoBox):
26627         (WebCore::RenderVideo::minimumReplacedHeight):
26628         * rendering/RenderVideo.h:
26629         (RenderVideo):
26630         * rendering/style/StyleCachedImage.cpp:
26631         (WebCore::StyleCachedImage::imageSize):
26632         * rendering/style/StyleCachedImage.h:
26633         (StyleCachedImage):
26634         * rendering/style/StyleCachedImageSet.cpp:
26635         (WebCore::StyleCachedImageSet::imageSize):
26636         * rendering/style/StyleCachedImageSet.h:
26637         (StyleCachedImageSet):
26638         * rendering/style/StyleGeneratedImage.cpp:
26639         (WebCore::StyleGeneratedImage::imageSize):
26640         (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
26641         * rendering/style/StyleGeneratedImage.h:
26642         (StyleGeneratedImage):
26643         * rendering/style/StyleImage.h:
26644         (StyleImage):
26645         * rendering/style/StylePendingImage.h:
26646
26647 2012-11-01  Adam Barth  <abarth@webkit.org>
26648
26649         [V8] Unify the V8GCController visitors
26650         https://bugs.webkit.org/show_bug.cgi?id=100897
26651
26652         Reviewed by Eric Seidel.
26653
26654         After this patch, we use a single visitor for all DOM wrappers,
26655         regardless of type. We also visit all the wrappers in one pass by
26656         calling v8::V8::VisitHandlesWithClassIds directly rather than via
26657         visitAllDOMNodes.
26658
26659         This patch also introduces a wrapper class ID for non-Node DOM objects.
26660         Previously, only DOM nodes had a class ID.
26661
26662         * bindings/v8/IntrusiveDOMWrapperMap.h:
26663         * bindings/v8/ScriptProfiler.cpp:
26664         (WebCore::retainedDOMInfo):
26665         (WebCore::ScriptProfiler::initialize):
26666         * bindings/v8/V8DOMMap.cpp:
26667         (WebCore::visitAllDOMNodes):
26668         * bindings/v8/V8DOMWrapper.cpp:
26669         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
26670         * bindings/v8/V8DOMWrapper.h:
26671         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
26672         * bindings/v8/V8GCController.cpp:
26673         (WebCore::GCHandleVisitor::notifyFinished):
26674         (GCHandleVisitor):
26675         (WebCore::V8GCController::majorGCPrologue):
26676         * bindings/v8/WrapperTypeInfo.h:
26677         (WebCore):
26678
26679 2012-11-01  Stephen White  <senorblanco@chromium.org>
26680
26681         Unreviewed, rolling out r133143.
26682         http://trac.webkit.org/changeset/133143
26683         https://bugs.webkit.org/show_bug.cgi?id=96894
26684
26685         Causing content_browsertests failures
26686
26687         * CMakeLists.txt:
26688         * GNUmakefile.list.am:
26689         * Target.pri:
26690         * WebCore.gypi:
26691         * WebCore.vcproj/WebCore.vcproj:
26692         * WebCore.xcodeproj/project.pbxproj:
26693         * dom/DeviceOrientationClient.h:
26694         (DeviceOrientationClient):
26695         * dom/DeviceOrientationController.cpp:
26696         (WebCore::DeviceOrientationController::DeviceOrientationController):
26697         (WebCore):
26698         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26699         (WebCore::DeviceOrientationController::timerFired):
26700         (WebCore::DeviceOrientationController::addListener):
26701         (WebCore::DeviceOrientationController::removeListener):
26702         (WebCore::DeviceOrientationController::removeAllListeners):
26703         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
26704         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
26705         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26706         (WebCore::DeviceOrientationController::supplementName):
26707         * dom/DeviceOrientationController.h:
26708         (WebCore):
26709         (DeviceOrientationController):
26710         (WebCore::DeviceOrientationController::isActive):
26711         (WebCore::DeviceOrientationController::client):
26712         (WebCore::DeviceOrientationController::from):
26713         * dom/Document.cpp:
26714         (WebCore::Document::suspendActiveDOMObjects):
26715         (WebCore::Document::resumeActiveDOMObjects):
26716         * loader/EmptyClients.h:
26717         (WebCore::EmptyDeviceOrientationClient::startUpdating):
26718         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
26719         * page/DOMWindow.cpp:
26720         (WebCore::DOMWindow::addEventListener):
26721         (WebCore::DOMWindow::removeEventListener):
26722         (WebCore::DOMWindow::removeAllEventListeners):
26723         * page/DeviceClient.h: Removed.
26724         * page/DeviceController.cpp: Removed.
26725         * page/DeviceController.h: Removed.
26726
26727 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26728
26729         [EFL][AC]Free GL resources allocated by GraphicsContext3DEfl.
26730         https://bugs.webkit.org/show_bug.cgi?id=100923.
26731
26732         Reviewed by Kenneth Rohde Christiansen.
26733
26734         GraphicsContext3DEfl creates FBO's, textures and render buffer's, but doesn't free them.
26735         This patch makes sure that GraphicsContext3dEfl frees all the GL resources allocated by it.
26736
26737         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
26738         (WebCore::GraphicsContext3D::~GraphicsContext3D):
26739
26740 2012-11-01  Andreas Kling  <kling@webkit.org>
26741
26742         Fix StylePropertySet/ElementAttributeData custom allocation in debug builds.
26743         <http://webkit.org/b/100753>
26744
26745         Unreviewed debug bot crash fix after r133138.
26746
26747         There's additional padding after StylePropertySet and ElementAttributeData
26748         in 64-bit debug builds since there are additional members in RefCountedBase.
26749         Use 'sizeof(ImmutableFoo) - sizeof(void*)' as the base size of ImmutableFoo.
26750
26751         * css/StylePropertySet.cpp:
26752         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26753         * dom/ElementAttributeData.cpp:
26754         (WebCore::sizeForImmutableElementAttributeDataWithAttributeCount):
26755         (WebCore::ElementAttributeData::createImmutable):
26756         (WebCore::ElementAttributeData::reportMemoryUsage):
26757
26758 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26759
26760         FEImage::m_document is never cleared. Why not?
26761         https://bugs.webkit.org/show_bug.cgi?id=99243
26762
26763         Reviewed by Dirk Schulze.
26764
26765         Adding a comment to explain why the failure to clear m_document is not a problem.
26766
26767         No new tests because no code change at all.
26768
26769         * svg/graphics/filters/SVGFEImage.h:
26770         (FEImage): Add a comment on the lifetime of m_document.
26771
26772 2012-11-01  Eugene Klyuchnikov  <eustas.bug@gmail.com>
26773
26774         Web Inspector: Timeline: make "addRecord" unambiguous
26775         https://bugs.webkit.org/show_bug.cgi?id=100761
26776
26777         Reviewed by Pavel Feldman.
26778
26779         TimelinePresentationModel.addRecord accepts two parameters:
26780         record and parentRecord. parentRecord is always root record.
26781         Make this explicit by removing parentRecord parameter.
26782
26783         * inspector/front-end/TimelinePanel.js: Removed parameter.
26784         * inspector/front-end/TimelinePresentationModel.js:
26785         (WebInspector.TimelinePresentationModel.prototype.addRecord):
26786         Used root recoed instead of parent record.
26787
26788 2012-11-01  Charles Wei  <charles.wei@torchmobile.com.cn>
26789
26790         [BlackBerry] Browser prematurely sends wrong credentials
26791         https://bugs.webkit.org/show_bug.cgi?id=100585
26792
26793         Reviewed by George Staikos.
26794
26795         Don't send credentials to the server before been challenged.
26796
26797         * platform/network/blackberry/NetworkManager.cpp:
26798         (WebCore::NetworkManager::startJob):
26799
26800 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26801
26802         SVG as an image may recreate the renderer on zoom
26803         https://bugs.webkit.org/show_bug.cgi?id=99508
26804
26805         Reviewed by Abhishek Arya.
26806
26807         The SVGImage code, when SVG is used in <img> tags, caches the renderer
26808         at the start of the painting method and re-uses the pointer at the end
26809         of the method. However, when the page is zoomed the renderer may be
26810         detached mid-method, thus leaving a stray pointer. The fix is to
26811         re-fetch the pointer after the zooms.
26812
26813         Test: svg/as-image/img-zoom-svg-stylesheet.html
26814
26815         * svg/graphics/SVGImage.cpp:
26816         (WebCore::SVGImage::drawSVGToImageBuffer): Re-fetch the renderer after
26817         the zoom operations.
26818
26819 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26820
26821         Web Inspector: introduce Inspector.detached message containing termination cause.
26822         https://bugs.webkit.org/show_bug.cgi?id=100948
26823
26824         Reviewed by Yury Semikhatsky.
26825
26826         Now protocol clients have more information to process connection termination.
26827
26828         * English.lproj/localizedStrings.js:
26829         * inspector/Inspector.json:
26830         * inspector/front-end/InspectorFrontendHostStub.js:
26831         (WebInspector.RemoteDebuggingTerminatedScreen):
26832         * inspector/front-end/inspector.js:
26833         (WebInspector.loaded.WebInspector.socket.onopen):
26834         (WebInspector.loaded):
26835         (WebInspector.detached):
26836
26837 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26838
26839         Web Inspector: Restoring breakpoints for formatted UISourceCode should be triggered by BreakpointManager, not ScriptsPanel.
26840         https://bugs.webkit.org/show_bug.cgi?id=100593
26841
26842         Reviewed by Pavel Feldman.
26843
26844         BreakpointManager now listen for FormattedChanged event and restores formatted breakpoints on it.
26845         Removed now redundant callback from UISourceCode.setFormatted().
26846
26847         * inspector/front-end/BreakpointManager.js:
26848         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
26849         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
26850         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
26851         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
26852         * inspector/front-end/ScriptsPanel.js:
26853         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
26854         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
26855         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
26856         * inspector/front-end/UISourceCode.js:
26857         (WebInspector.UISourceCode.prototype._fireContentAvailable):
26858         (WebInspector.UISourceCode.prototype.setFormatted.formattedChanged):
26859         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
26860         (WebInspector.UISourceCode.prototype.setFormatted):
26861
26862 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
26863
26864         Web Inspector: Output code evaluated in the console the same as console.log
26865         https://bugs.webkit.org/show_bug.cgi?id=100695
26866
26867         Reviewed by Pavel Feldman.
26868
26869         Added an option to return object preview from evaluation commands in the protocol.
26870         The option is used to generate preview for console eval results.
26871
26872         * inspector/InjectedScript.cpp:
26873         (WebCore::InjectedScript::evaluate):
26874         (WebCore::InjectedScript::callFunctionOn):
26875         (WebCore::InjectedScript::evaluateOnCallFrame):
26876         * inspector/InjectedScript.h:
26877         (InjectedScript):
26878         * inspector/InjectedScriptSource.js:
26879         (.):
26880         * inspector/Inspector.json:
26881         * inspector/InspectorDebuggerAgent.cpp:
26882         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
26883         * inspector/InspectorDebuggerAgent.h:
26884         (InspectorDebuggerAgent):
26885         * inspector/InspectorRuntimeAgent.cpp:
26886         (WebCore::InspectorRuntimeAgent::evaluate):
26887         (WebCore::InspectorRuntimeAgent::callFunctionOn):
26888         * inspector/InspectorRuntimeAgent.h:
26889         (InspectorRuntimeAgent):
26890         * inspector/front-end/ConsoleMessage.js:
26891         (WebInspector.ConsoleMessageImpl.prototype.useArrayPreviewInFormatter):
26892         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
26893         * inspector/front-end/ConsoleView.js:
26894         (WebInspector.ConsoleCommandResult.prototype.useArrayPreviewInFormatter):
26895         * inspector/front-end/DebuggerModel.js:
26896         (WebInspector.DebuggerModel.prototype.evaluateOnSelectedCallFrame):
26897         (WebInspector.DebuggerModel.CallFrame.prototype.evaluate):
26898         * inspector/front-end/ExtensionServer.js:
26899         (WebInspector.ExtensionServer.prototype.evaluate):
26900         * inspector/front-end/JavaScriptSourceFrame.js:
26901         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
26902         * inspector/front-end/RemoteObject.js:
26903         (WebInspector.RemoteObject.prototype.):
26904         (WebInspector.RemoteObject.prototype.callFunction):
26905         (WebInspector.RemoteObject.prototype.callFunctionJSON):
26906         * inspector/front-end/RuntimeModel.js:
26907         (WebInspector.RuntimeModel.prototype.evaluate):
26908         (WebInspector.RuntimeModel.prototype.evaluated):
26909         * inspector/front-end/WatchExpressionsSidebarPane.js:
26910         (WebInspector.WatchExpressionsSection.prototype.update):
26911
26912 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26913
26914         Web Inspector: Remove obsolete code from JavaScriptSourceFrame
26915         https://bugs.webkit.org/show_bug.cgi?id=100594
26916
26917         Reviewed by Yury Semikhatsky.
26918
26919         Removed obsolete WorkingCopyCommitted listener.
26920         Removed redundant code that removes breakpoints from _innerSetContent.
26921
26922         * inspector/front-end/JavaScriptSourceFrame.js:
26923         (WebInspector.JavaScriptSourceFrame):
26924         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
26925
26926 2012-11-01  Andreas Kling  <kling@webkit.org>
26927
26928         Update average StylePropertySet size estimation.
26929         <http://webkit.org/b/100940>
26930
26931         Reviewed by Antti Koivisto.
26932
26933         Use sizeForImmutableStylePropertySetWithPropertyCount(2) as the average StylePropertySet
26934         size to keep it in sync with the changed object memory layout.
26935
26936         * css/StylePropertySet.cpp:
26937         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26938         (WebCore::StylePropertySet::createImmutable):
26939         (WebCore::StylePropertySet::averageSizeInBytes):
26940         (WebCore::StylePropertySet::reportMemoryUsage):
26941
26942
26943 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26944
26945         [EFL][Qt][AC] Remove an unnecessary connection to X-Server.
26946         https://bugs.webkit.org/show_bug.cgi?id=100628.
26947
26948         Reviewed by Kenneth Rohde Christiansen.
26949
26950         With Changset: https://bugs.webkit.org/show_bug.cgi?id=100523
26951         GraphicsSurfacePrivate should always use the Display returned by offscreenwindow.
26952         However, in GraphicsSurfacePrivate constructor we call XOpenDisplay before asking
26953         display from offscreenwindow.
26954         This patch removes unnecessary call to XOpenDisplay made in GraphicsSurfacePrivate.
26955
26956         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
26957         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
26958
26959 2012-11-01  Mihnea Ovidenie  <mihnea@adobe.com>
26960
26961         [CSSRegions]Former auto-height regions should not ignore their defined height
26962         https://bugs.webkit.org/show_bug.cgi?id=100749
26963
26964         Reviewed by Julien Chaffraix.
26965
26966         When a region with height auto has its height defined, we should also clear the override logical content height.
26967         Otherwise, the region will use the wrong height when laying out content from the associated render flow thread.
26968
26969         Test: fast/regions/autoheight-definedheight-changenotdetected.html
26970
26971         * rendering/RenderRegion.cpp:
26972         (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
26973
26974 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
26975
26976         Memory instrumentation: do not report memory occupied by RenderObjects referenced from CSSImageGeneratorValue
26977         https://bugs.webkit.org/show_bug.cgi?id=100934
26978
26979         Reviewed by Alexander Pavlov.
26980
26981         * css/CSSImageGeneratorValue.cpp:
26982         (WTF): Skip rederences to RenderObjects from CSSImageGeneratorValue when collecting
26983         memory usage data.
26984
26985 2012-11-01  Kihong Kwon  <kihong.kwon@samsung.com>
26986
26987         Add DeviceController base-class to remove duplication of DeviceXXXControler
26988         https://bugs.webkit.org/show_bug.cgi?id=96894
26989
26990         Reviewed by Hajime Morita.
26991
26992         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
26993         And soon-to-be-added DeviceMotionController and ProximityController.
26994
26995         Covered by existing tests.
26996
26997         * CMakeLists.txt:
26998         * GNUmakefile.list.am:
26999         * Target.pri:
27000         * WebCore.gypi:
27001         * WebCore.vcproj/WebCore.vcproj:
27002         * WebCore.xcodeproj/project.pbxproj:
27003         * dom/DeviceOrientationClient.h:
27004         * dom/DeviceOrientationController.cpp:
27005         Remove member functions to move to DeviceController.
27006         - addListener(), removeListener(), removeAllListeners(), isActive()
27007         (WebCore::DeviceOrientationController::DeviceOrientationController):
27008         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
27009         (WebCore::DeviceOrientationController::client):
27010         (WebCore::DeviceOrientationController::hasLastData):
27011         (WebCore::DeviceOrientationController::getLastEvent):
27012         (WebCore::DeviceOrientationController::from):
27013         (WebCore):
27014         * dom/DeviceOrientationController.h:
27015         (WebCore):
27016         (WebCore::DeviceOrientationController::~DeviceOrientationController):
27017         (DeviceOrientationController):
27018         * dom/Document.cpp:
27019         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
27020         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
27021         (WebCore::Document::suspendActiveDOMObjects):
27022         (WebCore::Document::resumeActiveDOMObjects):
27023         * loader/EmptyClients.h:
27024         (EmptyDeviceClient):
27025         (WebCore::EmptyDeviceClient::startUpdating):
27026         (WebCore::EmptyDeviceClient::stopUpdating):
27027         (WebCore):
27028         * page/DOMWindow.cpp:
27029         (WebCore::DOMWindow::addEventListener):
27030         (WebCore::DOMWindow::removeEventListener):
27031         (WebCore::DOMWindow::removeAllEventListeners):
27032         * page/DeviceClient.h: Added.
27033         (WebCore):
27034         (DeviceClient):
27035         (WebCore::DeviceClient::~DeviceClient):
27036         * page/DeviceController.cpp: Added.
27037         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
27038         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
27039         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
27040         (WebCore):
27041         (WebCore::DeviceController::DeviceController):
27042         (WebCore::DeviceController::addDeviceEventListener):
27043         (WebCore::DeviceController::removeDeviceEventListener):
27044         (WebCore::DeviceController::removeAllDeviceEventListeners):
27045         (WebCore::DeviceController::dispatchDeviceEvent):
27046         (WebCore::DeviceController::fireDeviceEvent):
27047         * page/DeviceController.h: Added.
27048         (WebCore):
27049         (DeviceController):
27050         (WebCore::DeviceController::~DeviceController):
27051         (WebCore::DeviceController::isActive):
27052         (WebCore::DeviceController::client):
27053         (WebCore::DeviceController::hasLastData):
27054         (WebCore::DeviceController::getLastEvent):
27055
27056 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
27057
27058         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
27059         https://bugs.webkit.org/show_bug.cgi?id=100497
27060
27061         Reviewed by Alexander Pavlov.
27062
27063         Added memory reporting method to chromium implementation of ResourceRequest.
27064
27065         * platform/network/ResourceRequestBase.cpp:
27066         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
27067         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
27068         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
27069         in the descendant but ResourceRequestBase doesn't have any virtual methods
27070         and shouldn't be used directly(ResourceRequest should be used instead).
27071         * platform/network/ResourceRequestBase.h:
27072         (ResourceRequestBase):
27073         * platform/network/chromium/ResourceRequest.cpp:
27074         (WebCore::ResourceRequest::reportMemoryUsage):
27075         (WebCore):
27076         * platform/network/chromium/ResourceRequest.h:
27077         (ResourceRequest):
27078
27079 2012-11-01  Andreas Kling  <kling@webkit.org>
27080
27081         Pack immutable StylePropertySets harder on 64-bit.
27082         <http://webkit.org/b/100753>
27083         <rdar://problem/12599155>
27084
27085         Reviewed by Antti Koivisto.
27086
27087         Move away from using CSSProperty as internal storage for immutable StylePropertySets.
27088         Instead use two arrays, one for property metadata (ID, shorthand ID, !important, ...)
27089         and one for the CSSValue pointers. This saves 4 bytes per property on 64-bit.
27090
27091         Old object layout:
27092
27093             Ref count                   (4 bytes)
27094             Metadata                    (4 bytes)
27095             CSSProperty [N]             (16 bytes each)
27096
27097         New object layout:
27098
27099             Ref count                   (4 bytes)
27100             Metadata                    (4 bytes)
27101             CSSValue* [N]               (8 bytes each)
27102             StylePropertyMetadata [N]   (4 bytes each)
27103
27104         901kB progress on Membuster3 (22% overall reduction in StylePropertySet memory.)
27105
27106         The CSSProperty class sticks around for now, it's still used in mutable StylePropertySets
27107         and by the StylePropertySet constructors.
27108
27109         * css/CSSProperty.cpp:
27110         * css/CSSProperty.h:
27111         (CSSProperty):
27112         (WebCore::CSSProperty::CSSProperty):
27113         (WebCore::CSSProperty::id):
27114         (WebCore::CSSProperty::shorthandID):
27115         (WebCore::CSSProperty::isImportant):
27116         (WebCore::CSSProperty::metadata):
27117
27118             Break the bitfield from CSSProperty out into a StylePropertyMetadata class (actually a union.)
27119
27120         * css/StylePropertySet.cpp:
27121         (WebCore::immutableStylePropertySetSize):
27122
27123             Updated size calculation for immutable StylePropertySets, 1/4 smaller!
27124
27125         (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
27126         (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
27127         (WebCore::MutableStylePropertySet::MutableStylePropertySet):
27128         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
27129         (WebCore::StylePropertySet::reportMemoryUsage):
27130         (WebCore::StylePropertySet::PropertyReference::cssName):
27131         (WebCore::StylePropertySet::PropertyReference::cssText):
27132         * css/StylePropertySet.h:
27133         (WebCore::StylePropertySet::PropertyReference::id):
27134         (WebCore::StylePropertySet::PropertyReference::shorthandID):
27135         (WebCore::StylePropertySet::PropertyReference::isImportant):
27136         (WebCore::StylePropertySet::PropertyReference::isInherited):
27137         (WebCore::StylePropertySet::PropertyReference::isImplicit):
27138         (PropertyReference):
27139         (WebCore::StylePropertySet::PropertyReference::value):
27140         (WebCore::StylePropertySet::PropertyReference::toCSSProperty):
27141         (WebCore::StylePropertySet::PropertyReference::propertyMetadata):
27142         (WebCore::StylePropertySet::PropertyReference::propertyValue):
27143         (StylePropertySet):
27144         (ImmutableStylePropertySet):
27145         (WebCore::StylePropertySet::immutableValueArray):
27146         (WebCore::StylePropertySet::immutableMetadataArray):
27147
27148             Refactored internal storage for StylePropertySet.
27149
27150 2012-11-01  Kent Tamura  <tkent@chromium.org>
27151
27152         Remove unused Locale::parseDateTime
27153         https://bugs.webkit.org/show_bug.cgi?id=100910
27154
27155         Reviewed by Kentaro Hara.
27156
27157         For date/time input types, InputType::convertFromVisibleValue is never
27158         called. convertFromVisibleValue is called when an inner editable node is
27159         updated. However input elements don't have such editable nodes if
27160         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled, and a user can't edit the
27161         inner editable node otherwise because we open date/time pickers when a
27162         user try to change the field value.
27163
27164         We had used convertFromVisibleValue for input[type=date] with an old UI.
27165
27166         No new tests because of no behavior changes.
27167
27168         * html/BaseDateAndTimeInputType.cpp:
27169         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
27170         Remove Locale::parseDateTiem and put ASSERT_NOT_REACHED.
27171
27172         * platform/text/PlatformLocale.h: Remove parseDateTime.
27173
27174         * platform/text/LocaleICU.h: Remove parseDateTime and a bogus comment.
27175         * platform/text/LocaleICU.cpp: Remove parseDateTime.
27176
27177         * platform/text/LocaleNone.cpp: Remove parseDateTime.
27178
27179         * platform/text/mac/LocaleMac.h: Remove parseDateTime.
27180         * platform/text/mac/LocaleMac.mm: Ditto.
27181         * platform/text/win/LocaleWin.h:
27182         - Remove parseDateTime, its helpers, and m_baseYear.
27183         - Remove appendNumber, appendTwoDigitsNumber, appendFourDigitsNumber,
27184           and formatDate. They don't exist.
27185         * platform/text/win/LocaleWin.cpp:
27186         Remove the above functions.
27187         (WebCore::LocaleWin::LocaleWin): Remove m_baseYear iniitalization.
27188
27189 2012-10-31  Nate Chapin  <japhet@chromium.org>
27190
27191         Remove some CachedResource::Status's in favor of looking at CachedResource::m_error
27192         https://bugs.webkit.org/show_bug.cgi?id=100901
27193
27194         Reviewed by Adam Barth.
27195
27196         No new tests, refactor only.
27197
27198         * inspector/InspectorPageAgent.cpp:
27199         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
27200         * loader/DocumentThreadableLoader.cpp:
27201         (WebCore::DocumentThreadableLoader::notifyFinished):
27202         * loader/FrameLoader.cpp:
27203         (WebCore::FrameLoader::loadInSameDocument):
27204         * loader/SubresourceLoader.cpp:
27205         (WebCore::SubresourceLoader::didFail):
27206         (WebCore::SubresourceLoader::willCancel):
27207         * loader/cache/CachedResource.cpp:
27208         (WebCore::CachedResource::stopLoading):
27209         * loader/cache/CachedResource.h:
27210         (WebCore::CachedResource::wasCanceled):
27211         (WebCore::CachedResource::errorOccurred):
27212         (WebCore::CachedResource::loadFailedOrCanceled):
27213
27214 2012-10-31  Stephen White  <senorblanco@chromium.org>
27215
27216         Unreviewed, rolling out r133122.
27217         http://trac.webkit.org/changeset/133122
27218         https://bugs.webkit.org/show_bug.cgi?id=99083
27219
27220         Broke Chromium Win, Android, ChromeOS builds
27221
27222         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27223         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27224         (WebCore::GraphicsLayerChromium::paint):
27225         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27226         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27227         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27228         (OpaqueRectTrackingContentLayerDelegate):
27229
27230 2012-10-31  Takashi Sakamoto  <tasak@google.com>
27231
27232         [Refactoring] Move initial style setting for ProgressValueElement from attach method to createShadowSubtree method in HTMLProgressElement.
27233         https://bugs.webkit.org/show_bug.cgi?id=83664
27234
27235         Reviewed by Hajime Morita.
27236
27237         The original code updates inline style during attach(). However,
27238         the attach would be invoked from Element::recalcStyle()'s reattach().
27239         If updating inline styles during the reattach(), style related flags,
27240         i.e. childNeedsStyleRecalc, and needsStyleRecalc are cleared after the
27241         reattach(). So the inline styles are not updated in next
27242         setNeedsStyleRecalc, because ProgressValueElement has already had
27243         InlineStyleChange (existingChanegType == InlineStyleChange) and
27244         markAncestorsWithChildNeedsStyleRecalc is not invoked.
27245
27246         Test: fast/dom/HTMLProgressElement/progress-bar-set-value.html
27247
27248         * html/HTMLProgressElement.cpp:
27249         (WebCore::HTMLProgressElement::attach):
27250         Copied updateFromElement from didElementStateChange. If removing the
27251         update, indeterminate-progress-001.html and progress-element.html
27252         under fast/dom/HTMLProgressElement will fail. We still need attach()
27253         and updateFromElement. To remove the attach(), need more refactoring,
27254         i.e. investigating where attach() is invoked from and modifying all
27255         related codes.
27256         (WebCore::HTMLProgressElement::createShadowSubtree):
27257         Initialize m_value by indeterminate-position. The value is default
27258         value of progress element.
27259
27260 2012-10-31  Hayato Ito  <hayato@chromium.org>
27261
27262         Make resolveReprojection() defined in ComposedShadowTreeWalker.cpp callable from outside.
27263         https://bugs.webkit.org/show_bug.cgi?id=100832
27264
27265         Reviewed by Dimitri Glazkov.
27266
27267         InsertionPoint.h now defines resolveReprojection() so that it can be called from outside.
27268
27269         No new tests as no new functionality.
27270
27271         * dom/ComposedShadowTreeWalker.cpp:
27272         * html/shadow/InsertionPoint.h:
27273         (WebCore::shadowOfParentForDistribution):
27274         (WebCore):
27275         (WebCore::resolveReprojection):
27276
27277 2012-10-31  Alok Priyadarshi  <alokp@chromium.org>
27278
27279         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
27280         https://bugs.webkit.org/show_bug.cgi?id=99083
27281
27282         Reviewed by James Robinson.
27283
27284         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
27285
27286         No new tests needed. This patch does not change anything functionally.
27287
27288         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27289         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27290         (WebCore::GraphicsLayerChromium::paint):
27291         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27292         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27293         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27294         (OpaqueRectTrackingContentLayerDelegate):
27295
27296 2012-10-31  Chris Evans  <cevans@google.com>
27297
27298         RenderArena has a memory leak and poor efficiency
27299         https://bugs.webkit.org/show_bug.cgi?id=100893
27300
27301         Reviewed by Eric Seidel.
27302
27303         1) Avoid memory leak that persists for the Document lifetime by
27304         increasing recycled size buckets up to 1024. It was previously 400,
27305         and sizeof(RenderNamedFlowThread) / sizeof(RenderSVGText) both blew this
27306         quota. An assert was added to prevent this happening again.
27307
27308         2) Fix the size of the recyled size bucket array on 64-bit. We only
27309         need 8 byte granularity on 64-bit, but we had 4.
27310
27311         3) Try and pass power-of-two sizes to the underlying malloc() call, so
27312         that we're space efficient. We now take Arena metadata into account.
27313
27314         4) Double the default RenderArena size allocation to 8192 bytes. Even
27315         for a render of a trivial text file, 4096 bytes is not enough to prevent
27316         extra calls into the underlying malloc() for more arena pool.
27317
27318         * rendering/RenderArena.cpp:
27319         (WebCore::RenderArena::RenderArena): Adjust arena size so that we pass on the page-sized multiple to the underlying malloc() implementation.
27320         (WebCore::RenderArena::allocate):
27321         (WebCore::RenderArena::free): Assert that the allocation size is handled by our recycling buckets.
27322         * rendering/RenderArena.h:
27323         (WebCore): Maintain free buckets up to 1024 bytes to avoid memory leak.
27324         (RenderArena): Double the default allocation size and handle 64-bit systems more efficiently.
27325
27326 2012-10-31  Adam Barth  <abarth@webkit.org>
27327
27328         [V8] Garbage collection should use opaque roots rather than implicit references
27329         https://bugs.webkit.org/show_bug.cgi?id=100707
27330
27331         Reviewed by Kentaro Hara.
27332
27333         This patch replaces visitDOMWrapper with opaqueRootForGC. The
27334         former used to inform V8 of implicit relationships between wrapper
27335         objects on a per-wrapper basis. That meant that we needed to know which
27336         DOMDataStore a given wrapper was in during garbage collection.
27337
27338         After this patch, we now use object groups rather than implicit
27339         references to inform V8 of these relationships. That has two benefits:
27340
27341         1) We no longer need to know which DOMDataStore a wrapper belongs
27342            because we don't need to find the exact source wrapper for the
27343            implicit connection.
27344
27345         2) We can now handle more complicated implicit relationships, for
27346            example when some of the intervening objects haven't had their
27347            JavaScript wrappers created yet.
27348
27349         This patch also unlocks to paths of future development:
27350         A) Fixing the remaining failures in fast/dom/gc-9.html
27351         B) Enumerating DOM wrappers entirely from V8 rather than from the
27352            DOMWrapperMaps (so that we can move more object towards using
27353            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
27354
27355         * bindings/scripts/CodeGeneratorV8.pm:
27356         (NeedsCustomOpaqueRootForGC):
27357         (GenerateOpaqueRootForGC):
27358         (GenerateHeader):
27359         (GenerateImplementation):
27360         * bindings/v8/V8GCController.cpp:
27361         (ImplicitConnection):
27362         (WebCore::ImplicitConnection::ImplicitConnection):
27363         (WebCore::ImplicitConnection::root):
27364         (WebCore::ImplicitConnection::wrapper):
27365         (WebCore):
27366         (WebCore::operator<):
27367         (WrapperGrouper):
27368         (WebCore::WrapperGrouper::WrapperGrouper):
27369         (WebCore::WrapperGrouper::addToGroup):
27370         (WebCore::WrapperGrouper::keepAlive):
27371         (WebCore::WrapperGrouper::apply):
27372         (WebCore::ObjectVisitor::ObjectVisitor):
27373         (WebCore::ObjectVisitor::visitDOMWrapper):
27374         (ObjectVisitor):
27375         (WebCore::V8GCController::opaqueRootForGC):
27376         (WebCore::NodeVisitor::NodeVisitor):
27377         (WebCore::NodeVisitor::visitNodeWrapper):
27378         (NodeVisitor):
27379         (WebCore::V8GCController::majorGCPrologue):
27380         * bindings/v8/V8GCController.h:
27381         (WebCore):
27382         (V8GCController):
27383         * bindings/v8/WrapperTypeInfo.h:
27384         (WebCore):
27385         (WebCore::WrapperTypeInfo::opaqueRootForGC):
27386         (WrapperTypeInfo):
27387         * bindings/v8/custom/V8NodeListCustom.cpp:
27388         (WebCore::V8NodeList::opaqueRootForGC):
27389         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27390         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
27391
27392 2012-10-31  Stephen White  <senorblanco@chromium.org>
27393
27394         Unreviewed, rolling out r133107.
27395         http://trac.webkit.org/changeset/133107
27396         https://bugs.webkit.org/show_bug.cgi?id=100425
27397
27398         Broke compile on Chromium Win.
27399
27400         * Modules/indexeddb/IDBCallbacks.h:
27401         (IDBCallbacks):
27402         * Modules/indexeddb/IDBDatabase.cpp:
27403         (WebCore::IDBDatabase::objectStoreNames):
27404         (WebCore::IDBDatabase::createObjectStore):
27405         (WebCore::IDBDatabase::deleteObjectStore):
27406         (WebCore::IDBDatabase::transaction):
27407         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27408         (WebCore::IDBDatabaseBackendImpl::metadata):
27409         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27410         (WebCore::IDBDatabaseBackendImpl::objectStore):
27411         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27412         (WebCore::IDBDatabaseBackendImpl::transaction):
27413         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27414         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27415         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27416         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27417         (IDBDatabaseBackendImpl):
27418         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27419         (IDBDatabaseBackendInterface):
27420         * Modules/indexeddb/IDBFactory.cpp:
27421         * Modules/indexeddb/IDBFactory.h:
27422         * Modules/indexeddb/IDBIndex.h:
27423         (WebCore::IDBIndex::openKeyCursor):
27424         * Modules/indexeddb/IDBIndexBackendInterface.h:
27425         * Modules/indexeddb/IDBKeyPath.cpp:
27426         * Modules/indexeddb/IDBMetadata.h:
27427         (WebCore):
27428         (IDBDatabaseMetadata):
27429         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27430         (IDBObjectStoreMetadata):
27431         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27432         (IDBIndexMetadata):
27433         * Modules/indexeddb/IDBObjectStore.cpp:
27434         (WebCore::IDBObjectStore::indexNames):
27435         (WebCore::IDBObjectStore::put):
27436         (WebCore::IDBObjectStore::createIndex):
27437         (WebCore::IDBObjectStore::index):
27438         (WebCore::IDBObjectStore::deleteIndex):
27439         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27440         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27441         (WebCore):
27442         (WebCore::makeIndexWriters):
27443         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27444         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27445         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27446         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27447         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27448         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27449         (WebCore::IDBObjectStoreBackendImpl::index):
27450         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27451         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27452         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27453         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27454         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27455         (IDBObjectStoreBackendImpl):
27456         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27457         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27458         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27459         * Modules/indexeddb/IDBRequest.cpp:
27460         (WebCore::IDBRequest::onSuccess):
27461         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27462         * Modules/indexeddb/IDBTransaction.cpp:
27463         (WebCore::IDBTransaction::create):
27464         (WebCore::IDBTransaction::IDBTransaction):
27465         (WebCore::IDBTransaction::objectStore):
27466         * Modules/indexeddb/IDBTransaction.h:
27467         (IDBTransaction):
27468         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27469         (WebCore::IDBTransactionBackendImpl::create):
27470         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27471         (WebCore::IDBTransactionBackendImpl::objectStore):
27472         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27473         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27474         (IDBTransactionBackendImpl):
27475         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27476         * Modules/indexeddb/IDBTransactionCoordinator.h:
27477
27478 2012-10-31  Alec Flett  <alecflett@chromium.org>
27479
27480         IndexedDB: add methods to support id-based backend APIs
27481         https://bugs.webkit.org/show_bug.cgi?id=100425
27482
27483         Reviewed by Tony Chang.
27484
27485         First half of refactor involves adding a number of methods that
27486         are int64_t-based rather than String-based. As a part of this, the
27487         IDB*Metadata structs and the backend objectStore/index maps all
27488         use int64_t as keys, rather than String.
27489
27490         In addition, there were a number of cleanups that came out of the
27491         refactor:
27492
27493         - The list of object stores active in a transaction is now
27494           maintained by the frontend IDBTransaction rather than the backend
27495           IDBTransactionBackendImpl. This also had a simplifying rippling
27496           effect through other call signatures.
27497
27498         - I was able to remove an apparently old FIXME from
27499           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
27500
27501         - IDBObjectStoreBackendImpl's IndexWriter class got a little
27502           simpler since the id is now easily available in the
27503           IDBIndexMetadata.
27504
27505         - A number of methods got simpler in their int64_t versions,
27506           specifically dropping a number of ExceptionCodes.
27507
27508         There is also some glue code
27509         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
27510         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
27511
27512         No new tests, no new functionality as this is just a refactor.
27513
27514         * Modules/indexeddb/IDBDatabase.cpp:
27515         (WebCore::IDBDatabase::objectStoreNames):
27516         (WebCore::IDBDatabase::createObjectStore):
27517         (WebCore::IDBDatabase::deleteObjectStore):
27518         (WebCore::IDBDatabase::transaction):
27519         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27520         (WebCore::IDBDatabaseBackendImpl::metadata):
27521         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27522         (WebCore::IDBDatabaseBackendImpl::objectStore):
27523         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
27524         (WebCore):
27525         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27526         (WebCore::IDBDatabaseBackendImpl::transaction):
27527         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27528         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27529         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27530         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27531         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27532         (IDBDatabaseBackendImpl):
27533         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27534         (IDBDatabaseBackendInterface):
27535         * Modules/indexeddb/IDBIndex.h:
27536         (WebCore::IDBIndex::id):
27537         (WebCore::IDBIndex::openKeyCursor):
27538         * Modules/indexeddb/IDBIndexBackendInterface.h:
27539         * Modules/indexeddb/IDBMetadata.h:
27540         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27541         (IDBIndexMetadata):
27542         (IDBObjectStoreMetadata):
27543         (WebCore::IDBObjectStoreMetadata::containsIndex):
27544         (IDBDatabaseMetadata):
27545         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27546         (WebCore::IDBDatabaseMetadata::containsObjectStore):
27547         * Modules/indexeddb/IDBObjectStore.cpp:
27548         (WebCore::IDBObjectStore::indexNames):
27549         (WebCore::IDBObjectStore::put):
27550         (WebCore::IDBObjectStore::createIndex):
27551         (WebCore::IDBObjectStore::index):
27552         (WebCore::IDBObjectStore::deleteIndex):
27553         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27554         (WebCore::IDBObjectStoreBackendImpl::put):
27555         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27556         (WebCore):
27557         (WebCore::makeIndexWriters):
27558         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27559         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27560         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27561         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27562         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27563         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27564         (WebCore::IDBObjectStoreBackendImpl::index):
27565         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
27566         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
27567         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27568         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27569         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27570         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27571         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27572         (IDBObjectStoreBackendImpl):
27573         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27574         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27575         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27576         * Modules/indexeddb/IDBRequest.cpp:
27577         (WebCore::IDBRequest::onSuccess):
27578         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27579         * Modules/indexeddb/IDBTransaction.cpp:
27580         (WebCore::IDBTransaction::create):
27581         (WebCore::IDBTransaction::IDBTransaction):
27582         (WebCore::IDBTransaction::objectStore):
27583         * Modules/indexeddb/IDBTransaction.h:
27584         (IDBTransaction):
27585         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27586         (WebCore::IDBTransactionBackendImpl::create):
27587         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27588         (WebCore::IDBTransactionBackendImpl::objectStore):
27589         (WebCore):
27590         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27591         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27592         (IDBTransactionBackendImpl):
27593         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27594
27595 2012-10-30  Mark Lam  <mark.lam@apple.com>
27596
27597         A JSC printf (support for %J+s and %b).
27598         https://bugs.webkit.org/show_bug.cgi?id=100566.
27599
27600         Reviewed by Michael Saboff.
27601
27602         Added forwarding header for VMInspector.h.
27603
27604         No new tests needed for this.
27605
27606         * ForwardingHeaders/interpreter/VMInspector.h: Added.
27607
27608 2012-10-31  Chris Rogers  <crogers@google.com>
27609
27610         Implement optional arguments in AudioBufferSourceNode start() method
27611         https://bugs.webkit.org/show_bug.cgi?id=100894
27612
27613         Reviewed by Kenneth Russell.
27614
27615         The start() method should be able to take 1, 2, or 3 arguments, optionally supporting
27616         offset and duration.  Currently, only 1 and 3 arguments are supported.
27617
27618         Test: webaudio/audiobuffersource-start.html
27619
27620         * Modules/webaudio/AudioBufferSourceNode.cpp:
27621         (WebCore::AudioBufferSourceNode::renderFromBuffer):
27622         (WebCore::AudioBufferSourceNode::startGrain):
27623         (WebCore):
27624         * Modules/webaudio/AudioBufferSourceNode.h:
27625         (AudioBufferSourceNode):
27626         * Modules/webaudio/AudioBufferSourceNode.idl:
27627
27628 2012-10-31  Mike West  <mkwst@chromium.org>
27629
27630         Implement the canonical "Content-Security-Policy" header.
27631         https://bugs.webkit.org/show_bug.cgi?id=96765
27632
27633         Reviewed by Adam Barth.
27634
27635         The CSP 1.0 specification defines the "Content-Security-Policy" header
27636         as the canonical mechanism of defining a resource's security policy. Up
27637         through this patch, we've implemented the functionality behind a prefix
27638         in order to ensure compatibility with the standard once it's released as
27639         a recommendation. Both the specification and WebKit's implementation are
27640         far enough along in that process that it makes sense to support the
27641         unprefixed header for sites that wish to opt-in to CSP 1.0.
27642
27643         As discussed on public-webappsec[1], we'll keep the experimental 1.1
27644         features behind the prefixed header ('X-WebKit-CSP') until that standard
27645         is far enough along to justify moving them out to the canonical header.
27646
27647         This patch defines the 'Content-Security-Policy' header for all ports,
27648         just as the 'X-WebKit-CSP' header is currently supported on all ports.
27649         Ports that have not opted-in to the CSP_NEXT flag will see exactly the
27650         same behavior with both headers. Ports that have opted-in will see much
27651         of CSP 1.1's current definition on the prefixed header, and CSP 1.0 on
27652         the canonical header.
27653
27654         The functionality in this change is covered by the changes made to
27655         existing tests. No expectations changed, only the headers that are sent.
27656
27657         * dom/Document.cpp:
27658         (WebCore::Document::processHttpEquiv):
27659             Add canonical header support to 'meta' element definitions.
27660         * loader/FrameLoader.cpp:
27661         (WebCore::FrameLoader::didBeginDocument):
27662             Add canonical header support to FrameLoader.
27663         * page/ContentSecurityPolicy.cpp:
27664         (WebCore::CSPDirectiveList::headerType):
27665             The ContentSecurityPolicy::HeaderType enum now has four values:
27666             prefixed/report-only, unprefixed/report-only, prefixed/enforce, and
27667             unprefixed/enforce. Instead of creating logic to output the proper
27668             type based on internal flags, CSPDirectiveList now saves the value
27669             provided at creation time, and returns it via this method.
27670         (CSPDirectiveList):
27671         (WebCore::CSPDirectiveList::CSPDirectiveList):
27672             The constructor now accepts a type, which is stored on the object.
27673             It also stores a new internal variable, 'm_experimental', which
27674             defines whether or not experimental features ought to be available.
27675             These features are still locked behind the CSP_NEXT flag, but that
27676             might not be the case forever.
27677         (WebCore::CSPDirectiveList::create):
27678             The static constructor wrapper now passes the type into the real
27679             constructor, which also now handles setting its internal variables.
27680         (WebCore::CSPDirectiveList::parse):
27681             'parse()' is given the header, so it makes sense to store it here as
27682             well, rather than in the create wrapper.
27683         (WebCore::CSPDirectiveList::addDirective):
27684             1.1 directives remain locked behind CSP_NEXT, but now also require
27685             that 'm_experimental' is set, signaling usage of the prefixed header
27686             and an implicit opt-in to 1.1.
27687         * page/ContentSecurityPolicy.h:
27688             Added two new types to the HeaderTypes enum: PrefixedReportOnly, and
27689             PrefixedEnforcePolicy. These map to 'X-WebKitCSP-Report-Only' and
27690             'X-WebKit-CSP', respectively.
27691
27692 2012-10-31  Roger Fong  <roger_fong@apple.com>
27693
27694         Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.
27695         https://bugs.webkit.org/show_bug.cgi?id=100317
27696
27697         Reviewed by Sam Weinig.
27698
27699         The existing code determines which screen the popup menu "belongs" to by determining which screen the owning application's hwnd belongs to,
27700         where ownership is determined by how much of the hwnd is on which screen.
27701         To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
27702         To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
27703         However, since the drop down button is something that WebKit renders there is no hwnd.
27704
27705         To remedy this issue, we can temporarily move the popup menu's hwnd to match the position and size of the button,
27706         determine the correct screen, and then eventually move it back to the correct final position after the rest of 
27707         the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
27708         between the temporary and final positionings.
27709
27710         There's not really a good way of testing popup menus except manually, they're separate hwnds created outside of the WebView.
27711
27712         * platform/win/PopupMenuWin.cpp:
27713         (WebCore::monitorFromHwnd):
27714         (WebCore):
27715         (WebCore::PopupMenuWin::show):
27716         (WebCore::PopupMenuWin::calculatePositionAndSize):
27717
27718 2012-10-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
27719
27720         Added viewport at-rule to the CSS parser and tokenizer
27721         https://bugs.webkit.org/show_bug.cgi?id=95961
27722
27723         Reviewed by Kenneth Rohde Christiansen.
27724
27725         Add tokens and grammar rules to parse @-webkit-viewport blocks. Also add
27726         the newly parsed rule to the rule list.
27727
27728         This parser now implements the following part of the CSS Device Adaptation
27729         specification: http://www.w3.org/TR/css-device-adapt/#syntax
27730
27731         Test: css3/device-adapt/viewport-at-rule-parsing.html
27732
27733         * CMakeLists.txt:
27734         * GNUmakefile.list.am:
27735         * Target.pri:
27736         * WebCore.gypi:
27737         * WebCore.vcproj/WebCore.vcproj:
27738         * WebCore.xcodeproj/project.pbxproj:
27739         * css/CSSGrammar.y.in:
27740         * css/CSSParser.cpp:
27741         (WebCore::CSSParser::CSSParser):
27742         (WebCore::CSSParser::detectAtToken):
27743         (WebCore):
27744         (WebCore::CSSParser::createViewportRule):
27745         * css/CSSParser.h:
27746         (CSSParser):
27747         (WebCore::CSSParser::markViewportRuleBodyStart):
27748         (WebCore::CSSParser::markViewportRuleBodyEnd):
27749         (WebCore::CSSParser::inViewport):
27750
27751             These methods are needed by the next patch validating the properties.
27752             Some viewport properties are common to other rules but have different
27753             semantics, and accepts different keywords. The validation needs to be
27754             done in a different code path.
27755
27756         * css/CSSPropertySourceData.h:
27757         * css/CSSRule.cpp:
27758         (WebCore):
27759         (WebCore::CSSRule::cssText):
27760         (WebCore::CSSRule::destroy):
27761         (WebCore::CSSRule::reattach):
27762         (WebCore::CSSRule::reportMemoryUsage):
27763         * css/CSSRule.h:
27764         (CSSRule):
27765         (WebCore::CSSRule::isViewportRule):
27766         * css/StyleRule.cpp:
27767         (WebCore::StyleRuleBase::reportMemoryUsage):
27768         (WebCore::StyleRuleBase::destroy):
27769         (WebCore::StyleRuleBase::copy):
27770         (WebCore::StyleRuleBase::createCSSOMWrapper):
27771         (WebCore):
27772         (WebCore::StyleRuleViewport::StyleRuleViewport):
27773         (WebCore::StyleRuleViewport::~StyleRuleViewport):
27774         (WebCore::StyleRuleViewport::mutableProperties):
27775         (WebCore::StyleRuleViewport::setProperties):
27776         (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
27777         * css/StyleRule.h:
27778         (StyleRuleBase):
27779         (WebCore::StyleRuleBase::isViewportRule):
27780         (WebCore):
27781         (StyleRuleViewport):
27782         (WebCore::StyleRuleViewport::create):
27783         (WebCore::StyleRuleViewport::properties):
27784         (WebCore::StyleRuleViewport::copy):
27785         * css/WebKitCSSViewportRule.cpp: Added.
27786         (WebCore):
27787         (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
27788         (WebCore::WebKitCSSViewportRule::~WebKitCSSViewportRule):
27789         (WebCore::WebKitCSSViewportRule::style):
27790         (WebCore::WebKitCSSViewportRule::cssText):
27791         (WebCore::WebKitCSSViewportRule::reattach):
27792         (WebCore::WebKitCSSViewportRule::reportDescendantMemoryUsage):
27793         * css/WebKitCSSViewportRule.h: Added.
27794         (WebCore):
27795
27796 2012-10-31  Max Vujovic  <mvujovic@adobe.com>
27797
27798         [CSS Shaders] Validate types of built-in uniforms
27799         https://bugs.webkit.org/show_bug.cgi?id=98974
27800
27801         Reviewed by Dean Jackson.
27802
27803         Reject shaders which define built-in uniforms with the wrong type. For example, we reject a
27804         shader with the GLSL code "uniform float u_textureSize;" because u_textureSize should be a
27805         vec2, not a float.
27806
27807         Relevant Spec Section:
27808         https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables
27809
27810         Test: css3/filters/custom/invalid-custom-filter-uniform-types.html
27811
27812         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
27813         (WebCore):
27814         (WebCore::builtInUniformNameToTypeMap):
27815         (WebCore::validateSymbols):
27816
27817 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
27818
27819         Unreviewed, rolling out r133044.
27820         http://trac.webkit.org/changeset/133044
27821         https://bugs.webkit.org/show_bug.cgi?id=100888
27822
27823         Hits an ASSERT in the isolatedWorlds tests (Requested by
27824         abarth on #webkit).
27825
27826         * bindings/scripts/CodeGeneratorV8.pm:
27827         (NeedsToVisitDOMWrapper):
27828         (GenerateVisitDOMWrapper):
27829         (GenerateHeader):
27830         (GenerateImplementation):
27831         * bindings/v8/V8GCController.cpp:
27832         (WebCore::ObjectVisitor::ObjectVisitor):
27833         (WebCore::ObjectVisitor::visitDOMWrapper):
27834         (ObjectVisitor):
27835         (WebCore::rootForGC):
27836         (ImplicitConnection):
27837         (WebCore::ImplicitConnection::ImplicitConnection):
27838         (WebCore::ImplicitConnection::root):
27839         (WebCore::ImplicitConnection::wrapper):
27840         (WebCore):
27841         (WebCore::operator<):
27842         (WebCore::NodeVisitor::NodeVisitor):
27843         (WebCore::NodeVisitor::visitNodeWrapper):
27844         (NodeVisitor):
27845         (WebCore::NodeVisitor::applyGrouping):
27846         (WebCore::V8GCController::majorGCPrologue):
27847         * bindings/v8/V8GCController.h:
27848         (V8GCController):
27849         * bindings/v8/WrapperTypeInfo.h:
27850         (WebCore):
27851         (WebCore::WrapperTypeInfo::visitDOMWrapper):
27852         (WrapperTypeInfo):
27853         * bindings/v8/custom/V8NodeListCustom.cpp:
27854         (WebCore::V8NodeList::visitDOMWrapper):
27855         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27856         (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
27857
27858 2012-10-31  Philip Rogers  <pdr@google.com>
27859
27860         Cache animationMode() in SVG animations.
27861         https://bugs.webkit.org/show_bug.cgi?id=99694
27862
27863         Reviewed by Eric Seidel.
27864
27865         This patch caches animationMode() which accounted for 25% of the CPU time of a simple
27866         animation benchmark! This is the 3rd patch for WK99694.
27867
27868         Background: SVGAnimationElement contains most of the shared animation logic for <animate>,
27869         <set>, <animateColor>, <animateTransform>, and <animateMotion>. <animateMotion> is the only
27870         animation element that can depend on other elements in the page. For example:
27871         <path id="mypath" d="M0 0 L 100 100Z"/> <!-- note, can be animated! -->
27872         <rect x="0" y="0" width="100" height="100" fill="green">
27873             <animateMotion dur="6s" repeatCount="indefinite">
27874                 <mpath xlink:href="#mypath"/>
27875             </animateMotion>
27876         </rect>
27877         See: http://www.w3.org/TR/SVG/single-page.html#animate-AnimateMotionElement
27878
27879         animationMode depends on several properties of an animation element: the set tag, whether
27880         the animation has a path, and the "values", "to", and "by" attributes. animationMode() was
27881         a hot function for two reasons:
27882         1) hasAttribute(SVGNames::valuesAttr) is expensive because we are unable to use
27883            fastHasAttribute. This is cacheable by simply calculating the animationMode when the
27884            "values" attribute changes.
27885         2) In the <animateMotion> case, determining if a path is empty or changed is expensive.
27886            AnimateMotion can have a path attribute, or it can have <mpath> children that reference
27887            a (possibly non-existent) <path> element elsewhere in the page. Before this patch we did
27888            this path lookup on every animation loop in case something changed. After this patch we
27889            only update AnimateMotion's path when it changes.
27890
27891         A previous patch, http://trac.webkit.org/changeset/132847, laid the groundwork for tracking
27892         <path> changes in <mpath>. This patch adds <mpath> to our resource tracking infrastructure
27893         to track when target <path>s change, instead of looking this up every time.
27894
27895         This refactoring is covered by existing tests.
27896         svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg fails after this patch
27897         because our element dependency tracking has a bug with duplicate ids; see WK99893.
27898
27899         * svg/SVGAnimateMotionElement.cpp:
27900         (WebCore::SVGAnimateMotionElement::parseAttribute):
27901         (WebCore::SVGAnimateMotionElement::updateAnimationPath):
27902
27903             animationPath() has been changed to updateAnimationPath() and should only be called
27904             when the animation path (path attribute, or mpath's referenced path) has changed.
27905
27906         (WebCore::SVGAnimateMotionElement::buildTransformForProgress):
27907         (WebCore::SVGAnimateMotionElement::updateAnimationMode):
27908
27909             If an animationPath exists, we use PathAnimation, otherwise we fall back to the normal
27910             updateAnimationMode() codepath.
27911
27912         (WebCore):
27913         * svg/SVGAnimateMotionElement.h:
27914         (SVGAnimateMotionElement):
27915         * svg/SVGAnimationElement.cpp:
27916         (WebCore::SVGAnimationElement::SVGAnimationElement):
27917         (WebCore::SVGAnimationElement::isSupportedAttribute):
27918         (WebCore::SVGAnimationElement::parseAttribute):
27919
27920             The from, by, and to attributes have been added so that we can track when they change
27921             and update the animation mode. Similarly for when the values attribute changes.
27922
27923         (WebCore::SVGAnimationElement::updateAnimationMode):
27924         * svg/SVGAnimationElement.h:
27925         (WebCore::SVGAnimationElement::animationMode):
27926         (SVGAnimationElement):
27927         (WebCore::SVGAnimationElement::setAnimationMode):
27928         (WebCore::SVGAnimationElement::calculateDistance):
27929         * svg/SVGMPathElement.cpp:
27930         (WebCore::SVGMPathElement::buildPendingResource):
27931
27932             It would be nice to move all the duplicated buildPendingResource() logic into a central
27933             place (SVGURIReference?) but for now it is copied. This function is nearly identical to
27934             SVGFEImageElement::buildPendingResource.
27935
27936         (WebCore):
27937         (WebCore::SVGMPathElement::clearResourceReferences):
27938         (WebCore::SVGMPathElement::insertedInto):
27939         (WebCore::SVGMPathElement::removedFrom):
27940         (WebCore::SVGMPathElement::svgAttributeChanged):
27941         (WebCore::SVGMPathElement::targetPathChanged):
27942         (WebCore::SVGMPathElement::notifyParentOfPathChange):
27943         * svg/SVGMPathElement.h:
27944         (SVGMPathElement):
27945         * svg/SVGPathElement.cpp:
27946
27947             When a <path>'s path changes, we need to notify any dependent <mpath> elements. This is
27948             typically handled with RenderSVGResource::markForLayoutAndParentResourceInvalidation
27949             but for the special-case of <mpath> we only need to track when the path's "d" attribute
27950             changes so invalidateMPathDependencies() has been added.
27951
27952         (WebCore::SVGPathElement::svgAttributeChanged):
27953         (WebCore::SVGPathElement::invalidateMPathDependencies):
27954         (WebCore):
27955         (WebCore::SVGPathElement::insertedInto):
27956         (WebCore::SVGPathElement::removedFrom):
27957         * svg/SVGPathElement.h:
27958         (SVGPathElement):
27959         * svg/SVGSetElement.cpp:
27960         (WebCore::SVGSetElement::SVGSetElement):
27961         (WebCore::SVGSetElement::updateAnimationMode):
27962         (WebCore):
27963         * svg/SVGSetElement.h:
27964         (SVGSetElement):
27965         * svg/animation/SVGSMILElement.cpp:
27966         (WebCore::SVGSMILElement::isSupportedAttribute):
27967
27968 2012-10-31  Beth Dakin  <bdakin@apple.com>
27969
27970         https://bugs.webkit.org/show_bug.cgi?id=100879
27971         ScrollingStateNode::cloneAndResetNode() should not be virtual
27972
27973         Reviewed by Simon Fraser.
27974
27975         cloneAndResetNode() is currently pure virtual and implemented only 
27976         in ScrollingStateScrollingNode. However, all of the work that it 
27977         does at this time is stuff that a generic ScrollingStateNode could 
27978         do. We should move this implementation to the base class so that it 
27979         does not need to be duplicated for future node types.
27980
27981         This patch also re-names cloneAndResetNode() to cloneAndReset()
27982         and correspondingly re-names cloneAndResetChildNodes() to 
27983         cloneAndResetChildren(). 
27984
27985         Finally the patch also changes the copy constructors of both of these 
27986         classes to take a const reference instead of a pointer.
27987
27988         * page/scrolling/ScrollingStateNode.cpp:
27989         (WebCore::ScrollingStateNode::ScrollingStateNode):
27990         (WebCore::ScrollingStateNode::cloneAndReset):
27991         (WebCore):
27992         (WebCore::ScrollingStateNode::cloneAndResetChildren):
27993         * page/scrolling/ScrollingStateNode.h:
27994         (ScrollingStateNode):
27995         * page/scrolling/ScrollingStateScrollingNode.cpp:
27996         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
27997         (WebCore):
27998         * page/scrolling/ScrollingStateScrollingNode.h:
27999         (ScrollingStateScrollingNode):
28000         * page/scrolling/ScrollingStateTree.cpp:
28001         (WebCore::ScrollingStateTree::commit):
28002
28003 2012-10-31  Tom Sepez  <tsepez@chromium.org>
28004         
28005         Malformed X-XSS-Protection headers not reported.
28006         https://bugs.webkit.org/show_bug.cgi?id=100538
28007
28008         Reviewed by Adam Barth.
28009
28010         Re-writes X-XSS-Protection header parser to be more particular, and to
28011         return better information on error.
28012
28013         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-1.html
28014                http/tests/security/xssAuditor/malformed-xss-protection-header-2.html
28015                http/tests/security/xssAuditor/malformed-xss-protection-header-4.html
28016                http/tests/security/xssAuditor/xss-protection-parsing-02.html
28017
28018         * html/parser/XSSAuditor.cpp:
28019         (WebCore::XSSAuditor::init):
28020         Detect error return code and log console message with details
28021         * platform/network/HTTPParsers.cpp:
28022         (WebCore):
28023         (WebCore::skipWhiteSpace):
28024         Use safe less-than comparsion in case called with pos already out of range.
28025         (WebCore::skipToken):
28026         Fix comparison to properly reject substrings at end of input.  Prevent advancing
28027         returned position when match fails, so that this may someday be used to match
28028         optional tokens.
28029         (WebCore::parseXSSProtectionHeader):
28030         Return detailled error status. Avoid needless string copy.
28031         * platform/network/HTTPParsers.h:
28032         Add new error returns for x-xss-protection header parser.
28033         
28034 2012-10-31  Simon Fraser  <simon.fraser@apple.com>
28035
28036         REGRESSION (tile cache layers): bits of tiled layers are missing with certain 3D transforms
28037         https://bugs.webkit.org/show_bug.cgi?id=100808
28038         <rdar://problem/12562541>
28039
28040         Reviewed by Dean Jackson.
28041
28042         When projecting rects down into transformed layers, the projection can fail with severe
28043         3D rotations if the computed w component in TransformationMatrix::projectPoint() is negative.
28044         In this case we already clamp, but the fact that we clamped doesn't make it out to
28045         GraphicsLayerCA::computeVisibleRect() which resulted in incorrect visible rects being
28046         computed.
28047         
28048         Fix by propagating the fact that clamping occurred out of the TransformState functions
28049         which can clamp. In computeVisibleRect(), simply consider the entire layer bounds
28050         to be visible if clamping occurred.
28051
28052         Tests: compositing/tiling/rotated-tiled-clamped.html
28053                compositing/tiling/rotated-tiled-preserve3d-clamped.html
28054
28055         * platform/graphics/ca/GraphicsLayerCA.cpp:
28056         (WebCore::GraphicsLayerCA::computeVisibleRect): If either the applyTransform()
28057         or the state.mappedQuad() clamped, use our bounds as the visible rect.
28058         * platform/graphics/transforms/TransformState.cpp:
28059         (WebCore::TransformState::applyTransform): Pass out clamping state.
28060         (WebCore::TransformState::flatten): Ditto.
28061         (WebCore::TransformState::mappedPoint): Ditto.
28062         (WebCore::TransformState::mappedQuad): Ditto.
28063         (WebCore::TransformState::flattenWithTransform): Ditto. No need to initialize
28064         wasClamped, since this function is internal.
28065         * platform/graphics/transforms/TransformState.h:
28066         (TransformState):
28067         * platform/graphics/transforms/TransformationMatrix.cpp:
28068         (WebCore::TransformationMatrix::projectQuad): If any point projection clamped,
28069         set the flag to say we clamped.
28070         * platform/graphics/transforms/TransformationMatrix.h:
28071         (TransformationMatrix):
28072
28073 2012-10-31  Tiancheng Jiang  <tijiang@rim.com>
28074
28075         Change bubble message style to BB10 UX spec.
28076         https://bugs.webkit.org/show_bug.cgi?id=100862
28077
28078         Reviewed by Rob Buis.
28079
28080         RIM PR 198108
28081         Internal Reviewed by Otto Cheung.
28082         No new tests.
28083
28084         * css/themeBlackBerry.css:
28085         (::-webkit-validation-bubble-message): Added.
28086         (::-webkit-validation-bubble-arrow): Added.
28087         (::-webkit-validation-bubble-heading): Added.
28088
28089 2012-10-31  Mike West  <mkwst@chromium.org>
28090
28091         Prefer document->addConsoleMessage to document->domWindow->console->addMessage.
28092         https://bugs.webkit.org/show_bug.cgi?id=100850
28093
28094         Reviewed by Adam Barth.
28095
28096         For historical reasons, a few places in WebCore talk to Console directly
28097         via 'document()->domWindow()->console()->addMessage(...)'. This is more
28098         safely wrapped by calling 'addConsoleMessage' on the Document itself.
28099
28100         No visible functionality should change; we'll simply avoid potential
28101         null dereferences in the future.
28102
28103         * html/HTMLFormElement.cpp:
28104         (WebCore::HTMLFormElement::validateInteractively):
28105         * html/canvas/WebGLRenderingContext.cpp:
28106         (WebCore):
28107         (WebCore::WebGLRenderingContext::printWarningToConsole):
28108         * loader/FrameLoader.cpp:
28109         (WebCore::FrameLoader::reportLocalLoadFailed):
28110         * loader/MixedContentChecker.cpp:
28111         (WebCore::MixedContentChecker::logWarning):
28112         * loader/appcache/ApplicationCacheGroup.cpp:
28113         (WebCore::ApplicationCacheGroup::abort):
28114         (WebCore::ApplicationCacheGroup::didReceiveResponse):
28115         (WebCore::ApplicationCacheGroup::didFinishLoading):
28116         (WebCore::ApplicationCacheGroup::didFail):
28117         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
28118         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
28119         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
28120         * loader/cache/CachedResourceLoader.cpp:
28121         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
28122
28123 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28124
28125         Web Inspector: frame chooser does not work on subsequent inspector open.
28126         https://bugs.webkit.org/show_bug.cgi?id=100771
28127
28128         Reviewed by Yury Semikhatsky.
28129
28130         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28131         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28132         - Remove remains of the front-end reused signal from InspectorAgent
28133         - Send execution contexts post clear window object instead of post commit load.
28134
28135         * inspector/InspectorAgent.cpp:
28136         (WebCore::InspectorAgent::InspectorAgent):
28137         (WebCore::InspectorAgent::clearFrontend):
28138         (WebCore::InspectorAgent::didCommitLoad):
28139         * inspector/InspectorAgent.h:
28140         (InspectorAgent):
28141         * inspector/InspectorInstrumentation.cpp:
28142         (WebCore):
28143         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28144         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28145         * inspector/InspectorInstrumentation.h:
28146         (InspectorInstrumentation):
28147         * inspector/InspectorPageAgent.cpp:
28148         (WebCore::InspectorPageAgent::restore):
28149         * inspector/InspectorRuntimeAgent.cpp:
28150         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28151         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28152         (WebCore::InspectorRuntimeAgent::run):
28153         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28154         * inspector/InspectorRuntimeAgent.h:
28155         (InspectorRuntimeAgent):
28156         * inspector/InstrumentingAgents.h:
28157         (WebCore):
28158         (WebCore::InstrumentingAgents::InstrumentingAgents):
28159         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28160         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28161         (InstrumentingAgents):
28162         * inspector/PageRuntimeAgent.cpp:
28163         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28164         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28165         (WebCore::PageRuntimeAgent::setFrontend):
28166         (WebCore::PageRuntimeAgent::clearFrontend):
28167         (WebCore::PageRuntimeAgent::enable):
28168         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28169         * inspector/PageRuntimeAgent.h:
28170         (PageRuntimeAgent):
28171         * inspector/WorkerRuntimeAgent.cpp:
28172         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28173         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28174         (WebCore::WorkerRuntimeAgent::run):
28175         (WebCore):
28176         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28177         * inspector/WorkerRuntimeAgent.h:
28178         (WorkerRuntimeAgent):
28179
28180 2012-10-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>
28181
28182         [Qt][EFL][AC][WK2]TextureMapperLayer backing store contents are drawn upside down on screen.
28183         https://bugs.webkit.org/show_bug.cgi?id=100845.
28184
28185         Reviewed by Noam Rosenthal.
28186
28187         WebGL displays the Canvas with (0,0) being the bottom left corner.
28188         In GraphicsSurface::platformPaintToTextureMapper we don't set ShouldFlipTexture
28189         flag before painting to TextureMapper.
28190         It results in backing store contents being drawn upside down on screen.
28191         This patch enables ShouldFlipTexture flag when TextureMapperLayer renders 
28192         it's backing store contents into a TextureMapper.
28193
28194         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
28195         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
28196
28197 2012-10-31  Noam Rosenthal  <noam.rosenthal@nokia.com>
28198
28199         [Texmap] Enable filter animations in GraphicsLayerAnimation
28200         https://bugs.webkit.org/show_bug.cgi?id=100318
28201
28202         Reviewed by Kenneth Rohde Christiansen.
28203
28204         Use the same method of animating filters in WebCore to animate filters for TextureMapper.
28205         Added the appropriate methods to GraphicsLayerAnimation and TextureMapperLayer.
28206
28207         Tested by LayoutTests/css3/filters/filter-animation-hw.html and other tests.
28208
28209         * platform/graphics/GraphicsLayerAnimation.cpp:
28210         (WebCore):
28211         (WebCore::blendFunc):
28212         (WebCore::applyFilterAnimation):
28213         (WebCore::GraphicsLayerAnimation::applyInternal):
28214         * platform/graphics/GraphicsLayerAnimation.h:
28215         (Client):
28216         * platform/graphics/texmap/TextureMapperLayer.cpp:
28217         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
28218         (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
28219         (WebCore::TextureMapperLayer::paintRecursive):
28220         (WebCore::TextureMapperLayer::syncAnimations):
28221         * platform/graphics/texmap/TextureMapperLayer.h:
28222         (TextureMapperLayer):
28223         (WebCore::TextureMapperLayer::setFilters):
28224         (WebCore::TextureMapperLayer::setAnimatedFilters):
28225
28226 2012-10-31  Adam Barth  <abarth@webkit.org>
28227
28228         [V8] Garbage collection should use opaque roots rather than implicit references
28229         https://bugs.webkit.org/show_bug.cgi?id=100707
28230
28231         Reviewed by Kentaro Hara.
28232
28233         This patch replaces visitDOMWrapper with opaqueRootForGC. The
28234         former used to inform V8 of implicit relationships between wrapper
28235         objects on a per-wrapper basis. That meant that we needed to know which
28236         DOMDataStore a given wrapper was in during garbage collection.
28237
28238         After this patch, we now use object groups rather than implicit
28239         references to inform V8 of these relationships. That has two benefits:
28240
28241         1) We no longer need to know which DOMDataStore a wrapper belongs
28242            because we don't need to find the exact source wrapper for the
28243            implicit connection.
28244
28245         2) We can now handle more complicated implicit relationships, for
28246            example when some of the intervening objects haven't had their
28247            JavaScript wrappers created yet.
28248
28249         This patch also unlocks to paths of future development:
28250         A) Fixing the remaining failures in fast/dom/gc-9.html
28251         B) Enumerating DOM wrappers entirely from V8 rather than from the
28252            DOMWrapperMaps (so that we can move more object towards using
28253            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
28254
28255         * bindings/scripts/CodeGeneratorV8.pm:
28256         (NeedsCustomOpaqueRootForGC):
28257         (GenerateOpaqueRootForGC):
28258         (GenerateHeader):
28259         (GenerateImplementation):
28260         * bindings/v8/V8GCController.cpp:
28261         (ImplicitConnection):
28262         (WebCore::ImplicitConnection::ImplicitConnection):
28263         (WebCore::ImplicitConnection::root):
28264         (WebCore::ImplicitConnection::wrapper):
28265         (WebCore):
28266         (WebCore::operator<):
28267         (WrapperGrouper):
28268         (WebCore::WrapperGrouper::WrapperGrouper):
28269         (WebCore::WrapperGrouper::addToGroup):
28270         (WebCore::WrapperGrouper::keepAlive):
28271         (WebCore::WrapperGrouper::apply):
28272         (WebCore::ObjectVisitor::ObjectVisitor):
28273         (WebCore::ObjectVisitor::visitDOMWrapper):
28274         (ObjectVisitor):
28275         (WebCore::V8GCController::opaqueRootForGC):
28276         (WebCore::NodeVisitor::NodeVisitor):
28277         (WebCore::NodeVisitor::visitNodeWrapper):
28278         (NodeVisitor):
28279         (WebCore::V8GCController::majorGCPrologue):
28280         * bindings/v8/V8GCController.h:
28281         (WebCore):
28282         (V8GCController):
28283         * bindings/v8/WrapperTypeInfo.h:
28284         (WebCore):
28285         (WebCore::WrapperTypeInfo::opaqueRootForGC):
28286         (WrapperTypeInfo):
28287         * bindings/v8/custom/V8NodeListCustom.cpp:
28288         (WebCore::V8NodeList::opaqueRootForGC):
28289         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
28290         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
28291
28292 2012-10-31  Alexei Filippov  <alph@chromium.org>
28293
28294         Web Inspector: Add total node to native memory snapshot tree
28295         https://bugs.webkit.org/show_bug.cgi?id=100843
28296
28297         Reviewed by Yury Semikhatsky.
28298
28299         * inspector/front-end/NativeMemorySnapshotView.js:
28300         (WebInspector.NativeSnapshotDataGrid):
28301         (WebInspector.NativeSnapshotNode):
28302         (WebInspector.MemoryBlockViewProperties._initialize):
28303
28304 2012-10-31  Arpita Bahuguna  <arpitabahuguna@gmail.com>
28305
28306         Table with percentage column widths doesn't scale to fill the entire width of a table containing it
28307         https://bugs.webkit.org/show_bug.cgi?id=11645
28308
28309         Reviewed by Julien Chaffraix.
28310
28311         When the inner (or nested) table has auto width and column(s) with
28312         percent width, we should scale our column(s) to the width of the
28313         containing table (unless it has auto width).
28314
28315         Test: fast/table/scale-nested-percent-width-cols.html
28316
28317         * rendering/AutoTableLayout.cpp:
28318         (WebCore::shouldScaleColumns):
28319         If the containing table width was of percent type, we were disallowing
28320         our inner or nested table's column from scaling to the size of the parent
28321         table. We should prohibit the scaling of the nested table columns only
28322         if the parent table has auto width.
28323
28324 2012-10-31  Ian Vollick  <vollick@chromium.org>
28325
28326         Add support for text-based repaint testing
28327         https://bugs.webkit.org/show_bug.cgi?id=100584
28328
28329         Reviewed by Simon Fraser.
28330
28331         Allows tracked repaint rects to be dumped as text.
28332
28333         The following layout tests have been converted:
28334           fast/repaint/layer-full-repaint.html
28335           fast/repaint/overflow-flipped-writing-mode-table.html
28336
28337         * WebCore.exp.in:
28338           Exports for:
28339             FrameView::setTracksRepaints(bool)
28340             Frame::trackedRepaintRectsAsText() const
28341         * page/Frame.cpp:
28342         (WebCore::Frame::trackedRepaintRectsAsText):
28343           Returns a string containing information on all tracked repaint rects.
28344         * page/FrameView.cpp:
28345         (WebCore::FrameView::setTracksRepaints):
28346           Rather than calling m_trackedRepaintRects.clear() directly, I've
28347           called resetTrackedRepaints(). This will allow us to do more
28348           sophisticated resetting when we start tracking repaint rects for
28349           composited layers.
28350         (WebCore::FrameView::trackedRepaintRectsAsText):
28351           Provides the string returned by Frame::trackedRepaintRectsAsText.
28352         * testing/Internals.cpp:
28353         (WebCore::Internals::repaintRectsAsText):
28354           Returns Frame::trackedRepaintRectsAsText.
28355         (WebCore):
28356         (WebCore::Internals::startTrackingRepaints):
28357           Calls FrameView::setTracksRepaints(true)
28358         (WebCore::Internals::stopTrackingRepaints):
28359           Calls FrameView::setTracksRepaints(false)
28360         * testing/Internals.h:
28361         * testing/Internals.idl:
28362           Declarations for:
28363             repaintRectsAsText
28364             startTrackingRepaints
28365             stopTrackingRepaints
28366
28367 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28368
28369         Web Inspector: page crash when pausing in dedicated worker
28370         https://bugs.webkit.org/show_bug.cgi?id=100837
28371
28372         Reviewed by Pavel Feldman.
28373
28374         Pass debugger agent to InjectedScriptHost::init in case of workers.
28375
28376         Test: inspector-protocol/debugger-pause-dedicated-worker.html
28377
28378         * inspector/WorkerInspectorController.cpp:
28379         (WebCore::WorkerInspectorController::WorkerInspectorController):
28380
28381 2012-10-31  Zoltan Nyul  <zoltan.nyul@intel.com>
28382
28383         perspective-origin should ignore values with more then two lengths and use the default values
28384         https://bugs.webkit.org/show_bug.cgi?id=100835
28385
28386         Reviewed by Kenneth Rohde Christiansen.
28387
28388         Perspective-origin should ignore values with more then two lengths
28389         (http://www.w3.org/TR/css3-transforms/#perspective-origin) and use
28390         the default values instead of parsing it as an unlimited-length list,
28391         of which all but the first two values are ignored. This makes perspective-origin 
28392         behave similar to transform-origin which uses default value in this case,
28393         as well as firefox does the same.
28394
28395         Test: transforms/2d/computed-style-origin.html
28396
28397         * css/CSSParser.cpp:
28398         (WebCore::CSSParser::parsePerspectiveOrigin):
28399
28400 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28401
28402         Unreviewed, rolling out r133016.
28403         http://trac.webkit.org/changeset/133016
28404         https://bugs.webkit.org/show_bug.cgi?id=100856
28405
28406         broke compile-webkit on several bots (Requested by podivilov
28407         on #webkit).
28408
28409         * CMakeLists.txt:
28410         * GNUmakefile.list.am:
28411         * Target.pri:
28412         * WebCore.gypi:
28413         * WebCore.vcproj/WebCore.vcproj:
28414         * WebCore.xcodeproj/project.pbxproj:
28415         * dom/DeviceOrientationClient.h:
28416         (DeviceOrientationClient):
28417         * dom/DeviceOrientationController.cpp:
28418         (WebCore::DeviceOrientationController::DeviceOrientationController):
28419         (WebCore):
28420         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28421         (WebCore::DeviceOrientationController::timerFired):
28422         (WebCore::DeviceOrientationController::addListener):
28423         (WebCore::DeviceOrientationController::removeListener):
28424         (WebCore::DeviceOrientationController::removeAllListeners):
28425         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
28426         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
28427         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28428         (WebCore::DeviceOrientationController::supplementName):
28429         * dom/DeviceOrientationController.h:
28430         (WebCore):
28431         (DeviceOrientationController):
28432         (WebCore::DeviceOrientationController::isActive):
28433         (WebCore::DeviceOrientationController::client):
28434         (WebCore::DeviceOrientationController::from):
28435         * dom/Document.cpp:
28436         (WebCore::Document::suspendActiveDOMObjects):
28437         (WebCore::Document::resumeActiveDOMObjects):
28438         * loader/EmptyClients.h:
28439         (WebCore::EmptyDeviceOrientationClient::startUpdating):
28440         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
28441         * page/DOMWindow.cpp:
28442         (WebCore::DOMWindow::addEventListener):
28443         (WebCore::DOMWindow::removeEventListener):
28444         (WebCore::DOMWindow::removeAllEventListeners):
28445         * page/DeviceClient.h: Removed.
28446         * page/DeviceController.cpp: Removed.
28447         * page/DeviceController.h: Removed.
28448
28449 2012-10-31  Antti Koivisto  <antti@apple.com>
28450
28451         Remove stray calls to mutableAttributeData()
28452         https://bugs.webkit.org/show_bug.cgi?id=100849
28453
28454         Reviewed by Andreas Kling.
28455
28456         Changing the cached class attribute value does not require mutable attribute data.
28457
28458         * dom/Element.cpp:
28459         (WebCore::Element::classAttributeChanged):
28460         * dom/ElementAttributeData.h:
28461         (WebCore::ElementAttributeData::clearClass):
28462         
28463             Make const like setClass().
28464
28465 2012-10-31  Mike West  <mkwst@chromium.org>
28466
28467         X-Frame-Options console message should be associated with a request.
28468         https://bugs.webkit.org/show_bug.cgi?id=100735
28469
28470         Reviewed by Pavel Feldman.
28471
28472         In 99941, we added the possibility to tie console messages to requests,
28473         which enables automatic generation of stack traces, line numbers, etc.
28474         making the error simpler to diagnose for web developers. This patch
28475         uses the piping laid in that patch to improve the console message
28476         generated when a document is blocked by X-Frame-Options.
28477
28478         No new tests; the functionality is covered by changes to existing tests.
28479
28480         * dom/Document.cpp:
28481         (WebCore::Document::processHttpEquiv):
28482             Grab the request identifier from the currently active DocumentLoader
28483             and pass it into the console message.
28484         * loader/MainResourceLoader.cpp:
28485         (WebCore::MainResourceLoader::didReceiveResponse):
28486             Grab the request identifier from the MainResourceLoader, and pass it
28487             into the console message.
28488
28489 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28490
28491         Unreviewed, rolling out r133015.
28492         http://trac.webkit.org/changeset/133015
28493         https://bugs.webkit.org/show_bug.cgi?id=100847
28494
28495         broke Apple Win Debug compilation (Requested by podivilov on
28496         #webkit).
28497
28498         * inspector/InspectorAgent.cpp:
28499         (WebCore::InspectorAgent::InspectorAgent):
28500         (WebCore::InspectorAgent::clearFrontend):
28501         (WebCore::InspectorAgent::didCommitLoad):
28502         * inspector/InspectorAgent.h:
28503         (WebCore::InspectorAgent::didCommitLoadFired):
28504         (InspectorAgent):
28505         * inspector/InspectorInstrumentation.cpp:
28506         (WebCore):
28507         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28508         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28509         (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
28510         * inspector/InspectorInstrumentation.h:
28511         (InspectorInstrumentation):
28512         * inspector/InspectorPageAgent.cpp:
28513         (WebCore::InspectorPageAgent::restore):
28514         * inspector/InspectorRuntimeAgent.cpp:
28515         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28516         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28517         (WebCore::InspectorRuntimeAgent::run):
28518         (WebCore):
28519         (WebCore::InspectorRuntimeAgent::pauseWorkerContext):
28520         * inspector/InspectorRuntimeAgent.h:
28521         (InspectorRuntimeAgent):
28522         * inspector/InstrumentingAgents.h:
28523         (WebCore):
28524         (WebCore::InstrumentingAgents::InstrumentingAgents):
28525         (WebCore::InstrumentingAgents::inspectorRuntimeAgent):
28526         (WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
28527         (InstrumentingAgents):
28528         * inspector/PageRuntimeAgent.cpp:
28529         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28530         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28531         (WebCore::PageRuntimeAgent::setFrontend):
28532         (WebCore::PageRuntimeAgent::clearFrontend):
28533         (WebCore::PageRuntimeAgent::enable):
28534         (WebCore::PageRuntimeAgent::didClearWindowObject):
28535         * inspector/PageRuntimeAgent.h:
28536         (PageRuntimeAgent):
28537         * inspector/WorkerRuntimeAgent.cpp:
28538         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28539         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28540         * inspector/WorkerRuntimeAgent.h:
28541         (WorkerRuntimeAgent):
28542
28543 2012-10-31  Kihong Kwon  <kihong.kwon@samsung.com>
28544
28545         Add DeviceController base-class to remove duplication of DeviceXXXControler
28546         https://bugs.webkit.org/show_bug.cgi?id=96894
28547
28548         Reviewed by Hajime Morita.
28549
28550         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
28551         And soon-to-be-added DeviceMotionController and ProximityController.
28552
28553         Covered by existing tests.
28554
28555         * CMakeLists.txt:
28556         * GNUmakefile.list.am:
28557         * Target.pri:
28558         * WebCore.gypi:
28559         * WebCore.vcproj/WebCore.vcproj:
28560         * WebCore.xcodeproj/project.pbxproj:
28561         * dom/DeviceOrientationClient.h:
28562         * dom/DeviceOrientationController.cpp:
28563         Remove member functions to move to DeviceController.
28564         - addListener(), removeListener(), removeAllListeners(), isActive()
28565         (WebCore::DeviceOrientationController::DeviceOrientationController):
28566         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28567         (WebCore::DeviceOrientationController::client):
28568         (WebCore::DeviceOrientationController::hasLastData):
28569         (WebCore::DeviceOrientationController::getLastEvent):
28570         (WebCore::DeviceOrientationController::from):
28571         (WebCore):
28572         * dom/DeviceOrientationController.h:
28573         (WebCore):
28574         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28575         (DeviceOrientationController):
28576         * dom/Document.cpp:
28577         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
28578         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
28579         (WebCore::Document::suspendActiveDOMObjects):
28580         (WebCore::Document::resumeActiveDOMObjects):
28581         * loader/EmptyClients.h:
28582         (EmptyDeviceClient):
28583         (WebCore::EmptyDeviceClient::startUpdating):
28584         (WebCore::EmptyDeviceClient::stopUpdating):
28585         (WebCore):
28586         * page/DOMWindow.cpp:
28587         (WebCore::DOMWindow::addEventListener):
28588         (WebCore::DOMWindow::removeEventListener):
28589         (WebCore::DOMWindow::removeAllEventListeners):
28590         * page/DeviceClient.h: Added.
28591         (WebCore):
28592         (DeviceClient):
28593         (WebCore::DeviceClient::~DeviceClient):
28594         * page/DeviceController.cpp: Added.
28595         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
28596         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
28597         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
28598         (WebCore):
28599         (WebCore::DeviceController::DeviceController):
28600         (WebCore::DeviceController::addDeviceEventListener):
28601         (WebCore::DeviceController::removeDeviceEventListener):
28602         (WebCore::DeviceController::removeAllDeviceEventListeners):
28603         (WebCore::DeviceController::dispatchDeviceEvent):
28604         (WebCore::DeviceController::fireDeviceEvent):
28605         * page/DeviceController.h: Added.
28606         (WebCore):
28607         (DeviceController):
28608         (WebCore::DeviceController::~DeviceController):
28609         (WebCore::DeviceController::isActive):
28610         (WebCore::DeviceController::client):
28611         (WebCore::DeviceController::hasLastData):
28612         (WebCore::DeviceController::getLastEvent):
28613
28614 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28615
28616         Web Inspector: frame chooser does not work on subsequent inspector open.
28617         https://bugs.webkit.org/show_bug.cgi?id=100771
28618
28619         Reviewed by Yury Semikhatsky.
28620
28621         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28622         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28623         - Remove remains of the front-end reused signal from InspectorAgent
28624         - Send execution contexts post clear window object instead of post commit load.
28625
28626         * inspector/InspectorAgent.cpp:
28627         (WebCore::InspectorAgent::InspectorAgent):
28628         (WebCore::InspectorAgent::clearFrontend):
28629         (WebCore::InspectorAgent::didCommitLoad):
28630         * inspector/InspectorAgent.h:
28631         (InspectorAgent):
28632         * inspector/InspectorInstrumentation.cpp:
28633         (WebCore):
28634         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28635         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28636         * inspector/InspectorInstrumentation.h:
28637         (InspectorInstrumentation):
28638         * inspector/InspectorPageAgent.cpp:
28639         (WebCore::InspectorPageAgent::restore):
28640         * inspector/InspectorRuntimeAgent.cpp:
28641         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28642         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28643         (WebCore::InspectorRuntimeAgent::run):
28644         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28645         * inspector/InspectorRuntimeAgent.h:
28646         (InspectorRuntimeAgent):
28647         * inspector/InstrumentingAgents.h:
28648         (WebCore):
28649         (WebCore::InstrumentingAgents::InstrumentingAgents):
28650         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28651         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28652         (InstrumentingAgents):
28653         * inspector/PageRuntimeAgent.cpp:
28654         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28655         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28656         (WebCore::PageRuntimeAgent::setFrontend):
28657         (WebCore::PageRuntimeAgent::clearFrontend):
28658         (WebCore::PageRuntimeAgent::enable):
28659         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28660         * inspector/PageRuntimeAgent.h:
28661         (PageRuntimeAgent):
28662         * inspector/WorkerRuntimeAgent.cpp:
28663         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28664         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28665         (WebCore::WorkerRuntimeAgent::run):
28666         (WebCore):
28667         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28668         * inspector/WorkerRuntimeAgent.h:
28669         (WorkerRuntimeAgent):
28670
28671 2012-10-31  Keishi Hattori  <keishi@webkit.org>
28672
28673         Calendar picker can flicker when opened from the suggestion picker
28674         https://bugs.webkit.org/show_bug.cgi?id=100816
28675
28676         Reviewed by Kent Tamura.
28677
28678         Calendar picker was opening before the hiding completed.
28679
28680         No new tests. Added test to date-suggestion-picker-key-operations.html.
28681
28682         * Resources/pagepopups/pickerCommon.js: Added didHide event.
28683         * Resources/pagepopups/suggestionPicker.js:
28684         (SuggestionPicker.prototype.selectEntry): Use didHide event so we don't open the calendar picker prematurely.
28685         (SuggestionPicker._handleWindowDidHide): When the window finished hiding, open the calendar picker.
28686
28687 2012-10-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28688
28689         Reset binding test result after r132973
28690         https://bugs.webkit.org/show_bug.cgi?id=99178
28691
28692         Unreviewed gardening.
28693
28694         * bindings/scripts/test/JS/JSFloat64Array.cpp:
28695         (WebCore::getJSFloat64ArrayConstructorTable):
28696         (WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
28697         (WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):
28698
28699 2012-10-31  Mike West  <mkwst@chromium.org>
28700
28701         Script run from an isolated world should bypass a page's CSP.
28702         https://bugs.webkit.org/show_bug.cgi?id=97398
28703
28704         Reviewed by Adam Barth.
28705
28706         A page's Content Security Policy currently applies to all resources
28707         loaded, regardless of their source. That generally makes sense, but
28708         proves problematic when considering script run from an isolated
28709         world (Chrome extensions, for instance). These scripts should be allowed
28710         to inject resources into a page's DOM without eiher being restricted by
28711         the page's active CSP, or generating violation reports that spam the
28712         page owner.
28713
28714         Ideally, the isolated world could define its own Content Security Policy
28715         which should be applied to resources it loads. For the moment, this
28716         patch accepts a String that we can parse later on, but only uses it in
28717         a binary way. If a non-empty policy String is provided, we bypass the
28718         main world's CSP checks. If an empty String is provided, the main
28719         world's CSP checks remain active.
28720
28721         Test: http/tests/security/isolatedWorld/bypass-main-world-csp.html
28722
28723         (WebCore::isolatedWorldContentSecurityPolicies):
28724         (WebCore::DOMWrapperWorld::isolatedWorldHasContentSecurityPolicy):
28725         (WebCore::DOMWrapperWorld::setIsolatedWorldContentSecurityPolicy):
28726         (WebCore::DOMWrapperWorld::clearIsolatedWorldContentSecurityPolicy):
28727         * bindings/v8/DOMWrapperWorld.h:
28728         (DOMWrapperWorld):
28729             Mechanisms for setting and clearing Content Security Policies from
28730             isolated worlds; implemented in the same HashMappy way as
28731             SecurityOrigin.
28732         * bindings/v8/ScriptController.cpp:
28733         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
28734         (WebCore):
28735         * bindings/v8/ScriptController.h:
28736         (ScriptController):
28737             Adding a method to ScriptController to query the state of the
28738             current world's Content Security Policy. We'll drop this once we can
28739             apply a policy more directly, but for the moment it's necessary for
28740             the next bit.
28741         * loader/cache/CachedResourceLoader.cpp:
28742         (WebCore::CachedResourceLoader::canRequest):
28743             Check the new ScriptController method, and only perform CSP checks
28744             when loading resources if we're executing code from the main world,
28745             or an isolated world with no Content Security Policy set.
28746
28747 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28748
28749         Unreviewed, attempt to fix the release build by not exporting symbols that aren't defined there.
28750
28751         * WebCore.exp.in:
28752
28753 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28754
28755         Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
28756         https://bugs.webkit.org/show_bug.cgi?id=100824
28757
28758         Reviewed by Alexander Pavlov.
28759
28760         In many classes we have pointer to a client object. These references should be
28761         reported as weak pointers and the client's memory usage should be reported when
28762         the client is reached from its instrumented owner where we know exact type of
28763         the client. Otherwise we would need to add reportMemoryUsage to all client
28764         interfaces which places additional burden on the client implementers and blurs
28765         the instrumentation boundaries.
28766
28767         * inspector/InspectorController.cpp:
28768         (WebCore::InspectorController::reportMemoryUsage):
28769         * inspector/InspectorDebuggerAgent.cpp:
28770         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
28771         * inspector/InspectorMemoryAgent.cpp:
28772         (WebCore::InspectorMemoryAgent::reportMemoryUsage):
28773         * inspector/InspectorOverlay.cpp:
28774         (WebCore::InspectorOverlay::reportMemoryUsage):
28775         * inspector/InspectorResourceAgent.cpp:
28776         (WebCore::InspectorResourceAgent::reportMemoryUsage):
28777         * page/Page.cpp:
28778         (WebCore::Page::reportMemoryUsage):
28779
28780 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28781
28782         Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.
28783
28784         * WebCore.exp.in:
28785
28786 2012-10-31  Eric Seidel  <eric@webkit.org>
28787
28788         Add non-virtual firstChild/lastChild overrides to RenderBlock and RenderTableCol for a > 30% speedup on table from bug 100304
28789         https://bugs.webkit.org/show_bug.cgi?id=100306
28790
28791         Reviewed by Abhishek Arya.
28792
28793         Presumably this is a speedup for other rendering tests as well.  We use firstChild() all over
28794         the rendering code w/o considering that it makes a virtual function call.
28795         Originally I just fixed the one callsite which was showing up on the sample to
28796         use children()->firstChild() directly.  However after further thought, this
28797         broader solution seemed the better way to go.  The first patch was a 15% win for
28798         this large table, this broader solution was a 30%!? win.
28799
28800         The elephant in the room for this table is that we're walking the whole table
28801         for many nextColumn calls.  But that I will solve in a later bug.
28802
28803         * rendering/RenderBlock.h:
28804         (WebCore::RenderBlock::firstChild):
28805         (WebCore::RenderBlock::lastChild):
28806         (RenderBlock):
28807         * rendering/RenderObject.h:
28808         (RenderObject):
28809         * rendering/RenderTableCol.h:
28810         (WebCore::RenderTableCol::firstChild):
28811         (WebCore::RenderTableCol::lastChild):
28812         (RenderTableCol):
28813
28814 2012-10-31  Philippe Normand  <pnormand@igalia.com>
28815
28816         Spatialized panning renders incorrectly with USE_CONCATENATED_IMPULSE_RESPONSES
28817         https://bugs.webkit.org/show_bug.cgi?id=98294
28818
28819         Reviewed by Chris Rogers.
28820
28821         Regenerated the concatenated impulse responses file with
28822         elevations in increasing order per azimuth. In the previous
28823         version of this file the elevations for 315, 330 and 345 were
28824         concatenated at the wrong indexes.
28825
28826         * platform/audio/resources/Composite.wav:
28827
28828 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28829
28830         Full-page PDFPlugin should support inline form editing
28831         https://bugs.webkit.org/show_bug.cgi?id=100155
28832
28833         Reviewed by Dan Bernstein.
28834
28835         Add form controls corresponding to Text and Choice PDF annotations,
28836         allowing for single- and multi-line text input, and <option>-like input.
28837
28838         Currently, forms are only implemented for full-page PDF documents.
28839
28840         * WebCore.exp.in: Expose a variety of additional WebCore functionality to WebKit2.
28841         * WebCore.xcodeproj/project.pbxproj: Expose some more WebCore headers as private headers for use in WebKit2.
28842
28843 2012-10-30  Eric Seidel  <eric@webkit.org>
28844
28845         RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods
28846         https://bugs.webkit.org/show_bug.cgi?id=98800
28847
28848         Reviewed by Sam Weinig.
28849
28850         This patch brings our total RoboHornetPro time from 8.2 seconds to 5.3 seconds!
28851
28852         OverlapMap previously used Regions to track Layer bounds rects. 
28853         Unfortunately unioning a list of Regions is O(N^2)
28854         where N is the number of Shapes (in this case rects).
28855         This is because Shapes are immutable, so to union two shapes, we copy
28856         both Shapes' segment/span vectors into a single new Shape.
28857         Thus if we union a set of M Regions, each with 1 Shape, we'll end up copying
28858         the segments of the first Shape N times before we have the final Region/Shape
28859         and the second shape N-1 times. The sum of 1 to N is (N*(N-1))/2 aka order N^2.
28860         Fixing the N^2 algorithm covered by https://bugs.webkit.org/show_bug.cgi?id=100814.
28861
28862         For now we just avoid this O(N^2) by moving away from Region, since OverlapMap
28863         doesn't need it. We just collect a vector of the layer rects and hit-test that directly.
28864         Hit-testing the rect list is O(N), just like hit-testing the same information in a Region would be.
28865
28866         Even better for us is that the OverlapMap is never even used in RoboHornetPro.
28867         We just collect these rects to end up doing nothing with them. :)
28868
28869         * rendering/RenderLayerCompositor.cpp:
28870         (WebCore::RenderLayerCompositor::OverlapMap::add):
28871         (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
28872         (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
28873         (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
28874         (RenderLayerCompositor::OverlapMap):
28875
28876 2012-10-30  Beth Dakin  <bdakin@apple.com>
28877
28878         https://bugs.webkit.org/show_bug.cgi?id=100813
28879         ScrollingCoordinatorMac::stateNodeForID() should return a 
28880         ScrollingStateNode* instead of a ScrollingStateScrollingNode*
28881
28882         Reviewed by Sam Weinig.
28883
28884         ScrollingCoordinatorMac::stateNodeForID() should return a 
28885         ScrollingStateNode* instead of a ScrollingStateScrollingNode* so that 
28886         it can be used for other types of nodes once we add them.
28887         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28888         (ScrollingCoordinatorMac):
28889         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28890         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
28891         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
28892         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
28893         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
28894
28895 2012-10-30  Keishi Hattori  <keishi@webkit.org>
28896
28897         F4 inside <input type=time> should not open calendar picker
28898         https://bugs.webkit.org/show_bug.cgi?id=100730
28899
28900         Reviewed by Kent Tamura.
28901
28902         We lacked the check to see if the picker indicator is visible.
28903
28904         Test: fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html
28905
28906         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
28907         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Check if picker indicator is visible.
28908
28909 2012-10-30  Kent Tamura  <tkent@chromium.org>
28910
28911         Delaying 'change' and 'input' event dispatching during HTMLInputElement::setValue
28912         https://bugs.webkit.org/show_bug.cgi?id=100772
28913
28914         Reviewed by Abhishek Arya.
28915
28916         'change' and 'input' events are asynchronous and not
28917         cancelable. We can use ScopedEvent.
28918
28919         Test: fast/forms/range/range-type-change-onchange.html
28920
28921         * dom/Node.cpp:
28922         (WebCore::Node::dispatchChangeEvent): Use dispatchScopedEvent.
28923         (WebCore::Node::dispatchInputEvent): Ditto.
28924         * html/HTMLInputElement.cpp:
28925         (WebCore::HTMLInputElement::setValue):
28926         Make a scope to delay event dispatching.
28927         * html/RangeInputType.cpp:
28928         (WebCore::RangeInputType::handleKeydownEvent): Ditto.
28929
28930 2012-10-30  Simon Fraser  <simon.fraser@apple.com>
28931
28932         Fix issues with filters and reflections
28933         https://bugs.webkit.org/show_bug.cgi?id=100308
28934
28935         Reviewed by Dirk Schulze.
28936
28937         Composited filters were being applied to the wrong CALayer. The code used
28938         primaryLayer(), which may be a CATransformLayer (which filters cannot apply
28939         to; doing so causes console spew), or a CALayer that is used for reflection
28940         flattening, which again is the wrong layer.
28941
28942         Test: css3/filters/composited-reflected.html
28943
28944         * platform/graphics/ca/GraphicsLayerCA.cpp:
28945         (WebCore::GraphicsLayerCA::updateContentsVisibility): Replace .get()-> with ->
28946         (WebCore::GraphicsLayerCA::updateContentsOpaque): Ditto.
28947         (WebCore::GraphicsLayerCA::updateFilters): Apply filters to m_layer, not primaryLayer(),
28948         and use m_layerClones, not primaryLayerClones().
28949         (WebCore::GraphicsLayerCA::cloneLayer): When cloning a layer for reflections, copy filters
28950         from the source layer.
28951         * platform/graphics/ca/PlatformCALayer.h:
28952         (PlatformCALayer): Add a member function to copy filters from a supplied layer.
28953         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
28954         (PlatformCALayer::setFilters): Remove blank line.
28955         (PlatformCALayer::copyFiltersFrom): Copy CAFIlters from the given layer.
28956         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
28957         (PlatformCALayer::copyFiltersFrom): Stub; no filters on Windows.
28958
28959 2012-10-30  Beth Dakin  <bdakin@apple.com>
28960
28961         https://bugs.webkit.org/show_bug.cgi?id=100809
28962         ScrollingCoordinator::attachToStateTree() should take an enum 
28963         indicating what type of node to create
28964
28965         Reviewed by Simon Fraser.
28966
28967         New enum ScrollingNodeType will soon have other values, such as 
28968         FixedNode.
28969         * page/scrolling/ScrollingCoordinator.h:
28970         (WebCore::ScrollingCoordinator::attachToStateTree):
28971         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28972         (ScrollingCoordinatorMac):
28973
28974         This patch generalizes this function so that it can be used to create 
28975         different types of nodes and so that it is actually ready to create 
28976         child nodes. 
28977         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28978         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
28979
28980         The rootStateNode is always a ScrollingNode.
28981         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
28982
28983         For the time being, always create a ScrollingNode.
28984         * rendering/RenderLayerBacking.cpp:
28985         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
28986
28987 2012-10-30  Gregg Tavares  <gman@google.com>
28988
28989         Set the initial scissor box for WebGL
28990         https://bugs.webkit.org/show_bug.cgi?id=100804
28991
28992         Reviewed by Kenneth Russell.
28993
28994         The initial scissor box needs to be set for WebGL
28995
28996         No new tests as no new functionality.
28997
28998         * html/canvas/WebGLRenderingContext.cpp:
28999         (WebCore):
29000         (WebCore::WebGLRenderingContext::initializeNewContext):
29001
29002 2012-10-30  Charles Wei  <charles.wei@torchmobile.com.cn>
29003
29004         [BlackBerry] PurgeCredential should also purge the persisted credential store
29005         https://bugs.webkit.org/show_bug.cgi?id=100744
29006
29007         Reviewed by George Staikos.
29008
29009         When challenged by the server, we will check the credential in-memory and from the persistent storage.
29010         So the invalid credentials should also be purged from the persistent credential storage; Otherwise,
29011         it will be sent to the server next time been challenged, instead of prompting the user.
29012
29013         * platform/network/blackberry/NetworkJob.cpp:
29014         (WebCore::NetworkJob::purgeCredentials):
29015
29016 2012-10-30  Allan Sandfeld Jensen  <allan.jensen@digia.com>
29017
29018         DOM URL is flaky when workers are used
29019         https://bugs.webkit.org/show_bug.cgi?id=99178
29020
29021         Reviewed by Geoffrey Garen.
29022
29023         Extend JSNoStaticTables to also avoid direct access of static tables in constructor objects.
29024
29025         Test: fast/workers/worker-domurl.html
29026
29027         * bindings/scripts/CodeGeneratorJS.pm:
29028         (constructorHashTableAccessor):
29029         (GenerateConstructorDefinition):
29030
29031 2012-10-30  Jae Hyun Park  <jae.park@company100.net>
29032
29033         Coordinated Graphics: Remove unused methods
29034         https://bugs.webkit.org/show_bug.cgi?id=100799
29035
29036         Reviewed by Noam Rosenthal.
29037
29038         Currently, there are several unused methods regarding Coordinated
29039         Graphics. This patch removes those unused methods.
29040
29041         No new tests (No change in behavior).
29042
29043         * platform/graphics/texmap/TextureMapperGL.cpp:
29044
29045 2012-10-30  Hans Muller  <hmuller@adobe.com>
29046
29047         [CSS Exclusions] Multiple segment polygon layout does not get all segments
29048         https://bugs.webkit.org/show_bug.cgi?id=100039
29049
29050         Reviewed by Dirk Schulze.
29051
29052         Corrected the algorithm for computing included polygon intervals for rectilinear polygons,
29053         and polygons with horizontal edges in general.
29054
29055         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html
29056                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html
29057
29058         * rendering/ExclusionPolygon.cpp: Removed some internal dead code related to the no-longer-used sortedEdgesMinY Vector.
29059         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize new ExclusionPolygonEdge edgeIndex field.
29060         (WebCore::getVertexIntersectionVertices): Return the previous, next, and target vertex indices for a vertex intersection.
29061         (WebCore::ExclusionPolygon::computeXIntersections): Refactored the core of this method to improve handling of horizontal edges.
29062         (WebCore::ExclusionPolygon::computeEdgeIntersections): Ignore zero-width edges.
29063         * rendering/ExclusionPolygon.h: Removed the rightVertexY() method, since it's no longer used.
29064         (WebCore::ExclusionPolygon::edgeAt): New method.
29065         (WebCore::ExclusionPolygon::numberOfEdges): New method.
29066         (ExclusionPolygon): Added support for retrieving edges.
29067         (WebCore::ExclusionPolygonEdge::vertex1): Use vertex1Index.
29068         (WebCore::ExclusionPolygonEdge::vertex2): Use vertex2Index.
29069         (ExclusionPolygonEdge): Renamed index1, index2 fields to vertex1Index, vertex2Index.
29070         (WebCore::ExclusionPolygonEdge::previousEdge): New method.
29071         (WebCore::ExclusionPolygonEdge::nextEdge): New method.
29072
29073 2012-10-30  Chris Evans  <cevans@google.com>
29074
29075         Improve performance of MaskPtr.
29076         https://bugs.webkit.org/show_bug.cgi?id=100790
29077
29078         Reviewed by Eric Seidel.
29079
29080         Calculate the mask once, and store it as a fast-access member variable.
29081         Also avoid unneccessary integer width expansion in index calculation.
29082         Parser/tiny-innerHTML.html has a high stddev.
29083         Best result I've seen pre-patch is 5.70 runs/s.
29084         Best result I've seen post-patch is 5.72 runs/s, but this is not statistically significant.
29085         MaskPtr is still showing as ~2% in the profile, so we're not sure we trust the profile symbolization at this time.
29086         MaskPtr is now reduced to a single inline instruction (was: 4) so this seems like a strict improvement worth landing.
29087
29088         * rendering/RenderArena.cpp:
29089         (MaskPtr): Use a passed-in mask for the mask operation.
29090         (WebCore::RenderArena::RenderArena): Calculate the mask and store it.
29091         (WebCore::RenderArena::allocate):
29092         (WebCore::RenderArena::free): Use stored mask and avoid unneccessary casts.
29093         * rendering/RenderArena.h:
29094         (RenderArena): Store the freelist mask as a member variable.
29095
29096 2012-10-30  Kenichi Ishibashi  <bashi@chromium.org>
29097
29098         local(Helvetica) in src descriptor prevent fallback
29099         https://bugs.webkit.org/show_bug.cgi?id=100446
29100
29101         Reviewed by Dan Bernstein.
29102
29103         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
29104         of font family names, so that if the family name specified in the font-family
29105         property is not available on the system, but the its alias is available,
29106         it will be used instead. This is appropriate for the font-family property,
29107         but not for font family names specified in the local() function of the src
29108         descriptor in a @font-face rule.
29109
29110         This patch disables the mechanism while checking src descriptor of @font-face.
29111
29112         No new tests. It's difficult to test the change because 'Helvetica' can
29113         be mapped any other font. For example, chromium DRT uses FontConfig to
29114         map Helvetica to Times New Roman. Other ports may map Helvetica to other
29115         fonts. We can't define the expected result.
29116
29117         * css/CSSFontFaceSource.cpp:
29118         (WebCore::CSSFontFaceSource::getFontData):
29119         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
29120         This disables aliasing font family names in FontCache.
29121
29122 2012-10-30  Beth Dakin  <bdakin@apple.com>
29123
29124         https://bugs.webkit.org/show_bug.cgi?id=100796
29125         Should add FixedPositionViewportConstraints to ScrollingConstraints.h
29126
29127         Reviewed by Simon Fraser.
29128
29129         ScrollingConstraints.h currently contains an abstract class called 
29130         ViewportConstraints that is intended to encapsulate data and logic 
29131         required to reposition elements whose layout depends on the viewport 
29132         rect (positions fixed and sticky), when scrolling and zooming. 
29133         However, at this time there is only a subclass for sticky. We should 
29134         add a sub-class for fixed. This is required to get pages with fixed 
29135         position elements scrolling on the scrolling thread.
29136
29137         * page/scrolling/ScrollingConstraints.cpp:
29138         (WebCore::FixedPositionViewportConstraints::layerPositionForViewportRect):
29139         (WebCore):
29140         * page/scrolling/ScrollingConstraints.h:
29141         (WebCore::ViewportConstraints::ViewportConstraints):
29142         (ViewportConstraints):
29143         (WebCore::ViewportConstraints::setAnchorEdges):
29144         (FixedPositionViewportConstraints):
29145         (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
29146         (WebCore::FixedPositionViewportConstraints::viewportRectAtLastLayout):
29147         (WebCore::FixedPositionViewportConstraints::setViewportRectAtLastLayout):
29148         (WebCore::FixedPositionViewportConstraints::layerPositionAtLastLayout):
29149         (WebCore::FixedPositionViewportConstraints::setLayerPositionAtLastLayout):
29150         (WebCore):
29151
29152 2012-10-30  Tiancheng Jiang  <tijiang@rim.com>
29153
29154         [BlackBerry] update form theme for BB10.
29155         https://bugs.webkit.org/show_bug.cgi?id=100760
29156
29157         Reviewed by Rob Buis.
29158
29159         RIM PR:222126
29160         Introduce slide function to paint new theme for the form controls.
29161
29162         No new tests.
29163
29164         * css/themeBlackBerry.css:
29165         (select):
29166         * platform/blackberry/RenderThemeBlackBerry.cpp:
29167         (WebCore):
29168         (WebCore::drawControl): Added.
29169         (WebCore::drawThreeSlice): Added.
29170         (WebCore::drawNineSlice): Added.
29171         (WebCore::loadImage): Added.
29172         (WebCore::RenderThemeBlackBerry::systemFont): Modified.
29173         (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField): Modified.
29174         (WebCore::RenderThemeBlackBerry::paintCheckbox): Modified.
29175         (WebCore::RenderThemeBlackBerry::paintRadio): Modified.
29176         (WebCore::RenderThemeBlackBerry::paintButton): Modified.
29177         (WebCore::RenderThemeBlackBerry::paintMenuList): Modified.
29178         (WebCore::RenderThemeBlackBerry::paintMenuListButton): Modified.
29179         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect): Modified.
29180         (WebCore::RenderThemeBlackBerry::paintSliderThumb): Modified.
29181         * platform/blackberry/RenderThemeBlackBerry.h:
29182         (RenderThemeBlackBerry):
29183
29184 2012-10-30  Rick Byers  <rbyers@chromium.org>
29185
29186         cssText for cursor property doesn't include hotspot
29187         https://bugs.webkit.org/show_bug.cgi?id=99530
29188
29189         Reviewed by Darin Adler.
29190
29191         Implement customCssText in CSSCursorImageValue to include the hotspot when present.
29192         Also explicitly track whether or not a hotspot was supplied in the parser,
29193         while still using the existing convention of (-1,-1) to denote no hotspot
29194         in the rest of the system.
29195
29196         Test: fast/css/cursor-parsing.html
29197
29198         * css/CSSCursorImageValue.cpp:
29199         (WebCore::CSSCursorImageValue::customCssText):
29200         * css/CSSCursorImageValue.h:
29201         (CSSCursorImageValue):
29202
29203 2012-10-30  Kenneth Russell  <kbr@google.com>
29204
29205         Temporarily restrict use of ImageBufferSkia::copyToPlatformTexture until bugs resolved
29206         https://bugs.webkit.org/show_bug.cgi?id=100714
29207
29208         Reviewed by Stephen White.
29209
29210         For the moment, only use ImageBuffer::copyToPlatformTexture when
29211         copying to RGBA/UNSIGNED_BYTE textures, and document restriction
29212         in header. Restriction will be lifted once the implementations
29213         (currently only Chromium has one) have been fixed; see bug 100715.
29214
29215         No new tests; manually ran WebGL conformance test
29216         tex-image-and-sub-image-2d-with-canvas-rgba5551.html on NVIDIA
29217         hardware on Mac OS.
29218
29219         * html/canvas/WebGLRenderingContext.cpp:
29220         (WebCore):
29221         (WebCore::WebGLRenderingContext::texImage2D):
29222         * platform/graphics/ImageBuffer.h:
29223         (ImageBuffer):
29224
29225 2012-10-30  Nico Weber  <thakis@chromium.org>
29226
29227         Fix potential overflow in jpeg exif reader. Found by aedla@google.com.
29228         https://bugs.webkit.org/show_bug.cgi?id=100320
29229
29230         Reviewed by Eric Seidel.
29231
29232         Adding more than 1 element past an array is undefined, so don't do it.
29233
29234         No test, since in practice ifd will just overflow and `end - ifd` will
29235         become much larget than 2 and the `if (end - ifd < 2)` a few lines
29236         down will catch that case.
29237
29238         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
29239         (WebCore::readImageOrientation):
29240
29241 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29242
29243         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29244         https://bugs.webkit.org/show_bug.cgi?id=100558
29245
29246         Reviewed by Dean Jackson.
29247
29248         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29249         but more is going to come in the following patches.
29250
29251         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29252         such operations for now.
29253         
29254         No new tests, there is no new functionality yet.
29255
29256         * CMakeLists.txt:
29257         * GNUmakefile.list.am:
29258         * Target.pri:
29259         * WebCore.gypi:
29260         * WebCore.vcproj/WebCore.vcproj:
29261         * WebCore.xcodeproj/project.pbxproj:
29262         * css/CSSComputedStyleDeclaration.cpp:
29263         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29264         * css/StyleResolver.cpp:
29265         (WebCore::StyleResolver::createFilterOperations):
29266         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29267         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29268         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29269         (PlatformCALayer::filtersCanBeComposited):
29270         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29271         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29272         * platform/graphics/filters/FilterOperation.h:
29273         * platform/graphics/filters/FilterOperations.cpp:
29274         (WebCore::FilterOperations::hasCustomFilter):
29275         (WebCore::FilterOperations::getOutsets):
29276         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29277         (WebCore):
29278         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29279         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29280         (WebCore::ValidatedCustomFilterOperation::blend):
29281         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29282         (WebCore):
29283         (ValidatedCustomFilterOperation):
29284         (WebCore::ValidatedCustomFilterOperation::create):
29285         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29286         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29287         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29288         (WebCore::ValidatedCustomFilterOperation::operator==):
29289
29290 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29291
29292         [Mac] Sync up FeatureDefine Configuration Files
29293         https://bugs.webkit.org/show_bug.cgi?id=100171
29294
29295         Reviewed by David Kilzer.
29296
29297         Follow up to better coordinate with iOS feature defines. Make:
29298
29299           - ENABLE_FILTERS always on
29300           - ENABLE_INPUT_* iphonesimulator values point to the iphoneos values
29301
29302         * Configurations/FeatureDefines.xcconfig:
29303
29304 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29305
29306         [Mac] Sync up FeatureDefine Configuration Files
29307         https://bugs.webkit.org/show_bug.cgi?id=100171
29308
29309         Reviewed by David Kilzer.
29310
29311         Ensure an identical FeatureDefine files across all projects. Changes:
29312
29313           - ENABLE_CSS_BOX_DECORATION_BREAK should be in all
29314           - ENABLE_PDFKIT_PLUGIN should be in all
29315           - ENABLE_RESOLUTION_MEDIA_QUERY should be in all
29316           - ENABLE_ENCRYPTED_MEDIA should be in all
29317           - ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING with corrected value
29318           - Some alphabetical ordering cleanup
29319
29320         * Configurations/FeatureDefines.xcconfig:
29321
29322 2012-10-30  Andreas Kling  <kling@webkit.org>
29323
29324         StylePropertySet: Convert more logic to use PropertyReference.
29325         <http://webkit.org/b/100779>
29326
29327         Reviewed by Antti Koivisto.
29328
29329         Rewrite more of the StylePropertySet logic to use PropertyReference instead of CSSProperty.
29330         This is cleanup before changing the internal storage layout of immutable StylePropertySet.
29331
29332         * css/CSSComputedStyleDeclaration.cpp:
29333         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
29334         * css/CSSComputedStyleDeclaration.h:
29335         * css/CSSStyleDeclaration.h:
29336         * css/PropertySetCSSStyleDeclaration.cpp:
29337         (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
29338         * css/PropertySetCSSStyleDeclaration.h:
29339         * css/StylePropertySet.cpp:
29340         (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
29341         (WebCore::StylePropertySet::fontValue):
29342         (WebCore::StylePropertySet::get4Values):
29343         (WebCore::StylePropertySet::getPropertyCSSValue):
29344         (WebCore::StylePropertySet::removeProperty):
29345         (WebCore::StylePropertySet::propertyIsImportant):
29346         (WebCore::StylePropertySet::getPropertyShorthand):
29347         (WebCore::StylePropertySet::isPropertyImplicit):
29348         (WebCore::StylePropertySet::setProperty):
29349         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
29350         (WebCore::StylePropertySet::findPropertyIndex):
29351         (WebCore::StylePropertySet::findMutableCSSPropertyWithID):
29352         (WebCore::StylePropertySet::propertyMatches):
29353         (WebCore::StylePropertySet::removeEquivalentProperties):
29354         * css/StylePropertySet.h:
29355         (WebCore::StylePropertySet::PropertyReference::shorthandID):
29356         (WebCore::StylePropertySet::PropertyReference::isImplicit):
29357
29358 2012-10-30  Eric Seidel  <eric@webkit.org>
29359
29360         Teach RenderTable how to use Vector::insert and Vector::append instead of its own custom memmove code
29361         https://bugs.webkit.org/show_bug.cgi?id=100428
29362
29363         Reviewed by Julien Chaffraix.
29364
29365         RenderTable is now like all other clients of Vector instead of being
29366         needlessly different. :)
29367
29368         insert, append and grow all use the same expandCapacity logic under the covers
29369         and Vector::insert uses TypeOperations::moveOverlapping which should use memmove
29370         by default for unknown types.
29371
29372         * rendering/RenderTable.cpp:
29373         (WebCore::RenderTable::splitColumn):
29374         (WebCore::RenderTable::appendColumn):
29375         * rendering/RenderTable.h:
29376         (WebCore::RenderTable::ColumnStruct::ColumnStruct):
29377
29378 2012-10-30  Vincent Scheib  <scheib@chromium.org>
29379
29380         Unreviewed, rolling out r132927.
29381         http://trac.webkit.org/changeset/132927
29382         https://bugs.webkit.org/show_bug.cgi?id=100558
29383
29384         Compile error on Chromium builders
29385
29386         * CMakeLists.txt:
29387         * GNUmakefile.list.am:
29388         * Target.pri:
29389         * WebCore.gypi:
29390         * WebCore.vcproj/WebCore.vcproj:
29391         * WebCore.xcodeproj/project.pbxproj:
29392         * css/CSSComputedStyleDeclaration.cpp:
29393         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29394         * css/StyleResolver.cpp:
29395         (WebCore::StyleResolver::createFilterOperations):
29396         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29397         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29398         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29399         (PlatformCALayer::filtersCanBeComposited):
29400         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29401         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29402         * platform/graphics/filters/FilterOperation.h:
29403         * platform/graphics/filters/FilterOperations.cpp:
29404         (WebCore::FilterOperations::hasCustomFilter):
29405         (WebCore::FilterOperations::getOutsets):
29406         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
29407         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
29408
29409 2012-10-30  W. James MacLean  <wjmaclean@chromium.org>
29410
29411         [chromium] Restrict link highlights to targets that display a hand-cursor
29412         https://bugs.webkit.org/show_bug.cgi?id=99862
29413
29414         Reviewed by James Robinson.
29415
29416         To avoid applying highlights to inappropriate targets, such as large divs with
29417         click handlers installed, test candidate targets and only highlight them if they
29418         would normally display a hand cursor on mouse over. This is a heuristic, but has
29419         been tested and found effective in practice.
29420
29421         This CL refactors EventHandler::selectCursor() to make the logic for determining
29422         if CURSOR_AUTO should resolve to CURSOR_POINTER available outside EventHandler.
29423
29424         Relies on existing cursor tests.
29425
29426         * page/EventHandler.cpp:
29427         (WebCore::EventHandler::useHandCursor):
29428         (WebCore):
29429         (WebCore::EventHandler::selectCursor):
29430         * page/EventHandler.h:
29431         (EventHandler):
29432
29433 2012-10-30  Rob Buis  <rbuis@rim.com>
29434
29435         [BlackBerry] Remove CookieDatabaseBackingStore::upgradeTableIfNeeded
29436         https://bugs.webkit.org/show_bug.cgi?id=100783
29437
29438         Reviewed by Yong Li.
29439
29440         PR 220513.
29441
29442         Remove CookieDatabaseBackingStore::upgradeTableIfNeeded, it was needed for backwards
29443         compatibility, but not needed anymore.
29444
29445         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
29446         (WebCore::CookieDatabaseBackingStore::invokeOpen):
29447         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
29448
29449 2012-10-30  Glenn Adams  <glenn@skynav.com>
29450
29451         [CSS] Expand -webkit-line-break value space
29452         https://bugs.webkit.org/show_bug.cgi?id=100739
29453
29454         Reviewed by Eric Seidel.
29455
29456         (1) expand -webkit-line-break to include new values defined by CSS3 Text [1], i.e., 'auto', 'strict', 'loose';
29457         (2) change default (initial) value for -webkit-line-break to 'auto' to match CSS3 Text;
29458         (3) rename enum EKHTMLLineBreak to LineBreak, renaming enum values appropriately;
29459
29460         New tests to be added when functionality of new values is added. No rendering behavior change at this time.
29461         Only externally visible change is default (initial) value returning 'auto' rather than 'normal', for which 3 existing
29462         tests that were sensitive to this value have been updated. Note that until the functionality for the new values is
29463         added, any actual use of the new values will be treated as the same as the pre-existing 'normal' value, i.e., the
29464         default semantics.
29465
29466         * css/CSSComputedStyleDeclaration.cpp:
29467         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
29468         Update from kthmlLineBreak() to lineBreak().
29469
29470         * css/CSSParser.cpp:
29471         (WebCore::isValidKeywordPropertyAndValue):
29472         Update values supported for CSSPropertyWebkitLineBreak.
29473
29474         * css/CSSPrimitiveValueMappings.h:
29475         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
29476         (WebCore::CSSPrimitiveValue::operator LineBreak):
29477         Update LineBreak enumeration values (previously EKHTMLLineBreak).
29478
29479         * css/CSSValueKeywords.in:
29480         Update keywords used for -webkit-line-break.
29481
29482         * css/StyleBuilder.cpp:
29483         (WebCore::StyleBuilder::StyleBuilder):
29484         Update names for line break style getter/setter.
29485
29486         * rendering/style/RenderStyle.cpp:
29487         (WebCore::RenderStyle::diff):
29488         Remove khtml prefix on line break related state.
29489
29490         * rendering/style/RenderStyle.h:
29491         Remove khtml prefix on line break related methods. Update to redefined LineBreak
29492         enumeration type.
29493
29494         * rendering/style/RenderStyleConstants.h:
29495         Rename EKHTMLLineBreak enumeration to LineBreak.
29496         Redefine LineBreak enumeration to include new CSS3 Text modes (auto, loose, strict) and
29497         use better names.
29498
29499         * rendering/style/StyleRareInheritedData.cpp:
29500         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
29501         (WebCore::StyleRareInheritedData::operator==):
29502         Remove khtml prefix on line break related state references.
29503
29504         * rendering/style/StyleRareInheritedData.h:
29505         (StyleRareInheritedData):
29506         Remove khtml prefix on line break related state. Widen field to 3 bits to support 8 values,
29507         of which 5 are now used.
29508
29509 2012-10-30  Antti Koivisto  <antti@apple.com>
29510
29511         Avoid unnecessary style recalcs on class attribute mutation
29512         https://bugs.webkit.org/show_bug.cgi?id=100776
29513
29514         Reviewed by Andreas Kling.
29515
29516         There is no need to invalidate element style on class attribute change if neither the added
29517         or removed classes featured in any active stylesheet.
29518
29519         * css/RuleFeature.cpp:
29520         (WebCore::RuleFeatureSet::add):
29521         (WebCore::RuleFeatureSet::clear):
29522         (WebCore::RuleFeatureSet::reportMemoryUsage):
29523         * css/RuleFeature.h:
29524         (RuleFeatureSet):
29525         * css/RuleSet.cpp:
29526         (WebCore::collectFeaturesFromSelector):
29527         
29528             Collect classes mentioned in CSS selectors the same way ids and attribute names are
29529             already collected.
29530
29531         * css/StyleResolver.cpp:
29532         (WebCore::StyleResolver::hasSelectorForClass):
29533         
29534             Add a method to test if a given class name is mentioned anywhere in stylehseets.
29535
29536         (WebCore):
29537         * css/StyleResolver.h:
29538         * css/StyleScopeResolver.h:
29539         (WebCore):
29540         * dom/Element.cpp:
29541         (WebCore::collectAddedAndRemovedClasses):
29542         (WebCore):
29543         (WebCore::Element::classAttributeChanged):
29544         
29545             Figure out which classes were added and removed. Test if they are present in any style
29546             rule and invalidate the style only if they are.
29547
29548         * dom/SpaceSplitString.cpp:
29549         (WebCore::SpaceSplitStringData::add):
29550         (WebCore::SpaceSplitStringData::remove):
29551         (WebCore::SpaceSplitString::add):
29552         (WebCore::SpaceSplitString::remove):
29553         
29554             Added bool return value to indicate if anything was actually removed. Reorganized 
29555             the code a bit to avoid unnecessary uniquing when nothing changes.
29556
29557         * dom/SpaceSplitString.h:
29558         (SpaceSplitStringData):
29559         (SpaceSplitString):
29560
29561 2012-10-30  Robert Hogan  <robert@webkit.org>
29562
29563         white-space: nowrap inline element beside a floated element wraps incorrectly without trailing textnode/newline
29564         https://bugs.webkit.org/show_bug.cgi?id=29648
29565
29566         Reviewed by Levi Weintraub.
29567
29568         A no-wrap child on a line inside an autowrap container should move to the next line if a float doesn't allow
29569         it to fit. This will happen if there is trailing space after the no-wrap child but not if it's the last renderer
29570         on the line. This is because nextLineBreak() is only interested in the white-space style of the current renderer 
29571         and the renderer's next sibling (if there is one) when deciding whether it needs to fit below any floats that
29572         push it beyond the edge of the container. There isn't any situation in which a no-wrap child shouldn't move 
29573         below a float on an auto-wrap line though, so this check always needs to respect the container's white-space style too.
29574
29575         Test: fast/text/whitespace/no-wrap-child-in-auto-wrap-container.html
29576
29577         * rendering/RenderBlockLineLayout.cpp:
29578         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
29579
29580 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29581
29582         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29583         https://bugs.webkit.org/show_bug.cgi?id=100558
29584
29585         Reviewed by Dean Jackson.
29586
29587         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29588         but more is going to come in the following patches.
29589
29590         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29591         such operations for now.
29592         
29593         No new tests, there is no new functionality yet.
29594
29595         * CMakeLists.txt:
29596         * GNUmakefile.list.am:
29597         * Target.pri:
29598         * WebCore.gypi:
29599         * WebCore.vcproj/WebCore.vcproj:
29600         * WebCore.xcodeproj/project.pbxproj:
29601         * css/CSSComputedStyleDeclaration.cpp:
29602         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29603         * css/StyleResolver.cpp:
29604         (WebCore::StyleResolver::createFilterOperations):
29605         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29606         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29607         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29608         (PlatformCALayer::filtersCanBeComposited):
29609         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29610         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29611         * platform/graphics/filters/FilterOperation.h:
29612         * platform/graphics/filters/FilterOperations.cpp:
29613         (WebCore::FilterOperations::hasCustomFilter):
29614         (WebCore::FilterOperations::getOutsets):
29615         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29616         (WebCore):
29617         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29618         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29619         (WebCore::ValidatedCustomFilterOperation::blend):
29620         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29621         (WebCore):
29622         (ValidatedCustomFilterOperation):
29623         (WebCore::ValidatedCustomFilterOperation::create):
29624         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29625         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29626         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29627         (WebCore::ValidatedCustomFilterOperation::operator==):
29628
29629 2012-10-29  Anders Carlsson  <andersca@apple.com>
29630
29631         Build WebKit as C++11 on Mac
29632         https://bugs.webkit.org/show_bug.cgi?id=100720
29633
29634         Reviewed by Daniel Bates.
29635
29636         * Configurations/Base.xcconfig:
29637         Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.
29638
29639         * platform/graphics/FontPlatformData.h:
29640         (WebCore::FontPlatformData::hash):
29641         * platform/graphics/cg/GraphicsContextCG.cpp:
29642         (WebCore::GraphicsContext::drawLine):
29643         (WebCore::GraphicsContext::strokeArc):
29644         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
29645         (WebCore::CustomFilterProgramInfo::hash):
29646         (WebCore::ProtectionSpaceHash::hash):
29647         * platform/network/cf/FormDataStreamCFNet.cpp:
29648         (WebCore::setHTTPBody):
29649         Add static_casts to prevent implicit type conversions in non-constant initializer lists.
29650         
29651         * platform/mac/ClipboardMac.mm:
29652         (WebCore::ClipboardMac::createDragImage):
29653         * platform/mac/CursorMac.mm:
29654         (WebCore::createNamedCursor):
29655         * platform/mac/ScrollViewMac.mm:
29656         (WebCore::ScrollView::platformSetContentsSize):
29657         Use NSMakePoint to prevent implicit type conversions in non-constant initializer lists.
29658
29659         * platform/mac/CookieJar.mm:
29660         (WebCore::cookiesEnabled):
29661         * platform/network/mac/ResourceHandleMac.mm:
29662         (WebCore::shouldRelaxThirdPartyCookiePolicy):
29663         Add explicit casts to NSHTTPCookieAcceptPolicy.
29664
29665         * platform/mac/WebCoreNSURLExtras.h:
29666         * platform/mac/WebCoreNSURLExtras.mm:
29667         (WebCore::URLByTruncatingOneCharacterBeforeComponent):
29668         (WebCore::dataForURLComponentType):
29669         * platform/network/ProtectionSpaceHash.h:
29670         Use CFIndex instead of CFURLComponentType, the enum can be mangled differently in some cases, and these
29671         functions are exported from WebCore.
29672
29673 2012-10-30  Dan Bernstein  <mitz@apple.com>
29674
29675         <rdar://problem/12395187> REGRESSION (r121299): OS X Text Replacement forces cursor out of text fields
29676         https://bugs.webkit.org/show_bug.cgi?id=100768
29677
29678         Reviewed by Anders Carlsson.
29679
29680         r121299 introduced code to restore the paragraph range by saving its length and start offset
29681         relative to the document. The latter was obtained by iterating over the range starting at
29682         the beginning of the document and ending at the beginning of the paragraph range. However,
29683         such a range could not be constructed if the paragraph range was contained in a shadow DOM,
29684         since a range must have both its endpoints within the same shadow tree (or not in a shadow
29685         tree).
29686
29687         Test: platform/mac/editing/spelling/autocorrection-in-textarea.html
29688
29689         * editing/Editor.cpp:
29690         (WebCore::Editor::markAndReplaceFor): Changed paragraphStartIndex to be relative to the
29691         root container of paragraphRange, using the same logic used by
29692         checkForDifferentRootContainer() in Range.cpp.
29693
29694 2012-10-30  Dan Carney  <dcarney@google.com>
29695
29696         Remove ensureAuxiliaryContext
29697         https://bugs.webkit.org/show_bug.cgi?id=99975
29698
29699         Reviewed by Adam Barth.
29700
29701         Removed auxilliaryContext as use if it is problematic in IDB.
29702
29703         No new tests. No change in functionality.
29704
29705         * Modules/indexeddb/IDBCursor.cpp:
29706         (WebCore::IDBCursor::update):
29707         (WebCore::IDBCursor::setValueReady):
29708         * Modules/indexeddb/IDBCursor.h:
29709         (IDBCursor):
29710         * Modules/indexeddb/IDBObjectStore.cpp:
29711         (WebCore::generateIndexKeysForValue):
29712         (WebCore::IDBObjectStore::put):
29713         (WebCore):
29714         * Modules/indexeddb/IDBRequest.cpp:
29715         (WebCore::IDBRequest::onSuccess):
29716         (WebCore::IDBRequest::dispatchEvent):
29717         * bindings/v8/IDBBindingUtilities.cpp:
29718         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
29719         (WebCore::deserializeIDBValue):
29720         (WebCore::injectIDBKeyIntoScriptValue):
29721         * bindings/v8/IDBBindingUtilities.h:
29722         (WebCore):
29723         * bindings/v8/V8Binding.cpp:
29724         (WebCore::toV8Context):
29725         (WebCore):
29726         * bindings/v8/V8Binding.h:
29727         (WebCore):
29728         * bindings/v8/V8PerIsolateData.cpp:
29729         (WebCore):
29730         * bindings/v8/V8PerIsolateData.h:
29731
29732 2012-10-30  Huang Dongsung  <luxtella@company100.net>
29733
29734         [CSS Shaders] Add CustomFilterRenderer to reuse this class by Accelerated Compositing.
29735         https://bugs.webkit.org/show_bug.cgi?id=98989
29736
29737         Reviewed by Dean Jackson.
29738
29739         Extract CustomFilterRenderer class from the rendering part of FECustomFilter.
29740         FECustomFilter now plays a role in extending FilterEffect and delegates
29741         rendering CSS Shaders to CustomFilterRenderer.
29742
29743         CustomFilterRenderer does not know Filter and FilterEffect. We can
29744         create a CustomFilterRenderer instance with only GraphicsContext3D and
29745         CustomFilterValidatedProgram. It means that Accelerated Compositing can
29746         create the CustomFilterRenderer instance if Accelerated Compositing has
29747         GraphicsContext3D and CustomFilterOperation, and it is already possible.
29748
29749         This patch prepares to enable CSS Shaders on Accelerated Compositing.
29750
29751         No new tests. Covered by css3/filters/custom
29752
29753         * CMakeLists.txt:
29754         * GNUmakefile.list.am:
29755         * Target.pri:
29756         * WebCore.gypi:
29757         * WebCore.vcproj/WebCore.vcproj:
29758         * WebCore.xcodeproj/project.pbxproj:
29759         * platform/graphics/filters/CustomFilterRenderer.cpp: Added.
29760         (WebCore):
29761         (WebCore::orthogonalProjectionMatrix):
29762         (WebCore::CustomFilterRenderer::create):
29763         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
29764         (WebCore::CustomFilterRenderer::~CustomFilterRenderer):
29765         (WebCore::CustomFilterRenderer::premultipliedAlpha):
29766         (WebCore::CustomFilterRenderer::programNeedsInputTexture):
29767         (WebCore::CustomFilterRenderer::draw):
29768         (WebCore::CustomFilterRenderer::prepareForDrawing):
29769         (WebCore::CustomFilterRenderer::initializeCompiledProgramIfNeeded):
29770         (WebCore::CustomFilterRenderer::initializeMeshIfNeeded):
29771         (WebCore::CustomFilterRenderer::bindVertexAttribute):
29772         (WebCore::CustomFilterRenderer::unbindVertexAttribute):
29773         (WebCore::CustomFilterRenderer::bindProgramArrayParameters):
29774         (WebCore::CustomFilterRenderer::bindProgramNumberParameters):
29775         (WebCore::CustomFilterRenderer::bindProgramTransformParameter):
29776         (WebCore::CustomFilterRenderer::bindProgramParameters):
29777         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
29778         (WebCore::CustomFilterRenderer::unbindVertexAttributes):
29779         * platform/graphics/filters/CustomFilterRenderer.h: Copied from Source/WebCore/platform/graphics/filters/FECustomFilter.h.
29780         (WebCore):
29781         (CustomFilterRenderer):
29782           CustomFilterRenderer renders custom filters in GPU using a
29783           GraphicsContext3D.
29784         * platform/graphics/filters/FECustomFilter.cpp:
29785         (WebCore::FECustomFilter::FECustomFilter):
29786         (WebCore::FECustomFilter::create):
29787         (WebCore::FECustomFilter::deleteRenderBuffers):
29788         (WebCore::FECustomFilter::drawFilterMesh):
29789         (WebCore::FECustomFilter::prepareForDrawing):
29790         (WebCore::FECustomFilter::applyShader):
29791         (WebCore::FECustomFilter::resolveMultisampleBuffer):
29792         (WebCore::FECustomFilter::resizeMultisampleBuffers):
29793         (WebCore::FECustomFilter::resizeContext):
29794         * platform/graphics/filters/FECustomFilter.h:
29795         (WebCore):
29796         (FECustomFilter):
29797         * rendering/FilterEffectRenderer.cpp:
29798         (WebCore::createCustomFilterEffect):
29799
29800 2012-10-30  Mike West  <mkwst@chromium.org>
29801
29802         Web Inspector: Associate console messages with the requests that caused them.
29803         https://bugs.webkit.org/show_bug.cgi?id=99941
29804
29805         Reviewed by Pavel Feldman.
29806
29807         The inspector currently supports the concept of a request's "initiator"
29808         in order to add context to console messages that are generated in
29809         response to a specific request. The initiator is used as the message's
29810         anchor link iff a requestID is present, and no stack trace is present.
29811
29812         Currently, this functionality is only exposed to three specific
29813         callsites: 'InspectorConsoleAgent::didFinishXHRLoading',
29814         'InspectorConsoleAgent::didReceiveResponse', and
29815         'InspectorConsoleAgent::didFailLoading'. This patch adds a generic
29816         mechanism to associate requests with console messages by passing the
29817         request's identifier through 'ScriptExecutionContext::addConsoleMessage'
29818         or 'Console::addMessage' when relevant.
29819
29820         This patch should have no visible changes. It just installs some new
29821         piping, and adjusts the three methods mentioned above to use it.
29822         Existing tests shouldn't break.
29823
29824         * dom/Document.cpp:
29825         (WebCore::Document::addMessage):
29826         * dom/Document.h:
29827         (Document):
29828             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29829             through to Console::addMessage.
29830         * dom/ScriptExecutionContext.cpp:
29831         (WebCore::ScriptExecutionContext::addConsoleMessage):
29832         * dom/ScriptExecutionContext.h:
29833         (ScriptExecutionContext):
29834             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29835             through to the subclass' addMessage method.
29836         * inspector/ConsoleMessage.cpp:
29837         (WebCore::ConsoleMessage::ConsoleMessage):
29838             Accept an unsigned long instead of a string, and move the conversion
29839             from WebCore request identifiers to Inspector request identifiers
29840             into ConsoleMessage.
29841         * inspector/ConsoleMessage.h:
29842         (ConsoleMessage):
29843             Add 'requestIdentifier' (defaulting to 0) to the
29844             ConsoleMessage constructor that accepts a ScriptCallStack (it was
29845             already part of the constructor that accepted a line number).
29846         * inspector/IdentifiersFactory.cpp:
29847         (WebCore::IdentifiersFactory::requestId):
29848             If the provided request identifier is 0, return an empty string.
29849             This simplifies the logic at the callsite.
29850         * inspector/InspectorConsoleAgent.cpp:
29851         (WebCore::InspectorConsoleAgent::addMessageToConsole):
29852             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29853             through to the 'ConsoleMessage' constructor after converting it to
29854             an internal identifier via 'IdentifiersFactor::requestId'.
29855         (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
29856         (WebCore::InspectorConsoleAgent::didReceiveResponse):
29857         (WebCore::InspectorConsoleAgent::didFailLoading):
29858             Use the new 'requestIdentifier' parameter on addMessageToConsole
29859             rather than replicating the behavior in each of these three methods.
29860         * inspector/InspectorConsoleAgent.h:
29861         (InspectorConsoleAgent):
29862             Add a 'requestIdentifier' parameter (defaulting to 0).
29863         * inspector/InspectorConsoleInstrumentation.h:
29864         (WebCore::InspectorInstrumentation::addMessageToConsole):
29865         * inspector/InspectorInstrumentation.cpp:
29866         (WebCore):
29867         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
29868         * inspector/InspectorInstrumentation.h:
29869         (InspectorInstrumentation):
29870             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29871             through to lower levels of the stack.
29872         * page/Console.cpp:
29873         (WebCore::Console::addMessage):
29874         * page/Console.h:
29875         (Console):
29876             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29877             through to 'InspectorInstrumentation::addMessageToConsole'.
29878         * workers/WorkerContext.cpp:
29879         (WebCore::WorkerContext::addMessage):
29880         (WebCore::WorkerContext::addMessageToWorkerConsole):
29881         * workers/WorkerContext.h:
29882         (WorkerContext):
29883             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29884             through to 'InspectorInstrumentation::addMessageToConsole'.
29885
29886 2012-10-29  Anders Carlsson  <andersca@apple.com>
29887
29888         String::createCFString should return a RetainPtr
29889         https://bugs.webkit.org/show_bug.cgi?id=100419
29890
29891         Reviewed by Andreas Kling.
29892
29893         Update callers of String::createCFString.
29894
29895         * bridge/objc/objc_runtime.mm:
29896         (JSC::Bindings::callObjCFallbackObject):
29897         * html/HTMLMediaElement.cpp:
29898         (WebCore::createFileURLForApplicationCacheResource):
29899         * loader/archive/cf/LegacyWebArchive.cpp:
29900         (WebCore::LegacyWebArchive::createPropertyListRepresentation):
29901         * platform/LocalizedStrings.cpp:
29902         (WebCore::formatLocalizedString):
29903         (WebCore::contextMenuItemTagLookUpInDictionary):
29904         (WebCore::keygenKeychainItemName):
29905         (WebCore::imageTitle):
29906         * platform/RuntimeApplicationChecks.cpp:
29907         (WebCore::mainBundleIsEqualTo):
29908         * platform/cf/FileSystemCF.cpp:
29909         (WebCore::fileSystemRepresentation):
29910         (WebCore::pathAsURL):
29911         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
29912         (PlatformCAAnimation::PlatformCAAnimation):
29913         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
29914         (resubmitAllAnimations):
29915         (PlatformCALayer::addAnimationForKey):
29916         (PlatformCALayer::removeAnimationForKey):
29917         (PlatformCALayer::setName):
29918         * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
29919         (PlatformCALayerWinInternal::updateTiles):
29920         * platform/graphics/cg/ImageBufferCG.cpp:
29921         (WebCore::utiFromMIMEType):
29922         * platform/graphics/cg/ImageSourceCGMac.mm:
29923         (WebCore::MIMETypeForImageSourceType):
29924         (WebCore::preferredExtensionForImageSourceType):
29925         * platform/mac/ClipboardMac.mm:
29926         (WebCore::cocoaTypeFromHTMLClipboardType):
29927         (WebCore::utiTypeFromCocoaType):
29928         * platform/mac/SSLKeyGeneratorMac.cpp:
29929         (WebCore::signedPublicKeyAndChallengeString):
29930         * platform/network/cf/AuthenticationCF.cpp:
29931         (WebCore::createCF):
29932         * platform/network/cf/CookieJarCFNet.cpp:
29933         (WebCore::setCookies):
29934         * platform/network/cf/DNSCFNet.cpp:
29935         (WebCore::DNSResolveQueue::platformResolve):
29936         * platform/network/cf/ResourceErrorCF.cpp:
29937         (WebCore::ResourceError::cfError):
29938         * platform/network/cf/ResourceHandleCFNet.cpp:
29939         (WebCore::setDefaultMIMEType):
29940         (WebCore::willSendRequest):
29941         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
29942         (WebCore::ResourceHandle::setPrivateBrowsingEnabled):
29943         * platform/network/cf/ResourceRequestCFNet.cpp:
29944         (WebCore::setHeaderFields):
29945         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29946         * platform/network/cf/ResourceResponseCFNet.cpp:
29947         (WebCore::ResourceResponse::cfURLResponse):
29948         * platform/network/cf/SocketStreamHandleCFNet.cpp:
29949         (WebCore::SocketStreamHandle::createStreams):
29950         (WebCore::SocketStreamHandle::addCONNECTCredentials):
29951         (WebCore::SocketStreamHandle::copyCFStreamDescription):
29952         * platform/network/mac/ResourceRequestMac.mm:
29953         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29954         * platform/network/mac/WebCoreURLResponse.mm:
29955         (WebCore::adjustMIMETypeIfNecessary):
29956         * platform/text/cf/HyphenationCF.cpp:
29957         (WebCore::::createValueForKey):
29958         * platform/text/cf/StringCF.cpp:
29959         (WTF::String::createCFString):
29960         * platform/text/cf/StringImplCF.cpp:
29961         (WTF::StringImpl::createCFString):
29962         * platform/text/mac/StringImplMac.mm:
29963         (WTF::StringImpl::operator NSString *):
29964         * platform/text/mac/TextCodecMac.cpp:
29965         (WebCore::TextCodecMac::encode):
29966         * platform/win/SearchPopupMenuWin.cpp:
29967         (WebCore::autosaveKey):
29968         (WebCore::SearchPopupMenuWin::saveRecentSearches):
29969
29970 2012-10-30  Chris Fleizach  <cfleizach@apple.com>
29971
29972         AX: Support embedded SVG objects in AX tree
29973         https://bugs.webkit.org/show_bug.cgi?id=97571
29974
29975         Reviewed by Tim Horton.
29976
29977         This patch allows an SVG image from another resource to be hooked into the AX
29978         hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto
29979         its native parent image. The SVGChromeClient is then used to connect to this SVG resource.
29980
29981         Test: accessibility/svg-remote-element.html
29982
29983         * CMakeLists.txt:
29984         * GNUmakefile.list.am:
29985         * WebCore.gypi:
29986         * WebCore.vcproj/WebCore.vcproj:
29987         * WebCore.xcodeproj/project.pbxproj:
29988         * accessibility/AXObjectCache.cpp:
29989         (WebCore::createFromRenderer):
29990         * accessibility/AccessibilityAllInOne.cpp:
29991         * accessibility/AccessibilityObject.h:
29992         (WebCore::AccessibilityObject::isAccessibilitySVGRoot):
29993         (AccessibilityObject):
29994         * accessibility/AccessibilityRenderObject.cpp:
29995         (WebCore::AccessibilityRenderObject::detach):
29996         (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement):
29997         (WebCore::AccessibilityRenderObject::boundingBoxRect):
29998         (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
29999         (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
30000         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
30001         (WebCore::AccessibilityRenderObject::isSVGImage):
30002         (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
30003         (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
30004         (WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
30005         (WebCore::AccessibilityRenderObject::addChildren):
30006         * accessibility/AccessibilityRenderObject.h:
30007         (AccessibilityRenderObject):
30008         * accessibility/AccessibilitySVGRoot.cpp: Added.
30009         (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
30010         (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot):
30011         (WebCore::AccessibilitySVGRoot::create):
30012         (WebCore::AccessibilitySVGRoot::parentObject):
30013         * accessibility/AccessibilitySVGRoot.h: Added.
30014         (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element.
30015         (WebCore::AccessibilitySVGRoot::setParent):
30016         (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot):
30017         (WebCore::toAccessibilitySVGRoot):
30018         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
30019         (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled 
30020         in a special manner.
30021         (createAccessibilityRoleMap):
30022         * loader/EmptyClients.h:
30023         (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding
30024         the accessibility bounding rect of elements.
30025         (WebCore::EmptyChromeClient::isEmptyChromeClient):
30026         * page/ChromeClient.h:
30027         (WebCore::ChromeClient::isEmptyChromeClient):
30028         (ChromeClient):
30029         * svg/graphics/SVGImage.cpp:
30030         * svg/graphics/SVGImageChromeClient.h: Added.
30031         (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image.
30032         (WebCore::SVGImageChromeClient::SVGImageChromeClient):
30033         (WebCore::SVGImageChromeClient::isSVGImageChromeClient):
30034         (WebCore::SVGImageChromeClient::image):
30035         (WebCore::SVGImageChromeClient::chromeDestroyed):
30036         (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
30037         (WebCore::toSVGImageChromeClient):
30038
30039 2012-10-30  Dan Carney  <dcarney@google.com>
30040
30041         add 7 bit strings capabilities to the v8 binding layer
30042         https://bugs.webkit.org/show_bug.cgi?id=91850
30043
30044         Reviewed by Adam Barth.
30045
30046         This change enables the v8 binding layer to make use of webkit's
30047         8 bit string capabilities. Using 8 bit strings leads to certain
30048         benchmark performance improvemnts as can be seen in
30049         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
30050
30051         No new tests. Test coverage already extensive.
30052
30053         * bindings/v8/V8PerIsolateData.cpp:
30054         (WebCore::V8PerIsolateData::visitExternalStrings):
30055         * bindings/v8/V8StringResource.cpp:
30056         (StringTraits):
30057         (WebCore::false):
30058         (WebCore):
30059         (WebCore::true):
30060         (WebCore::v8StringToWebCoreString):
30061         * bindings/v8/V8ValueCache.cpp:
30062         (WebCore::makeExternalString):
30063         (WebCore::WebCoreStringResourceBase::visitStrings):
30064         * bindings/v8/V8ValueCache.h:
30065         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
30066         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
30067         (WebCore::WebCoreStringResourceBase::atomicString):
30068         (WebCoreStringResourceBase):
30069         (WebCore::WebCoreStringResourceBase::memoryConsumption):
30070
30071 2012-10-30  Christophe Dumez  <christophe.dumez@intel.com>
30072
30073         [AC] Fix compilation warnings when enabling Accelerated Compositing
30074         https://bugs.webkit.org/show_bug.cgi?id=100741
30075
30076         Reviewed by Kenneth Rohde Christiansen.
30077
30078         Fix a few compilation warnings when building EFL port
30079         with accelerated compositing enabled.
30080
30081         No new tests, no behavior change.
30082
30083         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
30084         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
30085         (WebCore::resolveGLMethods):
30086         (WebCore::GraphicsSurface::platformCopyToGLTexture):
30087         (WebCore::GraphicsSurface::platformLock):
30088         * platform/graphics/texmap/TextureMapperGL.cpp:
30089         (WebCore::BitmapTextureGL::updateContents):
30090
30091 2012-10-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
30092
30093         [Qt] Animations jump when the page is suspended
30094         https://bugs.webkit.org/show_bug.cgi?id=100673
30095
30096         Reviewed by Kenneth Rohde Christiansen.
30097
30098         GraphicsLayerAnimations::pause() should accept time from start and not an offset.
30099
30100         We need to support the "freeze" API before this can be reliably tested.
30101         See https://bugs.webkit.org/show_bug.cgi?id=100703.
30102
30103         * platform/graphics/GraphicsLayerAnimation.cpp:
30104         (WebCore::GraphicsLayerAnimation::pause):
30105
30106 2012-10-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>
30107
30108         [Qt][EFL][AC] While Using WebGL, MiniBrowser segfaults on Refreshing the page.
30109         https://bugs.webkit.org/show_bug.cgi?id=100639.
30110
30111         Reviewed by Kenneth Rohde Christiansen.
30112
30113         TextureMapperSurfaceBackingStore can import textures from a GraphicSurface.
30114         In such cases GraphicsSurfaceGLX creates an XPixmap to read texture content
30115         from a given WindowId, but doesn't create any new window.
30116         However, OffScreenRootWindow always tries to unmap window (in its destructor) resulting in segfault.
30117         With this patch OffScreenRootWindow would check for a valid window before trying to unmap it.
30118
30119         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
30120         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
30121
30122 2012-10-30  Emil A Eklund  <eae@chromium.org>
30123
30124         [subixel] Change LineWidth::shrinkAvailableWidthForNewFloatIfNeeded to not pixel snap
30125         https://bugs.webkit.org/show_bug.cgi?id=100742
30126
30127         Reviewed by Levi Weintraub.
30128
30129         As we no longer pixel snap values when computing the current width for a
30130         line we should not do it in shrinkAvailableWidthForNewFloatIfNeeded
30131         either.
30132
30133         Test: fast/sub-pixel/float-wrap-zoom.html
30134
30135         * rendering/RenderBlockLineLayout.cpp:
30136         (WebCore::LineWidth::LineWidth): Remove unnecessary ifdef.
30137         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use float values instead of pixel snapped/floored values as the line width calculations uses floats.
30138
30139 2012-10-30  Max Vujovic  <mvujovic@adobe.com>
30140
30141         [CSS Shaders] Reject vertex shaders with custom attributes
30142         https://bugs.webkit.org/show_bug.cgi?id=98973
30143
30144         Reviewed by Dean Jackson.
30145
30146         Improved CSS Custom Filters shader validation. With this patch:
30147         (1) Shaders with custom attributes do not execute (e.g. attribute float my_attribute;).
30148         (2) Shaders with a_triangleCoord defined do not execute with an attached mesh.
30149
30150         Most of the changes are from renaming CustomFilterOperation::MeshType to
30151         CustomFilterMeshType, and moving the enumeration to CustomFilterConstants.h. This avoids
30152         pulling in CustomFilterOperation for classes that only care about the mesh type.
30153
30154         Note that in CSS Custom Filters, the a_triangleCoord attribute is only available in detached
30155         meshes. In detached meshes, no vertices are shared between triangles. Thus, each vertex
30156         belongs to a specific triangle, which a_triangleCoord identifies. In attached meshes,
30157         vertices can belong to many triangles, which a_triangleCoord cannot identify because it's
30158         only a vec3.
30159
30160         Tests:
30161         Add two new checks to the test file:
30162             css3/filters/custom/invalid-custom-filter-attribute-types.html
30163         Add two new shaders:
30164             css3/filters/resources/invalid-custom-attribute.vs
30165             css3/filters/resources/invalid-a-triangle-coord-with-attached-mesh.vs
30166
30167         * WebCore.xcodeproj/project.pbxproj:
30168             Update a broken reference to CustomFilterConstants.h in the Xcode project file.
30169         * css/CSSComputedStyleDeclaration.cpp:
30170         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
30171             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30172         * css/StyleResolver.cpp:
30173         (WebCore::StyleResolver::createCustomFilterOperation): Ditto.
30174         * platform/graphics/filters/CustomFilterConstants.h:
30175             Add CustomFilterMeshType enum to share across the Custom Filters codebase, so that we
30176             don't have to include CustomFilterOperation just to access the old
30177             CustomFilterOperation::MeshType enum.
30178         * platform/graphics/filters/CustomFilterMesh.cpp:
30179         (WebCore::CustomFilterMesh::CustomFilterMesh):
30180             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30181         * platform/graphics/filters/CustomFilterMesh.h:
30182         (WebCore::CustomFilterMesh::create): Ditto.
30183         (WebCore::CustomFilterMesh::meshType): Ditto.
30184         (CustomFilterMesh): Ditto.
30185         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Ditto.
30186         (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator): Ditto.
30187         (WebCore::CustomFilterMeshGenerator::dumpBuffers): Ditto.
30188         * platform/graphics/filters/CustomFilterMeshGenerator.h:
30189         (CustomFilterMeshGenerator): Ditto.
30190         (WebCore::CustomFilterMeshGenerator::floatsPerVertex): Ditto.
30191         (WebCore::CustomFilterMeshGenerator::verticesCount): Ditto.
30192         * platform/graphics/filters/CustomFilterOperation.cpp: 
30193         (WebCore::CustomFilterOperation::CustomFilterOperation): Ditto.
30194         * platform/graphics/filters/CustomFilterOperation.h:
30195         (WebCore::CustomFilterOperation::create): Ditto.
30196         (WebCore::CustomFilterOperation::meshType): Ditto.
30197         (CustomFilterOperation): Ditto.
30198         * platform/graphics/filters/CustomFilterProgram.cpp:
30199         (WebCore::CustomFilterProgram::CustomFilterProgram):
30200             Add a meshType constructor parameter because the program now needs to know the meshType
30201             to properly validate.
30202         (WebCore::CustomFilterProgram::programInfo):
30203             Pass meshType to CustomFilterProgram constructor.
30204         (WebCore::CustomFilterProgram::operator==):
30205             Check the meshType in the equals operator.
30206         * platform/graphics/filters/CustomFilterProgram.h:
30207             Make vertexShaderString() and fragmentShaderString() public so that we don't have to ask
30208             for a programInfo object just to get the shader strings in
30209             CoordinatedGraphicsArgumentCoders.cpp.
30210         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
30211         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
30212             Add a meshType constructor parameter.       
30213         (WebCore::CustomFilterProgramInfo::hash):
30214             Include the meshType in the validated program hash, since the same shader code can pass
30215             or fail validation based on the meshType.
30216         (WebCore::CustomFilterProgramInfo::operator==):
30217             Check the meshType in the equals operator.
30218         * platform/graphics/filters/CustomFilterProgramInfo.h:
30219         (CustomFilterProgramInfo):
30220             Update method prototype.
30221         (WebCore::CustomFilterProgramInfo::meshType):
30222             Add meshType getter.
30223         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
30224         (WebCore::CustomFilterValidatedProgram::validateSymbols):
30225             If the author defines attribute that is is not found in the built-in attribute map,
30226             reject the shader.
30227             If the author defines a_triangleCoord without a detached mesh type, reject the shader.
30228             Also, make this previously file-static function into a method of
30229             CustomFilterValidatedProgram because it now needs to access the m_meshType.
30230         * platform/graphics/filters/CustomFilterValidatedProgram.h:
30231         (CustomFilterValidatedProgram):
30232             Add a meshType constructor parameter because the program now needs to know the meshType
30233             to properly validate.
30234         * platform/graphics/filters/FECustomFilter.cpp:
30235         (WebCore::FECustomFilter::FECustomFilter):
30236             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30237         (WebCore::FECustomFilter::create): Ditto.
30238         (WebCore::FECustomFilter::bindProgramAndBuffers): Ditto.
30239         (WebCore::FECustomFilter::unbindVertexAttributes): Ditto.
30240         * platform/graphics/filters/FECustomFilter.h:
30241         (FECustomFilter): Ditto.
30242         * rendering/style/StyleCustomFilterProgram.h:
30243         (WebCore::StyleCustomFilterProgram::create):
30244             Add a meshType constructor parameter.
30245         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): Ditto.
30246
30247 2012-10-30  Andrey Lushnikov  <lushnikov@google.com>
30248
30249         Web Inspector: adds isOwnProperty to remote protocol
30250         https://bugs.webkit.org/show_bug.cgi?id=100664
30251
30252         Reviewed by Pavel Feldman.
30253
30254         Test: inspector/runtime/runtime-getProperties-isOwnProperty.html
30255
30256         Adds requested 'isOwn' property to the 'PropertyDescriptor' class of the
30257         remote debugging protocol. 
30258
30259         * inspector/InjectedScriptSource.js:
30260         (.):
30261         * inspector/Inspector.json:
30262
30263 2012-10-30  Zeno Albisser  <zeno@webkit.org>
30264
30265         [Qt][Win] BitmapTextureGL::updateContents() broken after r132019.
30266         https://bugs.webkit.org/show_bug.cgi?id=100680
30267
30268         When creating a temporary for swizzling the image data,
30269         the temporary will have the target size.
30270         Therefore no offset within the available image data
30271         shall be applied in this case.
30272
30273         Reviewed by Noam Rosenthal.
30274
30275         * platform/graphics/texmap/TextureMapperGL.cpp:
30276         (WebCore::BitmapTextureGL::updateContents):
30277
30278 2012-10-30  Kent Tamura  <tkent@chromium.org>
30279
30280         Remove unused code for old input[type=date] UI
30281         https://bugs.webkit.org/show_bug.cgi?id=100734
30282
30283         Reviewed by Hajime Morita.
30284
30285         The old input[type=date] UI used in Google Chrome 20-23 (text field with
30286         a fixed placeholder) was replaced with ENABLE_INPUT_MULTIPLE_FIELDS_UI.
30287
30288         No new tests because of no behavior changes.
30289
30290         * html/DateInputType.cpp: Remove ENABLE_INPUT_TYPE_DATE_LEGACY_UI code path.
30291         * html/DateInputType.h: Ditto.
30292
30293         * html/HTMLInputElement.cpp:
30294         (WebCore::HTMLInputElement::supportsPlaceholder):
30295         Remove fixed-placeholder feature.
30296         * html/HTMLInputElement.h:
30297         (HTMLInputElement): Ditto.
30298         * html/HTMLTextFormControlElement.h:
30299         (HTMLTextFormControlElement): isPlaceholderEmpty() is not needed to be virtual
30300         * html/InputType.cpp: Remove fixed-placeholder feature.
30301         * html/InputType.h: Ditto.
30302         * html/TextFieldInputType.cpp:
30303         (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
30304
30305         * platform/text/PlatformLocale.h:
30306         (Locale): Remove dateFormatText.
30307         * platform/text/LocaleICU.cpp: Ditto.
30308         * platform/text/LocaleICU.h: Ditto.
30309         * platform/text/LocaleNone.cpp: Ditto.
30310         * platform/text/mac/LocaleMac.h: Ditto.
30311         * platform/text/mac/LocaleMac.mm: Ditto.
30312         * platform/text/win/LocaleWin.cpp: Ditto.
30313         * platform/text/win/LocaleWin.h: Ditto.
30314         * platform/LocalizedStrings.h:
30315         (WebCore): Remove unused functions; calendarTodayText,
30316         calendarClearText, dateFormatYearText, dateFormatMonthText,
30317         dateFormatDayInMonthText
30318
30319 2012-10-30  Kent Tamura  <tkent@chromium.org>
30320
30321         Fix crash by calendar picker or suggestion picker
30322         https://bugs.webkit.org/show_bug.cgi?id=100728
30323
30324         Reviewed by Hajime Morita.
30325
30326         Change DateTimeChooser so that it is ref-coutned.
30327
30328         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html
30329
30330         * platform/DateTimeChooser.h: Made DateTimeChooser RefCounted.
30331         * page/ChromeClient.h:
30332         (ChromeClient): openDateTimeChooser should return PassRefPtr<DateTimeChooser>.
30333         * loader/EmptyClients.h:
30334         (EmptyChromeClient): Follow the above change.
30335         * loader/EmptyClients.cpp:
30336         (WebCore::EmptyChromeClient::openDateTimeChooser): Ditto.
30337
30338         * html/shadow/PickerIndicatorElement.h:
30339         (PickerIndicatorElement): Hold DateTimeChooser in RefPtr<DateTimeChooser>.
30340         * html/shadow/PickerIndicatorElement.cpp:
30341         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
30342         Remove unnecessary initialization.
30343
30344 2012-10-30  Eugene Klyuchnikov  <eustas.bug@gmail.com>
30345
30346         Web Inspector: Timeline: promote "cpu activity" out of experiment
30347         https://bugs.webkit.org/show_bug.cgi?id=100726
30348
30349         Reviewed by Pavel Feldman.
30350
30351         1. CPU actibity bars redesigned
30352         2. Experiment setting removed
30353         3. Feature setting added
30354
30355         * English.lproj/localizedStrings.js: Updated setting label.
30356         * inspector/front-end/Settings.js: Replaced experiment with setting.
30357         * inspector/front-end/SettingsScreen.js: Added new setting.
30358         * inspector/front-end/TimelinePanel.js: Update cpu bars appearance.
30359         * inspector/front-end/timelinePanel.css: Ditto.
30360
30361 2012-10-30  Michelangelo De Simone  <michelangelo@webkit.org>
30362
30363         [CSS Shaders] Change the default compositing mode and the default CSS value for <fragmentShader>
30364         https://bugs.webkit.org/show_bug.cgi?id=94020
30365
30366         Reviewed by Dean Jackson.
30367
30368         The default compositing mode has been changed from "normal source-over" to
30369         "normal source-atop". This applies to the default fragment shader that will
30370         kick in when there is no explicit fragment shader or mix function defined.
30371
30372         This has required to update all the existing tests; the dummy empty fragment
30373         shader has also been removed because not needed.
30374
30375         * css/CSSComputedStyleDeclaration.cpp:
30376         (WebCore::CSSComputedStyleDeclaration::valueForFilter): An existence check
30377         for the fragment shader has been added.
30378         * css/StyleResolver.cpp:
30379         (WebCore::StyleResolver::createCustomFilterOperation): The default program
30380         has been updated: PROGRAM_TYPE_BLENDS_TEXTURE (compositing enabled) now is
30381         the default.
30382         * platform/graphics/filters/CustomFilterProgramInfo.h:
30383         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
30384         New CustomFilterProgramMixSettings defaults to "source-atop" composite
30385         operator.
30386
30387 2012-10-30  Ádám Kallai  <kadam@inf.u-szeged.hu>
30388
30389         [Qt][Mac] Unreviewed build fix.
30390         https://bugs.webkit.org/show_bug.cgi?id=100727.
30391
30392         Speculative build fix after 132858. Include missing CoreFoundation/CoreFoundation.h header.
30393
30394         * platform/text/cf/AtomicStringCF.cpp:
30395
30396 2012-10-30  Gabor Rapcsanyi  <rgabor@webkit.org>
30397
30398         Optimize vclip for NEON in VectorMath
30399         https://bugs.webkit.org/show_bug.cgi?id=100737
30400
30401         Reviewed by Zoltan Herczeg.
30402
30403         Speed up vclip in VectorMath with NEON intrinsics.
30404
30405         * platform/audio/VectorMath.cpp:
30406         (WebCore::VectorMath::vclip):
30407
30408 2012-10-30  Alexandru Chiculita  <achicu@adobe.com>
30409
30410         [CSS Shaders] Software and composited filters should have a common path
30411         https://bugs.webkit.org/show_bug.cgi?id=100532
30412
30413         Reviewed by Dean Jackson.
30414
30415         Added computeFilterOperations as a common method between the software filters
30416         and hardware composited ones. The method rejects custom filters that are not
30417         loaded yet. In bug 100533 it will also convert the CustomFilterOperation to a 
30418         ValidatedCustomFilterOperation. That will help us keep the loading and verification 
30419         code for the custom filters common across all the ports.
30420
30421         No new tests, just refactoring existing code.
30422
30423         * rendering/RenderLayer.cpp:
30424         (WebCore::RenderLayer::computeFilterOperations):
30425         (WebCore):
30426         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
30427         * rendering/RenderLayer.h:
30428         (WebCore):
30429         (RenderLayer):
30430         * rendering/RenderLayerBacking.cpp:
30431         (WebCore::RenderLayerBacking::updateFilters):
30432
30433 2012-10-30  Alexei Filippov  <alph@chromium.org>
30434
30435         Web Inspector: Implement native memory snapshot grid view
30436         https://bugs.webkit.org/show_bug.cgi?id=100656
30437
30438         Native memory snapshots are now shown as an expandable tree form
30439         using the grid control.
30440
30441         Reviewed by Yury Semikhatsky.
30442
30443         * inspector/front-end/NativeMemorySnapshotView.js:
30444         (WebInspector.NativeMemorySnapshotView):
30445         (WebInspector.NativeSnapshotDataGrid):
30446         (WebInspector.NativeSnapshotNode):
30447         (WebInspector.NativeSnapshotNode.prototype.createCell):
30448         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
30449         (WebInspector.NativeSnapshotNode.prototype._populate):
30450         (WebInspector.MemoryBlockViewProperties._initialize):
30451         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
30452         * inspector/front-end/dataGrid.css:
30453         (.data-grid td):
30454         * inspector/front-end/nativeMemoryProfiler.css:
30455         (.memory-bar-chart-bar):
30456         (.native-snapshot-view):
30457         (.native-snapshot-view.visible):
30458         (.native-snapshot-view .data-grid):
30459         (.native-snapshot-view .data-grid table):
30460         (.native-snapshot-view .data-grid div.size-text):
30461         (.native-snapshot-view .data-grid div.size-bar):
30462         (.native-snapshot-view .data-grid div.percent-text):
30463
30464 2012-10-30  Zoltan Nyul  <zoltan.nyul@intel.com>
30465
30466         3d rotation with [0, 0, 0] direction vector should not be applied
30467         https://bugs.webkit.org/show_bug.cgi?id=100733
30468
30469         Reviewed by Levi Weintraub.
30470
30471         As stated in the specification (http://dev.w3.org/csswg/css3-3d-transforms/#transform-functions),
30472         a direction vector that cannot be normalized, such as [0, 0, 0], will cause the rotation to not be applied,
30473         but webkit applies it with [1, 0, 0] direction vector.
30474
30475         Test: transforms/3d/general/3dtransform-values.html
30476
30477         * platform/graphics/transforms/TransformationMatrix.cpp:
30478         (WebCore::TransformationMatrix::rotate3d):
30479
30480 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
30481
30482         Memory instrumentation: report actual object address for CachedResourceClients
30483         https://bugs.webkit.org/show_bug.cgi?id=100659
30484
30485         Reviewed by Alexander Pavlov.
30486
30487         Skipped pointers to objects that are not allocated on the heap directly.
30488
30489         To test this we need to compare addresses of objects traversed by the memory
30490         insrumentation with those allocated by the memory allocator. The latter set
30491         should include the former one.
30492
30493         * css/StyleResolver.cpp:
30494         (WTF): skip pointers to RuleData structures as they are stored by value in RuleSet
30495         objects and should not be reported separately.
30496         * loader/cache/CachedResource.cpp:
30497         (WTF): do not report memory occupied by CachedResourceClients as objects implementing
30498         the interface may have address which differ from CachedResourceClient*. The clients
30499         should be reachable from their instrumented owners where we know exact type of the
30500         clients and hence can figure correct address.
30501
30502 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org>
30503
30504         [Refatoring] Remove ElementShadow::insertionPointFor
30505         https://bugs.webkit.org/show_bug.cgi?id=100625
30506
30507         Reviewed by Hajime Morita.
30508
30509         Now that ElementShadow::insertionPointFor does not do any special things, and it's only used in
30510         ComposedShadowTreeWalker. So we can remove it.
30511
30512         No new tests, simple refactoring.
30513
30514         * dom/ComposedShadowTreeWalker.cpp:
30515         (WebCore::resolveReprojection):
30516         (WebCore::AncestorChainWalker::parent):
30517         * dom/ElementShadow.cpp:
30518         * dom/ElementShadow.h:
30519         (ElementShadow):
30520         * dom/ShadowRoot.h: ShadowRoot has insertionPointFor declaration, but we don't have any implementation.
30521         We should remove it.
30522
30523 2012-10-29  Andy Estes  <aestes@apple.com>
30524
30525         Fix a typo that caused SVG external resources to be blocked on
30526         platforms other than Chromium.
30527
30528         * loader/cache/CachedResourceLoader.cpp:
30529         (WebCore::CachedResourceLoader::canRequest):
30530
30531 2012-10-29  Keishi Hattori  <keishi@webkit.org>
30532
30533         NSLocale leaks in LocaleMac
30534         https://bugs.webkit.org/show_bug.cgi?id=97628
30535
30536         Reviewed by Kent Tamura.
30537
30538         We need to adopt the NSLocale object so it doesn't leak and
30539         determineLocale() should return a NSLocale without additional retain.
30540
30541         No new tests.
30542
30543         * platform/text/mac/LocaleMac.mm:
30544         (WebCore::determineLocale): Returns a RetainPtr<NSLocale>.
30545         (WebCore::Locale::create):
30546         (WebCore::LocaleMac::LocaleMac): m_locale should adopt the NSLocale object.
30547         (WebCore::LocaleMac::create): LocaleMac constructor takes NSLocale without additional retain.
30548
30549 2012-10-29  Charles Wei  <charles.wei@torchmobile.com.cn>
30550
30551         [BlackBerry] Disable redirect to data scheme for potential fishing.
30552         https://bugs.webkit.org/show_bug.cgi?id=100713
30553
30554         Reviewed by George Staikos.
30555
30556         We will disable redirect to data scheme to avoid potential security concern, 
30557         described in klevjers.com/papers/phishing.pdf.
30558
30559
30560         * platform/network/blackberry/NetworkJob.cpp:
30561         (WebCore::NetworkJob::handleRedirect):
30562
30563 2012-10-29  Vincent Scheib  <scheib@chromium.org>
30564
30565         Unreviewed, rolling out r132845.
30566         http://trac.webkit.org/changeset/132845
30567         https://bugs.webkit.org/show_bug.cgi?id=99975
30568
30569         Broke chromium builds, linker errors from
30570         IDBBindingUtilitiesTest
30571
30572         * Modules/indexeddb/IDBRequest.cpp:
30573         (WebCore::IDBRequest::IDBRequest):
30574         (WebCore::IDBRequest::onSuccess):
30575         (WebCore::IDBRequest::dispatchEvent):
30576         * Modules/indexeddb/IDBRequest.h:
30577         (IDBRequest):
30578         * bindings/v8/IDBBindingUtilities.cpp:
30579         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30580         (WebCore):
30581         (WebCore::deserializeIDBValue):
30582         (WebCore::injectIDBKeyIntoScriptValue):
30583         (WebCore::idbKeyToScriptValue):
30584         * bindings/v8/V8PerIsolateData.cpp:
30585         (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
30586         (WebCore):
30587         * bindings/v8/V8PerIsolateData.h:
30588         (V8PerIsolateData):
30589
30590 2012-10-29  Anders Carlsson  <andersca@apple.com>
30591
30592         Fix Windows build.
30593
30594         * platform/network/cf/ResourceRequestCFNet.cpp:
30595         (WebCore::setHeaderFields):
30596
30597 2012-10-28  Mark Rowe  <mrowe@apple.com>
30598
30599         Simplify Xcode configuration settings that used to vary between OS versions.
30600
30601         Reviewed by Dan Bernstein.
30602
30603         * Configurations/Base.xcconfig:
30604         * Configurations/DebugRelease.xcconfig:
30605         * Configurations/WebCore.xcconfig:
30606
30607 2012-10-28  Mark Rowe  <mrowe@apple.com>
30608
30609         Remove references to unsupported OS and Xcode versions.
30610
30611         Reviewed by Anders Carlsson.
30612
30613         * Configurations/Base.xcconfig:
30614         * Configurations/CompilerVersion.xcconfig: Removed.
30615         * Configurations/DebugRelease.xcconfig:
30616         * Configurations/Version.xcconfig:
30617         * Configurations/WebCore.xcconfig:
30618         * DerivedSources.make:
30619         * WebCore.xcodeproj/project.pbxproj:
30620
30621 2012-10-29  Anders Carlsson  <andersca@apple.com>
30622
30623         AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
30624         https://bugs.webkit.org/show_bug.cgi?id=100701
30625
30626         Reviewed by Dan Bernstein.
30627
30628         * WebCore.exp.in:
30629         Export AtomicString::add(CFStringRef).
30630
30631         * Target.pri:
30632         * WebCore.gypi:
30633         * WebCore.vcproj/WebCore.vcproj:
30634         * WebCore.xcodeproj/project.pbxproj:
30635         Add AtomicStringCF.cpp 
30636
30637         * platform/text/cf/AtomicStringCF.cpp: Added.
30638         (WTF::AtomicString::add):
30639         When trying to add the atomic string to the table, first try to get a Latin-1 pointer
30640         from the string. Second, try to get a Unicode pointer from the string.
30641         If that also fails, copy the string to a temporary unicode buffer and add it from there.
30642
30643         * platform/text/cf/HyphenationCF.cpp:
30644         (WebCore::::createValueForKey):
30645         Update for AtomicString::createCFString being removed.
30646
30647 2012-10-25  Stephen Chenney  <schenney@chromium.org>
30648
30649         feImage should not be allowed to self reference
30650         https://bugs.webkit.org/show_bug.cgi?id=94652
30651
30652         Reviewed by Eric Seidel.
30653
30654         Add cycle detection for SVG filter application, and also fix a problem
30655         with graphics context restore when filters are applied. This also
30656         converts the flags in FilterData to a state tracking system, as the
30657         number of flags was getting messy and only one flag is valid at any given time.
30658
30659         Test: svg/filters/feImage-self-and-other-referencing.html
30660
30661         * rendering/svg/RenderSVGResourceFilter.cpp: Convert to new FilterData
30662         state management and enable cycle detection.
30663         (WebCore):
30664         (WebCore::RenderSVGResourceFilter::removeClientFromCache): Change isBuilt and markedForRemoval flags to state enums.
30665         (WebCore::RenderSVGResourceFilter::applyResource): Change flags to state enums and detect cycles.
30666         (WebCore::RenderSVGResourceFilter::postApplyResource): Change flags to state and add handling
30667         for the various states.
30668         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Change isBuilt flag to state enums.
30669         * rendering/svg/RenderSVGResourceFilter.h:
30670         (WebCore::FilterData::FilterData):
30671         (FilterData): Convert to a state tracking system.
30672         * rendering/svg/RenderSVGRoot.cpp:
30673         (WebCore::RenderSVGRoot::paintReplaced): Add a block around the
30674         SVGRenderingContext so that it applies the filter and reverts the
30675         context before the calling method restores the context.
30676
30677 2012-10-29  Dan Bernstein  <mitz@apple.com>
30678
30679         <rdar://problem/12592716> REGRESSION (r132545): With full-page accelerated drawing, a
30680         reproducible hang occurs at <http://www.cbsnews.com/stories/2010/01/24/ftn/main6136386.shtml>.
30681
30682         Reviewed by Anders Carlsson.
30683
30684         Work around <rdar://problem/12584492> by limiting the scope of the fix for <http://webkit.org/b/100413>.
30685
30686         * platform/graphics/cg/GraphicsContextCG.cpp:
30687         (WebCore::GraphicsContext::clipOut): Reverted to using CGContextGetClipBoundingBox() rather
30688         than CGRectInfinite when the context is accelerated and has a transform that is not just
30689         a translation or a scale.
30690
30691 2012-10-29  Rob Buis  <rbuis@rim.com>
30692
30693         [BlackBerry] Simplify AuthenticationChallengeManager::instance
30694         https://bugs.webkit.org/show_bug.cgi?id=100614
30695
30696         Reviewed by Yong Li.
30697         Internally reviewed by Lyon Chen.
30698
30699         Use a standard Singleton pattern here, this makes sure we create lazily.
30700
30701         * platform/blackberry/AuthenticationChallengeManager.cpp:
30702         (WebCore):
30703         * platform/blackberry/AuthenticationChallengeManager.h:
30704         (AuthenticationChallengeManager):
30705
30706 2012-10-29  Adam Barth  <abarth@webkit.org>
30707
30708         Block SVG external references pending a security review
30709         https://bugs.webkit.org/show_bug.cgi?id=100635
30710
30711         Reviewed by Eric Seidel.
30712
30713         We need to do a security review of loading external SVG references
30714         before we're sure that it is safe.
30715
30716         * css/StyleResolver.cpp:
30717         (WebCore::StyleResolver::createFilterOperations):
30718         * loader/cache/CachedResourceLoader.cpp:
30719         (WebCore::CachedResourceLoader::canRequest):
30720
30721 2012-10-29  Joshua Bell  <jsbell@chromium.org>
30722
30723         IndexedDB: Crash on checking version of corrupt backing store
30724         https://bugs.webkit.org/show_bug.cgi?id=100692
30725
30726         Reviewed by Tony Chang.
30727
30728         If the backing store fails to open (due to corruption, non-writeable disk, etc)
30729         the subsequent schema version check dereferences a null pointer. Fix to only
30730         do the schema check if the database opened.
30731
30732         Chromium tests will be included with crrev.com/11196029
30733
30734         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
30735         (WebCore::IDBLevelDBBackingStore::open):
30736
30737 2012-10-29  Philip Rogers  <pdr@google.com>
30738
30739         Let SVGElements have pending resources.
30740         https://bugs.webkit.org/show_bug.cgi?id=99694
30741
30742         Reviewed by Eric Seidel.
30743
30744         Our SVG pending resource tracking is used for handling dynamic id changes. For example,
30745         if an SVG element references an id that is not yet in the document (or has been removed),
30746         the SVG element will be 'pending' an id. When styled elements are inserted into
30747         the document, buildPendingResourcesIfNeeded() is called to force any pending elements
30748         to resolve their dependencies. Only SVGStyledElement targets can be referenced using
30749         this infrastructure, and that is not changed with this patch.
30750
30751         Previously, only SVGStyledElements could have pending resources. Some examples of where
30752         this is violated are SVGAnimateElement and SVGMPathElement which are not a styled elements
30753         but which can have pending references (they can reference styled elements and
30754         paths, respectively). This patch changes the pending resource handling to allow
30755         any SVGElement to have pending resources.
30756
30757         This patch is only a refactoring of code in preparation for WK99694 and does not
30758         affect existing functionality or tests.
30759
30760         * svg/SVGDocumentExtensions.cpp:
30761         (WebCore::SVGDocumentExtensions::addPendingResource):
30762         (WebCore::SVGDocumentExtensions::isElementPendingResources):
30763         (WebCore::SVGDocumentExtensions::isElementPendingResource):
30764         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
30765         (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
30766         * svg/SVGDocumentExtensions.h:
30767         (WebCore):
30768         (SVGDocumentExtensions):
30769         * svg/SVGElement.cpp:
30770         (WebCore::SVGElement::~SVGElement):
30771         (WebCore::SVGElement::removedFrom):
30772         (WebCore::SVGElement::hasPendingResources):
30773         (WebCore):
30774         (WebCore::SVGElement::setHasPendingResources):
30775         (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
30776         * svg/SVGElement.h:
30777         (SVGElement):
30778         (WebCore::SVGElement::buildPendingResource):
30779         * svg/SVGStyledElement.cpp:
30780         (WebCore):
30781         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
30782         (WebCore::SVGStyledElement::removedFrom):
30783         * svg/SVGStyledElement.h:
30784         (SVGStyledElement):
30785         (WebCore::SVGStyledElement::selfHasRelativeLengths):
30786
30787 2012-10-29  Dan Carney  <dcarney@google.com>
30788
30789         Remove ensureAuxiliaryContext
30790         https://bugs.webkit.org/show_bug.cgi?id=99975
30791
30792         Reviewed by Adam Barth.
30793
30794         Removed auxilliaryContext as use if it is problematic in IDB.
30795
30796         No new tests. No change in functionality.
30797
30798         * Modules/indexeddb/IDBCursor.cpp:
30799         (WebCore::IDBCursor::update):
30800         (WebCore::IDBCursor::setValueReady):
30801         * Modules/indexeddb/IDBCursor.h:
30802         (IDBCursor):
30803         * Modules/indexeddb/IDBObjectStore.cpp:
30804         (WebCore::generateIndexKeysForValue):
30805         (WebCore::IDBObjectStore::put):
30806         (WebCore):
30807         * Modules/indexeddb/IDBRequest.cpp:
30808         (WebCore::IDBRequest::onSuccess):
30809         (WebCore::IDBRequest::dispatchEvent):
30810         * bindings/v8/IDBBindingUtilities.cpp:
30811         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30812         (WebCore::deserializeIDBValue):
30813         (WebCore::injectIDBKeyIntoScriptValue):
30814         * bindings/v8/IDBBindingUtilities.h:
30815         (WebCore):
30816         * bindings/v8/V8Binding.cpp:
30817         (WebCore::toV8Context):
30818         (WebCore):
30819         * bindings/v8/V8Binding.h:
30820         (WebCore):
30821         * bindings/v8/V8PerIsolateData.cpp:
30822         (WebCore):
30823         * bindings/v8/V8PerIsolateData.h:
30824
30825 2012-10-29  Alpha Lam  <hclam@chromium.org>
30826
30827         [skia] Handle mask box image.
30828         https://bugs.webkit.org/show_bug.cgi?id=100570
30829
30830         Reviewed by James Robinson.
30831
30832         When drawing an image with source rectangle it should intersect with image rectangle.
30833         This should be the case for drawing single image and tiling an image.
30834
30835         Test: fast/images/mask-box-image-crash.html
30836
30837         * platform/graphics/skia/ImageSkia.cpp:
30838         (WebCore::Image::drawPattern):
30839         (WebCore::BitmapImage::draw):
30840         (WebCore::BitmapImageSingleFrameSkia::draw):
30841
30842 2012-10-29  Eric Carlson  <eric.carlson@apple.com>
30843
30844         Support captions when PLUGIN_PROXY_FOR_VIDEO
30845         https://bugs.webkit.org/show_bug.cgi?id=100690
30846
30847         Reviewed by Simon Fraser.
30848
30849         When built with PLUGIN_PROXY_FOR_VIDEO, WebCore uses a plug-in for the media element's
30850         platform media engine. Update this code path so the shadow DOM elements used to display
30851         text tracks are created and configured correctly.
30852
30853         * html/HTMLMediaElement.cpp:
30854         (WebCore::HTMLMediaElement::configureMediaControls): Create media controls if necessary.
30855
30856         * rendering/RenderEmbeddedObject.cpp:
30857         (WebCore::RenderEmbeddedObject::layout): Set the position and size of the shadow DOM when the
30858             position of the embedded element changes.
30859         * rendering/RenderEmbeddedObject.h:
30860
30861 2012-10-29  Justin Novosad  <junov@google.com>
30862
30863         [Chromium] flickering observed when copying 2D canvas to webGL texture
30864         https://bugs.webkit.org/show_bug.cgi?id=100691
30865
30866         Reviewed by Stephen White.
30867
30868         Added a flush to the webgl context after texture upload from an image
30869         buffer to ensure proper graphics context synchronization with respect
30870         to subsequent changes to the source image.
30871
30872         Tests: fast/canvas/webgl/canvas-2d-webgl-texture.html
30873
30874         * platform/graphics/skia/ImageBufferSkia.cpp:
30875         (WebCore::ImageBuffer::copyToPlatformTexture):
30876
30877 2012-10-29  Glenn Adams  <glenn@skynav.com>
30878
30879         [CSSOM] Extraneous whitespace in CSSImportRule.cssText
30880         https://bugs.webkit.org/show_bug.cgi?id=100657
30881
30882         Reviewed by Simon Fraser.
30883
30884         Remove extraneous whitespace when serializing CSSImportRule.cssText when
30885         media list is empty.
30886
30887         Test: cssom/cssimportrule-media.html
30888
30889         * css/CSSImportRule.cpp:
30890         (WebCore::CSSImportRule::cssText):
30891         Don't append extra whitespace if mediaText is empty.
30892
30893 2012-10-29  Arnaud Renevier  <a.renevier@sisa.samsung.com>
30894
30895         webview not redrawn as needed when accelerated compositing is enabled.
30896         https://bugs.webkit.org/show_bug.cgi?id=99109
30897
30898         Reviewed by Martin Robinson.
30899
30900         GL shared display is not in the gtk loop and therefore, its events are
30901         not captured by gtk. So, we use gdk default instead.
30902
30903         No new tests, covered by existing tests.
30904
30905         * platform/gtk/RedirectedXCompositeWindow.cpp:
30906         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
30907         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
30908         (WebCore::RedirectedXCompositeWindow::resize):
30909
30910 2012-10-29  Pavel Feldman  <pfeldman@chromium.org>
30911
30912         Web Inspector: bind redo to Ctrl+Y on non-mac platforms
30913         https://bugs.webkit.org/show_bug.cgi?id=100685
30914
30915         Reviewed by Vsevolod Vlasov.
30916
30917         * inspector/front-end/DefaultTextEditor.js:
30918         (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
30919
30920 2012-10-29  Enrica Casucci  <enrica@apple.com>
30921
30922         Add ENABLE_USERSELECT_ALL feature flag.
30923         https://bugs.webkit.org/show_bug.cgi?id=100559
30924
30925         Reviewed by Eric Seidel.
30926
30927         * Configurations/FeatureDefines.xcconfig:
30928
30929 2012-10-29  Alexandru Chiculita  <achicu@adobe.com>
30930
30931         [CSS Shaders] Extract the CustomFilterParameterList to its own file
30932         https://bugs.webkit.org/show_bug.cgi?id=100548
30933
30934         Reviewed by Dean Jackson.
30935
30936         Moved all the CustomFilterParameterList related methods to their own file.
30937         Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
30938         so that we can add a different operator== and a blend method to it.
30939
30940         No new tests, just refactoring existing code.
30941
30942         * CMakeLists.txt:
30943         * GNUmakefile.list.am:
30944         * Target.pri:
30945         * WebCore.gypi:
30946         * WebCore.xcodeproj/project.pbxproj:
30947         * css/StyleResolver.h:
30948         * platform/graphics/filters/CustomFilterOperation.cpp:
30949         (WebCore::CustomFilterOperation::CustomFilterOperation):
30950         (WebCore::CustomFilterOperation::blend):
30951         * platform/graphics/filters/CustomFilterOperation.h:
30952         (WebCore):
30953         (WebCore::CustomFilterOperation::operator==):
30954         * platform/graphics/filters/CustomFilterParameterList.cpp: Added.
30955         (WebCore):
30956         (WebCore::CustomFilterParameterList::operator==):
30957         (WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
30958         (WebCore::CustomFilterParameterList::blend):
30959         * platform/graphics/filters/CustomFilterParameterList.h: Added.
30960         (WebCore):
30961         (CustomFilterParameterList):
30962
30963 2012-10-29  Brady Eidson  <beidson@apple.com>
30964
30965         Try to fix 32-bit builds after my incompletely tested m_identifier change.
30966
30967         Not reviewed.
30968
30969         * loader/ResourceLoader.h:
30970         (WebCore::ResourceLoader::identifier): Revert my "unsigned long" -> "uint64_t" change in two places.
30971
30972 2012-10-29  Csaba Osztrogonác  <ossy@webkit.org>
30973
30974         [Qt] Text with zero font size renders as X px sometimes, causing fast/text/zero-font-size-2.html to fail
30975         https://bugs.webkit.org/show_bug.cgi?id=100115
30976
30977         Reviewed by Noam Rosenthal.
30978
30979         * platform/graphics/qt/FontQt.cpp:
30980         (WebCore::Font::drawGlyphs):
30981
30982 2012-10-29  Huang Dongsung  <luxtella@company100.net>
30983
30984         [TexMap] Make GraphicsLayerAnimation choose a proper timing function.
30985         https://bugs.webkit.org/show_bug.cgi?id=100623
30986
30987         Reviewed by Noam Rosenthal.
30988
30989         Currently, GraphicsLayerAnimation chooses a timing function in the wrong
30990         way. Other GraphicsLayers choose a timing function in the similar way to
30991         GraphicsLayerCA::timingFunctionForAnimationValue(). The way consists of
30992         the following steps.
30993         1. Try to query the timing function of the current keyframe animation value.
30994         2. If the timing function of #1 is null, try to query the timing function of Animation.
30995         3. If the timing function of #2 is null, return CubicBezierTimingFunction::defaultTimingFunction().
30996
30997         This patch makes GraphicsLayerAnimation choose a timing function in the same way
30998         to other implementations.
30999
31000         Covered by existing animations tests.
31001
31002         * platform/graphics/GraphicsLayerAnimation.cpp:
31003         (WebCore::timingFunctionForAnimationValue):
31004         (WebCore::GraphicsLayerAnimation::apply):
31005
31006 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
31007
31008         Web Inspector: Toolbar overflow appears outside window
31009         https://bugs.webkit.org/show_bug.cgi?id=100663
31010
31011         Reviewed by Pavel Feldman.
31012
31013         Since the search bar was removed from the toolbar, the overflow menu appears too far
31014         to the right, and is unreadable. Fixed this by aligning it relative to the right side
31015         of the window, rather than the left.
31016
31017         * inspector/front-end/Toolbar.js:
31018         (WebInspector.ToolbarDropdown.prototype.show):
31019         * inspector/front-end/inspector.css:
31020         (#toolbar-dropdown .toolbar-label):
31021
31022 2012-10-29  Michelangelo De Simone  <michelangelo@webkit.org>
31023
31024         [CSS Shaders] Implement CustomFilterArrayParameter::blend
31025         https://bugs.webkit.org/show_bug.cgi?id=96437
31026
31027         Reviewed by Dean Jackson.
31028
31029         This patch adds the missing code to blend values within
31030         an array() when using Custom Filters.
31031
31032         Test: css3/filters/custom/custom-filter-array-blending.html
31033
31034         * platform/graphics/filters/CustomFilterArrayParameter.h:
31035         (WebCore::CustomFilterArrayParameter::blend):
31036
31037 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
31038
31039         Web Inspector: Drag and drop a URL in inspector is not working as expected
31040         https://bugs.webkit.org/show_bug.cgi?id=100527
31041
31042         Reviewed by Yury Semikhatsky.
31043
31044         Inhibit custom dragstart handling when the active element is A.
31045
31046         * inspector/front-end/ElementsTreeOutline.js:
31047         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
31048
31049 2012-10-29  Mike West  <mkwst@chromium.org>
31050
31051         Web Inspector: Error/warning count is one pixel off.
31052         https://bugs.webkit.org/show_bug.cgi?id=100660
31053
31054         Reviewed by Pavel Feldman.
31055
31056         The error/warning count div had a top padding of 6. That was one pixel
31057         too many.
31058
31059         * inspector/front-end/inspector.css:
31060         (#error-warning-count):
31061
31062 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org> 
31063
31064         [Refactoring] Use isActiveInsertionPoint() instead of isInsertionPoint()
31065         https://bugs.webkit.org/show_bug.cgi?id=100459
31066
31067         Reviewed by Hajime Morita.
31068
31069         Checking InsertionPoint and its activeness with two if-statement is error-prone. We would like to
31070         use a utility function which checks both at once.
31071
31072         We rewrite some lines with such function.
31073
31074         No new tests, simple refactoring.
31075
31076         * dom/ComposedShadowTreeWalker.cpp:
31077         (WebCore::ComposedShadowTreeWalker::traverseNode):
31078         * html/shadow/ContentDistributor.cpp:
31079         (WebCore::ContentDistributor::populate):
31080         (WebCore::ContentDistributor::distribute):
31081         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31082         * html/shadow/InsertionPoint.h:
31083         (WebCore::isInsertionPoint): Since our convention is the argument of this kind of function should not be null,
31084         we would like to make it similar to the other functions.
31085         (WebCore::toInsertionPoint):
31086         (WebCore::isLowerEncapsulationBoundary):
31087
31088 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
31089
31090         Web Inspector: Fix vertical alignment in toolbar backgrounds and overflow button.
31091         https://bugs.webkit.org/show_bug.cgi?id=100373
31092
31093         Reviewed by Pavel Feldman.
31094
31095         Fix the background image for the selected toolbar item to be vertically centered.
31096         Make close button and toolbar overflow button vertically centered for any toolbar
31097         height.
31098
31099         * inspector/front-end/Toolbar.js: Remove unused variable.
31100         * inspector/front-end/inspector.css:
31101         (.toolbar-item.toggleable):
31102         (body.compact .toolbar-item.toggleable):
31103         (.toolbar-item.toggleable.toggled-on):
31104         (body.compact .toolbar-label):
31105         (#toolbar-dropdown-arrow):
31106         (#close-button-left, #close-button-right):
31107         (.toolbar-item.close-left):
31108         * inspector/front-end/inspector.html:
31109
31110 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31111
31112         Web Inspector: Timeline: Overview bars do not correspond to timeline bars
31113         https://bugs.webkit.org/show_bug.cgi?id=100500
31114
31115         Reviewed by Yury Semikhatsky.
31116
31117         Fix: do not shorten bars by nested records of the same category.
31118
31119         * inspector/front-end/TimelineOverviewPane.js: Check added.
31120
31121 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31122
31123         Web Inspector: Timeline: make cpu-monitoring feature available only on capable browsers
31124         https://bugs.webkit.org/show_bug.cgi?id=100530
31125
31126         Reviewed by Yury Semikhatsky.
31127
31128         Motivation: cpu-monitoring feature looks like a glitch,
31129         when it is not supported by browser.
31130
31131         * inspector/Inspector.json: Added capability getter to protocol.
31132         * inspector/InspectorClient.h: Added capability getter.
31133         * inspector/InspectorTimelineAgent.cpp: Proxy to request to client.
31134         * inspector/InspectorTimelineAgent.h: Added capability getter.
31135         * inspector/front-end/Settings.js: Added capability field.
31136         * inspector/front-end/TimelinePanel.js: Check capability.
31137         * inspector/front-end/inspector.js: Forward capability value.
31138
31139 2012-10-29  Antti Koivisto  <antti@apple.com>
31140
31141         Move seamless stylesheet collecting to DocumentStyleSheetCollection
31142         https://bugs.webkit.org/show_bug.cgi?id=100655
31143
31144         Reviewed by Andreas Kling.
31145
31146         Move the code from StyleResolver to DocumentStyleSheetCollection. StyleResolver should focus on resolving style.
31147
31148         * css/StyleResolver.cpp:
31149         (WebCore::StyleResolver::StyleResolver):
31150         
31151             Use standard create() pattern.
31152
31153         (WebCore):
31154         * css/StyleResolver.h:
31155         (StyleResolver):
31156         * dom/Document.cpp:
31157         (WebCore::Document::Document):
31158         * dom/DocumentStyleSheetCollection.cpp:
31159         (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
31160         
31161             Since parent activeAuthorStyleSheets() contains all seamlessly inherited sheets too, this does not need to
31162             iterate to ancestors anymore.
31163
31164         (WebCore):
31165         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
31166         * dom/DocumentStyleSheetCollection.h:
31167         (WebCore::DocumentStyleSheetCollection::create):
31168         (DocumentStyleSheetCollection):
31169         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
31170         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
31171         
31172             activeAuthorStyleSheets() now includes the stylesheets inherited from the seamless parent too.
31173
31174         (WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):
31175
31176 2012-10-29  Andreas Kling  <kling@webkit.org>
31177
31178         Don't expose implementation details of StylePropertySet storage.
31179         <http://webkit.org/b/100644>
31180
31181         Reviewed by Antti Koivisto.
31182
31183         Add a StylePropertySet::PropertyReference class, now returned by propertyAt(index).
31184         This will allow us to refactor the internal storage of StylePropertySet without
31185         breaking its API.
31186
31187         A PropertyReference is a simple inlinable wrapper around a StylePropertySet&/index pair.
31188
31189         * css/CSSComputedStyleDeclaration.cpp:
31190         * css/CSSParser.cpp:
31191         * css/CSSParser.h:
31192         * css/SVGCSSParser.cpp:
31193         * css/StylePropertySet.cpp:
31194         (WebCore::StylePropertySet::asText):
31195         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
31196         (WebCore::StylePropertySet::findPropertyWithId):
31197         (WebCore::StylePropertySet::reportMemoryUsage):
31198         * css/StylePropertySet.h:
31199         (StylePropertySet):
31200         (PropertyReference):
31201         (WebCore::StylePropertySet::PropertyReference::PropertyReference):
31202         (WebCore::StylePropertySet::PropertyReference::id):
31203         (WebCore::StylePropertySet::PropertyReference::isImportant):
31204         (WebCore::StylePropertySet::PropertyReference::isInherited):
31205         (WebCore::StylePropertySet::PropertyReference::cssName):
31206         (WebCore::StylePropertySet::PropertyReference::cssText):
31207         (WebCore::StylePropertySet::PropertyReference::value):
31208         (WebCore::StylePropertySet::PropertyReference::propertyInternal):
31209         (WebCore::StylePropertySet::propertyAt):
31210         (WebCore::StylePropertySet::propertyAtInternal):
31211         (WebCore):
31212         * css/StyleResolver.cpp:
31213         (WebCore::attributeStylesEqual):
31214         (WebCore::StyleResolver::applyProperties):
31215         (WebCore::StyleResolver::resolveVariables):
31216         * editing/ApplyStyleCommand.cpp:
31217         * editing/EditingStyle.cpp:
31218         (WebCore::EditingStyle::mergeStyle):
31219         (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
31220         * editing/Editor.cpp:
31221         * editing/markup.cpp:
31222         * page/Frame.cpp:
31223         * svg/SVGFontFaceElement.cpp:
31224
31225 2012-10-29  Kent Tamura  <tkent@chromium.org>
31226
31227         Move LocaleWin.{cpp,h} to platform/text/win/
31228         https://bugs.webkit.org/show_bug.cgi?id=100641
31229
31230         Reviewed by Kentaro Hara.
31231
31232         We have platform/text/win/ directory. Windows-specific files should be
31233         in it.
31234         Note that these files are used only in Chromium-win for now.
31235
31236         No new tests. This doesn't change any behavior.
31237
31238         * WebCore.gyp/WebCore.gyp: Fix path names.
31239         * WebCore.gypi: Ditto.
31240         * platform/text/win/LocaleWin.cpp: Renamed from Source/WebCore/platform/text/LocaleWin.cpp.
31241         * platform/text/win/LocaleWin.h: Renamed from Source/WebCore/platform/text/LocaleWin.h.
31242
31243 2012-10-29  Kent Tamura  <tkent@chromium.org>
31244
31245         Rename Localizer to Locale
31246         https://bugs.webkit.org/show_bug.cgi?id=100634
31247
31248         Reviewed by Kentaro Hara.
31249
31250         - Rename Localizer class to Locale
31251         - Rename localizer with locale in variable names
31252         - Rename localizer with locale in function names
31253
31254         No new tests. This doesn't make any behavior changes.
31255
31256         * dom/Document.h:
31257         (WebCore): Declare Locale instead of Localizer.
31258         (Document):
31259         - Rename getCachedLocalizer to getCachedLocale.
31260         - Rename LocaleToLocalizerMap to LocaleIdentifierToLocaleMap.
31261         - Rename m_localizerCache to m_localeCache.
31262         * dom/Document.cpp:
31263         (WebCore::Document::getCachedLocale): Follow renamings.
31264         * dom/Element.h:
31265         (WebCore): Declare Locale instead of Localizer.
31266         (Element): Rename localizer() to locale().
31267         * dom/Element.cpp:
31268         (WebCore::Element::locale): Follow renamings.
31269
31270         * html/BaseDateAndTimeInputType.cpp:
31271         (WebCore::BaseDateAndTimeInputType::localizeValue): Ditto.
31272         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): Ditto.
31273         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
31274         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Ditto.
31275         * html/DateInputType.cpp:
31276         (WebCore::DateInputType::fixedPlaceholder): Ditto.
31277         (WebCore::DateInputType::setupLayoutParameters): Ditto.
31278         * html/DateTimeInputType.cpp:
31279         (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
31280         * html/DateTimeLocalInputType.cpp:
31281         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
31282         * html/MonthInputType.cpp:
31283         (WebCore::MonthInputType::setupLayoutParameters): Ditto.
31284         * html/NumberInputType.cpp:
31285         (WebCore::NumberInputType::localizeValue): Ditto.
31286         (WebCore::NumberInputType::convertFromVisibleValue): Ditto.
31287         * html/TimeInputType.cpp:
31288         (WebCore::TimeInputType::localizeValue): Ditto.
31289         (WebCore::TimeInputType::setupLayoutParameters): Ditto.
31290
31291         * html/shadow/DateTimeEditElement.h:
31292         (WebCore): Declare Locale instead of Localizer.
31293         (LayoutParameters): Rename localizer data member to locale.
31294         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Follow renamings.
31295         * html/shadow/DateTimeEditElement.cpp:
31296         (WebCore::DateTimeEditBuilder::visitField): Ditto.
31297         * html/shadow/DateTimeNumericFieldElement.h:
31298         (DateTimeNumericFieldElement): Rename localizerForOwner to localeForOwner.
31299         * html/shadow/DateTimeNumericFieldElement.cpp:
31300         (WebCore::DateTimeNumericFieldElement::formatValue): Follow renamings.
31301         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Ditto.
31302         (WebCore::DateTimeNumericFieldElement::localeForOwner): Ditto.
31303         * page/PagePopupClient.h:
31304         (WebCore): Declare Locale instead of Localizer.
31305         (PagePopupClient): Rename localizer member function to locale.
31306         * page/PagePopupController.cpp:
31307         (WebCore::PagePopupController::localizeNumberString): Follow renamings.
31308
31309         * platform/text/PlatformLocale.cpp: Rename the Localizer class to Locale.
31310         (DateTimeStringBuilder):
31311         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder):
31312         (WebCore::Locale::~Locale):
31313         (WebCore::Locale::setLocaleData): Renamed from setLocalizerData.
31314         (WebCore::Locale::convertToLocalizedNumber):
31315         (WebCore::Locale::detectSignAndGetDigitRange):
31316         (WebCore::Locale::matchedDecimalSymbolIndex):
31317         (WebCore::Locale::convertFromLocalizedNumber):
31318         (WebCore::Locale::localizedDecimalSeparator):
31319         (WebCore::Locale::dateTimeFormatWithSeconds):
31320         (WebCore::Locale::dateTimeFormatWithoutSeconds):
31321         (WebCore::Locale::formatDateTime):
31322         * platform/text/PlatformLocale.h: Update the ifndef macro.
31323         (Locale): Renamed from Localizer. Also, renamed the followings:
31324          - initializeLocalizerData -> initializeLocaleData
31325          - setLocalizerData -> setLocaleData
31326          - m_hasLocalizerData -> m_hasLocaleData
31327         (WebCore::Locale::Locale):
31328         (WebCore::Locale::createDefault):
31329         * platform/text/LocaleICU.cpp: Follow renamings.
31330         * platform/text/LocaleICU.h: Ditto.
31331         * platform/text/LocaleNone.cpp: Ditto.
31332         * platform/text/LocaleWin.cpp: Ditto.
31333         * platform/text/LocaleWin.h: Ditto.
31334         * platform/text/mac/LocaleMac.h: Ditto.
31335         * platform/text/mac/LocaleMac.mm: Ditto.
31336
31337 2012-10-29  Mike West  <mkwst@chromium.org>
31338
31339         Web Inspector: Error messages lines in console are 1px taller than regular messages
31340         https://bugs.webkit.org/show_bug.cgi?id=100521
31341
31342         Reviewed by Pavel Feldman.
31343
31344         The inspector is adding a 1px bottom border to list elements inside
31345         a disclosure list. This is unnecessary in the current layout; it's
31346         causing console messages with stack traces to be one pixel taller than
31347         other console messages, which this patch fixes.
31348
31349         As a drive-by, this patch also adjusts the disclosure triangle's
31350         position to match.
31351
31352         * inspector/front-end/inspector.css:
31353         (.outline-disclosure li):
31354         (.outline-disclosure li.parent::before):
31355
31356 2012-10-29  Mike West  <mkwst@chromium.org>
31357
31358         Web Inspector: The bubble for repeated errors is misplaced.
31359         https://bugs.webkit.org/show_bug.cgi?id=100525
31360
31361         Reviewed by Pavel Feldman.
31362
31363         The repeated-message bubble is displayed as an inline-block element,
31364         which works well as long as no stack trace is present. If present, the
31365         message is wrapped in an 'ol' element displayed as a block, which pushes
31366         itself down to the next line.
31367
31368         To avoid that issue, this patch switches the wrapper element to flexbox,
31369         glorious flexbox.
31370
31371         * inspector/front-end/inspector.css:
31372         (.console-message .bubble):
31373         (.repeated-message .outline-disclosure):
31374         (.filter-all .console-log-level.repeated-message, .filter-logs .console-log-level.repeated-message):
31375
31376 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
31377
31378         Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
31379         https://bugs.webkit.org/show_bug.cgi?id=100119
31380
31381         Reviewed by Vsevolod Vlasov.
31382
31383         Test: inspector/styles/inactive-properties.html
31384
31385         * inspector/front-end/StylesSidebarPane.js:
31386         (WebInspector.StylesSidebarPane.createExclamationMark):
31387         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
31388         * inspector/front-end/elementsPanel.css:
31389         (.styles-section.computed-style .properties li.not-parsed-ok):
31390         (.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
31391         (.styles-section .properties .not-parsed-ok):
31392
31393 2012-10-29  Eric Seidel  <eric@webkit.org>
31394
31395         Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
31396         https://bugs.webkit.org/show_bug.cgi?id=100630
31397
31398         Reviewed by Ojan Vafai.
31399
31400         This is not a complete fix.  Our rendering of this large tables still takes 7.8 seconds
31401         on my retina MBP (down from 14.3s before this change).
31402         It's very expensive to walk the DOM each time we call RenderTable::colElement
31403         so this caches the RenderTableCol* in a vector for easier walking.
31404         We invalidate the cache any time a RenderTableCol is added or removed from the
31405         rendering sub-tree to avoid holding a bad pointer.
31406
31407         * rendering/RenderTable.cpp:
31408         (WebCore::RenderTable::RenderTable):
31409         (WebCore::RenderTable::invalidateCachedColumns):
31410         (WebCore):
31411         (WebCore::RenderTable::addColumn):
31412         (WebCore::RenderTable::removeColumn):
31413         (WebCore::RenderTable::updateColumnCache):
31414         (WebCore::RenderTable::slowColElement):
31415         * rendering/RenderTable.h:
31416         (RenderTable):
31417         * rendering/RenderTableCol.cpp:
31418         (WebCore::RenderTableCol::insertedIntoTree):
31419         (WebCore):
31420         (WebCore::RenderTableCol::willBeRemovedFromTree):
31421         * rendering/RenderTableCol.h:
31422
31423 2012-10-28  Kent Tamura  <tkent@chromium.org>
31424
31425         Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
31426         https://bugs.webkit.org/show_bug.cgi?id=100627
31427
31428         Reviewed by Yuta Kitamura.
31429
31430         We'd like to rename Localizer class to Locale class. However we use
31431         PlatformLocale.cpp and PlatformLocale.h as their file names because
31432         <locale.h> exists in the C standard.  In this patch, we rename only file
31433         names. We're going to rename the class name later.
31434
31435         No new tests. This doesn't make any behavior change.
31436
31437         * platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
31438         * platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
31439         Follow the Localizer.h -> PlatformLocale.cpp renaming.
31440
31441         * CMakeLists.txt: Follow the file name renaming.
31442         * GNUmakefile.list.am: Ditto.
31443         * Target.pri: Ditto.
31444         * WebCore.gypi: Ditto.
31445         * WebCore.vcproj/WebCore.vcproj: Ditto.
31446         * WebCore.xcodeproj/project.pbxproj: Ditto.
31447         * dom/Document.cpp: Ditto.
31448         * html/BaseDateAndTimeInputType.cpp: Ditto.
31449         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
31450         * html/DateInputType.cpp: Ditto.
31451         * html/DateTimeInputType.cpp: Ditto.
31452         * html/DateTimeLocalInputType.cpp: Ditto.
31453         * html/MonthInputType.cpp: Ditto.
31454         * html/NumberInputType.cpp: Ditto.
31455         * html/TimeInputType.cpp: Ditto.
31456         * html/shadow/DateTimeEditElement.cpp: Ditto.
31457         * html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
31458         * page/PagePopupController.cpp: Ditto.
31459         * platform/text/LocaleICU.h: Ditto.
31460         * platform/text/LocaleNone.cpp: Ditto.
31461         * platform/text/LocaleWin.h: Ditto.
31462         * platform/text/mac/LocaleMac.h: Ditto.
31463
31464 2012-10-28  Shinya Kawanaka  <shinyak@chromium.org>
31465
31466         The shadow element is not reprojected to a nested ShadowRoot.
31467         https://bugs.webkit.org/show_bug.cgi?id=99228
31468
31469         Reviewed by Dimitri Glazkov.
31470
31471         We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.
31472
31473         First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
31474         And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
31475         If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
31476         the InsertionPoint in older ShadowDOM is chosen.
31477
31478         We also fix ComposedShadowTreeWalker to consider shadow reprojection.
31479
31480         Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
31481                fast/dom/shadow/shadow-reprojection-click.html
31482                fast/dom/shadow/shadow-reprojection-dynamic.html
31483                fast/dom/shadow/shadow-reprojection-fallback.html
31484                fast/dom/shadow/shadow-reprojection.html
31485                fast/dom/shadow/shadow-reprojection2.html
31486
31487         * css/StyleResolver.cpp:
31488         (WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
31489         a node is distributed. So we don't have to trace shadow insertion point anymore here.
31490         (WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
31491         we don't have any parentElement. The parent node is a ShadowRoot in that case.
31492         * dom/ComposedShadowTreeWalker.cpp:
31493         (WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
31494         (WebCore):
31495         (WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
31496         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
31497         (WebCore::ComposedShadowTreeWalker::traverseParent):
31498         (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
31499         to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
31500         (WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
31501         In that case, we should not update m_distributedNode.
31502         * dom/ElementShadow.cpp:
31503         (WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
31504         we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
31505         is not correct now due to shadow reprojection.
31506         * html/shadow/ContentDistributor.cpp:
31507         (WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
31508         distributed nodes.
31509         (WebCore):
31510         (WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
31511         we have to resolve a shadow InsertionPoint
31512         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31513         * html/shadow/ContentDistributor.h:
31514         (ContentDistributor):
31515         * html/shadow/HTMLShadowElement.h:
31516         (WebCore::toHTMLShadowElement):
31517         (WebCore):
31518         * html/shadow/InsertionPoint.h:
31519         (WebCore::parentNodeForDistribution):
31520         (WebCore::parentElementForDistribution):
31521         (WebCore):
31522
31523 2012-10-28  Kunihiko Sakamoto  <ksakamoto@chromium.org>
31524
31525         Webkit adds a boundary to the Content-Type: text/plain POST header
31526         https://bugs.webkit.org/show_bug.cgi?id=100445
31527
31528         Reviewed by Kent Tamura.
31529
31530         Fixed a bug where an empty boundary parameter was added to Content-Type
31531         header when POSTing forms with enctype=text/plain.
31532
31533         Test: http/tests/misc/form-post-textplain.html
31534
31535         * loader/FormSubmission.cpp:
31536         (WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
31537         Content-Type only when a boundary string is generated.
31538
31539 2012-10-28  Philip Rogers  <pdr@google.com>
31540
31541         Cache calcMode() value for SVG animations.
31542         https://bugs.webkit.org/show_bug.cgi?id=99694
31543
31544         Reviewed by Eric Seidel.
31545
31546         This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
31547         of recalculating its value on every call. On a simple test of 100 rectangles with 100
31548         animations each, calls to calcMode() account for 3% of the total animation. After this
31549         patch, calcMode() no longer appears in animation profiles at all.
31550
31551         No new tests as this functionality is covered by existing tests.
31552
31553         * svg/SVGAnimateMotionElement.cpp:
31554         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
31555
31556             The default calcMode for all animation types is linear except AnimateMotion,
31557             which defaults to CalcModePaced.
31558             See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute
31559
31560         * svg/SVGAnimationElement.cpp:
31561         (WebCore::SVGAnimationElement::SVGAnimationElement):
31562         (WebCore::SVGAnimationElement::isSupportedAttribute):
31563         (WebCore::SVGAnimationElement::parseAttribute):
31564         (WebCore::SVGAnimationElement::setCalcMode):
31565         * svg/SVGAnimationElement.h:
31566         (WebCore::SVGAnimationElement::calcMode):
31567         (WebCore::SVGAnimationElement::setCalcMode):
31568         (SVGAnimationElement):
31569
31570 2012-10-28  Dimitri Glazkov  <dglazkov@chromium.org>
31571
31572         Get rid of StyleResolver state related to unknown pseudo-elements.
31573         https://bugs.webkit.org/show_bug.cgi?id=100582
31574
31575         Reviewed by Eric Seidel.
31576
31577         All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
31578         We can just get rid of most of this code in StyleResolver.
31579
31580         At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
31581         or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.
31582
31583         No change in behavior, covered by existing tests.
31584
31585         * css/SelectorChecker.cpp:
31586         (WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
31587         (WebCore::SelectorChecker::checkOneSelector): Ditto.
31588         * css/SelectorChecker.h:
31589         (SelectorChecker): Ditto.
31590         * css/StyleResolver.cpp:
31591         (WebCore::StyleResolver::StyleResolver): Ditto.
31592         (MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
31593         (WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
31594         (WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
31595         (WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
31596         (WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
31597         * css/StyleResolver.h:
31598         (StyleResolver): Removed now-unnecessary member.
31599
31600 2012-10-28  Sheriff Bot  <webkit.review.bot@gmail.com>
31601
31602         Unreviewed, rolling out r132696.
31603         http://trac.webkit.org/changeset/132696
31604         https://bugs.webkit.org/show_bug.cgi?id=100609
31605
31606         Needs a bit more clean-up on Chrome Web UI side. (Requested by
31607         dglazkov on #webkit).
31608
31609         * rendering/RenderBlock.cpp:
31610         (WebCore::RenderBlock::updateFirstLetter):
31611         * rendering/RenderListBox.h:
31612         * rendering/RenderObjectChildList.cpp:
31613         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
31614
31615 2012-10-27  Alexey Proskuryakov  <ap@apple.com>
31616
31617         All tests crash in WebKit1 mode
31618         https://bugs.webkit.org/show_bug.cgi?id=100602
31619
31620         Reviewed by Sam Weinig.
31621
31622         * platform/PlatformStrategies.cpp: (WebCore::setPlatformStrategies): Fix an incorrect
31623         assertion - if this function is called twice, it should be with the same strategy.
31624
31625 2012-10-27  Anders Carlsson  <andersca@apple.com>
31626
31627         Fix AVFoundation build.
31628
31629         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
31630         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):
31631
31632 2012-10-27  David Barton  <dbarton@mathscribe.com>
31633
31634         ASSERTION FAILED: m_next in LayoutState.cpp
31635         https://bugs.webkit.org/show_bug.cgi?id=99796
31636
31637         Reviewed by Eric Seidel.
31638
31639         Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
31640         it must ensure a layoutState exists. We disable it in any case, since we are just calculating
31641         metrics here, and the final layout may well happen again.
31642
31643         No new tests. I don't know how to create an automated test for this. The crashes users are
31644         seeing are flaky.
31645
31646         * rendering/mathml/RenderMathMLBlock.cpp:
31647         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
31648
31649 2012-10-27  David Barton  <dbarton@mathscribe.com>
31650
31651         [MathML] Improve some addChild methods
31652         https://bugs.webkit.org/show_bug.cgi?id=98791
31653
31654         Reviewed by Eric Seidel.
31655
31656         MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
31657         number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
31658         want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
31659         renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
31660         giving them to the chromium fuzzers.
31661         
31662         It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
31663         tree after later removeChild calls.
31664
31665         Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
31666         msub/sup elements, in mathml/presentation/m*-changed.xhtml.
31667
31668         * rendering/mathml/RenderMathMLFraction.cpp:
31669         (WebCore::RenderMathMLFraction::addChild):
31670             - The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
31671               work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
31672               added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
31673               numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
31674         * rendering/mathml/RenderMathMLRoot.cpp:
31675         (WebCore::RenderMathMLRoot::addChild):
31676             - A bit of bullet-proofing for the fuzzers.
31677         * rendering/mathml/RenderMathMLSubSup.cpp:
31678         (WebCore::RenderMathMLSubSup::addChild):
31679             - Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.
31680
31681 2012-10-27  Levi Weintraub  <leviw@chromium.org>
31682
31683         Background images can incorrectly repeat with sub-pixel layout
31684         https://bugs.webkit.org/show_bug.cgi?id=94622
31685
31686         Reviewed by Emil A Eklund.
31687
31688         Attempting to better match author expectations when painting tiled background images. When under
31689         the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
31690         differ depending on its location. This change looks at the size of the scaled tiled background
31691         image size, and either ceils or floors that value depending on if tiling that value will
31692         result in us being one pixel or less short of covering the background size. This is a heuristic,
31693         as sub-pixel/zooming isn't specced.
31694
31695         Test: fast/sub-pixel/scaled-background-image.html
31696
31697         * rendering/RenderBoxModelObject.cpp:
31698         (WebCore::applySubPixelHeuristicForTileSize):
31699         (WebCore):
31700         (WebCore::RenderBoxModelObject::calculateFillTileSize):
31701
31702 2012-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>
31703
31704         Unreviewed, rolling out r132725.
31705         http://trac.webkit.org/changeset/132725
31706         https://bugs.webkit.org/show_bug.cgi?id=100596
31707
31708         it broke linking on chromium debug bots (Requested by loislo
31709         on #webkit).
31710
31711         * inspector/InspectorMemoryAgent.cpp:
31712         (WebCore::addPlatformComponentsInfo):
31713         (WebCore):
31714         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31715         * platform/MemoryUsageSupport.cpp:
31716         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31717         * platform/MemoryUsageSupport.h:
31718         (ComponentInfo):
31719         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
31720         (MemoryUsageSupport):
31721         * platform/PlatformMemoryInstrumentation.cpp:
31722         (WebCore):
31723         * platform/PlatformMemoryInstrumentation.h:
31724         (PlatformMemoryTypes):
31725         * platform/chromium/MemoryUsageSupportChromium.cpp:
31726         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31727         * platform/qt/MemoryUsageSupportQt.cpp:
31728         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31729
31730 2012-10-27  Dan Bernstein  <mitz@apple.com>
31731
31732         REAL_PLATFORM_NAME build setting is no longer needed
31733         https://bugs.webkit.org/show_bug.cgi?id=100587
31734
31735         Reviewed by Mark Rowe.
31736
31737         Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
31738         to PLATFORM_NAME.
31739
31740         * Configurations/Base.xcconfig:
31741         * Configurations/CompilerVersion.xcconfig:
31742         * Configurations/DebugRelease.xcconfig:
31743         * Configurations/FeatureDefines.xcconfig:
31744         * Configurations/Version.xcconfig:
31745         * Configurations/WebCore.xcconfig:
31746
31747 2012-10-27  Tony Chang  <tony@chromium.org>
31748
31749         Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
31750         https://bugs.webkit.org/show_bug.cgi?id=100564
31751
31752         Reviewed by Adam Barth.
31753
31754         Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
31755         Also fix a bug where we didn't reset these settings properly.
31756
31757         No new tests, this is covered by existing media/track tests.
31758
31759         * testing/InternalSettings.cpp:
31760         (WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
31761         (WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
31762         * testing/InternalSettings.h:
31763         * testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
31764         * testing/Internals.cpp: Remove code.
31765         * testing/Internals.h: Remove code.
31766         * testing/Internals.idl: Remove code.
31767
31768 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
31769
31770         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
31771         https://bugs.webkit.org/show_bug.cgi?id=100515
31772
31773         Reviewed by Yury Semikhatsky.
31774
31775         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
31776
31777         * inspector/InspectorMemoryAgent.cpp:
31778         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31779         * platform/MemoryUsageSupport.cpp:
31780         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31781         * platform/MemoryUsageSupport.h:
31782         (MemoryUsageSupport):
31783         * platform/PlatformMemoryInstrumentation.cpp:
31784         (WebCore):
31785         * platform/PlatformMemoryInstrumentation.h:
31786         (PlatformMemoryTypes):
31787         * platform/chromium/MemoryUsageSupportChromium.cpp:
31788         (reportMemoryUsage):
31789         (WebCore::reportGlyphCache):
31790         (WebCore):
31791         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31792         * platform/qt/MemoryUsageSupportQt.cpp:
31793         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31794
31795 2012-10-26  Philip Rogers  <pdr@google.com>
31796
31797         Prevent NaN offset values in ElementTimeControl.
31798         https://bugs.webkit.org/show_bug.cgi?id=100322
31799
31800         Reviewed by Abhishek Arya.
31801
31802         NaN values can cause ElementTimeControl to go back in time!
31803         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31804         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31805         because NaN values are not properly sorted. NaN SMILTime values
31806         should not be allowed at all, so this patch adds a check for them in
31807         ElementTimeControl's setters.
31808  
31809         This patch also adds preventative asserts to catch if SMILTime is ever
31810         initialized with NaN, or if addEndTime/addBeginTime are ever called
31811         with NaN values.
31812
31813         Test: svg/custom/elementTimeControl-nan-crash.html
31814
31815         * svg/SVGAnimationElement.cpp:
31816         (WebCore::SVGAnimationElement::beginElementAt):
31817         (WebCore::SVGAnimationElement::endElementAt):
31818         * svg/animation/SMILTime.h:
31819         (WebCore::SMILTime::SMILTime):
31820         * svg/animation/SVGSMILElement.cpp:
31821         (WebCore::SVGSMILElement::addBeginTime):
31822         (WebCore::SVGSMILElement::addEndTime):
31823
31824 2012-10-26  Charles Wei  <charles.wei@torchmobile.com.cn>
31825
31826         [BlackBerry] Browser prematurely sends wrong credentials
31827         https://bugs.webkit.org/show_bug.cgi?id=100585
31828
31829         Reviewed by Yong Li.
31830
31831         Manually revert the patch for bug 96362, which causes regressions and the right patch has been
31832         submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
31833         revert.
31834
31835         No new tests. The test is coverted by patch for 100448.
31836
31837         * platform/network/blackberry/CredentialBackingStore.cpp:
31838         * platform/network/blackberry/CredentialBackingStore.h:
31839         (CredentialBackingStore):
31840         * platform/network/blackberry/NetworkManager.cpp:
31841         (WebCore::NetworkManager::startJob):
31842
31843 2012-10-26  Brady Eidson  <beidson@apple.com>
31844
31845         Have NetworkProcess manage resource load scheduling.
31846         https://bugs.webkit.org/show_bug.cgi?id=100479
31847
31848         Reviewed by Alexey Proskuryakov.
31849
31850         Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
31851         to be overridden by WebKit's implementation.
31852
31853         No new tests (No change in Core behavior).
31854
31855         * WebCore.exp.in:
31856         * WebCore.xcodeproj/project.pbxproj:
31857
31858         * loader/ResourceLoadScheduler.cpp:
31859         (WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
31860         (WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
31861         (WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
31862           here so derived classes can do it indirectly.
31863         (WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
31864           ResourceLoader::start() which only ResourceLoadScheduler can do.
31865
31866         * loader/ResourceLoadScheduler.h:
31867         (ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
31868         (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
31869         (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.
31870
31871         * loader/ResourceLoader.cpp:
31872         (WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.
31873
31874         * loader/ResourceLoader.h:
31875         (WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
31876         (WebCore::ResourceLoader::request): Make public.
31877         (ResourceLoader):
31878
31879 2012-10-26  Chris Rogers  <crogers@google.com>
31880
31881         Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
31882         https://bugs.webkit.org/show_bug.cgi?id=100170
31883
31884         Reviewed by Kenneth Russell.
31885
31886         AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
31887         Sample-based synthesis is a very common technique which requires "internal" loop-points.
31888         For example, the first part of the sample data might represent the attack portion of
31889         a synthesized instrument, which then enters a loop portion.
31890
31891         Tests: webaudio/audiobuffersource-loop-comprehensive.html
31892                webaudio/audiobuffersource-loop-points.html
31893
31894         * Modules/webaudio/AudioBufferSourceNode.cpp:
31895         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
31896         (WebCore::AudioBufferSourceNode::process):
31897         (WebCore::AudioBufferSourceNode::renderFromBuffer):
31898         * Modules/webaudio/AudioBufferSourceNode.h:
31899         (AudioBufferSourceNode):
31900         (WebCore::AudioBufferSourceNode::loopStart):
31901         (WebCore::AudioBufferSourceNode::loopEnd):
31902         (WebCore::AudioBufferSourceNode::setLoopStart):
31903         (WebCore::AudioBufferSourceNode::setLoopEnd):
31904         * Modules/webaudio/AudioBufferSourceNode.idl:
31905
31906 2012-10-26  Daniel Cheng  <dcheng@chromium.org>
31907
31908         dragover's default action should prevent drop for file drags
31909         https://bugs.webkit.org/show_bug.cgi?id=79173
31910
31911         Reviewed by Tony Chang.
31912
31913         During a file drag, we need to keep track of whether or not the document has cancelled the
31914         dragover action. We should only send a drop event if the dragover event was cancelled; this
31915         matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
31916         from the spec are the sections pertaining to dragover and drop events at:
31917         http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model
31918
31919         Test: fast/events/only-valid-drop-targets-receive-file-drop.html
31920
31921         * page/DragController.cpp:
31922         (WebCore::DragController::performDrag):
31923         (WebCore::DragController::dragEnteredOrUpdated):
31924         (WebCore::DragController::tryDocumentDrag):
31925         * page/DragController.h:
31926         (DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
31927                           and remove the corresponding getter/setter.
31928
31929 2012-10-26  Nico Weber  <thakis@chromium.org>
31930
31931         Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
31932         https://bugs.webkit.org/show_bug.cgi?id=94756
31933
31934         Reviewed by Dirk Schulze.
31935
31936         The function has an early exit for !simpleDuration.value(), so
31937         !simpleDuration.value() always is 0 when passed as second parameter to
31938         fmod(), which means fmod() always returns NaN, which always evaluates
31939         to true. Simplify the code by removing that explicit check.
31940
31941         No observable behavior change.
31942
31943         Covered by existing svg tests.
31944
31945         * svg/animation/SVGSMILElement.cpp:
31946         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
31947
31948 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
31949
31950         Unreviewed, rolling out r132695.
31951         http://trac.webkit.org/changeset/132695
31952         https://bugs.webkit.org/show_bug.cgi?id=100581
31953
31954         caused 20+ test crashes on bots (Requested by estes on
31955         #webkit).
31956
31957         * dom/ContainerNode.cpp:
31958         (WebCore::ContainerNode::suspendPostAttachCallbacks):
31959         (WebCore::ContainerNode::resumePostAttachCallbacks):
31960         * loader/MainResourceLoader.cpp:
31961         (WebCore::MainResourceLoader::loadNow):
31962         * loader/ResourceLoadScheduler.cpp:
31963         (WebCore::resourceLoadScheduler):
31964         * loader/ResourceLoadScheduler.h:
31965         * loader/ResourceLoader.cpp:
31966         (WebCore::ResourceLoader::releaseResources):
31967         (WebCore::ResourceLoader::willSendRequest):
31968         * loader/cache/CachedResource.cpp:
31969         (WebCore::CachedResource::load):
31970         * loader/cache/CachedResourceLoader.cpp:
31971         (WebCore::CachedResourceLoader::performPostLoadActions):
31972
31973 2012-10-26  Vincent Scheib  <scheib@chromium.org>
31974
31975         Unreviewed, rolling out r132702.
31976         http://trac.webkit.org/changeset/132702
31977         https://bugs.webkit.org/show_bug.cgi?id=100322
31978
31979         Compile error on Chromium Linux dbg builder (and others)
31980
31981         * svg/SVGAnimationElement.cpp:
31982         (WebCore::SVGAnimationElement::beginElementAt):
31983         (WebCore::SVGAnimationElement::endElementAt):
31984         * svg/animation/SMILTime.h:
31985         (WebCore::SMILTime::SMILTime):
31986         * svg/animation/SVGSMILElement.cpp:
31987         (WebCore::SVGSMILElement::addBeginTime):
31988         (WebCore::SVGSMILElement::addEndTime):
31989
31990 2012-10-26  Philip Rogers  <pdr@google.com>
31991
31992         Prevent NaN offset values in ElementTimeControl.
31993         https://bugs.webkit.org/show_bug.cgi?id=100322
31994
31995         Reviewed by Abhishek Arya.
31996
31997         NaN values can cause ElementTimeControl to go back in time!
31998         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31999         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
32000         because NaN values are not properly sorted. NaN SMILTime values
32001         should not be allowed at all, so this patch adds a check for them in
32002         ElementTimeControl's setters.
32003
32004         This patch also adds preventative asserts to catch if SMILTime is ever
32005         initialized with NaN, or if addEndTime/addBeginTime are ever called
32006         with NaN values.
32007
32008         Test: svg/custom/elementTimeControl-nan-crash.html
32009
32010         * svg/SVGAnimationElement.cpp:
32011         (WebCore::SVGAnimationElement::beginElementAt):
32012         (WebCore::SVGAnimationElement::endElementAt):
32013         * svg/animation/SMILTime.h:
32014         (WebCore::SMILTime::SMILTime):
32015         * svg/animation/SVGSMILElement.cpp:
32016         (WebCore::SVGSMILElement::addBeginTime):
32017         (WebCore::SVGSMILElement::addEndTime):
32018
32019 2012-10-26  Tony Chang  <tony@chromium.org>
32020
32021         Move non-Settings Inspector methods from internals.settings to internals
32022         https://bugs.webkit.org/show_bug.cgi?id=100392
32023
32024         Reviewed by Adam Barth.
32025
32026         These methods don't have to do with the WebCore Settings object, so move them up to internals.
32027         I moved the reset code from InternalSettings to Internals.
32028
32029         No new tests, this is just a rename. Existing tests should pass.
32030
32031         * testing/InternalSettings.cpp:
32032         (WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
32033         (WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
32034         * testing/InternalSettings.h:
32035         * testing/InternalSettings.idl:
32036         * testing/Internals.cpp:
32037         (WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
32038         methods in WTR.
32039         (WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
32040         (WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
32041         * testing/Internals.h:
32042         * testing/Internals.idl:
32043         * testing/js/WebCoreTestSupport.cpp:
32044         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
32045         * testing/v8/WebCoreTestSupport.cpp:
32046         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
32047
32048 2012-10-26  Dominic Mazzoni  <dmazzoni@google.com>
32049
32050         AX: Notification should be sent when accessibilityIsIgnored changes
32051         https://bugs.webkit.org/show_bug.cgi?id=99547
32052
32053         Reviewed by Chris Fleizach.
32054
32055         Adds a new flag in AccessibilityObject that keeps track of the most recent
32056         value of accessibilityIsIgnored(). After certain events such as an ARIA
32057         attribute change or content change, checks the new value of
32058         accessibilityIsIgnored() and posts a "children changed" notification on the
32059         parent node if it changed, making sure the parent recomputes its vector of
32060         (unignored) children.
32061
32062         Also moves handling of attribute changes to AXObjectCache, and sends
32063         notifications for some attribute changes that were previously silent. On
32064         Chromium, all changes to an accessibility object's attributes should
32065         result in some notification.
32066
32067         Some tests would have broken because an AccessibilityScrollView was created
32068         and holding a reference to a ScrollView for an iframe after it was deleted,
32069         so this change switches AccessibilityScrollView to hold a weak reference
32070         to ScrollView instead.
32071
32072         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
32073                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
32074                platform/chromium/accessibility/text-change-notification.html
32075
32076         * accessibility/AXObjectCache.cpp:
32077         (WebCore::AXObjectCache::focusedUIElementForPage):
32078         (WebCore::AXObjectCache::getOrCreate):
32079         (WebCore::AXObjectCache::textChanged):
32080         (WebCore):
32081         (WebCore::AXObjectCache::childrenChanged):
32082         (WebCore::AXObjectCache::handleAriaRoleChanged):
32083         (WebCore::AXObjectCache::handleAttributeChanged):
32084         (WebCore::AXObjectCache::labelChanged):
32085         (WebCore::AXObjectCache::recomputeIsIgnored):
32086         * accessibility/AXObjectCache.h:
32087         (AXObjectCache):
32088         (WebCore::AXObjectCache::childrenChanged):
32089         (WebCore::AXObjectCache::textChanged):
32090         (WebCore::AXObjectCache::handleAttributeChanged):
32091         (WebCore::AXObjectCache::recomputeIsIgnored):
32092         * accessibility/AccessibilityNodeObject.cpp:
32093         (WebCore::AccessibilityNodeObject::insertChild):
32094         * accessibility/AccessibilityObject.cpp:
32095         (WebCore::AccessibilityObject::AccessibilityObject):
32096         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
32097         (WebCore):
32098         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
32099         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
32100         * accessibility/AccessibilityObject.h:
32101         (WebCore::AccessibilityObject::textChanged):
32102         (AccessibilityObject):
32103         * accessibility/AccessibilityRenderObject.cpp:
32104         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
32105         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
32106         (WebCore::AccessibilityRenderObject::textChanged):
32107         (WebCore::AccessibilityRenderObject::addHiddenChildren):
32108         (WebCore::AccessibilityRenderObject::addChildren):
32109         * accessibility/AccessibilityRenderObject.h:
32110         (AccessibilityRenderObject):
32111         * accessibility/AccessibilityScrollView.cpp:
32112         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
32113         (WebCore):
32114         (WebCore::AccessibilityScrollView::detach):
32115         (WebCore::AccessibilityScrollView::isAttachment):
32116         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
32117         (WebCore::AccessibilityScrollView::updateScrollbars):
32118         (WebCore::AccessibilityScrollView::webAreaObject):
32119         (WebCore::AccessibilityScrollView::elementRect):
32120         (WebCore::AccessibilityScrollView::documentFrameView):
32121         (WebCore::AccessibilityScrollView::parentObject):
32122         (WebCore::AccessibilityScrollView::parentObjectIfExists):
32123         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
32124         (WebCore::AccessibilityScrollView::scrollTo):
32125         * accessibility/AccessibilityScrollView.h:
32126         (WebCore::AccessibilityScrollView::scrollView):
32127         (AccessibilityScrollView):
32128         * accessibility/AccessibilityTable.cpp:
32129         (WebCore::AccessibilityTable::isDataTable):
32130         * accessibility/chromium/AXObjectCacheChromium.cpp:
32131         (WebCore::AXObjectCache::postPlatformNotification):
32132         * dom/Element.cpp:
32133         (WebCore::Element::attributeChanged):
32134         * rendering/RenderBlock.cpp:
32135         (WebCore::RenderBlock::deleteLineBoxTree):
32136         (WebCore::RenderBlock::createAndAppendRootInlineBox):
32137         * rendering/RenderObject.cpp:
32138         (WebCore::RenderObject::styleWillChange):
32139         * rendering/RenderText.cpp:
32140         (WebCore::RenderText::setText):
32141
32142 2012-10-26  Joshua Bell  <jsbell@chromium.org>
32143
32144         [WebKitIDL] Optional dictionary types should have default values of empty dictionary
32145         https://bugs.webkit.org/show_bug.cgi?id=100547
32146
32147         Reviewed by Adam Barth.
32148
32149         Per WebIDL, "Optional dictionary type arguments are always considered to have a default
32150         value of an empty dictionary." WebKitIDL already supported this via the extended attribute
32151         [Optional=DefaultIsUndefined] but make this the default for Dictionary.
32152
32153         Binding test expectations updated.
32154
32155         * Modules/filesystem/DirectoryEntry.h: Remove default parameters.
32156         (DirectoryEntry):
32157         * Modules/indexeddb/IDBDatabase.h: Remove overloads.
32158         (IDBDatabase):
32159         * Modules/indexeddb/IDBObjectStore.h: Remove overloads.
32160         (IDBObjectStore):
32161         * Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
32162         * bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
32163         (GenerateParametersCheck):
32164         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
32165         (GenerateParametersCheck):
32166         * bindings/scripts/test/JS/JSTestObj.cpp:
32167         (WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
32168         * bindings/scripts/test/V8/V8TestObj.cpp:
32169         (WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.
32170
32171 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32172
32173         Generated should not be supported for things with a shadow
32174         https://bugs.webkit.org/show_bug.cgi?id=98836
32175
32176         Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
32177         Initial rollout was speculative and was shown not to be related to crashes.
32178         Change author: Elliott Sprehn  <esprehn@chromium.org>
32179
32180         As far as CSS is concerned inputs and things with shadow content inside 
32181         shouldn't support pseudo elements like :before, :after or :first-letter.
32182         Neither Gecko or Presto supports it, and we only accidentally supported 
32183         it. 
32184  
32185         Until the spec tells us what to do we should disable support. This is 
32186         also neccesary because the new generated content implementation doesn't 
32187         support shadows. 
32188
32189         Test: fast/forms/pseudo-elements.html
32190
32191         * rendering/RenderBlock.cpp:
32192         (WebCore::RenderBlock::updateFirstLetter):
32193         * rendering/RenderListBox.h:
32194         * rendering/RenderObjectChildList.cpp:
32195         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
32196
32197 2012-10-26  Brady Eidson  <beidson@apple.com>
32198
32199         Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
32200         <rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554
32201
32202         Reviewed by Alexey Proskuryakov.
32203
32204         This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the 
32205         spots that call resourceLoadScheduler().
32206
32207         As a result we were creating more than one ResourceLoadScheduler, allowing the host records 
32208         to get out of sync.
32209
32210         The fix that also results in less #ifdefs scattered throughout the code is to use a single 
32211         choke point for all ResourceLoadScheduler access.
32212
32213         No new tests 
32214         (No change of behavior for the default config, not testable at this time in the repro config)
32215
32216         Add a single choke point for accessing the correct ResourceLoadScheduler:
32217         * loader/ResourceLoadScheduler.cpp:
32218         (WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
32219         (WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to
32220
32221         Revert back to using that single choke point everywhere:
32222         * dom/ContainerNode.cpp:
32223         (WebCore::ContainerNode::suspendPostAttachCallbacks):
32224         (WebCore::ContainerNode::resumePostAttachCallbacks):
32225
32226         * loader/MainResourceLoader.cpp:
32227         (WebCore::MainResourceLoader::loadNow):
32228
32229         * loader/ResourceLoader.cpp:
32230         (WebCore::ResourceLoader::releaseResources):
32231         (WebCore::ResourceLoader::willSendRequest):
32232
32233         * loader/cache/CachedResource.cpp:
32234         (WebCore::CachedResource::load):
32235
32236         * loader/cache/CachedResourceLoader.cpp:
32237         (WebCore::CachedResourceLoader::performPostLoadActions):
32238
32239 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32240
32241         Try to fix the windows build
32242         https://bugs.webkit.org/show_bug.cgi?id=100556
32243
32244         Reviewed by Eric Seidel.
32245
32246         Touch files by adding whitespace to try and make the windows
32247         build bot regenerate files.
32248
32249         No new tests, just kick the bot.
32250
32251         * dom/DOMAllInOne.cpp:
32252         * html/HTMLElementsAllInOne.cpp:
32253         * html/shadow/TextControlInnerElements.cpp:
32254
32255 2012-10-26  Rob Buis  <rbuis@rim.com>
32256
32257         [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
32258         https://bugs.webkit.org/show_bug.cgi?id=100518
32259
32260         PR 231732
32261
32262         Reviewed by Yong Li.
32263
32264         Use the new resource/image loading abstraction ResourceStore.
32265
32266         * platform/graphics/blackberry/ImageBlackBerry.cpp:
32267         (WebCore::Image::loadPlatformResource):
32268
32269 2012-10-26  Bear Travis  <betravis@adobe.com>
32270
32271         [CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
32272         https://bugs.webkit.org/show_bug.cgi?id=98189
32273
32274         Reviewed by Dirk Schulze.
32275
32276         The initial code assumed that each block created a new layout state, such that
32277         LayoutState::layoutOffset would be specific to each block child of a shape-inside.
32278         Typically, however, block children of a shape-inside do not create a new layout state,
32279         and therefore we use the current element's offset instead.
32280
32281         Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html
32282
32283         * rendering/RenderBlockLineLayout.cpp:
32284         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
32285         rather than LayoutState::layoutOffset::width/height and logicalTop.
32286
32287 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32288
32289         Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
32290         https://bugs.webkit.org/show_bug.cgi?id=100397
32291
32292         Reviewed by Ojan Vafai.
32293
32294         Use Node custom callbacks to support the non-renderer style caching for option
32295         and optgroup eliminating the need for setRenderStyle.
32296
32297         setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
32298         so they could store their RenderStyle even though they have no renderer. This
32299         means all style setting went through the virtual call to setRenderStyle, and it
32300         also hid the if statement protecting against null renderers meaning we end up
32301         checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
32302         up recalcStyle to be more clear about what's going on.
32303
32304         No new tests needed, this is just a refactor.
32305
32306         * dom/Element.cpp:
32307         (WebCore::Element::pseudoStyleCacheIsInvalid):
32308         (WebCore::Element::recalcStyle):
32309         * dom/Node.cpp:
32310         (WebCore::Node::createRenderer):
32311         (WebCore::Node::setRenderStyle):
32312             Removed this method because it was only here to support HTMLOptionElement
32313             and HTMLOptGroupElement. Instead we can use node custom callbacks.
32314         * dom/Node.h:
32315         (WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
32316         * dom/NodeRenderStyle.h:
32317         (WebCore::Node::renderStyle):
32318         * html/HTMLOptGroupElement.cpp:
32319         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
32320         (WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32321         (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
32322         (WebCore::HTMLOptGroupElement::nonRendererStyle):
32323         (WebCore::HTMLOptGroupElement::customStyleForRenderer):
32324         * html/HTMLOptGroupElement.h:
32325         * html/HTMLOptionElement.cpp:
32326         (WebCore::HTMLOptionElement::HTMLOptionElement):
32327         (WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32328         (WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
32329         (WebCore::HTMLOptionElement::nonRendererStyle):
32330         (WebCore::HTMLOptionElement::customStyleForRenderer):
32331         (WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
32332         * html/HTMLOptionElement.h:
32333
32334 2012-10-26  Dirk Schulze  <krit@webkit.org>
32335
32336         -webkit-clip-path property should just reference clipPath
32337         https://bugs.webkit.org/show_bug.cgi?id=100531
32338
32339         Reviewed by Eric Seidel.
32340
32341         The -webkit-clip-path property should just reference clipPath. Added a check for that.
32342
32343         Test: css3/masking/clip-path-reference-of-fake-clipPath.html
32344
32345         * rendering/RenderLayer.cpp:
32346         (WebCore::RenderLayer::paintLayerContents):
32347
32348 2012-10-26  Aaron Colwell  <acolwell@chromium.org>
32349
32350         Remove the circular reference between TextTrack and TextTrackCue
32351         https://bugs.webkit.org/show_bug.cgi?id=100300
32352
32353         Reviewed by Eric Carlson.
32354
32355         Changed TextTrackCue.m_track to a normal pointer to break the circular
32356         reference that was keeping both objects from ever getting deleted.
32357
32358         No new tests. This simply fixes a memory leak.
32359
32360         * html/track/TextTrack.cpp:
32361         (WebCore::TextTrack::~TextTrack):
32362         * html/track/TextTrackCue.cpp:
32363         (WebCore::TextTrackCue::TextTrackCue):
32364         (WebCore::TextTrackCue::~TextTrackCue):
32365         (WebCore::TextTrackCue::track):
32366         (WebCore::TextTrackCue::setTrack):
32367         * html/track/TextTrackCue.h:
32368         (TextTrackCue):
32369
32370 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32371
32372         Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
32373         https://bugs.webkit.org/show_bug.cgi?id=100535
32374
32375         Reviewed by Pavel Feldman.
32376
32377         Added SourceMappingChanged event to UISourceCode and made
32378         JavaScriptSourceFrame update ScriptFile events listeners on it.
32379
32380         * inspector/front-end/JavaScriptSourceFrame.js:
32381         (WebInspector.JavaScriptSourceFrame):
32382         (WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
32383         (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
32384         * inspector/front-end/ResourceScriptMapping.js:
32385         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
32386         * inspector/front-end/UISourceCode.js:
32387         (WebInspector.UISourceCode.prototype.setSourceMapping):
32388
32389 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32390
32391         Unreviewed, rolling out r132644.
32392         http://trac.webkit.org/changeset/132644
32393         https://bugs.webkit.org/show_bug.cgi?id=100497
32394
32395         Causes webkit_unit_tests
32396         MemoryInstrumentationTest.ImageObserver to fail.
32397
32398         * platform/network/ResourceRequestBase.cpp:
32399         (WebCore::ResourceRequestBase::reportMemoryUsage):
32400         * platform/network/ResourceRequestBase.h:
32401         (ResourceRequestBase):
32402         * platform/network/chromium/ResourceRequest.cpp:
32403         * platform/network/chromium/ResourceRequest.h:
32404
32405 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32406
32407         [Qt] MiniBrowser segfaults on exit after using WebGL.
32408         https://bugs.webkit.org/show_bug.cgi?id=100523
32409
32410         The display connection must not be closed before
32411         destroying the offscreen window.
32412         Therefore opening the connection is moved to the
32413         getXWindow() function. And closing the connection
32414         is being moved to the destructor of the offscreen window.
32415
32416         Reviewed by Kenneth Rohde Christiansen.
32417
32418
32419         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32420         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32421         (WebCore::OffScreenRootWindow::getXWindow):
32422         (OffScreenRootWindow):
32423         (WebCore::OffScreenRootWindow::display):
32424         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32425         (WebCore):
32426         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32427         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32428         (WebCore::GraphicsSurfacePrivate::createSurface):
32429
32430 2012-10-26  Parth Patel  <parpatel@rim.com>
32431
32432         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
32433         Generic ThreadUnsafe Singleton
32434         https://bugs.webkit.org/show_bug.cgi?id=100529
32435
32436         Reviewed by Yong Li.
32437
32438         No new tests added as there was no behavioural change.
32439
32440         * platform/network/blackberry/NetworkManager.cpp:
32441         (WebCore):
32442         * platform/network/blackberry/NetworkManager.h:
32443         (NetworkManager):
32444
32445 2012-10-26  Mike West  <mkwst@chromium.org>
32446
32447         Web Inspector: Fix log-type icon alignment.
32448         https://bugs.webkit.org/show_bug.cgi?id=100520
32449
32450         Reviewed by Yury Semikhatsky.
32451
32452         The icons are just a pixel or two off, and it's driving me nuts.
32453
32454         * inspector/front-end/inspector.css:
32455         (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
32456         (.console-warning-level::before):
32457
32458 2012-10-26  Erik Arvidsson  <arv@chromium.org>
32459
32460         Replaceable attributes should also have readonly
32461         https://bugs.webkit.org/show_bug.cgi?id=91768
32462
32463         Reviewed by Adam Barth.
32464
32465         This updates the code generators for JSC and V8 to handle this case correctly.
32466
32467         * Modules/intents/DOMWindowIntents.idl:
32468         * bindings/scripts/CodeGeneratorJS.pm:
32469         * bindings/scripts/CodeGeneratorV8.pm:
32470         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
32471         * bindings/scripts/test/ObjC/DOMTestObj.h:
32472         * bindings/scripts/test/ObjC/DOMTestObj.mm:
32473         * bindings/scripts/test/TestObj.idl:
32474         * bindings/scripts/test/V8/V8TestObj.cpp:
32475         * page/DOMWindow.idl:
32476         * workers/WorkerContext.idl:
32477
32478 2012-10-26  Nico Weber  <thakis@chromium.org>
32479
32480         Clear m_orientation in FrameData::clear() for skia
32481         https://bugs.webkit.org/show_bug.cgi?id=100456
32482
32483         Reviewed by Stephen White.
32484
32485         clear() is only called by the FrameData destructor and for multi-image
32486         images in BitmapImage::destroyDecodedData(). Multi-frame images don't
32487         have exif data, so this patch should have no effect in practice. It
32488         makes the skia code match the CG code in BitmapImageCG.cpp though.
32489
32490         * platform/graphics/skia/ImageSkia.cpp:
32491         (WebCore::FrameData::clear):
32492
32493 2012-10-26  Florin Malita  <fmalita@chromium.org>
32494
32495         Crash on loading SVG filter resource on HTML element
32496         https://bugs.webkit.org/show_bug.cgi?id=100491
32497
32498         Reviewed by Dirk Schulze.
32499
32500         Skip non-filter elements referenced via -webkit-filter.
32501
32502         Test: svg/filters/filter-reference-crash.html
32503
32504         * rendering/RenderLayerFilterInfo.cpp:
32505         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
32506
32507 2012-10-26  Antti Koivisto  <antti@apple.com>
32508
32509         Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
32510         https://bugs.webkit.org/show_bug.cgi?id=100514
32511
32512         Reviewed by Anders Carlsson.
32513
32514         DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
32515         the document. The function is relatively slow.
32516         
32517         This patch caches the result of the last check for 5 seconds. Based on code comments
32518         prefetching is disabled with proxies due to regressing performance with some configurations.
32519         Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.
32520
32521         * platform/network/DNSResolveQueue.cpp:
32522         (WebCore::DNSResolveQueue::DNSResolveQueue):
32523         
32524             Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
32525             
32526         (WebCore):
32527         (WebCore::DNSResolveQueue::isUsingProxy):
32528         (WebCore::DNSResolveQueue::add):
32529         (WebCore::DNSResolveQueue::fired):
32530         * platform/network/DNSResolveQueue.h:
32531         (DNSResolveQueue):
32532
32533 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32534
32535         Unreviewed, rolling out r132662.
32536         http://trac.webkit.org/changeset/132662
32537         https://bugs.webkit.org/show_bug.cgi?id=100528
32538
32539         It is not necessary any more. (Requested by loislo on
32540         #webkit).
32541
32542         * platform/qt/MemoryUsageSupportQt.cpp:
32543         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32544         (WebCore):
32545
32546 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32547
32548         Unreviewed build fix for Qt builders.
32549
32550         * platform/qt/MemoryUsageSupportQt.cpp:
32551
32552 2012-10-26  Csaba Osztrogonác  <ossy@webkit.org>
32553
32554         Unreviewed, rolling out r132658.
32555         http://trac.webkit.org/changeset/132658
32556         https://bugs.webkit.org/show_bug.cgi?id=100515
32557
32558         It broke the Qt build
32559
32560         * inspector/InspectorMemoryAgent.cpp:
32561         (WebCore::addPlatformComponentsInfo):
32562         (WebCore):
32563         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32564         * platform/MemoryUsageSupport.cpp:
32565         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32566         * platform/MemoryUsageSupport.h:
32567         (ComponentInfo):
32568         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
32569         (MemoryUsageSupport):
32570         * platform/PlatformMemoryInstrumentation.cpp:
32571         (WebCore):
32572         * platform/PlatformMemoryInstrumentation.h:
32573         (PlatformMemoryTypes):
32574         * platform/chromium/MemoryUsageSupportChromium.cpp:
32575         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32576
32577 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32578
32579         Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
32580         https://bugs.webkit.org/show_bug.cgi?id=100522
32581
32582         Reviewed by Pavel Feldman.
32583
32584         Method appendApplicableItems now receives event as a parameter.
32585         HandlerRegistry now makes sure that it is not called more than once for certain context menu event.
32586
32587         * inspector/front-end/BreakpointsSidebarPane.js:
32588         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32589         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
32590         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32591         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
32592         * inspector/front-end/CallStackSidebarPane.js:
32593         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
32594         * inspector/front-end/ConsoleView.js:
32595         * inspector/front-end/ContextMenu.js:
32596         (WebInspector.ContextMenu):
32597         (WebInspector.ContextMenu.prototype.show):
32598         (WebInspector.ContextMenu.prototype.appendApplicableItems):
32599         (WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
32600         * inspector/front-end/CookieItemsView.js:
32601         (WebInspector.CookieItemsView.prototype._contextMenu):
32602         * inspector/front-end/DOMBreakpointsSidebarPane.js:
32603         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
32604         * inspector/front-end/DataGrid.js:
32605         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
32606         * inspector/front-end/DefaultTextEditor.js:
32607         (WebInspector.DefaultTextEditor.prototype._contextMenu):
32608         * inspector/front-end/ElementsPanel.js:
32609         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
32610         * inspector/front-end/ElementsPanelDescriptor.js:
32611         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
32612         * inspector/front-end/ElementsTreeOutline.js:
32613         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
32614         * inspector/front-end/HandlerRegistry.js:
32615         (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
32616         * inspector/front-end/ImageView.js:
32617         (WebInspector.ImageView.prototype._contextMenu):
32618         * inspector/front-end/NavigatorView.js:
32619         (WebInspector.NavigatorView.prototype.handleContextMenu):
32620         * inspector/front-end/NetworkPanel.js:
32621         (WebInspector.NetworkLogView.prototype._contextMenu):
32622         * inspector/front-end/NetworkPanelDescriptor.js:
32623         (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
32624         * inspector/front-end/ObjectPropertiesSection.js:
32625         (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
32626         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
32627         * inspector/front-end/ProfilesPanel.js:
32628         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
32629         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
32630         * inspector/front-end/ResourcesPanel.js:
32631         (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
32632         (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
32633         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
32634         (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
32635         * inspector/front-end/ScriptsNavigator.js:
32636         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
32637         * inspector/front-end/ScriptsPanel.js:
32638         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
32639         * inspector/front-end/ScriptsPanelDescriptor.js:
32640         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
32641         * inspector/front-end/StylesSidebarPane.js:
32642         (WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
32643         * inspector/front-end/TabbedPane.js:
32644         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
32645         * inspector/front-end/TimelinePanel.js:
32646         (WebInspector.TimelinePanel.prototype._contextMenu):
32647         * inspector/front-end/WatchExpressionsSidebarPane.js:
32648         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
32649         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
32650
32651 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32652
32653         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
32654         https://bugs.webkit.org/show_bug.cgi?id=100515
32655
32656         Reviewed by Yury Semikhatsky.
32657
32658         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
32659
32660         * inspector/InspectorMemoryAgent.cpp:
32661         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32662         * platform/MemoryUsageSupport.cpp:
32663         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32664         * platform/MemoryUsageSupport.h:
32665         (MemoryUsageSupport):
32666         * platform/PlatformMemoryInstrumentation.cpp:
32667         (WebCore):
32668         * platform/PlatformMemoryInstrumentation.h:
32669         (PlatformMemoryTypes):
32670         * platform/chromium/MemoryUsageSupportChromium.cpp:
32671         (reportMemoryUsage):
32672         (WebCore::reportGlyphCache):
32673         (WebCore):
32674         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32675
32676 2012-10-26  Kent Tamura  <tkent@chromium.org>
32677
32678         [Chromium] Build fix for r132650.
32679         https://bugs.webkit.org/show_bug.cgi?id=100482
32680
32681         * platform/text/LocaleWin.cpp:
32682         (WebCore::LocaleWin::timeFormat):
32683
32684 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32685
32686         [v8] Memory instrumentation: don't count memory of WrapperTypeInfo
32687         https://bugs.webkit.org/show_bug.cgi?id=100517
32688
32689         Reviewed by Alexander Pavlov.
32690
32691         * bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
32692         pointers to WrapperTypeInfo objects as they are static fields and belong to
32693         the data segment.
32694         (WTF):
32695
32696 2012-10-26  Kent Tamura  <tkent@chromium.org>
32697
32698         Refactor Localizer-related classes.
32699         https://bugs.webkit.org/show_bug.cgi?id=100482
32700
32701         Reviewed by Kentaro Hara.
32702
32703         - Localizer has unused code
32704          Localizer should have function implementations only if they are used in
32705          multiple subclasses.
32706         - Some Localizer subclasses hide Localizer data members
32707         - Should use String::isNull to check initialization-or-not
32708
32709         No new tests. This should not change any behavior.
32710
32711         * platform/text/Localizer.h:
32712         (Localizer):
32713         - timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
32714         - Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
32715           m_timeAMPMLabels
32716         * platform/text/Localizer.cpp:
32717         Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.
32718
32719         * platform/text/LocaleICU.h:
32720         (LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
32721         * platform/text/LocaleICU.cpp:
32722         (WebCore::LocaleICU::initializeDateTimeFormat):
32723         Use new data members instead of Localizer data members.
32724         (WebCore::LocaleICU::dateFormat): Use isNull.
32725
32726         * platform/text/LocaleNone.cpp:
32727         (LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
32728         implementations, and m_timeAMPMLabels.
32729         (WebCore::LocaleNone::timeFormat): Returns the HTML time format.
32730         (WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
32731         (WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".
32732
32733         * platform/text/LocaleWin.h:
32734         (LocaleWin): Add m_timeFormatWithSeconds.
32735         * platform/text/LocaleWin.cpp:
32736         (WebCore::LocaleWin::dateFormat): Use isNull.
32737         (WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.
32738
32739         * platform/text/mac/LocaleMac.h:
32740         (LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
32741         * platform/text/mac/LocaleMac.mm:
32742         (WebCore::LocaleMac::timeFormat): Follow the renaming.
32743         (WebCore::LocaleMac::shortTimeFormat): Ditto.
32744
32745 2012-10-26  Kent Tamura  <tkent@chromium.org>
32746
32747         Crash in PagePopupController by events after WebPagePopupImpl::closePopup
32748         https://bugs.webkit.org/show_bug.cgi?id=100454
32749
32750         Reviewed by Hajime Morita.
32751
32752         No new tests. The bug is timing-dependent.
32753
32754         * page/DOMWindowPagePopup.cpp:
32755         (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
32756         Calls clearPagePopupClient for the associalated PagePopupController object.
32757         * page/PagePopupController.cpp:
32758         (WebCore::PagePopupController::setValueAndClosePopup):
32759         Do nothing if m_popupClient is 0.
32760         (WebCore::PagePopupController::localizeNumberString): Ditto.
32761         (WebCore::PagePopupController::clearPagePopupClient): Added.
32762         * page/PagePopupController.h:
32763         (PagePopupController): Declare clearPagePopupClient.
32764
32765 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
32766
32767         Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
32768         https://bugs.webkit.org/show_bug.cgi?id=100220
32769
32770         Reviewed by Yury Semikhatsky.
32771
32772         * inspector/front-end/Settings.js:
32773         (WebInspector.ExperimentsSettings):
32774         * inspector/front-end/SettingsScreen.js:
32775         (WebInspector.UserAgentSettingsTab):
32776
32777 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32778
32779         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
32780         https://bugs.webkit.org/show_bug.cgi?id=100497
32781
32782         Reviewed by Alexander Pavlov.
32783
32784         Added memory reporting method to Chromium implementation of ResourceRequest.
32785
32786         * platform/network/ResourceRequestBase.cpp:
32787         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
32788         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
32789         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
32790         in the descendant but ResourceRequestBase doesn't have any virtual methods
32791         and shouldn't be used directly (ResourceRequest should be used instead).
32792         * platform/network/ResourceRequestBase.h:
32793         (ResourceRequestBase):
32794         * platform/network/chromium/ResourceRequest.cpp:
32795         (WebCore::ResourceRequest::reportMemoryUsage):
32796         (WebCore):
32797         * platform/network/chromium/ResourceRequest.h:
32798         (ResourceRequest):
32799
32800 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32801
32802         Web Inspector: Remove the on-hover highlighting of console messages
32803         https://bugs.webkit.org/show_bug.cgi?id=100511
32804
32805         Reviewed by Pavel Feldman.
32806
32807         This clashes with the hovered element highlight in console messages.
32808
32809         * inspector/front-end/inspector.css:
32810         (ol.watch-expressions > li.hovered):
32811
32812 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32813
32814         Unreviewed, rolling out r132612.
32815         http://trac.webkit.org/changeset/132612
32816         https://bugs.webkit.org/show_bug.cgi?id=100512
32817
32818         Crashes fast/events/tabindex-focus-blur-all.html in debug mode
32819         (Requested by pfeldman on #webkit).
32820
32821         * rendering/AutoTableLayout.cpp:
32822         (WebCore::AutoTableLayout::recalcColumn):
32823         * rendering/FixedTableLayout.cpp:
32824         (WebCore::FixedTableLayout::calcWidthArray):
32825         * rendering/RenderTable.cpp:
32826         (WebCore::RenderTable::layout):
32827         * rendering/RenderTableCol.cpp:
32828         (WebCore::RenderTableCol::styleDidChange):
32829         (WebCore::RenderTableCol::updateFromElement):
32830         (WebCore::RenderTableCol::computePreferredLogicalWidths):
32831         * rendering/RenderTableCol.h:
32832         (RenderTableCol):
32833
32834 2012-10-26  Pavel Feldman  <pfeldman@chromium.org>
32835
32836         Web Inspector: fast return upon setting the same dock side.
32837         https://bugs.webkit.org/show_bug.cgi?id=100510
32838
32839         Reviewed by Vsevolod Vlasov.
32840
32841         Added fast return.
32842
32843         * inspector/front-end/DockController.js:
32844
32845 2012-10-26  Simon Hausmann  <simon.hausmann@digia.com>
32846
32847         Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)
32848
32849         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32850         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32851
32852 2012-10-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
32853
32854         Printing should use use high resolution images when available
32855         https://bugs.webkit.org/show_bug.cgi?id=100488
32856
32857         Reviewed by Antti Koivisto.
32858
32859         The images loaded using -webkit-device-pixel-ratio depends on
32860         the display type (deviceScaleFactor) and thus affects which
32861         images are being used for printing. Printing should always
32862         use the higher resolution images (aka 'retina' images).
32863
32864         Test: fast/media/mq-pixel-ratio-print.html
32865
32866         * css/MediaQueryEvaluator.cpp:
32867         (WebCore::device_pixel_ratioMediaFeatureEval):
32868
32869 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32870
32871         Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
32872         https://bugs.webkit.org/show_bug.cgi?id=100496
32873
32874         Reviewed by Yury Semikhatsky.
32875
32876         It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
32877
32878         * dom/WebCoreMemoryInstrumentation.cpp:
32879         (WebCore):
32880         * dom/WebCoreMemoryInstrumentation.h:
32881         (WebCoreMemoryTypes):
32882         * inspector/InspectorResourceAgent.cpp:
32883         (WebCore::InspectorResourceAgent::reportMemoryUsage):
32884         (WebCore):
32885         * inspector/InspectorResourceAgent.h:
32886         (InspectorResourceAgent):
32887         * inspector/NetworkResourcesData.cpp:
32888         (WebCore::XHRReplayData::reportMemoryUsage):
32889         (WebCore):
32890         (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
32891         (WebCore::NetworkResourcesData::reportMemoryUsage):
32892         * inspector/NetworkResourcesData.h:
32893         (XHRReplayData):
32894         (ResourceData):
32895         (NetworkResourcesData):
32896
32897 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32898
32899         Unreviewed, rolling out r132493.
32900         http://trac.webkit.org/changeset/132493
32901         https://bugs.webkit.org/show_bug.cgi?id=100509
32902
32903         It didn't fix the tests on the bot as we had hoped. (Requested
32904         by drott on #webkit).
32905
32906         * platform/network/cf/ResourceErrorCF.cpp:
32907         (WebCore::ResourceError::ResourceError):
32908
32909 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32910
32911         [Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
32912         https://bugs.webkit.org/show_bug.cgi?id=100493
32913
32914         Once QXcbNativeInterface::nativeResourceForContext() can provide the
32915         GLXContext for an existing QOpenGLContext, this patch shall be reverted.
32916
32917         Reviewed by Simon Hausmann.
32918
32919         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32920         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32921
32922 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32923
32924         [Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
32925         https://bugs.webkit.org/show_bug.cgi?id=100492
32926
32927         This patch removes most of the QOpenGLContext related code
32928         from GraphicsSurfaceGLX. This allows sharing almost all
32929         GraphicsSurfaceGLX code with EFL, by relying on pure GLX.
32930
32931         Reviewed by Kenneth Rohde Christiansen.
32932
32933         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32934         (WebCore::OffScreenRootWindow::get):
32935         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32936         (OffScreenRootWindow):
32937         (WebCore):
32938         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32939         (WebCore::GraphicsSurfacePrivate::createSurface):
32940         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32941         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32942         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32943         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32944         (GraphicsSurfacePrivate):
32945         (WebCore::resolveGLMethods):
32946
32947 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
32948
32949         [EFL][WK2] Enable WebGL
32950         https://bugs.webkit.org/show_bug.cgi?id=97652
32951
32952         Reviewed by Gyuyoung Kim.
32953
32954         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
32955         Depends on GLX since Evas doesn't provide the necessary functionality.
32956
32957         No new tests. Covered by existing tests.
32958
32959         * PlatformEfl.cmake:
32960         * platform/graphics/GraphicsContext3D.h:
32961         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
32962         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
32963         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
32964         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
32965         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
32966         (WebCore):
32967         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
32968         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
32969         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
32970         * platform/graphics/efl/GraphicsContext3DPrivate.h:
32971         (GraphicsContext3DPrivate):
32972         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
32973         (WebCore::GraphicsContext3D::reshape):
32974         * platform/graphics/surfaces/efl: Added.
32975         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
32976         (WebCore):
32977         (WebCore::OffScreenRootWindow::get):
32978         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32979         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32980         (WebCore::GraphicsSurfacePrivate::createSurface):
32981         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32982         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32983         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32984         (WebCore::GraphicsSurface::platformBeginPaint):
32985         (WebCore::GraphicsSurface::createReadOnlyImage):
32986         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32987         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
32988         (WebCore):
32989         (OffScreenRootWindow):
32990         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32991         (GraphicsSurfacePrivate):
32992         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32993         (WebCore::GraphicsSurfacePrivate::createPixmap):
32994         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32995         (WebCore::GraphicsSurfacePrivate::display):
32996         (WebCore::GraphicsSurfacePrivate::glxPixmap):
32997         (WebCore::GraphicsSurfacePrivate::size):
32998         (WebCore::GraphicsSurfacePrivate::glContext):
32999         (WebCore::resolveGLMethods):
33000         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
33001         (WebCore):
33002         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
33003         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33004         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33005         (WebCore::GraphicsSurfacePrivate::createSurface):
33006         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33007         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33008         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33009
33010 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
33011
33012         Web Inspector: [Overrides] Do not persist the User Agent "master switch"
33013         https://bugs.webkit.org/show_bug.cgi?id=100484
33014
33015         Reviewed by Yury Semikhatsky.
33016
33017         The User Agent override state is managed in the front-end, just like for other override-able parameters.
33018
33019         * inspector/InspectorResourceAgent.cpp:
33020         (WebCore::InspectorResourceAgent::disable):
33021         * inspector/front-end/NetworkManager.js:
33022         (WebInspector.NetworkManager.get NetworkAgent):
33023         (WebInspector.NetworkManager):
33024         * inspector/front-end/SettingsScreen.js:
33025         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
33026         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
33027         * inspector/front-end/UserAgentSupport.js:
33028         (WebInspector.UserAgentSupport):
33029         (WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
33030         (WebInspector.UserAgentSupport.prototype._userAgentChanged):
33031
33032 2012-10-26  Takashi Sakamoto  <tasak@google.com>
33033
33034         [Shadow]: removing styles in shadow dom subtree causes crash.
33035         https://bugs.webkit.org/show_bug.cgi?id=100455
33036
33037         Reviewed by Hajime Morita.
33038
33039         To quickly check whether shadow roots or elements have any scoped
33040         styles or not, elements have hasStyleScoped flag. If elements have
33041         any scoped styles, the styles are direct children of the element.
33042         The original code just sees how many chilren are scoped style or not.
33043         However styles in shadow dom subtree are registered with the shadow
33044         root but are not always direct children of shadow roots. So to check
33045         whether shadow roots have any scoped styles, modified to count
33046         number of styles registered with the shadow root.
33047
33048         Test: fast/dom/shadow/remove-styles-in-shadow-crash.html
33049
33050         * dom/Node.cpp:
33051         (WebCore::Node::registerScopedHTMLStyleChild):
33052         (WebCore::Node::unregisterScopedHTMLStyleChild):
33053         Made the above two method virtual. class ShadowRoot overrides these
33054         methods.
33055         (WebCore::Node::numberOfScopedHTMLStyleChildren):
33056         Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
33057         are moved into Node.cpp.
33058         * dom/Node.h:
33059         (Node):
33060         * dom/ShadowRoot.cpp:
33061         (WebCore::ShadowRoot::ShadowRoot):
33062         (WebCore::ShadowRoot::registerScopedHTMLStyleChild):
33063         (WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
33064         Modify to count how many styles are registered with the shadow root.
33065         The "counting" is done when styles are registered and unregistered
33066         with the shadow root, i.e. style element is inserted into document or
33067         removed from document. When unregister some style, there are no more
33068         styles registered with the shadow root. Set style scoped flag false.
33069         * dom/ShadowRoot.h:
33070         (ShadowRoot):
33071         * html/HTMLStyleElement.cpp:
33072         * html/HTMLStyleElement.h:
33073         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
33074         Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
33075         moved .cpp to .h.
33076
33077 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33078
33079         Unreviewed, rolling out r132589.
33080         http://trac.webkit.org/changeset/132589
33081         https://bugs.webkit.org/show_bug.cgi?id=100498
33082
33083         Breaks font-face layout tests (Requested by pfeldman on
33084         #webkit).
33085
33086         * css/CSSFontFaceSource.cpp:
33087         (WebCore::CSSFontFaceSource::getFontData):
33088
33089 2012-10-26  Takashi Sakamoto  <tasak@google.com>
33090
33091         [Shadow DOM] Needs @host rule for ShadowDOM styling
33092         https://bugs.webkit.org/show_bug.cgi?id=88606
33093
33094         Reviewed by Hajime Morita.
33095
33096         Implemented @host-@rules according to the shadow dom spec:
33097         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
33098         The design doc is:
33099         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
33100
33101         Test: fast/dom/shadow/athost-atrules.html
33102
33103         * css/CSSGrammar.y.in:
33104         Added rules for parsing @host @-rules.
33105         * css/CSSParser.cpp:
33106         (WebCore::CSSParser::detectAtToken):
33107         Added a new token "@host".
33108         (WebCore::CSSParser::createHostRule):
33109         Added a new method to create an @host @-rule, which is invoked from
33110         (WebCore):
33111         * css/CSSParser.h:
33112         Added a declaration of the above new method: createHostRule.
33113         * css/CSSPropertySourceData.h:
33114         Added HOST_RULE to enum Type.
33115         * css/RuleSet.cpp:
33116         (WebCore::RuleData::RuleData):
33117         Modified multiple bool arguments into one argument. Now it
33118         uses combinations of values from enum AddRuleFlags.
33119         (WebCore::RuleSet::addRule):
33120         (WebCore::RuleSet::addRegionRule):
33121         (WebCore::RuleSet::addStyleRule):
33122         Updated according to the RuleData's change.
33123         Modified to Invoke increaseSpecificity if the given rule is @host
33124         @-rule.
33125         (WebCore::RuleSet::addRulesFromSheet):
33126         Invoked addHostRule if the given rule is @host @-rule.
33127         * css/RuleSet.h:
33128         (RuleData):
33129         (WebCore::RuleData::increaseSpecificity):
33130         Added a new method to increase selector's specificity. This method is
33131         used to make @host @-rules' specificity larger than normal author
33132         rules' specificity.
33133         (RuleSet):
33134         * css/StyleResolver.cpp:
33135         (WebCore::makeRuleSet):
33136         (WebCore::StyleResolver::addHostRule):
33137         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
33138         is used to make only StyleResolver know an implementation detail about
33139         class StyleScopeResolver.
33140         (WebCore::StyleResolver::appendAuthorStylesheets):
33141         Updated according to the RuleData's change.
33142         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
33143         A new method to find matched host rules when an element is given.
33144         This method invokes
33145         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
33146         matched host rules.
33147         (WebCore):
33148         (WebCore::StyleResolver::matchHostRules):
33149         A new method to find matched host rules when an element is given.
33150         This method invokes StyleScopeResolver::matchHostRules to find
33151         matched host rules.
33152         (WebCore::StyleResolver::matchScopedAuthorRules):
33153         Modified to invoke matchHostRules.
33154         (WebCore::StyleResolver::locateSharedStyle):
33155         Disable sibling style cache if the given element is a shadow host and
33156         any @host @-rules are applied to the element.
33157         * css/StyleResolver.h:
33158         (WebCore::StyleResolver::ensureScopeResolver):
33159         If no scopeResolver is created, create and return the instance.
33160         If created, just return the instance.
33161         (StyleResolver):
33162         * css/StyleRule.cpp:
33163         (WebCore::StyleRuleBase::reportMemoryUsage):
33164         (WebCore::StyleRuleBase::destroy):
33165         (WebCore::StyleRuleBase::copy):
33166         (WebCore::StyleRuleBase::createCSSOMWrapper):
33167         (WebCore::StyleRuleHost::StyleRuleHost):
33168         Implemented class StyleRuleHost. The class is almost the same as
33169         StyleRuleBlock except type.
33170         (WebCore):
33171         * css/StyleRule.h:
33172         (WebCore::StyleRuleBase::isHostRule):
33173         (StyleRuleHost):
33174         (WebCore::StyleRuleHost::create):
33175         (WebCore::StyleRuleHost::copy):
33176         (WebCore):
33177         * css/StyleScopeResolver.cpp:
33178         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
33179         A new method to create a new RuleSet for the given shadow root.
33180         (WebCore):
33181         (WebCore::StyleScopeResolver::atHostRuleSetFor):
33182         A new private inline method to obtain @host @-rules declared in
33183         the given shadow root.
33184         (WebCore::StyleScopeResolver::addHostRule):
33185         Added a new method to register @host @-rules with shadow roots.
33186         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
33187         A new method to find whether any @host @-rules are applied to
33188         the given host element.
33189         (WebCore::StyleScopeResolver::matchHostRules):
33190         A new method to find matched rules for the given host element.
33191         (WebCore::StyleScopeResolver::reportMemoryUsage):
33192         * css/StyleScopeResolver.h:
33193         (WebCore):
33194         (StyleScopeResolver):
33195         * css/StyleSheetContents.cpp:
33196         (WebCore::childRulesHaveFailedOrCanceledSubresources):
33197
33198 2012-10-26  Jaehun Lim  <ljaehun.lim@samsung.com>
33199
33200         [CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
33201         https://bugs.webkit.org/show_bug.cgi?id=100476
33202
33203         Reviewed by Kentaro Hara.
33204
33205         ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
33206         but the source file for that feature is omitted.
33207
33208         No new tests. Covered by existing tests.
33209
33210         * CMakeLists.txt:
33211
33212 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33213
33214         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
33215         https://bugs.webkit.org/show_bug.cgi?id=99861
33216
33217         Reviewed by Ojan Vafai.
33218
33219         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
33220         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
33221         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
33222         or else we would ignore the next layout hint on the <col> or <colgroup>.
33223
33224         Tests: fast/table/col-span-change-relayout.html
33225                fast/table/simplified-layout-table.html
33226
33227         * rendering/AutoTableLayout.cpp:
33228         (WebCore::AutoTableLayout::recalcColumn):
33229         * rendering/RenderTable.cpp:
33230         (WebCore::RenderTable::layout):
33231         Simplified the code now that we only need to iterate over the sections.
33232
33233         * rendering/FixedTableLayout.cpp:
33234         (WebCore::FixedTableLayout::calcWidthArray):
33235         Removed call to computePreferredLogicalWidths.
33236
33237         * rendering/RenderTableCol.cpp:
33238         (WebCore::RenderTableCol::styleDidChange):
33239         (WebCore::RenderTableCol::updateFromElement):
33240         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
33241
33242         (WebCore::RenderTableCol::computePreferredLogicalWidths):
33243         (WebCore::RenderTableCol::layout):
33244         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
33245         never called when it was possible.
33246
33247         (WebCore::RenderTableCol::propagateLayoutCueToTable):
33248         New helper function that forward any layout cue to the containing table, this works around
33249         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
33250         invalidateContainerPreferredLogicalWidths.
33251
33252         * rendering/RenderTableCol.h:
33253         Made the function that we are not expected to be called private.
33254
33255 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33256
33257         Unreviewed, rolling out r132601.
33258         http://trac.webkit.org/changeset/132601
33259         https://bugs.webkit.org/show_bug.cgi?id=100494
33260
33261         It broke the Qt build (Requested by Ossy on #webkit).
33262
33263         * PlatformEfl.cmake:
33264         * platform/graphics/GraphicsContext3D.h:
33265         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33266         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33267         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33268         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33269         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33270         (WebCore):
33271         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33272         (GraphicsContext3DPrivate):
33273         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33274         (WebCore::GraphicsContext3D::reshape):
33275         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33276         (WebCore::OffScreenRootWindow::get):
33277         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33278         (OffScreenRootWindow):
33279         (WebCore):
33280         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33281         (WebCore::GraphicsSurfacePrivate::createSurface):
33282         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33283         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33284         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33285         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33286         (GraphicsSurfacePrivate):
33287         (WebCore::resolveGLMethods):
33288
33289 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
33290
33291         Memory instrumentation: do not report memory occupied by v8::String
33292         https://bugs.webkit.org/show_bug.cgi?id=100487
33293
33294         Reviewed by Alexander Pavlov.
33295
33296         Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
33297         string cache.
33298
33299         * bindings/v8/V8Binding.cpp:
33300         (WTF):
33301
33302 2012-10-26  Mihnea Ovidenie  <mihnea@adobe.com>
33303
33304         [CSSRegions] Add support for auto-height regions with region-breaks
33305         https://bugs.webkit.org/show_bug.cgi?id=99952
33306
33307         Reviewed by David Hyatt.
33308
33309         This patch takes region breaks into account when computing the height for auto logical height regions.
33310         When a region break is encountered before/after an element from within a flow thread and we are in the layout
33311         phase in which we lay out the flow threads in regions unconstrained, we use the region break to
33312         compute the region override logical content height if the region break fits inside an auto logical height region.
33313         A region break inside an auto logical height region determines the region override logical content height, taking
33314         min/max height into account.
33315
33316         Tests: fast/regions/autoheight-allregions-nobreaks.html
33317                fast/regions/autoheight-allregions.html
33318                fast/regions/autoheight-breakafteralways-maxheight.html
33319                fast/regions/autoheight-breakbeforealways.html
33320                fast/regions/autoheight-firstregion-breakalways.html
33321                fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
33322                fast/regions/autoheight-lastregion-overflowauto.html
33323                fast/regions/autoheight-middleregion.html
33324                fast/regions/autoheight-secondregion-breakoutside.html
33325                fast/regions/autoheight-secondregion.html
33326                fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
33327                fast/regions/autoheight-singleregion-breakafteralways.html
33328                fast/regions/autoheight-singleregion-breakaftermargin.html
33329                fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
33330                fast/regions/autoheight-singleregion-breakbeforealways.html
33331                fast/regions/autoheight-singleregion-multiplebreaks.html
33332                fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
33333                fast/regions/autoheight-singleregion-overflowauto.html
33334
33335         * rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
33336         try to use it to determine the override logical content height for auto logical height regions.
33337         (WebCore::RenderBlock::applyBeforeBreak):
33338         (WebCore::RenderBlock::applyAfterBreak):
33339         * rendering/RenderFlowThread.cpp:
33340         (WebCore::RenderFlowThread::layout):
33341         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
33342         Simulate a region break at the end of the flow thread content.
33343         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
33344         (WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
33345         Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
33346         (WebCore::RenderFlowThread::addForcedRegionBreak):
33347         Extend the method to process region breaks. The method returns true if at least one auto logical height region
33348         has its override logical content height computed.        
33349         * rendering/RenderFlowThread.h:
33350         * rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
33351         (WebCore::RenderRegion::pageLogicalHeight):
33352         (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
33353
33354 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
33355
33356         [EFL][WK2] Enable WebGL
33357         https://bugs.webkit.org/show_bug.cgi?id=97652
33358
33359         Reviewed by Gyuyoung Kim.
33360
33361         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
33362         Depends on GLX since Evas doesn't provide the necessary functionality.
33363
33364         No new tests. Covered by existing tests.
33365
33366         * PlatformEfl.cmake:
33367         * platform/graphics/GraphicsContext3D.h:
33368         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33369         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33370         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33371         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33372         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33373         (WebCore):
33374         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
33375         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
33376         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
33377         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33378         (GraphicsContext3DPrivate):
33379         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33380         (WebCore::GraphicsContext3D::reshape):
33381         * platform/graphics/surfaces/efl: Added.
33382         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
33383         (WebCore):
33384         (WebCore::OffScreenRootWindow::get):
33385         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33386         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33387         (WebCore::GraphicsSurfacePrivate::createSurface):
33388         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33389         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33390         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33391         (WebCore::GraphicsSurface::platformBeginPaint):
33392         (WebCore::GraphicsSurface::createReadOnlyImage):
33393         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33394         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
33395         (WebCore):
33396         (OffScreenRootWindow):
33397         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
33398         (GraphicsSurfacePrivate):
33399         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
33400         (WebCore::GraphicsSurfacePrivate::createPixmap):
33401         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33402         (WebCore::GraphicsSurfacePrivate::display):
33403         (WebCore::GraphicsSurfacePrivate::glxPixmap):
33404         (WebCore::GraphicsSurfacePrivate::size):
33405         (WebCore::GraphicsSurfacePrivate::glContext):
33406         (WebCore::resolveGLMethods):
33407         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
33408         (WebCore):
33409         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
33410         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33411         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33412         (WebCore::GraphicsSurfacePrivate::createSurface):
33413         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33414         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33415         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33416
33417 2012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
33418
33419         Add feature flags for CSS Device Adaptation
33420         https://bugs.webkit.org/show_bug.cgi?id=95960
33421
33422         Reviewed by Kenneth Rohde Christiansen.
33423
33424         * Configurations/FeatureDefines.xcconfig:
33425         * GNUmakefile.am:
33426         * GNUmakefile.features.am:
33427
33428 2012-10-26  Li Yin  <li.yin@intel.com>
33429
33430         fast/forms/file/input-file-write-files.html should cover correct setting value
33431         https://bugs.webkit.org/show_bug.cgi?id=100085
33432
33433         Reviewed by Kentaro Hara.
33434
33435         From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
33436         On setting, if the new value is the empty string, it must empty the list of selected
33437         files; otherwise, it must throw an InvalidStateError exception.
33438
33439         Test: fast/forms/file/input-file-value.html
33440
33441         * html/HTMLInputElement.cpp:
33442         (WebCore::HTMLInputElement::setValue):
33443         (WebCore):
33444         * html/HTMLInputElement.h:
33445         (HTMLInputElement):
33446         * html/HTMLInputElement.idl:
33447
33448 2012-10-26  Keishi Hattori  <keishi@webkit.org>
33449
33450         Refactor calendar picker to remove _x/_y from DaysTable
33451         https://bugs.webkit.org/show_bug.cgi?id=100460
33452
33453         Reviewed by Kent Tamura.
33454
33455         _x/_y properties keep the coordinates for the selection but when we add
33456         week and month picking capabilities, the selection can't be expressed as
33457         a set of coordinates. This change will remove it.
33458
33459         No new tests. Covered by calendar-picker-*.html tests.
33460
33461         * Resources/pagepopups/calendarPicker.js:
33462         (DaysTable): Removed _x/_y properties.
33463         (DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
33464         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
33465         (DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
33466         (DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
33467         (DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
33468         (DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
33469         (DaysTable.prototype._deselect): Deselects all selections.
33470         (DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
33471         (DaysTable.prototype._handleMouseOut): Use _deselect.
33472         (DaysTable.prototype._handleKey): Lookup the selection position.
33473         (DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.
33474
33475 2012-10-26  Ningxin Hu  <ningxin.hu@intel.com>
33476
33477         FileReader abort case causes Chromium renderer crash
33478         https://bugs.webkit.org/show_bug.cgi?id=99142
33479
33480         Reviewed by Kentaro Hara.
33481
33482         Before dispatching load event, FileReader should check if it is
33483         in aborting.
33484
33485         Test: manually launch fast/files/file-reader-abort.html in Chromium
33486         browser and compare the result with
33487         fast/files/file-reader-abort-expected.txt.
33488
33489         * fileapi/FileReader.cpp:
33490         (WebCore::FileReader::didFinishLoading):
33491
33492 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33493
33494         Generate less repaint calls during subtree detaching
33495         https://bugs.webkit.org/show_bug.cgi?id=99741
33496
33497         Reviewed by Eric Seidel.
33498
33499         Following bug 98336, detach is now a subtree top-down operation. Because we
33500         track visual overflow from our children during layout for most cases, we can
33501         generate a repaint only on the subtree root.
33502
33503         On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
33504         26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
33505         it decreases the time by 35%. This is due to being the best case and we now generate
33506         only one repaint per detach phase.
33507
33508         Covered by existing pixels tests (including but not limited to repaint ones).
33509
33510         * rendering/RenderObject.cpp:
33511         (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
33512         Changed the function not to be recursive anymore to generate one painting for
33513         our root only. Added a FIXME about using our RenderLayer for repainting to avoid
33514         the cost of computing our absolute repaint rectangle.
33515
33516         * rendering/RenderObjectChildList.cpp:
33517         (WebCore::RenderObjectChildList::removeChildNode):
33518         Removed the logic for repainting in the general case. However we still force a repaint
33519         if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
33520         objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
33521         are properly accounted for in our clipppedOverflowRectForRepaint).
33522
33523 2012-10-26  Kenichi Ishibashi  <bashi@chromium.org>
33524
33525         local(Helvetica) in src descriptor prevent fallback
33526         https://bugs.webkit.org/show_bug.cgi?id=100446
33527
33528         Reviewed by Dan Bernstein.
33529
33530         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
33531         of font family names, so that if the family name specified in the font-family
33532         property is not available on the system, but the its alias is available,
33533         it will be used instead. This is appropriate for the font-family property,
33534         but not for font family names specified in the local() function of the src
33535         descriptor in a @font-face rule.
33536
33537         This patch disables the mechanism while checking src descriptor of @font-face.
33538
33539         No new tests. It's difficult to test the change because 'Helvetica' can
33540         be mapped any other font. For example, chromium DRT uses FontConfig to
33541         map Helvetica to Times New Roman. Other ports may map Helvetica to other
33542         fonts. We can't define the expected result.
33543
33544         * css/CSSFontFaceSource.cpp:
33545         (WebCore::CSSFontFaceSource::getFontData):
33546         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
33547         This disables aliasing font family names in FontCache.
33548
33549 2012-10-26  Eugene Klyuchnikov  <eustas.bug@gmail.com>
33550
33551         Web Inspector: Doctype Audits panel code
33552         https://bugs.webkit.org/show_bug.cgi?id=100371
33553
33554         Reviewed by Alexander Pavlov.
33555
33556         This is a preparation step for ongoing refactoring.
33557         It is much easier to read doctyped code.
33558
33559         * inspector/front-end/AuditRules.js:
33560         (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
33561         Replaced "undefined" with "null"
33562         * inspector/front-end/AuditsPanel.js:
33563         (WebInspector.AuditCategory.prototype.callbackWrapper):
33564         Removed callback parameter indirection.        
33565         (WebInspector.AuditRuleResult.prototype.addFormatted):
33566         Converted private instance function to scoped function.
33567
33568 2012-10-26  János Badics  <jbadics@inf.u-szeged.hu>
33569
33570         [Qt]REGRESSION(r131428): cookies.db created on wrong place
33571         https://bugs.webkit.org/show_bug.cgi?id=99445
33572
33573         Reviewed by Simon Hausmann.
33574
33575         Added a slash to the path of cookies.db in CookieJarQt.cpp.
33576
33577         * platform/qt/CookieJarQt.cpp:
33578         (WebCore::SharedCookieJarQt::SharedCookieJarQt):
33579
33580 2012-10-26  Adam Barth  <abarth@webkit.org>
33581
33582         Unreviewed. This ASSERT is no longer correct (and fires on many tests.)
33583
33584         * bindings/v8/V8DOMWrapper.h:
33585         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
33586
33587 2012-10-26  Kent Tamura  <tkent@chromium.org>
33588
33589         [Chromium-Win] Support shortTimeFormat
33590         https://bugs.webkit.org/show_bug.cgi?id=100471
33591
33592         Reviewed by Kentaro Hara.
33593
33594         No new tests. Covered by fast/forms/time-multiple-fields/ and
33595         WebKit/chromium/tests/LocaleWinTest.
33596
33597         * platform/text/LocaleWin.cpp:
33598         (WebCore::LocaleWin::shortTimeFormat):
33599         Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
33600         from the format by LOCALE_STIMEFORMAT.
33601         * platform/text/LocaleWin.h:
33602         (LocaleWin): Declare m_timeFormatWithoutSeconds.
33603
33604 2012-10-26  Adam Barth  <abarth@webkit.org>
33605
33606         Unreviewed. Update run-bindings-tests results after recent active DOM
33607         object changes.
33608
33609         * bindings/scripts/test/V8/V8TestInterface.cpp:
33610         (WebCore::V8TestInterface::constructorCallback):
33611         (WebCore::V8TestInterface::wrapSlow):
33612         * bindings/scripts/test/V8/V8TestInterface.h:
33613         (WebCore::V8TestInterface::wrap):
33614         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
33615         (WebCore::V8TestNamedConstructorConstructorCallback):
33616         (WebCore::V8TestNamedConstructor::wrapSlow):
33617         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
33618         (WebCore::V8TestNamedConstructor::wrap):
33619
33620 2012-10-26  MORITA Hajime  <morrita@google.com>
33621
33622         [V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
33623         https://bugs.webkit.org/show_bug.cgi?id=100462
33624
33625         Reviewed by Adam Barth.
33626
33627         Removed the no longer correct assertion statement.
33628
33629         No new tests. Covered by breaking tests.
33630
33631         * bindings/v8/V8DOMWrapper.cpp:
33632         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
33633
33634 2012-10-25  Adam Barth  <abarth@webkit.org>
33635
33636         [V8] WorkerContextExecutionProxy should use ScopedPersistent
33637         https://bugs.webkit.org/show_bug.cgi?id=100443
33638
33639         Reviewed by Eric Seidel.
33640
33641         This class was manually re-implementing the ScopedPersistent pattern.
33642
33643         * bindings/v8/WorkerContextExecutionProxy.cpp:
33644         (WebCore::WorkerContextExecutionProxy::dispose):
33645         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
33646         (WebCore::WorkerContextExecutionProxy::evaluate):
33647         * bindings/v8/WorkerContextExecutionProxy.h:
33648         (WebCore::WorkerContextExecutionProxy::context):
33649         (WorkerContextExecutionProxy):
33650
33651 2012-10-25  Peter Wang  <peter.wang@torchmobile.com.cn>
33652
33653         A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
33654         https://bugs.webkit.org/show_bug.cgi?id=100347
33655
33656         Reviewed by Mark Lam and Filip Pizlo.
33657
33658         In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
33659         since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".
33660
33661         No new test case, since no behaviour changed.
33662
33663         * bindings/js/JavaScriptCallFrame.cpp:
33664         (WebCore::JavaScriptCallFrame::evaluate):
33665
33666 2012-10-25  Adam Barth  <abarth@webkit.org>
33667
33668         [V8] We can merge the wrapper maps for DOM objects and active DOM objects
33669         https://bugs.webkit.org/show_bug.cgi?id=100432
33670
33671         Reviewed by Eric Seidel.
33672
33673         Now that we use the same object to visit both DOM objects and active
33674         DOM objects, there's no reason to keep them in separate hash maps.
33675
33676         * bindings/scripts/CodeGeneratorV8.pm:
33677         (GetDomMapName):
33678         * bindings/v8/DOMDataStore.cpp:
33679         (WebCore::DOMDataStore::DOMDataStore):
33680         (WebCore::DOMDataStore::~DOMDataStore):
33681         (WebCore::DOMDataStore::reportMemoryUsage):
33682         * bindings/v8/DOMDataStore.h:
33683         (DOMDataStore):
33684         * bindings/v8/V8DOMMap.cpp:
33685         * bindings/v8/V8DOMMap.h:
33686         (NodeWrapperVisitor):
33687         (WebCore):
33688         * bindings/v8/V8DOMWrapper.h:
33689         (V8DOMWrapper):
33690         * bindings/v8/V8GCController.cpp:
33691         (WebCore::V8GCController::majorGCPrologue):
33692         * bindings/v8/custom/V8WebSocketCustom.cpp:
33693         (WebCore::V8WebSocket::constructorCallback):
33694         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
33695         (WebCore::V8XMLHttpRequest::constructorCallback):
33696
33697 2012-10-25  Charles Wei  <charles.wei@torchmobile.com.cn>
33698
33699         [BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
33700         https://bugs.webkit.org/show_bug.cgi?id=100448
33701
33702         Reviewed by George Staikos.
33703
33704         Internally reviewed by Joe Mason.
33705
33706         We didn't check the persistent Credential Storage for Credentials when challenged by the server.
33707
33708         Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.
33709
33710         * platform/network/blackberry/NetworkJob.cpp:
33711         (WebCore::NetworkJob::sendRequestWithCredentials):
33712
33713 2012-10-25  Joshua Bell  <jsbell@chromium.org>
33714
33715         IndexedDB: Add histogram statistics for backing store errors
33716         https://bugs.webkit.org/show_bug.cgi?id=98465
33717
33718         Reviewed by Adam Barth.
33719
33720         Define a macro for consistent asserting (during development), logging, and recording
33721         internal backing store errors via histograms. Define specific histogram values to
33722         track issues with opening backing stores to gather stats on corruption.
33723
33724         No new tests - just the stats, ma'am, just the stats.
33725
33726         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
33727         (WebCore):
33728         (WebCore::setUpMetadata):
33729         (WebCore::IDBLevelDBBackingStore::open):
33730         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
33731         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
33732         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
33733         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
33734         (WebCore::deleteRange):
33735         (WebCore::IDBLevelDBBackingStore::getObjectStores):
33736         (WebCore::IDBLevelDBBackingStore::createObjectStore):
33737         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
33738         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
33739         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
33740         (WebCore::IDBLevelDBBackingStore::getIndexes):
33741         (WebCore::IDBLevelDBBackingStore::createIndex):
33742         (WebCore::IDBLevelDBBackingStore::deleteIndex):
33743         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
33744
33745 2012-10-25  Adam Barth  <abarth@webkit.org>
33746
33747         [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
33748         https://bugs.webkit.org/show_bug.cgi?id=100430
33749
33750         Reviewed by Eric Seidel.
33751
33752         There's no reason for these visitors to be separate objects anymore.
33753
33754         * bindings/v8/V8GCController.cpp:
33755         (WebCore::ObjectVisitor::ObjectVisitor):
33756         (WebCore::ObjectVisitor::visitDOMWrapper):
33757         (WebCore::V8GCController::majorGCPrologue):
33758
33759 2012-10-25  Tony Chang  <tony@chromium.org>
33760
33761         Remove unused static methods from DOMTimer.h
33762         https://bugs.webkit.org/show_bug.cgi?id=100427
33763
33764         Reviewed by Kenneth Russell.
33765
33766         Since these values got moved into Settings, these methods are no longer called.
33767
33768         No new tests, removing dead code.
33769
33770         * page/DOMTimer.h:
33771         (DOMTimer): Remove unused getters.
33772
33773 2012-10-25  Leo Yang  <leoyang@rim.com>
33774
33775         [BlackBerry] Infinite redirect loop is not displayed to user
33776         https://bugs.webkit.org/show_bug.cgi?id=100420
33777
33778         Reviewed by George Staikos.
33779
33780         CNN.com is redirecting us infinitely with 302 http code and response body. We catch
33781         it my setting our extended error code as we defined. But we were not trying to notify
33782         error because we have received body. This was wrong. For extended http status code
33783         which is less than 0 we should display our own error page regardless there was data
33784         received from the server or not.
33785
33786         Tested by manually loading CNN.com.
33787
33788         * platform/network/blackberry/NetworkJob.cpp:
33789         (WebCore::NetworkJob::shouldNotifyClientFailed):
33790
33791 2012-10-25  Nico Weber  <thakis@chromium.org>
33792
33793         Flip ImageOrientation coordinate system from lefthanded to righthanded
33794         https://bugs.webkit.org/show_bug.cgi?id=100414
33795
33796         Reviewed by Eric Seidel.
33797
33798         platform/graphics, noteably GraphicsContext uses a right-handed
33799         coordinate system (origin in the top left corner, x growing to the
33800         right, y to the bottom).  ImageOrientation was an outlier from
33801         and used a left-handed coordinate system.  This patch makes
33802         ImageOrientation match the rest of platform/graphics.
33803
33804         This is a pure refactoring and has no observable effects.
33805
33806         * platform/chromium/DragImageChromiumSkia.cpp:
33807         (WebCore::createDragImageFromImage):
33808         * platform/graphics/ImageOrientation.cpp:
33809         (WebCore::ImageOrientation::transformFromDefault):
33810         * platform/graphics/cg/GraphicsContextCG.cpp:
33811         (WebCore::GraphicsContext::drawNativeImage):
33812         * platform/graphics/skia/ImageSkia.cpp:
33813         (WebCore::BitmapImage::draw):
33814         * platform/mac/DragImageMac.mm:
33815         (WebCore::createDragImageFromImage):
33816         * rendering/RenderObject.cpp:
33817         (WebCore::RenderObject::shouldRespectImageOrientation):
33818
33819 2012-10-25  Keishi Hattori  <keishi@webkit.org>
33820
33821         Hide popup while transitioning from the suggestion picker to the calendar picker
33822         https://bugs.webkit.org/show_bug.cgi?id=99537
33823
33824         Reviewed by Kent Tamura.
33825
33826         Right now you can see a squished calendar picker while transitioning
33827         from suggestion picker from calendar picker. This change will hide the
33828         popup before opening the calendar picker.
33829
33830         No new tests.
33831
33832         * Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
33833         (hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
33834         * Resources/pagepopups/suggestionPicker.js:
33835         (SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.
33836
33837 2012-10-25  Anders Carlsson  <andersca@apple.com>
33838
33839         Fix build.
33840
33841         * page/mac/EventHandlerMac.mm:
33842         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33843
33844 2012-10-25  Anders Carlsson  <andersca@apple.com>
33845
33846         Remove feed and feeds URL scheme workarounds
33847         https://bugs.webkit.org/show_bug.cgi?id=100442
33848
33849         Reviewed by Dan Bernstein.
33850
33851         * dom/DocumentEventQueue.cpp:
33852         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
33853         * page/mac/EventHandlerMac.mm:
33854         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33855
33856 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
33857
33858         Unreviewed, rolling out r132514.
33859         http://trac.webkit.org/changeset/132514
33860         https://bugs.webkit.org/show_bug.cgi?id=100440
33861
33862         "Broke chromium content_browsertests AccessibilityAriaMenu
33863         AccessibilityInputRange AccessibilityListMarkers" (Requested
33864         by scheib on #webkit).
33865
33866         * accessibility/AXObjectCache.cpp:
33867         (WebCore::AXObjectCache::getOrCreate):
33868         (WebCore::AXObjectCache::contentChanged):
33869         (WebCore::AXObjectCache::childrenChanged):
33870         (WebCore::AXObjectCache::handleAriaRoleChanged):
33871         * accessibility/AXObjectCache.h:
33872         (AXObjectCache):
33873         (WebCore::AXObjectCache::contentChanged):
33874         * accessibility/AccessibilityObject.cpp:
33875         (WebCore::AccessibilityObject::AccessibilityObject):
33876         * accessibility/AccessibilityObject.h:
33877         (WebCore::AccessibilityObject::contentChanged):
33878         (AccessibilityObject):
33879         * accessibility/AccessibilityRenderObject.cpp:
33880         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
33881         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
33882         (WebCore::AccessibilityRenderObject::contentChanged):
33883         * accessibility/AccessibilityRenderObject.h:
33884         (AccessibilityRenderObject):
33885         * accessibility/AccessibilityScrollView.cpp:
33886         (WebCore::AccessibilityScrollView::isAttachment):
33887         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
33888         (WebCore::AccessibilityScrollView::updateScrollbars):
33889         (WebCore::AccessibilityScrollView::webAreaObject):
33890         (WebCore::AccessibilityScrollView::elementRect):
33891         (WebCore::AccessibilityScrollView::documentFrameView):
33892         (WebCore::AccessibilityScrollView::parentObject):
33893         (WebCore::AccessibilityScrollView::parentObjectIfExists):
33894         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
33895         (WebCore::AccessibilityScrollView::scrollTo):
33896         * accessibility/AccessibilityScrollView.h:
33897         (WebCore::AccessibilityScrollView::scrollView):
33898         (AccessibilityScrollView):
33899         * accessibility/AccessibilityTable.cpp:
33900         (WebCore::AccessibilityTable::isDataTable):
33901         * accessibility/chromium/AXObjectCacheChromium.cpp:
33902         (WebCore::AXObjectCache::postPlatformNotification):
33903         * dom/Element.cpp:
33904         (WebCore::Element::attributeChanged):
33905         * rendering/RenderBlock.cpp:
33906         (WebCore::RenderBlock::deleteLineBoxTree):
33907         (WebCore::RenderBlock::createAndAppendRootInlineBox):
33908         * rendering/RenderObject.cpp:
33909         (WebCore::RenderObject::styleWillChange):
33910         * rendering/RenderText.cpp:
33911         (WebCore::RenderText::setText):
33912
33913 2012-10-25  Dan Bernstein  <mitz@apple.com>
33914
33915         <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
33916         https://bugs.webkit.org/show_bug.cgi?id=100413
33917
33918         Reviewed by Anders Carlsson.
33919
33920         RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
33921         Sped up the Core Graphics implementation of this function considerably by removing an
33922         unnecessary call to CGContextGetClipBoundingBox.
33923
33924         * platform/graphics/cg/GraphicsContextCG.cpp:
33925         (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
33926         box of the current clip.
33927
33928 2012-10-25  Tim Horton  <timothy_horton@apple.com>
33929
33930         REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
33931         https://bugs.webkit.org/show_bug.cgi?id=100433
33932         <rdar://problem/12575582>
33933
33934         Reviewed by Simon Fraser.
33935
33936         Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
33937         we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
33938         on the main thread will short-circuit and end up only updating the GraphicsLayer's
33939         notion of its current position, but never synchronizing that to the layer itself.
33940
33941         No new tests, as this is currently untestable.
33942
33943         * page/scrolling/ScrollingCoordinator.cpp:
33944         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
33945
33946 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
33947
33948         Tiled layers are missing content on zooming
33949         https://bugs.webkit.org/show_bug.cgi?id=100422
33950
33951         Reviewed by Beth Dakin.
33952
33953         Tiled layers using TileCaches were missing content after
33954         zooming. TileCache was confused in the presence of scaling;
33955         it unapplies the scale on the layer above the tiles (so the tiles
33956         live in screen space), and computed the tile coverage rect
33957         in these tile coordinates. This worked for the page tile cache,
33958         because its visibleRect was sent in pre-scaled. However, for
33959         tiled layer TileCaches this was wrong.
33960         
33961         Fix by scaling the tile coverage rect by m_scale before
33962         using it to compute which tiles to throw away and bring in.
33963         
33964         To fix the problem of the visibleRect being pre-scaled
33965         for the page tile cache, remove the setting of the visibleRect
33966         in RenderLayerCompositor::frameViewDidScroll(), and rely on 
33967         GraphicsLayerCA::updateVisibleRect() which computes the
33968         visible rect in the correct, layer coordinates.
33969
33970         Test: compositing/tiling/tile-cache-zoomed.html
33971
33972         * platform/graphics/ca/GraphicsLayerCA.cpp:
33973         (WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
33974         for all tile cache layers, not just tiled layer ones, but only do
33975         the visible rect adjustment for those that are not the page tile cache.
33976         * platform/graphics/ca/mac/TileCache.mm:
33977         (WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
33978         which is scaled to be in the same coordinate space as the tile grid.
33979         * rendering/RenderLayerCompositor.cpp:
33980         (WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
33981         that sets the setVisibleRect() on the TiledBacking.
33982
33983 2012-10-25  Adam Barth  <abarth@webkit.org>
33984
33985         [V8] ActiveDOMNodes no longer require a separate wrapper map
33986         https://bugs.webkit.org/show_bug.cgi?id=100352
33987
33988         Reviewed by Eric Seidel.
33989
33990         There is no longer any reason to keep a separate DOM wrapper map for
33991         active DOM nodes. We can simply store them in the normal DOM node
33992         wrapper map (which is more efficient because it doesn't use a HashMap).
33993
33994         * bindings/scripts/CodeGeneratorV8.pm:
33995         (GetDomMapName):
33996         * bindings/v8/DOMDataStore.cpp:
33997         (WebCore::DOMDataStore::DOMDataStore):
33998         (WebCore::DOMDataStore::~DOMDataStore):
33999         (WebCore::DOMDataStore::reportMemoryUsage):
34000         * bindings/v8/DOMDataStore.h:
34001         (DOMDataStore):
34002         * bindings/v8/IntrusiveDOMWrapperMap.h:
34003         * bindings/v8/V8DOMMap.cpp:
34004         * bindings/v8/V8DOMMap.h:
34005         (WebCore):
34006         * bindings/v8/V8DOMWrapper.cpp:
34007         * bindings/v8/V8DOMWrapper.h:
34008         (V8DOMWrapper):
34009         (WebCore::V8DOMWrapper::getCachedWrapper):
34010
34011 2012-10-25  Tony Chang  <tony@chromium.org>
34012
34013         Unreviewed, fix the build on Mac.
34014
34015         Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
34016         Instead, put the implementation in the cpp file.
34017
34018         * page/Settings.cpp:
34019         (WebCore::Settings::defaultMinDOMTimerInterval):
34020         (WebCore):
34021         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
34022         * page/Settings.h:
34023         (Settings):
34024
34025 2012-10-25  Tony Chang  <tony@chromium.org>
34026
34027         Move default DOM Timer values into Settings
34028         https://bugs.webkit.org/show_bug.cgi?id=100405
34029
34030         Reviewed by Kenneth Russell.
34031
34032         Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
34033         the Settings object. This is more consistent with other global settings and allows us to remove
34034         the setters on the DOMTimer object.
34035
34036         No new tests, this is a refactor.
34037
34038         * page/DOMTimer.cpp: Remove globals.
34039         * page/DOMTimer.h:
34040         (WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
34041         (WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
34042         (DOMTimer): Remove setters.
34043         * page/Settings.cpp:
34044         (WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
34045         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
34046         * page/Settings.h:
34047         (WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
34048         (WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
34049         (Settings): Add globals.
34050
34051 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34052
34053         Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
34054         https://bugs.webkit.org/show_bug.cgi?id=100416
34055
34056         Reviewed by Beth Dakin.
34057
34058         The tileCoverageRect is computed in "tile" coordinates, which don't match
34059         the visibleRect coordinates. It's more useful when testing to see the
34060         tile coverage relative to the view bounds, so unapply the scale whem
34061         reporting tile coverage in tests.
34062
34063         Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
34064                platform/mac/tiled-drawing/tiled-drawing-zoom.html
34065
34066         * platform/graphics/ca/mac/TileCache.h:
34067         * platform/graphics/ca/mac/TileCache.mm:
34068         (WebCore::TileCache::tileCoverageRect):
34069
34070 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
34071
34072         Unreviewed, rolling out r132269.
34073         http://trac.webkit.org/changeset/132269
34074         https://bugs.webkit.org/show_bug.cgi?id=100412
34075
34076         "Speculative rollout of r132269 in hopes of fixing a
34077         mysterious recalcStyle crasher" (Requested by eseidel on
34078         #webkit).
34079
34080         * rendering/RenderBlock.cpp:
34081         (WebCore::RenderBlock::updateFirstLetter):
34082         * rendering/RenderListBox.h:
34083         * rendering/RenderObjectChildList.cpp:
34084         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
34085
34086 2012-10-25  Stephen White  <senorblanco@chromium.org>
34087
34088         Change ReferenceFilterOperations to reference (own) the data passed to
34089         them.
34090         https://bugs.webkit.org/show_bug.cgi?id=97715
34091
34092         Reviewed by Nate Chapin.
34093
34094         Covered by css3/filters/reference-filter-update-after-remove.html
34095
34096         * css/CachedSVGDocumentReference.h: Added.
34097         (CachedSVGDocumentReference):
34098         New class which holds a CachedResourceHandle<CachedSVGDocument>, but
34099         can be placed in ReferenceFilterOperation's Data.  It also calls
34100         addClient() / removeClient(), in order to keep the CachedSVGDocument
34101         alive until the FilterEffectRenderer can get it.
34102         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
34103         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
34104         (WebCore::CachedSVGDocumentReference::document):
34105         Accessor for the underlying document.
34106         * css/StyleResolver.cpp:
34107         (WebCore::StyleResolver::loadPendingSVGDocuments):
34108         Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
34109         transfer ownership to the ReferenceFilterOperation.
34110         (WebCore::StyleResolver::createFilterOperations):
34111         Same as above.
34112         * platform/graphics/filters/FilterOperation.h:
34113         (Data):
34114         New base class for generic data which can be deleted polymorphically.
34115         (WebCore::FilterOperation::ReferenceFilterOperation::data):
34116         (WebCore::FilterOperation::ReferenceFilterOperation::setData):
34117         Use the above-mentioned Data class, instead of a void *.
34118         (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
34119         Don't initialize data to null; OwnPtr will do that for us.
34120         * rendering/FilterEffectRenderer.cpp:
34121         (WebCore::FilterEffectRenderer::buildReferenceFilter):
34122         Extract the cached SVG document from the reference data.
34123         * rendering/RenderLayerFilterInfo.cpp:
34124         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
34125         Extract the cached SVG document from the reference data.
34126
34127 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34128
34129         Incorrect tile size in the slow scrolling case
34130         https://bugs.webkit.org/show_bug.cgi?id=100411
34131
34132         Reviewed by Beth Dakin.
34133
34134         If we're in slow scrolling mode, we don't want to inflate the
34135         coverage rect based on scrollability. This ensures that the few
34136         big tiles we create have the correct size.
34137
34138         * platform/graphics/ca/mac/TileCache.mm:
34139         (WebCore::TileCache::computeTileCoverageRect):
34140
34141 2012-10-25  Nico Weber  <thakis@chromium.org>
34142
34143         Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
34144         https://bugs.webkit.org/show_bug.cgi?id=100401
34145
34146         Reviewed by Eric Seidel.
34147
34148         This is an alternative fix for the regression caused by r132384 / bug
34149         100179. The bug exists because different pieces of code didn't agree
34150         which space the transformation returned by ImageOrientation was in.
34151
34152         r132384 moved it from CG coordinates to skia coordinates, but didn't
34153         do it completetely. This CL reverts this part of r132384 so that the
34154         transformation is in CG coordinates again, and adapts the skia code to
34155         work in that space.
34156
34157         Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
34158         make the cg code work with the transform in skia coordinates.
34159
34160         Covered by fast/images/exif-orientation.html
34161
34162         * platform/chromium/DragImageChromiumSkia.cpp:
34163         (WebCore::createDragImageFromImage):
34164         * platform/graphics/ImageOrientation.cpp:
34165         (WebCore::ImageOrientation::transformFromDefault):
34166         * platform/graphics/ImageOrientation.h:
34167         (WebCore):
34168         (WebCore::ImageOrientation::usesWidthAsHeight):
34169         (WebCore::ImageOrientation::fromEXIFValue):
34170         (ImageOrientation):
34171         * platform/graphics/cg/GraphicsContextCG.cpp:
34172         (WebCore::GraphicsContext::drawNativeImage):
34173         * platform/graphics/skia/ImageSkia.cpp:
34174         (WebCore::BitmapImage::draw):
34175         * platform/mac/DragImageMac.mm:
34176         (WebCore::createDragImageFromImage):
34177         * rendering/RenderObject.cpp:
34178         (WebCore::RenderObject::shouldRespectImageOrientation):
34179
34180 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34181
34182         Log the tile cache tile size in test output
34183         https://bugs.webkit.org/show_bug.cgi?id=100409
34184
34185         Reviewed by Beth Dakin.
34186
34187         When dumping tile cache information in tests, also dump the tile size.
34188
34189         * platform/graphics/TiledBacking.h:
34190         * platform/graphics/ca/GraphicsLayerCA.cpp:
34191         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
34192         * platform/graphics/ca/mac/TileCache.h:
34193
34194 2012-10-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>
34195
34196         do not multiply/demultiply colors when alpha is 255
34197         https://bugs.webkit.org/show_bug.cgi?id=89246
34198
34199         Reviewed by Kenneth Rohde Christiansen.
34200
34201         Do not use colorFromPremultipliedARGB in getImageData nor
34202         premultipliedARGBFromColor in putByteArray. Avoiding object creation
34203         and function call make canvas.getImageData about 10% faster and
34204         canvas.putImageData about 30% faster.
34205
34206         Also, we avoid multiplication/demultiplication computation when alpha
34207         is 255. Result is the same, but when there is no transparency,
34208         canvas.getImageData is about 4x faster, and canvas.putImageData is
34209         about 2x faster.
34210
34211         No new tests. No change in behavior.
34212
34213         * platform/graphics/cairo/ImageBufferCairo.cpp:
34214         (WebCore::getImageData):
34215         (WebCore::ImageBuffer::putByteArray):
34216
34217 2012-10-25  Nate Chapin  <japhet@chromium.org>
34218
34219         Add a main resource type to the memory cache
34220         https://bugs.webkit.org/show_bug.cgi?id=99864
34221
34222         Reviewed by Adam Barth.
34223
34224         No new tests, no functionality change.
34225
34226         * inspector/InspectorPageAgent.cpp:
34227         (WebCore::hasTextContent):
34228         (WebCore::InspectorPageAgent::cachedResourceType):
34229         * loader/SubresourceLoader.cpp:
34230         (WebCore::SubresourceLoader::willSendRequest):
34231         (WebCore::SubresourceLoader::didReceiveResponse):
34232         (WebCore::SubresourceLoader::didFail):
34233         * loader/cache/CachedRawResource.cpp:
34234         (WebCore::CachedRawResource::CachedRawResource):
34235         (WebCore::CachedRawResource::addAdditionalRequestHeaders):
34236         (WebCore):
34237         (WebCore::CachedRawResource::setShouldBufferData):
34238         (WebCore::CachedRawResource::loader):
34239         (WebCore::CachedRawResource::clear):
34240         * loader/cache/CachedRawResource.h:
34241         (WebCore):
34242         (CachedRawResource):
34243         * loader/cache/CachedResource.cpp:
34244         (WebCore::defaultPriorityForResourceType):
34245         (WebCore::cachedResourceTypeToTargetType):
34246         (WebCore::CachedResource::updateResourceRequest):
34247         (WebCore):
34248         * loader/cache/CachedResource.h:
34249         (WebCore::CachedResource::setResourceError):
34250         (WebCore::CachedResource::resourceError):
34251         (CachedResource):
34252         (WebCore::CachedResource::ignoreForRequestCount):
34253         * loader/cache/CachedResourceLoader.cpp:
34254         (WebCore::createResource):
34255         (WebCore::CachedResourceLoader::requestRawResource):
34256         (WebCore::CachedResourceLoader::checkInsecureContent):
34257         (WebCore::CachedResourceLoader::canRequest):
34258         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
34259         * loader/cache/CachedResourceLoader.h:
34260         (CachedResourceLoader):
34261         * platform/network/ResourceLoadPriority.h:
34262         * platform/network/cf/ResourceRequestCFNet.h:
34263         (WebCore::toResourceLoadPriority):
34264         (WebCore::toHTTPPipeliningPriority):
34265
34266 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34267
34268         [V8] Add histograms to measure V8 work done during window close and navigation
34269         https://bugs.webkit.org/show_bug.cgi?id=100358
34270
34271         Reviewed by Adam Barth.
34272
34273         * bindings/v8/ScriptController.cpp:
34274         (WebCore::ScriptController::clearForClose):
34275         (WebCore::ScriptController::clearWindowShell):
34276
34277 2012-10-25  Antti Koivisto  <antti@apple.com>
34278
34279         Avoid unnecessary style recalcs on id attribute mutation.
34280         https://bugs.webkit.org/show_bug.cgi?id=100395
34281
34282         Reviewed by Andreas Kling.
34283
34284         There is no need to invalidate element style on id attribute change if neither the old nor the new id were 
34285         mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
34286         
34287         Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling. 
34288
34289         * css/StyleResolver.cpp:
34290         (WebCore::StyleResolver::hasSelectorForId):
34291         (WebCore):
34292         * css/StyleResolver.h:
34293         * dom/Element.cpp:
34294         (WebCore::makeIdForStyleResolution):
34295         (WebCore):
34296         (WebCore::Element::attributeChanged):
34297
34298 2012-10-25  Dominic Mazzoni  <dmazzoni@google.com>
34299
34300         AX: Notification should be sent when accessibilityIsIgnored changes
34301         https://bugs.webkit.org/show_bug.cgi?id=99547
34302
34303         Reviewed by Chris Fleizach.
34304
34305         Adds a new flag in AccessibilityObject that keeps track of the most recent
34306         value of accessibilityIsIgnored(). After certain events such as an ARIA
34307         attribute change or content change, checks the new value of
34308         accessibilityIsIgnored() and posts a "children changed" notification on the
34309         parent node if it changed, making sure the parent recomputes its vector of
34310         (unignored) children.
34311
34312         Also moves handling of attribute changes to AXObjectCache, and sends
34313         notifications for some attribute changes that were previously silent. On
34314         Chromium, all changes to an accessibility object's attributes should
34315         result in some notification.
34316
34317         Some tests would have broken because an AccessibilityScrollView was created
34318         and holding a reference to a ScrollView for an iframe after it was deleted,
34319         so this change switches AccessibilityScrollView to hold a weak reference
34320         to ScrollView instead.
34321
34322         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
34323                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
34324                platform/chromium/accessibility/text-change-notification.html
34325
34326         * accessibility/AXObjectCache.cpp:
34327         (WebCore::AXObjectCache::focusedUIElementForPage):
34328         (WebCore::AXObjectCache::getOrCreate):
34329         (WebCore::AXObjectCache::textChanged):
34330         (WebCore):
34331         (WebCore::AXObjectCache::childrenChanged):
34332         (WebCore::AXObjectCache::handleAriaRoleChanged):
34333         (WebCore::AXObjectCache::handleAttributeChanged):
34334         (WebCore::AXObjectCache::labelChanged):
34335         (WebCore::AXObjectCache::recomputeIsIgnored):
34336         * accessibility/AXObjectCache.h:
34337         (AXObjectCache):
34338         (WebCore::AXObjectCache::childrenChanged):
34339         (WebCore::AXObjectCache::textChanged):
34340         (WebCore::AXObjectCache::handleAttributeChanged):
34341         (WebCore::AXObjectCache::recomputeIsIgnored):
34342         * accessibility/AccessibilityNodeObject.cpp:
34343         (WebCore::AccessibilityNodeObject::insertChild):
34344         * accessibility/AccessibilityObject.cpp:
34345         (WebCore::AccessibilityObject::AccessibilityObject):
34346         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
34347         (WebCore):
34348         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
34349         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
34350         * accessibility/AccessibilityObject.h:
34351         (WebCore::AccessibilityObject::textChanged):
34352         (AccessibilityObject):
34353         * accessibility/AccessibilityRenderObject.cpp:
34354         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
34355         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
34356         (WebCore::AccessibilityRenderObject::textChanged):
34357         (WebCore::AccessibilityRenderObject::addHiddenChildren):
34358         (WebCore::AccessibilityRenderObject::addChildren):
34359         * accessibility/AccessibilityRenderObject.h:
34360         (AccessibilityRenderObject):
34361         * accessibility/AccessibilityScrollView.cpp:
34362         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
34363         (WebCore):
34364         (WebCore::AccessibilityScrollView::detach):
34365         (WebCore::AccessibilityScrollView::isAttachment):
34366         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
34367         (WebCore::AccessibilityScrollView::updateScrollbars):
34368         (WebCore::AccessibilityScrollView::webAreaObject):
34369         (WebCore::AccessibilityScrollView::elementRect):
34370         (WebCore::AccessibilityScrollView::documentFrameView):
34371         (WebCore::AccessibilityScrollView::parentObject):
34372         (WebCore::AccessibilityScrollView::parentObjectIfExists):
34373         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
34374         (WebCore::AccessibilityScrollView::scrollTo):
34375         * accessibility/AccessibilityScrollView.h:
34376         (WebCore::AccessibilityScrollView::scrollView):
34377         (AccessibilityScrollView):
34378         * accessibility/AccessibilityTable.cpp:
34379         (WebCore::AccessibilityTable::isDataTable):
34380         * accessibility/chromium/AXObjectCacheChromium.cpp:
34381         (WebCore::AXObjectCache::postPlatformNotification):
34382         * dom/Element.cpp:
34383         (WebCore::Element::attributeChanged):
34384         * rendering/RenderBlock.cpp:
34385         (WebCore::RenderBlock::deleteLineBoxTree):
34386         (WebCore::RenderBlock::createAndAppendRootInlineBox):
34387         * rendering/RenderObject.cpp:
34388         (WebCore::RenderObject::styleWillChange):
34389         * rendering/RenderText.cpp:
34390         (WebCore::RenderText::setText):
34391
34392 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34393
34394         Conditionalize XHR timeout support
34395         https://bugs.webkit.org/show_bug.cgi?id=100356
34396
34397         Reviewed by Adam Barth.
34398
34399         Adding feature for XHR_TIMEOUT to disable it on ports that don't have
34400         network backend support for setTimeoutInterval.
34401
34402         No new tests, covered by http/tests/xmlhttprequest/timeout/*
34403
34404         * Configurations/FeatureDefines.xcconfig: Default ON on mac.
34405         * GNUmakefile.am:
34406         * GNUmakefile.features.am:
34407           Autotools support for the flag.
34408         * xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
34409         (WebCore::XMLHttpRequest::XMLHttpRequest):
34410         (WebCore):
34411         (WebCore::XMLHttpRequest::open):
34412         (WebCore::XMLHttpRequest::createRequest):
34413         (WebCore::XMLHttpRequest::didFail):
34414         * xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
34415         (XMLHttpRequest):
34416         * xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).
34417
34418 2012-10-25  Tom Sepez  <tsepez@chromium.org>
34419
34420         XSSAuditor must replace form action with about:blank when reflected action detected.
34421         https://bugs.webkit.org/show_bug.cgi?id=100280
34422
34423         Reviewed by Daniel Bates.
34424
34425         Changes empty string form-action replacement to about:blank.
34426         Existing form-action.html test modified to check this case.
34427         
34428         * html/parser/XSSAuditor.cpp:
34429         (WebCore::XSSAuditor::filterFormToken):
34430
34431 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34432
34433         Touch adjustment snaps to wrong target at a plugin boundary.
34434         https://bugs.webkit.org/show_bug.cgi?id=99938
34435
34436         Reviewed by Antonio Gomes.
34437
34438         Inidcate that an <embed> element can respond to
34439         mouse click events, since mouse events are forwarded
34440         to the plugin.  Fixes touch adjustment at a plugin
34441         boundary.  Prior to the patch a clickable element 
34442         adjacent to the plugin would capture synthetic mouse
34443         events from tap gestures that spanned the plugin
34444         boundary.
34445
34446         Test: touchadjustment/plugin.html
34447
34448         * html/HTMLEmbedElement.cpp:
34449         (WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
34450         (WebCore):
34451         * html/HTMLEmbedElement.h:
34452
34453 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34454
34455         Get rid of ScriptController::clearForNavigation
34456         https://bugs.webkit.org/show_bug.cgi?id=100390
34457
34458         Reviewed by Adam Barth.
34459
34460         Get rid of clearForNavigation and change resetIsolatedWorlds
34461         to reset so that it can also do the hintForCollectGarbage call.
34462         No new tests. No behavior change.
34463
34464         * bindings/v8/ScriptController.cpp:
34465         (WebCore::ScriptController::reset):
34466         (WebCore::ScriptController::clearForClose):
34467         (WebCore::ScriptController::clearWindowShell):
34468         * bindings/v8/ScriptController.h:
34469         (ScriptController):
34470
34471 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34472
34473         r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
34474         https://bugs.webkit.org/show_bug.cgi?id=100323
34475
34476         Reviewed by Anders Carlsson.
34477
34478         r132427 assumed that TileCaches were only used for the page, and changed the tile
34479         size behavior of all non-page TileCaches.
34480         
34481         Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
34482         affects the tile size behavior.
34483         
34484         Consolidated the two places that set TileCoverage into one, and in the process
34485         reduced FrameView's direct communication with TiledBacking.
34486
34487         No new tests because we can't test tile size via tests.
34488
34489         * page/FrameView.cpp:
34490         (WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
34491         call setIsInWindow() on the main page tile cache.
34492         (WebCore::FrameView::willMoveOffscreen): Ditto.
34493         (WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
34494         the TiledBacking that it should do stuff, just tell the compositor that
34495         layout happened.
34496         * platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
34497         * platform/graphics/ca/mac/TileCache.mm:
34498         (WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
34499         if the CoverageForSlowScrolling flag is set.
34500         * rendering/RenderLayerBacking.cpp:
34501         (WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
34502         is equivalent to renderer()->isRenderView() and clearer.
34503         (WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
34504         It would be nice to move the rest of this TiledBacking code from here somehow.
34505         (WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
34506         flags, taking into account horizontal and vertical scrollability independently,
34507         and whether we're in slow scrolling mode.
34508         * rendering/RenderLayerBacking.h:
34509         (RenderLayerBacking):
34510         * rendering/RenderLayerCompositor.cpp:
34511         (WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
34512         tiled backing update it's coverage flags.
34513         (WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
34514         (WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
34515         (WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
34516         * rendering/RenderLayerCompositor.h:
34517         (RenderLayerCompositor):
34518
34519 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34520
34521         Everything that sets RenderObject::m_style should go through setStyleInternal
34522         https://bugs.webkit.org/show_bug.cgi?id=100338
34523
34524         Reviewed by Ojan Vafai.
34525
34526         Whenever we set m_style in RenderObject go through setStyleInternal and make
34527         it inline. This gives a common place to put printfs and makes the code cleaner.
34528
34529         No new tests, just a refactor.
34530
34531         * rendering/RenderObject.cpp:
34532         (WebCore::RenderObject::createObject):
34533         (WebCore::RenderObject::setStyle):
34534         * rendering/RenderObject.h:
34535         (WebCore::RenderObject::setStyleInternal):
34536
34537 2012-10-25  Brady Eidson  <beidson@apple.com>
34538
34539         Allow LoaderStrategy to override the ResourceLoadScheduler
34540         https://bugs.webkit.org/show_bug.cgi?id=100355
34541
34542         Reviewed by Anders Carlsson.
34543
34544         Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
34545         Add a default implementation that just returns the current ResourceLoadScheduler.
34546
34547         No new tests (No behavior change).
34548
34549         Project file stuff:
34550         * CMakeLists.txt:
34551         * GNUmakefile.list.am:
34552         * Target.pri:
34553         * WebCore.exp.in:
34554         * WebCore.gypi:
34555         * WebCore.vcproj/WebCore.vcproj:
34556         * WebCore.xcodeproj/project.pbxproj:
34557
34558         "Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
34559         * loader/ResourceLoadScheduler.cpp:
34560         (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
34561         * loader/ResourceLoadScheduler.h:
34562         (ResourceLoadScheduler):
34563
34564         Add the new method plus a default implementation:
34565          * loader/LoaderStrategy.cpp: 
34566         (WebCore::LoaderStrategy::resourceLoadScheduler):
34567         * loader/LoaderStrategy.h:
34568
34569         When strategies are enabled, use the LoaderStrategy for this:
34570         * dom/ContainerNode.cpp:
34571         (WebCore::ContainerNode::suspendPostAttachCallbacks):
34572         (WebCore::ContainerNode::resumePostAttachCallbacks):
34573
34574         * loader/MainResourceLoader.cpp:
34575         (WebCore::MainResourceLoader::loadNow):
34576
34577         * loader/ResourceLoader.cpp:
34578         (WebCore::ResourceLoader::releaseResources):
34579         (WebCore::ResourceLoader::willSendRequest):
34580
34581         * loader/cache/CachedResource.cpp:
34582         (WebCore::CachedResource::load):
34583
34584         * loader/cache/CachedResourceLoader.cpp:
34585         (WebCore::CachedResourceLoader::performPostLoadActions):
34586
34587 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34588
34589         Web Inspector: inspector tests failing after r132454
34590         https://bugs.webkit.org/show_bug.cgi?id=100381
34591
34592         Reviewed by Pavel Feldman.
34593
34594         Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
34595         otherwise no actual pointer is reported which breaks instrumentation.
34596
34597         * bindings/v8/IntrusiveDOMWrapperMap.h:
34598
34599 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34600
34601         Init timeout flag in ResourceErrorCF
34602         https://bugs.webkit.org/show_bug.cgi?id=100349
34603
34604         Reviewed by Alexey Proskuryakov.
34605
34606         Initialize the timeout property to true if the network error was a timeout error.
34607         This is a speculative fix for the XHR timeout test cases failing on Apple Win -
34608         I can't verify this on a local machine.
34609
34610         No new tests, covered by
34611         LayoutTests/http/tests/xmlhttprequest/timeout/*
34612
34613         * platform/network/cf/ResourceErrorCF.cpp:
34614         (WebCore::ResourceError::ResourceError): Init m_timeout from error code.
34615
34616 2012-10-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
34617
34618         'resolution' MQ: Printing should use use high resolution images when available
34619         https://bugs.webkit.org/show_bug.cgi?id=100382
34620
34621         Reviewed by Antti Koivisto.
34622
34623         Special case print to not use the dpi of the screen, but one of 300.
34624
34625         Updated the resolution media query test to cover this.
34626
34627         * css/MediaQueryEvaluator.cpp:
34628         (WebCore::resolutionMediaFeatureEval): Update compared decimal points
34629         to three, due to 300 / 96 being equal to 3.125.
34630
34631 2012-10-25  Kinuko Yasuda  <kinuko@chromium.org>
34632
34633         [chromium] External FileSystem should use the root path returned by requestFileSystem
34634         https://bugs.webkit.org/show_bug.cgi?id=100372
34635
34636         Reviewed by Kentaro Hara.
34637
34638         External FileSystem should use the root path returned by
34639         requestFileSystem as other type is doing. Current implementation
34640         completely ignore the returned path.
34641
34642         New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)
34643
34644         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
34645         (WebCore::DOMFileSystemBase::createFileSystemURL):
34646
34647 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34648
34649         Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
34650         https://bugs.webkit.org/show_bug.cgi?id=97576
34651
34652         Reviewed by Antonio Gomes.
34653
34654         Consolidate touch adjustment candidates that are
34655         editable.  Adjustment becomes coarse being based
34656         on the bounds of the outermost editable element.
34657         This fix allows tap positioning of the text caret
34658         on a blank line immediately above or below another
34659         element.
34660
34661         Test: touchadjustment/editable-content.html
34662
34663         * page/TouchAdjustment.cpp:
34664         (WebCore::TouchAdjustment::compileSubtargetList):
34665         (WebCore::TouchAdjustment::hybridDistanceFunction):
34666
34667 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34668
34669         Memory instrumentation: add reportMemoryUsage to ImageObserver interface
34670         https://bugs.webkit.org/show_bug.cgi?id=100091
34671
34672         Reviewed by Pavel Feldman.
34673
34674         Added reportMemoryUsage method to ImageObserver to make sure it is reported as
34675         appropriate descendant(with pointer adjusted due to offsets added by inheritance)
34676         rather than as a standalone memory block.
34677
34678         * platform/graphics/ImageObserver.h:
34679         (ImageObserver):
34680
34681 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34682
34683         Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
34684         https://bugs.webkit.org/show_bug.cgi?id=100375
34685
34686         Reviewed by Yury Semikhatsky.
34687
34688         No new tests, a UI change.
34689
34690         * English.lproj/localizedStrings.js:
34691         * inspector/front-end/SettingsScreen.js:
34692         (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
34693
34694 2012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
34695
34696         Add setMediaTypeOverride to window.internals.settings
34697         https://bugs.webkit.org/show_bug.cgi?id=100249
34698
34699         Reviewed by Kenneth Rohde Christiansen.
34700
34701         Added setMediaTypeOverride to window.internals.settings.
34702
34703         Test: fast/media/print-restores-previous-mediatype.html
34704
34705         * WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
34706         * page/Settings.cpp:
34707         (WebCore::Settings::Settings):
34708         (WebCore::Settings::setMediaTypeOverride):
34709         (WebCore):
34710         * page/Settings.h:
34711         (Settings):
34712         (WebCore::Settings::mediaTypeOverride):
34713         * testing/InternalSettings.cpp:
34714         (WebCore::InternalSettings::Backup::Backup):
34715         (WebCore::InternalSettings::Backup::restoreTo):
34716         (WebCore::InternalSettings::setMediaTypeOverride):
34717         (WebCore):
34718         * testing/InternalSettings.h:
34719         (Backup):
34720         (InternalSettings):
34721         * testing/InternalSettings.idl:
34722
34723 2012-10-22  Mikhail Naganov  <mnaganov@chromium.org>
34724
34725         [Chromium] Add supportMultipleWindows setting, needed for Android
34726         https://bugs.webkit.org/show_bug.cgi?id=99716
34727
34728         Reviewed by Adam Barth.
34729
34730         Add supportMultipleWindows settings for reusing the same view when
34731         opening popups. This is required for emulating the behavior of
34732         Android WebView. Adding into WebCore, as other ports might want to
34733         use this setting in the future.
34734
34735         Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
34736                fast/dom/Window/window-open-no-multiple-windows.html
34737                fast/forms/post-popup-no-multiple-windows.html
34738
34739         * loader/FrameLoader.cpp:
34740         (WebCore::createWindow):
34741         * page/ContextMenuController.cpp:
34742         (WebCore::openNewWindow):
34743         * page/Settings.cpp:
34744         (WebCore::Settings::Settings):
34745         (WebCore::Settings::setSupportsMultipleWindows):
34746         (WebCore):
34747         * page/Settings.h:
34748         (Settings):
34749         (WebCore::Settings::supportsMultipleWindows):
34750
34751 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34752
34753         Unreviewed, fix Web Inspector frontend compilability
34754
34755         * inspector/front-end/ElementsTreeOutline.js:
34756         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34757         * inspector/front-end/StylesSidebarPane.js:
34758         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
34759         (WebInspector.StylePropertyTreeElement.prototype):
34760
34761 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
34762
34763         Web Inspector: Drag and drop property value from Inspector is not working as expected
34764         https://bugs.webkit.org/show_bug.cgi?id=100040
34765
34766         Reviewed by Vsevolod Vlasov.
34767
34768         Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.
34769
34770         * inspector/front-end/ElementsTreeOutline.js:
34771         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34772
34773 2012-10-25  Ilya Tikhonovsky  <loislo@chromium.org>
34774
34775         Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
34776         https://bugs.webkit.org/show_bug.cgi?id=100340
34777
34778         Reviewed by Yury Semikhatsky.
34779
34780         * dom/WebCoreMemoryInstrumentation.cpp:
34781         (WebCore):
34782         * dom/WebCoreMemoryInstrumentation.h:
34783         (WebCoreMemoryTypes):
34784         * inspector/InspectorDebuggerAgent.cpp:
34785         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
34786         (WebCore):
34787         (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
34788         * inspector/InspectorDebuggerAgent.h:
34789         (InspectorDebuggerAgent):
34790         * inspector/ScriptDebugListener.h:
34791         (Script):
34792
34793 2012-10-25  Adam Barth  <abarth@webkit.org>
34794
34795         [V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
34796         https://bugs.webkit.org/show_bug.cgi?id=100351
34797
34798         Reviewed by Eric Seidel.
34799
34800         There is no reason to handle active DOM nodes in a separate pass from
34801         regular DOM nodes anymore.
34802
34803         * bindings/v8/V8DOMMap.cpp:
34804         * bindings/v8/V8DOMMap.h:
34805         (WebCore):
34806         * bindings/v8/V8GCController.cpp:
34807         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
34808         (WebCore::NodeVisitor::NodeVisitor):
34809         (NodeVisitor):
34810         (WebCore::NodeVisitor::visitNodeWrapper):
34811         (WebCore::V8GCController::majorGCPrologue):
34812
34813 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34814
34815         Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
34816         https://bugs.webkit.org/show_bug.cgi?id=100357
34817
34818         Reviewed by Vsevolod Vlasov.
34819
34820         * inspector/InspectorStyleSheet.cpp:
34821         (WebCore::InspectorStyleSheet::deleteRule):
34822
34823 2012-10-25  Adam Barth  <abarth@webkit.org>
34824
34825         [V8] DOMDataStoreHandle serves no purpose and can be removed
34826         https://bugs.webkit.org/show_bug.cgi?id=100333
34827
34828         Reviewed by Eric Seidel.
34829
34830         After https://bugs.webkit.org/show_bug.cgi?id=100316,
34831         DOMDataStoreHandle is just a glorified OwnPtr.
34832
34833         * bindings/v8/DOMWrapperWorld.h:
34834         (WebCore::DOMWrapperWorld::domDataStore):
34835         (DOMWrapperWorld):
34836         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
34837         * bindings/v8/V8DOMMap.cpp:
34838         * bindings/v8/V8DOMMap.h:
34839
34840 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34841
34842         Remove dead Node::isBlockFlowOrBlockTable
34843         https://bugs.webkit.org/show_bug.cgi?id=100336
34844
34845         Reviewed by Eric Seidel.
34846
34847         Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.
34848
34849         No new tests needed, just removing dead code.
34850
34851         * dom/Node.cpp:
34852         * dom/Node.h:
34853         (Node):
34854
34855 2012-10-25  Eugene Klyuchnikov  <eustas.bug@gmail.com>
34856
34857         Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
34858         https://bugs.webkit.org/show_bug.cgi?id=100090
34859
34860         Reviewed by Vsevolod Vlasov.
34861
34862         Fixed localized strings table.
34863
34864         * English.lproj/localizedStrings.js: Added missing, removed orhans.
34865         * inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
34866         * inspector/front-end/NativeMemorySnapshotView.js:
34867         Removed double localization.
34868
34869 2012-10-25  Adam Barth  <abarth@webkit.org>
34870
34871         [V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
34872         https://bugs.webkit.org/show_bug.cgi?id=100316
34873
34874         Reviewed by Eric Seidel.
34875
34876         Prior to this patch, DOMDataStore had two subclasses,
34877         ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
34878         wrapper map base classes and had different lifetimes. This patch
34879         unifies all these classes into DOMDataStore itself. This makes this
34880         code much more straightforward.
34881
34882         * WebCore.gypi:
34883         * bindings/v8/DOMDataStore.cpp:
34884         (WebCore::DOMDataStore::DOMDataStore):
34885         (WebCore::DOMDataStore::~DOMDataStore):
34886         (WebCore::DOMDataStore::current):
34887         (WebCore::DOMDataStore::reportMemoryUsage):
34888         * bindings/v8/DOMDataStore.h:
34889         (DOMDataStore):
34890         (WebCore::DOMDataStore::domNodeMap):
34891         (WebCore::DOMDataStore::activeDomNodeMap):
34892         (WebCore::DOMDataStore::domObjectMap):
34893         (WebCore::DOMDataStore::activeDomObjectMap):
34894         * bindings/v8/ScopedDOMDataStore.cpp: Removed.
34895         * bindings/v8/ScopedDOMDataStore.h: Removed.
34896         * bindings/v8/SerializedScriptValue.cpp:
34897         (WebCore::neuterBinding):
34898         * bindings/v8/StaticDOMDataStore.cpp: Removed.
34899         * bindings/v8/StaticDOMDataStore.h: Removed.
34900         * bindings/v8/V8DOMMap.cpp:
34901         (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
34902         (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
34903         (WebCore::visitActiveDOMNodes):
34904         (WebCore::visitDOMObjects):
34905         (WebCore::visitActiveDOMObjects):
34906         * bindings/v8/V8DOMMap.h:
34907         (WebCore):
34908         * bindings/v8/V8PerIsolateData.h:
34909         (V8PerIsolateData):
34910         * bindings/v8/WorkerScriptController.cpp:
34911         (WebCore::WorkerScriptController::WorkerScriptController):
34912         (WebCore::WorkerScriptController::~WorkerScriptController):
34913         * bindings/v8/WorkerScriptController.h:
34914         (WorkerScriptController):
34915
34916 2012-10-24  Kent Tamura  <tkent@chromium.org>
34917
34918         Minimize CSS rulesets for multiple-fields input
34919         https://bugs.webkit.org/show_bug.cgi?id=100198
34920
34921         Reviewed by Kentaro Hara.
34922
34923         - Unify rulesets for input::-webkit-datetime-edit-*-field.
34924          input::-webkit-datetime-edit-*-field had identical ruleset.
34925
34926         - Move some rulesets near to related rulesets.
34927          Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
34928          Move input::-webkit-datetime-edit-second-field[readonly] nearby
34929         input::-webkit-datetime-edit-minute-field[readonly].
34930
34931         No new tests. This shouldn't make any behavior change.
34932
34933         * css/html.css:
34934         (input::-webkit-datetime-edit-year-field):
34935         (input::-webkit-datetime-edit-year-field:focus):
34936         (input::-webkit-datetime-edit-second-field[readonly]):
34937
34938 2012-10-24  Kent Tamura  <tkent@chromium.org>
34939
34940         REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
34941         https://bugs.webkit.org/show_bug.cgi?id=100326
34942
34943         Reviewed by Eric Seidel.
34944
34945         Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html
34946
34947         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
34948         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
34949         We need to disconnect m_spinButtonElement before destructing the UA shadow tree.
34950
34951 2012-10-24  Adam Barth  <abarth@webkit.org>
34952
34953         [V8] DOMData is no longer needed
34954         https://bugs.webkit.org/show_bug.cgi?id=100313
34955
34956         Reviewed by Eric Seidel.
34957
34958         This class serves no purpose anymore and can be deleted.
34959
34960         * WebCore.gypi:
34961         * bindings/v8/DOMData.cpp: Removed.
34962         * bindings/v8/DOMData.h: Removed.
34963         * bindings/v8/DOMDataStore.cpp:
34964         (WebCore::DOMDataStore::current):
34965         * bindings/v8/DOMDataStore.h:
34966         (WebCore):
34967         (DOMDataStore):
34968         * bindings/v8/SerializedScriptValue.cpp:
34969         (WebCore::neuterBinding):
34970         * bindings/v8/V8DOMMap.cpp:
34971         (WebCore::getDOMNodeMap):
34972         (WebCore::getActiveDOMNodeMap):
34973         (WebCore::getDOMObjectMap):
34974         (WebCore::getActiveDOMObjectMap):
34975         (WebCore::removeAllDOMObjects):
34976         (WebCore::visitActiveDOMNodes):
34977         (WebCore::visitDOMObjects):
34978         (WebCore::visitActiveDOMObjects):
34979
34980 2012-10-24  Kent Tamura  <tkent@chromium.org>
34981
34982         Sort an Xcode project file.
34983
34984         * WebCore.xcodeproj/project.pbxproj: Sorted.
34985
34986 2012-10-24  Adam Barth  <abarth@webkit.org>
34987
34988         [V8] AbstractWeakReferenceMap is unnecessarily general and complex
34989         https://bugs.webkit.org/show_bug.cgi?id=100175
34990
34991         Reviewed by Eric Seidel.
34992
34993         Before this patch, AbstractWeakReferenceMap served two masters:
34994
34995         1) DOM wrappers
34996         2) NPV8 function templates
34997
34998         These two uses cases pushed AbstractWeakReferenceMap to be more general
34999         and complex that needed. This patch separates these two uses cases into
35000         two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
35001         not worth complicating the DOM wrapper code path to share that tiny
35002         amount of code.
35003
35004         The other thing this patch does is store a pointer to the DOM wrapper
35005         map as the weak callback context object. That means we no longer need
35006         to search through all the wrapper maps in order to find the map that
35007         contains this particular DOM wrapper.
35008
35009         * WebCore.gypi:
35010         * bindings/v8/DOMData.cpp:
35011         * bindings/v8/DOMData.h:
35012         (DOMData):
35013         * bindings/v8/DOMDataStore.cpp:
35014             - Delete all these complicated weak callback functions. The weak
35015               callback functions are now an order of magnitude simpler and
35016               declared as private member functions on the wrapper map.
35017         * bindings/v8/DOMDataStore.h:
35018         (WebCore::DOMDataStore::domNodeMap):
35019         (WebCore::DOMDataStore::activeDomNodeMap):
35020         (DOMDataStore):
35021             - We now have a consistent type to use for all these wrapper maps.
35022               Both the hash map and the intrusive map derive from
35023               DOMWrapperMap (with a single template parameter).
35024         * bindings/v8/DOMWrapperMap.h: Added.
35025         (WebCore):
35026         (DOMWrapperVisitor):
35027             - The visitor is no longer an inner class. It's just a top-level
35028               class that does the same thing.
35029         (DOMWrapperMap):
35030             - The abstract interface for DOMWrapperMap has about half as many
35031               functions as the old AbstractWeakReferenceMap because the two use
35032               cases are disentangled.
35033         (WebCore::DOMWrapperMap::~DOMWrapperMap):
35034         (DOMWrapperHashMap):
35035             - This is a concrete instance of DOMWrapperMap that uses a hash map.
35036         (WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
35037         (WebCore::DOMWrapperHashMap::remove):
35038         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
35039             - Notice that the context parameter now points to the hashmap
35040               itself rather than to the native object. Now that we don't need
35041               to handle the NPAPI case, we can recover the native object from
35042               the wrapper using toNative. The assert in set() ensures that this
35043               always works.
35044         * bindings/v8/DOMWrapperWorld.h:
35045         * bindings/v8/IntrusiveDOMWrapperMap.h:
35046             - These classes are now simplified because they need to implement
35047               fewer functions.
35048         (WebCore::DOMNodeWrapperMap::weakCallback):
35049             - For this weak callback, we still use the native object as the
35050               context parameter. We could also recover the native object from
35051               the wrapper, which means this context parameter is available to
35052               do other work.
35053         * bindings/v8/ScopedDOMDataStore.cpp:
35054         (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
35055             - This code no longer needs to have knowledge of which weak
35056               callbacks these objects use.
35057         (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
35058             - We need to clear the maps before deleting them because there are
35059               still JavaScript objects that have references to the map in their
35060               weak callback parameter. Previously, we handled this case because
35061               we would search all the wrapper maps and fail to find the wrapper.
35062         * bindings/v8/ScriptProfiler.cpp:
35063         (WebCore::ScriptProfiler::visitExternalArrays):
35064         * bindings/v8/StaticDOMDataStore.cpp:
35065             - This code no longer needs to have knowledge of which weak
35066               callback these maps use.
35067         * bindings/v8/StaticDOMDataStore.h:
35068         (StaticDOMDataStore):
35069         * bindings/v8/V8DOMMap.cpp:
35070         (WebCore::getDOMNodeMap):
35071         (WebCore::getActiveDOMNodeMap):
35072         (WebCore::removeAllDOMObjects):
35073             - Rather than using some complicated visitor pattern, we can now
35074               just call clear() directly on the maps to remove all the objects.
35075         (WebCore::visitActiveDOMNodes):
35076         (WebCore::visitDOMObjects):
35077         (WebCore::visitActiveDOMObjects):
35078         * bindings/v8/V8DOMMap.h:
35079         (WebCore):
35080             - Delete the old versions of these classes.
35081         (DOMDataStoreHandle):
35082             - Style nit: one-argument constructors should be marked explicit.
35083         * bindings/v8/V8DOMWrapper.cpp:
35084         (WebCore::V8DOMWrapper::domWrapperType):
35085             - I moved this logic into WrapperTypeInfo.h to avoid a circular
35086               header dependency.
35087         * bindings/v8/V8DOMWrapper.h:
35088         (WebCore::V8DOMWrapper::getCachedWrapper):
35089         * bindings/v8/V8GCController.cpp:
35090             - EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
35091               longer clear the weak callbacks in V8GCController).
35092         * bindings/v8/V8NPObject.cpp:
35093         (V8NPTemplateMap):
35094             - staticTemplateMap is no longer an instance of WeakReferenceMap.
35095               Instead, this patch just implements the functionality we need
35096               here directly.
35097         (WebCore::V8NPTemplateMap::get):
35098         (WebCore::V8NPTemplateMap::set):
35099         (WebCore::V8NPTemplateMap::sharedInstance):
35100         (WebCore::V8NPTemplateMap::weakCallback):
35101         (WebCore::V8NPTemplateMap::dispose):
35102         (WebCore::npObjectGetProperty):
35103         (WebCore):
35104         (WebCore::staticNPObjectMap):
35105         (WebCore::weakNPObjectCallback):
35106             - DOMWrapperMap no longer exposes a "forget" function. Instead, we
35107               just use the more basic "remove" and "Dispose" operations to do
35108               the same thing. This is possible now because we no longer have
35109               "removeIfPossible" to support searching all the wrapper maps for
35110               the one that has the right wrapper.
35111         (WebCore::createV8ObjectForNPObject):
35112             - DOMWrapperMap No longer has a "contains" function. Instead, we
35113               use get, which actually makes this code more efficient because we
35114               only do one hash map lookup.
35115         (WebCore::forgetV8ObjectForNPObject):
35116             - The changes here are a combination of the two sorts of changes
35117               above.
35118         * bindings/v8/WrapperTypeInfo.h:
35119         (WebCore::toNative):
35120         (WebCore::toWrapperTypeInfo):
35121             - The patch moves these functions into this header to avoid a
35122               circular header dependency.
35123
35124 2012-10-24  Arnaud Renevier  <a.renevier@sisa.samsung.com>
35125
35126         [cairo] unneeded FloatRect object creation in BitmapImage::draw
35127         https://bugs.webkit.org/show_bug.cgi?id=100298
35128
35129         Reviewed by Martin Robinson.
35130
35131         Do not copy FloatRect arguments src and dst to local variables.
35132         Instead, use src and dst directly.
35133
35134         No new tests. No change in behavior.
35135
35136         * platform/graphics/cairo/BitmapImageCairo.cpp:
35137         (WebCore::BitmapImage::draw):
35138
35139 2012-10-24  Seokju Kwon  <seokju.kwon@samsung.com>
35140
35141         [SOUP] Provide logging for SocketStreamHandleSoup
35142         https://bugs.webkit.org/show_bug.cgi?id=100215
35143
35144         Reviewed by Alexey Proskuryakov.
35145
35146         Add logging to SocketStreamHandleSoup to facilitate debugging.
35147
35148         * platform/network/soup/SocketStreamHandleSoup.cpp:
35149         (WebCore::SocketStreamHandle::SocketStreamHandle):
35150         (WebCore::SocketStreamHandle::~SocketStreamHandle):
35151         (WebCore::SocketStreamHandle::platformSend):
35152         (WebCore::SocketStreamHandle::platformClose):
35153
35154 2012-10-24  Nico Weber  <thakis@chromium.org>
35155
35156         Pass on exif orientation from ImageSource when using the open-source image decoders
35157         https://bugs.webkit.org/show_bug.cgi?id=100164
35158
35159         Reviewed by Eric Seidel.
35160
35161         The orientation is honored always for image documents, and optionally
35162         for <img> elements if shouldRespectImageOrientation is set (off by
35163         default). However, the feature needs port-specific modifications to
35164         GraphicsContext (without this, webcore will use the rotated bounds but
35165         draw the image as if it hadn't be rotated, resulting in squished
35166         pixels), and most ports don't implement these yet -- so put
35167         turning this on for image documents behind a port-specific #ifdef.
35168
35169         No observable behavior change. Once it's hooked up, it will be tested
35170         by fast/images/exif-orientation.html.
35171
35172         * platform/graphics/ImageSource.cpp:
35173         (WebCore::ImageSource::size):
35174         (WebCore::ImageSource::frameSizeAtIndex):
35175         (WebCore::ImageSource::orientationAtIndex):
35176         * platform/graphics/chromium/DeferredImageDecoder.cpp:
35177         (WebCore::DeferredImageDecoder::orientation):
35178         (WebCore):
35179         * platform/graphics/chromium/DeferredImageDecoder.h:
35180         (DeferredImageDecoder):
35181         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
35182         (WebCore::readImageOrientation):
35183         * rendering/RenderObject.cpp:
35184         (WebCore::RenderObject::shouldRespectImageOrientation):
35185
35186 2012-10-24  Beth Dakin  <bdakin@apple.com>
35187
35188         https://bugs.webkit.org/show_bug.cgi?id=100169
35189         We should make TileCache tiles the size of the tile coverage rect 
35190         when we can't do fast scrolling
35191         -and-
35192         <rdar://problem/12505021>
35193
35194         Reviewed by Simon Fraser.
35195
35196         Some websites that don't do fast scrolling still scroll slower than 
35197         they do with tiled drawing disabled. 
35198         https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this 
35199         performance problem, but there is still more ground to make up. This 
35200         patch addresses the remaining issue by making tiles the size of the 
35201         window when we can't do fast scrolling. 
35202
35203         The constructor and create function no longer take a size parameter. 
35204         That's all fully controlled within TileCache now. m_tileSize is no 
35205         longer const.
35206         * platform/graphics/ca/mac/TileCache.h:
35207
35208         Store the current default size as constants so that we can access it 
35209         in both the constructor and adjustTileSizeForCoverageRect().
35210         * platform/graphics/ca/mac/TileCache.mm:
35211         (WebCore::TileCache::TileCache):
35212
35213         This new function will set m_tileSize to the size of the tile 
35214         coverage rect if the tile coverage is limited to the visible area. 
35215         Otherwise, the tiles are set to be the default size.
35216         (WebCore::TileCache::adjustTileSizeForCoverageRect):
35217         
35218         Call adjustTileSizeForCoverageRect().
35219         (WebCore::TileCache::revalidateTiles):
35220
35221         No need to send in a size anymore.
35222         * platform/graphics/ca/mac/WebTileCacheLayer.h:
35223         (WebCore):
35224
35225 2012-10-24  David Barton  <dbarton@mathscribe.com>
35226
35227         MathML tests trigger font cache assertions in debug bots
35228         https://bugs.webkit.org/show_bug.cgi?id=100268
35229
35230         Reviewed by Eric Seidel.
35231
35232         Add a FontCachePurgePreventer to fix this.
35233
35234         Tested by existing tests.
35235
35236         * rendering/mathml/RenderMathMLOperator.cpp:
35237         (WebCore::RenderMathMLOperator::updateFromElement):
35238
35239 2012-10-24  Tim Horton  <timothy_horton@apple.com>
35240
35241         Update main frame scroll position immediately for programmatic scrolls
35242         https://bugs.webkit.org/show_bug.cgi?id=98074
35243
35244         Reviewed by Simon Fraser.
35245
35246         Immediately update the main frame scroll position after a programmatic scroll,
35247         so that performing a scrollBy or scrollTo will be instantly reflected in
35248         all of the scroll offset accessors.
35249
35250         No new tests; this will be tested by many scrolling tests once WebKitTestRunner
35251         can use threaded scrolling.
35252
35253         * page/scrolling/ScrollingCoordinator.cpp:
35254         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
35255
35256 2012-10-24  Mihai Parparita  <mihaip@chromium.org>
35257
35258         [Chromium] Allow pushState and related history APIs to be disabled per context
35259         https://bugs.webkit.org/show_bug.cgi?id=99780
35260
35261         Reviewed by Adam Barth.
35262
35263         Chrome Apps do not support the history API (or navigation in general).
35264         Since pushState is generally feature detected, it's cleanest to disable
35265         it via a V8 per-context feature, so that applications can have the
35266         appropriate fallback behavior (other history APIs are re-mapped to throw
35267         exceptions, since history.back() and the link are not feature detected).
35268
35269         * dom/ContextFeatures.cpp:
35270         (WebCore::ContextFeatures::pushStateEnabled):
35271         (WebCore):
35272         * dom/ContextFeatures.h:
35273         * dom/Document.cpp:
35274         (WebCore::Document::enqueuePopstateEvent):
35275         * page/History.idl:
35276
35277 2012-10-24  Tommy Widenflycht  <tommyw@google.com>
35278
35279         MediaStream API: Make sure all events are dispatched asynchronously
35280         https://bugs.webkit.org/show_bug.cgi?id=100286
35281
35282         Reviewed by Adam Barth.
35283
35284         This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
35285         and the web application calls methods on the RTCPeerConnection in the event callbacks.
35286
35287         Test: fast/mediastream/RTCPeerConnection-events.html
35288         Also tested by the chromium webrtc fuzz tests.
35289
35290         * Modules/mediastream/RTCPeerConnection.cpp:
35291         (WebCore::RTCPeerConnection::RTCPeerConnection):
35292         (WebCore::RTCPeerConnection::negotiationNeeded):
35293         (WebCore::RTCPeerConnection::didGenerateIceCandidate):
35294         (WebCore::RTCPeerConnection::didAddRemoteStream):
35295         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
35296         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
35297         (WebCore::RTCPeerConnection::changeReadyState):
35298         (WebCore::RTCPeerConnection::changeIceState):
35299         (WebCore):
35300         (WebCore::RTCPeerConnection::scheduleDispatchEvent):
35301         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
35302         * Modules/mediastream/RTCPeerConnection.h:
35303         (RTCPeerConnection):
35304
35305 2012-10-24  Mark Pilgrim  <pilgrim@chromium.org>
35306
35307         [Chromium] Remove screen-related functions from PlatformSupport
35308         https://bugs.webkit.org/show_bug.cgi?id=97474
35309
35310         Reviewed by Adam Barth.
35311
35312         Screen-related functions like screenHorizontalDPI that
35313         used to be on PlatformSupport are now accessed through a new
35314         PlatformPageClient attached to Widget in WebCore-land, which is
35315         implemented by ChromeClientImpl in WebKit-land, which proxies
35316         calls to WebWidgetClient, which is actually implemented in
35317         Chromium-land.
35318
35319         * WebCore.gypi:
35320         * platform/Widget.h:
35321         * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
35322         (PageClientChromium):
35323         * platform/chromium/PlatformScreenChromium.cpp:
35324         (WebCore::toPlatformPageClient):
35325         (WebCore):
35326         (WebCore::screenHorizontalDPI):
35327         (WebCore::screenVerticalDPI):
35328         (WebCore::screenDepth):
35329         (WebCore::screenDepthPerComponent):
35330         (WebCore::screenIsMonochrome):
35331         (WebCore::screenRect):
35332         (WebCore::screenAvailableRect):
35333         * platform/chromium/PlatformSupport.h:
35334         (PlatformSupport):
35335
35336 2012-10-24  Adam Barth  <abarth@webkit.org>
35337
35338         [V8] WorkerContextExecutionProxy doesn't need to track events
35339         https://bugs.webkit.org/show_bug.cgi?id=100295
35340
35341         Reviewed by Eric Seidel.
35342
35343         This code was added when this code was originally upstreamed as part of
35344         the Chromium port. There doesn't appear to be any reason why
35345         WorkerContextExecutionProxy needs to keep a Vector of raw event
35346         pointers. Those points are likely to become dangling, making the rest
35347         of what this code does very sketchy.
35348
35349         * bindings/v8/V8WorkerContextEventListener.cpp:
35350         (WebCore::V8WorkerContextEventListener::callListenerFunction):
35351         * bindings/v8/WorkerContextExecutionProxy.cpp:
35352         (WebCore::WorkerContextExecutionProxy::dispose):
35353         * bindings/v8/WorkerContextExecutionProxy.h:
35354         (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
35355         (WorkerContextExecutionProxy):
35356
35357 2012-10-24  Max Vujovic  <mvujovic@adobe.com>
35358
35359         [CSS Shaders] The mesh should be specified using <column, row> order
35360         https://bugs.webkit.org/show_bug.cgi?id=96285
35361
35362         Reviewed by Dean Jackson.
35363
35364         Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
35365         column, row order.
35366
35367         Test: css3/filters/custom/custom-filter-mesh-column-row-order.html
35368
35369         * css/CSSComputedStyleDeclaration.cpp:
35370         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
35371             Append the number of columns before the number of rows in the meshParameters
35372             CSSValueList.
35373         * css/StyleResolver.cpp:
35374         (WebCore::StyleResolver::createCustomFilterOperation):
35375             Store the second mesh parameter in meshRows instead of meshColumns.
35376
35377 2012-10-24  Jae Hyun Park  <jae.park@company100.net>
35378
35379         loaderRunLoop() should use synchronization instead of while loop
35380         https://bugs.webkit.org/show_bug.cgi?id=55402
35381
35382         Reviewed by Alexey Proskuryakov.
35383
35384         Originally, loaderRunLoop() sleeps until a thread has started and set
35385         the loaderRunLoopObject static variable. This patch uses
35386         ThreadCondition to synchronize instead of a while loop.
35387
35388         No new tests (No behavior change).
35389
35390         * platform/network/cf/LoaderRunLoopCF.cpp:
35391         (WebCore::runLoaderThread):
35392         (WebCore::loaderRunLoop):
35393         * platform/network/cf/LoaderRunLoopCF.h:
35394         (WebCore):
35395
35396 2012-10-24  Sailesh Agrawal  <sail@chromium.org>
35397
35398         Incorrect keycodes for numpad /, -, +, .
35399         https://bugs.webkit.org/show_bug.cgi?id=99188
35400
35401         Reviewed by Tony Chang.
35402
35403         In r57951 we switched to mapping keys by character code.
35404         This regressed the numpad keys which no longer match the Windows virtual key codes.
35405         This CL fixes this by never mapping numpad keys by character code.
35406
35407         Test: platform/mac/fast/events/numpad-keycode-mapping.html
35408
35409         * platform/mac/PlatformEventFactoryMac.mm:
35410         (WebCore::windowsKeyCodeForKeyEvent):
35411
35412 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35413
35414         Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
35415         https://bugs.webkit.org/show_bug.cgi?id=100141
35416         <rdar://problem/12559147>
35417
35418         Reviewed by Tim Horton.
35419
35420         For PDF documents the RenderView is null, so null-check it to avoid a crash
35421         when saving PDFs.
35422
35423         * dom/Document.cpp:
35424         (WebCore::Document::windowScreenDidChange):
35425
35426 2012-10-24  Terry Anderson  <tdanderson@chromium.org>
35427
35428         Handle two-finger tap gestures in the same way as long-press gestures
35429         https://bugs.webkit.org/show_bug.cgi?id=99947
35430
35431         Reviewed by Adam Barth.
35432
35433         Currently a long-press gesture is used to dispatch a context menu (for platforms 
35434         defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms 
35435         defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and 
35436         touch area of the long-press gesture.
35437
35438         This CL will cause two-finger tap gestures to be handled in the same way as long-press 
35439         gestures. The location and touch area of a two-finger tap gesture will correspond to 
35440         the location and touch area of the first finger down; the location/area of the second 
35441         finger will be ignored.
35442
35443         Test: touchadjustment/touch-links-two-finger-tap.html
35444
35445         * page/EventHandler.cpp:
35446         (WebCore::EventHandler::handleGestureLongPress):
35447         (WebCore):
35448         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
35449         (WebCore::EventHandler::handleGestureTwoFingerTap):
35450         (WebCore::EventHandler::adjustGesturePosition):
35451         * page/EventHandler.h:
35452         (EventHandler):
35453
35454 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35455
35456         AX:When aria-label is used, the text under an element is still appearing as the AXTitle
35457         https://bugs.webkit.org/show_bug.cgi?id=98167
35458
35459         Reviewed by Beth Dakin.
35460
35461         According to WAI-ARIA text computation, the presence of aria-label and alternative text
35462         should override the visible text within an element.
35463
35464         Test: platform/mac/accessibility/aria-label-overrides-visible-text.html
35465
35466         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
35467         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
35468
35469 2012-10-24  Sheriff Bot  <webkit.review.bot@gmail.com>
35470
35471         Unreviewed, rolling out r132303 and r132312.
35472         http://trac.webkit.org/changeset/132303
35473         http://trac.webkit.org/changeset/132312
35474         https://bugs.webkit.org/show_bug.cgi?id=100287
35475
35476         Triggering crashes on many popular websites (Requested by
35477         leviw|gardening on #webkit).
35478
35479         * css/CSSGrammar.y.in:
35480         * css/CSSParser.cpp:
35481         (WebCore::CSSParser::detectAtToken):
35482         * css/CSSParser.h:
35483         * css/CSSPropertySourceData.h:
35484         * css/RuleSet.cpp:
35485         (WebCore::RuleData::RuleData):
35486         (WebCore::RuleSet::addRule):
35487         (WebCore::RuleSet::addRegionRule):
35488         (WebCore::RuleSet::addRulesFromSheet):
35489         (WebCore::RuleSet::addStyleRule):
35490         * css/RuleSet.h:
35491         (RuleData):
35492         (RuleSet):
35493         * css/StyleResolver.cpp:
35494         (WebCore::makeRuleSet):
35495         (WebCore::StyleResolver::appendAuthorStyleSheets):
35496         (WebCore::StyleResolver::matchScopedAuthorRules):
35497         (WebCore::StyleResolver::locateSharedStyle):
35498         * css/StyleResolver.h:
35499         (StyleResolver):
35500         * css/StyleRule.cpp:
35501         (WebCore::StyleRuleBase::reportMemoryUsage):
35502         (WebCore::StyleRuleBase::destroy):
35503         (WebCore::StyleRuleBase::copy):
35504         (WebCore::StyleRuleBase::createCSSOMWrapper):
35505         * css/StyleRule.h:
35506         * css/StyleScopeResolver.cpp:
35507         (WebCore::StyleScopeResolver::reportMemoryUsage):
35508         * css/StyleScopeResolver.h:
35509         (WebCore):
35510         (StyleScopeResolver):
35511         * css/StyleSheetContents.cpp:
35512         (WebCore::childRulesHaveFailedOrCanceledSubresources):
35513
35514 2012-10-24  Joshua Bell  <jsbell@chromium.org>
35515
35516         IndexedDB: Cursor property value identities should be preserved
35517         https://bugs.webkit.org/show_bug.cgi?id=100051
35518
35519         Reviewed by Tony Chang.
35520
35521         Some W3C test submissions point out that subsequent accesses to cursor properties should
35522         yield the same value until the cursor advances. We handled this with custom binding code for
35523         IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
35524         being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
35525         be applied to key/primaryKey.
35526
35527         Test: storage/indexeddb/cursor-properties.html
35528
35529         * Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
35530         (WebCore::IDBCursor::key):
35531         (WebCore::IDBCursor::primaryKey):
35532         (WebCore::IDBCursor::setValueReady):
35533         * Modules/indexeddb/IDBCursor.h:
35534         (IDBCursor):
35535         (WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
35536         * Modules/indexeddb/IDBCursor.idl:
35537         * Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
35538         (WebCore):
35539         * Modules/indexeddb/IDBRequest.cpp:
35540         (WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
35541         * bindings/v8/IDBBindingUtilities.cpp:
35542         (WebCore::idbKeyToScriptValue): New method for explicit conversion.
35543         (WebCore):
35544         * bindings/v8/IDBBindingUtilities.h:
35545         (WebCore):
35546
35547 2012-10-24  Ami Fischman  <fischman@chromium.org>
35548
35549         call to setNeedsLayout during RenderVideo::paintReplaced
35550         https://bugs.webkit.org/show_bug.cgi?id=100265
35551
35552         Reviewed by Eric Carlson.
35553
35554         Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
35555         during paints earlier (so the offending calls are in the emitted stacktrace).
35556
35557         No new tests - new defensive checks are triggered by existing tests.
35558
35559         * page/FrameView.cpp:
35560         (WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
35561         * rendering/RenderObject.cpp:
35562         (WebCore):
35563         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
35564         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
35565         * rendering/RenderObject.h:
35566         (RenderObject):
35567         (SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
35568         * rendering/RenderVideo.cpp:
35569         (WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().
35570
35571 2012-10-24  Adam Barth  <abarth@webkit.org>
35572
35573         [V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
35574         https://bugs.webkit.org/show_bug.cgi?id=100208
35575
35576         Reviewed by Eric Seidel.
35577
35578         Rather than clearing and re-establishing the weak callback for
35579         ActiveDOMObjects during every GC, this patch puts all the
35580         ActiveDOMObjects with pending activity into an object group with a live
35581         object, causing them not to be garbage collected.
35582
35583         In addition to simplifying this code, this patch makes the patch in
35584         https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
35585         V8GCController no longer needs to know how to configure the weak
35586         callbacks for these objects.
35587
35588         * bindings/v8/V8GCController.cpp:
35589         (WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
35590         (ActiveDOMObjectPrologueVisitor):
35591         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
35592         (WebCore::V8GCController::majorGCPrologue):
35593         (WebCore::V8GCController::majorGCEpilogue):
35594         * bindings/v8/V8PerIsolateData.cpp:
35595         (WebCore::V8PerIsolateData::V8PerIsolateData):
35596         * bindings/v8/V8PerIsolateData.h:
35597         (WebCore::V8PerIsolateData::liveRoot):
35598         (V8PerIsolateData):
35599
35600 2012-10-24  Brady Eidson  <beidson@apple.com>
35601
35602         Add a strategy for loader customization.
35603         https://bugs.webkit.org/show_bug.cgi?id=100278
35604
35605         Reviewed by Alexey Proskuryakov.
35606
35607         It's empty for now and does nothing, just like the goggles.
35608
35609         * WebCore.gypi:
35610         * WebCore.vcproj/WebCore.vcproj:
35611         * WebCore.xcodeproj/project.pbxproj:
35612         * platform/PlatformStrategies.h:
35613         (WebCore::PlatformStrategies::loaderStrategy):
35614         (PlatformStrategies):
35615         (WebCore::PlatformStrategies::PlatformStrategies):
35616
35617 2012-10-24  Tony Chang  <tony@chromium.org>
35618
35619         Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
35620         https://bugs.webkit.org/show_bug.cgi?id=99925
35621
35622         Reviewed by Ojan Vafai.
35623
35624         Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.
35625
35626         Test: css3/flexbox/repaint-during-resize-no-flex.html
35627
35628         * rendering/RenderFlexibleBox.cpp:
35629         (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
35630         for setting the location of a child.
35631         (WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35632         (WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35633
35634 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35635
35636         Fix CALayer hiearchy when combining tiling with preserve-3d
35637         https://bugs.webkit.org/show_bug.cgi?id=100205
35638
35639         Reviewed by Dean Jackson.
35640
35641         When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a
35642         m_structuralLayer which is a CATransformLayer. The primary CALayer which contains rendered
35643         content becomes a sublayer of the CATransformLayer. If the element has backface-visibility:hidden,
35644         it is the primary layer that is set to be single-sided.
35645         
35646         In r131940 we started to use TileCaches in place of CATiledLayer. TileCaches work via
35647         "customSublayers" returned from the PlatformCALayer, where the custom sublayer is 
35648         the tile cache container layer. However, the custom sublayers were being added as
35649         children of the structural (CATransformLayer) layer, not of the primary (CALayer) layer,
35650         thus they were not affected by the doubleSided property.
35651         
35652         This change cleans up the confusing code in GraphicsLayerCA::updateSublayerList()
35653         by maintaining two vectors of PlatformCALayers, one for sublayers of the structural
35654         layer, and one for sublayers of the primary layer. It adds custom sublayers to
35655         the latter list, so now the tile cache container layer becomes a sublayer of
35656         the primary layer, so is affected by that layer's doubleSided property.
35657
35658         Test: compositing/tiling/backface-preserve-3d-tiled.html
35659
35660         * platform/graphics/ca/GraphicsLayerCA.cpp:
35661         (WebCore::GraphicsLayerCA::updateSublayerList):
35662
35663 2012-10-23  Zhenyao Mo  <zmo@google.com>
35664
35665         Update mozilla's CheckedInt.h to the latest version
35666         https://bugs.webkit.org/show_bug.cgi?id=100177
35667
35668         Reviewed by Kenneth Russell.
35669
35670         * html/canvas/CheckedInt.h: Sync with mozilla's copy with minumum modifications.
35671         (detail):
35672         (IsSupportedPass2):
35673         (IsSupported):
35674         (UnsignedType):
35675         (IsSigned):
35676         (TwiceBiggerType):
35677         (PositionOfSignBit):
35678         (MinValue):
35679         (MaxValue):
35680         (WebCore::detail::HasSignBit):
35681         (WebCore::detail::BinaryComplement):
35682         (WebCore::detail::IsInRange):
35683         (WebCore::detail::IsAddValid):
35684         (WebCore::detail::IsSubValid):
35685         (WebCore::detail::IsMulValid):
35686         (WebCore::detail::IsDivValid):
35687         (WebCore::detail::OppositeIfSignedImpl::run):
35688         (WebCore::detail::OppositeIfSigned):
35689         (WebCore):
35690         (CheckedInt):
35691         (WebCore::CheckedInt::CheckedInt):
35692         (WebCore::CheckedInt::value):
35693         (WebCore::CheckedInt::isValid):
35694         (WebCore::CheckedInt::operator -):
35695         (WebCore::CheckedInt::operator ==):
35696         (WebCore::CheckedInt::operator++):
35697         (WebCore::CheckedInt::operator--):
35698         (CastToCheckedIntImpl):
35699         (WebCore::detail::CastToCheckedIntImpl::run):
35700         (WebCore::castToCheckedInt):
35701         (WebCore::operator ==):
35702         * html/canvas/DataView.cpp: change valid() to isValid().
35703         (WebCore::DataView::create):
35704         * html/canvas/WebGLBuffer.cpp: Ditto.
35705         (WebCore::WebGLBuffer::associateBufferDataImpl):
35706         (WebCore::WebGLBuffer::associateBufferSubDataImpl):
35707         * html/canvas/WebGLRenderingContext.cpp: Ditto.
35708         (WebCore):
35709         (WebCore::WebGLRenderingContext::drawArrays):
35710         * platform/graphics/GraphicsContext3D.cpp: Ditto.
35711         (WebCore::GraphicsContext3D::computeImageSizeInBytes):
35712
35713 2012-10-24  Noam Rosenthal  <noam.rosenthal@nokia.com>
35714
35715         [Qt-on-Mac] GraphicsSurfaces should not create a global IOSurface handle
35716         https://bugs.webkit.org/show_bug.cgi?id=89885
35717
35718         Reviewed by Kenneth Rohde Christiansen.
35719
35720         Use mach_port instead of global tokens for IOSurfaces.
35721         Global IOSurfaces are accessible from other processes using their handle, while mach_ports
35722         can only be shared directly via IPC.
35723
35724         Tested by existing WebGL tests.
35725
35726         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
35727         (GraphicsSurfaceToken):
35728         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
35729         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
35730         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
35731
35732 2012-10-24  Rick Byers  <rbyers@chromium.org>
35733
35734         image-set doesn't round-trip properly with cssText
35735         https://bugs.webkit.org/show_bug.cgi?id=99725
35736
35737         Reviewed by Beth Dakin.
35738
35739         Fix serialization of -webkit-image-set rules to use the same format as
35740         is used for parsing.
35741
35742         Test: fast/css/image-set-setting.html
35743
35744         * css/CSSImageSetValue.cpp:
35745         (WebCore::CSSImageSetValue::customCssText):
35746         * css/CSSValueList.h:
35747         (WebCore::CSSValueList::item): Add const overload
35748
35749 2012-10-24  Jonathan Feldstein  <jfeldstein@rim.com>
35750
35751         BlackBerry fix for webgl-depth-texture.html
35752         https://bugs.webkit.org/show_bug.cgi?id=100258
35753
35754         Reviewed by Yong Li.
35755
35756         Removed a platform specific define that is unnecessary.
35757
35758         * platform/graphics/GraphicsContext3D.cpp:
35759         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
35760
35761 2012-10-24  Nico Weber  <thakis@chromium.org>
35762
35763         Honor image orientation in GraphicsContextSkia
35764         https://bugs.webkit.org/show_bug.cgi?id=100179
35765
35766         Reviewed by Stephen White.
35767
35768         Also fix a bug in ImageOrientation.h: Some of the values were
35769         switched. They now match the description in the exif spec at
35770         http://www.exif.org/Exif2-2.PDF page 18, and the notes at
35771         http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html and
35772         the picture at http://www.80sidea.com/archives/2316.
35773
35774         They showed up correctly in Safari because the orientation transform
35775         was done after flipping Y. Let the flipping happen later. I verified
35776         that flipping transformation order and fixing the exif enum cancelled
35777         each other out, so this has no effect on the apple port.
35778
35779         Not hooked up yet, so no observable difference.
35780
35781         * platform/graphics/BitmapImage.h:
35782         * platform/graphics/ImageOrientation.h:
35783         (WebCore::ImageOrientation::usesWidthAsHeight):
35784         (WebCore::ImageOrientation::fromEXIFValue):
35785         * platform/graphics/cg/GraphicsContextCG.cpp:
35786         (WebCore::GraphicsContext::drawNativeImage):
35787         * platform/graphics/skia/ImageSkia.cpp:
35788         (WebCore::paintSkBitmap):
35789         (WebCore::BitmapImage::draw):
35790         (WebCore):
35791
35792 2012-10-24  Alexey Proskuryakov  <ap@apple.com>
35793
35794         Fixed Windows path for SharedWorkerStrategy.h - it's in workers/, not platform/.
35795
35796         * WebCore.vcproj/WebCore.vcproj:
35797
35798 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35799
35800         AX: WebKit exposes abstract ARIA role range as AXSlider; should be generic AXGroup
35801         https://bugs.webkit.org/show_bug.cgi?id=100204
35802
35803         Reviewed by Beth Dakin.
35804
35805         Remove the "range" role as a valid ARIA role.
35806
35807         Test: platform/mac/accessibility/aria-slider-value.html
35808
35809         * accessibility/AccessibilityObject.cpp:
35810         (WebCore::createARIARoleMap):
35811
35812 2012-10-24  Florin Malita  <fmalita@chromium.org>
35813
35814         [Chromium] SVG repaint issues
35815         https://bugs.webkit.org/show_bug.cgi?id=99874
35816
35817         Reviewed by Levi Weintraub.
35818
35819         RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
35820         but in doing so it ends up accumulating subpixel rounding deltas twice: first for 
35821         adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
35822         half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
35823         painting at the wrong location.
35824
35825         This can be avoided by using localToBorderBoxTransform() directly, which (unlike
35826         localToParentTransform()) doesn't perform rounding.
35827
35828         No new tests: existing pixel results cover this change after rebaseline.
35829
35830         * rendering/svg/RenderSVGRoot.cpp:
35831         (WebCore::RenderSVGRoot::paintReplaced):
35832
35833 2012-10-24  Levi Weintraub  <leviw@chromium.org>
35834
35835         Fixing the Chromium build after typo in r132367.
35836
35837         * WebCore.gypi:
35838
35839 2012-10-24  Nico Weber  <thakis@chromium.org>
35840
35841         [chromium] Respect image orientation in image dragging code
35842         https://bugs.webkit.org/show_bug.cgi?id=100200
35843
35844         Reviewed by Tony Chang.
35845
35846         Based on the corresponding code in DragImageMac.mm.  The image
35847         rotation code isn't hooked up yet, so no observable effect for now.
35848
35849         * platform/chromium/DragImageChromiumSkia.cpp:
35850         (WebCore::createDragImageFromImage):
35851
35852 2012-10-24  Michael Saboff  <msaboff@apple.com>
35853
35854         Code cleanup after r132165
35855         https://bugs.webkit.org/show_bug.cgi?id=100135
35856
35857         Reviewed by Geoffrey Garen.
35858
35859         Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.
35860
35861         Code clean up without functional changes, therefore no new tests.
35862
35863         * xml/parser/MarkupTokenBase.h:
35864         (WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
35865         (WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
35866         (WebCore::MarkupTokenBase::appendToName): Elimintated inline.
35867         (WebCore::MarkupTokenBase::name): Elimintated inline.
35868         (WebCore::MarkupTokenBase::nameString): Elimintated inline.
35869
35870 2012-10-24  Toni Barzic  <tbarzic@chromium.org>
35871
35872         Crash when trying to write exception message to null console
35873         https://bugs.webkit.org/show_bug.cgi?id=99658
35874
35875         Reviewed by Adam Barth.
35876
35877         DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
35878         This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
35879         The exception task could be processes after current window in the frame changes, and console in the document window is nulled.
35880
35881         Test: fast/workers/worker-exception-during-navigation.html
35882
35883         * dom/Document.cpp:
35884         (WebCore::Document::addMessage):
35885
35886 2012-10-24  Cosmin Truta  <ctruta@rim.com>
35887
35888         Incorrect conditional use of LogFTP
35889         https://bugs.webkit.org/show_bug.cgi?id=100260
35890
35891         Reviewed by Alexey Proskuryakov.
35892
35893         Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
35894         without breaking the build.
35895
35896         * html/FTPDirectoryDocument.cpp:
35897         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
35898
35899 2012-10-23  Alexey Proskuryakov  <ap@apple.com>
35900
35901         Add a strategy for shared workers
35902         https://bugs.webkit.org/show_bug.cgi?id=100165
35903
35904         Reviewed by Brady Eidson.
35905
35906         Also a little bit of alphabetization.
35907
35908         * WebCore.gypi:
35909         * WebCore.vcproj/WebCore.vcproj:
35910         * WebCore.xcodeproj/project.pbxproj:
35911         * platform/PlatformStrategies.h:
35912         * workers/SharedWorkerStrategy.h: Added.
35913
35914 2012-10-24  David Barton  <dbarton@mathscribe.com>
35915
35916         [MathML] Timeouts on linux after r132264
35917         https://bugs.webkit.org/show_bug.cgi?id=100202
35918
35919         Reviewed by Eric Seidel.
35920
35921         When building a stretched operator, such as a large parenthesis or bracket, we need to
35922         check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
35923         can occur if the glyph is missing on the host system.
35924
35925         Tested by existing tests.
35926
35927         * rendering/mathml/RenderMathMLOperator.cpp:
35928         (WebCore::RenderMathMLOperator::updateFromElement):
35929
35930 2012-10-24  Parth Patel  <parpatel@rim.com>
35931
35932         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
35933         Generic ThreadUnsafe Singleton
35934         https://bugs.webkit.org/show_bug.cgi?id=100145
35935
35936         Reviewed by Rob Buis.
35937
35938         Extending the singletons to generic singleton and changing
35939         getInstance() in IconDatabaseClientBlackBerry to instance()
35940         to match the generic singleton template.
35941
35942         Reviewed Internally by Yong Li.
35943
35944         Tests are not modified and added as there was no behavioural change.
35945
35946         * platform/blackberry/SharedTimerBlackBerry.cpp:
35947         (SharedTimerBlackBerry):
35948         (WebCore):
35949
35950 2012-10-24  Ilya Tikhonovsky  <loislo@chromium.org>
35951
35952         Web Inspector: NMI add instrumentation for ResourceBuffer. It gives us 10mb on gmail
35953         https://bugs.webkit.org/show_bug.cgi?id=100254
35954
35955         Reviewed by Yury Semikhatsky.
35956
35957         * loader/ResourceBuffer.cpp:
35958         (WebCore::ResourceBuffer::reportMemoryUsage):
35959         (WebCore):
35960         * loader/ResourceBuffer.h:
35961         (ResourceBuffer):
35962
35963 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35964
35965         Allow ports to override text track rendering style
35966         https://bugs.webkit.org/show_bug.cgi?id=97800
35967         <rdar://problem/12044964>
35968
35969         Unreviewed Build fix.
35970         
35971         CGFloat is already a float in a 32-bit build so narrowPrecisionToFloat() is unnecessary
35972
35973         * page/CaptionUserPreferencesMac.mm:
35974         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale):
35975
35976 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35977
35978         Allow ports to override text track rendering style
35979         https://bugs.webkit.org/show_bug.cgi?id=97800
35980         <rdar://problem/12044964>
35981
35982         Reviewed by Maciej Stachowiak.
35983
35984         * WebCore.exp.in: Export new WebkitSystemInterface functions.
35985         * WebCore.xcodeproj/project.pbxproj: Add CaptionUserPreferences.h, CaptionUserPreferencesMac.mm,
35986             and CaptionUserPreferencesMac.h.
35987
35988         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
35989             background, and text independently.
35990
35991         * html/HTMLMediaElement.cpp:
35992         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
35993         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
35994         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
35995         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
35996         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
35997         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
35998             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
35999         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
36000         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
36001             setClosedCaptionsVisible
36002         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
36003
36004         * html/shadow/MediaControlElements.cpp:
36005         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
36006             variable. Get caption font scale from theme instead of hard coding.
36007         * html/shadow/MediaControlElements.h:
36008
36009         * html/track/TextTrack.cpp:
36010         (WebCore::TextTrack::TextTrack): Change attributes from String to AtomicString.
36011         (WebCore::TextTrack::isValidKindKeyword): Ditto.
36012         (WebCore::TextTrack::setKind): Ditto.
36013         (WebCore::TextTrack::setMode): Ditto.
36014         (WebCore::TextTrack::mode): Ditto.
36015         * html/track/TextTrack.h:
36016         (WebCore::TextTrack::create): Ditto.
36017         (WebCore::TextTrack::kind): Ditto.
36018         (WebCore::TextTrack::label): Ditto.
36019         (WebCore::TextTrack::setLabel): Ditto.
36020         (WebCore::TextTrack::language): Ditto.
36021         (WebCore::TextTrack::setLanguage): Ditto.
36022
36023         * html/track/TextTrackCue.cpp:
36024         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
36025         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
36026             shadow pseudo id so it can be used elsewhere.
36027         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
36028         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
36029             shadow pseudo id so it can be used elsewhere.
36030         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
36031         (WebCore::TextTrackCue::updateDisplayTree):
36032         * html/track/TextTrackCue.h:
36033
36034         * page/CaptionUserPreferences.h: Added.
36035         * page/CaptionUserPreferencesMac.h: Added.
36036         * page/CaptionUserPreferencesMac.mm: Added.
36037         (WebCore::userCaptionPreferencesChangedNotificationCallback):
36038         (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac):
36039         (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac):
36040         (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): New, passthrough to WKSI function.
36041         (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Ditto.
36042         (WebCore::CaptionUserPreferencesMac::captionsWindowColor): Return Color with user's caption window color preference.
36043         (WebCore::CaptionUserPreferencesMac::captionsBackgroundColor): Return Color with user's caption 
36044             background color preference.
36045         (WebCore::CaptionUserPreferencesMac::captionsTextColor): Return Color with user's caption text color preference.
36046         (WebCore::CaptionUserPreferencesMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
36047         (WebCore::CaptionUserPreferencesMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
36048             or webkit-text-stroke property.
36049         (WebCore::CaptionUserPreferencesMac::cssColorProperty): Return a String with css to set a property 
36050             with a color value.
36051         (WebCore::CaptionUserPreferencesMac::captionsTextEdgeStyle): Return a String with css to style caption 
36052             text with the user's preferred text edge stye.
36053         (WebCore::CaptionUserPreferencesMac::captionsDefaultFont): Return a String with css to style caption
36054             text with the user's preferred font.
36055         (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Return a String with css to style captions
36056             with the user's preferred style.
36057         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Return the user's preferred caption font scale.
36058         (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Notify listeners of caption preference change.
36059         (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
36060             changes listener.
36061         (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
36062             changes listener.
36063         (WebCore::CaptionUserPreferencesMac::updateCaptionStyleSheetOveride): New, if theme has a captions style sheet override,
36064             inject it into the current page group, otherwise remove injected sheet.
36065
36066         * page/PageGroup.cpp:
36067         (WebCore::PageGroup::captionPreferences):
36068         (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): New, passthrough to platform specific function
36069             of the same name.
36070         (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
36071         (WebCore::PageGroup::userPrefersCaptions): Ditto.
36072         (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
36073         (WebCore::PageGroup::captionFontSizeScale): Ditto.
36074         * page/PageGroup.h:
36075
36076         * platform/mac/WebCoreSystemInterface.h: Updated.
36077         * platform/mac/WebCoreSystemInterface.mm: Ditto.
36078
36079 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36080
36081         Web Inspector: Introduce workspace provider as a content providing backend for project.
36082         https://bugs.webkit.org/show_bug.cgi?id=100244
36083
36084         Reviewed by Pavel Feldman.
36085
36086         Introduced WorkspaceProvider interface as a content providing backend for project.
36087         Added NetworkWorkspaceProvider as a network based (default) implementation.
36088
36089         * WebCore.gypi:
36090         * WebCore.vcproj/WebCore.vcproj:
36091         * inspector/compile-front-end.py:
36092         * inspector/front-end/CompilerScriptMapping.js:
36093         (WebInspector.CompilerScriptMapping):
36094         * inspector/front-end/DebuggerScriptMapping.js:
36095         (WebInspector.DebuggerScriptMapping):
36096         * inspector/front-end/NetworkUISourceCodeProvider.js:
36097         (WebInspector.NetworkUISourceCodeProvider):
36098         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
36099         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
36100         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
36101         * inspector/front-end/NetworkWorkspaceProvider.js: Added.
36102         (WebInspector.NetworkWorkspaceProvider):
36103         (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
36104         (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
36105         (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
36106         (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
36107         (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
36108         (WebInspector.NetworkWorkspaceProvider.prototype.reset):
36109         * inspector/front-end/SASSSourceMapping.js:
36110         (WebInspector.SASSSourceMapping):
36111         (_bindUISourceCode):
36112         * inspector/front-end/ScriptSnippetModel.js:
36113         (WebInspector.ScriptSnippetModel):
36114         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
36115         * inspector/front-end/WebKit.qrc:
36116         * inspector/front-end/Workspace.js:
36117         (WebInspector.FileDescriptor):
36118         (WebInspector.WorkspaceProvider):
36119         (WebInspector.WorkspaceProvider.prototype.requestFileContent):
36120         (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
36121         (WebInspector.WorkspaceProvider.prototype.addEventListener):
36122         (WebInspector.WorkspaceProvider.prototype.removeEventListener):
36123         (WebInspector.Project):
36124         (WebInspector.Project.prototype.reset):
36125         (WebInspector.Project.prototype._fileAdded):
36126         (WebInspector.Project.prototype._fileRemoved):
36127         (WebInspector.Project.prototype.requestFileContent):
36128         (WebInspector.Project.prototype.searchInFileContent):
36129         (WebInspector.Workspace):
36130         (WebInspector.Workspace.prototype.addProject):
36131         (WebInspector.Workspace.prototype.project):
36132         * inspector/front-end/inspector.html:
36133         * inspector/front-end/inspector.js:
36134
36135 2012-10-24  Nikita Vasilyev  <me@elv1s.ru>
36136
36137         Web Inspector: Styles pane: Don't select whole value when I select just a part
36138         https://bugs.webkit.org/show_bug.cgi?id=100242
36139
36140         Reviewed by Alexander Pavlov.
36141
36142         * inspector/front-end/StylesSidebarPane.js:
36143         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
36144         (WebInspector.StylePropertyTreeElement.prototype):
36145
36146 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36147
36148         Web Inspector: UiSourceCode should rely on the workspace as a content provider.
36149         https://bugs.webkit.org/show_bug.cgi?id=100216
36150
36151         Reviewed by Pavel Feldman.
36152
36153         Workspace is now passed to UISourceCode to be used as a content provider.
36154         Content providers are now stored in the workspace/project.
36155         Next step would be to move content providers to workspace providers.
36156
36157         * inspector/front-end/BreakpointManager.js:
36158         (WebInspector.BreakpointManager.breakpointStorageId):
36159         * inspector/front-end/UISourceCode.js:
36160         (WebInspector.UISourceCode):
36161         (WebInspector.UISourceCode.prototype.contentType):
36162         (WebInspector.UISourceCode.prototype.requestContent):
36163         (WebInspector.UISourceCode.prototype.requestOriginalContent):
36164         (WebInspector.UISourceCode.prototype._commitContent):
36165         (WebInspector.UISourceCode.prototype.searchInContent):
36166         * inspector/front-end/Workspace.js:
36167         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
36168         (WebInspector.Project):
36169         (WebInspector.Project.prototype.addUISourceCode):
36170         (WebInspector.Project.prototype.removeUISourceCode):
36171         (WebInspector.Project.prototype.uiSourceCodes):
36172         (WebInspector.Project.prototype.requestFileContent):
36173         (WebInspector.Project.prototype.searchInFileContent):
36174         (WebInspector.Workspace):
36175         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
36176         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
36177         (WebInspector.Workspace.prototype.reset):
36178
36179 2012-10-24  Zeno Albisser  <zeno@webkit.org>
36180
36181         Implement GraphicsSurface for Windows.
36182         https://bugs.webkit.org/show_bug.cgi?id=98147
36183
36184         Reviewed by Kenneth Rohde Christiansen.
36185
36186         * Target.pri:
36187             Include GraphicsSurfaceWin.cpp in SOURCES on Windows.
36188         * platform/graphics/surfaces/GraphicsSurface.h:
36189             Add typedef for PlatformGraphicsSurface on Windows.
36190         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
36191             Add typedef for BufferHandle on Windows.
36192         (GraphicsSurfaceToken):
36193         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: Added.
36194             The GraphicsSurface implementation on Windows relies on the
36195             availability of ANGLE and the EGL_ANGLE_query_surface_pointer extension.
36196             For Qt this requirements are implicitly satisfied, when Qt is built
36197             on Windows and QT_CONFIG contains OpenGLES2.
36198             The GraphicsSurface then renders a given texture onto an offscreen
36199             pixel buffer surface, queries the surface pointer using the
36200             EGL_ANGLE_query_surface_pointer extension, and transmits the received
36201             surface pointer (share handle) over IPC.
36202             On the UIProcess side, the surface pointer can then be resolved
36203             using eglCreatePbufferFromClientBuffer.
36204         (WebCore):
36205         (WebCore::loadShader):
36206             Initialize the shaders needed for drawing onto the GraphicsSurface.
36207         (GraphicsSurfacePrivate):
36208         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
36209             In case of the instance being on the WebProcess side,
36210             create an EGLContext that shares the texture objects with the provided
36211             share context. Also create two pixel buffer surfaces, one as front- and
36212             one as backbuffer.
36213             Query the surface pointers for the pixel buffer surfaces and initialize
36214             the GraphicsSurfaceToken that can be passed over IPC later.
36215         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
36216             Release all aquired resources and destroy the pixel buffer surfaces.
36217             Also close the EGL-Display connection.
36218         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
36219             Make the belonging context current on the back buffer surface
36220             and use drawTexture() to draw the provided texture onto the GraphicsSurface.
36221         (WebCore::GraphicsSurfacePrivate::makeCurrent):
36222             Save the previously current context, then make the context belonging
36223             to the GraphicsSurface current.
36224         (WebCore::GraphicsSurfacePrivate::doneCurrent):
36225             Restore the context that was current before calling makeCurrent().
36226         (WebCore::GraphicsSurfacePrivate::swapBuffers):
36227             Swap front and back buffer surfaces and handles.
36228         (WebCore::GraphicsSurfacePrivate::token):
36229         (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
36230             This function is meant to be called from the UIProcess side.
36231             If no front buffer surface has been created before for the current
36232             front buffer handle, one will be created.
36233             Then eglBindTexImage will be used to actually bind the current
36234             front buffer surface to a texture as a source for drawing.
36235         (WebCore::GraphicsSurfacePrivate::initialFrontBufferShareHandle):
36236         (WebCore::GraphicsSurfacePrivate::frontBufferShareHandle):
36237         (WebCore::GraphicsSurfacePrivate::backBufferShareHandle):
36238         (WebCore::GraphicsSurfacePrivate::releaseFrontBufferTexture):
36239             Free the resources related to the front buffer surface.
36240             On the UIProcess side we never actually bind the back buffer.
36241         (WebCore::GraphicsSurfacePrivate::initializeShaderProgram):
36242             Initialize and link the shader programs necessary for drawing
36243             onto the GraphicsSurface.
36244         (WebCore::GraphicsSurfacePrivate::createSurfaceFromShareHandle):
36245             Creates a single pixel buffer surface from a share Handle.
36246             This function will be called on the UIProcess side,
36247             for the front buffer handle, whenever the buffers have been swapped.
36248         (WebCore::GraphicsSurfacePrivate::drawTexture):
36249             The WebProcess uses this function to draw a given
36250             texture onto the GraphicsSurface's back buffer.
36251         (WebCore::GraphicsSurface::platformExport):
36252         (WebCore::GraphicsSurface::platformGetTextureID):
36253         (WebCore::GraphicsSurface::platformCopyToGLTexture):
36254         (WebCore::GraphicsSurface::platformCopyFromTexture):
36255         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
36256             Uses TextureMapperGL::drawTexture() to draw the front buffer texture
36257             to the TextureMapper on the UIProcess side.
36258         (WebCore::GraphicsSurface::platformFrontBuffer):
36259         (WebCore::GraphicsSurface::platformSwapBuffers):
36260         (WebCore::GraphicsSurface::platformCreate):
36261         (WebCore::GraphicsSurface::platformImport):
36262         (WebCore::GraphicsSurface::platformLock):
36263         (WebCore::GraphicsSurface::platformUnlock):
36264         (WebCore::GraphicsSurface::platformDestroy):
36265
36266 2012-09-27  Yury Semikhatsky  <yurys@chromium.org>
36267
36268         Web Inspector: provide memory instrumentation for ListHashSet
36269         https://bugs.webkit.org/show_bug.cgi?id=97786
36270
36271         Reviewed by Vsevolod Vlasov.
36272
36273         Switched existing usages of addListHashSet to the generic instrumentation mechanism
36274         as it should work just just fine now that there is a memory instrumentation of
36275         ListHashSet.
36276
36277         * dom/DocumentEventQueue.cpp:
36278         * dom/DocumentStyleSheetCollection.cpp:
36279         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
36280         * loader/cache/CachedResourceLoader.cpp:
36281         (WebCore::CachedResourceLoader::reportMemoryUsage):
36282
36283 2012-10-24  Charles Wei  <charles.wei@torchmobile.com.cn>
36284
36285         [BlackBerry] Credentials not re-used for a redirected request to the same domain
36286         https://bugs.webkit.org/show_bug.cgi?id=100193
36287
36288         Reviewed by George Staikos.
36289
36290         We should store the credentials in the redirection response handler, if the request is challenged.
36291         Because the redirect response suggests the authentication succeeds. 
36292
36293         Test: http://browsertest01.rim.net/authbasic
36294
36295         * platform/network/blackberry/NetworkJob.cpp:
36296         (WebCore::NetworkJob::handleRedirect):
36297
36298 2012-10-24  Alexander Pavlov  <apavlov@chromium.org>
36299
36300         Web Inspector: Implement CSS reload upon related SASS resource saving
36301         https://bugs.webkit.org/show_bug.cgi?id=98024
36302
36303         Reviewed by Vsevolod Vlasov.
36304
36305         SASS-generated debug info in CSS is parsed to find out which SASS files contributed to this stylesheet.
36306         Upon SASS file save in the Sources panel, all affected external CSS stylesheets are reloaded to update
36307         the page styles (presuming that SASS is running in the "watch" mode during the development cycle).
36308
36309         * English.lproj/localizedStrings.js:
36310         * inspector/front-end/SASSSourceMapping.js:
36311         (WebInspector.SASSSourceMapping):
36312         (WebInspector.SASSSourceMapping.prototype._fileSaveFinished.callback):
36313         (WebInspector.SASSSourceMapping.prototype._reloadCSS):
36314         (_bindUISourceCode):
36315         (_addCSSURLforSASSURL):
36316         * inspector/front-end/Settings.js:
36317         * inspector/front-end/SettingsScreen.js:
36318         (WebInspector.GenericSettingsTab):
36319
36320 2012-10-23  Yury Semikhatsky  <yurys@chromium.org>
36321
36322         Memory instrumentation: don't count agent-specific front-ends separately
36323         https://bugs.webkit.org/show_bug.cgi?id=100087
36324
36325         Reviewed by Alexander Pavlov.
36326
36327         Pointers to domain-specific inspector front-end interfaces are reported as
36328         weak pointers instead of members to avoid double-counting.
36329
36330         Test by comparing set of reported instrumented objects with the set of objects
36331         allocated by tcmalloc.
36332
36333         * inspector/InspectorDOMStorageAgent.cpp:
36334         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
36335         * inspector/InspectorDOMStorageResource.cpp:
36336         (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
36337         * inspector/InspectorProfilerAgent.cpp:
36338         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
36339
36340 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
36341
36342         Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
36343         https://bugs.webkit.org/show_bug.cgi?id=100203
36344
36345         Unreviewed Build fix.
36346
36347         Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
36348         set and STYLE_SCOPED is not.
36349
36350         No new tests, no behavior change.
36351
36352         * css/StyleResolver.h:
36353         (WebCore::StyleResolver::ensureScopeResolver):
36354
36355 2012-10-23  Andreas Kling  <kling@webkit.org>
36356
36357         Remove specialized hash traits for GlyphPages.
36358         <http://webkit.org/b/100185>
36359
36360         Reviewed by Dan Bernstein.
36361
36362         Now that the default minimum table size has been lowered for all tables, there's no need
36363         for this specialization anymore.
36364
36365         * platform/graphics/FontFallbackList.h:
36366         (FontFallbackList):
36367
36368 2012-10-23  Kent Tamura  <tkent@chromium.org>
36369
36370         Multiple fields input UI: Don't use CSS properties for physical direction
36371         https://bugs.webkit.org/show_bug.cgi?id=100195
36372
36373         Reviewed by Kentaro Hara.
36374
36375         CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
36376         not direction-neutral, and makes unexpected appearance in RTL. We should
36377         use -webkit-padding-start or -webkit-margin-start.
36378
36379         No new tests. Covered by date-multiple-fields-appearance-l10n.html and
36380         month-multiple-fields-appearance-l10n.html
36381
36382         * css/html.css:
36383         (input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
36384         (input[type="datetime"]): Ditto.
36385         (input[type="datetime-local"]): Ditto.
36386         (input[type="month"]): Ditto.
36387         (input[type="time"]): Ditto.
36388         (input[type="week"]): Ditto.
36389         (input[type="week"]::-webkit-inner-spin-button):
36390         Use -webkit-margin-start. Also use an integral pixel size instead of
36391         avoid a fractional relative size to avoid subpixel layout rounding.
36392
36393 2012-10-23  Dan Bernstein  <mitz@apple.com>
36394
36395         The font cache evicts inactive font data too aggressively when not under memory pressure
36396         https://bugs.webkit.org/show_bug.cgi?id=100194
36397
36398         Reviewed by Sam Weinig.
36399
36400         Increasing the number of inactive font data objects the cache may hold increases the hit
36401         rate, leading to improved page load performance. When memory pressure is detected,
36402         MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
36403         increasing here.
36404
36405         * platform/graphics/FontCache.cpp:
36406         (WebCore): Increased the maximum number of inactive font data objects in the cache from 50
36407         to 225, and the number of objects to evict once the limit is met from 20 to 25.
36408
36409 2012-10-23  Takashi Sakamoto  <tasak@google.com>
36410
36411         [Shadow DOM] Needs @host rule for ShadowDOM styling
36412         https://bugs.webkit.org/show_bug.cgi?id=88606
36413
36414         Reviewed by Hajime Morita.
36415
36416         Implemented @host-@rules according to the shadow dom spec:
36417         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
36418         The design doc is:
36419         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
36420
36421         Test: fast/dom/shadow/athost-atrules.html
36422
36423         * css/CSSGrammar.y.in:
36424         Added rules for parsing @host @-rules.
36425         * css/CSSParser.cpp:
36426         (WebCore::CSSParser::detectAtToken):
36427         Added a new token "@host".
36428         (WebCore::CSSParser::createHostRule):
36429         Added a new method to create an @host @-rule, which is invoked from
36430         (WebCore):
36431         * css/CSSParser.h:
36432         Added a declaration of the above new method: createHostRule.
36433         * css/CSSPropertySourceData.h:
36434         Added HOST_RULE to enum Type.
36435         * css/RuleSet.cpp:
36436         (WebCore::RuleData::RuleData):
36437         Modified multiple bool arguments into one argument. Now it
36438         uses combinations of values from enum AddRuleFlags.
36439         (WebCore::RuleSet::addRule):
36440         (WebCore::RuleSet::addRegionRule):
36441         (WebCore::RuleSet::addStyleRule):
36442         Updated according to the RuleData's change.
36443         Modified to Invoke increaseSpecificity if the given rule is @host
36444         @-rule.
36445         (WebCore::RuleSet::addRulesFromSheet):
36446         Invoked addHostRule if the given rule is @host @-rule.
36447         * css/RuleSet.h:
36448         (RuleData):
36449         (WebCore::RuleData::increaseSpecificity):
36450         Added a new method to increase selector's specificity. This method is
36451         used to make @host @-rules' specificity larger than normal author
36452         rules' specificity.
36453         (RuleSet):
36454         * css/StyleResolver.cpp:
36455         (WebCore::makeRuleSet):
36456         (WebCore::StyleResolver::addHostRule):
36457         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
36458         is used to make only StyleResolver know an implementation detail about
36459         class StyleScopeResolver.
36460         (WebCore::StyleResolver::appendAuthorStylesheets):
36461         Updated according to the RuleData's change.
36462         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
36463         A new method to find matched host rules when an element is given.
36464         This method invokes
36465         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
36466         matched host rules.
36467         (WebCore):
36468         (WebCore::StyleResolver::matchHostRules):
36469         A new method to find matched host rules when an element is given.
36470         This method invokes StyleScopeResolver::matchHostRules to find
36471         matched host rules.
36472         (WebCore::StyleResolver::matchScopedAuthorRules):
36473         Modified to invoke matchHostRules.
36474         (WebCore::StyleResolver::locateSharedStyle):
36475         Disable sibling style cache if the given element is a shadow host and
36476         any @host @-rules are applied to the element.
36477         * css/StyleResolver.h:
36478         (WebCore::StyleResolver::ensureScopeResolver):
36479         If no scopeResolver is created, create and return the instance.
36480         If created, just return the instance.
36481         (StyleResolver):
36482         * css/StyleRule.cpp:
36483         (WebCore::StyleRuleBase::reportMemoryUsage):
36484         (WebCore::StyleRuleBase::destroy):
36485         (WebCore::StyleRuleBase::copy):
36486         (WebCore::StyleRuleBase::createCSSOMWrapper):
36487         (WebCore::StyleRuleHost::StyleRuleHost):
36488         Implemented class StyleRuleHost. The class is almost the same as
36489         StyleRuleBlock except type.
36490         (WebCore):
36491         * css/StyleRule.h:
36492         (WebCore::StyleRuleBase::isHostRule):
36493         (StyleRuleHost):
36494         (WebCore::StyleRuleHost::create):
36495         (WebCore::StyleRuleHost::copy):
36496         (WebCore):
36497         * css/StyleScopeResolver.cpp:
36498         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
36499         A new method to create a new RuleSet for the given shadow root.
36500         (WebCore):
36501         (WebCore::StyleScopeResolver::atHostRuleSetFor):
36502         A new private inline method to obtain @host @-rules declared in
36503         the given shadow root.
36504         (WebCore::StyleScopeResolver::addHostRule):
36505         Added a new method to register @host @-rules with shadow roots.
36506         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
36507         A new method to find whether any @host @-rules are applied to
36508         the given host element.
36509         (WebCore::StyleScopeResolver::matchHostRules):
36510         A new method to find matched rules for the given host element.
36511         (WebCore::StyleScopeResolver::reportMemoryUsage):
36512         * css/StyleScopeResolver.h:
36513         (WebCore):
36514         (StyleScopeResolver):
36515         * css/StyleSheetContents.cpp:
36516         (WebCore::childRulesHaveFailedOrCanceledSubresources):
36517
36518 2012-10-23  Andreas Kling  <kling@webkit.org>
36519
36520         REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
36521         <http://webkit.org/b/100065>
36522
36523         Reviewed by Anders Carlsson.
36524
36525         Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
36526         collisions. This will need a proper fix at some point.
36527
36528         * plugins/PluginDatabase.h:
36529         * plugins/PluginPackage.h:
36530         (PluginPackageHashTraits):
36531
36532 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36533
36534         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36535         https://bugs.webkit.org/show_bug.cgi?id=100159
36536
36537         Reviewed by Tim Horton.
36538
36539         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36540         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36541
36542         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36543
36544         * page/Frame.h:
36545         * platform/graphics/GraphicsLayer.cpp:
36546         (showGraphicsLayerTree):
36547         * platform/graphics/GraphicsLayer.h:
36548         (WebCore::GraphicsLayer::tiledBacking):
36549         * platform/graphics/TiledBacking.h:
36550         * platform/graphics/ca/GraphicsLayerCA.cpp:
36551         (WebCore::GraphicsLayerCA::tiledBacking):
36552         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36553         * platform/graphics/ca/GraphicsLayerCA.h:
36554         (GraphicsLayerCA):
36555         * platform/graphics/ca/mac/TileCache.h:
36556         (WebCore::TileCache::tileCoverageRect):
36557         (TileCache):
36558         * platform/graphics/ca/mac/TileCache.mm:
36559         (WebCore::TileCache::computeTileCoverageRect):
36560         (WebCore::TileCache::revalidateTiles):
36561         * rendering/RenderLayerCompositor.cpp:
36562         (WebCore::RenderLayerCompositor::layerTreeAsText):
36563         * testing/Internals.cpp:
36564         (WebCore::Internals::layerTreeAsText):
36565         * testing/Internals.h:
36566         * testing/Internals.idl:
36567
36568 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36569
36570         Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
36571         https://bugs.webkit.org/show_bug.cgi?id=100187
36572         <rdar://problem/12546770>
36573
36574         Reviewed by Dan Bernstein.
36575
36576         Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
36577         to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
36578         background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
36579         to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
36580         that require frequent flushing, such as those running animated GIFs.
36581         
36582         Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
36583         when re-attaching the root layer, and if it's set, flush the GraphicsLayers.
36584         
36585         Not testable because we can't test detaching and re-adding web views in DRT/WTR.
36586
36587         * rendering/RenderLayerCompositor.cpp:
36588         (WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
36589         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
36590         is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
36591         (WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
36592         saying that we're the flush root.
36593         * rendering/RenderLayerCompositor.h:
36594         (RenderLayerCompositor): Add m_shouldFlushOnReattach flag.
36595
36596 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
36597
36598         Unreviewed, rolling out r132276.
36599         http://trac.webkit.org/changeset/132276
36600         https://bugs.webkit.org/show_bug.cgi?id=100189
36601
36602         It broke the Qt-WK2 build intentionally (Requested by
36603         Ossy_night on #webkit).
36604
36605         * page/Frame.h:
36606         * platform/graphics/GraphicsLayer.cpp:
36607         (showGraphicsLayerTree):
36608         * platform/graphics/GraphicsLayer.h:
36609         (WebCore::GraphicsLayer::tiledBacking):
36610         * platform/graphics/TiledBacking.h:
36611         * platform/graphics/ca/GraphicsLayerCA.cpp:
36612         (WebCore::GraphicsLayerCA::tiledBacking):
36613         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36614         * platform/graphics/ca/GraphicsLayerCA.h:
36615         (GraphicsLayerCA):
36616         * platform/graphics/ca/mac/TileCache.h:
36617         * platform/graphics/ca/mac/TileCache.mm:
36618         (WebCore::TileCache::tileCoverageRect):
36619         (WebCore::TileCache::revalidateTiles):
36620         * rendering/RenderLayerCompositor.cpp:
36621         (WebCore::RenderLayerCompositor::layerTreeAsText):
36622         * testing/Internals.cpp:
36623         (WebCore::Internals::layerTreeAsText):
36624         * testing/Internals.h:
36625         * testing/Internals.idl:
36626
36627 2012-10-23  Philip Rogers  <pdr@google.com>
36628
36629         Add extra check for data() in PageSerializer.
36630         https://bugs.webkit.org/show_bug.cgi?id=99102
36631
36632         Reviewed by Eric Seidel.
36633
36634         The image returned from imageForRenderer() does not contain the raw SVG data
36635         so this patch adds a check for image->image()->data() before writing SVG
36636         in PageSerializer::addImageToResources.
36637
36638         Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.
36639
36640         * page/PageSerializer.cpp:
36641         (WebCore::PageSerializer::addImageToResources):
36642
36643 2012-10-23  Kent Tamura  <tkent@chromium.org>
36644
36645         Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
36646         https://bugs.webkit.org/show_bug.cgi?id=100129
36647
36648         Reviewed by Kentaro Hara.
36649
36650         We're going to use appendAsLDMLLiteral in other code, and it is
36651         related to DateTimeFormat class.  So we move it to DateTimeFormat
36652         class as quoteAndAppendLiteral.
36653
36654         No new tests because of no behavior change.
36655
36656         * platform/text/DateTimeFormat.cpp:
36657         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
36658         Moved from LocaleWin.cpp
36659         * platform/text/DateTimeFormat.h:
36660         Declare StringBuilder by wtf/Forward.h. It also declares String.
36661         (DateTimeFormat): Declare quoteAndAppendLiteral.
36662         * platform/text/LocaleWin.cpp:
36663         (WebCore): Move appendLDMLLiteral to DateTimeFormat.
36664         (WebCore::convertWindowsDateFormatToLDML):
36665         Follow the moving.
36666
36667 2012-10-23  Kent Tamura  <tkent@chromium.org>
36668
36669         REGRESSION(r131421): Text baseline is not aligned in some locales
36670         https://bugs.webkit.org/show_bug.cgi?id=100088
36671
36672         Reviewed by Hajime Morita.
36673
36674         Before this patch, the element with ::-webkit-datetime-edit had
36675         -webkit-align-items:center. It was incorrect at all because it
36676         ignores baselines of each of inner fields. We need to change it to
36677         -webkit-align-items:baseline, or stop using -webkit-flex.
36678
36679         However -webkit-align-items:baseline doesn't work because a spin
36680         button element in the element doesn't have the baseline. If we
36681         specified -webkit-align-items:baseline, the spin button would
36682         shift up.
36683
36684         So, we change the element structure for multiple fields input
36685         elements. Before this patch, the structure was:
36686
36687         input
36688           |
36689            - ::-webkit-date-and-time-container (flex cotainer)
36690              |
36691              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
36692              |  |- ::-webkit-datetime-edit-foo
36693              |  |      :
36694              |  |
36695              |  |- ::-webkit-date-time-edit-gap  (has flexibility in datetime-edit)
36696              |   - ::-webkit-inne-spin-button
36697               - ::-webkit-calendar-picker-indicator
36698
36699         After the patch, the structure will be:
36700
36701         input
36702           |
36703            - ::-webkit-date-and-time-container (flexible box)
36704              |
36705              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container)
36706              |  |- ::-webkit-datetime-edit-foo
36707              |  |      :
36708              |  |
36709              |
36710              |- ::-webkit-inne-spin-button
36711               - ::-webkit-calendar-picker-indicator
36712
36713         Because the spin button owner is date-and-time-container, we don't
36714         need to make the datetime-edit element a flex container.
36715
36716         Also, we had rounding error by subpixel layout. To avoid it, we
36717         stop using fractional paddings.
36718
36719         In order to implement this, we need to change the SpinButtonOwner
36720         interface provider from DateTimeEditElement to
36721         BaseMultipleFieldsDateAndTimeInputType.
36722
36723         No new tests. Covered by month-multiple-fields-appearance-l10n.html.
36724
36725         * css/html.css:
36726         (input::-webkit-datetime-edit): Stop making this a flex
36727         container. Inner fields in this use the single baseline.
36728         (input::-webkit-datetime-edit-ampm-field):
36729         Don't use fractional paddings to avoid rounding erros of subpixel
36730         layout.  Use integral margin instead to avoid overwrap of focus
36731         ring and background-color of the field.
36732         (input::-webkit-datetime-edit-day-field): Ditto.
36733         (input::-webkit-datetime-edit-hour-field): Ditto.
36734         (input::-webkit-datetime-edit-millisecond-field): Ditto.
36735         (input::-webkit-datetime-edit-minute-field): Ditto.
36736         (input::-webkit-datetime-edit-month-field): Ditto.
36737         (input::-webkit-datetime-edit-second-field): Ditto.
36738         (input::-webkit-datetime-edit-week-field): Ditto.
36739         (input::-webkit-datetime-edit-year-field): Ditto.
36740         (input::-webkit-date-and-time-container): Ditto.
36741
36742         * html/BaseMultipleFieldsDateAndTimeInputType.h:
36743         (BaseMultipleFieldsDateAndTimeInputType): Overrides
36744         SpinButtonOwner functions, and add m_spinButtonElement.
36745         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
36746         (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
36747         Just delegate to DateTimeEditElement::focusIfNoFocus.
36748         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
36749         Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
36750         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
36751         Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
36752         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
36753         Delegate to DateTimeEditElement::stepDown.
36754         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
36755         Delegate to DateTimeEditElement::stepUp.
36756         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
36757         Initialize m_spinButtonElement.
36758         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
36759         Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
36760         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
36761         Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
36762         (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
36763         Take care of SpinButtonElement.
36764         (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
36765         Release capture of SpinButtonElement. This corresponds to the old
36766         code of DateTimeEditElement::updateUIState.
36767         (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.
36768
36769         * html/TextFieldInputType.h:
36770         Make SpinButtonElement::SpinButtonOwner protected to allow overriding.
36771
36772         * html/shadow/DateTimeEditElement.h:
36773         (DateTimeEditElement): Remove SpniButtonOwner implementation,
36774         m_spinButton, and rename some functions.
36775         * html/shadow/DateTimeEditElement.cpp:
36776         (WebCore::DateTimeEditElement::DateTimeEditElement):
36777         Remove m_spinButton.
36778         (WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
36779         (WebCore::DateTimeEditElement::focusIfNoFocus):
36780         Renamed from focusAndSelectSpinButtonOwner. This is called
36781         BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
36782         (WebCore::DateTimeEditElement::layout):
36783         Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
36784         (WebCore::DateTimeEditElement::defaultEventHandler):
36785         Move the code for m_spinButton to
36786         BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
36787         (WebCore::DateTimeEditElement::hasFocusedField): A helper for
36788         BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
36789         (WebCore::DateTimeEditElement::stepDown): A helper for
36790         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
36791         (WebCore::DateTimeEditElement::stepUp): A helper for
36792         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
36793         (WebCore::DateTimeEditElement::updateUIState): Move the code to
36794         BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
36795         and readonlyAttributeChanged.
36796
36797 2012-10-23  Andreas Kling  <kling@webkit.org>
36798
36799         Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
36800         <http://webkit.org/b/100123>
36801
36802         Reviewed by Anders Carlsson.
36803
36804         Remove one pointer of unintentional padding in the immutable versions of these objects.
36805         583kB progression on Membuster3.
36806
36807         * css/StylePropertySet.cpp:
36808         (WebCore::immutableStylePropertySetSize):
36809         * dom/ElementAttributeData.cpp:
36810         (WebCore::immutableElementAttributeDataSize):
36811
36812 2012-10-23  Nate Chapin  <japhet@chromium.org>
36813
36814         Crash in WebCore::SubresourceLoader::willSendRequest.
36815         https://bugs.webkit.org/show_bug.cgi?id=100147
36816
36817         Reviewed by Abhishek Arya.
36818
36819         No new tests. There is a test case that should cover this, but it doesn't
36820         work correctly on many platforms due to its use of testRunner.addURLToRedirect().
36821         See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
36822         Tested manually on http://www.nick.co.uk/shows/spongebob
36823
36824         * loader/SubresourceLoader.cpp:
36825         (WebCore::SubresourceLoader::willSendRequest):
36826
36827 2012-10-23  Martin Robinson  <mrobinson@igalia.com>
36828
36829         [GTK][Soup] Implement the default authentication dialog via WebCoreSupport
36830         https://bugs.webkit.org/show_bug.cgi?id=99351
36831
36832         Reviewed by Carlos Garcia Campos.
36833
36834         Instead of connecting to the SoupSession::authenticate signal in the API layer
36835         via a SoupSessionFeature, route the message through the typical WebCore authentication
36836         mechanism. This is a step on the path to having full-blown support for authentication
36837         in the API allowing for custom authentication dialogs and behavior in clients.
36838
36839         No new tests. This should not change behavior.
36840
36841         * GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
36842         * loader/ResourceLoader.cpp:
36843         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.
36844         * platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth
36845         carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
36846         is destroyed.
36847         * platform/gtk/GtkAuthenticationDialog.h: ditto.
36848         * platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
36849         * platform/network/ResourceHandleInternal.h:
36850         (ResourceHandleInternal): Remove the getter for the initiating page ID.
36851         * platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge
36852         that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.
36853         * platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
36854         * platform/network/soup/ResourceError.h:
36855         (ResourceError): Added a factory for authentication errors.
36856         * platform/network/soup/ResourceErrorSoup.cpp: Ditto.
36857         * platform/network/soup/ResourceHandleSoup.cpp:
36858         (WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
36859         (WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
36860         It's always used now.
36861         (WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
36862         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
36863         the authentication challenge to the client.
36864         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
36865         (WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
36866         (WebCore::authenicateCallback): Added.
36867         (WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.
36868
36869 2012-10-23  Adam Barth  <abarth@webkit.org>
36870
36871         [V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
36872         https://bugs.webkit.org/show_bug.cgi?id=100157
36873
36874         Reviewed by Eric Seidel.
36875
36876         This patch removes the traits template parameter from GCEpilogueVisitor
36877         and makes it mirror GCPrologueVisitor again.
36878
36879         * bindings/v8/V8GCController.cpp:
36880         (WebCore):
36881         (ActiveDOMObjectEpilogueVisitor):
36882         (WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
36883         (WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
36884         (WebCore::V8GCController::majorGCEpilogue):
36885
36886 2012-10-23  Varun Jain  <varunjain@chromium.org>
36887
36888         Context menu generated from touch gestures on textareas has
36889         context of the cursor position instead of the position where the event occurs.
36890         https://bugs.webkit.org/show_bug.cgi?id=99520
36891
36892         Reviewed by Kenneth Rohde Christiansen.
36893
36894         Send a synthetic mouse down event for context menu-summoning-gesture events so
36895         that textareas can correctly set cursors before receiving the context menu event.
36896
36897         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
36898
36899         * page/EventHandler.cpp:
36900         (WebCore::EventHandler::handleGestureEvent):
36901         (WebCore::EventHandler::handleGestureTwoFingerTap):
36902         (WebCore):
36903         (WebCore::EventHandler::sendContextMenuEventForGesture):
36904         * page/EventHandler.h:
36905         (EventHandler):
36906
36907 2012-10-23  Andy Estes  <aestes@apple.com>
36908
36909         [WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
36910         https://bugs.webkit.org/show_bug.cgi?id=100162
36911
36912         Reviewed by Sam Weinig.
36913
36914         * WebCore.exp.in: Exported symbols needed by WebKit2.
36915         * bindings/objc/DOM.mm:
36916         (-[DOMNode textRects]): Moved some logic into Node::textRects()
36917         (everything but the call to updateLayoutIgnorePendingStylesheets()).
36918         * dom/Node.cpp:
36919         (WebCore::Node::textRects):
36920         * dom/Node.h:
36921
36922 2012-10-23  Adam Barth  <abarth@webkit.org>
36923
36924         [V8] Remove unused function from DOM wrapper visitor
36925         https://bugs.webkit.org/show_bug.cgi?id=100163
36926
36927         Reviewed by Eric Seidel.
36928
36929         No one overrides these virtual functions. They were added in
36930         http://trac.webkit.org/changeset/73491, but we don't use them in the GC
36931         controller anymore.
36932
36933         * bindings/v8/V8DOMMap.h:
36934         (WebCore::WeakReferenceMap::visit):
36935
36936 2012-10-23  Aaron Colwell  <acolwell@chromium.org>
36937
36938         Clear m_mediaSource reference when the MediaSource is closed
36939         https://bugs.webkit.org/show_bug.cgi?id=100047
36940
36941         Reviewed by Eric Carlson.
36942
36943         The m_mediaSource object shouldn't be accessed after the object
36944         transitions to closed so this change simply clears the reference
36945         when that transition happens.
36946
36947         No new tests because the change isn't visible to JavaScript.
36948
36949         * html/HTMLMediaElement.cpp:
36950         (WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
36951         (WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.
36952
36953 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36954
36955         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36956         https://bugs.webkit.org/show_bug.cgi?id=100159
36957
36958         Reviewed by Tim Horton.
36959
36960         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36961         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36962
36963         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36964
36965         * page/Frame.h:
36966         * platform/graphics/GraphicsLayer.cpp:
36967         (showGraphicsLayerTree):
36968         * platform/graphics/GraphicsLayer.h:
36969         (WebCore::GraphicsLayer::tiledBacking):
36970         * platform/graphics/TiledBacking.h:
36971         * platform/graphics/ca/GraphicsLayerCA.cpp:
36972         (WebCore::GraphicsLayerCA::tiledBacking):
36973         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36974         * platform/graphics/ca/GraphicsLayerCA.h:
36975         (GraphicsLayerCA):
36976         * platform/graphics/ca/mac/TileCache.h:
36977         (WebCore::TileCache::tileCoverageRect):
36978         (TileCache):
36979         * platform/graphics/ca/mac/TileCache.mm:
36980         (WebCore::TileCache::computeTileCoverageRect):
36981         (WebCore::TileCache::revalidateTiles):
36982         * rendering/RenderLayerCompositor.cpp:
36983         (WebCore::RenderLayerCompositor::layerTreeAsText):
36984         * testing/Internals.cpp:
36985         (WebCore::Internals::layerTreeAsText):
36986         * testing/Internals.h:
36987         * testing/Internals.idl:
36988
36989 2012-10-23  No'am Rosenthal  <noam.rosenthal@nokia.com>
36990
36991         Coordinated Graphics: Enable threaded/IPC animations
36992         https://bugs.webkit.org/show_bug.cgi?id=93146
36993
36994         Reviewed by Kenneth Rohde Christiansen.
36995
36996         Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
36997         across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
36998         and allowed a GraphicsLayerTextureMapper to receive a full list of animations.
36999
37000         Covered by existing animation and compositing tests.
37001
37002         * platform/graphics/GraphicsLayerAnimation.cpp:
37003         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
37004             Initialize the animation with the startTime instead of the offset.
37005
37006         (WebCore::GraphicsLayerAnimations::getActiveAnimations):
37007         * platform/graphics/GraphicsLayerAnimation.h:
37008         (WebCore::GraphicsLayerAnimation::setState):
37009             Allow setting the pause time as well.
37010
37011         (WebCore::GraphicsLayerAnimation::boxSize):
37012         (WebCore::GraphicsLayerAnimation::startTime):
37013         (WebCore::GraphicsLayerAnimation::pauseTime):
37014         (WebCore::GraphicsLayerAnimation::animation):
37015         (WebCore::GraphicsLayerAnimation::keyframes):
37016         (WebCore::GraphicsLayerAnimation::listsMatch):
37017         (WebCore::GraphicsLayerAnimations::size):
37018         (WebCore::GraphicsLayerAnimations::animations):
37019             Add public accessors to GraphicsLayerAnimation properties.
37020
37021         (GraphicsLayerAnimation):
37022         (GraphicsLayerAnimations):
37023         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
37024         (WebCore::GraphicsLayerTextureMapper::addAnimation):
37025         (WebCore::GraphicsLayerTextureMapper::setAnimations):
37026             Allow replacing the entire list of animations.
37027
37028         (WebCore):
37029         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
37030         (GraphicsLayerTextureMapper):
37031         * platform/graphics/texmap/TextureMapperLayer.cpp:
37032         (WebCore::TextureMapperLayer::applyAnimationsRecursively):
37033         (WebCore):
37034         * platform/graphics/texmap/TextureMapperLayer.h:
37035         (TextureMapperLayer):
37036
37037 2012-10-23  Chris Rogers  <crogers@google.com>
37038
37039         Change setTargetValueAtTime() to setTargetAtTime()
37040         https://bugs.webkit.org/show_bug.cgi?id=100153
37041
37042         Reviewed by Adam Barth.
37043
37044         The AudioParam method name has changed due to Web Audio API spec review.
37045         Keep legacy support for the old name.
37046
37047         Test: webaudio/audioparam-setTargetAtTime.html
37048
37049         * Modules/webaudio/AudioParam.h:
37050         (WebCore::AudioParam::setTargetAtTime):
37051         * Modules/webaudio/AudioParam.idl:
37052         * Modules/webaudio/AudioParamTimeline.cpp:
37053         (WebCore::AudioParamTimeline::setTargetAtTime):
37054         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
37055         * Modules/webaudio/AudioParamTimeline.h:
37056         (AudioParamTimeline):
37057
37058 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37059
37060         [Mac] Remove extraneous conversion to String->NSString
37061         https://bugs.webkit.org/show_bug.cgi?id=100044
37062
37063         Reviewed by Darin Adler.
37064
37065         Improve some unfortunate use of String->NSString.
37066
37067         * accessibility/mac/AXObjectCacheMac.mm:
37068         (WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
37069         needed as NSString, and all its value are or can be NSString.
37070         Convert the last 3 char* values to NSString literal and use NSString* all the way.
37071
37072         * loader/mac/LoaderNSURLExtras.h:
37073         * loader/mac/LoaderNSURLExtras.mm:
37074         (suggestedFilenameWithMIMEType):
37075         We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
37076         for the string to be a NSSTring there, we can leave it in its original type.
37077
37078         The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.
37079
37080         * platform/mac/DragImageMac.mm:
37081         (WebCore::createDragImageForLink):
37082         Use String's nsStringNilIfEmpty().
37083
37084         * platform/mac/HTMLConverter.mm:
37085         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
37086         Fix the coding style. Do the conversion to NSString only when needed.
37087
37088 2012-10-23  Roger Fong  <roger_fong@apple.com>
37089
37090         [Win] Popup menus positioning needs to take multiple monitors into account.
37091         https://bugs.webkit.org/show_bug.cgi?id=100158
37092
37093         Reviewed by Timothy Horton.
37094
37095         Add screen.x() to repositioning check to account for position of current monitor.
37096
37097         * platform/win/PopupMenuWin.cpp:
37098         (WebCore::PopupMenuWin::calculatePositionAndSize):
37099
37100 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37101
37102         [CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
37103         https://bugs.webkit.org/show_bug.cgi?id=99908
37104
37105         Reviewed by Dean Jackson.
37106
37107         CSS Shaders can not render anything until the program is loaded. If there is
37108         partial loaded shaders program, whole FilterOperations chain can not render
37109         anything. It occurs a flash. So We have to wait until the program is loaded, to
37110         prevent a flash as RenderLayerBacking::updateImageContents() waits until an
37111         image is fully loaded.
37112
37113         No new tests, CSS Shaders on Accelerated Compositing are not activated yet.
37114
37115         * rendering/RenderLayerBacking.cpp:
37116         (WebCore::RenderLayerBacking::updateFilters):
37117
37118 2012-10-23  Elliott Sprehn  <esprehn@chromium.org>
37119
37120         Generated should not be supported for things with a shadow
37121         https://bugs.webkit.org/show_bug.cgi?id=98836
37122
37123         Reviewed by Dimitri Glazkov.
37124
37125         As far as CSS is concerned inputs and things with shadow content inside
37126         shouldn't support pseudo elements like :before, :after or :first-letter.
37127         Neither Gecko or Presto supports it, and we only accidentally supported
37128         it.
37129
37130         Until the spec tells us what to do we should disable support. This is
37131         also neccesary because the new generated content implementation doesn't
37132         support shadows.
37133
37134         Test: fast/forms/pseudo-elements.html
37135
37136         * rendering/RenderBlock.cpp:
37137         (WebCore::RenderBlock::updateFirstLetter):
37138         * rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
37139         * rendering/RenderObjectChildList.cpp:
37140         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
37141
37142 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37143
37144         [CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
37145         https://bugs.webkit.org/show_bug.cgi?id=98504
37146
37147         Reviewed by Dean Jackson.
37148
37149         Add expressions for the aforementioned blend modes. The expressions are lifted
37150         directly from the CSS Compositing and Blending spec [1]. WebKit adds these
37151         blending expressions to the author's shader.
37152
37153         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal
37154
37155         Test: css3/filters/custom/custom-filter-blend-modes.html
37156
37157         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37158         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
37159         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
37160
37161 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37162
37163         [CSS Shaders] Implement all composite operators except destination and lighter.
37164         https://bugs.webkit.org/show_bug.cgi?id=97859
37165
37166         Reviewed by Dean Jackson.
37167
37168         Add expressions for all composite operators except destination and
37169         lighter. The expressions are lifted directly from the CSS Compositing
37170         and Blending spec [1]. WebKit adds these compositing expressions to the
37171         author's shader.
37172
37173         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
37174
37175         Test: css3/filters/custom/custom-filter-composite-operators.html
37176
37177         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
37178         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
37179             Remove ASSERTION checking if glGetUniformLocation returns negative,
37180             because ASSERTION can fail with clear and copy composite operations.
37181             Clear and copy composite operations do not need "css_u_texture"
37182             representing the DOM element texture. If the driver compiler is
37183             smart, "css_u_texture" is not regarded as an active uniform, so
37184             glGetuniformLocation returns -1. glGetAttribLocation ditto.
37185         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37186         (WebCore::CustomFilterValidatedProgram::compiledProgram):
37187             Move the above ASSERTION in CustomFilterCompiledProgram to here.
37188             ASSERTION checks if m_samplerLocation is not -1 when the author
37189             shader needs an input texture.
37190         (WebCore::CustomFilterValidatedProgram::needsInputTexture):
37191         (WebCore):
37192         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
37193         * platform/graphics/filters/CustomFilterValidatedProgram.h:
37194         (CustomFilterValidatedProgram):
37195
37196 2012-10-23  Max Vujovic  <mvujovic@adobe.com>
37197
37198         [CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
37199         https://bugs.webkit.org/show_bug.cgi?id=99887
37200
37201         Reviewed by Dirk Schulze.
37202
37203         Before this patch, WebKit would not recompute an element's style when just its custom filter
37204         blend mode changed.
37205
37206         For example, suppose an element initially has the style:
37207         -webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));
37208
37209         Then, we change the blend mode from "multiply" to "normal":
37210         -webkit-filter: custom(none mix(url(shader.fs) normal source-atop));
37211
37212         WebKit now detects this change and recomputes the style.
37213
37214         CustomFilterProgram now has an equals operator that considers the program type and the mix
37215         settings. The mix settings contain the blend mode.
37216
37217         Test: css3/filters/custom/custom-filter-change-blend-mode.html
37218
37219         * platform/graphics/filters/CustomFilterProgram.cpp:
37220         (WebCore::CustomFilterProgram::operator==):
37221             Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
37222             CustomFilterProgram implements it and compares the program type and mix settings, if
37223             appropriate.
37224         (WebCore):
37225         * platform/graphics/filters/CustomFilterProgram.h:
37226         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
37227         (WebCore::CustomFilterProgramInfo::hash):
37228             Refactor a repeated condition into a boolean to improve readability.
37229         (WebCore::CustomFilterProgramInfo::operator==):
37230             Refactor repeated conditions to improve readability. Reorder the conditions so the less
37231             expensive ones occur first.
37232         * rendering/style/StyleCustomFilterProgram.h:
37233         (WebCore::StyleCustomFilterProgram::operator==):
37234             Call the base class's equals operator.
37235
37236 2012-10-23  David Barton  <dbarton@mathscribe.com>
37237
37238         [MathML] Symbol font uses greek letters for roman ones on linux and Windows
37239         https://bugs.webkit.org/show_bug.cgi?id=99921
37240
37241         Reviewed by Eric Seidel.
37242
37243         For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
37244         which on linux and Windows has greek letters at roman code points. To fix this, we switch
37245         to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
37246         glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
37247         these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.
37248
37249         Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.
37250
37251         * css/mathml.css:
37252         (math, mfenced > *):
37253             - Set font-family for mn, mi, etc.
37254         (mo, mfenced):
37255             - Set font-family for mo and anonymous operators, including extension glyphs for
37256               stretched operators like parentheses and brackets.
37257         (math):
37258         * rendering/mathml/RenderMathMLOperator.cpp:
37259         (WebCore):
37260             - Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.
37261         (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
37262         (WebCore::RenderMathMLOperator::updateFromElement):
37263         (WebCore::RenderMathMLOperator::createStackableStyle):
37264             - Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size
37265               of 14.
37266         (WebCore::RenderMathMLOperator::createGlyph):
37267             - Eliminate unused lineHeight and topRelative parameters.
37268         * rendering/mathml/RenderMathMLOperator.h:
37269         (RenderMathMLOperator):
37270
37271 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37272
37273         WTFURL: Implement KURL::setPort()
37274         https://bugs.webkit.org/show_bug.cgi?id=99898
37275
37276         Reviewed by Adam Barth.
37277
37278         * platform/KURLWTFURL.cpp:
37279         (WebCore::KURL::setPort):
37280
37281 2012-10-23  Nico Weber  <thakis@chromium.org>
37282
37283         In the open-source jpeg decoder, read image orientation from the exif data
37284         https://bugs.webkit.org/show_bug.cgi?id=100144
37285
37286         Reviewed by Eric Seidel.
37287
37288         This will be used to implement the shouldRespectImageOrientation
37289         setting (see bug 19688). Currently this isn't hooked up anywhere, so
37290         it has no observable effect for now.
37291
37292         Once it's hooked up, it will be tested by
37293         fast/images/exif-orientation.html
37294
37295         * platform/graphics/BitmapImage.h:
37296         * platform/image-decoders/ImageDecoder.h:
37297         (WebCore::ImageDecoder::orientation):
37298         (ImageDecoder):
37299         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
37300         (WebCore::readUint16):
37301         (WebCore):
37302         (WebCore::readUint32):
37303         (WebCore::checkExifHeader):
37304         (WebCore::readImageOrientation):
37305         (WebCore::JPEGImageReader::JPEGImageReader):
37306         (WebCore::JPEGImageReader::decode):
37307         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
37308         (WebCore::JPEGImageDecoder::setOrientation):
37309
37310 2012-10-23  Chris Rogers  <crogers@google.com>
37311
37312         Fix thread safety issue in AudioParamTimeline
37313         https://bugs.webkit.org/show_bug.cgi?id=100154
37314
37315         Reviewed by Kenneth Russell.
37316
37317         Add appropriate locking in AudioParamTimeline::valueForContextTime()
37318
37319         * Modules/webaudio/AudioParamTimeline.cpp:
37320         (WebCore::AudioParamTimeline::valueForContextTime):
37321
37322 2012-10-23  Alec Flett  <alecflett@chromium.org>
37323
37324         IndexedDB: refactor backend to use IDB*Metadata
37325         https://bugs.webkit.org/show_bug.cgi?id=100055
37326
37327         Reviewed by Tony Chang.
37328
37329         This further encapsulates the static data in
37330         IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
37331         respective IDB*Metadata structs, in preparation for
37332         https://bugs.webkit.org/show_bug.cgi?id=99774.
37333
37334         No new tests as this is purely a refactor.
37335
37336         * Modules/indexeddb/IDBBackingStore.h:
37337         (IDBBackingStore):
37338         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
37339         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
37340         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
37341         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
37342         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
37343         (WebCore::IDBIndexBackendImpl::metadata):
37344         * Modules/indexeddb/IDBIndexBackendImpl.h:
37345         (WebCore::IDBIndexBackendImpl::create):
37346         (WebCore::IDBIndexBackendImpl::id):
37347         (WebCore::IDBIndexBackendImpl::setId):
37348         (WebCore::IDBIndexBackendImpl::hasValidId):
37349         (WebCore::IDBIndexBackendImpl::name):
37350         (WebCore::IDBIndexBackendImpl::keyPath):
37351         (WebCore::IDBIndexBackendImpl::unique):
37352         (WebCore::IDBIndexBackendImpl::multiEntry):
37353         (IDBIndexBackendImpl):
37354         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
37355         (WebCore::IDBLevelDBBackingStore::getObjectStores):
37356         (WebCore::IDBLevelDBBackingStore::getIndexes):
37357         * Modules/indexeddb/IDBLevelDBBackingStore.h:
37358         (IDBLevelDBBackingStore):
37359         * Modules/indexeddb/IDBMetadata.h:
37360         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
37361         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
37362         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
37363         (WebCore::IDBObjectStoreBackendImpl::metadata):
37364         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
37365         (WebCore::IDBObjectStoreBackendImpl::putInternal):
37366         (WebCore::IDBObjectStoreBackendImpl::createIndex):
37367         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
37368         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
37369         (WebCore::IDBObjectStoreBackendImpl::create):
37370         (WebCore::IDBObjectStoreBackendImpl::id):
37371         (WebCore::IDBObjectStoreBackendImpl::setId):
37372         (WebCore::IDBObjectStoreBackendImpl::name):
37373         (WebCore::IDBObjectStoreBackendImpl::keyPath):
37374         (WebCore::IDBObjectStoreBackendImpl::autoIncrement):
37375         (IDBObjectStoreBackendImpl):
37376
37377 2012-10-19  Roger Fong  <roger_fong@apple.com>
37378
37379         [WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
37380         https://bugs.webkit.org/show_bug.cgi?id=94041
37381
37382         Reviewed by Dean Jackson.
37383
37384         When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit. 
37385         However when we delete the texture, we need to be setting m_boundTexture0 to 0.
37386         Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture 
37387         has already been deleted we end up in an error state.
37388
37389         Tested using Khronos WebGL conformance suite:
37390         conformance/textures/texture-size.html
37391
37392         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
37393         (WebCore::GraphicsContext3D::deleteTexture):
37394
37395 2012-10-22  Dirk Schulze  <krit@webkit.org>
37396
37397         BasicShapePolygon::path takes width instead of height for boundary calculation
37398         https://bugs.webkit.org/show_bug.cgi?id=99919
37399
37400         Reviewed by Darin Adler.
37401
37402         The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
37403         This caused problems on percentage values for point positions. 
37404         Changed it to the height of the bounding box.
37405
37406         Test: css3/masking/clip-path-polygon-percentage.html
37407
37408         * rendering/style/BasicShapes.cpp:
37409         (WebCore::BasicShapePolygon::path):
37410
37411 2012-10-23  Dominik Röttsches  <dominik.rottsches@intel.com>
37412
37413         Add timeout support to XMLHttpRequest
37414         https://bugs.webkit.org/show_bug.cgi?id=74802
37415
37416         Reviewed by Nate Chapin.
37417
37418         An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
37419         This made several changes necessary in CachedResource and SubresourceLoader in order
37420         to distinguish and forward the timeout case from there.
37421
37422         The case of late updates to the timeout property, changing the timeout value after send()
37423         is not supported yet and handled separately in bug 98156.
37424
37425         XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
37426         permission to reuse them under PD/BSD license
37427         in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
37428         I adapted them for W3C testharness.js and split them into groups with shorter test running time
37429         so that they can be used as WebKit layout tests.
37430
37431         Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
37432                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
37433                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
37434                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
37435                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
37436                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
37437                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
37438                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
37439                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
37440                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
37441                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html
37442
37443         * loader/DocumentThreadableLoader.cpp:
37444         (WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.
37445         * loader/SubresourceLoader.cpp:
37446         (WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.
37447         * loader/cache/CachedResource.h: Distinguishing timeout case for errors.
37448         (WebCore::CachedResource::errorOccurred):
37449         (WebCore::CachedResource::loadFailedOrCanceled):
37450         (WebCore::CachedResource::timedOut):
37451         * xml/XMLHttpRequest.cpp:
37452         (WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
37453         (WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
37454         (WebCore):
37455         (WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
37456         (WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
37457         (WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
37458         (WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.
37459         * xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.
37460         (WebCore::XMLHttpRequest::timeout):
37461         (XMLHttpRequest):
37462         * xml/XMLHttpRequest.idl: New event listener and property added.
37463         * xml/XMLHttpRequestException.cpp:
37464         * xml/XMLHttpRequestException.h: Added an exception value for the timeout case.
37465
37466
37467 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
37468
37469         Possible assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection()
37470         https://bugs.webkit.org/show_bug.cgi?id=99967
37471
37472         Reviewed by Tony Chang.
37473
37474         Fix assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection() when
37475         pressing the left mouse button outside a multiselect and then moving the cursor
37476         over the multiselect element while holding the button down.
37477
37478         The issue is that the HTMLSelectElement handler for the mouse move event does
37479         not check if there is a selection before trying to extend the selection.
37480
37481         Test: fast/dom/HTMLSelectElement/select-selectedIndex-noAnchorIndex-crash.html
37482
37483         * html/HTMLSelectElement.cpp:
37484         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
37485
37486 2012-10-23  Adam Barth  <abarth@webkit.org>
37487
37488         [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)
37489         https://bugs.webkit.org/show_bug.cgi?id=97974
37490
37491         Reviewed by Eric Seidel.
37492
37493         Previously, we stored a pointer to a handle to a wrapper in Node. That
37494         is an extra layer of indirection that slows down finding the wrapper
37495         for the node. A handle is just a pointer, so we might as we just store
37496         the handle in the Node directly. That speeds up dom-modify and
37497         dom-traverse by about 2.5%.
37498
37499         This change also lets us get rid of the ChunkedTable we were using to
37500         store all the wrappers because they're now stored in the Nodes
37501         directly.
37502
37503         * bindings/scripts/CodeGeneratorV8.pm:
37504         (GenerateHeader):
37505         * bindings/v8/IntrusiveDOMWrapperMap.h:
37506         (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
37507         (WebCore::IntrusiveDOMWrapperMap::get):
37508         (WebCore::IntrusiveDOMWrapperMap::set):
37509         (WebCore::IntrusiveDOMWrapperMap::contains):
37510         (WebCore::IntrusiveDOMWrapperMap::visit):
37511         (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
37512         (WebCore::IntrusiveDOMWrapperMap::clear):
37513         * bindings/v8/ScriptWrappable.h:
37514         (WebCore::ScriptWrappable::ScriptWrappable):
37515         (WebCore::ScriptWrappable::wrapper):
37516         (WebCore::ScriptWrappable::setWrapper):
37517         (WebCore::ScriptWrappable::disposeWrapper):
37518         (WebCore::ScriptWrappable::reportMemoryUsage):
37519         (ScriptWrappable):
37520         * bindings/v8/V8DOMWrapper.h:
37521         (WebCore::V8DOMWrapper::getCachedWrapper):
37522
37523 2012-10-23  Kentaro Hara  <haraken@chromium.org>
37524
37525         [V8] Replace SetGlobalGCPrologueCallback() with AddGCPrologueCallback()
37526         https://bugs.webkit.org/show_bug.cgi?id=100140
37527
37528         Reviewed by Adam Barth.
37529
37530         SetGlobalGCPrologueCallback() and SetGlobalGCEpilogueCallback()
37531         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)
37532         Instead we should use AddGCPrologueCallback()
37533         and AddGCEpilogueCallback().
37534
37535         No tests. No change in behavior.
37536
37537         * bindings/v8/V8DOMWindowShell.cpp:
37538         (WebCore::initializeV8IfNeeded):
37539         * bindings/v8/V8GCController.cpp:
37540         (WebCore::V8GCController::gcPrologue):
37541         (WebCore):
37542         (WebCore::V8GCController::minorGCPrologue):
37543         (WebCore::V8GCController::majorGCPrologue):
37544         (WebCore::V8GCController::gcEpilogue):
37545         (WebCore::V8GCController::minorGCEpilogue):
37546         (WebCore::V8GCController::majorGCEpilogue):
37547         * bindings/v8/V8GCController.h:
37548         (V8GCController):
37549         * bindings/v8/WorkerContextExecutionProxy.cpp:
37550         (WebCore::WorkerContextExecutionProxy::initIsolate):
37551
37552 2012-10-23  Adam Barth  <abarth@webkit.org>
37553
37554         [V8] Enumerate Nodes via the V8 heap rather than via a list in WebCore
37555         https://bugs.webkit.org/show_bug.cgi?id=100033
37556
37557         Reviewed by Eric Seidel.
37558
37559         This patch changes how we enumerate nodes during garbage collection.
37560         After this patch, we use V8's list of open handles to enumerate node
37561         wrappers rather than using a separate list that we maintain in WebCore
37562         for this purpose. A future patch will remove the list in WebCore for a
37563         DOM performance gain.
37564
37565         * bindings/js/ScriptProfiler.h:
37566         (WebCore):
37567         (WebCore::ScriptProfiler::visitNodeWrappers):
37568         * bindings/scripts/CodeGeneratorV8.pm:
37569         (GenerateToV8Converters):
37570         * bindings/scripts/test/V8/V8TestNode.cpp:
37571         (WebCore::V8TestNode::wrapSlow):
37572         * bindings/v8/IntrusiveDOMWrapperMap.h:
37573         (WebCore::IntrusiveDOMWrapperMap::set):
37574         * bindings/v8/ScriptProfiler.cpp:
37575         (WebCore::ScriptProfiler::visitNodeWrappers):
37576         * bindings/v8/ScriptProfiler.h:
37577         (WebCore):
37578         (ScriptProfiler):
37579         * bindings/v8/V8DOMMap.cpp:
37580         (WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
37581         (WebCore):
37582         (WebCore::visitAllDOMNodes):
37583         * bindings/v8/V8DOMMap.h:
37584         (WebCore):
37585         (NodeWrapperVisitor):
37586         * bindings/v8/V8DOMWrapper.cpp:
37587         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
37588         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
37589         * bindings/v8/V8GCController.cpp:
37590         (WebCore::NodeVisitor::visitNodeWrapper):
37591         (WebCore::V8GCController::gcPrologue):
37592         (WebCore::V8GCController::gcEpilogue):
37593         * inspector/BindingVisitors.h:
37594         (WebCore::WrappedNodeVisitor::~WrappedNodeVisitor):
37595         * inspector/InspectorMemoryAgent.cpp:
37596         (WebCore):
37597
37598 2012-10-22  Andrey Kosyakov  <caseq@chromium.org>
37599
37600         Web Inspector: paint rectangles are incorrectly shown in case subframes are present
37601         https://bugs.webkit.org/show_bug.cgi?id=99849
37602
37603         Reviewed by Pavel Feldman.
37604
37605         Move GraphicsContext and paint rectangle from willPaint() to didPaint(), so we don't have
37606         to store them as a state of InspectorPageAgent
37607
37608         * inspector/InspectorInstrumentation.cpp:
37609         (WebCore):
37610         (WebCore::InspectorInstrumentation::willPaintImpl):
37611         (WebCore::InspectorInstrumentation::didPaintImpl):
37612         * inspector/InspectorInstrumentation.h:
37613         (InspectorInstrumentation):
37614         (WebCore::InspectorInstrumentation::willPaint):
37615         (WebCore::InspectorInstrumentation::didPaint):
37616         * inspector/InspectorPageAgent.cpp:
37617         (WebCore::InspectorPageAgent::didPaint):
37618         * inspector/InspectorPageAgent.h:
37619         * inspector/InspectorTimelineAgent.cpp:
37620         (WebCore::InspectorTimelineAgent::willPaint):
37621         (WebCore::InspectorTimelineAgent::didPaint):
37622         * inspector/InspectorTimelineAgent.h:
37623         (InspectorTimelineAgent):
37624         * inspector/TimelineRecordFactory.cpp:
37625         * inspector/TimelineRecordFactory.h:
37626         (TimelineRecordFactory):
37627         * page/FrameView.cpp:
37628         (WebCore::FrameView::paintContents):
37629         * rendering/RenderLayerBacking.cpp:
37630         (WebCore::RenderLayerBacking::paintContents):
37631
37632 2012-10-23  Pavel Feldman  <pfeldman@chromium.org>
37633
37634         Web Inspector: array grouping does not work for arrays with exactly 10000 elements.
37635         https://bugs.webkit.org/show_bug.cgi?id=100131
37636
37637         Reviewed by Vsevolod Vlasov.
37638
37639         Using ceil() - 1 instead of floor() in bucket size calculation.
37640
37641         * inspector/front-end/ObjectPropertiesSection.js:
37642
37643 2012-10-23  Shinya Kawanaka  <shinyak@chromium.org>
37644
37645         The order of resolving distribution in tree composition is wrong.
37646         https://bugs.webkit.org/show_bug.cgi?id=99552
37647
37648         Reviewed by Dimitri Glazkov.
37649
37650         According to the current ShadowDOM spec, we have to resolve <content> first, then resolve <shadow>.
37651         However, the order of resolution is now the mixed tree order of <content> and <shadow>.
37652
37653         Test: fast/dom/shadow/content-reprojection-order.html
37654
37655         * html/shadow/ContentDistributor.cpp:
37656         (WebCore::ContentDistributor::distribute): We should resolve <content> before <shadow>.
37657         Only the first active shadow insertion point can select the rest of contents.
37658         * html/shadow/HTMLContentElement.h:
37659         (HTMLContentElement):
37660         * html/shadow/HTMLShadowElement.cpp:
37661         * html/shadow/HTMLShadowElement.h:
37662         (WebCore::isHTMLShadowElement):
37663         (WebCore):
37664         (WebCore::toHTMLShadowElement):
37665         * html/shadow/InsertionPoint.h:
37666         (InsertionPoint): We don't need doesSelectFromHostChildren() anymore.
37667
37668 2012-10-23  Vsevolod Vlasov  <vsevik@chromium.org>
37669
37670         Web Inspector: Move UISourceCode creation out of mappings to workspace.
37671         https://bugs.webkit.org/show_bug.cgi?id=100092
37672
37673         Reviewed by Pavel Feldman.
37674
37675         Moved uiSourceCode constructor calls out of mappings to workspace.
37676
37677         * inspector/front-end/CompilerScriptMapping.js:
37678         * inspector/front-end/NetworkUISourceCodeProvider.js:
37679         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
37680         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
37681         * inspector/front-end/ResourceScriptMapping.js:
37682         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
37683         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
37684         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
37685         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
37686         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
37687         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
37688         * inspector/front-end/SASSSourceMapping.js:
37689         (_bindUISourceCode):
37690         * inspector/front-end/ScriptSnippetModel.js:
37691         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
37692         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
37693         * inspector/front-end/Workspace.js:
37694         (WebInspector.Project.prototype.addUISourceCode):
37695         (WebInspector.Project.prototype.removeUISourceCode):
37696         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
37697         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
37698
37699 2012-10-23  Emil A Eklund  <eae@chromium.org>
37700
37701         Remove unnecessary m_layoutDelta[XY]Saturated initialization
37702         https://bugs.webkit.org/show_bug.cgi?id=100018
37703
37704         Reviewed by Julien Chaffraix.
37705         
37706         Remove unnecessary initialization from LayoutState constructor
37707         added in r132105.
37708
37709         No new tests, no change in functionality.
37710
37711         * rendering/LayoutState.cpp:
37712         (WebCore::LayoutState::LayoutState):
37713
37714 2012-10-23  Zeno Albisser  <zeno@webkit.org>
37715
37716         [Texmap] Fix drawTextureRectangleARB after r131485.
37717         https://bugs.webkit.org/show_bug.cgi?id=100133
37718
37719         Consistently rename u_textureSize to u_samplerSize.
37720
37721         Reviewed by Noam Rosenthal.
37722
37723         * platform/graphics/texmap/TextureMapperGL.cpp:
37724         (WebCore::TextureMapperGL::drawTextureRectangleARB):
37725         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
37726         (WebCore::getShaderSpec):
37727         * platform/graphics/texmap/TextureMapperShaderManager.h:
37728         (TextureMapperShaderProgram):
37729
37730 2012-10-23  Mike West  <mkwst@chromium.org>
37731
37732         Web Inspector: 'data:' URLs should be properly trimmed for readability.
37733         https://bugs.webkit.org/show_bug.cgi?id=100083
37734
37735         Reviewed by Pavel Feldman.
37736
37737         We recently landed a patch to trim the middle out of long URLs in
37738         console messages in order to improve readability. That patch didn't
37739         effect 'data:' URLs, as they didn't match the regex in the linkifier.
37740         This patch ensures that 'data:' URLs are properly trimmed down to
37741         size.
37742
37743         This problem came to light while resolving a different, smaller issue:
37744         'image/jpg' wasn't whitelisted as an image MIME type. That trivial fix
37745         is included in this patch.
37746
37747         Test: http/tests/inspector/network/image-as-text-loading-data-url.html
37748
37749         * inspector/front-end/NetworkManager.js:
37750         (WebInspector.NetworkManager):
37751             Adds 'image/jpg' as a valid image type.
37752         * inspector/front-end/ResourceUtils.js:
37753         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
37754             Supports 'data:' URLs in the linkifier's regex.
37755
37756 2012-10-23  Mike West  <mkwst@chromium.org>
37757
37758         Web Inspector: Floated anchor element sometimes overlaps following content.
37759         https://bugs.webkit.org/show_bug.cgi?id=100105
37760
37761         Reviewed by Pavel Feldman.
37762
37763         This patch ensures that each console message clears the
37764         potentially-overlapping floated anchor element.
37765
37766         * inspector/front-end/inspector.css:
37767         (#console-prompt):
37768         (.console-message, .console-user-command):
37769             Clear the float, and flip the border from the bottom of the
37770             message to the top. Do the same for the prompt.
37771         (.console-message:first-child):
37772             Ensure that the first message doesn't have a top border.
37773
37774 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37775
37776         Web Inspector: Crash when adding a keyframes rule in the Styles pane
37777         https://bugs.webkit.org/show_bug.cgi?id=99826
37778
37779         Reviewed by Pavel Feldman.
37780
37781         The client-supplied selector text is first parsed to make sure it results in a valid style rule selector.
37782
37783         Test: inspector/styles/add-new-rule-invalid-selector.html
37784
37785         * inspector/InspectorStyleSheet.cpp:
37786         (WebCore::createCSSParser):
37787         (WebCore):
37788         (WebCore::InspectorStyle::setPropertyText):
37789         (WebCore::checkStyleRuleSelector):
37790         (WebCore::InspectorStyleSheet::addRule):
37791         (WebCore::InspectorStyleSheet::ensureSourceData):
37792         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
37793
37794 2012-10-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
37795
37796         Add support for resolution media query
37797         https://bugs.webkit.org/show_bug.cgi?id=99077
37798
37799         Reviewed by Antti Koivisto.
37800
37801         Add support for 'resolution' media query feature.
37802
37803         Background info:
37804         http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio
37805
37806         Related spec links:
37807         http://www.w3.org/TR/css3-mediaqueries/#resolution (recommendation)
37808         http://www.w3.org/TR/css3-values/#resolution (candidate recommentation)
37809
37810         Add infrastructure to make it testable.
37811
37812         Test: fast/media/mq-resolution.html
37813
37814         * css/CSSParser.cpp:
37815         (WebCore::CSSParser::validUnit):
37816         (WebCore::CSSParser::createPrimitiveNumericValue):
37817         (WebCore::CSSParser::parseValidPrimitive):
37818         (WebCore::CSSParser::detectNumberToken):
37819         * css/CSSParser.h:
37820         * css/CSSPrimitiveValue.cpp:
37821         (WebCore::isValidCSSUnitTypeForDoubleConversion):
37822         (WebCore::unitCategory):
37823         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
37824         (WebCore::CSSPrimitiveValue::customCssText):
37825         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
37826         * css/CSSPrimitiveValue.h:
37827
37828             Enable dpi, dpcm and dppx units when RESOLUTION_MEDIA_QUERY
37829             is enabled.
37830
37831         * WebCore.exp.in:
37832
37833             Export the WebCore::Settings setting.
37834
37835         * css/CSSPrimitiveValue.h:
37836         (WebCore::CSSPrimitiveValue::isDotsPerInch):
37837         (WebCore::CSSPrimitiveValue::isDotsPerPixel):
37838         (WebCore::CSSPrimitiveValue::isDotsPerCentimeter):
37839         (CSSPrimitiveValue):
37840
37841             Add function for checking the recently added density types.
37842
37843         * css/MediaFeatureNames.h:
37844         (MediaFeatureNames):
37845
37846             Add support for resolution, min-resolution and max-resolution.
37847
37848         * css/MediaQueryEvaluator.cpp:
37849         (WebCore::compareResolution): Add methods for comparing resolutions.
37850         (WebCore):
37851         (WebCore::resolutionMediaFeatureEval):
37852         (WebCore::min_resolutionMediaFeatureEval):
37853         (WebCore::max_resolutionMediaFeatureEval):
37854
37855             Implement the resolution method evaluation.
37856
37857         * css/MediaQueryExp.cpp:
37858         (WebCore::featureWithValidPositiveDensity):
37859         (WebCore):
37860         (WebCore::featureWithoutValue):
37861         (WebCore::MediaQueryExp::MediaQueryExp):
37862
37863             Hook up resolution with the right pre-checks.
37864
37865        * page/Screen.cpp:
37866         (WebCore::Screen::horizontalDPI):
37867         (WebCore::Screen::verticalDPI):
37868
37869             Check whether an override exists, and if so, uses it.
37870             If not calculate the value given the device scale factor.
37871
37872         * page/Settings.cpp:
37873         (WebCore::Settings::setResolutionOverride):
37874         (WebCore):
37875         * page/Settings.h:
37876         (Settings):
37877         (WebCore::Settings::resolutionOverride):
37878
37879             Add a resolution override to settings.
37880
37881         * testing/InternalSettings.cpp:
37882         (WebCore::InternalSettings::Backup::Backup):
37883         (WebCore::InternalSettings::Backup::restoreTo):
37884         (WebCore::InternalSettings::setResolutionOverride):
37885         (WebCore):
37886         * testing/InternalSettings.h:
37887         (Backup):
37888         (InternalSettings):
37889         * testing/InternalSettings.idl:
37890
37891             Add a new setResolutionOverride method to internals.settings.
37892
37893 2012-10-23  Filip Spacek  <fspacek@rim.com>
37894
37895         [BlackBerry] Improve the use of stencil buffer during compositing
37896         https://bugs.webkit.org/show_bug.cgi?id=100020
37897
37898         We always want to scissor so remove the define.
37899         Only turn stenciling on if needed.
37900
37901         Reviewed by Rob Buis.
37902
37903         Reviewed internally by Arvid Nilsson.
37904
37905         * platform/graphics/blackberry/LayerRenderer.cpp:
37906         (WebCore::LayerRenderer::setViewport):
37907         (WebCore::LayerRenderer::compositeLayers):
37908         (WebCore::LayerRenderer::drawLayersOnSurfaces):
37909         (WebCore::LayerRenderer::compositeLayersRecursive):
37910         (WebCore::LayerRenderer::updateScissorIfNeeded):
37911
37912 2012-10-23  'Pavel Feldman'  <pfeldman@chromium.org>
37913
37914         Not reviewed: kick out non-chromium files from WebCore.gypi.
37915
37916         * WebCore.gypi:
37917
37918 2012-10-23  Alexander Shalamov  <alexander.shalamov@intel.com>
37919
37920         [EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function
37921         https://bugs.webkit.org/show_bug.cgi?id=100110
37922
37923         Reviewed by Kenneth Rohde Christiansen.
37924
37925         Removed initialization of ecore_x, since it is initialized when process starts.
37926
37927         test: fast/media/*
37928
37929         * platform/efl/PlatformScreenEfl.cpp:
37930         (WebCore::screenDepth):
37931         (WebCore::screenRect):
37932         * platform/efl/SoundEfl.cpp:
37933         (WebCore::systemBeep):
37934
37935 2012-10-23  Adam Klein  <adamk@chromium.org>
37936
37937         Always parse pasted fragments as HTML even on XHTML pages
37938         https://bugs.webkit.org/show_bug.cgi?id=99880
37939
37940         Reviewed by Ojan Vafai.
37941
37942         When pasting HTML into a page, using the XML parser is unlikely
37943         to work correctly, as the contents of the clipboard are unlikely
37944         to be properly-formed XHTML. Thus, for the pasting case, it's always
37945         better to use HTML parsing, which will properly parse either HTML
37946         (which is what's usually in the clipboard) or XHTML (which is
37947         sometimes there as well).
37948
37949         The Mac port previously worked around this problem by falling back to plain text
37950         when parsing failed, but switching to HTML seems like a clear improvement.
37951
37952         This also fixes a crash in Chromium (see http://webkit.org/b/99607
37953         and http://crbug.com/136218); it erroneously assumed that createFragmentFromMarkup()
37954         would never return null. This patch makes that true.
37955
37956         * editing/markup.cpp:
37957         (WebCore::createFragmentFromMarkup): Don't delegate to createContextualFragment:
37958         we already know our context element is safe (i.e., it's <body>),
37959         and we want to force HTML (not XML) parsing.
37960
37961 2012-10-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
37962
37963         [Qt] REGRESSION (r130851): fast/text/word-space-with-kerning.html fails
37964         https://bugs.webkit.org/show_bug.cgi?id=98876
37965
37966         Reviewed by Simon Hausmann.
37967
37968         Do not add word-spacing for leading space. This matches what simple path font-width does.
37969
37970         Tested by existing tests.
37971
37972         * platform/graphics/qt/FontQt.cpp:
37973         (WebCore::Font::floatWidthForComplexText):
37974
37975 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37976
37977         Web Inspector: Incorrect resolution of relative URLs containing a scheme in query parameters
37978         https://bugs.webkit.org/show_bug.cgi?id=100084
37979
37980         Reviewed by Vsevolod Vlasov.
37981
37982         Use the RFC 3986 grammar for the URL scheme.
37983
37984         * inspector/front-end/ParsedURL.js:
37985         (WebInspector.ParsedURL):
37986
37987 2012-10-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>
37988
37989         Web Inspector: Elaborate source panel sidebar context menus.
37990         https://bugs.webkit.org/show_bug.cgi?id=99980
37991
37992         Reviewed by Vsevolod Vlasov.
37993
37994         - Watches: add "Add watch expression" item to items and empty element
37995         - Watches: hide "Remove watch expression" from editing prompt context menu
37996         - Watches: add titles to header buttons
37997         - XHR Breakpoints: add "Add Breakpoint" item to items and empty element
37998         - XHR Breakpoints: add "Remove all breakpoints" item to items (when >1)
37999         - XHR Breakpoints: add title to header button
38000         - JS Breakpoints: hide "Remove/(De)Activate breakpoints" when only 1 item present
38001         - JS Breakpoints: add "(De)Activate breakpoints" to empty element context menu
38002
38003         * English.lproj/localizedStrings.js: Added corresponding strings.
38004         * inspector/front-end/BreakpointsSidebarPane.js: Adjusted context menu.
38005         (WebInspector.XHRBreakpointsSidebarPane): Ditto.
38006         * inspector/front-end/ObjectPropertiesSection.js: Added "isEditing()"
38007         * inspector/front-end/WatchExpressionsSidebarPane.js: Adjusted context menu.
38008
38009 2012-10-23  Kent Tamura  <tkent@chromium.org>
38010
38011         Update binding test results for r132194
38012         https://bugs.webkit.org/show_bug.cgi?id=100097
38013
38014         * bindings/scripts/test/V8/V8TestObj.cpp:
38015         (WebCore::V8TestObj::installPerContextProperties):
38016
38017 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
38018
38019         Web Inspector: Sass can only resolve same folder paths
38020         https://bugs.webkit.org/show_bug.cgi?id=99259
38021
38022         Reviewed by Vsevolod Vlasov.
38023
38024         The actual reason is that the rule source location linkifier tries to linkify a resource (*.scss), which does not exist,
38025         and falls back to just stripping the main page URL prefix from the rule location URL. This change introduces LiveLocations
38026         for CSSRule locations and makes sure they are linkified using uiSourceCode's parsedURL.displayName.
38027
38028         * inspector/front-end/CSSStyleModel.js:
38029         (WebInspector.CSSStyleModel): Introduced LiveLocation management for CSSRules.
38030         (WebInspector.CSSStyleModel.prototype.setSourceMapping):
38031         (WebInspector.CSSStyleModel.prototype._updateLocations):
38032         (WebInspector.CSSStyleModel.prototype.createLiveLocation):
38033         (WebInspector.CSSStyleModel.prototype.updateLocations):
38034         (WebInspector.CSSStyleModel.LiveLocation): A LiveLocation for the CSS domain.
38035         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
38036         (WebInspector.CSSStyleModel.LiveLocation.prototype.dispose):
38037         * inspector/front-end/Linkifier.js:
38038         (WebInspector.Linkifier.prototype.linkifyCSSRuleLocation): CSSRule LiveLocation-based link builder.
38039         (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): Add a title for anchors.
38040         (WebInspector.Linkifier.DefaultCSSFormatter): Formatter for CSS location links.
38041         (WebInspector.Linkifier.DefaultCSSFormatter.prototype.formatLiveAnchor):
38042         * inspector/front-end/ResourceUtils.js:
38043         (WebInspector.displayNameForURL): Use parsedURL.displayName if uiSourceCode is present for the specified URL.
38044         * inspector/front-end/SASSSourceMapping.js:
38045         * inspector/front-end/StylesSidebarPane.js:
38046         (WebInspector.StylesSidebarPane):
38047         (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
38048         * inspector/front-end/inspector.html:
38049
38050 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
38051
38052         Unreviewed, rolling out r132149.
38053         http://trac.webkit.org/changeset/132149
38054         https://bugs.webkit.org/show_bug.cgi?id=100098
38055
38056         Breaks inspector profiler tests in debug mode. (Requested by
38057         pfeldman1 on #webkit).
38058
38059         * rendering/AutoTableLayout.cpp:
38060         (WebCore::AutoTableLayout::recalcColumn):
38061         * rendering/FixedTableLayout.cpp:
38062         (WebCore::FixedTableLayout::calcWidthArray):
38063         * rendering/RenderTable.cpp:
38064         (WebCore::RenderTable::layout):
38065         * rendering/RenderTableCol.cpp:
38066         (WebCore::RenderTableCol::styleDidChange):
38067         (WebCore::RenderTableCol::updateFromElement):
38068         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38069         * rendering/RenderTableCol.h:
38070         (RenderTableCol):
38071
38072 2012-10-23  Simon Hausmann  <simon.hausmann@digia.com>
38073
38074         Unreviewed trivial Qt build fix: Fix build without USE_3D_GRAPHICS
38075
38076         Move the #if USE(GRAPHICS_SURFACE) up to protect the inclusion of
38077         GraphicsContext3D.h to be done only if we use the surface.
38078
38079         * platform/graphics/surfaces/GraphicsSurface.h:
38080
38081 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
38082
38083         Unreviewed, rolling out r132033.
38084         http://trac.webkit.org/changeset/132033
38085         https://bugs.webkit.org/show_bug.cgi?id=100097
38086
38087         Broke calendar picker (Requested by tkent on #webkit).
38088
38089         * bindings/scripts/CodeGeneratorV8.pm:
38090         (GenerateImplementation):
38091
38092 2012-10-23  Andras Becsi  <andras.becsi@digia.com>
38093
38094         Remove devicePixelRatio from ViewportAttributes
38095         https://bugs.webkit.org/show_bug.cgi?id=99845
38096
38097         Reviewed by Adam Barth.
38098
38099         Since r121555 the devicePixelRatio is not calculated any more
38100         and the scale factor is stored in Page::m_deviceScaleFactor,
38101         thus it can be removed from ViewportAttributes to reduce
38102         redundancy and unnecessary client code.
38103         Use a new parameter in viewport calculation functions using
38104         the visible viewport size (instead of passing the adjusted
38105         viewport size) so that after this change clients do not end
38106         up using the unadjusted viewport size for calculations.
38107
38108         No behavioural change, no new tests needed.
38109
38110         * WebCore.exp.in:
38111         * dom/ViewportArguments.cpp:
38112         (WebCore::computeViewportAttributes):
38113         (WebCore::computeMinimumScaleFactorForContentContained):
38114         Add the devicePixelRatio as a parameter.
38115         (WebCore::restrictMinimumScaleFactorToViewportSize): Ditto.
38116         * dom/ViewportArguments.h:
38117         (ViewportAttributes):
38118         (WebCore):
38119         * testing/InternalSettings.cpp:
38120         (WebCore::InternalSettings::configurationForViewport):
38121
38122 2012-10-23  Kent Tamura  <tkent@chromium.org>
38123
38124         Support full month names in DateTimeEditElement, and use them in input[type=month] by default
38125         https://bugs.webkit.org/show_bug.cgi?id=100060
38126
38127         Reviewed by Kentaro Hara.
38128
38129         According to https://plus.google.com/104770450049736549185/posts/4zsoeHoa7SM
38130         no one wants to show abbreviated month names for input[type=month].
38131         This change add support for full month names in DateTimeEditELement, and
38132         LocaleICU and LocaleMac retun month formats with full month names. Note
38133         that LocaleWin::monthFormat returns formats for full month names.
38134
38135         No new tests. Covered by fast/forms/month-multiple-fields/month-multiple-fields-appearance-*.html
38136
38137         * html/shadow/DateTimeEditElement.cpp:
38138         (WebCore::DateTimeEditBuilder::visitField):
38139         If count is 4, use Localizer::monthLabels or standAloneMonthLabels.
38140         * platform/text/LocaleICU.cpp:
38141         (WebCore::LocaleICU::monthFormat):
38142         Returns a format for full month names.
38143         * platform/text/mac/LocaleMac.mm:
38144         (WebCore::LocaleMac::monthFormat): Ditto.
38145
38146 2012-10-23  Mike West  <mkwst@chromium.org>
38147
38148         Viewport errors should be slightly friendlier with regard to ';'.
38149         https://bugs.webkit.org/show_bug.cgi?id=100003
38150
38151         Reviewed by Adam Barth.
38152
38153         This patch scans viewport values that cause errors for ';'. If found,
38154         a quick message is appended to the error, noting that semicolons are
38155         not valid separators in viewport contents, and that commas would be
38156         the proper substitute.
38157
38158         No functional changes, just a better error message.
38159
38160         * dom/ViewportArguments.cpp:
38161         (WebCore::reportViewportWarning):
38162
38163 2012-10-23  Timothy Hatcher  <timothy@apple.com>
38164
38165         Docking/undocking the Web Inspector does not work correctly in Safari.
38166
38167         The "docked" and "bottom" strings need quoted instead of being passed as identifiers.
38168
38169         https://bugs.webkit.org/show_bug.cgi?id=100080
38170
38171         Reviewed by Yury Semikhatsky.
38172
38173         * inspector/InspectorFrontendClientLocal.cpp:
38174         (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Put quotes around the %s.
38175
38176 2012-10-23  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
38177
38178         [EFL][WK2] Compilation warning in GraphicsContext3DPrivate.cpp when AC is enabled
38179         https://bugs.webkit.org/show_bug.cgi?id=99723
38180
38181         Reviewed by Kenneth Rohde Christiansen.
38182
38183         Fix compilation warning in GraphicsContext3DPrivate.cpp when AC is
38184         enabled.
38185
38186         No new tests, no change in behavior.
38187
38188         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
38189         (WebCore::GraphicsContext3DPrivate::createSurface):
38190
38191 2012-10-23  Dan Carney  <dcarney@google.com>
38192
38193         When blocking localStorage, Firefox throws a security exception on access, and maybe so should we
38194         https://bugs.webkit.org/show_bug.cgi?id=63257
38195
38196         Reviewed by Jochen Eisinger.
38197
38198         Throw security exception when local storage is accessed
38199         under certain circumstances to match firefox.
38200
38201         No new tests. Existing tests modified.
38202
38203         * bindings/js/JSStorageCustom.cpp:
38204         (WebCore::JSStorage::canGetItemsForName):
38205         (WebCore::JSStorage::nameGetter):
38206         (WebCore::JSStorage::deleteProperty):
38207         (WebCore::JSStorage::getOwnPropertyNames):
38208         * bindings/v8/custom/V8StorageCustom.cpp:
38209         (WebCore):
38210         (WebCore::setDOMException):
38211         (WebCore::V8Storage::namedPropertyEnumerator):
38212         (WebCore::storageGetter):
38213         (WebCore::V8Storage::namedPropertyQuery):
38214         (WebCore::storageDeleter):
38215         * inspector/InspectorDOMStorageAgent.cpp:
38216         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
38217         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
38218         * page/DOMWindow.cpp:
38219         (WebCore::DOMWindow::sessionStorage):
38220         (WebCore::DOMWindow::localStorage):
38221         * storage/Storage.cpp:
38222         * storage/Storage.h:
38223         (WebCore):
38224         (WebCore::Storage::length):
38225         (WebCore::Storage::key):
38226         (WebCore::Storage::getItem):
38227         (WebCore::Storage::setItem):
38228         (WebCore::Storage::removeItem):
38229         (WebCore::Storage::clear):
38230         (WebCore::Storage::contains):
38231         * storage/Storage.idl:
38232         * storage/StorageArea.h:
38233         (StorageArea):
38234         * storage/StorageAreaImpl.cpp:
38235         (WebCore::StorageAreaImpl::canAccessStorage): Checks whether access to storage is a security violation.
38236         (WebCore):
38237         (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
38238         (WebCore::StorageAreaImpl::length):
38239         (WebCore::StorageAreaImpl::key):
38240         (WebCore::StorageAreaImpl::getItem):
38241         (WebCore::StorageAreaImpl::setItem):
38242         (WebCore::StorageAreaImpl::removeItem):
38243         (WebCore::StorageAreaImpl::clear):
38244         (WebCore::StorageAreaImpl::contains):
38245         * storage/StorageAreaImpl.h:
38246         (StorageAreaImpl):
38247
38248 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38249
38250         IndexedDB: Remove custom binding code for IDBCursor.value
38251         https://bugs.webkit.org/show_bug.cgi?id=100034
38252
38253         Reviewed by Kentaro Hara.
38254
38255         Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
38256         IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
38257         semantics that the object identity is retained across accesses.
38258
38259         Test: storage/indexeddb/cursor-value.html
38260
38261         * Modules/indexeddb/IDBCursor.cpp: Remove "dirty" tracking.
38262         (WebCore::IDBCursor::IDBCursor):
38263         (WebCore::IDBCursor::value):
38264         (WebCore::IDBCursor::setValueReady):
38265         * Modules/indexeddb/IDBCursor.h: IDBAny -> ScriptValue
38266         (IDBCursor):
38267         * Modules/indexeddb/IDBCursorWithValue.idl: IDBAny -> any
38268         * Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
38269         (WebCore):
38270         * UseV8.cmake: Remove references to IDBCustomBindings.cpp
38271         * WebCore.gypi: Ditto.
38272         * WebCore.vcproj/WebCore.vcproj: Ditto.
38273         * bindings/v8/IDBCustomBindings.cpp: Removed.
38274
38275 2012-10-22  Dan Bernstein  <mitz@apple.com>
38276
38277         Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be
38278         https://bugs.webkit.org/show_bug.cgi?id=100068
38279
38280         Reviewed by Sam Weinig.
38281
38282         As described in <http://webkit.org/b/100050>, the fast code path doesn’t handle partial runs
38283         correctly when kerning or ligatures are enabled. Since the partial-run case is uncommon,
38284         for now just use the complex code path in this case.
38285
38286         * platform/graphics/Font.cpp:
38287         (WebCore::Font::drawText): Changed to use the complex path for partial runs if there are any
38288         typesetting features.
38289         (WebCore::Font::drawEmphasisMarks): Ditto.
38290         (WebCore::Font::selectionRectForText): Ditto.
38291         (WebCore::Font::offsetForPosition): Changed to use the complex path if there are any
38292         typesetting features.
38293
38294 2012-10-22  Peter Wang  <peter.wang@torchmobile.com.cn>
38295
38296         [BlackBerry] Missing some cookies in HTTP response header when set several cookies in one "Set-Cookie" header.
38297         https://bugs.webkit.org/show_bug.cgi?id=99950
38298
38299         Reviewed by George Staikos.
38300
38301         In "NetworkJob::handleNotifyHeaderReceived", if there are several "Set-Cookie" headers, 
38302         we should combine the following ones with the first.
38303
38304         No new test case.
38305
38306         * platform/network/blackberry/NetworkJob.cpp:
38307         (WebCore::NetworkJob::handleNotifyHeaderReceived):
38308
38309 2012-10-22  MORITA Hajime  <morrita@google.com>
38310
38311         Assertion failed at WebCore::toInsertionPoint / WebCore::ContentDistributor::distribute
38312         https://bugs.webkit.org/show_bug.cgi?id=100038
38313
38314         Reviewed by Kent Tamura.
38315
38316         isHTMLContentElement() assumes that the content element always has
38317         a tag name "content" but it doesn't when Shadow DOM feature is
38318         disabled. This fix let the function see the correct tag name.
38319
38320         Test: fast/dom/shadow/insertion-points-with-shadow-disabled.html
38321
38322         * html/shadow/HTMLContentElement.cpp:
38323         (WebCore::HTMLContentElement::contentTagName):
38324         * html/shadow/HTMLContentElement.h:
38325         (HTMLContentElement):
38326         (WebCore::isHTMLContentElement):
38327
38328 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38329
38330         [Shadow] Fallback content should also be reprojection.
38331         https://bugs.webkit.org/show_bug.cgi?id=99750
38332
38333         Reviewed by Dimitri Glazkov.
38334
38335         Fallback content of InsertionPoint should be reprojected. The existing assumption that
38336         only the direct child of host element can be distributed to InsertionPoint does not hold anymore.
38337         So, if the parent of an element is InsertionPoint which should show fallback element, we have to
38338         check the grand parent of the element instead of the element.
38339
38340         Tests: fast/dom/shadow/content-reprojection-fallback-reprojection.html
38341                fast/dom/shadow/content-reprojection-fallback.html
38342
38343         * css/StyleResolver.cpp:
38344         (WebCore::shouldResetStyleInheritance): Checks the grandparent of the element if the parent is
38345         an InsertionPoint which uses fallback content.
38346         * dom/ComposedShadowTreeWalker.cpp:
38347         (WebCore::shadowOfParentForDistribution):
38348         (WebCore):
38349         (WebCore::resolveReprojection):
38350         (WebCore::ComposedShadowTreeWalker::traverseParent):
38351         * html/shadow/InsertionPoint.cpp:
38352         (WebCore::InsertionPoint::shouldUseFallbackElements): True if the InsertionPoint should use fallback content.
38353         (WebCore):
38354         * html/shadow/InsertionPoint.h:
38355         (WebCore::parentElementForDistribution): Returns the grandparent element if the parent is InsertionPoint which uses
38356         fallback content. Returns parent element otherwise.
38357         (WebCore):
38358
38359 2012-10-22  Keishi Hattori  <keishi@webkit.org>
38360
38361         Label position is wrong in the suggestion picker when all the suggestions have labels
38362         https://bugs.webkit.org/show_bug.cgi?id=99965
38363
38364         Reviewed by Kent Tamura.
38365
38366         Somehow the scrollbar was appearing and so the label element was being wrapped to the next line.
38367
38368         No new tests. Can't reproduce in layout test.
38369
38370         * Resources/pagepopups/suggestionPicker.css:
38371         (.suggestion-list):
38372         * Resources/pagepopups/suggestionPicker.js:
38373         (SuggestionPicker.prototype._fixWindowSize): Explicitly show the scroll bar.
38374
38375 2012-10-22  MORITA Hajime  <morrita@google.com>
38376
38377         [Chromium] Needs to track ShadowRoot usage
38378         https://bugs.webkit.org/show_bug.cgi?id=99955
38379
38380         Reviewed by Dimitri Glazkov.
38381
38382         Added an UMA instrumentation.
38383
38384         * dom/ShadowRoot.cpp:
38385         (WebCore::determineUsageType):
38386         (WebCore):
38387         (WebCore::ShadowRoot::create):
38388
38389 2012-10-22  Kent Tamura  <tkent@chromium.org>
38390
38391         Introduce Localizer::standAloneMonthLabels
38392         https://bugs.webkit.org/show_bug.cgi?id=99963
38393
38394         Reviewed by Kentaro Hara.
38395
38396         We realized full month names and full stand-alone month names were
38397         necessary for input[type=month] UI. We change the compile-flag for
38398         Localizer::monthLabels from "ENABLE(CALENDAR_PICKER)" to
38399         "ENABLE(CALENDAR_PICKER) || ENABLE(INPUT_MULTIPLE_FIELDS_UI)," and
38400         introduce Localizer::standAloneMonthLabels.
38401
38402         Tests: Add some test cases to Source/WebKit/chromium/LocaleMacTest.cpp
38403         and LocalizedDateICUTest.cpp.
38404
38405         * platform/text/Localizer.h:
38406         (Localizer):
38407         - Add pure virtual standAloneMonthLabels.
38408         - Change the condition for monthLabels.
38409
38410         * platform/text/LocaleNone.cpp:
38411         (LocaleNone): Declare monthLabels, standAloneMonthLabels, and m_monthLabels.
38412         (WebCore::LocaleNone::monthLabels):
38413         Added. It always returns English month names.
38414         (WebCore::LocaleNone::standAloneMonthLabels):
38415         Added. Just calls monthLabels.
38416
38417         * platform/text/LocaleWin.h:
38418         (LocaleWin):
38419         Declare standAloneMonthLabels, and change the condition for monthLabels.
38420         * platform/text/LocaleWin.cpp:
38421         (WebCore): Change the condition for monthLabels.
38422         (WebCore::LocaleWin::standAloneMonthLabels):
38423         Added. Just calls monthLabels.
38424
38425         * platform/text/mac/LocaleMac.h:
38426         (LocaleMac):
38427         - Add standAloneMonthLabels and m_standAloneMonthLabels
38428         - Change the condition for monthLabels and m_monthLabels.
38429         * platform/text/mac/LocaleMac.mm:
38430         (WebCore): Change the condition for monthLabels.
38431         (WebCore::LocaleMac::standAloneMonthLabels):
38432         Added. Get the information with NSDateFormatter::standaloneMonthSymbols.
38433
38434         * platform/text/LocaleICU.h:
38435         (LocaleICU):
38436         - Add standAloneMonthLabels and m_standAloneMonthLabels
38437         - Change the condition for monthLabels and m_monthLabels.
38438         * platform/text/LocaleICU.cpp:
38439         (WebCore::LocaleICU::initializeCalendar):
38440         Remove m_monthLabels initialization in order to avoid dependecy from monthLabels.
38441         (WebCore):
38442         (WebCore::createFallbackMonthLabels): Change the compile condition.
38443         (WebCore::LocaleICU::monthLabels):
38444         - Change the compile condition.
38445         - Don't depend on initializeCalendar to make the code for
38446         ENABLE(INPUT_MULTIPLE_FIELDS_UI) && !ENABLE(CALENDAR_PICKER) minimal.
38447         (WebCore::LocaleICU::standAloneMonthLabels):
38448         Added. The code is similar to shortStandAloneMonthLabels.
38449
38450 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38451
38452         Refactoring around ContainerNode::attachChildren
38453         https://bugs.webkit.org/show_bug.cgi?id=99968
38454
38455         Reviewed by Hajime Morita.
38456
38457         Since ContainerNode::attach() is now equivalent to ContainerNode::attachChildren() + Node::attach(), we should call
38458         ContainerNode::attach() instead of calling them.
38459
38460         No new tests, no change in behavior.
38461
38462         * dom/ContainerNode.h:
38463         (ContainerNode):
38464         * dom/Element.cpp:
38465         (WebCore::Element::attach):
38466         * dom/ShadowRoot.cpp:
38467         (WebCore::ShadowRoot::attach):
38468
38469 2012-10-22  Michael Saboff  <msaboff@apple.com>
38470
38471         HTML Parser should produce 8 bit strings for doctype, comment and tagName tokens
38472         https://bugs.webkit.org/show_bug.cgi?id=99889
38473
38474         Reviewed by Geoffrey Garen.
38475
38476         Added 8 bit check for accumulating all token data in MarkupTokenBase.  Added code to convert
38477         "name" token data directly to a string (8 or 16 as appropriate).  Changed to accumulate
38478         m_bufferedEndTagName as LChar's.
38479
38480         No new tests, covered by existing tests.
38481
38482         * html/parser/HTMLToken.h:
38483         (HTMLToken):
38484         * html/parser/HTMLTokenizer.cpp:
38485         (WebCore::HTMLTokenizer::nextToken):
38486         (WebCore::HTMLTokenizer::addToPossibleEndTag):
38487         (WebCore::HTMLTokenizer::isAppropriateEndTag):
38488         * html/parser/HTMLTokenizer.h:
38489         (HTMLTokenizer):
38490         * html/parser/HTMLTreeBuilder.cpp:
38491         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading):
38492         * xml/parser/MarkupTokenBase.h:
38493         (WebCore::MarkupTokenBase::beginStartTag):
38494         (WebCore::MarkupTokenBase::beginEndTag):
38495         (MarkupTokenBase):
38496         (WebCore::MarkupTokenBase::beginDOCTYPE):
38497         (WebCore::MarkupTokenBase::appendToComment):
38498         (WebCore::MarkupTokenBase::appendToName):
38499         (WebCore::MarkupTokenBase::nameString):
38500         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
38501
38502 2012-10-22  Tony Chang  <tony@chromium.org>
38503
38504         margin-top/bottom has no effect for child nodes of flex items
38505         https://bugs.webkit.org/show_bug.cgi?id=99923
38506
38507         Reviewed by Ojan Vafai.
38508
38509         Flexitems, like table cells, shouldn't collapse margins.
38510
38511         Test: css3/flexbox/flexitem-no-margin-collapsing.html
38512
38513         * rendering/RenderBlock.cpp:
38514         (WebCore::RenderBlock::MarginInfo::MarginInfo): Check to see if the parent is a flexible box.
38515         We should always have a parent if we make it this far in the check.
38516
38517 2012-10-22  Marja Hölttä  <marja@chromium.org>
38518
38519         Refactor CachedResourceLoader: add CachedResourceRequest
38520         https://bugs.webkit.org/show_bug.cgi?id=99736
38521
38522         Reviewed by Adam Barth.
38523
38524         For fixing bugs 84883 and 92761,
38525         CachedResourceLoader::requestResource should take as parameter
38526         information about who initiated the request. But the parameter
38527         list was already long. This gathers all the parameters into a
38528         separate class, CachedResourceRequest. The next step is to add
38529         information about who initiated the request into
38530         CachedResourceRequest.
38531
38532         No new tests because no changes in functionality, just moving code
38533         around.
38534
38535         * CMakeLists.txt:
38536         * GNUmakefile.list.am:
38537         * Target.pri:
38538         * WebCore.gypi:
38539         * WebCore.vcproj/WebCore.vcproj:
38540         * WebCore.xcodeproj/project.pbxproj:
38541         * css/CSSFontFaceSrcValue.cpp:
38542         (WebCore::CSSFontFaceSrcValue::cachedFont):
38543         * css/CSSImageSetValue.cpp:
38544         (WebCore::CSSImageSetValue::cachedImageSet):
38545         * css/CSSImageValue.cpp:
38546         (WebCore::CSSImageValue::cachedImage):
38547         * css/StyleRuleImport.cpp:
38548         (WebCore::StyleRuleImport::requestStyleSheet):
38549         * css/WebKitCSSSVGDocumentValue.cpp:
38550         (WebCore::WebKitCSSSVGDocumentValue::load):
38551         * css/WebKitCSSShaderValue.cpp:
38552         (WebCore::WebKitCSSShaderValue::cachedShader):
38553         * dom/ProcessingInstruction.cpp:
38554         (WebCore::ProcessingInstruction::checkStyleSheet):
38555         * dom/ScriptElement.cpp:
38556         (WebCore::ScriptElement::requestScript):
38557         * html/HTMLLinkElement.cpp:
38558         (WebCore::HTMLLinkElement::process):
38559         * loader/DocumentThreadableLoader.cpp:
38560         (WebCore::DocumentThreadableLoader::loadRequest):
38561         * loader/ImageLoader.cpp:
38562         (WebCore::ImageLoader::updateFromElement):
38563         * loader/LinkLoader.cpp:
38564         (WebCore::LinkLoader::loadLink):
38565         * loader/TextTrackLoader.cpp:
38566         (WebCore::TextTrackLoader::load):
38567         * loader/cache/CachedResourceLoader.cpp:
38568         (WebCore::CachedResourceLoader::requestImage):
38569         (WebCore::CachedResourceLoader::requestFont):
38570         (WebCore::CachedResourceLoader::requestTextTrack):
38571         (WebCore::CachedResourceLoader::requestShader):
38572         (WebCore::CachedResourceLoader::requestCSSStyleSheet):
38573         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
38574         (WebCore::CachedResourceLoader::requestScript):
38575         (WebCore::CachedResourceLoader::requestXSLStyleSheet):
38576         (WebCore::CachedResourceLoader::requestSVGDocument):
38577         (WebCore::CachedResourceLoader::requestLinkResource):
38578         (WebCore::CachedResourceLoader::requestRawResource):
38579         (WebCore::CachedResourceLoader::requestResource):
38580         (WebCore::CachedResourceLoader::requestPreload):
38581         (WebCore::CachedResourceLoader::defaultCachedResourceOptions):
38582         (WebCore):
38583         * loader/cache/CachedResourceLoader.h:
38584         (WebCore):
38585         (CachedResourceLoader):
38586         * loader/cache/CachedResourceRequest.cpp: Added.
38587         (WebCore):
38588         (WebCore::CachedResourceRequest::CachedResourceRequest):
38589         * loader/cache/CachedResourceRequest.h: Added.
38590         (WebCore):
38591         (CachedResourceRequest):
38592         (WebCore::CachedResourceRequest::mutableResourceRequest):
38593         (WebCore::CachedResourceRequest::resourceRequest):
38594         (WebCore::CachedResourceRequest::charset):
38595         (WebCore::CachedResourceRequest::setCharset):
38596         (WebCore::CachedResourceRequest::options):
38597         (WebCore::CachedResourceRequest::priority):
38598         (WebCore::CachedResourceRequest::forPreload):
38599         (WebCore::CachedResourceRequest::setForPreload):
38600         (WebCore::CachedResourceRequest::defer):
38601         (WebCore::CachedResourceRequest::setDefer):
38602         * loader/icon/IconLoader.cpp:
38603         (WebCore::IconLoader::startLoading):
38604         * svg/SVGFEImageElement.cpp:
38605         (WebCore::SVGFEImageElement::requestImageResource):
38606         * svg/SVGFontFaceUriElement.cpp:
38607         (WebCore::SVGFontFaceUriElement::loadFont):
38608         * svg/SVGUseElement.cpp:
38609         (WebCore::SVGUseElement::svgAttributeChanged):
38610         * xml/XSLImportRule.cpp:
38611         (WebCore::XSLImportRule::loadSheet):
38612
38613 2012-10-22  Adam Barth  <abarth@webkit.org>
38614
38615         [V8] ASSERT that removeAllDOMObjects() is called only on worker threads
38616         https://bugs.webkit.org/show_bug.cgi?id=100046
38617
38618         Reviewed by Eric Seidel.
38619
38620         This function is called only on worker threads. We should ASSERT that
38621         fact and remove the dead code that tries to handle the main thread
38622         case.
38623
38624         * bindings/v8/V8DOMMap.cpp:
38625         (WebCore::removeAllDOMObjects):
38626
38627 2012-10-22  Adam Barth  <abarth@webkit.org>
38628
38629         [V8] We should call the faster v8::Integer::New APIs
38630         https://bugs.webkit.org/show_bug.cgi?id=100016
38631
38632         Reviewed by Eric Seidel.
38633
38634         In working to remove the integer cache, I added some faster APIs for
38635         creating v8::Integers. These APIs are faster than the old APIs, but not
38636         quite fast enough to replace the integer cache. We should still use
38637         them when we miss the integer cache.
38638
38639         I've also included a small refactoring to V8PerIsolateData to make it
38640         clearer when we're calling v8::Isolate::GetCurrent().
38641
38642         * bindings/v8/DOMData.cpp:
38643         (WebCore::DOMData::getCurrentStore):
38644         * bindings/v8/V8Binding.h:
38645         (WebCore::v8ExternalString):
38646         (WebCore::v8Integer):
38647         (WebCore::v8UnsignedInteger):
38648         * bindings/v8/V8PerIsolateData.h:
38649         (WebCore::V8PerIsolateData::current):
38650         (WebCore::V8PerIsolateData::from):
38651         * bindings/v8/V8ValueCache.cpp:
38652         (WebCore::StringCache::v8ExternalStringSlow):
38653         (WebCore::IntegerCache::createSmallIntegers):
38654         * bindings/v8/V8ValueCache.h:
38655         (WebCore::IntegerCache::v8Integer):
38656         (WebCore::IntegerCache::v8UnsignedInteger):
38657         (IntegerCache):
38658         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
38659         (WebCore::V8HTMLCanvasElement::getContextCallback):
38660
38661 2012-10-22  Julien Chaffraix  <jchaffraix@webkit.org>
38662
38663         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
38664         https://bugs.webkit.org/show_bug.cgi?id=99861
38665
38666         Reviewed by Ojan Vafai.
38667
38668         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
38669         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
38670         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
38671         or else we would ignore the next layout hint on the <col> or <colgroup>.
38672
38673         Test: fast/table/col-span-change-relayout.html
38674
38675         * rendering/AutoTableLayout.cpp:
38676         (WebCore::AutoTableLayout::recalcColumn):
38677         * rendering/RenderTable.cpp:
38678         (WebCore::RenderTable::layout):
38679         Simplified the code now that we only need to iterate over the sections.
38680
38681         * rendering/FixedTableLayout.cpp:
38682         (WebCore::FixedTableLayout::calcWidthArray):
38683         Removed call to computePreferredLogicalWidths.
38684
38685         * rendering/RenderTableCol.cpp:
38686         (WebCore::RenderTableCol::styleDidChange):
38687         (WebCore::RenderTableCol::updateFromElement):
38688         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
38689
38690         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38691         (WebCore::RenderTableCol::layout):
38692         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
38693         never called.
38694
38695         (WebCore::RenderTableCol::propagateLayoutCueToTable):
38696         New helper function that forward any layout cue to the containing table, this works around
38697         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
38698         invalidateContainerPreferredLogicalWidths.
38699
38700         * rendering/RenderTableCol.h:
38701         Made the function that we are not expected to be called private.
38702
38703 2012-10-22  Pan Deng  <pan.deng@intel.com>
38704
38705         [User Timing]Integrate with Perforamnce Timeline.
38706         https://bugs.webkit.org/show_bug.cgi?id=91072.
38707
38708         Reviewed by Tony Gentilcore.
38709
38710         This patch expose user timing entries via performance timeline interface. JavaScriptCore custom binding will be another patch
38711
38712         No new tests, user timing test cases have been landed.
38713
38714         * page/Performance.cpp:
38715         (WebCore::Performance::Performance):
38716         (WebCore::Performance::webkitGetEntries):
38717         (WebCore::Performance::webkitGetEntriesByType):
38718         (WebCore::Performance::webkitGetEntriesByName):
38719         * page/PerformanceEntry.h:
38720         (WebCore::PerformanceEntry::startTimeCompareLessThan):
38721         (PerformanceEntry):
38722         * page/PerformanceEntryList.cpp:
38723         (WebCore::PerformanceEntryList::sort):
38724         (WebCore):
38725         * page/PerformanceEntryList.h:
38726         (PerformanceEntryList):
38727         * page/PerformanceUserTiming.cpp:
38728         (WebCore::convertToEntrySequence):
38729         (WebCore):
38730         (WebCore::getEntrySequenceByName):
38731         (WebCore::UserTiming::getMarks):
38732         (WebCore::UserTiming::getMeasures):
38733         * page/PerformanceUserTiming.h:
38734         (UserTiming):
38735
38736 2012-10-22  Pan Deng  <pan.deng@intel.com>
38737
38738         Modify obsolete code in User Timing
38739         https://bugs.webkit.org/show_bug.cgi?id=99851
38740
38741         Reviewed by Tony Gentilcore.
38742
38743         Modify user timing implementation as PlatformString.h, prefix of webkitNow is removed, etc.
38744
38745         No new tests.
38746
38747         * page/PerformanceUserTiming.cpp:
38748         (WebCore::insertPerformanceEntry):
38749         (WebCore::UserTiming::mark):
38750         (WebCore::UserTiming::measure):
38751         * page/PerformanceUserTiming.h:
38752
38753 2012-10-22  Mark Lam  <mark.lam@apple.com>
38754
38755         Change stack recursion checks to be based on stack availability.
38756         https://bugs.webkit.org/show_bug.cgi?id=99872.
38757
38758         Reviewed by Filip Pizlo and Geoffrey Garen.
38759
38760         Removed the use of ThreadStackType. Enabled the reserved JSStack space
38761         for error processing before doing work in reportException().
38762
38763         * bindings/js/JSDOMBinding.cpp:
38764         (WebCore::reportException):
38765         * bindings/js/JSDOMWindowBase.cpp:
38766         (WebCore::JSDOMWindowBase::commonJSGlobalData):
38767         * bindings/js/WorkerScriptController.cpp:
38768         (WebCore::WorkerScriptController::WorkerScriptController):
38769
38770 2012-10-22  Andreas Kling  <kling@webkit.org>
38771
38772         REGRESSION(r131104): Heap-use-after-free in WebCore::Element::attributeChanged
38773         <http://webkit.org/b/99937>
38774
38775         Reviewed by Anders Carlsson.
38776
38777         Setting the "type" attribute on an HTMLInputElement that has no "value" attribute set will cause the
38778         input type changing mechanism to write a value attribute onto the element. This happens in
38779         HTMLInputElement::updateType(), below parseAttribute().
38780
38781         It's done via Element::setAttribute(), so we end up re-entering Element::setAttributeInternal()
38782         where the 'existingAttribute' pointer may now be invalid if adding the "value" attribute caused
38783         a reallocation in the ElementAttributeData's underlying Vector<Attribute>.
38784
38785         To make it harder to introduce this kind of bug in the future, I changed almost all functions that take
38786         a "const Attribute&" to take a QualifiedName/AtomicString couple instead (the idea being that the 
38787         fewer references into the attribute store we have, the better.)
38788
38789         Test: fast/html/input-type-change-crash.html
38790
38791         * dom/Attr.cpp:
38792         (WebCore::Attr::setValue):
38793         (WebCore::Attr::childrenChanged):
38794         * dom/Element.cpp:
38795         (WebCore::Element::setAttributeInternal):
38796         (WebCore::Element::attributeChanged):
38797         (WebCore::Element::parserSetAttributes):
38798         (WebCore::Element::addAttributeInternal):
38799         (WebCore::Element::didAddAttribute):
38800         (WebCore::Element::didModifyAttribute):
38801         (WebCore::Element::didRemoveAttribute):
38802         * dom/Element.h:
38803         (Element):
38804         * dom/ElementAttributeData.cpp:
38805         (WebCore::ElementAttributeData::cloneDataFrom):
38806         * dom/StyledElement.cpp:
38807         (WebCore::StyledElement::attributeChanged):
38808         * dom/StyledElement.h:
38809         * html/HTMLInputElement.cpp:
38810         (WebCore::HTMLInputElement::updateType):
38811         * svg/SVGElement.cpp:
38812         (WebCore::SVGElement::attributeChanged):
38813         * svg/SVGElement.h:
38814         (SVGElement):
38815
38816 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38817
38818         IndexedDB: Bounds check for IDBCursor.advance() incorrect
38819         https://bugs.webkit.org/show_bug.cgi?id=100014
38820
38821         Reviewed by Tony Chang.
38822
38823         Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
38824         as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
38825         useless comparison was caught by a clang check.
38826
38827         In lieu of webkit.org/b/96798 make it long long and correct the range check.
38828
38829         Test: storage/indexeddb/cursor-advance.html
38830
38831         * Modules/indexeddb/IDBCursor.cpp:
38832         (WebCore::IDBCursor::advance):
38833         * Modules/indexeddb/IDBCursor.h:
38834         (IDBCursor):
38835         * Modules/indexeddb/IDBCursor.idl:
38836
38837 2012-10-22  Tony Chang  <tony@chromium.org>
38838
38839         WebKit does not support 'flex-wrap: nowrap'
38840         https://bugs.webkit.org/show_bug.cgi?id=99924
38841
38842         Reviewed by Ojan Vafai.
38843
38844         The spec changed back from using none to nowrap for the single-line
38845         flexbox case.
38846         http://dev.w3.org/csswg/css3-flexbox/#flex-wrap-property
38847
38848         No new tests, covered by css3/flexbox/css-properties.html and others.
38849
38850         * css/CSSParser.cpp:
38851         (WebCore::isValidKeywordPropertyAndValue):
38852         * css/CSSPrimitiveValueMappings.h:
38853         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
38854         (WebCore::CSSPrimitiveValue::operator EFlexWrap):
38855         * css/CSSValueKeywords.in:
38856         * rendering/RenderBox.cpp:
38857         (WebCore::isStretchingColumnFlexItem):
38858         (WebCore::RenderBox::sizesLogicalWidthToFitContent):
38859         * rendering/RenderFlexibleBox.cpp:
38860         (WebCore::RenderFlexibleBox::isMultiline):
38861         * rendering/style/RenderStyle.h:
38862         * rendering/style/RenderStyleConstants.h:
38863
38864 2012-10-22  Mike West  <mkwst@chromium.org>
38865
38866         'image/pjpeg' should be treated as an image by Web Inspector.
38867         https://bugs.webkit.org/show_bug.cgi?id=100001
38868
38869         Reviewed by Pavel Feldman.
38870
38871         It's not exactly a "real" MIME type, but it's in use.
38872
38873         * inspector/front-end/NetworkManager.js:
38874         (WebInspector.NetworkManager):
38875             Adding 'image/pjpeg' as an image MIME type.
38876
38877 2012-10-22  Sheriff Bot  <webkit.review.bot@gmail.com>
38878
38879         Unreviewed, rolling out r132119.
38880         http://trac.webkit.org/changeset/132119
38881         https://bugs.webkit.org/show_bug.cgi?id=100019
38882
38883         Fails its own test on Mac platforms. (Requested by leviw on
38884         #webkit).
38885
38886         * page/EventHandler.cpp:
38887         (WebCore::EventHandler::handleGestureEvent):
38888         (WebCore::EventHandler::sendContextMenuEventForGesture):
38889         * page/EventHandler.h:
38890         (EventHandler):
38891
38892 2012-10-22  Hans Muller  <hmuller@adobe.com>
38893
38894         [CSS Exclusions] Points on the bottom and right edges of an exclusion shape should be classified as "outside"
38895         https://bugs.webkit.org/show_bug.cgi?id=98967
38896
38897         Reviewed by Dirk Schulze.
38898
38899         Changed the way lines are represented in the ExclusionShapeInsideInfo and ExclusionShape classes
38900         so that they're consistent with the rendering code that depends on them.  Lines are now defined
38901         by logicalTop, logicalHeight, instead of logicalTop,logicalBottom.  This a clean-up, not a change
38902         in functionality. It's already covered by the existing fast/exclusions LayoutTests.
38903
38904         Test: fast/exclusions/shape-inside/shape-inside-bottom-edge.html
38905
38906         * rendering/ExclusionPolygon.cpp:
38907         (WebCore::ExclusionPolygon::getExcludedIntervals):
38908         (WebCore::ExclusionPolygon::getIncludedIntervals):
38909         * rendering/ExclusionPolygon.h:
38910         * rendering/ExclusionRectangle.cpp:
38911         (WebCore::ExclusionRectangle::getExcludedIntervals):
38912         (WebCore::ExclusionRectangle::getIncludedIntervals):
38913         * rendering/ExclusionRectangle.h:
38914         * rendering/ExclusionShape.h:
38915         (LineSegment): Moved the struct fields below the constructor per webkit style.
38916         (ExclusionShape):
38917         (WebCore::ExclusionShape::minYForLogicalLine):
38918         (WebCore::ExclusionShape::maxYForLogicalLine):
38919         * rendering/ExclusionShapeInsideInfo.cpp:
38920         (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
38921         * rendering/ExclusionShapeInsideInfo.h:
38922         (ExclusionShapeInsideInfo):
38923         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Changed the test to not include
38924             lines whose logicalTop is equal to the shape's top+height.
38925         * rendering/RenderBlockLineLayout.cpp:
38926         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
38927
38928 2012-10-22  Chris Rogers  <crogers@google.com>
38929
38930         Update some AudioContext create() method names to latest Web Audio spec
38931         https://bugs.webkit.org/show_bug.cgi?id=99888
38932
38933         Reviewed by Adam Barth.
38934
38935         The following AudioContext method names are being changed, with legacy support for the old names:
38936         createGainNode -> createGain
38937         createDelayNode -> createDelay
38938         createJavaScriptNode -> createScriptProcessor
38939
38940         For details:
38941         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18332
38942
38943         Tests changed: webaudio/delaynode.html, webaudio/gain.html, webaudio/javascriptaudionode.html
38944         to test coverage of the new names.
38945
38946         * Modules/webaudio/AudioBufferSourceNode.idl:
38947         * Modules/webaudio/AudioContext.cpp:
38948         (WebCore::AudioContext::createScriptProcessor):
38949         (WebCore::AudioContext::createGain):
38950         (WebCore::AudioContext::createDelay):
38951         * Modules/webaudio/AudioContext.h:
38952         (AudioContext):
38953         * Modules/webaudio/AudioContext.idl:
38954         * page/FeatureObserver.h:
38955
38956 2012-10-22  Varun Jain  <varunjain@chromium.org>
38957
38958         Context menu generated from touch gestures on textareas has
38959         context of the cursor position instead of the position where the event occurs.
38960         https://bugs.webkit.org/show_bug.cgi?id=99520
38961
38962         Reviewed by Kenneth Rohde Christiansen.
38963
38964         Send a synthetic mouse down event for context menu-summoning-gesture events so
38965         that textareas can correctly set cursors before receiving the context menu event.
38966
38967         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
38968
38969         * page/EventHandler.cpp:
38970         (WebCore::EventHandler::handleGestureEvent):
38971         (WebCore::EventHandler::handleGestureTwoFingerTap):
38972         (WebCore):
38973         (WebCore::EventHandler::sendContextMenuEventForGesture):
38974         * page/EventHandler.h:
38975         (EventHandler):
38976
38977 2012-10-22  Zeno Albisser  <zeno@webkit.org>
38978
38979         TextureMapperSurfaceBackingStore should check if GraphicsSurface is valid.
38980         https://bugs.webkit.org/show_bug.cgi?id=100002
38981
38982         Reviewed by Kenneth Rohde Christiansen.
38983
38984         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
38985         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
38986             Check if a surface has been created before accessing the pointer.
38987         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
38988             Check if m_graphicsSurface is a valid pointer before dereferencing it.
38989
38990 2012-10-22  Michael Saboff  <msaboff@apple.com>
38991
38992         r131955 is has improper function call in LinkHashChromium.cpp
38993         https://bugs.webkit.org/show_bug.cgi?id=100008
38994
38995         Reviewed by Alexey Proskuryakov.
38996
38997         Followup fix to r131955 for chromium platform.  Added call to 
38998         (const UChar*, unsigned) version of visitedLinkHash from String& version.
38999
39000         * platform/chromium/LinkHashChromium.cpp:
39001         (WebCore::visitedLinkHash):
39002
39003 2012-10-22  Aaron Colwell  <acolwell@chromium.org>
39004
39005         webkitsourceopen event doesn't always fire
39006         https://bugs.webkit.org/show_bug.cgi?id=99868
39007
39008         Reviewed by Adam Barth.
39009
39010         Changed MediaSource to derive from ActiveDOMObject so that event listeners
39011         will still fire even if all references to the object go out of scope.
39012
39013         Test: http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html
39014
39015         * Modules/mediasource/MediaSource.cpp:
39016         (WebCore::MediaSource::create):
39017         (WebCore::MediaSource::MediaSource):
39018         (WebCore::MediaSource::scriptExecutionContext):
39019         (WebCore):
39020         (WebCore::MediaSource::hasPendingActivity):
39021         (WebCore::MediaSource::stop): Clears m_player & m_asyncEventQueue so they don't indicate pending activity anymore.
39022         * Modules/mediasource/MediaSource.h:
39023         (MediaSource):
39024         * Modules/mediasource/MediaSource.idl:
39025         * Modules/mediasource/MediaSourceRegistry.cpp:
39026         (WebCore::MediaSourceRegistry::registerMediaSourceURL): Added setPendingActivity() call so the MediaSource object stays active while in the registry.
39027         (WebCore::MediaSourceRegistry::unregisterMediaSourceURL): Added unsetPendingActivity() call so the MediaSource object can become inactive after being removed from the registry.
39028
39029 2012-10-22  Adam Barth  <abarth@webkit.org>
39030
39031         [V8] Vastly simplify V8GCController's NodeVisitor
39032         https://bugs.webkit.org/show_bug.cgi?id=99884
39033
39034         Reviewed by Kentaro Hara.
39035
39036         NodeVisitor was vastly more complicated than necessary.
39037
39038         This patch improve performance on these new gc benchmarks:
39039
39040         gc-forest: 1.14% better
39041         gc-mini-tree: 5.09% better
39042         gc-tree: 4.60% better
39043
39044         * bindings/v8/V8GCController.cpp:
39045         (WebCore::ObjectVisitor::visitDOMWrapper):
39046         (WebCore::addImplicitReferencesForNodeWithEventListeners):
39047         (WebCore::rootForGC):
39048         (WebCore::NodeVisitor::visitDOMWrapper):
39049         (WebCore::NodeVisitor::applyGrouping):
39050         (NodeVisitor):
39051
39052 2012-10-22  Emil A Eklund  <eae@chromium.org>
39053
39054         Change baselinePosition and maxAscent/maxDescent to int
39055         https://bugs.webkit.org/show_bug.cgi?id=99767
39056
39057         Reviewed by Levi Weintraub.
39058
39059         Currently baselinePostion, maxAscent and maxDescent are
39060         LayoutUnits while ascent, descent and m_lineHeight are ints.
39061         This can lead to subtle alignment and rounding problems.
39062
39063         Change baselinePosition and maxAscent/maxDescent to int to avoid
39064         these issues.
39065
39066         Test: fast/sub-pixel/replaced-element-baseline.html
39067
39068         * editing/FrameSelection.cpp:
39069         (WebCore::repaintRectForCaret):
39070         Inflate Y dimension just like we do for X to ensure that the
39071         repaint rect fully contains the caret.
39072
39073         * rendering/InlineBox.cpp:
39074         (WebCore::InlineBox::baselinePosition):
39075         * rendering/InlineBox.h:
39076         (InlineBox):
39077         * rendering/InlineFlowBox.cpp:
39078         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
39079         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
39080         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
39081         Change maxAscent/maxDescent to int to match ascent/descent.
39082         
39083         * rendering/InlineFlowBox.h:
39084         (InlineFlowBox):
39085         * rendering/InlineTextBox.cpp:
39086         (WebCore::InlineTextBox::baselinePosition):
39087         * rendering/InlineTextBox.h:
39088         (InlineTextBox):
39089         * rendering/RenderBlock.cpp:
39090         (WebCore::RenderBlock::baselinePosition):
39091         (WebCore::RenderBlock::firstLineBoxBaseline):
39092         (WebCore::RenderBlock::lastLineBoxBaseline):
39093         * rendering/RenderBlock.h:
39094         (RenderBlock):
39095         * rendering/RenderBox.cpp:
39096         (WebCore::RenderBox::baselinePosition):
39097         * rendering/RenderBox.h:
39098         (WebCore::RenderBox::firstLineBoxBaseline):
39099         (WebCore::RenderBox::lastLineBoxBaseline):
39100         (RenderBox):
39101         * rendering/RenderBoxModelObject.h:
39102         (RenderBoxModelObject):
39103         * rendering/RenderFlexibleBox.cpp:
39104         (WebCore::RenderFlexibleBox::baselinePosition):
39105         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
39106         * rendering/RenderFlexibleBox.h:
39107         * rendering/RenderInline.cpp:
39108         (WebCore::RenderInline::baselinePosition):
39109         * rendering/RenderInline.h:
39110         (RenderInline):
39111         * rendering/RenderListBox.cpp:
39112         (WebCore::RenderListBox::baselinePosition):
39113         * rendering/RenderListBox.h:
39114         (RenderListBox):
39115         * rendering/RenderListMarker.cpp:
39116         (WebCore::RenderListMarker::baselinePosition):
39117         * rendering/RenderListMarker.h:
39118         (RenderListMarker):
39119         * rendering/RenderSlider.cpp:
39120         (WebCore::RenderSlider::baselinePosition):
39121         * rendering/RenderSlider.h:
39122         (RenderSlider):
39123         * rendering/RenderTable.cpp:
39124         (WebCore::RenderTable::baselinePosition):
39125         (WebCore::RenderTable::lastLineBoxBaseline):
39126         (WebCore::RenderTable::firstLineBoxBaseline):
39127         * rendering/RenderTable.h:
39128         (RenderTable):
39129         * rendering/RenderTableSection.cpp:
39130         (WebCore::RenderTableSection::firstLineBoxBaseline):
39131         * rendering/RenderTableSection.h:
39132         (RenderTableSection):
39133         * rendering/RenderTextControlMultiLine.cpp:
39134         (WebCore::RenderTextControlMultiLine::baselinePosition):
39135         * rendering/RenderTextControlMultiLine.h:
39136         (RenderTextControlMultiLine):
39137         * rendering/RenderTheme.cpp:
39138         (WebCore::RenderTheme::baselinePosition):
39139         * rendering/RenderTheme.h:
39140         (RenderTheme):
39141         * rendering/RenderThemeSafari.cpp:
39142         (WebCore::RenderThemeSafari::baselinePosition):
39143         * rendering/RenderThemeSafari.h:
39144         (RenderThemeSafari):
39145         * rendering/RootInlineBox.cpp:
39146         (WebCore::RootInlineBox::baselinePosition):
39147         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
39148         * rendering/RootInlineBox.h:
39149         (RootInlineBox):
39150         * rendering/mathml/RenderMathMLBlock.cpp:
39151         (WebCore::RenderMathMLBlock::baselinePosition):
39152         (WebCore::RenderMathMLTable::firstLineBoxBaseline):
39153         * rendering/mathml/RenderMathMLBlock.h:
39154         (RenderMathMLBlock):
39155         (RenderMathMLTable):
39156         * rendering/mathml/RenderMathMLFraction.cpp:
39157         (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
39158         * rendering/mathml/RenderMathMLFraction.h:
39159         (RenderMathMLFraction):
39160         * rendering/mathml/RenderMathMLOperator.cpp:
39161         (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
39162         * rendering/mathml/RenderMathMLOperator.h:
39163         * rendering/mathml/RenderMathMLUnderOver.cpp:
39164         (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
39165         * rendering/mathml/RenderMathMLUnderOver.h:
39166         (RenderMathMLUnderOver):
39167
39168 2012-10-22  Emil A Eklund  <eae@chromium.org>
39169
39170         Modify LayoutState ASSERTS to support SATURATED_LAYOUT_ARITHMETIC
39171         https://bugs.webkit.org/show_bug.cgi?id=98692
39172
39173         Reviewed by Dan Bernstein.
39174
39175         We currently overflow/wrap when computing the delta in
39176         RenderBlock::setLogicalTopForChild in cases where we have an
39177         element with a width or height exceeding maxLayoutUnit. When
39178         the delta is later added back in RenderBlock::layoutBlockChild
39179         the number wraps again getting us back to the correct value.
39180
39181         With SATURATED_LAYOUT_ARITHMETIC enabled the values no longer
39182         wraps, which seems like the correct thing to do however this
39183         causes the compare to fail for obvious reasons. By accounting
39184         for this we can keep the asserts (which have proven very
39185         helpful) even when SATURATED_LAYOUT_ARITHMETIC is turned on.
39186
39187         No new tests, covered by existing tests.
39188
39189         * rendering/LayoutState.cpp:
39190         (WebCore::LayoutState::LayoutState):
39191         * rendering/LayoutState.h:
39192         (WebCore::LayoutState::LayoutState):
39193         (LayoutState):
39194         * rendering/RenderBlock.cpp:
39195         (WebCore::RenderBlock::layoutBlockChild):
39196         * rendering/RenderView.cpp:
39197         (WebCore::RenderView::layout):
39198         * rendering/RenderView.h:
39199         (WebCore::RenderView::addLayoutDelta):
39200         (RenderView):
39201         (WebCore::RenderView::layoutDeltaMatches):
39202
39203 2012-10-22  Tony Chang  <tony@chromium.org>
39204
39205         Fix some baseline flexbox alignment
39206         https://bugs.webkit.org/show_bug.cgi?id=99879
39207
39208         Reviewed by Ojan Vafai.
39209
39210         Fix a bug where we weren't handling margin properly on inline-flexbox.
39211         Fix a bug where we weren't getting the edge of the content box properly when synthesizing
39212         a baseline.
39213
39214         Test: css3/flexbox/flexbox-baseline-margins.html
39215
39216         * rendering/RenderBlock.cpp:
39217         (WebCore::RenderBlock::baselinePosition):
39218         (WebCore::RenderBlock::inlineBlockBaseline): Add a new method that is used when calculating an inline-block's
39219         baseline. Previously we would use lastLineBoxBaseline.
39220         (WebCore::RenderBlock::lastLineBoxBaseline): Pass in direction and when searching children, use inlineBlockBaseline.
39221         * rendering/RenderBlock.h:
39222         (RenderBlock): Make lastLineBoxBaseline non-virtual.
39223         * rendering/RenderBox.h:
39224         (WebCore::RenderBox::inlineBlockBaseline): Replace lastLineBoxBaseline with inlineBlockBaseline.
39225         * rendering/RenderFlexibleBox.cpp:
39226         (WebCore::synthesizedBaselineFromContentBox): Helper method for getting the baseline from the content box.
39227         (WebCore::RenderFlexibleBox::baselinePosition): Always include the margin. This fixes the inline-flexbox case.
39228         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Fix a case where we didn't synthesize a baseline.  Returning -1 means there is no baseline, but we can
39229         synthesize a baseline if we have a flexitem without text.
39230         (WebCore::RenderFlexibleBox::inlineBlockBaseline):
39231         * rendering/RenderFlexibleBox.h:
39232         * rendering/RenderTable.cpp: Replace lastLineBoxBaseline with inlineBlockBaseline.
39233         (WebCore::RenderTable::inlineBlockBaseline): Try to make comment more direct.
39234         * rendering/RenderTable.h:
39235         (RenderTable): Replace lastLineBoxBaseline with inlineBlockBaseline.
39236
39237 2012-10-22  Levi Weintraub  <leviw@chromium.org>
39238
39239         Unreviewed Chromium build fix following r132074.
39240
39241         * WebCore.gypi:
39242
39243 2012-10-22  Mario Sanchez Prada  <msanchez@igalia.com>
39244
39245         [GTK] Don't use deprecated AccessibilityObject methods after r99502
39246         https://bugs.webkit.org/show_bug.cgi?id=99985
39247
39248         Reviewed by Chris Fleizach.
39249
39250         Update callers for AccessibilityObject's title() and
39251         accessibilityDescription() so they now use AccessibilityText.
39252
39253         * accessibility/gtk/WebKitAccessibleUtil.cpp:
39254         (titleTagShouldBeUsedInDescriptionField): Internal helper function.
39255         (accessibilityTitle): New helper function, returns an String with
39256         the title for a AccessibilityObject, using AccessibleText.
39257         (accessibilityDescription): New helper function, returns an String with
39258         the description for a AccessibilityObject, using AccessibleText.
39259         * accessibility/gtk/WebKitAccessibleUtil.h: Added public
39260         declarations for accessibilityTitle and accessibilityDescription.
39261
39262         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
39263         (webkitAccessibleGetName): Use new helpers for retrieving the title.
39264         (webkitAccessibleGetDescription): Use new helpers for retrieving
39265         the title and description.
39266
39267         * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
39268         (webkitAccessibleImageGetImageDescription): Use new helpers for
39269         retrieving the title.
39270
39271 2012-10-16  Andrey Kosyakov  <caseq@chromium.org>
39272
39273         Web Inspector: add timeline instrumentation for scrolling of a layer
39274         https://bugs.webkit.org/show_bug.cgi?id=99461
39275
39276         Reviewed by Pavel Feldman.
39277
39278         - added timeline instrumentation for scrolling of a layer;
39279         - added TRACE_EVENT for ScrollableArea::scrollPositionChanged()
39280
39281         * inspector/InspectorInstrumentation.cpp:
39282         (WebCore):
39283         (WebCore::InspectorInstrumentation::willScrollLayerImpl):
39284         (WebCore::InspectorInstrumentation::didScrollLayerImpl):
39285         * inspector/InspectorInstrumentation.h:
39286         (InspectorInstrumentation):
39287         (WebCore::InspectorInstrumentation::willScrollLayer):
39288         (WebCore):
39289         (WebCore::InspectorInstrumentation::didScrollLayer):
39290         * inspector/InspectorTimelineAgent.cpp:
39291         (TimelineRecordType):
39292         (WebCore::InspectorTimelineAgent::willScroll):
39293         (WebCore):
39294         (WebCore::InspectorTimelineAgent::didScroll):
39295         * inspector/InspectorTimelineAgent.h:
39296         (InspectorTimelineAgent):
39297         * inspector/front-end/TimelineModel.js:
39298         * inspector/front-end/TimelinePresentationModel.js:
39299         (WebInspector.TimelinePresentationModel._initRecordStyles):
39300         * rendering/RenderLayer.cpp:
39301         (WebCore::RenderLayer::scrollTo):
39302         * platform/ScrollableArea.cpp:
39303         (WebCore::ScrollableArea::scrollPositionChanged):
39304
39305 2012-10-22  Jan Keromnes  <janx@linux.com>
39306
39307         Moved cmdevtools.js to folder cm/
39308
39309         Web Inspector: Move file `cmdevtools.css` to `cm/`
39310         https://bugs.webkit.org/show_bug.cgi?id=99956
39311
39312         Reviewed by Pavel Feldman.
39313
39314         The file cmdevtools.js belongs to the CodeMirror editor experiment in cm/.
39315
39316         * WebCore.gypi:
39317         * WebCore.vcproj/WebCore.vcproj:
39318         * inspector/front-end/WebKit.qrc:
39319         * inspector/front-end/cm/cmdevtools.css: Renamed from Source/WebCore/inspector/front-end/cmdevtools.css.
39320         (.CodeMirror):
39321         (.CodeMirror-scroll):
39322         (.cm-highlight):
39323         (@-webkit-keyframes fadeout):
39324         (to):
39325         (.cm-breakpoint):
39326         (.cm-breakpoint-disabled):
39327         (.cm-breakpoint-conditional):
39328         (.cm-execution-line):
39329         (.cm-s-web-inspector-js span.cm-keyword):
39330         (.cm-s-web-inspector-js span.cm-number):
39331         (.cm-s-web-inspector-js span.cm-comment):
39332         (.cm-s-web-inspector-js span.cm-string):
39333         (.cm-s-web-inspector-js span.cm-string-2):
39334         (.cm-s-web-inspector-css span.cm-keyword):
39335         (.cm-s-web-inspector-css span.cm-number):
39336         (.cm-s-web-inspector-css span.cm-comment):
39337         (.cm-s-web-inspector-css span.cm-string):
39338         (.cm-s-web-inspector-css span.cm-string-2):
39339         (.cm-s-web-inspector-css span.cm-link):
39340         (.cm-s-web-inspector-css span.cm-variable):
39341         (.cm-s-web-inspector-html span.cm-meta):
39342         (.cm-s-web-inspector-html span.cm-comment):
39343         (.cm-s-web-inspector-html span.cm-string):
39344         (.cm-s-web-inspector-html span.cm-tag):
39345         (.cm-s-web-inspector-html span.cm-attribute):
39346         (.cm-s-web-inspector-html span.cm-link):
39347         (.webkit-html-message-bubble):
39348         (.webkit-html-warning-message):
39349         (.webkit-html-error-message):
39350         (.webkit-html-message-line):
39351         (.webkit-html-message-line-hover):
39352
39353 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39354
39355         Web Inspector: Prepare mappings to moving uiSourceCodes creation out of them to workspace.
39356         https://bugs.webkit.org/show_bug.cgi?id=99997
39357
39358         Reviewed by Pavel Feldman.
39359
39360         Source mappings could now store a link to temporary uiSourceCodes only.
39361         Otherwise it should retrieve uiSourceCodes from workspace by URL.
39362         Original uiSourceCodes are now temporary in CompilerScriptMapping.
39363
39364         * inspector/front-end/CompilerScriptMapping.js:
39365         (WebInspector.CompilerScriptMapping):
39366         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
39367         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
39368         (WebInspector.CompilerScriptMapping.prototype._reset):
39369         * inspector/front-end/NetworkUISourceCodeProvider.js:
39370         (WebInspector.NetworkUISourceCodeProvider):
39371         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39372         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
39373         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
39374         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
39375         * inspector/front-end/SASSSourceMapping.js:
39376         (WebInspector.SASSSourceMapping):
39377         (_bindUISourceCode):
39378         (_reset):
39379
39380 2012-10-22  Nicolas Dufresne <nicolas.dufresne@collabora.com>
39381
39382         Gstreamer 1.0 not working
39383         https://bugs.webkit.org/show_bug.cgi?id=99852
39384
39385         Reviewed by Philippe Normand.
39386
39387         There was a series of trivial issue, g_object_is_floating() was called
39388         on type GstCaps (which is not a GObject), webkitGstGetPadCaps() was
39389         returning non-fixed caps and GST_MESSAGE_DURATION has been renamed
39390         to GST_MESSAGE_DURATION_CHANGED.
39391
39392         Most failing test passes now.
39393
39394         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
39395         (WTF::adoptGRef):
39396         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
39397         (webkitGstGetPadCaps):
39398         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
39399         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
39400
39401 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39402
39403         Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.
39404         https://bugs.webkit.org/show_bug.cgi?id=99989
39405
39406         Reviewed by Pavel Feldman.
39407
39408         Dynamic anonymous scripts are now mapped to anonymous temporary uiSourceCodes.
39409         ResourceScriptMapping now supports two types of temporary uiSourceCodes:
39410          - original uiSourceCodes represent scripts while main uiSourceCodes are diverged;
39411          - temporary uiSourceCodes represent scripts for which resources are not yet loaded.
39412
39413         * inspector/front-end/BreakpointManager.js:
39414         (WebInspector.BreakpointManager.breakpointStorageId):
39415         (WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
39416         * inspector/front-end/NetworkUISourceCodeProvider.js:
39417         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39418         * inspector/front-end/ResourceScriptMapping.js:
39419         (WebInspector.ResourceScriptMapping):
39420         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
39421         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
39422         (WebInspector.ResourceScriptMapping.prototype.addScript):
39423         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
39424         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
39425         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
39426         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
39427         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
39428         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
39429         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
39430         (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode.get if):
39431         (WebInspector.ResourceScriptMapping.prototype._reset):
39432
39433 2012-10-22  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
39434
39435         [css3-text] Add rendering support for -webkit-text-decoration-style
39436         https://bugs.webkit.org/show_bug.cgi?id=94094
39437
39438         Reviewed by Julien Chaffraix.
39439
39440         This patch implements the "text-decoration-style" property rendering as
39441         specified in CSS3 working draft, with "-webkit-" prefix. The specification can
39442         be found here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
39443
39444         Additionally, Mozilla implementation details can be found here:
39445         https://developer.mozilla.org/en/CSS/text-decoration-style
39446
39447         Tests: fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html
39448                fast/css3-text/css3-text-decoration/text-decoration-style.html
39449
39450         * platform/graphics/GraphicsContext.h:
39451         * platform/graphics/cairo/GraphicsContextCairo.cpp:
39452         (WebCore::GraphicsContext::setPlatformStrokeStyle):
39453         * platform/graphics/cg/GraphicsContextCG.cpp:
39454         (WebCore::GraphicsContext::drawLine):
39455         * platform/graphics/qt/GraphicsContextQt.cpp:
39456         (WebCore::toQPenStyle):
39457         (WebCore::GraphicsContext::drawLine):
39458         * platform/graphics/skia/PlatformContextSkia.cpp:
39459         (WebCore::PlatformContextSkia::setupPaintForStroking):
39460         * platform/graphics/wince/GraphicsContextWinCE.cpp:
39461         (WebCore::createPen):
39462         * platform/graphics/wx/GraphicsContextWx.cpp:
39463         (WebCore::strokeStyleToWxPenStyle):
39464         Added 'DoubleStroke' and 'WavyStroke' to StrokeStyle enum and updated
39465         platform-specific stroke handling. Some styles requires
39466         platform-specific implementation (handled in bug 92868).
39467         * rendering/InlineTextBox.cpp:
39468         (WebCore::InlineTextBox::paint):
39469         (WebCore::textDecorationStyleToStrokeStyle): Added static function that
39470         translates text decoration to stroke styles.
39471         (WebCore::InlineTextBox::paintDecoration): Text decoration style does
39472         not specify a property for line thickness (like border-width does for
39473         border style), so we statically set it to 1 for now. The 'double' style
39474         implementation simply adds a parallel line (depending if it is
39475         underline, overline or line-through) and the space between lines follows
39476         the approach used by border's 'double' style.
39477         * rendering/InlineTextBox.h:
39478         (InlineTextBox):
39479         * rendering/style/RenderStyle.h:
39480         * rendering/style/RenderStyleConstants.h:
39481         Added text decoration style rendering support to
39482         InlineTextBox::paintDecoration().
39483
39484 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39485
39486         [Qt] Use the DNS resolve queue
39487         https://bugs.webkit.org/show_bug.cgi?id=99994
39488
39489         Reviewed by Simon Hausmann.
39490
39491         Use the DNS resolve queue, to ensure we can prefetch more than just the first 10 hostname encountered
39492         during parsing. It also ensure each hostname is only appears once in the queue.
39493
39494         * Target.pri:
39495         * platform/network/qt/DNSQt.cpp: Added.
39496         (DnsPrefetchHelper):
39497         (WebCore::DnsPrefetchHelper::DnsPrefetchHelper):
39498         (WebCore::DnsPrefetchHelper::lookup):
39499         (WebCore::DnsPrefetchHelper::lookedUp):
39500         (WebCore::prefetchDNS):
39501         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
39502         (WebCore::DNSResolveQueue::platformResolve):
39503         * platform/network/qt/DnsPrefetchHelper.cpp: Removed.
39504         * platform/network/qt/DnsPrefetchHelper.h: Removed.
39505         (DnsPrefetchHelper):
39506
39507 2012-10-22  Erik Arvidsson  <arv@chromium.org>
39508
39509         HTMLBaseElement href attribute binding returns wrong URL
39510         https://bugs.webkit.org/show_bug.cgi?id=98184
39511
39512         Reviewed by Ojan Vafai.
39513
39514         Resolve the href attribute binding relative to the document URL instead of resolving it to the
39515         base element itself. If there is no href attribute this should return the fallback base URL.
39516
39517         http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
39518
39519         Tests: fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html
39520                fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html
39521
39522         * html/HTMLBaseElement.cpp:
39523         (WebCore::HTMLBaseElement::href): Don't use completeURL. Resolve href based on document's URL instead
39524         of the generic [Reflect, URL] binding.
39525         (WebCore::HTMLBaseElement::setHref): Just sets the attribute.
39526         * html/HTMLBaseElement.h:
39527         * html/HTMLBaseElement.idl: We can no longer use [Reflect, URL]
39528
39529 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39530
39531         Web Inspector: Revisions should not be restored and persisted for anonymous uiSourceCodes.
39532         https://bugs.webkit.org/show_bug.cgi?id=99991
39533
39534         Reviewed by Alexander Pavlov.
39535
39536         * inspector/front-end/UISourceCode.js:
39537         (WebInspector.UISourceCode):
39538
39539 2012-10-22  Florin Malita  <fmalita@chromium.org>
39540
39541         Incorrect embedded SVG image sizing on first load
39542         https://bugs.webkit.org/show_bug.cgi?id=99489
39543
39544         Reviewed by Nikolas Zimmermann.
39545
39546         RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
39547         to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
39548         already been performed.
39549
39550         Test: svg/custom/svg-image-initial-size.html
39551
39552         * rendering/svg/RenderSVGImage.cpp:
39553         (WebCore::RenderSVGImage::imageChanged):
39554
39555 2012-10-22  Keishi Hattori  <keishi@webkit.org>
39556
39557         Remove monthFormatInLDML
39558         https://bugs.webkit.org/show_bug.cgi?id=99971
39559
39560         Reviewed by Kent Tamura.
39561
39562         Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.
39563
39564         No new tests. Just removing unused code.
39565
39566         * platform/LocalizedStrings.h:
39567         (WebCore):
39568
39569 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39570
39571         [GTK] Enable Microdata DOM API
39572         https://bugs.webkit.org/show_bug.cgi?id=99033
39573
39574         Reviewed by Martin Robinson.
39575
39576         Enable the Microdata DOM API, but still disable it when the unstable
39577         features should be disabled (for instance in release builds).
39578
39579         No new tests - related tests are being unskipped and are expected to pass.
39580
39581         * GNUmakefile.am:
39582         * GNUmakefile.features.am:
39583         * bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
39584         API GObject bindings are generated and built.
39585
39586 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39587
39588         [GTK] Enable CSP 1.1
39589         https://bugs.webkit.org/show_bug.cgi?id=99064
39590
39591         Reviewed by Martin Robinson.
39592
39593         Enable CSP 1.1 in development builds but keep it disabled when the
39594         unstable features should not be enabled (like in stable releases).
39595
39596         No new tests - they already exist and will be unskipped.
39597
39598         * GNUmakefile.am:
39599         * GNUmakefile.features.am:
39600
39601 2012-10-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
39602
39603         [Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
39604         https://bugs.webkit.org/show_bug.cgi?id=98514
39605
39606         Reviewed by Kenneth Rohde Christiansen.
39607
39608         The problem is that we call setFixedVisibleContentRect, which triggers
39609         a layout, after the document has been put in the page cache and before
39610         the load has been actually committed.
39611
39612         This applies the same trick as with setFixedLayoutSize by passing the rect
39613         in Frame::createView and calling setFixedVisibleContentRect before the
39614         new FrameView gets attached to the Frame/Document to prevent the layout.
39615
39616         * WebCore.exp.in:
39617         * page/Frame.cpp:
39618         (WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
39619         useFixedLayout arguments as well since they are used exceptionally.
39620         * page/Frame.h:
39621         (Frame):
39622
39623 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39624
39625         [Qt] Handle GET of blob URLs.
39626         https://bugs.webkit.org/show_bug.cgi?id=99053
39627
39628         Reviewed by Simon Hausmann.
39629
39630         Let BlobResourceHandle handle Blob request internally.
39631
39632         * platform/network/qt/ResourceHandleQt.cpp:
39633         (WebCore::ResourceHandle::loadResourceSynchronously):
39634
39635 2012-10-22  Kenichi Ishibashi  <bashi@chromium.org>
39636
39637         HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
39638         https://bugs.webkit.org/show_bug.cgi?id=99966
39639
39640         Reviewed by Kent Tamura.
39641
39642         If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.
39643
39644         No new tests. Confirmed the fix by using Address Sanitizer.
39645
39646         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
39647         (WebCore::HarfBuzzShaper::shape):
39648         (WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
39649         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
39650         (HarfBuzzShaper):
39651
39652 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
39653
39654         [Shadow] ASSERT triggered when we try reprojecting fallback elements.
39655         https://bugs.webkit.org/show_bug.cgi?id=99815
39656
39657         Reviewed by Hajime Morita.
39658
39659         When fallback elements of InsertionPoint is reprojected, they were attached twice.
39660         We have to skip attaching them if they are attached. We also add a few ASSERT not to
39661         allow attaching twice if not necessary.
39662
39663         We have confirmed that this patch does not regress the performance. The summary of the
39664         performance test is the following:
39665
39666         Dromaeo/dom-modify.html [runs/s]:
39667                                median stdev    min    max
39668            without this patch:   3928   184   3655   4361
39669            with this patch   :   3925   178   3652   4350
39670
39671         Parser/html5-full-render.html [s]:
39672                                median stdev    min    max
39673            without this patch:   3821    17   3811   3850
39674            with this patch   :   3838   4.4   3833   3844
39675
39676         Test: fast/dom/shadow/content-reprojection-fallback-crash.html
39677
39678         * dom/ContainerNode.cpp:
39679         (WebCore):
39680         (WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
39681         be attached in advance because of ShadowDOM attaching process.
39682         * dom/ContainerNode.h:
39683         (ContainerNode):
39684         (WebCore):
39685         (WebCore::ContainerNode::attachChildren):
39686         * dom/Element.cpp:
39687         (WebCore::Element::attach):
39688         * dom/ShadowRoot.cpp:
39689         (WebCore::ShadowRoot::attach):
39690
39691 2012-10-22  Pavel Feldman  <pfeldman@chromium.org>
39692
39693         Web Inspector: merge "docked" state into the "dock side" enum.
39694         https://bugs.webkit.org/show_bug.cgi?id=99717
39695
39696         Reviewed by Vsevolod Vlasov.
39697
39698         Otherwise, it is hard to manage these inter-dependent flags.
39699
39700         * WebCore.exp.in:
39701         * inspector/InspectorFrontendClient.h:
39702         (InspectorFrontendClient):
39703         * inspector/InspectorFrontendClientLocal.cpp:
39704         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
39705         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
39706         * inspector/InspectorFrontendClientLocal.h:
39707         (InspectorFrontendClientLocal):
39708         * inspector/InspectorFrontendHost.cpp:
39709         (WebCore::InspectorFrontendHost::requestSetDockSide):
39710         * inspector/InspectorFrontendHost.h:
39711         (InspectorFrontendHost):
39712         * inspector/InspectorFrontendHost.idl:
39713         * inspector/front-end/DockController.js:
39714         (WebInspector.DockController):
39715         (WebInspector.DockController.prototype._updateUI.get sides):
39716         (WebInspector.DockController.prototype._updateUI):
39717         (WebInspector.DockController.prototype._toggleDockState):
39718         * inspector/front-end/InspectorFrontendAPI.js:
39719         (InspectorFrontendAPI.setAttachedWindow):
39720         (InspectorFrontendAPI.setDockSide):
39721         * inspector/front-end/InspectorFrontendHostStub.js:
39722         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
39723         * inspector/front-end/externs.js:
39724
39725 2012-10-22  MORITA Hajime  <morrita@google.com>
39726
39727         Unreviewed follow up to update test result after r132033.
39728
39729         * bindings/scripts/test/V8/V8TestObj.cpp:
39730         (WebCore::V8TestObj::installPerContextProperties):
39731
39732 2012-10-21  MORITA Hajime  <morrita@google.com>
39733
39734         [V8] V8EnablePerContext shouldn't require document() accessor to the native object.
39735         https://bugs.webkit.org/show_bug.cgi?id=99954
39736
39737         Reviewed by Kentaro Hara.
39738
39739         It now refers ScriptExecutionContext of the creation context instead of document() of
39740         wrapped object.
39741
39742         No new tests. No behavior change at this time.
39743
39744         * bindings/scripts/CodeGeneratorV8.pm:
39745         (GenerateImplementation):
39746
39747 2012-10-21  Kent Tamura  <tkent@chromium.org>
39748
39749         Page popup: Fix crash by events after closing
39750         https://bugs.webkit.org/show_bug.cgi?id=99951
39751
39752         Reviewed by Hajime Morita.
39753
39754         WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.
39755
39756         No new tests. The bug is timing-dependent.
39757
39758         * page/DOMWindowPagePopup.cpp:
39759         (WebCore::DOMWindowPagePopup::uninstall):
39760         Added. Calls Supplementable::removeSupplement.
39761         * page/DOMWindowPagePopup.h:
39762         (DOMWindowPagePopup): Declare uninstall.
39763         * platform/Supplementable.h:
39764         (WebCore::Supplementable::removeSupplement): Added.
39765
39766 2012-10-21  Keishi Hattori  <keishi@webkit.org>
39767
39768         Refactor picker tests to fix flakiness and share code
39769         https://bugs.webkit.org/show_bug.cgi?id=99671
39770
39771         Reviewed by Kent Tamura.
39772
39773         Disable transitions until the picker is fully ready. This should fix flakiness.
39774
39775         No new tests.
39776
39777         * Resources/pagepopups/calendarPicker.css:
39778         (.preparing .unavailable): Disable transitions.
39779         (.preparing .available): Disable transitions.
39780         * Resources/pagepopups/calendarPicker.js:
39781         (CalendarPicker): Set "preparing" class.
39782         (CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.
39783
39784 2012-10-21  Shinya Kawanaka  <shinyak@chromium.org>
39785
39786         Web Inspector: Shadow DOM: Node removal doesn't reflect.
39787         https://bugs.webkit.org/show_bug.cgi?id=99567
39788
39789         Reviewed by Pavel Feldman.
39790
39791         We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
39792         Otherwise, node won't be removed from the inspector.
39793
39794         Test: inspector/elements/update-shadowdom.html
39795
39796         * dom/ContainerNode.cpp:
39797         (WebCore::dispatchChildRemovalEvents):
39798
39799 2012-10-21  Andreas Kling  <kling@webkit.org>
39800
39801         Remove Page::javaScriptURLsAreAllowed setting.
39802         <http://webkit.org/b/99944>
39803
39804         Reviewed by Anders Carlsson.
39805
39806         This setting was exposed through internal WebView API in Apple's WebKit1.
39807         There are no longer any clients of that API.
39808
39809         This is a step towards preventing elements from modifying their own attributes
39810         below attributeChanged().
39811
39812         * WebCore.exp.in:
39813         * WebCore.order:
39814         * bindings/ScriptControllerBase.cpp:
39815         (WebCore::ScriptController::executeIfJavaScriptURL):
39816         * html/HTMLAnchorElement.cpp:
39817         (WebCore::HTMLAnchorElement::parseAttribute):
39818         * page/Page.cpp:
39819         (WebCore::Page::Page):
39820         * page/Page.h:
39821         (Page):
39822
39823 2012-10-21  Hyungchan Kim  <hyungchan2.kim@lge.com>
39824
39825         Add a separate flag for rgb swizzling whether it can be modified or not
39826         https://bugs.webkit.org/show_bug.cgi?id=98728
39827
39828         BitmapTexture swizzles the source image if the OpenGL driver
39829         doesn't support the BGRA extension.
39830         In case of directly composited images, the source image should not
39831         be modified.
39832
39833         http://www.satine.org/research/webkit/snowleopard/snowstack.html
39834
39835         Reviewed by Noam Rosenthal.
39836
39837         No new tests as this is only testable on specific hardware and
39838         currently not avaiable in the bots.
39839
39840         * platform/graphics/texmap/TextureMapper.h:
39841         (BitmapTexture):
39842         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
39843         (WebCore::TextureMapperTile::updateContents):
39844         (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
39845         (WebCore::TextureMapperTiledBackingStore::updateContents):
39846         * platform/graphics/texmap/TextureMapperBackingStore.h:
39847         (TextureMapperTile):
39848         (TextureMapperTiledBackingStore):
39849         (WebCore::TextureMapperTiledBackingStore::updateContents):
39850         * platform/graphics/texmap/TextureMapperGL.cpp:
39851         (WebCore::TextureMapperGL::drawRepaintCounter):
39852         (WebCore::BitmapTextureGL::updateContents):
39853         * platform/graphics/texmap/TextureMapperGL.h:
39854         (BitmapTextureGL):
39855         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
39856         (WebCore::BitmapTextureImageBuffer::updateContents):
39857         * platform/graphics/texmap/TextureMapperImageBuffer.h:
39858         (BitmapTextureImageBuffer):
39859         * platform/graphics/texmap/TextureMapperLayer.cpp:
39860         (WebCore::TextureMapperLayer::updateBackingStore):
39861
39862 2012-10-21  Antti Koivisto  <antti@apple.com>
39863
39864         Factor stylesheet invalidation analysis code into a class
39865         https://bugs.webkit.org/show_bug.cgi?id=99933
39866
39867         Reviewed by Sam Weinig.
39868
39869         Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
39870         further progress easier.
39871
39872         The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
39873         and DocumentStyleSheetCollection there. No functional changes.
39874
39875         * CMakeLists.txt:
39876         * GNUmakefile.list.am:
39877         * Target.pri:
39878         * WebCore.gypi:
39879         * WebCore.vcproj/WebCore.vcproj:
39880         * WebCore.xcodeproj/project.pbxproj:
39881         * css/SelectorChecker.cpp:
39882         (WebCore):
39883         * css/SelectorChecker.h:
39884         (WebCore):
39885         * css/StyleInvalidationAnalysis.cpp: Added.
39886         (WebCore):
39887         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
39888         (WebCore::StyleInvalidationAnalysis::create):
39889         (WebCore::determineSelectorScopes):
39890         (WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
39891         (WebCore::elementMatchesSelectorScopes):
39892         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
39893         * css/StyleInvalidationAnalysis.h: Added.
39894         (WebCore):
39895         (StyleInvalidationAnalysis):
39896         (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
39897         * css/StyleResolver.cpp:
39898         (WebCore::StyleResolver::checkRegionSelector):
39899         * css/StyleResolver.h:
39900         (StyleResolver):
39901         * dom/DocumentStyleSheetCollection.cpp:
39902         (WebCore):
39903         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
39904         * dom/DocumentStyleSheetCollection.h:
39905         (DocumentStyleSheetCollection):
39906
39907 2012-10-08  Robert Hogan  <robert@webkit.org>
39908
39909         In some float situations, the original layout is wrong and only corrects itself on repaint
39910         https://bugs.webkit.org/show_bug.cgi?id=18939
39911
39912         Reviewed by Levi Weintraub.
39913
39914         A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
39915         This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
39916         does not.
39917
39918         Test: fast/block/br-with-clearance-after-collapsing-space.html
39919
39920         * rendering/RenderBlockLineLayout.cpp:
39921         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
39922
39923 2012-10-08  Robert Hogan  <robert@webkit.org>
39924
39925         floated element with negative margin causes text wrap bug
39926         https://bugs.webkit.org/show_bug.cgi?id=94825
39927
39928         Reviewed by Levi Weintraub.
39929
39930         Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
39931         floats on the line is at least as much as the offset given by border, margin and padding. This only
39932         happens when a negative margin on the float brings its edge back before the offset
39933         given by the border, margin and padding of its parents.
39934
39935         Test: fast/block/float/float-on-line-obeys-container-padding.html
39936
39937         * rendering/RenderBlockLineLayout.cpp:
39938         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
39939
39940 2012-10-20  Martin Robinson  <mrobinson@igalia.com>
39941
39942         Fix 'make dist' for the GTK+ port
39943
39944         * GNUmakefile.am: Add missing files to the source list.
39945         * GNUmakefile.list.am: Ditto.
39946
39947 2012-10-20  Dan Bernstein  <mitz@apple.com>
39948
39949         <rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
39950         https://bugs.webkit.org/show_bug.cgi?id=99918
39951
39952         Reviewed by Geoff Garen.
39953
39954         -[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
39955         asked for size 0, and this is what Font::drawGlyphs uses to draw the text.
39956
39957         Test: fast/text/zero-font-size-2.html
39958
39959         * platform/graphics/mac/FontMac.mm:
39960         (WebCore::Font::drawGlyphs): Added an early return if the size is zero.
39961
39962 2012-10-20  Andreas Kling  <kling@webkit.org>
39963
39964         Clean up QualifiedName-as-hash-key scenario.
39965         <http://webkit.org/b/99394>
39966
39967         Reviewed by Anders Carlsson.
39968
39969         Cache the hash on QualifiedNameImpl after the first time it's computed.
39970         This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
39971         which I believe is fine, since QualifiedName is a shared object.
39972
39973         Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
39974         and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
39975         create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
39976         added to  the global QualifiedName cache, etc.
39977
39978         Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
39979         the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
39980         directly instead.
39981
39982         Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.
39983
39984         * dom/QualifiedName.cpp:
39985         (WebCore::nullQName):
39986         (WebCore::QualifiedName::QualifiedNameImpl::computeHash):
39987         * dom/QualifiedName.h:
39988         (QualifiedNameImpl):
39989         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
39990         (WebCore::QualifiedNameHash::hash):
39991         * svg/SVGElement.h:
39992         (WebCore::SVGAttributeHashTranslator::hash):
39993
39994 2012-10-20  Yael Aharon  <yael.aharon@intel.com>
39995
39996         [EFL][AC] Build fix after r131933
39997         https://bugs.webkit.org/show_bug.cgi?id=99901
39998
39999         Reviewed by Kentaro Hara.
40000
40001         Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.
40002
40003         No new tests.
40004
40005         * CMakeLists.txt:
40006
40007 2012-10-19  Adam Barth  <abarth@webkit.org>
40008
40009         [V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
40010         https://bugs.webkit.org/show_bug.cgi?id=99876
40011
40012         Reviewed by Kentaro Hara.
40013
40014         We want to remove the document parameter to instantiateV8Object. There
40015         isn't always a Document available, so it doesn't make sense to pass it
40016         as a parameter. We're just waiting for a V8 API change so we can still
40017         construct Node wrappers quickly.
40018
40019         This patch removes a use of the document that snuck in. Rather than
40020         passing the ScriptExecutionContext around, we get it from the
40021         CreationContext of the prototype object (and only when we actually need
40022         it).
40023
40024         * Modules/notifications/NotificationCenter.cpp:
40025         * Modules/notifications/NotificationCenter.h:
40026         (NotificationCenter):
40027         * bindings/scripts/CodeGeneratorV8.pm:
40028         (GenerateHeader):
40029         (GenerateConstructorGetter):
40030         (GenerateImplementation):
40031         (GenerateToV8Converters):
40032         * bindings/v8/V8DOMWindowShell.cpp:
40033         (WebCore::V8DOMWindowShell::installDOMWindow):
40034         * bindings/v8/V8DOMWrapper.cpp:
40035         (WebCore::V8DOMWrapper::instantiateV8Object):
40036         * bindings/v8/V8PerContextData.cpp:
40037         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
40038         (WebCore::V8PerContextData::constructorForTypeSlowCase):
40039         * bindings/v8/V8PerContextData.h:
40040         (WebCore::V8PerContextData::createWrapperFromCache):
40041         (WebCore::V8PerContextData::constructorForType):
40042         (V8PerContextData):
40043         * bindings/v8/WorkerContextExecutionProxy.cpp:
40044         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
40045         * bindings/v8/WrapperTypeInfo.h:
40046         (WebCore):
40047         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
40048
40049 2012-10-19  Florin Malita  <fmalita@chromium.org>
40050
40051         Incorrect pattern scaling
40052         https://bugs.webkit.org/show_bug.cgi?id=99870
40053
40054         Reviewed by Dirk Schulze.
40055
40056         The pattern space transform scale should reflect the tile_size(user space)
40057         to tile_image_size ratio, instead of tile_size to absolute_tile_size.
40058
40059         Test: svg/custom/pattern-scaling.svg
40060
40061         * rendering/svg/RenderSVGResourcePattern.cpp:
40062         (WebCore::RenderSVGResourcePattern::applyResource):
40063
40064 2012-10-19  Tony Chang  <tony@chromium.org>
40065
40066         RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
40067         https://bugs.webkit.org/show_bug.cgi?id=97827
40068
40069         Reviewed by Ojan Vafai.
40070
40071         I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
40072         border and padding), so just add an assert.
40073
40074         No new tests, the assert is for code clarity.
40075
40076         * rendering/RenderFlexibleBox.cpp:
40077         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
40078
40079 2012-10-19  Tony Chang  <tony@chromium.org>
40080
40081         Replace calls to updateLogicalHeight with calls to computeLogicalHeight
40082         https://bugs.webkit.org/show_bug.cgi?id=99883
40083
40084         Reviewed by Ojan Vafai.
40085
40086         In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
40087         saving the old height, calling update logical height, then restoring the old height.
40088
40089         No new tests, this is just a refactoring.
40090
40091         * rendering/RenderBlock.cpp:
40092         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
40093         * rendering/RenderBox.cpp:
40094         (WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
40095         (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
40096         (WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.
40097
40098 2012-10-19  Pablo Flouret  <pablof@motorola.com>
40099
40100         Implement setRangeText() on text controls
40101         https://bugs.webkit.org/show_bug.cgi?id=91907
40102
40103         Reviewed by Kent Tamura.
40104
40105         setRangeText() replaces a range of text with some other text, and
40106         adjusts the existing selection according to its parameters.
40107
40108         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
40109
40110         Tests: fast/forms/color/color-setrangetext.html
40111                fast/forms/date/date-setrangetext.html
40112                fast/forms/datetime/datetime-setrangetext.html
40113                fast/forms/datetimelocal/datetimelocal-setrangetext.html
40114                fast/forms/file/file-setrangetext.html
40115                fast/forms/hidden/hidden-setrangetext.html
40116                fast/forms/image/image-setrangetext.html
40117                fast/forms/month/month-setrangetext.html
40118                fast/forms/number/number-setrangetext.html
40119                fast/forms/range/range-setrangetext.html
40120                fast/forms/search/search-setrangetext.html
40121                fast/forms/setrangetext.html
40122                fast/forms/textarea/textarea-setrangetext.html
40123                fast/forms/time/time-setrangetext.html
40124                fast/forms/week/week-setrangetext.html
40125
40126
40127         * bindings/scripts/CodeGeneratorGObject.pm:
40128         (SkipFunction):
40129             The GObject generator doesn't support function overloads, so skip the
40130             version of setRangeText() that has only one argument, its behavior
40131             can be emulated with the four-argument version.
40132
40133         * html/InputType.cpp:
40134         (WebCore::InputType::supportsSelectionAPI):
40135         (WebCore):
40136         * html/InputType.h:
40137         (InputType):
40138             Add supportsSelectionAPI() which indicates whether the various
40139             selection api functions like setRangeText, setSelectionRange, etc.
40140             are supported by this input element.
40141
40142         * html/BaseTextInputType.cpp:
40143         (WebCore::BaseTextInputType::supportsSelectionAPI):
40144         (WebCore):
40145         * html/BaseTextInputType.h:
40146         (BaseTextInputType):
40147             Text-based input types support the selection APIs.
40148
40149         * html/EmailInputType.cpp:
40150         (WebCore::EmailInputType::supportsSelectionAPI):
40151         (WebCore):
40152         * html/EmailInputType.h:
40153         (EmailInputType):
40154             Email inputs don't support the selection APIs.
40155
40156         * html/HTMLInputElement.cpp:
40157         (WebCore::HTMLInputElement::setRangeText):
40158         * html/HTMLInputElement.h:
40159         (HTMLInputElement):
40160             Add a setRangeText override which checks if it should apply to the
40161             input type, and calls the actual implementation on the parent class.
40162         * html/HTMLInputElement.idl:
40163         * html/HTMLTextAreaElement.idl:
40164
40165         * html/HTMLTextFormControlElement.cpp:
40166         (WebCore::HTMLTextFormControlElement::setRangeText):
40167         * html/HTMLTextFormControlElement.h:
40168         (HTMLTextFormControlElement):
40169             setRangeText implementation.
40170
40171
40172 2012-10-19  Luke Macpherson   <macpherson@chromium.org>
40173
40174         Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
40175         https://bugs.webkit.org/show_bug.cgi?id=99782
40176
40177         Reviewed by Sam Weinig.
40178
40179         Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
40180         to use it instead of adding a line to StyleBuilder.
40181         Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
40182         I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.
40183
40184         Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)
40185
40186         * css/StyleResolver.cpp:
40187         (WebCore):
40188         (WebCore::StyleResolver::applyProperty):
40189
40190 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40191
40192         IndexedDB: Hidden indexing events are visible to script via bubbling/capture
40193         https://bugs.webkit.org/show_bug.cgi?id=96566
40194
40195         Reviewed by Tony Chang.
40196
40197         Stop propagation of error events fired at internal indexing requests as a result of
40198         aborting, as they should not be visible to scripts.
40199
40200         Test: storage/indexeddb/index-population.html
40201
40202         * Modules/indexeddb/IDBObjectStore.cpp:
40203         (WebCore::IDBObjectStore::createIndex):
40204         * Modules/indexeddb/IDBRequest.cpp:
40205         (WebCore::IDBRequest::IDBRequest):
40206         (WebCore::IDBRequest::dispatchEvent):
40207         * Modules/indexeddb/IDBRequest.h:
40208         (WebCore::IDBRequest::preventPropagation):
40209         (IDBRequest):
40210
40211 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40212
40213         Remove .get() calls in assertions as suggested by Darin Adler.
40214         
40215         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40216         (PlatformCALayer::appendSublayer):
40217         (PlatformCALayer::insertSublayer):
40218         (PlatformCALayer::replaceSublayer):
40219
40220 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40221
40222         Fix a hang when combining tile cache layers with preserve-3d or reflections
40223         https://bugs.webkit.org/show_bug.cgi?id=99890
40224         <rdar://problem/12539560>
40225
40226         Reviewed by Dean Jackson.
40227
40228         The new tile cache code added an updateSublayers() call when switching to/from
40229         tiled layers. This confused later sublayer rebuilding, causing us to attempt to
40230         add a layer as a child of itself, causing a hang in CA.
40231         
40232         Fix by removing all the explicit calls to updateFoo when updating the structural
40233         layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
40234         on the fact that these flag-dirtying functions get called before the later functions
40235         that process those dirty flags. This is assured by some reordering of the update
40236         function calls.
40237         
40238         A final wrinkle is that ensureStructuralLayer() can change the layer that our
40239         parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
40240         list directly like we used to, just call noteSublayersChanged() on the parent, and have
40241         commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
40242         of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
40243         only do this work if a sublayer requested it).
40244         
40245         Tests: compositing/tiling/preserve3d-tiled.html
40246                compositing/tiling/reflected-tiled.html
40247
40248         * platform/graphics/ca/GraphicsLayerCA.cpp:
40249         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
40250         (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
40251         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
40252         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
40253         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40254         (PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
40255         (PlatformCALayer::insertSublayer): Ditto.
40256         (PlatformCALayer::replaceSublayer): Ditto.
40257
40258 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
40259
40260         AX: aria-hidden=false does not work as expected
40261         https://bugs.webkit.org/show_bug.cgi?id=98787
40262
40263         Reviewed by Beth Dakin.
40264
40265         ARIA requires that aria-hidden=false override an element's native visibility and include that
40266         node in the AX hierarchy.
40267
40268         To accomplish this we have to allow invisible items to be included, as well as items that
40269         have no renderers associated with them.
40270
40271         Test: accessibility/aria-hidden-negates-no-visibility.html
40272
40273         * accessibility/AXObjectCache.cpp:
40274         (WebCore::AXObjectCache::getOrCreate):
40275         * accessibility/AccessibilityARIAGrid.cpp:
40276         (WebCore::AccessibilityARIAGrid::addTableCellChild):
40277         (WebCore::AccessibilityARIAGrid::addChildren):
40278         * accessibility/AccessibilityARIAGrid.h:
40279         (AccessibilityARIAGrid):
40280         * accessibility/AccessibilityNodeObject.cpp:
40281         (WebCore):
40282        (WebCore::AccessibilityNodeObject::boundingBoxRect):
40283         (WebCore::AccessibilityNodeObject::insertChild):
40284         (WebCore::AccessibilityNodeObject::addChild):
40285         (WebCore::AccessibilityNodeObject::addChildren):
40286         (WebCore::AccessibilityNodeObject::textUnderElement):
40287         * accessibility/AccessibilityNodeObject.h:
40288         (AccessibilityNodeObject):
40289         * accessibility/AccessibilityObject.cpp:
40290         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
40291         (WebCore):
40292         * accessibility/AccessibilityObject.h:
40293         (AccessibilityObject):
40294         (WebCore::AccessibilityObject::addChild):
40295         (WebCore::AccessibilityObject::insertChild):
40296         * accessibility/AccessibilityRenderObject.cpp:
40297         (WebCore):
40298         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40299         (WebCore::AccessibilityRenderObject::addHiddenChildren):
40300         (WebCore::AccessibilityRenderObject::addChildren):
40301         * accessibility/AccessibilityRenderObject.h:
40302         (AccessibilityRenderObject):
40303
40304 2012-10-19  Michael Saboff  <msaboff@apple.com>
40305
40306         Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
40307         https://bugs.webkit.org/show_bug.cgi?id=99735
40308
40309         Reviewed by Filip Pizlo.
40310
40311         Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
40312         to chromium platform version of LinkHashChromium.cpp.
40313         Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
40314         new form.
40315
40316         No changes to functionality, so no new tests.
40317
40318         * WebCore.exp.in:
40319         * loader/HistoryController.cpp:
40320         (WebCore::addVisitedLink):
40321         * page/PageGroup.cpp:
40322         (WebCore::PageGroup::addVisitedLink):
40323         * platform/LinkHash.cpp:
40324         (WebCore::visitedLinkHashInline):
40325         (WebCore::visitedLinkHash):
40326         * platform/LinkHash.h:
40327         * platform/chromium/LinkHashChromium.cpp:
40328         (WebCore::visitedLinkHash):
40329
40330 2012-10-19  Michael Saboff  <msaboff@apple.com>
40331
40332         String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
40333         https://bugs.webkit.org/show_bug.cgi?id=99794
40334
40335         Reviewed by Filip Pizlo.
40336
40337         Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.
40338
40339         No new test, added 8 bit path.
40340
40341         * platform/text/cf/StringCF.cpp:
40342         (WTF::String::String):
40343
40344 2012-10-19  Dima Gorbik  <dgorbik@apple.com>
40345
40346         Page should be removed from the cache right after restore was called.
40347         https://bugs.webkit.org/show_bug.cgi?id=99737
40348
40349         Reviewed by Brady Eidson.
40350
40351         The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
40352         but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
40353         This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
40354         behavior in LayoutTests. All the current tests that exercise the page cache do pass.
40355
40356         No new tests.
40357
40358         * loader/FrameLoader.cpp:
40359         (WebCore::FrameLoader::commitProvisionalLoad):
40360
40361 2012-10-19  Max Vujovic  <mvujovic@adobe.com>
40362
40363         [WebGL] getUniformLocation fails for uniform array name without array brackets
40364         https://bugs.webkit.org/show_bug.cgi?id=99854
40365
40366         Reviewed by Dean Jackson.
40367
40368         Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
40369         location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
40370         returns the array location.
40371
40372         In the process of adding a check to the following Khronos WebGL conformance test:
40373         conformance/glsl/misc/glsl-long-variable-names.html
40374
40375         * platform/graphics/ANGLEWebKitBridge.cpp:
40376         (WebCore::getSymbolInfo):
40377             Before, we used to check that the symbol size was greater than one to determine that the
40378             symbol was an array. However, this doesn't identify arrays of length one. Now, we check
40379             if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
40380             names.
40381             If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
40382             name. We set the isArray flag on the symbol, so we don't lose the information that it is
40383             an array.
40384             Then, we create symbols for each array element like before. However, instead of
40385             replacing the "0" in array[0]" with each index, we take the base name "array" and
40386             append array brackets containing each index (e.g. "array" + "[7]").
40387         * platform/graphics/ANGLEWebKitBridge.h:
40388         (ANGLEShaderSymbol):
40389             Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
40390             anymore, this is the only way to identify arrays.
40391
40392 2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
40393
40394         Unreviewed, rolling out r131915.
40395         http://trac.webkit.org/changeset/131915
40396         https://bugs.webkit.org/show_bug.cgi?id=98787
40397
40398         It broke the build on platforms with \!HAVE(ACCESSIBILITY)
40399
40400         * accessibility/AXObjectCache.cpp:
40401         (WebCore::AXObjectCache::getOrCreate):
40402         (WebCore::AXObjectCache::nodeIsTextControl):
40403         * accessibility/AXObjectCache.h:
40404         (WebCore):
40405         * accessibility/AccessibilityARIAGrid.cpp:
40406         (WebCore::AccessibilityARIAGrid::addChild):
40407         (WebCore::AccessibilityARIAGrid::addChildren):
40408         * accessibility/AccessibilityARIAGrid.h:
40409         (AccessibilityARIAGrid):
40410         * accessibility/AccessibilityNodeObject.cpp:
40411         (WebCore::AccessibilityNodeObject::elementRect):
40412         (WebCore::AccessibilityNodeObject::addChildren):
40413         (WebCore::AccessibilityNodeObject::textUnderElement):
40414         * accessibility/AccessibilityNodeObject.h:
40415         (AccessibilityNodeObject):
40416         * accessibility/AccessibilityObject.cpp:
40417         * accessibility/AccessibilityObject.h:
40418         (AccessibilityObject):
40419         * accessibility/AccessibilityRenderObject.cpp:
40420         (WebCore::textIteratorBehaviorForTextRange):
40421         (WebCore):
40422         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40423         (WebCore::AccessibilityRenderObject::addChildren):
40424         * accessibility/AccessibilityRenderObject.h:
40425         (AccessibilityRenderObject):
40426
40427 2012-10-19  Tony Chang  <tony@chromium.org>
40428
40429         Unreviewed, rolling out r131936.
40430         http://trac.webkit.org/changeset/131936
40431         https://bugs.webkit.org/show_bug.cgi?id=99717
40432
40433         Broke the clang build
40434
40435         * WebCore.exp.in:
40436         * inspector/InspectorFrontendClient.h:
40437         (InspectorFrontendClient):
40438         * inspector/InspectorFrontendClientLocal.cpp:
40439         (WebCore::InspectorFrontendClientLocal::requestAttachWindow):
40440         (WebCore):
40441         (WebCore::InspectorFrontendClientLocal::requestDetachWindow):
40442         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40443         * inspector/InspectorFrontendClientLocal.h:
40444         (InspectorFrontendClientLocal):
40445         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40446         * inspector/InspectorFrontendHost.cpp:
40447         (WebCore::InspectorFrontendHost::requestAttachWindow):
40448         (WebCore):
40449         (WebCore::InspectorFrontendHost::requestDetachWindow):
40450         (WebCore::InspectorFrontendHost::requestSetDockSide):
40451         * inspector/InspectorFrontendHost.h:
40452         (InspectorFrontendHost):
40453         * inspector/InspectorFrontendHost.idl:
40454         * inspector/front-end/DockController.js:
40455         (WebInspector.DockController):
40456         (WebInspector.DockController.prototype.setDocked):
40457         (WebInspector.DockController.prototype._innerSetDocked.set if):
40458         (WebInspector.DockController.prototype._innerSetDocked):
40459         (WebInspector.DockController.prototype._updateUI.get states):
40460         (WebInspector.DockController.prototype._updateUI):
40461         (WebInspector.DockController.prototype._toggleDockState):
40462         * inspector/front-end/InspectorFrontendAPI.js:
40463         (InspectorFrontendAPI.setAttachedWindow):
40464         (InspectorFrontendAPI.setDockSide):
40465         * inspector/front-end/InspectorFrontendHostStub.js:
40466         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
40467         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
40468         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40469         * inspector/front-end/externs.js:
40470         (InspectorFrontendHostAPI.prototype.requestAttachWindow):
40471         (InspectorFrontendHostAPI.prototype.requestDetachWindow):
40472
40473 2012-10-09  Martin Robinson  <mrobinson@igalia.com>
40474
40475         REGRESSION (r130699): 5 various fast/ tests started failing
40476         https://bugs.webkit.org/show_bug.cgi?id=98729
40477
40478         Reviewed by Xan Lopez.
40479
40480         Do not try to remove the URL fragment for data URLs. This will likely
40481         just corrupt the URL.
40482
40483         No new tests. This unskips some previously failing tests.
40484
40485         * platform/network/soup/ResourceRequestSoup.cpp:
40486         (WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.
40487
40488 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40489
40490         Use tile caches in place of CATiledLayer
40491         https://bugs.webkit.org/show_bug.cgi?id=99806
40492         <rdar://problem/6474145>
40493
40494         Reviewed by Tim Horton.
40495
40496         Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
40497         layers that exceed the 2000px size threshold.
40498
40499         * platform/graphics/TiledBacking.h:
40500         (TiledBacking): Have normal getter and setter for the visible rect.
40501         * platform/graphics/ca/GraphicsLayerCA.cpp:
40502         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
40503         to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
40504         our current visible rect, which result in no tile area work.
40505         (WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
40506         return the rect, for clarity.
40507         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
40508         visible rect, and use the change flags mechanism to ensure that we recompute
40509         tile areas later.
40510         When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
40511         its own visible rect as the old visible rect.
40512         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
40513         oldVisibleRect so that updateVisibleRect() can use this to see how the
40514         visibleRect is changing.
40515         (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
40516         compares the old and new visible rects, and extends the tile coverage area
40517         in directions where more content is being exposed. It takes care to avoid
40518         "jitter" in the visible rect deltas causing edge tiles to get created then
40519         destroyed by keeping any extra padding that already exists in a direction
40520         where more content is being exposed.
40521         (WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
40522         and use the result to update the TiledBacking's visibleRect.
40523         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
40524         LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
40525         cache layers involve adding an extra layer to the hierarchy (the tile container),
40526         we call updateSublayerList() when changing layer type.
40527         * platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
40528         that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
40529         size changes.
40530         (WebCore::GraphicsLayerCA::visibleRect):
40531         * platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
40532         * platform/graphics/ca/mac/TileCache.mm:
40533         (WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
40534         * rendering/RenderLayerCompositor.cpp:
40535         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
40536         for pages in the page cache, for which the root layer is unattached.
40537         (WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
40538         to setVisibleRect().
40539
40540 2012-10-19  Beth Dakin  <bdakin@apple.com>
40541
40542         https://bugs.webkit.org/show_bug.cgi?id=99768
40543         We should limit the tile cache coverage when a page can't take 
40544         advantage of fast tile scrolling anyway
40545
40546         Reviewed by Simon Fraser.
40547
40548         When sites can't use fast-scrolling, there is no need to inflate the 
40549         tile cache. In fact, we get a performance boost by keeping it small 
40550         on painting-intensive sites. 
40551
40552         Instead of just looking a whether or not the FrameView 
40553         canHaveScrollbar(), consult 
40554         shouldUpdateScrollLayerPositionOnMainThread().
40555         * page/FrameView.cpp:
40556         (WebCore::FrameView::performPostLayoutTasks):
40557         * rendering/RenderLayerBacking.cpp:
40558         (WebCore::RenderLayerBacking::RenderLayerBacking):
40559         
40560         Expose shouldUpdateScrollLayerPositionOnMainThread().
40561         * page/scrolling/ScrollingCoordinator.cpp:
40562         (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
40563         (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
40564         (WebCore):
40565         (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
40566         * page/scrolling/ScrollingCoordinator.h:
40567         (ScrollingCoordinator):
40568
40569         Bug fix. Should be bitwise and.
40570         * platform/graphics/ca/mac/TileCache.mm:
40571         (WebCore::TileCache::tileCoverageRect):
40572
40573 2012-10-19  Mark Lam  <mark.lam@apple.com>
40574
40575         Added WTF::StackStats mechanism.
40576         https://bugs.webkit.org/show_bug.cgi?id=99805.
40577
40578         Reviewed by Geoffrey Garen.
40579
40580         Added StackStats probes in layout methods.
40581
40582         * dom/Document.cpp:
40583         (WebCore::Document::updateLayout):
40584         * rendering/RenderBlock.cpp:
40585         (WebCore::RenderBlock::layout):
40586         * rendering/RenderBox.cpp:
40587         (WebCore::RenderBox::layout):
40588         * rendering/RenderDialog.cpp:
40589         (WebCore::RenderDialog::layout):
40590         * rendering/RenderEmbeddedObject.cpp:
40591         (WebCore::RenderEmbeddedObject::layout):
40592         * rendering/RenderFlowThread.cpp:
40593         (WebCore::RenderFlowThread::layout):
40594         * rendering/RenderFrameSet.cpp:
40595         (WebCore::RenderFrameSet::layout):
40596         * rendering/RenderIFrame.cpp:
40597         (WebCore::RenderIFrame::layout):
40598         * rendering/RenderImage.cpp:
40599         (WebCore::RenderImage::layout):
40600         * rendering/RenderListBox.cpp:
40601         (WebCore::RenderListBox::layout):
40602         * rendering/RenderListItem.cpp:
40603         (WebCore::RenderListItem::layout):
40604         * rendering/RenderListMarker.cpp:
40605         (WebCore::RenderListMarker::layout):
40606         * rendering/RenderMedia.cpp:
40607         (WebCore::RenderMedia::layout):
40608         * rendering/RenderObject.cpp:
40609         (WebCore::RenderObject::layout):
40610         * rendering/RenderObject.h:
40611         * rendering/RenderRegion.cpp:
40612         (WebCore::RenderRegion::layout):
40613         * rendering/RenderReplaced.cpp:
40614         (WebCore::RenderReplaced::layout):
40615         * rendering/RenderReplica.cpp:
40616         (WebCore::RenderReplica::layout):
40617         * rendering/RenderRubyRun.cpp:
40618         (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
40619         * rendering/RenderScrollbarPart.cpp:
40620         (WebCore::RenderScrollbarPart::layout):
40621         * rendering/RenderSlider.cpp:
40622         (WebCore::RenderSlider::layout):
40623         * rendering/RenderTable.cpp:
40624         (WebCore::RenderTable::layout):
40625         * rendering/RenderTableCell.cpp:
40626         (WebCore::RenderTableCell::layout):
40627         * rendering/RenderTableRow.cpp:
40628         (WebCore::RenderTableRow::layout):
40629         * rendering/RenderTableSection.cpp:
40630         (WebCore::RenderTableSection::layout):
40631         * rendering/RenderTextControlSingleLine.cpp:
40632         (WebCore::RenderTextControlSingleLine::layout):
40633         * rendering/RenderTextTrackCue.cpp:
40634         (WebCore::RenderTextTrackCue::layout):
40635         * rendering/RenderVideo.cpp:
40636         (WebCore::RenderVideo::layout):
40637         * rendering/RenderView.cpp:
40638         (WebCore::RenderView::layout):
40639         * rendering/RenderWidget.cpp:
40640         (WebCore::RenderWidget::layout):
40641         * rendering/svg/RenderSVGContainer.cpp:
40642         (WebCore::RenderSVGContainer::layout):
40643         * rendering/svg/RenderSVGForeignObject.cpp:
40644         (WebCore::RenderSVGForeignObject::layout):
40645         * rendering/svg/RenderSVGGradientStop.cpp:
40646         (WebCore::RenderSVGGradientStop::layout):
40647         * rendering/svg/RenderSVGHiddenContainer.cpp:
40648         (WebCore::RenderSVGHiddenContainer::layout):
40649         * rendering/svg/RenderSVGImage.cpp:
40650         (WebCore::RenderSVGImage::layout):
40651         * rendering/svg/RenderSVGResourceContainer.cpp:
40652         (WebCore::RenderSVGResourceContainer::layout):
40653         * rendering/svg/RenderSVGResourceMarker.cpp:
40654         (WebCore::RenderSVGResourceMarker::layout):
40655         * rendering/svg/RenderSVGRoot.cpp:
40656         (WebCore::RenderSVGRoot::layout):
40657         * rendering/svg/RenderSVGShape.cpp:
40658         (WebCore::RenderSVGShape::layout):
40659         * rendering/svg/RenderSVGText.cpp:
40660         (WebCore::RenderSVGText::layout):
40661
40662 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
40663
40664         Web Inspector: merge "docked" state into the "dock side" enum.
40665         https://bugs.webkit.org/show_bug.cgi?id=99717
40666
40667         Reviewed by Vsevolod Vlasov.
40668
40669         Otherwise, it is hard to manage these inter-dependent flags.
40670
40671         * inspector/InspectorFrontendClient.h:
40672         (InspectorFrontendClient):
40673         * inspector/InspectorFrontendClientLocal.cpp:
40674         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40675         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40676         * inspector/InspectorFrontendClientLocal.h:
40677         (InspectorFrontendClientLocal):
40678         * inspector/InspectorFrontendHost.cpp:
40679         (WebCore::InspectorFrontendHost::requestSetDockSide):
40680         * inspector/InspectorFrontendHost.h:
40681         (InspectorFrontendHost):
40682         * inspector/InspectorFrontendHost.idl:
40683         * inspector/front-end/DockController.js:
40684         (WebInspector.DockController):
40685         (WebInspector.DockController.prototype._updateUI.get sides):
40686         (WebInspector.DockController.prototype._updateUI):
40687         (WebInspector.DockController.prototype._toggleDockState):
40688         * inspector/front-end/InspectorFrontendAPI.js:
40689         (InspectorFrontendAPI.setAttachedWindow):
40690         * inspector/front-end/InspectorFrontendHostStub.js:
40691         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40692
40693 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40694
40695         [V8] IndexedDB: Crash when lazy-indexing Date keys
40696         https://bugs.webkit.org/show_bug.cgi?id=99860
40697
40698         Reviewed by Adam Barth.
40699
40700         Missing a scope/context needed when digging values out of Date objects
40701         in an indexing callback.
40702
40703         Test: storage/indexeddb/lazy-index-types.html
40704
40705         * bindings/v8/IDBBindingUtilities.cpp:
40706         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
40707
40708 2012-10-18  Dean Jackson  <dino@apple.com>
40709
40710         Shader translator needs option to clamp uniform array accesses in vertex shaders
40711         https://bugs.webkit.org/show_bug.cgi?id=98977
40712         https://code.google.com/p/angleproject/issues/detail?id=49
40713
40714         Reviewed by Alok Priyadarshi and Ken Russell.
40715
40716         WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
40717         ensure that non-direct array indexing is clamped to the bounds of the array.
40718
40719         Test: fast/canvas/webgl/array-bounds-clamping.html
40720
40721         * platform/graphics/ANGLEWebKitBridge.cpp:
40722         (WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS
40723
40724 2012-10-19  Justin Novosad  <junov@chromium.org>
40725
40726         [Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
40727         https://bugs.webkit.org/show_bug.cgi?id=99856
40728
40729         Reviewed by Stephen White.
40730
40731         Marking internal bitmap copy as immutable to prevent it from being
40732         unnecessarily duplicated in skia by SkBitmapHeap.
40733
40734         No new tests: code path already well covered by existing layout tests 
40735         fast/canvas/canvas-pattern-*
40736
40737         * platform/graphics/skia/PatternSkia.cpp:
40738         (WebCore::Pattern::platformPattern):
40739
40740 2012-10-19  Antti Koivisto  <antti@apple.com>
40741
40742         Maintain a list of active CSS stylesheets
40743         https://bugs.webkit.org/show_bug.cgi?id=99843
40744
40745         Reviewed by Andreas Kling.
40746
40747         Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. 
40748         This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining 
40749         a list of active CSS stylesheets separately simplifies code in number of places.
40750
40751         * css/StyleResolver.cpp:
40752         (WebCore::StyleResolver::StyleResolver):
40753         (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
40754         (WebCore::StyleResolver::appendAuthorStyleSheets):
40755         (WebCore::collectCSSOMWrappers):
40756         * css/StyleResolver.h:
40757         (StyleResolver):
40758         * css/StyleSheetList.cpp:
40759         (WebCore::StyleSheetList::styleSheets):
40760         (WebCore::StyleSheetList::detachFromDocument):
40761         * dom/Document.cpp:
40762         (WebCore::Document::setCompatibilityMode):
40763         * dom/DocumentStyleSheetCollection.cpp:
40764         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
40765         (WebCore::styleSheetsUseRemUnits):
40766         (WebCore::filterEnabledCSSStyleSheets):
40767         (WebCore):
40768         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
40769         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
40770         * dom/DocumentStyleSheetCollection.h:
40771         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
40772         (DocumentStyleSheetCollection):
40773         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
40774
40775 2012-09-08  Alpha Lam  <hclam@chromium.org>
40776
40777         [chromium] Implement deferred image decoding
40778         https://bugs.webkit.org/show_bug.cgi?id=94240
40779
40780         Reviewed by Stephen White.
40781
40782         Objectives:
40783
40784         To record image decoding operations during painting and to defer
40785         decoding operations until rasterization.
40786
40787         Rationale:
40788
40789         This is a key feature that enables impl-side painting which requires
40790         fast recording of drawing operations. The existing decode-on-draw
40791         restricts that recording has to block on expensive decoding operations.
40792         This change allows recording of image decoding operations during paint
40793         time.
40794
40795         Design:
40796
40797         Image decoding happens when a BitmapImage is drawn into a
40798         GraphicsContext. When per-tile painting is enabled GraphicsContext
40799         is backed by SkCanvas in recording mode. This SkCanvas records drawing
40800         and image decoding operations to minimize recording time.
40801
40802         An image decoding operation is recorded as a SkPixelRef object
40803         implemented by LazyDecodingPixelRef. This object references raw encoded
40804         data, regions to be decoded and scaling information.
40805
40806         When used in conjunction with per-tile painting this feature defers
40807         image decoding until the SkCanvas referencing the image is rasterized.
40808
40809         Both recording and rasterization happen on the main thread.
40810
40811         Performance Impact:
40812
40813         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
40814         and does not have an impact when disabled.
40815
40816         This feature is disabled by default.
40817
40818         Upcoming Changes:
40819
40820         1. Implement a full-featured image cache in ImageDecodingStore.
40821         2. Allow rasterization and decoding on impl thread.
40822
40823         Classes Involved:
40824
40825         BitmapImage
40826
40827         BitmapImage is the entry point for deferred image decoding. When
40828         drawing a BitmapImage into a GraphicsContext it makes a request to
40829         create a NativeImageSkia. We substitute the content in NativeImageSkia
40830         such that it is lazily decoded.
40831
40832         DeferredImageDecoder
40833
40834         This is the platform implementation of a image decoder for Chromium.
40835         This is a bridge layer that either delegates calls to the actual
40836         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
40837         to ImageDecodingStore.
40838
40839         ImageDecodingStore
40840
40841         This object manages all encoded images. It keeps track of encoded
40842         data and the corresponding ImageDecoder for doing actual decoding. It
40843         is also responsible for generating lazily decoded SkBitmaps. This
40844         SkBitmap contains a LazyDecodingPixelRef object which references to an
40845         image entry in ImageDecodingStore.
40846
40847         ScaledImageFragment
40848
40849         A container for a scaled image fragment. In addition to bitmap pixels
40850         it contains information about the ID of the image, scale and clipping.
40851
40852         ImageFrameGenerator
40853
40854         This object is responsible for generating decoded pixels. It is also
40855         a container for encoded image data and corresponding image decoder.
40856
40857         LazyDecodingPixelRef
40858
40859         This object is embedded in a SkBitmap to enable lazy decoding. When
40860         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
40861         contains information to locate an image and scaling info, these
40862         information is submitted to ImageDecodingStore to access actual pixels.
40863
40864         Layout tests. There are about 80 tests in this virtual test suite
40865         running this feature in this directory:
40866
40867         platform/chromium/virtual/deferred/fast/images
40868
40869         Unit tests. Added DeferredImageDecoderTest to verify deferred
40870         image decoding behavior.
40871
40872         * WebCore.gypi:
40873         * platform/graphics/ImageSource.cpp:
40874         (WebCore::ImageSource::setData):
40875         * platform/graphics/ImageSource.h:
40876         (WebCore):
40877         (ImageSource):
40878         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
40879         (WebCore):
40880         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
40881         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
40882         (WebCore::DeferredImageDecoder::create):
40883         (WebCore::DeferredImageDecoder::createForTesting):
40884         (WebCore::DeferredImageDecoder::filenameExtension):
40885         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
40886         (WebCore::DeferredImageDecoder::setData):
40887         (WebCore::DeferredImageDecoder::isSizeAvailable):
40888         (WebCore::DeferredImageDecoder::size):
40889         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
40890         (WebCore::DeferredImageDecoder::frameCount):
40891         (WebCore::DeferredImageDecoder::repetitionCount):
40892         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
40893         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
40894         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
40895         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
40896         (WebCore):
40897         (DeferredImageDecoder):
40898         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
40899         (WebCore::ImageDecodingStore::ImageDecodingStore):
40900         (WebCore):
40901         (WebCore::ImageDecodingStore::~ImageDecodingStore):
40902         (WebCore::ImageDecodingStore::instanceOnMainThread):
40903         (WebCore::ImageDecodingStore::initializeOnMainThread):
40904         (WebCore::ImageDecodingStore::shutdown):
40905         (WebCore::ImageDecodingStore::isLazyDecoded):
40906         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
40907         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
40908         (WebCore::ImageDecodingStore::setData):
40909         (WebCore::ImageDecodingStore::lockPixels):
40910         (WebCore::ImageDecodingStore::unlockPixels):
40911         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
40912         (WebCore::ImageDecodingStore::calledOnValidThread):
40913         (WebCore::ImageDecodingStore::lookupFrameCache):
40914         (WebCore::ImageDecodingStore::deleteFrameCache):
40915         * platform/graphics/chromium/ImageDecodingStore.h: Added.
40916         (WebCore):
40917         (ImageDecodingStore):
40918         (WebCore::ImageDecodingStore::create):
40919         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
40920         (WebCore):
40921         (WebCore::ScaledImageFragment::~ScaledImageFragment):
40922         (WebCore::ScaledImageFragment::ScaledImageFragment):
40923         (WebCore::ScaledImageFragment::isEqual):
40924         * platform/graphics/chromium/ScaledImageFragment.h: Added.
40925         (WebCore):
40926         (ScaledImageFragment):
40927         (WebCore::ScaledImageFragment::create):
40928         (WebCore::ScaledImageFragment::bitmap):
40929         (WebCore::ScaledImageFragment::isComplete):
40930         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
40931         (WebCore):
40932         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
40933         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
40934         (WebCore::ImageFrameGenerator::decoder):
40935         (WebCore::ImageFrameGenerator::setData):
40936         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
40937         (WebCore):
40938         (ImageFrameGenerator):
40939         (WebCore::ImageFrameGenerator::create):
40940         (WebCore::ImageFrameGenerator::size):
40941         (WebCore::ImageFrameGenerator::imageId):
40942         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
40943         (WebCore):
40944         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
40945         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
40946         (WebCore::LazyDecodingPixelRef::isScaled):
40947         (WebCore::LazyDecodingPixelRef::isClipped):
40948         (WebCore::LazyDecodingPixelRef::onLockPixels):
40949         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
40950         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
40951         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
40952         (WebCore):
40953         (LazyDecodingPixelRef):
40954         (WebCore::LazyDecodingPixelRef::frameGenerator):
40955         * platform/graphics/skia/NativeImageSkia.cpp:
40956         (WebCore::NativeImageSkia::resizedBitmap):
40957         * platform/image-decoders/ImageDecoder.h:
40958         (ImageFrame):
40959         (WebCore::ImageFrame::setSkBitmap):
40960         (WebCore::ImageFrame::getSkBitmap):
40961
40962 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
40963
40964         [EFL] GraphicsContext3D::m_renderStyle is not initialized
40965         https://bugs.webkit.org/show_bug.cgi?id=99721
40966
40967         Reviewed by Antonio Gomes.
40968
40969         Initialize GraphicsContext3D::m_renderStyle.
40970
40971         No new tests, no new functionality.
40972
40973         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
40974         (WebCore::GraphicsContext3D::GraphicsContext3D):
40975
40976 2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>
40977
40978         Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
40979         https://bugs.webkit.org/show_bug.cgi?id=99804
40980
40981         Reviewed by Julien Chaffraix.
40982
40983         CSS3 text related properties will be implemented under this flag,
40984         including text decoration, text-align-last, and text-justify.
40985
40986         No new functionality, no new test.
40987
40988         * Configurations/FeatureDefines.xcconfig:
40989         * GNUmakefile.am:
40990         * GNUmakefile.features.am:
40991         * css/CSSComputedStyleDeclaration.cpp:
40992         (WebCore):
40993         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
40994         * css/CSSParser.cpp:
40995         (WebCore::CSSParser::parseValue):
40996         (WebCore::CSSParser::addTextDecorationProperty):
40997         (WebCore::CSSParser::parseTextDecoration):
40998         * css/CSSPrimitiveValueMappings.h:
40999         (WebCore):
41000         * css/CSSProperty.cpp:
41001         (WebCore::CSSProperty::isInheritedProperty):
41002         * css/CSSPropertyNames.in:
41003         * css/CSSValueKeywords.in:
41004         * css/StyleBuilder.cpp:
41005         (WebCore::StyleBuilder::StyleBuilder):
41006         * css/StyleResolver.cpp:
41007         (WebCore::StyleResolver::applyProperty):
41008         * rendering/style/RenderStyle.cpp:
41009         (WebCore::RenderStyle::diff):
41010         * rendering/style/RenderStyle.h:
41011         * rendering/style/RenderStyleConstants.h:
41012         (WebCore):
41013         * rendering/style/StyleRareNonInheritedData.cpp:
41014         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
41015         (WebCore::StyleRareNonInheritedData::operator==):
41016         * rendering/style/StyleRareNonInheritedData.h:
41017         (StyleRareNonInheritedData):
41018
41019 2012-10-19  Nate Chapin  <japhet@chromium.org>
41020
41021         Reorder some functions in SubresourceLoader to permit main resources
41022         https://bugs.webkit.org/show_bug.cgi?id=99769
41023
41024         Reviewed by Adam Barth.
41025
41026         Most resource types that go through the memory cache (and therefore
41027         through SubresourceLoader) are not sensitive to the exact ordering of
41028         the callbacks they receive, particularly as it relates to ResourceLoadNotifier
41029         calls.  Main resources are not so lenient.  For main resources to be cacheable
41030         and maintain the current behavior as precisely as possible, we will need to
41031         rearrange SubresourceLoader's willSendRequest() and didReceiveData().
41032
41033         No new tests, refactor only.
41034
41035         * loader/SubresourceLoader.cpp:
41036         (WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
41037             in the request being canceled, plus calls to CachedResource::willSendRequest() and
41038             ResourceLoader::willSendRequest().  MainResourceLoader (which will be a
41039             CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
41040             is called, but the calls are out of order for that, so swap those.
41041         (WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
41042             before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
41043             before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.
41044
41045 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
41046
41047         AX: aria-hidden=false does not work as expected
41048         https://bugs.webkit.org/show_bug.cgi?id=98787
41049
41050         Reviewed by Beth Dakin.
41051
41052         ARIA requires that aria-hidden=false override an element's native visibility and include that
41053         node in the AX hierarchy.
41054  
41055         To accomplish this we have to allow invisible items to be included, as well as items that
41056         have no renderers associated with them.
41057
41058         Test: accessibility/aria-hidden-negates-no-visibility.html
41059
41060         * accessibility/AXObjectCache.cpp:
41061         (WebCore::AXObjectCache::getOrCreate):
41062         * accessibility/AccessibilityARIAGrid.cpp:
41063         (WebCore::AccessibilityARIAGrid::addTableCellChild):
41064         (WebCore::AccessibilityARIAGrid::addChildren):
41065         * accessibility/AccessibilityARIAGrid.h:
41066         (AccessibilityARIAGrid):
41067         * accessibility/AccessibilityNodeObject.cpp:
41068         (WebCore):
41069         (WebCore::AccessibilityNodeObject::boundingBoxRect):
41070         (WebCore::AccessibilityNodeObject::insertChild):
41071         (WebCore::AccessibilityNodeObject::addChild):
41072         (WebCore::AccessibilityNodeObject::addChildren):
41073         (WebCore::AccessibilityNodeObject::textUnderElement):
41074         * accessibility/AccessibilityNodeObject.h:
41075         (AccessibilityNodeObject):
41076         * accessibility/AccessibilityObject.cpp:
41077         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
41078         (WebCore):
41079         * accessibility/AccessibilityObject.h:
41080         (AccessibilityObject):
41081         (WebCore::AccessibilityObject::addChild):
41082         (WebCore::AccessibilityObject::insertChild):
41083         * accessibility/AccessibilityRenderObject.cpp:
41084         (WebCore):
41085         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
41086         (WebCore::AccessibilityRenderObject::addHiddenChildren):
41087         (WebCore::AccessibilityRenderObject::addChildren):
41088         * accessibility/AccessibilityRenderObject.h:
41089         (AccessibilityRenderObject):
41090
41091 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41092
41093         MediaStream API: Rename owner to client in MediaStreamDescriptor
41094         https://bugs.webkit.org/show_bug.cgi?id=99593
41095
41096         Reviewed by Adam Barth.
41097
41098         This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.
41099
41100         No new tests needed, covered by existing tests.
41101
41102         * Modules/mediastream/MediaStream.cpp:
41103         (WebCore::MediaStream::MediaStream):
41104         (WebCore::MediaStream::~MediaStream):
41105         * Modules/mediastream/MediaStream.h:
41106         (MediaStream):
41107         * Modules/mediastream/PeerConnection00.cpp:
41108         (WebCore::PeerConnection00::didRemoveRemoteStream):
41109         * Modules/mediastream/RTCPeerConnection.cpp:
41110         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
41111         * platform/mediastream/MediaStreamCenter.cpp:
41112         (WebCore::MediaStreamCenter::endLocalMediaStream):
41113         (WebCore::MediaStreamCenter::addMediaStreamTrack):
41114         (WebCore::MediaStreamCenter::removeMediaStreamTrack):
41115         * platform/mediastream/MediaStreamDescriptor.h:
41116         (WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
41117         (WebCore::MediaStreamDescriptor::client):
41118         (WebCore::MediaStreamDescriptor::setClient):
41119         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
41120         (MediaStreamDescriptor):
41121
41122 2012-10-19  Shinya Kawanaka  <shinyak@chromium.org>
41123
41124         Elements assigned to <shadow> should not be reprojected.
41125         https://bugs.webkit.org/show_bug.cgi?id=99680
41126
41127         Reviewed by Dimitri Glazkov.
41128
41129         In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
41130         reprojected to content. However, we can select them by <shadow>.
41131
41132         Tests: fast/dom/shadow/content-reprojection-complex.html
41133                fast/dom/shadow/content-reprojection-shadow.html
41134                fast/dom/shadow/shadow-reprojection-prohibited.html
41135
41136         * html/shadow/ContentDistributor.cpp:
41137         (WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
41138         to POOL. Instead, <shadow> itself should be added to POOL.
41139         * html/shadow/HTMLContentElement.h:
41140         (WebCore::isHTMLContentElement):
41141         (WebCore):
41142
41143 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
41144
41145         VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
41146         https://bugs.webkit.org/show_bug.cgi?id=96325
41147
41148         Reviewed by Beth Dakin.
41149
41150          When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
41151          modifies the original findLegend method to take a parameter to determine what should be done.
41152
41153         Test: accessibility/hidden-legend.html
41154
41155         * accessibility/AccessibilityRenderObject.cpp:
41156         (WebCore::AccessibilityRenderObject::titleUIElement):
41157         * rendering/RenderFieldset.cpp:
41158         (WebCore::RenderFieldset::findLegend):
41159         * rendering/RenderFieldset.h:
41160
41161 2012-10-17  Chris Fleizach  <cfleizach@apple.com>
41162
41163         AX: Refactor accessibility name computation so it's more platform independent
41164         https://bugs.webkit.org/show_bug.cgi?id=99502
41165
41166         Reviewed by Beth Dakin.
41167
41168         The current model of determining the accessible text for an object has a lot of Mac biases built in
41169         due to legacy implementation. 
41170
41171         This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
41172         allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
41173         http://www.w3.org/TR/wai-aria/roles#textalternativecomputation
41174
41175         This change tried very hard not to change any test behavior, even though it exposed a number of weird
41176         edge cases where we were treating attributes differently based on element type. 
41177
41178         Future patches will resolve those discrepancies.
41179
41180         * accessibility/AccessibilityImageMapLink.cpp:
41181         (WebCore::AccessibilityImageMapLink::accessibilityText):
41182         * accessibility/AccessibilityImageMapLink.h:
41183         (AccessibilityImageMapLink):
41184         * accessibility/AccessibilityMediaControls.cpp:
41185         (WebCore::AccessibilityMediaControl::accessibilityText):
41186         * accessibility/AccessibilityMediaControls.h:
41187         (AccessibilityMediaControl):
41188         (WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
41189         * accessibility/AccessibilityNodeObject.cpp:
41190         (WebCore::AccessibilityNodeObject::titleElementText):
41191         (WebCore::AccessibilityNodeObject::accessibilityText):
41192         (WebCore::AccessibilityNodeObject::ariaLabeledByText):
41193         (WebCore::AccessibilityNodeObject::alternativeText):
41194         (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
41195         (WebCore::AccessibilityNodeObject::visibleText):
41196         (WebCore::AccessibilityNodeObject::helpText):
41197         (WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
41198         * accessibility/AccessibilityNodeObject.h:
41199         (AccessibilityNodeObject):
41200         * accessibility/AccessibilityObject.h:
41201         (AccessibilityText):
41202         (WebCore::AccessibilityText::AccessibilityText):
41203         (WebCore::AccessibilityObject::isMediaControlLabel):
41204         (AccessibilityObject):
41205         (WebCore::AccessibilityObject::accessibilityText):
41206         (WebCore::AccessibilityObject::setAccessibleName):
41207         (WebCore::AccessibilityObject::accessibilityDescription):
41208         (WebCore::AccessibilityObject::title):
41209         (WebCore::AccessibilityObject::helpText):
41210         (WebCore::AccessibilityObject::stringValue):
41211         (WebCore::AccessibilityObject::textUnderElement):
41212         (WebCore::AccessibilityObject::text):
41213         (WebCore::AccessibilityObject::textLength):
41214         (WebCore::AccessibilityObject::setRoleValue):
41215         (WebCore::AccessibilityObject::roleValue):
41216         (WebCore::AccessibilityObject::selection):
41217         (WebCore::AccessibilityObject::hierarchicalLevel):
41218         * accessibility/AccessibilityRenderObject.cpp:
41219         * accessibility/AccessibilityRenderObject.h:
41220         (AccessibilityRenderObject):
41221         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41222         (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
41223         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
41224         (-[WebAccessibilityObjectWrapper accessibilityDescription]):
41225         (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
41226         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
41227         * platform/LocalizedStrings.cpp:
41228         (WebCore::localizedMediaControlElementHelpText):
41229
41230 2012-10-19  Kent Tamura  <tkent@chromium.org>
41231
41232         Use Localizer::monthFormat to construct input[type=month] UI
41233         https://bugs.webkit.org/show_bug.cgi?id=99818
41234
41235         Reviewed by Kentaro Hara.
41236
41237         Use an LDML format returned by Localizer::monthFormat for
41238         input[type=month] UI.
41239
41240         Because the format may contain symbolic month names and symbolic
41241         stand-alone month names, we need to add:
41242          - Symbolic/numeric detection in DateTimeEditBuilder
41243          - Normal/stand-alone detection in DateTimeEditBuilder
41244          - Symbolic edit field for months
41245
41246         Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
41247               fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
41248
41249         * html/MonthInputType.cpp:
41250         (WebCore::MonthInputType::setupLayoutParameters):
41251         Use Localizer::monthFormat.
41252
41253         * html/shadow/DateTimeEditElement.cpp:
41254         (WebCore::DateTimeEditBuilder::visitField):
41255         - If the number of continuous field character is greater than 2, use
41256         DateTimeSymbolicMonthFieldElement.
41257         - Supports stand-alone month field.
41258
41259         * html/shadow/DateTimeFieldElements.h:
41260         (DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
41261         * html/shadow/DateTimeFieldElements.cpp:
41262         (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
41263         Added.
41264         (WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
41265         (WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
41266         We need to add 1 because the internal integer representation is 0-based
41267         and DateTimeFieldsState uses 1-based month.
41268         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
41269         DateComponents::month is 0-based.
41270         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
41271         We need to subtract 1 because the internal integer representation is 0-based
41272         and DateTimeFieldsState uses 1-based month.
41273
41274         * html/shadow/DateTimeSymbolicFieldElement.h:
41275         (WebCore::DateTimeSymbolicFieldElement::symbolsSize):
41276         Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.
41277
41278 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41279
41280         Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
41281         https://bugs.webkit.org/show_bug.cgi?id=99519
41282
41283         Reviewed by Alexander Pavlov.
41284
41285         Extracted _styleContentSet callback in a class method to make it sniffable by tests.
41286
41287         * inspector/front-end/StylesSourceMapping.js:
41288         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
41289         (WebInspector.StyleFile.prototype._styleContentSet):
41290
41291 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
41292
41293         Web Inspector: add object-src 'none' to the inspector.html
41294         https://bugs.webkit.org/show_bug.cgi?id=99728
41295
41296         Reviewed by Vsevolod Vlasov.
41297
41298         * inspector/front-end/inspector.html:
41299
41300 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41301
41302         Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
41303         https://bugs.webkit.org/show_bug.cgi?id=99823
41304
41305         Reviewed by Yury Semikhatsky.
41306
41307         Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.
41308
41309         * inspector/front-end/ResourceScriptMapping.js:
41310         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
41311         * inspector/front-end/ScriptSnippetModel.js:
41312         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
41313         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
41314         * inspector/front-end/ScriptsNavigator.js:
41315         (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
41316         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
41317         * inspector/front-end/ScriptsPanel.js:
41318         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
41319         * inspector/front-end/Workspace.js:
41320         (WebInspector.Project.prototype.addTemporaryUISourceCode):
41321
41322 2012-10-19  Alexander Pavlov  <apavlov@chromium.org>
41323
41324         Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
41325         https://bugs.webkit.org/show_bug.cgi?id=99729
41326
41327         Reviewed by Vsevolod Vlasov.
41328
41329         Decode only the first line number digit written in a six-character escaped Unicode format.
41330
41331         * inspector/front-end/SASSSourceMapping.js:
41332         (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
41333         (WebInspector.SASSSourceMapping.prototype._resourceAdded):
41334
41335 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41336
41337         MediaStream API: Update the RuntimeEnabledFeatures flags
41338         https://bugs.webkit.org/show_bug.cgi?id=99714
41339
41340         Reviewed by Adam Barth.
41341
41342         Updating the RuntimeEnabledFeatures flags to match reality:
41343         isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
41344         isDeprecatedPeerConnectionEnabled false.
41345
41346         Patch covered by existing tests.
41347
41348         * bindings/generic/RuntimeEnabledFeatures.cpp:
41349         (WebCore):
41350
41351 2012-10-19  Adam Barth  <abarth@webkit.org>
41352
41353         [V8] Simplify GCPrologueVisitor
41354         https://bugs.webkit.org/show_bug.cgi?id=99819
41355
41356         Reviewed by Kentaro Hara.
41357
41358         Previously, GCPrologueVisitor used a complicated traits-based template
41359         design. That's not necessary. We can just implement it directly without
41360         template magic.
41361
41362         The one subtly here is that MessagePort is not actually a subclass of
41363         ActiveDOMObject. The next stage of this cleanup is to make MessagePort
41364         inherit from ActiveDOMObject and remove this special case entirely.
41365
41366         * bindings/v8/V8GCController.cpp:
41367         (WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
41368         (WebCore):
41369         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
41370         (WebCore::NodeVisitor::visitDOMWrapper):
41371         (WebCore::V8GCController::gcPrologue):
41372
41373 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41374
41375         Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
41376         https://bugs.webkit.org/show_bug.cgi?id=99179
41377
41378         Reviewed by Yury Semikhatsky.
41379
41380         Added method "close" to InspectorFrontendHost.
41381         Symantically, this method forces to flush all unsaved buffers for
41382         specified file. In native implementation this turns to be no-op.
41383
41384         In stub implementation "close" causes compilation of blob object an
41385         navigating to blob-schema url.
41386
41387         Removed "canAppend", as appending in now suppurted
41388         by all implementations.
41389
41390         Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
41391         to avoid out-of-memory errors.
41392
41393         * inspector/InspectorFrontendHost.cpp:
41394         (WebCore::InspectorFrontendHost::close): Compiles blob object and
41395         navigates to blob-object url.
41396         (WebCore):
41397         * inspector/InspectorFrontendHost.h: Added "close" method.
41398         * inspector/InspectorFrontendHost.idl: Ditto.
41399         * inspector/front-end/FileManager.js:
41400         (WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
41401         * inspector/front-end/FileUtils.js:
41402         (WebInspector.FileOutputStream.prototype.close):
41403         Invoke "close" on FileManager.
41404         (WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
41405         * inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
41406         * inspector/front-end/HeapSnapshotView.js:
41407         (WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
41408         * inspector/front-end/InspectorFrontendHostStub.js:
41409         (.WebInspector.InspectorFrontendHostStub):
41410         Added "appendable" behaviour emulation.
41411         * inspector/front-end/SourceFrame.js: Added mandatory "close" call.
41412         * inspector/front-end/externs.js: Replaced "canAppend" with "close"
41413
41414 2012-10-18  Dominic Mazzoni  <dmazzoni@google.com>
41415
41416         AX: labelForElement is slow when there are a lot of DOM elements
41417         https://bugs.webkit.org/show_bug.cgi?id=97825
41418
41419         Reviewed by Ryosuke Niwa.
41420
41421         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
41422         quickly map from an id to the label for that id. This speeds up
41423         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
41424         when accessibility was on.
41425
41426         Tests: accessibility/title-ui-element-correctness.html
41427                perf/accessibility-title-ui-element.html
41428
41429         * accessibility/AccessibilityNodeObject.cpp:
41430         (WebCore::AccessibilityNodeObject::labelForElement):
41431         * dom/DocumentOrderedMap.cpp:
41432         (WebCore::keyMatchesLabelForAttribute):
41433         (WebCore):
41434         (WebCore::DocumentOrderedMap::get):
41435         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
41436         * dom/DocumentOrderedMap.h:
41437         (DocumentOrderedMap):
41438         * dom/Element.cpp:
41439         (WebCore::Element::insertedInto):
41440         (WebCore::Element::removedFrom):
41441         (WebCore::Element::updateLabel):
41442         (WebCore):
41443         (WebCore::Element::willModifyAttribute):
41444         * dom/Element.h:
41445         (Element):
41446         * dom/TreeScope.cpp:
41447         (WebCore::TreeScope::TreeScope):
41448         (WebCore::TreeScope::destroyTreeScopeData):
41449         (WebCore::TreeScope::addLabel):
41450         (WebCore):
41451         (WebCore::TreeScope::removeLabel):
41452         (WebCore::TreeScope::labelElementForId):
41453         * dom/TreeScope.h:
41454         (WebCore):
41455         (TreeScope):
41456         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
41457
41458 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41459
41460         Web Inspector: Update localizedStrings.js
41461         https://bugs.webkit.org/show_bug.cgi?id=99701
41462
41463         Reviewed by Yury Semikhatsky.
41464
41465         Fixed most of missing strings and orphans.
41466
41467         * English.lproj/localizedStrings.js:
41468         * inspector/front-end/SettingsScreen.js:
41469
41470 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
41471
41472         Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
41473         https://bugs.webkit.org/show_bug.cgi?id=99457
41474
41475         Reviewed by Yury Semikhatsky.
41476
41477         countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
41478         getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
41479
41480         * inspector/InspectorClient.h:
41481         (WebCore::InspectorClient::dumpUncountedAllocatedObjects):
41482         * inspector/InspectorMemoryAgent.cpp:
41483         (WebCore::reportJSHeapInfo):
41484         (WebCore::reportRenderTreeInfo):
41485         (WebCore):
41486         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
41487         * inspector/MemoryInstrumentationImpl.cpp:
41488         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
41489         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
41490         * inspector/MemoryInstrumentationImpl.h:
41491         (MemoryInstrumentationClientImpl):
41492         (WebCore::MemoryInstrumentationClientImpl::countedObjects):
41493
41494 2012-10-19  Adam Barth  <abarth@webkit.org>
41495
41496         [V8] DOMObjectVisitor does nothing
41497         https://bugs.webkit.org/show_bug.cgi?id=99812
41498
41499         Reviewed by Kentaro Hara.
41500
41501         This code doesn't do anything, even in Debug! We should just remove it.
41502
41503         * bindings/v8/V8GCController.cpp:
41504         (WebCore):
41505         (WebCore::V8GCController::gcPrologue):
41506         (WebCore::V8GCController::gcEpilogue):
41507
41508 2012-10-19  Adam Barth  <abarth@webkit.org>
41509
41510         [V8] Remove unused typedef from V8GCController.cpp
41511         https://bugs.webkit.org/show_bug.cgi?id=99808
41512
41513         Reviewed by Kentaro Hara.
41514
41515         This typedef is not used.
41516
41517         * bindings/v8/V8GCController.cpp:
41518
41519 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
41520
41521         Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
41522         https://bugs.webkit.org/show_bug.cgi?id=99720
41523
41524         Reviewed by Yury Semikhatsky.
41525
41526         Non-inherited properties are now disregarded in inherited styles.
41527
41528         * inspector/front-end/StylesSidebarPane.js:
41529         (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
41530         (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
41531
41532 2012-10-18  Adam Barth  <abarth@webkit.org>
41533
41534         [V8] GrouperVisitor is secretly two entirely separate objects
41535         https://bugs.webkit.org/show_bug.cgi?id=99810
41536
41537         Reviewed by Kentaro Hara.
41538
41539         We can separate out the two things that GrouperVisitor is trying to do
41540         because they have nothing to do with each other.
41541
41542         * bindings/v8/V8GCController.cpp:
41543         (ObjectVisitor):
41544         (WebCore::ObjectVisitor::visitDOMWrapper):
41545         (WebCore):
41546         (WebCore::V8GCController::gcPrologue):
41547
41548 2012-10-18  Kiran Muppala  <cmuppala@apple.com>
41549
41550         Automatically start plugins created within a user gesture, skipping snapshotting
41551         https://bugs.webkit.org/show_bug.cgi?id=99778
41552
41553         Reviewed by Alexey Proskuryakov.
41554
41555         If a user gesture is being processed, do not set the display state of
41556         HTMLPluginImageElement to WaitingForSnapshot.
41557
41558         No new tests, since it only affects when plugins switch from snapshot to running
41559         state.  Does not affect rendering of other elements.
41560
41561         * html/HTMLPlugInImageElement.cpp:
41562         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
41563
41564 2012-10-18  Kent Tamura  <tkent@chromium.org>
41565
41566         Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
41567         https://bugs.webkit.org/show_bug.cgi?id=99787
41568
41569         Reviewed by Kentaro Hara.
41570
41571         This is going to be used for input[type=month] UI. This doesn't affect
41572         any bahevior yet.
41573
41574         Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
41575         layout tests later.
41576
41577         * platform/text/Localizer.h:
41578         (Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
41579         virtual member functions.
41580
41581         * platform/text/LocaleICU.h:
41582         (LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
41583         * platform/text/LocaleICU.cpp:
41584         (WebCore::LocaleICU::shortMonthLabels): Added.
41585         (WebCore::LocaleICU::shortStandAloneMonthLabels): Added.
41586
41587         * platform/text/LocaleNone.cpp:
41588         (LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
41589         (WebCore::LocaleNone::shortMonthLabels):
41590         Added. Always returns English labels.
41591         (WebCore::LocaleNone::shortStandAloneMonthLabels):
41592         Addes. Just calls shortMonthLabels.
41593
41594         * platform/text/LocaleWin.h:
41595         (LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
41596         * platform/text/LocaleWin.cpp:
41597         (WebCore::LocaleWin::shortMonthLabels): Added.
41598         (WebCore::LocaleWin::shortStandAloneMonthLabels):
41599         Added. Always returns shortMonthLabels.
41600
41601         * platform/text/mac/LocaleMac.h:
41602         (LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
41603         * platform/text/mac/LocaleMac.mm:
41604         (WebCore::LocaleMac::shortMonthLabels): Added.
41605         (WebCore::LocaleMac::shortStandAloneMonthLabels): Added.
41606
41607 2012-10-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
41608
41609         Implement value sanitization algorithm for type=datetime
41610         https://bugs.webkit.org/show_bug.cgi?id=76893
41611
41612         Reviewed by Kent Tamura.
41613
41614         Implement the value sanitization algorithm for type=datetime that adjusts
41615         the value to a valid normalized forced-UTC global date and time string.
41616         See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string
41617
41618         Test: fast/forms/datetime/datetime-value-sanitization.html
41619
41620         * html/DateTimeInputType.cpp:
41621         (WebCore::DateTimeInputType::sanitizeValue): Implemented.
41622         (WebCore):
41623         * html/DateTimeInputType.h:
41624         (DateTimeInputType): Add sanitizeValue.
41625         * platform/DateComponents.cpp:
41626         (WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
41627         of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).
41628
41629 2012-10-18  Byungwoo Lee  <bw80.lee@samsung.com>
41630
41631         Fix build warning.
41632         https://bugs.webkit.org/show_bug.cgi?id=99788
41633
41634         Reviewed by Kentaro Hara.
41635
41636         Use UNUSED_PARAM macro for removing -Wunused-parameter.
41637
41638         * rendering/RenderLayer.cpp:
41639         (WebCore::RenderLayer::currentTransform):
41640
41641 2012-10-18  Benjamin Poulain  <bpoulain@apple.com>
41642
41643         [WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
41644         https://bugs.webkit.org/show_bug.cgi?id=99771
41645
41646         Reviewed by Anders Carlsson.
41647
41648         * WebCore.exp.in: The symbol is used by WebCore Test Support, move it
41649         to the general section.
41650
41651 2012-10-18  Adam Barth  <abarth@webkit.org>
41652
41653         [V8] fast/dom/gc-9.html fails for document.styleSheets
41654         https://bugs.webkit.org/show_bug.cgi?id=99786
41655
41656         Reviewed by Kentaro Hara.
41657
41658         V8 needs to know about this IDL attribute as well.
41659
41660         * css/StyleSheetList.idl:
41661
41662 2012-10-18  Adam Barth  <abarth@webkit.org>
41663
41664         [V8] fast/dom/gc-9.html fails for document.implementation
41665         https://bugs.webkit.org/show_bug.cgi?id=99783
41666
41667         Reviewed by Kentaro Hara.
41668
41669         In order to correctly manage the lifetime of document.implementation,
41670         we need to implement GenerateIsReachable=ImplDocument.
41671
41672         * bindings/scripts/CodeGeneratorV8.pm:
41673         (GenerateVisitDOMWrapper):
41674         * bindings/scripts/IDLAttributes.txt:
41675         * dom/DOMImplementation.idl:
41676
41677 2012-10-18  Chris Fleizach  <cfleizach@apple.com>
41678
41679         AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
41680         https://bugs.webkit.org/show_bug.cgi?id=96443
41681
41682         Reviewed by Beth Dakin.
41683
41684         Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
41685         to determine which line this crash is happening on.
41686
41687         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41688         (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
41689
41690 2012-10-18  Alec Flett  <alecflett@chromium.org>
41691
41692         IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
41693         https://bugs.webkit.org/show_bug.cgi?id=99773
41694
41695         Reviewed by Tony Chang.
41696
41697         Refactor to begin separating out metadata from stateful backend objects,
41698         in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.
41699
41700         Also includes some #include dependency cleanup so that the backing store
41701         depends less on the stateful backend objects.
41702
41703         No new tests as this is purely a refactor.
41704
41705         * Modules/indexeddb/IDBBackingStore.h:
41706         (WebCore):
41707         (IDBBackingStore):
41708         * Modules/indexeddb/IDBCursor.h:
41709         * Modules/indexeddb/IDBCursorBackendImpl.h:
41710         (WebCore):
41711         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
41712         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
41713         (WebCore::IDBDatabaseBackendImpl::openInternal):
41714         (WebCore::IDBDatabaseBackendImpl::metadata):
41715         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
41716         (WebCore::IDBDatabaseBackendImpl::setVersion):
41717         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
41718         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
41719         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
41720         (WebCore::IDBDatabaseBackendImpl::openConnection):
41721         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
41722         (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
41723         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
41724         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
41725         (WebCore::IDBDatabaseBackendImpl::resetVersion):
41726         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
41727         (WebCore::IDBDatabaseBackendImpl::id):
41728         (IDBDatabaseBackendImpl):
41729         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
41730         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
41731         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
41732         * Modules/indexeddb/IDBLevelDBBackingStore.h:
41733         (IDBLevelDBBackingStore):
41734         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
41735         * Modules/indexeddb/IDBTransaction.h:
41736         (WebCore):
41737
41738 2012-10-18  Peter Kasting  <pkasting@google.com>
41739
41740         [Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
41741         https://bugs.webkit.org/show_bug.cgi?id=99781
41742
41743         Reviewed by Adam Barth.
41744
41745         No tests, since the actual effects of this bug are fickle and it's not
41746         clear how to extract and check particular subframes of an animated GIF.
41747
41748         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
41749         (WebCore::ImageFrame::copyBitmapData):
41750
41751 2012-10-18  Pan Deng  <pan.deng@intel.com>
41752
41753         [Resource Timing]Implementation of resource timing buffer size restriction functionality
41754         https://bugs.webkit.org/show_bug.cgi?id=84885.
41755
41756         Reviewed by Tony Gentilcore.
41757
41758         http://www.w3.org/TR/2012/CR-resource-timing-20120522/
41759         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. 
41760
41761         Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
41762                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
41763                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
41764                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
41765                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
41766                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html
41767
41768         * page/Performance.cpp:
41769         (WebCore):
41770         (WebCore::Performance::Performance):
41771         (WebCore::Performance::webkitSetResourceTimingBufferSize):
41772         (WebCore::Performance::addResourceTiming):
41773         (WebCore::Performance::isResourceTimingBufferFull):
41774         * page/Performance.h:
41775         (Performance):
41776
41777 2012-10-18  Ryosuke Niwa  <rniwa@webkit.org>
41778
41779         REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
41780         https://bugs.webkit.org/show_bug.cgi?id=99663
41781
41782         Reviewed by Enrica Casucci and Levi Weintraub.
41783
41784         The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
41785         ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
41786         positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
41787         moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
41788         the length after t2 is merged.
41789
41790         Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
41791         Also use the right offset.
41792
41793         Test: editing/pasteboard/copy-paste-first-line-in-textarea.html
41794
41795         * editing/ReplaceSelectionCommand.cpp:
41796         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
41797
41798 2012-10-18  Claudio Saavedra  <csaavedra@igalia.com>
41799
41800         [GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
41801         https://bugs.webkit.org/show_bug.cgi?id=82882
41802
41803         Reviewed by Xan Lopez.
41804
41805         Based on a patch by Milan Crha <mcrha@redhat.com>
41806
41807         Prevent an invalid access to a pointer while clearing the DOM
41808         object cache.
41809         * bindings/gobject/DOMObjectCache.cpp:
41810         (WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.
41811
41812 2012-10-18  Sheriff Bot  <webkit.review.bot@gmail.com>
41813
41814         Unreviewed, rolling out r131810.
41815         http://trac.webkit.org/changeset/131810
41816         https://bugs.webkit.org/show_bug.cgi?id=99762
41817
41818         Broke linux debug webkit_unit_tests (Requested by
41819         danakj|gardening on #webkit).
41820
41821         * WebCore.gypi:
41822         * platform/graphics/ImageSource.cpp:
41823         (WebCore::ImageSource::setData):
41824         * platform/graphics/ImageSource.h:
41825         (WebCore):
41826         (ImageSource):
41827         * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
41828         * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
41829         * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
41830         * platform/graphics/chromium/ImageDecodingStore.h: Removed.
41831         * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
41832         * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
41833         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
41834         * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
41835         * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
41836         * platform/graphics/chromium/ScaledImageFragment.h: Removed.
41837         * platform/graphics/skia/NativeImageSkia.cpp:
41838         (WebCore::NativeImageSkia::resizedBitmap):
41839         * platform/image-decoders/ImageDecoder.h:
41840         (ImageFrame):
41841
41842 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
41843
41844         MediaStream API: Do some cleanup in the chromium WebKit API
41845         https://bugs.webkit.org/show_bug.cgi?id=99713
41846
41847         Reviewed by Adam Barth.
41848
41849         Removing the deprecated version of WebMediaStreamDescriptor::initialize.
41850
41851         No testing needed since only an unused function is removed.
41852
41853         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
41854
41855 2012-10-18  Alpha Lam  <hclam@chromium.org>
41856
41857         [chromium] Implement deferred image decoding
41858         https://bugs.webkit.org/show_bug.cgi?id=94240
41859
41860         Reviewed by Stephen White.
41861
41862         Objectives:
41863
41864         To record image decoding operations during painting and to defer
41865         decoding operations until rasterization.
41866
41867         Rationale:
41868
41869         This is a key feature that enables impl-side painting which requires
41870         fast recording of drawing operations. The existing decode-on-draw
41871         restricts that recording has to block on expensive decoding operations.
41872         This change allows recording of image decoding operations during paint
41873         time.
41874
41875         Design:
41876
41877         Image decoding happens when a BitmapImage is drawn into a
41878         GraphicsContext. When per-tile painting is enabled GraphicsContext
41879         is backed by SkCanvas in recording mode. This SkCanvas records drawing
41880         and image decoding operations to minimize recording time.
41881
41882         An image decoding operation is recorded as a SkPixelRef object
41883         implemented by LazyDecodingPixelRef. This object references raw encoded
41884         data, regions to be decoded and scaling information.
41885
41886         When used in conjunction with per-tile painting this feature defers
41887         image decoding until the SkCanvas referencing the image is rasterized.
41888
41889         Both recording and rasterization happen on the main thread.
41890
41891         Performance Impact:
41892
41893         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
41894         and does not have an impact when disabled.
41895
41896         This feature is disabled by default.
41897
41898         Upcoming Changes:
41899
41900         1. Implement a full-featured image cache in ImageDecodingStore.
41901         2. Allow rasterization and decoding on impl thread.
41902
41903         Classes Involved:
41904
41905         BitmapImage
41906
41907         BitmapImage is the entry point for deferred image decoding. When
41908         drawing a BitmapImage into a GraphicsContext it makes a request to
41909         create a NativeImageSkia. We substitute the content in NativeImageSkia
41910         such that it is lazily decoded.
41911
41912         DeferredImageDecoder
41913
41914         This is the platform implementation of a image decoder for Chromium.
41915         This is a bridge layer that either delegates calls to the actual
41916         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
41917         to ImageDecodingStore.
41918
41919         ImageDecodingStore
41920
41921         This object manages all encoded images. It keeps track of encoded
41922         data and the corresponding ImageDecoder for doing actual decoding. It
41923         is also responsible for generating lazily decoded SkBitmaps. This
41924         SkBitmap contains a LazyDecodingPixelRef object which references to an
41925         image entry in ImageDecodingStore.
41926
41927         ScaledImageFragment
41928
41929         A container for a scaled image fragment. In addition to bitmap pixels
41930         it contains information about the ID of the image, scale and clipping.
41931
41932         ImageFrameGenerator
41933
41934         This object is responsible for generating decoded pixels. It is also
41935         a container for encoded image data and corresponding image decoder.
41936
41937         LazyDecodingPixelRef
41938
41939         This object is embedded in a SkBitmap to enable lazy decoding. When
41940         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
41941         contains information to locate an image and scaling info, these
41942         information is submitted to ImageDecodingStore to access actual pixels.
41943
41944         Layout tests. There are about 80 tests in this virtual test suite
41945         running this feature in this directory:
41946
41947         platform/chromium/virtual/deferred/fast/images
41948
41949         Unit tests. Added DeferredImageDecoderTest to verify deferred
41950         image decoding behavior.
41951
41952         * WebCore.gypi:
41953         * platform/graphics/ImageSource.cpp:
41954         (WebCore::ImageSource::setData):
41955         * platform/graphics/ImageSource.h:
41956         (WebCore):
41957         (ImageSource):
41958         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
41959         (WebCore):
41960         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
41961         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
41962         (WebCore::DeferredImageDecoder::create):
41963         (WebCore::DeferredImageDecoder::createForTesting):
41964         (WebCore::DeferredImageDecoder::filenameExtension):
41965         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
41966         (WebCore::DeferredImageDecoder::setData):
41967         (WebCore::DeferredImageDecoder::isSizeAvailable):
41968         (WebCore::DeferredImageDecoder::size):
41969         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
41970         (WebCore::DeferredImageDecoder::frameCount):
41971         (WebCore::DeferredImageDecoder::repetitionCount):
41972         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
41973         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
41974         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
41975         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
41976         (WebCore):
41977         (DeferredImageDecoder):
41978         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
41979         (WebCore::ImageDecodingStore::ImageDecodingStore):
41980         (WebCore):
41981         (WebCore::ImageDecodingStore::~ImageDecodingStore):
41982         (WebCore::ImageDecodingStore::instanceOnMainThread):
41983         (WebCore::ImageDecodingStore::initializeOnMainThread):
41984         (WebCore::ImageDecodingStore::shutdown):
41985         (WebCore::ImageDecodingStore::isLazyDecoded):
41986         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
41987         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
41988         (WebCore::ImageDecodingStore::setData):
41989         (WebCore::ImageDecodingStore::lockPixels):
41990         (WebCore::ImageDecodingStore::unlockPixels):
41991         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
41992         (WebCore::ImageDecodingStore::calledOnValidThread):
41993         (WebCore::ImageDecodingStore::lookupFrameCache):
41994         (WebCore::ImageDecodingStore::deleteFrameCache):
41995         * platform/graphics/chromium/ImageDecodingStore.h: Added.
41996         (WebCore):
41997         (ImageDecodingStore):
41998         (WebCore::ImageDecodingStore::create):
41999         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
42000         (WebCore):
42001         (WebCore::ScaledImageFragment::~ScaledImageFragment):
42002         (WebCore::ScaledImageFragment::ScaledImageFragment):
42003         (WebCore::ScaledImageFragment::isEqual):
42004         * platform/graphics/chromium/ScaledImageFragment.h: Added.
42005         (WebCore):
42006         (ScaledImageFragment):
42007         (WebCore::ScaledImageFragment::create):
42008         (WebCore::ScaledImageFragment::bitmap):
42009         (WebCore::ScaledImageFragment::isComplete):
42010         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
42011         (WebCore):
42012         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
42013         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
42014         (WebCore::ImageFrameGenerator::decoder):
42015         (WebCore::ImageFrameGenerator::setData):
42016         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
42017         (WebCore):
42018         (ImageFrameGenerator):
42019         (WebCore::ImageFrameGenerator::create):
42020         (WebCore::ImageFrameGenerator::size):
42021         (WebCore::ImageFrameGenerator::imageId):
42022         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
42023         (WebCore):
42024         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
42025         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
42026         (WebCore::LazyDecodingPixelRef::isScaled):
42027         (WebCore::LazyDecodingPixelRef::isClipped):
42028         (WebCore::LazyDecodingPixelRef::onLockPixels):
42029         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
42030         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
42031         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
42032         (WebCore):
42033         (LazyDecodingPixelRef):
42034         (WebCore::LazyDecodingPixelRef::frameGenerator):
42035         * platform/graphics/skia/NativeImageSkia.cpp:
42036         (WebCore::NativeImageSkia::resizedBitmap):
42037         * platform/image-decoders/ImageDecoder.h:
42038         (ImageFrame):
42039         (WebCore::ImageFrame::setSkBitmap):
42040         (WebCore::ImageFrame::getSkBitmap):
42041
42042 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
42043
42044         [EFL] GraphicsContext3D::m_renderStyle is not initialized
42045         https://bugs.webkit.org/show_bug.cgi?id=99721
42046
42047         Reviewed by Antonio Gomes.
42048
42049         Initialize GraphicsContext3D::m_renderStyle.
42050
42051         No new tests, no new functionality.
42052
42053         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42054         (WebCore::GraphicsContext3D::GraphicsContext3D):
42055
42056 2012-10-18  Max Vujovic  <mvujovic@adobe.com>
42057
42058         [CSS Shaders] Validate types of built-in vertex attributes
42059         https://bugs.webkit.org/show_bug.cgi?id=98972
42060
42061         Reviewed by Dean Jackson.
42062
42063         Reject custom filters in which the author defined built-in attributes with the wrong type.
42064         For example, the GLSL declaration "attribute float a_position" is incorrect because
42065         a_position should be a vec4, not a float.
42066
42067         Test: css3/filters/custom/invalid-custom-filter-attribute-types.html
42068
42069         * platform/graphics/ANGLEWebKitBridge.h:
42070         (WebCore::ANGLEShaderSymbol::isSampler):
42071             Add const qualifier to isSampler method.
42072         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
42073         (WebCore):
42074         (WebCore::builtInAttributeNameToTypeMap):
42075             New file static function. Returns a map of the CSS Custom Filters built-in attribute
42076             names and their expected types.
42077         (WebCore::validateSymbols):
42078             New file static function. Loop through all of the symbols. Reject the shader if we find
42079             a built-in attribute defined with the wrong type.
42080         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
42081             Call the new validateSymbols function. If it returns false, exit the constructor early,
42082             which rejects the program.
42083             Move the loop that checks if any uniform is a sampler into the the validateSymbols
42084             function.
42085
42086 2012-10-18  Mike Reed  <reed@google.com>
42087
42088         Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
42089         https://bugs.webkit.org/show_bug.cgi?id=99752
42090
42091         Reviewed by Stephen White.
42092
42093         Current code does not check if we were able to allocate the pixels, but still returns the canvas.
42094         However, the caller explicitly is checking for null on failure, so it will continue (and possibly
42095         crash later on).
42096         This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
42097         TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.
42098
42099         No new tests. Existing tests exercise ImageBuffer constructor.
42100
42101         * platform/graphics/skia/ImageBufferSkia.cpp:
42102         (WebCore::createNonPlatformCanvas):
42103
42104 2012-10-18  Beth Dakin  <bdakin@apple.com>
42105
42106         https://bugs.webkit.org/show_bug.cgi?id=99668
42107         REGRESSION: Crash in 
42108         WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
42109         -and corresponding-
42110         <rdar://problem/12491901>
42111
42112         Reviewed by Simon Fraser.
42113
42114         http://trac.webkit.org/changeset/130783 changed the lifetime of the 
42115         ScrollingStateTree's rootStateNode. Before that patch, the root state 
42116         node was never destroyed. It was just constantly re-used for 
42117         different RenderLayerBackings. This crash is just one of a few bugs 
42118         that has occurred because of that change. I have fixed the other bugs 
42119         individually, but I think that long-term, it is the safest solution 
42120         to go back to the original ownership model.
42121
42122         So this patch ensures that the state tree will always have a root 
42123         state node. Instead of destroying and re-creating the root node when 
42124         it's scroll ID changes, we just update the ID.
42125
42126         attachToStateTree() now takes an additional ID representing the ID of 
42127         the parent node.
42128         * page/scrolling/ScrollingCoordinator.h:
42129         (WebCore::ScrollingCoordinator::attachToStateTree):
42130
42131         Add a way to set the scrolling node ID.
42132         * page/scrolling/ScrollingStateNode.h:
42133         (WebCore::ScrollingStateNode::setScrollingNodeID):
42134
42135         This code that provided a way to mark all properties as having 
42136         changed was added in http://trac.webkit.org/changeset/130989 as a way 
42137         to ensure we would re-set ScrollingThread's nodes when we destroyed 
42138         and re-created the rootStateNode. Now that we are no longer 
42139         destroying and re-creating the rootStateNode, this code is no longer 
42140         necessary.
42141         * page/scrolling/ScrollingStateScrollingNode.cpp:
42142         * page/scrolling/ScrollingStateScrollingNode.h:
42143
42144         create m_rootStateNode right in the ScrollingStateTree's constructor.
42145         * page/scrolling/ScrollingStateTree.cpp:
42146         (WebCore::ScrollingStateTree::ScrollingStateTree):
42147
42148         Don't let removeNode() destroy m_rootStateNode.
42149         (WebCore::ScrollingStateTree::removeNode):
42150
42151         Also a part of r130989 that is no longer needed.
42152         (WebCore::ScrollingStateTree::rootLayerDidChange():
42153         * page/scrolling/ScrollingStateTree.h:
42154         (WebCore::ScrollingStateTree::rootStateNode):
42155         (ScrollingStateTree):
42156         (WebCore::ScrollingStateTree::setRootStateNode):
42157
42158         attachToStateTree() now takes an additional ID representing the ID of 
42159         the parent node.
42160         * page/scrolling/mac/ScrollingCoordinatorMac.h:
42161         (ScrollingCoordinatorMac):
42162
42163         We no longer need ScrollingStateTree::rootLayerDidChange()
42164         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
42165         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
42166
42167         Do not destroy and re-create the state node. Just update its ID. When 
42168         we support child nodes soon, we will create them in this function.
42169         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
42170
42171         No need to null-check the rootStateNode.
42172         (WebCore::ScrollingCoordinatorMac::clearStateTree):
42173
42174         Send 0 as the parent node ID to attachToStateTree() to represent the 
42175         root node.
42176         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
42177         * rendering/RenderLayerBacking.cpp:
42178
42179         RenderLayerBacking::attachToScrollingCoordinator() now takes a parent 
42180         layer.
42181         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
42182         * rendering/RenderLayerBacking.h:
42183         (RenderLayerBacking):
42184
42185         Since this is the root, send 0 to represent the parent layer.
42186         * rendering/RenderLayerCompositor.cpp:
42187         (WebCore::RenderLayerCompositor::updateBacking):
42188
42189 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
42190
42191         [EFL] GraphicsContext3D::m_renderStyle is not initialized
42192         https://bugs.webkit.org/show_bug.cgi?id=99721
42193
42194         Reviewed by Antonio Gomes.
42195
42196         Initialize GraphicsContext3D::m_renderStyle.
42197
42198         No new tests, no new functionality.
42199
42200         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42201         (WebCore::GraphicsContext3D::GraphicsContext3D):
42202
42203 2012-10-18  Brian White  <bcwhite@chromium.org>
42204
42205         WebKit Doesn't Recognize Content-Language HTTP Header
42206         https://bugs.webkit.org/show_bug.cgi?id=97929
42207
42208         Reviewed by Alexey Proskuryakov.
42209
42210         The HTTP "Content-Language" header may be present and include the
42211         language of the page contents (as opposed to an embedded meta tag).
42212
42213         * loader/FrameLoader.cpp:
42214         (WebCore::FrameLoader::didBeginDocument):
42215
42216 2012-10-18  Jer Noble  <jer.noble@apple.com>
42217
42218         Crash in WebCore::Document::webkitExitFullscreen + 618
42219         https://bugs.webkit.org/show_bug.cgi?id=99496
42220
42221         Reviewed by Eric Carlson.
42222
42223         Prospective fix for null-dereference crash in Document::webkitExitFullscreen().
42224
42225         * dom/Document.cpp:
42226         (WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.
42227
42228 2012-10-18  Pablo Flouret  <pablof@motorola.com>
42229
42230         Implement css3-conditional's @supports rule
42231         https://bugs.webkit.org/show_bug.cgi?id=86146
42232
42233         Reviewed by Antti Koivisto.
42234
42235         The "@supports" rule is a conditional group rule whose condition tests
42236         whether the user agent supports CSS property:value pairs.
42237
42238         http://dev.w3.org/csswg/css3-conditional/#at-supports
42239
42240         Test: css3/supports.html
42241
42242         * Configurations/FeatureDefines.xcconfig:
42243         * GNUmakefile.am:
42244         * GNUmakefile.features.am:
42245             Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
42246
42247         * css/CSSGrammar.y.in:
42248         * css/CSSParser.cpp:
42249         (WebCore):
42250         (WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
42251         (WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
42252         (WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
42253         * css/CSSParser.h: Added new SupportsMode parsing mode.
42254         (CSSParser):
42255
42256 2012-10-18  Marja Hölttä  <marja@chromium.org>
42257
42258         Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
42259         https://bugs.webkit.org/show_bug.cgi?id=99730
42260
42261         Reviewed by Jochen Eisinger.
42262
42263         * loader/cache/CachedResourceLoader.cpp:
42264         (WebCore::CachedResourceLoader::requestSVGDocument):
42265
42266 2012-10-18  Jer Noble  <jer.noble@apple.com>
42267
42268         Fullscreen movie controls behave incorrectly when clicked (and dragged)
42269         https://bugs.webkit.org/show_bug.cgi?id=99610
42270
42271         Reviewed by Eric Carlson.
42272
42273         Do not reset the relative drag position to 0,0 at the beginning of every drag.  Instead,
42274         store the cumulative drag offset and accumulate during each additional drag.
42275
42276         No new tests; modified the fullscreen/video-controls-drag.html test.
42277
42278         * html/shadow/MediaControlElements.cpp:
42279         (WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
42280         (WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
42281         (WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
42282         * html/shadow/MediaControlElements.h:
42283
42284 2012-10-18  Brandon Jones  <bajones@google.com>
42285
42286         Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
42287         https://bugs.webkit.org/show_bug.cgi?id=97400
42288
42289         Reviewed by Kenneth Russell.
42290
42291         Implemented OES_element_index_uint WebGL extension
42292
42293         Test: fast/canvas/webgl/oes-element-index-uint.html
42294
42295         * CMakeLists.txt:
42296         * DerivedSources.make:
42297         * DerivedSources.pri:
42298         * GNUmakefile.list.am:
42299         * Target.pri:
42300         * WebCore.gypi:
42301         * WebCore.xcodeproj/project.pbxproj:
42302         * bindings/js/JSWebGLRenderingContextCustom.cpp:
42303         (WebCore::toJS):
42304         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
42305         (WebCore::toV8Object):
42306         * html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42307         (WebCore):
42308         (WebCore::OESElementIndexUint::OESElementIndexUint):
42309         (WebCore::OESElementIndexUint::~OESElementIndexUint):
42310         (WebCore::OESElementIndexUint::getName):
42311         (WebCore::OESElementIndexUint::create):
42312         * html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42313         (WebCore):
42314         (OESElementIndexUint):
42315         * html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42316         * html/canvas/WebGLExtension.h:
42317         * html/canvas/WebGLRenderingContext.cpp:
42318         (WebCore):
42319         (WebCore::WebGLRenderingContext::validateElementArraySize):
42320         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
42321         (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
42322         (WebCore::WebGLRenderingContext::validateRenderingState):
42323         (WebCore::WebGLRenderingContext::drawElements):
42324         (WebCore::WebGLRenderingContext::getExtension):
42325         (WebCore::WebGLRenderingContext::getSupportedExtensions):
42326         * html/canvas/WebGLRenderingContext.h:
42327         (WebCore):
42328         (WebGLRenderingContext):
42329         * platform/graphics/Extensions3D.h:
42330         (Extensions3D):
42331         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
42332         (WebCore::Extensions3DOpenGL::supportsExtension):
42333
42334 2012-10-18  Jer Noble  <jer.noble@apple.com>
42335
42336         Add diagnostic logging to track per-page media engine usage.
42337         https://bugs.webkit.org/show_bug.cgi?id=99615
42338         <rdar://problem/12476473>
42339
42340         Reviewed by Eric Carlson.
42341
42342         Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.
42343
42344         * html/HTMLMediaElement.cpp:
42345         (WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
42346         (WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
42347         (WebCore::HTMLMediaElement::setReadyState): Ditto.
42348         * loader/FrameLoader.cpp:
42349         (WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.
42350
42351         Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
42352         * page/Page.cpp:
42353         (WebCore::Page::hasSeenAnyMediaEngine):
42354         (WebCore::Page::hasSeenMediaEngine):
42355         (WebCore::Page::sawMediaEngine):
42356         (WebCore::Page::resetSeenMediaEngines):
42357         * page/Page.h:
42358
42359         Add new static logging key definitions:
42360         * page/DiagnosticLoggingKeys.cpp:
42361         (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
42362         (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
42363         * page/DiagnosticLoggingKeys.h:
42364
42365 2012-10-18  Michael Saboff  <msaboff@apple.com>
42366
42367         Add 8-bit path to RenderBlock::handleTrailingSpaces()
42368         https://bugs.webkit.org/show_bug.cgi?id=99731
42369
42370         Reviewed by Dan Bernstein.
42371
42372         Factored out and added findFirstTrailingSpace() templated helper function that is called with the 
42373         approriate character pointer type.
42374
42375         No tests needed, change covered by existing tests.
42376
42377         * rendering/RenderBlockLineLayout.cpp:
42378         (WebCore::findFirstTrailingSpace):
42379         (WebCore::RenderBlock::handleTrailingSpaces):
42380
42381 2012-10-18  Hans Muller  <hmuller@adobe.com>
42382
42383         [CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
42384         https://bugs.webkit.org/show_bug.cgi?id=99216
42385
42386         Reviewed by Dirk Schulze.
42387
42388         Added a FloatRect::extend() method which simplifies writing loops that
42389         accumulate the bounding box for a sequence of FloatPoints. The new method
42390         is used by ExclusionPolygon to initialize the shape's logical and physical
42391         bounding boxes. This a clean-up, not a change in functionality. It's already
42392         covered by the existing fast/exclusions LayoutTests.
42393
42394         * platform/graphics/FloatRect.cpp:
42395         (WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
42396         (WebCore):
42397         * platform/graphics/FloatRect.h:
42398         (FloatRect): Added extend() method.
42399         * rendering/ExclusionPolygon.cpp:
42400         (WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
42401         * rendering/ExclusionShape.cpp:
42402         (WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
42403         * rendering/ExclusionShape.h:
42404         (WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
42405         (ExclusionShape):
42406
42407 2012-10-18  Hans Muller  <hmuller@adobe.com>
42408
42409         [CSS Exclusions] Handle special case "empty" shapes
42410         https://bugs.webkit.org/show_bug.cgi?id=99342
42411
42412         Reviewed by Dirk Schulze.
42413
42414         Provide expclit coverage of the simple "empty" shape-inside shapes.
42415         Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
42416         and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
42417         This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
42418         with 0 radiusX or radiusY, polygons with less than 3 vertices.
42419
42420         Test: fast/exclusions/shape-inside/shape-inside-empty.html
42421
42422         * rendering/ExclusionPolygon.cpp:
42423         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
42424         (WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
42425         (WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
42426         * rendering/ExclusionPolygon.h: Added the isEmpty() method.
42427         * rendering/ExclusionRectangle.cpp:
42428         (WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
42429         (WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
42430         * rendering/ExclusionRectangle.h: Added the isEmpty() method.
42431         * rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
42432         (ExclusionShape):
42433
42434 2012-10-18  Takashi Sakamoto  <tasak@google.com>
42435
42436         REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
42437         https://bugs.webkit.org/show_bug.cgi?id=99587
42438
42439         Reviewed by Dimitri Glazkov.
42440
42441         Since contents in datalist are not shown, summary in datalist is not
42442         shown either. So the summary has no render style. On the other hand,
42443         the summary is implemented by shadow DOM and it has some insertion
42444         point. Its child, e.g. title in the below test, is distributed.
42445         To solve the child's user-modify, looking at shadow host(=summary)'s
42446         style causes null-pointer crash.
42447
42448         Test: fast/dom/shadow/user-modify-in-datalist-crash.html
42449
42450         * css/StyleResolver.cpp:
42451         (WebCore::StyleResolver::styleForElement):
42452         Added a code to check whether the shadow host has any style or not.
42453
42454 2012-10-17  Philippe Normand  <pnormand@igalia.com>
42455
42456         [GTK] AudioBusGtk sometimes fails to load the HRTF database
42457         https://bugs.webkit.org/show_bug.cgi?id=99601
42458
42459         Reviewed by Martin Robinson.
42460
42461         AudioBusGtk now first lookup for the uninstalled resource files,
42462         if the AUDIO_RESOURCES_PATH environment variable is
42463         set. Additionally the audio file reader is now better dealing with
42464         errors, returning an empty AudioBus in such cases and issuing
42465         warnings on the console output. The cleanup of some member
42466         variables was also moved to the destructor.
42467
42468         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
42469         (AudioFileReader):
42470         (WebCore::AudioFileReader::AudioFileReader):
42471         (WebCore::AudioFileReader::~AudioFileReader): Clear and free
42472         member variables. This was done in createBus before.
42473         (WebCore::AudioFileReader::handleMessage): Issue warnings in case
42474         of error and exit from the main loop so the pipeline is not
42475         forever stuck.
42476         (WebCore::AudioFileReader::createBus): Return an empty bus in case
42477         of error.
42478         * platform/audio/gtk/AudioBusGtk.cpp:
42479         (WebCore::AudioBus::loadPlatformResource): Load uninstalled
42480         resources first if AUDIO_RESOURCES_PATH is set.
42481
42482 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42483
42484         Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
42485         https://bugs.webkit.org/show_bug.cgi?id=99718
42486
42487         Reviewed by Vsevolod Vlasov.
42488
42489         Adds stub method that could be executed from the embedder.
42490
42491         * inspector/front-end/InspectorFrontendAPI.js:
42492         (InspectorFrontendAPI.setDockSide):
42493
42494 2012-10-18  Kent Tamura  <tkent@chromium.org>
42495
42496         Add Localizer::monthFormat and implementations
42497         https://bugs.webkit.org/show_bug.cgi?id=99704
42498
42499         Reviewed by Kentaro Hara.
42500
42501         Localizer::monthFormat will be used for constructing input[type=month] UI.
42502
42503         Tests: Add unit tests to Source/WebKit/chromium/tests/.
42504
42505         * platform/text/Localizer.h:
42506         (Localizer): Declare pure virtual monthFormat function.
42507
42508         * platform/text/LocaleNone.cpp:
42509         (LocaleNone): Declare monthFormat.
42510         (WebCore::LocaleNone::monthFormat):
42511         Added. Always reutrns an ISO-8601 format, "yyyy-MM"
42512
42513         * platform/text/LocaleICU.h:
42514         (LocaleICU): Declare monthFormat.
42515         * platform/text/LocaleICU.cpp:
42516         (WebCore::getFormatForSkeleton):
42517         A helper to get a format for the specified skeleton.
42518         The overflow-allocalte-try-again pattern is similar to
42519         LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
42520         (WebCore::LocaleICU::monthFormat):
42521         Added. Calls getFormatForSkeleton with "yyyyMMM".
42522
42523         * platform/text/mac/LocaleMac.h:
42524         (LocaleMac): Declare monthFormat.
42525         * platform/text/mac/LocaleMac.mm:
42526         (WebCore::LocaleMac::monthFormat):
42527         Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".
42528
42529         * platform/text/LocaleWin.h:
42530         (LocaleWin): Declare monthFormat.
42531         * platform/text/LocaleWin.cpp:
42532         (WebCore::LocaleWin::monthFormat):
42533         Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.
42534
42535 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42536
42537         Web Inspector: add X-WebKit-CSP header into inspector.html
42538         https://bugs.webkit.org/show_bug.cgi?id=99710
42539
42540         Reviewed by Vsevolod Vlasov.
42541
42542         A simple sanity measure.
42543
42544         * inspector/front-end/inspector.html:
42545
42546 2012-10-18  Huang Dongsung  <luxtella@company100.net>
42547
42548         [WK2] Add CustomFilterOperation serialization in ArgumentCoder.
42549         https://bugs.webkit.org/show_bug.cgi?id=98733
42550
42551         Reviewed by Noam Rosenthal.
42552
42553         Change CustomFilterOperation::parameters() to const function, because
42554         this method is a getter and a const instance needs to call this method.
42555
42556         No new tests because there is no change in behavior.
42557
42558         * platform/graphics/filters/CustomFilterOperation.h:
42559         (WebCore::CustomFilterOperation::parameters):
42560
42561 2012-10-18  Hayato Ito  <hayato@chromium.org>
42562
42563         treeScopeOfParent doesn't return the TreeScope of the parent
42564         https://bugs.webkit.org/show_bug.cgi?id=98207
42565
42566         Reviewed by Hajime Morita.
42567
42568         A minor clean up. Remove treeScopeOfParent() in Element.cpp.
42569
42570         No tests needed, this is just a clean up.
42571
42572         * dom/Element.cpp:
42573         (WebCore::Element::removedFrom):
42574
42575 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
42576
42577         Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
42578         https://bugs.webkit.org/show_bug.cgi?id=99711
42579
42580         Reviewed by Vsevolod Vlasov.
42581
42582         Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.
42583
42584         * inspector/front-end/CSSCompletions.js:
42585         (WebInspector.CSSCompletions):
42586         (WebInspector.CSSCompletions.requestCSSNameCompletions):
42587         (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
42588         * inspector/front-end/CSSKeywordCompletions.js:
42589         (WebInspector.CSSKeywordCompletions.forProperty):
42590
42591 2012-10-18  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
42592
42593         Unreviewed, do not make UseV8.cmake executable.
42594
42595         * UseV8.cmake: Removed property svn:executable.
42596
42597 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
42598
42599         MediaStream API: Add better RTCPeerConnectionHandler creation logic
42600         https://bugs.webkit.org/show_bug.cgi?id=99308
42601
42602         Reviewed by Adam Barth.
42603
42604         This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
42605         the RTCPeerConnection constructor throws an exception.
42606
42607         Not full testable, existing tests cover the normal case though.
42608
42609         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
42610         (WebCore::RTCPeerConnectionHandler::create):
42611         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
42612         (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
42613         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
42614         (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
42615         (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
42616         (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
42617         (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
42618         (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
42619         (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
42620         (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
42621         (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
42622         (WebCore::RTCPeerConnectionHandlerChromium::addStream):
42623         (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
42624         (WebCore::RTCPeerConnectionHandlerChromium::getStats):
42625         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
42626         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
42627         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
42628         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
42629         (WebCore::RTCPeerConnectionHandlerChromium::stop):
42630         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
42631         (RTCPeerConnectionHandlerChromium):
42632
42633 2012-10-19  Zeno Albisser  <zeno@webkit.org>
42634
42635         Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
42636         https://bugs.webkit.org/show_bug.cgi?id=99320
42637
42638         The current version of Qt5 deployed on the buildbots does not yet have
42639         an implementation for QCocoaNativeInterface::nativeResourceForContext().
42640         Therefore we disable this code path until Qt5/qtbase has been updated to
42641         a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.
42642
42643         Once Qt5 has been updated, this patch must be reverted.
42644
42645         Reviewed by Noam Rosenthal.
42646
42647         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42648         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42649
42650 2012-10-18  Zeno Albisser  <zeno@webkit.org>
42651
42652         GraphicsSurface should not modify the current GL context.
42653         https://bugs.webkit.org/show_bug.cgi?id=99320
42654
42655         Instead of reusing the currently bound GL context for drawing
42656         the texture onto the GraphicsSurface, GraphicsSurface should
42657         create a new context that shares the texture names with a context
42658         provided by the caller.
42659         This way the OpenGL states are clearly separated and we do not
42660         risk interfeering with the currently bound GL context.
42661
42662         Reviewed by Noam Rosenthal.
42663
42664         * platform/graphics/qt/GraphicsContext3DQt.cpp:
42665         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
42666             When creating a GraphicsSurface pass the platform GL context
42667             as a parameter, so it can be used for sharing textures with.
42668         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
42669             Pass the texture instead of the FBO. A Texture can be drawn
42670             directly or bound to another FBO, where a framebuffer
42671             always needs to be blit onto the surface.
42672         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
42673             Pass the platform GL context as a parameter.
42674         * platform/graphics/surfaces/GraphicsSurface.cpp:
42675         (WebCore::GraphicsSurface::create):
42676         (WebCore::GraphicsSurface::copyFromTexture):
42677         * platform/graphics/surfaces/GraphicsSurface.h:
42678         (GraphicsSurface):
42679         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42680         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42681             Create a new GL context that shares the textures with the
42682             context provided by the caller.
42683         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
42684         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42685             Add a convenience function to make the context that
42686             belongs to the surface current.
42687         (GraphicsSurfacePrivate):
42688         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42689             Add a convenience function to make the previously
42690             bound context current again.
42691         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42692             Move blitting of the texture onto the surface
42693             into a separate function within GraphicsSurfacePrivate.
42694         (WebCore::GraphicsSurface::platformCopyFromTexture):
42695             Rename function platformCopyFromFramebuffer to
42696             platformCopyFromTexture, as we are now passing the texture only.
42697         (WebCore::GraphicsSurface::platformCreate):
42698         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
42699         (WebCore):
42700         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42701         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42702             Add a convenience function to make the context that
42703             belongs to the surface current.
42704         (GraphicsSurfacePrivate):
42705         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42706             Add a convenience function to make the previously
42707         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42708             Move blitting of the texture onto the surface
42709             into a separate function within GraphicsSurfacePrivate.
42710         (WebCore::resolveGLMethods):
42711             Resolve additional GL methods necessary for this change.
42712         (WebCore::GraphicsSurface::platformCopyFromTexture):
42713             Rename function platformCopyFromFramebuffer to
42714             platformCopyFromTexture, as we are now passing the texture only.
42715         (WebCore::GraphicsSurface::platformCreate):
42716
42717 2012-10-18  Kent Tamura  <tkent@chromium.org>
42718
42719         Set min-width property instead of width property for date/time fields
42720         https://bugs.webkit.org/show_bug.cgi?id=99673
42721
42722         Reviewed by Hajime Morita.
42723
42724         A field can have a text wider than pre-computed width because of
42725         :first-letter property. So, we should set min-width, not width.
42726
42727         Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html
42728
42729         * html/shadow/DateTimeNumericFieldElement.cpp:
42730         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
42731         Set min-width instead of width.
42732         * html/shadow/DateTimeSymbolicFieldElement.cpp:
42733         (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
42734
42735 2012-10-18  MORITA Hajime  <morrita@google.com>
42736
42737         Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
42738         https://bugs.webkit.org/show_bug.cgi?id=99510
42739
42740         Reviewed by Kent Tamura.
42741
42742         Shadow DOM notification call didn't have checks for mutation detection.
42743         This change adds such checks.
42744
42745         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html
42746
42747         * dom/ContainerNodeAlgorithms.cpp:
42748         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
42749         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
42750
42751 2012-10-17  Kentaro Hara  <haraken@chromium.org>
42752
42753         Unreviewed. Rebaselined run-bindings-tests.
42754
42755         * bindings/scripts/test/V8/V8Float64Array.h:
42756         (V8Float64Array):
42757         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
42758         (V8TestActiveDOMObject):
42759         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
42760         (V8TestCustomNamedGetter):
42761         * bindings/scripts/test/V8/V8TestEventConstructor.h:
42762         (V8TestEventConstructor):
42763         * bindings/scripts/test/V8/V8TestEventTarget.h:
42764         (V8TestEventTarget):
42765         * bindings/scripts/test/V8/V8TestException.h:
42766         (V8TestException):
42767         * bindings/scripts/test/V8/V8TestInterface.h:
42768         (V8TestInterface):
42769         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
42770         (V8TestMediaQueryListListener):
42771         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
42772         (V8TestNamedConstructor):
42773         * bindings/scripts/test/V8/V8TestNode.h:
42774         (V8TestNode):
42775         * bindings/scripts/test/V8/V8TestObj.h:
42776         (V8TestObj):
42777         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
42778         (V8TestSerializedScriptValueInterface):
42779
42780 2012-10-17  Mike West  <mkwst@chromium.org>
42781
42782         Move mixed content logic out of FrameLoader
42783         https://bugs.webkit.org/show_bug.cgi?id=45638
42784
42785         Reviewed by Eric Seidel.
42786
42787         This change moves checks for mixed content out of FrameLoader, and into
42788         a new MixedContentChecker object. It's a pretty straightforward
42789         refactoring with no change to the overall logic, and only minor changes
42790         to the code to reduce repetition.
42791
42792         The only substantive change is renaming the methods from 'checkIf*' to
42793         'can*' to reflect the value of the boolean they return.
42794
42795         The visible functionality shouldn't change; this change should be
42796         covered by existing tests in http/tests/security/mixedContent.
42797
42798         This patch is mostly a revitalization of Eric Sidel's original
42799         patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch
42800
42801         * CMakeLists.txt:
42802         * GNUmakefile.list.am:
42803         * Target.pri:
42804         * WebCore.gypi:
42805         * WebCore.vcproj/WebCore.vcproj:
42806         * WebCore.xcodeproj/project.pbxproj:
42807             Hey, look! A new file!
42808         * loader/FrameLoader.cpp:
42809         (WebCore::FrameLoader::FrameLoader):
42810         * loader/FrameLoader.h:
42811         (WebCore::FrameLoader::mixedContentChecker):
42812         (FrameLoader):
42813         * loader/MixedContentChecker.cpp: Added.
42814         (WebCore):
42815         (WebCore::MixedContentChecker::MixedContentChecker):
42816         (WebCore::MixedContentChecker::client):
42817         (WebCore::asUTF8):
42818         (WebCore::MixedContentChecker::isMixedContent):
42819         (WebCore::MixedContentChecker::canDisplayInsecureContent):
42820         (WebCore::MixedContentChecker::canRunInsecureContent):
42821         (WebCore::MixedContentChecker::logWarning):
42822         * loader/MixedContentChecker.h: Added.
42823         (WebCore):
42824         (MixedContentChecker):
42825             Migrate functionality from FrameLoader::checkIf* to
42826             MixedContentChecker::can*.
42827         * loader/MainResourceLoader.cpp:
42828         (WebCore::MainResourceLoader::willSendRequest):
42829         * loader/SubframeLoader.cpp:
42830         (WebCore::SubframeLoader::pluginIsLoadable):
42831         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
42832         * loader/cache/CachedResourceLoader.cpp:
42833         (WebCore::CachedResourceLoader::checkInsecureContent):
42834             Use the new method locations.
42835
42836 2012-10-17  Dan Bernstein  <mitz@apple.com>
42837
42838         REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
42839         https://bugs.webkit.org/show_bug.cgi?id=99654
42840
42841         Reviewed by Adele Peterson.
42842
42843         When the base character of a combining character sequence is not covered by any one of the
42844         available fonts, there is no point looking for a font that covers the entire sequence, nor
42845         to try to use a combination of fallback fonts for the entire sequence.
42846
42847         * platform/graphics/SimpleFontData.h:
42848         (WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
42849         here and renamed it.
42850         * platform/graphics/mac/ComplexTextController.cpp:
42851         (WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
42852         systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
42853         for a base character with combining marks, regardless of whether the base character was
42854         covered by any font. Changed it to preserve the return value of
42855         fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
42856         any font, while systemFallbackFontData() is used to indicate that no single font in the
42857         fallback list covers all characters in the sequence, but the base character is in some font.
42858         * platform/graphics/mac/ComplexTextController.h:
42859         (ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
42860         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
42861         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
42862         move.
42863         * platform/graphics/mac/FontComplexTextMac.cpp:
42864         (WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
42865         systemFallbackFontData() if no single font in the fallback list covers all characters in the
42866         sequence, while using 0 to signal the base character does not exist in any font.
42867
42868 2012-10-17  Dan Bernstein  <mitz@apple.com>
42869
42870         Try to fix the build after r131701.
42871
42872         * WebCore.exp.in:
42873
42874 2012-10-17  Hayato Ito  <hayato@chromium.org>
42875
42876         Content element does not expose distributedNodes property.
42877         https://bugs.webkit.org/show_bug.cgi?id=99232
42878
42879         Reviewed by Dimitri Glazkov.
42880
42881         Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
42882         static NodeList whose node are distributed to the content element.
42883
42884         Test: fast/dom/shadow/content-element-distributed-nodes.html
42885
42886         * html/shadow/HTMLContentElement.idl:
42887         * html/shadow/InsertionPoint.cpp:
42888         (WebCore::InsertionPoint::getDistributedNodes):
42889         * html/shadow/InsertionPoint.h:
42890         (InsertionPoint):
42891         * testing/Internals.cpp:
42892         * testing/Internals.h:
42893         (Internals):
42894         * testing/Internals.idl:
42895
42896 2012-10-17  Pan Deng  <pan.deng@intel.com>
42897
42898         [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
42899         https://bugs.webkit.org/show_bug.cgi?id=90963
42900
42901         Reviewed by Tony Gentilcore.
42902
42903         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.
42904
42905         Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
42906                http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
42907                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
42908                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
42909                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
42910                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
42911                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
42912                http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
42913
42914         * GNUmakefile.list.am:
42915         * WebCore.gypi:
42916         * page/Performance.cpp:
42917         (WebCore::Performance::webkitGetEntries):
42918         (WebCore::Performance::webkitGetEntriesByType):
42919         (WebCore::Performance::webkitGetEntriesByName):
42920         (WebCore):
42921         (WebCore::Performance::webkitMark):
42922         (WebCore::Performance::webkitClearMarks):
42923         (WebCore::Performance::webkitMeasure):
42924         (WebCore::Performance::webkitClearMeasures):
42925         * page/Performance.h:
42926         (WebCore):
42927         (Performance):
42928         * page/Performance.idl:
42929         * page/PerformanceMark.h: Added.
42930         (WebCore):
42931         (PerformanceMark):
42932         (WebCore::PerformanceMark::create):
42933         (WebCore::PerformanceMark::PerformanceMark):
42934         (WebCore::PerformanceMark::~PerformanceMark):
42935         * page/PerformanceMark.idl: Added.
42936         * page/PerformanceMeasure.h: Added.
42937         (WebCore):
42938         (PerformanceMeasure):
42939         (WebCore::PerformanceMeasure::create):
42940         (WebCore::PerformanceMeasure::PerformanceMeasure):
42941         (WebCore::PerformanceMeasure::~PerformanceMeasure):
42942         * page/PerformanceMeasure.idl: Added.
42943         * page/PerformanceUserTiming.cpp: Added.
42944         (WebCore):
42945         (WebCore::UserTiming::UserTiming):
42946         (WebCore::insertPerformanceEntry):
42947         (WebCore::clearPeformanceEntries):
42948         (WebCore::UserTiming::mark):
42949         (WebCore::UserTiming::clearMarks):
42950         (WebCore::UserTiming::findExistingMarkStartTime):
42951         (WebCore::UserTiming::measure):
42952         (WebCore::UserTiming::clearMeasures):
42953         * page/PerformanceUserTiming.h: Added.
42954         (WebCore):
42955         (UserTiming):
42956         (WebCore::UserTiming::create):
42957
42958 2012-10-17  James Robinson  <jamesr@chromium.org>
42959
42960         Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.
42961
42962         * platform/graphics/GraphicsLayerUpdater.h:
42963         (GraphicsLayerUpdater):
42964
42965 2012-10-17  Ryuan Choi  <ryuan.choi@samsung.com>
42966
42967         Attempt to fix the build after r131680.
42968
42969         Unreviewed build fix.
42970
42971         * dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h
42972
42973 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42974
42975         StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
42976         https://bugs.webkit.org/show_bug.cgi?id=99560
42977
42978         Reviewed by Eric Seidel.
42979
42980         Previously we only compared the first ContentData in the linked
42981         list of ContentData's which meant that if the resolved style
42982         for content had the same prefix we wouldn't update the content.
42983
42984         This patch adds a loop to compare each of the ContentData objects
42985         in the linked list.
42986
42987         Test: fast/css-generated-content/content-property-change.html
42988
42989         * rendering/style/StyleRareNonInheritedData.cpp:
42990         (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
42991
42992 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42993
42994         Remove StyleContentType since it's not used anymore
42995         https://bugs.webkit.org/show_bug.cgi?id=99659
42996
42997         Reviewed by Eric Seidel.
42998
42999         Remove StyleContentType enum since it's not used anymore and
43000         make the is*() type checking methods on ContentData public.
43001
43002         No new tests needed, this is just deleting dead code.
43003
43004         * rendering/style/ContentData.h:
43005         (ContentData):
43006         * rendering/style/RenderStyleConstants.h:
43007
43008 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
43009
43010         Create a GraphicsLayerUpdater class that will do periodic layer flushes for layer trees containing tile caches
43011         https://bugs.webkit.org/show_bug.cgi?id=99518
43012
43013         Reviewed by Dean Jackson.
43014
43015         When using tile caches in place of tiled layers, we need to recompute their
43016         visible area periodically while animations and scrolling are happening.
43017         Make a new class, GraphicsLayerUpdater, to handle this updating.
43018         Internally, it uses DisplayRefreshMonitor to generate the periodic updates.
43019         
43020         GraphicsLayer clients are notified that layers need periodic updates. Clients
43021         are free to make use of GraphicsLayerUpdater to handle this updating, as
43022         RenderLayerCompositor does.
43023         
43024         Also do some minor refactoring of methods in RenderLayerCompositor that
43025         get to Page.
43026
43027         * CMakeLists.txt: Add GraphicsLayerUpdater.cpp to the build.
43028         * GNUmakefile.list.am: Ditto.
43029         * PlatformBlackBerry.cmake: Ditto.
43030         * Target.pri: Ditto.
43031         * WebCore.gypi: Ditto.
43032         * WebCore.vcproj/WebCore.vcproj: Ditto.
43033         * WebCore.xcodeproj/project.pbxproj: Ditto.
43034         * dom/Document.cpp:
43035         (WebCore::Document::windowScreenDidChange): Tell the compositor that the screen
43036         changed, so it can tell the GraphicsLayerUpdater if it has one.
43037         * platform/graphics/GraphicsLayerClient.h:
43038         (WebCore::GraphicsLayerClient::notifyFlushBeforeDisplayRefresh): Method called
43039         for layers that need periodic updates, like tile cache layers.
43040         * platform/graphics/GraphicsLayerUpdater.cpp: Added. Uses DisplayRefreshMonitorManager
43041         to flush layers before the next refresh.
43042         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
43043         (WebCore::GraphicsLayerUpdater::~GraphicsLayerUpdater):
43044         (WebCore::GraphicsLayerUpdater::scheduleUpdate):
43045         (WebCore::GraphicsLayerUpdater::screenDidChange):
43046         (WebCore::GraphicsLayerUpdater::displayRefreshFired):
43047         * platform/graphics/GraphicsLayerUpdater.h: Added.
43048         (GraphicsLayerUpdaterClient): Clients need to implement flushLayers().
43049         (WebCore::GraphicsLayerUpdaterClient::~GraphicsLayerUpdaterClient):
43050         * platform/graphics/ca/GraphicsLayerCA.cpp:
43051         (WebCore::GraphicsLayerCA::recursiveCommitChanges): For tile cache layers,
43052         tell the client that this layer should be updated soon to update the visible rect.
43053         * rendering/RenderLayerBacking.cpp:
43054         (WebCore::RenderLayerBacking::notifyFlushBeforeDisplayRefresh): Pass this message
43055         on to the compositor.
43056         * rendering/RenderLayerBacking.h:
43057         (RenderLayerBacking): Implement notifyFlushBeforeDisplayRefresh.
43058         Add OVERRIDE to all the client overrides.
43059         * rendering/RenderLayerCompositor.cpp:
43060         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): Use helper to get to Page.
43061         (WebCore::RenderLayerCompositor::scheduleLayerFlush): Ditto.
43062         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Soon we're going to be asking
43063         about the current state of animations inside the flush (for visible rect computation), so we
43064         need a AnimationUpdateBlock to make sure all the animation times are in sync.
43065         (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh): Make a GraphicsLayerUpdater
43066         if necessary, and tell it to update soon.
43067         (WebCore::RenderLayerCompositor::flushLayers): The GraphicsLayerUpdater client method.
43068         Just does a flush. For now, considers this Frame as the flush root, which will need fixing for iframes.
43069         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Use helper to get to Page.
43070         (WebCore::RenderLayerCompositor::deviceScaleFactor): Ditto.
43071         (WebCore::RenderLayerCompositor::pageScaleFactor): Ditto.
43072         (WebCore::RenderLayerCompositor::destroyRootLayer): Ditto.
43073         (WebCore::RenderLayerCompositor::windowScreenDidChange): Tell the updater if we have one.
43074         (WebCore::RenderLayerCompositor::scrollingCoordinator): Use helper to get to Page.
43075         (WebCore::RenderLayerCompositor::graphicsLayerFactory): Use helper to get to Page.
43076         (WebCore::RenderLayerCompositor::page): The helper.
43077         * rendering/RenderLayerCompositor.h:
43078         (RenderLayerCompositor): Add OVERRIDE to all the client overrides.
43079
43080 2012-10-17  Eric Seidel  <eric@webkit.org>
43081
43082         Make dom-query.html slightly faster by removing unnecessary ref-churn in StringTraits
43083         https://bugs.webkit.org/show_bug.cgi?id=99652
43084
43085         Reviewed by Adam Barth.
43086
43087         My testing showed this moved dom-query.html from  465560 runs/s to 479019
43088         which is about 2% if I'm doing my math correctly.
43089
43090         I suspect that's due to avoiding the ref-churn we were incurring by using
43091         return-by-value symantics here.
43092
43093         This is just the tip of the iceburg. :)
43094
43095         * bindings/v8/V8StringResource.cpp:
43096         (StringTraits):
43097         * bindings/v8/V8ValueCache.h:
43098         (WebCore::WebCoreStringResource::webcoreString):
43099         (WebCore::WebCoreStringResource::atomicString):
43100
43101 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43102
43103         Move handling of CSSPropertyWebkitLineClamp from StyleResolver into StyleBuilder.
43104         https://bugs.webkit.org/show_bug.cgi?id=99534
43105
43106         Reviewed by Alexis Menard.
43107
43108         One small step towards removing the giant switch statement in StyleResolver, this patch moves line clamp handling into StyleBuilder.
43109
43110         Covered by fast/overflow/line-clamp.html
43111
43112         * css/StyleBuilder.cpp:
43113         (WebCore::StyleBuilder::StyleBuilder):
43114         * css/StyleResolver.cpp:
43115         (WebCore::StyleResolver::applyProperty):
43116
43117 2012-10-17  Andy Estes  <aestes@apple.com>
43118
43119         [WebKit2] Add removeChild: to WKDOMNode and make WKDOMText.data read/write
43120         https://bugs.webkit.org/show_bug.cgi?id=99662
43121
43122         Reviewed by Sam Weinig.
43123
43124         Export needed symbols.
43125
43126         * WebCore.exp.in:
43127
43128 2012-10-17  Adam Barth  <abarth@webkit.org>
43129
43130         [V8] Don't generate code that declares visitDOMWrapper if we're not going to generate the implementation
43131         https://bugs.webkit.org/show_bug.cgi?id=99653
43132
43133         Reviewed by Eric Seidel.
43134
43135         * bindings/scripts/CodeGeneratorV8.pm:
43136         (GenerateHeader):
43137
43138 2012-10-17  David Grogan  <dgrogan@chromium.org>
43139
43140         IndexedDB: Destroy leveldb directory if unknown schema is detected
43141         https://bugs.webkit.org/show_bug.cgi?id=99636
43142
43143         Reviewed by Tony Chang.
43144
43145         chromium browser test in progress at
43146         https://codereview.chromium.org/11196029
43147
43148         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
43149         (WebCore):
43150         (WebCore::isSchemaKnown):
43151         Return true when the schema key doesn't exist because new databases
43152         won't have one.
43153
43154         (WebCore::setUpMetadata):
43155         (WebCore::IDBLevelDBBackingStore::open):
43156         Piggy-back on existing leveldb::destroy code.
43157
43158 2012-10-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>
43159
43160         Incorrect rendering of borders on <col> with span > 1
43161         https://bugs.webkit.org/show_bug.cgi?id=76246
43162
43163         Reviewed by Julien Chaffraix.
43164
43165         The HTML5 rendering specification [10.2.2 - Display Types] states that
43166         "For the purposes of the CSS table model, the col element is expected to
43167         be treated as if it was present as many times as its span attribute
43168         specifies."
43169         We should thus apply a col element's border as if the element is present
43170         as many number of times as its span attribute.
43171
43172         Apart from this, we should also treat the col and its enclosing colgroup
43173         separately while computing the collapsed borders.
43174
43175         Test: fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html
43176
43177         * rendering/RenderTableCell.cpp:
43178         (WebCore::RenderTableCell::computeCollapsedStartBorder):
43179         (WebCore::RenderTableCell::computeCollapsedEndBorder):
43180         Borders from col and its enclosing colgroup element should be handled
43181         separately, while considering the preceeding col's end border (for start
43182         border computation) and the next col's start border (for end border
43183         computation).
43184
43185         Also, have made changes for handling of col elements with span attribute as
43186         per the specification. We now apply the border (start or end) of the col
43187         element irrespective of whether it has any span specified for it or not.
43188
43189 2012-10-17  Tom Sepez  <tsepez@chromium.org>
43190
43191         Crash in ContainerNode::removeAllChildren()
43192         https://bugs.webkit.org/show_bug.cgi?id=98443
43193
43194         Reviewed by Eric Carlson.
43195
43196         This patch makes the errorEventSender added in WebKit Revision 112190 interact
43197         with the updatedHasPendingLoadEvent() mechanism in the same manner as the other
43198         existing event senders.
43199
43200         Test: http/tests/security/video-poster-cross-origin-crash2.html
43201
43202         * loader/ImageLoader.cpp:
43203         (WebCore::ImageLoader::setImage):
43204         (WebCore::ImageLoader::updateFromElement):
43205         (WebCore::ImageLoader::notifyFinished):
43206         (WebCore::ImageLoader::updatedHasPendingEvent):
43207         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
43208         (WebCore::ImageLoader::dispatchPendingLoadEvent):
43209         * loader/ImageLoader.h:
43210         (ImageLoader):
43211
43212 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43213
43214         IndexedDB: Closing connection in upgradeneeded should result in error event
43215         https://bugs.webkit.org/show_bug.cgi?id=99486
43216
43217         Reviewed by Tony Chang.
43218
43219         The IDB spec requires that "...if connection is closed, return a DOMError of type AbortError".
43220         This was being handled during the "enqueue" phase, which was too early either for synchronously
43221         executing scripts or asynchronous messaging in multiprocess ports (crbug.com/150691). Move the
43222         logic to the "dispatch" phase.
43223
43224         Test: storage/indexeddb/intversion-close-in-oncomplete.html
43225
43226         * Modules/indexeddb/IDBOpenDBRequest.cpp:
43227         (WebCore::IDBOpenDBRequest::onSuccess): Move success to error morphing from here...
43228         (WebCore::IDBOpenDBRequest::dispatchEvent): To here.
43229         * Modules/indexeddb/IDBOpenDBRequest.h:
43230         (IDBOpenDBRequest):
43231
43232 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
43233
43234         Use virtual dispatch to create ContentData renderers
43235         https://bugs.webkit.org/show_bug.cgi?id=99646
43236
43237         Reviewed by Eric Seidel.
43238
43239         ContentData are conceptually very similar to Nodes and we can use
43240         the same createRenderer pattern on them to simplify creating
43241         renderers for generated content. Now each ContentData class knows
43242         how to create its own renderer.
43243
43244         Previously we switched over the StyleContentType which required a
43245         case for CONTENT_NONE and made the code look like it could return
43246         null, but this case is actually impossible because no ContentData
43247         class ever has a type of CONTENT_NONE and no null checks are really
43248         needed.
43249
43250         This is the final step in removing dependence on StyleContentType.
43251
43252         No new tests needed, this is just a refactor.
43253
43254         * rendering/RenderObjectChildList.cpp: Remove createRendererForBeforeAfterContent.
43255         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
43256         * rendering/style/ContentData.cpp:
43257         (WebCore::ImageContentData::createRenderer):
43258         (WebCore):
43259         (WebCore::TextContentData::createRenderer):
43260         (WebCore::CounterContentData::createRenderer):
43261         (WebCore::QuoteContentData::createRenderer):
43262         * rendering/style/ContentData.h: Added a new virtual method createRenderer.
43263         (WebCore):
43264         (ContentData):
43265         (ImageContentData):
43266         (TextContentData):
43267         (CounterContentData):
43268         (QuoteContentData):
43269
43270 2012-10-17  Julien Chaffraix  <jchaffraix@webkit.org>
43271
43272         RenderLayer subtrees without any self-painting layer shouldn't be walked during hit testing
43273         https://bugs.webkit.org/show_bug.cgi?id=89393
43274
43275         Reviewed by Eric Seidel.
43276
43277         Performance optimization, covered by existing tests.
43278
43279         Bug 88888 added an peformance optimization for painting. As hit testing is very similar to
43280         painting, it would benefit from the same optimization.
43281
43282         On http://dglazkov.github.com/performance-tests/biggrid.html, with a 10,000 * 100 tables,
43283         it reduces the time to select some text inside a cell from 1-2 seconds to a usable time
43284         (I didn't measure the exact timing).
43285
43286         Note that as in bug 88888, the multi-column code is not covered by this optimization.
43287
43288         * rendering/RenderLayer.cpp:
43289         (WebCore::RenderLayer::hitTest):
43290         This is the entrance to the hit testing code so we check if we can bail out early.
43291
43292         (WebCore::RenderLayer::hitTestList):
43293         If we have no self-painting descendant layers, we can bail out.
43294
43295         (WebCore::RenderLayer::hitTestContents):
43296         (WebCore::RenderLayer::hitTestLayer):
43297         hitTest should filter the layers that call these functions. Added some ASSERT to
43298         make sure we don't mistakenly call them when could avoid it.
43299
43300 2012-10-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>
43301
43302         [Qt] Certain SVG content freezes QtWebKit
43303         https://bugs.webkit.org/show_bug.cgi?id=97258
43304
43305         Reviewed by Simon Hausmann.
43306
43307         Ensure dashpattern is well-formed by avoiding divisions by zero.
43308
43309         Test: svg/stroke/zero-width-hang.html
43310
43311         * platform/graphics/qt/GraphicsContextQt.cpp:
43312         (WebCore::GraphicsContext::setLineDash):
43313
43314 2012-10-17  Alec Flett  <alecflett@chromium.org>
43315
43316         IndexedDB: Explicitly send null/undefined/integers to frontend IDBCallbacks
43317         https://bugs.webkit.org/show_bug.cgi?id=99619
43318
43319         Reviewed by Adam Barth.
43320
43321         Rather than pass SerializedScriptValue tokens from the backend,
43322         send explicit null, (as onSuccess(static_cast<SerializedScriptValue*>(0)))
43323         undefined, (as onSucess()), and integers (as onSuccess(long long))
43324
43325         This reduces backend dependency on things that might require a JS
43326         interpreter on the backend.
43327
43328         No new tests, this is a refactor and existing tests cover
43329         correctness. Tests that might fail include:
43330
43331         Test: storage/indexeddb/index-count.html
43332         Test: storage/indexeddb/objectstore-count.html
43333         Test: storage/indexeddb/database-basics.html
43334
43335         * Modules/indexeddb/IDBCallbacks.h:
43336         (IDBCallbacks):
43337         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
43338         (WebCore::IDBCursorBackendImpl::advanceInternal):
43339         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
43340         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
43341         * Modules/indexeddb/IDBCursorBackendImpl.h:
43342         (WebCore::IDBCursorBackendImpl::value):
43343         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
43344         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
43345         * Modules/indexeddb/IDBIndex.cpp:
43346         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
43347         (WebCore::IDBIndexBackendImpl::openCursorInternal):
43348         (WebCore::IDBIndexBackendImpl::countInternal):
43349         (WebCore::IDBIndexBackendImpl::getInternal):
43350         * Modules/indexeddb/IDBObjectStore.cpp:
43351         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
43352         (WebCore::IDBObjectStoreBackendImpl::getInternal):
43353         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
43354         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
43355         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
43356         (WebCore::IDBObjectStoreBackendImpl::countInternal):
43357         * Modules/indexeddb/IDBRequest.cpp:
43358         (WebCore::IDBRequest::onSuccess):
43359         (WebCore):
43360         * Modules/indexeddb/IDBRequest.h:
43361         * Modules/indexeddb/IDBTransaction.cpp:
43362         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
43363         * Modules/indexeddb/IDBTransactionBackendImpl.h:
43364         * Modules/indexeddb/IDBTransactionBackendInterface.h:
43365         * bindings/v8/IDBBindingUtilities.cpp:
43366         (WebCore::deserializeIDBValue):
43367         * inspector/InspectorIndexedDBAgent.cpp:
43368         (WebCore):
43369
43370 2012-10-17  Nate Chapin  <japhet@chromium.org>
43371
43372         Move ResourceRequest construction out of SubresourceLoader
43373         https://bugs.webkit.org/show_bug.cgi?id=99627
43374
43375         Reviewed by Adam Barth.
43376
43377         CachedResource::load() fills out a bunch of http headers.
43378         SubresourceLoader::create() adds a bunch more. Merge them.
43379         Note that this merge requires a bit more care in CachedRawResource::canReuse(),
43380         because more headers are set directly on CachedResource::m_resourceRequest, rather
43381         than on a copy of it.
43382
43383         No new tests, no functionality change intended.
43384
43385         * loader/SubresourceLoader.cpp:
43386         (WebCore::SubresourceLoader::create):
43387         * loader/cache/CachedRawResource.cpp:
43388         (WebCore::shouldIgnoreHeaderForCacheReuse):
43389         (WebCore):
43390         (WebCore::CachedRawResource::canReuse):
43391         * loader/cache/CachedResource.cpp:
43392         (WebCore::CachedResource::failBeforeStarting):
43393         (WebCore):
43394         (WebCore::CachedResource::addAdditionalRequestHeaders):
43395         (WebCore::CachedResource::load):
43396         * loader/cache/CachedResource.h:
43397         (CachedResource):
43398
43399 2012-10-17  Anders Carlsson  <andersca@apple.com>
43400
43401         Clean up Vector.h
43402         https://bugs.webkit.org/show_bug.cgi?id=99622
43403
43404         Reviewed by Benjamin Poulain.
43405
43406         Fix fallout from removing std::max and std::min using declarations.
43407
43408         * loader/cache/CachedResource.cpp:
43409         (WebCore::CachedResource::currentAge):
43410
43411 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43412
43413         IndexedDB: Enforce unsigned long/unsigned long long ranges
43414         https://bugs.webkit.org/show_bug.cgi?id=99637
43415
43416         Reviewed by Tony Chang.
43417
43418         The IndexedDB spec has [EnforceRange] specified on unsigned long and unsigned long long
43419         arguments, which requires the implementation to throw TypeError for negative values or
43420         values that exceed 2^53-1 (maximum JS number that behaves like an integer) - and 0 is
43421         specifically forbidden by the APIs as well.
43422
43423         A more correct fix in the binding layer is in webkit.org/b/96798 but we can temporarily
43424         address this in the implementation.
43425
43426         Also refactor to prevent IDBFactory.open(name, -1) from triggering an internal code path.
43427
43428         Tests: storage/indexeddb/cursor-advance.html
43429                storage/indexeddb/intversion-bad-parameters.html
43430                storage/indexeddb/intversion-encoding.html
43431
43432         * Modules/indexeddb/IDBCursor.cpp:
43433         (WebCore::IDBCursor::advance): Validate argument range.
43434         * Modules/indexeddb/IDBCursor.h:
43435         (IDBCursor):
43436         * Modules/indexeddb/IDBCursor.idl: Drop "unsigned" qualifier as the binding code is
43437         not yet doing the correct validation.
43438         * Modules/indexeddb/IDBFactory.cpp: Refactor to prevent open(name, -1)
43439         (WebCore):
43440         (WebCore::IDBFactory::open): Validate the int version here, then pass to...
43441         (WebCore::IDBFactory::openInternal): ... this method.
43442         * Modules/indexeddb/IDBFactory.h:
43443         (IDBFactory):
43444         * Modules/indexeddb/IDBFactory.idl: Drop "unsigned" qualifier; meaningless to binding
43445         code right now, can be re-added once webkit.org/b/96798 lands.
43446
43447 2012-10-17  Tony Chang  <tony@chromium.org>
43448
43449         fast/forms/range/input-appearance-range-rtl.html off by one pixel
43450         https://bugs.webkit.org/show_bug.cgi?id=99625
43451
43452         Reviewed by Ojan Vafai.
43453
43454         Previously, we would assume that a vertical slider in RTL would render identically to
43455         a vertical slider in LTR. Due to differing thumb sizes, there is an off by one.
43456
43457         This worked in deprecated flexbox because it doesn't adjust for RTL when applying
43458         box-align: center.
43459
43460         Tests: fast/forms/range/input-appearance-range-rtl.html
43461
43462         * html/shadow/SliderThumbElement.cpp:
43463         (WebCore::RenderSliderContainer::layout): Force LTR for flexbox layout when vertical. We have to restore the old value
43464         just in case the user switches from vertical to horizontal.
43465
43466 2012-10-17  Michael Saboff  <msaboff@apple.com>
43467
43468         Creating a String from an NSString should check for all 8 bit strings
43469         https://bugs.webkit.org/show_bug.cgi?id=99392
43470
43471         Reviewed by Geoffrey Garen.
43472
43473         Use CFStringGetBytes() to try to get Latin1 data to create an 8 bit string.
43474
43475         No functional change, change covered by existing tests.
43476
43477         * platform/text/mac/StringMac.mm:
43478         (WTF::String::String):
43479
43480 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43481
43482         [EFL] Remove redundant OpenGL library addition from the build system.
43483         https://bugs.webkit.org/show_bug.cgi?id=99629
43484
43485         Reviewed by Rob Buis.
43486
43487         * PlatformEfl.cmake: Do not add OPENGL_gl_LIBRARY to
43488         WebCore_LIBRARIES, this is already done in CMakeLists.txt these
43489         days.
43490
43491 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43492
43493         [CMake] Set WebCore_LIBRARIES earlier.
43494         https://bugs.webkit.org/show_bug.cgi?id=99630
43495
43496         Reviewed by Rob Buis.
43497
43498         * CMakeLists.txt: Follow the style we use in other CMakeList.txt
43499         files and set the Foo_LIBRARIES variables before we start checking
43500         for optional features, as they might append other libraries to the
43501         list (it already happens with WTF_USE_3D_GRAPHICS, for example).
43502
43503 2012-10-17  Philip Rogers  <pdr@google.com>
43504
43505         Allow lazy initialization of SVG XML animated properties.
43506         https://bugs.webkit.org/show_bug.cgi?id=84657
43507
43508         Reviewed by Tim Horton.
43509
43510         When animating a property in the shadow tree, instance properties and tearoffs are created
43511         but they simply reference the animated element's animating properties.
43512
43513         When starting an animation for the first time (see SVGAnimateElement::resetAnimatedType),
43514         we initialize the root property and instance properties using startAnimValAnimation(...).
43515         If an instance property is added while the root property is animating, this initialization
43516         will not occur and we crash.
43517
43518         This patch updates the resetAnimValToBaseVal codepath to start (and initialize) an animated
43519         property if it is not already animating. After this patch, instance properties can be added
43520         in the middle of animation and they will be properly started/initialized.
43521
43522         Test: svg/animations/use-while-animating-crash.html
43523
43524         * svg/SVGAnimatedTypeAnimator.h:
43525         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
43526         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
43527         (WebCore::SVGAnimatedTypeAnimator::executeAction):
43528
43529 2012-10-17  Dan Carney  <dcarney@google.com>
43530
43531         Bind isolatedWorldSecurityOrigin to world
43532         https://bugs.webkit.org/show_bug.cgi?id=99582
43533
43534         Reviewed by Adam Barth.
43535
43536         Security origin of isolated worlds was not previously set at the world
43537         level, although it could have been. 
43538
43539         No new tests. No change in functionality.
43540
43541         * bindings/v8/DOMWrapperWorld.cpp:
43542         (WebCore::DOMWrapperWorld::deallocate):
43543         (WebCore):
43544         (WebCore::isolatedWorldSecurityOrigins):
43545         (WebCore::DOMWrapperWorld::isolatedWorldSecurityOrigin):
43546         (WebCore::DOMWrapperWorld::setIsolatedWorldSecurityOrigin):
43547         (WebCore::DOMWrapperWorld::clearIsolatedWorldSecurityOrigin):
43548         * bindings/v8/DOMWrapperWorld.h:
43549         (DOMWrapperWorld):
43550         (WebCore::DOMWrapperWorld::isIsolatedWorldId):
43551         (WebCore::DOMWrapperWorld::isIsolatedWorld):
43552         * bindings/v8/ScriptController.cpp:
43553         (WebCore::ScriptController::resetIsolatedWorlds):
43554         (WebCore::ScriptController::evaluateInIsolatedWorld):
43555         (WebCore::ScriptController::collectIsolatedContexts):
43556         * bindings/v8/ScriptController.h:
43557         (ScriptController):
43558         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
43559         * bindings/v8/V8DOMWindowShell.cpp:
43560         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43561         * bindings/v8/V8DOMWindowShell.h:
43562         (V8DOMWindowShell):
43563         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
43564         (WebCore::V8XMLHttpRequest::constructorCallback):
43565
43566 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
43567
43568         GraphicsLayer visible rect computation needs to use the current animating transform
43569         https://bugs.webkit.org/show_bug.cgi?id=99529
43570
43571         Reviewed by Dean Jackson.
43572
43573         If we're running an accelerated animation of transform
43574         on a GraphicsLayerCA, the current value of the transform won't
43575         be reflected in the GraphicsLayer's m_transform. However,
43576         we need the current value of the transform in order to correctly
43577         compute the visible rect of this layer and descendants.
43578         
43579         Add a function to GraphicsLayerClient to retrieve the current
43580         value of the transform from the client.
43581         
43582         RenderLayer's currentTransform() used to return a transform
43583         with transform-origin baked in; GraphicsLayerClient needs one
43584         that excludes transform-origin, so enhance RenderLayer::currentTransform()
43585         to be able to produce either.
43586
43587         Tests: compositing/visible-rect/animated-from-none.html
43588                compositing/visible-rect/animated.html
43589
43590         * platform/graphics/GraphicsLayerClient.h:
43591         (WebCore):
43592         (GraphicsLayerClient):
43593         (WebCore::GraphicsLayerClient::getCurrentTransform):
43594         * platform/graphics/ca/GraphicsLayerCA.cpp:
43595         (WebCore::GraphicsLayerCA::computeVisibleRect):
43596         * rendering/RenderLayer.cpp:
43597         (WebCore::RenderLayer::currentTransform):
43598         * rendering/RenderLayer.h:
43599         * rendering/RenderLayerBacking.cpp:
43600         (WebCore::RenderLayerBacking::currentTransform):
43601         * rendering/RenderLayerBacking.h:
43602         (RenderLayerBacking):
43603
43604 2012-10-17  Sadrul Habib Chowdhury  <sadrul@chromium.org>
43605
43606         plugins: Allow a plugin to dictate whether it can receive drag events or not.
43607         https://bugs.webkit.org/show_bug.cgi?id=99355
43608
43609         Reviewed by Tony Chang.
43610
43611         When doing a drag over a plugin, ask the plugin whether it can accept
43612         drag/drop to decide whether drag/drop is possible or not. At present,
43613         plugins do not receive drag events through WebCore (i.e. various
43614         implementations of PluginView::handleMouseEvent ignores the
43615         drop-events). This change makes it possible for the ports to ask the
43616         plugin first to decide whether it can (or wants to) accept drag events.
43617         The default implementation remains the same, i.e. plugins do not receive
43618         drag events. For chromium, the overridden implementation uses the
43619         WebPlugin interface to check whether the plugin can accept drag events.
43620
43621         * html/HTMLPlugInElement.cpp:
43622         (WebCore::HTMLPlugInElement::canProcessDrag):
43623         (WebCore):
43624         * html/HTMLPlugInElement.h:
43625         (WebCore):
43626         (HTMLPlugInElement):
43627         * page/DragController.cpp:
43628         (WebCore::DragController::canProcessDrag):
43629         * plugins/PluginViewBase.h:
43630         (WebCore):
43631         (WebCore::PluginViewBase::canProcessDrag):
43632
43633 2012-10-17  Andreas Kling  <kling@webkit.org>
43634
43635         Shrink EventTargetData by making firingEventListeners vector optional.
43636         <http://webkit.org/b/99532>
43637         <rdar://problem/12515099>
43638
43639         Reviewed by Anders Carlsson.
43640
43641         The majority of event listeners never actually fire, and EventTargetData::firingEventListeners
43642         is just sitting there taking up space. Make it an OwnPtr instead, shrinking EventTargetData
43643         by 48 bytes and progressing Membuster3 by 395kB.
43644
43645         * dom/EventTarget.cpp:
43646         (WebCore::EventTarget::removeEventListener):
43647         (WebCore::EventTarget::fireEventListeners):
43648         (WebCore::EventTarget::removeAllEventListeners):
43649         * dom/EventTarget.h:
43650         (WebCore::EventTarget::isFiringEventListeners):
43651
43652 2012-10-17  Christophe Dumez  <christophe.dumez@intel.com>
43653
43654         xss-DENIED-xsl-document-securityOrigin.xml crashes with icon assertion
43655         https://bugs.webkit.org/show_bug.cgi?id=99571
43656
43657         Reviewed by Kenneth Rohde Christiansen.
43658
43659         Check that the iconURL is not empty in IconController::continueLoadWithDecision()
43660         to avoid hitting assertions later when trying to commit this empty URL to the
43661         database. IconController::url() may indeed return an empty URL but there was
43662         no check for it.
43663
43664         No new tests, already covered by http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml.
43665
43666         * loader/icon/IconController.cpp:
43667         (WebCore::IconController::continueLoadWithDecision):
43668
43669 2012-10-17  Byungwoo Lee  <bw80.lee@samsung.com>
43670
43671         Fix build warnings : -Wunused-parameter, -Wunused-variable
43672         https://bugs.webkit.org/show_bug.cgi?id=99539
43673
43674         Reviewed by Kentaro Hara.
43675
43676         Fix build warnings about unused parameter or unused variable when
43677         WTF_USE_TILED_BACKING_STORE option is enabled.
43678
43679         * html/shadow/HTMLContentElement.cpp:
43680         (WebCore::contentTagName):
43681         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
43682         (WebCore::GraphicsContext3D::getImageData):
43683         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
43684         (WebCore::GraphicsContext3DPrivate::createSurface):
43685         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
43686         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
43687         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
43688         * platform/graphics/texmap/TextureMapper.h:
43689         (WebCore::BitmapTexture::canReuseWith):
43690         (WebCore::TextureMapper::beginPainting):
43691         * platform/graphics/texmap/TextureMapperGL.cpp:
43692         (WebCore::TextureMapperGL::drawRepaintCounter):
43693         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
43694         (WebCore::BitmapTextureImageBuffer::updateContents):
43695         * platform/graphics/texmap/TextureMapperImageBuffer.h:
43696         * platform/graphics/texmap/TextureMapperLayer.cpp:
43697         (WebCore::TextureMapperLayer::sortByZOrder):
43698         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
43699         * rendering/RenderLayerCompositor.cpp:
43700         (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
43701
43702 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
43703
43704         Dynamically added elements do not get re-projected.
43705         https://bugs.webkit.org/show_bug.cgi?id=99227
43706
43707         Reviewed by Dimitri Glazkov.
43708
43709         When distribution happens, we have to invalidate its host shadow's distribution, since the children of the host
43710         is changed.
43711
43712         Test: fast/dom/shadow/content-reprojection-dynamic.html
43713
43714         * html/shadow/ContentDistributor.cpp:
43715         (WebCore::ContentDistributor::distribute):
43716
43717 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43718
43719         Web Inspector: no "delete watch expression" context menu item when clicking on the expression value
43720         https://bugs.webkit.org/show_bug.cgi?id=99602
43721
43722         Reviewed by Pavel Feldman.
43723
43724         Add delete items to the watch expression's value's context menu.
43725
43726         * inspector/front-end/ObjectPropertiesSection.js:
43727         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
43728         (WebInspector.ObjectPropertyTreeElement.prototype.populateContextMenu):
43729         * inspector/front-end/WatchExpressionsSidebarPane.js:
43730         (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
43731         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
43732
43733 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43734
43735         Web Inspector: [Regression] Undoing script changes does not restore breakpoints.
43736         https://bugs.webkit.org/show_bug.cgi?id=99598
43737
43738         Reviewed by Pavel Feldman.
43739
43740         workingCopyChanged now dispatches did/willMergeToVM instead of did/willDivergeFromVM
43741         when change returns uiSourceCode to non dirty state.
43742         Added wasDirty parameter to workingCopyChanged event.
43743
43744         Test: inspector/debugger/live-edit-breakpoints.html
43745
43746         * inspector/front-end/ResourceScriptMapping.js:
43747         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
43748         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
43749         * inspector/front-end/UISourceCode.js:
43750         (WebInspector.UISourceCode.prototype.setWorkingCopy):
43751
43752 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43753
43754         [Qt] Avoid re-creating CSSGrammar.cpp with each (incremental) build
43755
43756         Reviewed by Tor Arne Vestbø.
43757
43758         The expected output is CSSGrammar.cpp and the input file used to be CSSGrammar.y,
43759         so ${QMAKE_FILE_BASE}.cpp did the correct transformation. Recently the input has
43760         changed to CSSGrammar.y.in, in which case the ${QMAKE_FILE_BASE} is CSSGrammar.y
43761         unfortunately. The resulting target CSSGrammar.y.cpp will never be created and
43762         therefore the target will always run.
43763
43764         * DerivedSources.pri:
43765
43766 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43767
43768         Unreviewed fix for ImageSourceCG.
43769
43770         * platform/graphics/cg/ImageSourceCG.cpp:
43771         (WebCore::ImageSource::reportMemoryUsage):
43772
43773 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43774
43775         Unreviewed fix for compilation on CG bots.
43776
43777         * platform/graphics/cg/ImageSourceCG.cpp:
43778
43779 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
43780
43781         Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
43782         https://bugs.webkit.org/show_bug.cgi?id=99540
43783
43784         Reviewed by Yury Semikhatsky.
43785
43786         * platform/graphics/ImageSource.cpp:
43787         (WebCore::ImageSource::reportMemoryUsage):
43788         (WebCore):
43789         * platform/graphics/ImageSource.h:
43790         (ImageSource):
43791         * platform/image-decoders/ImageDecoder.cpp:
43792         (WebCore::ImageFrame::reportMemoryUsage):
43793         (WebCore):
43794         (WebCore::ImageDecoder::reportMemoryUsage):
43795         * platform/image-decoders/ImageDecoder.h:
43796         (ImageFrame):
43797         (ImageDecoder):
43798         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
43799         (WebCore::ImageFrame::reportMemoryUsage):
43800         (WebCore):
43801
43802 2012-10-17  Zeno Albisser  <zeno@webkit.org>
43803
43804         [Qt] Fix build on Mac OSX 10.6 and earlier.
43805         https://bugs.webkit.org/show_bug.cgi?id=99595
43806
43807         Reviewed by Simon Hausmann.
43808
43809         * Target.pri:
43810
43811 2012-10-17  Pavel Feldman  <pfeldman@chromium.org>
43812
43813         Web Inspector: display "disconnected" message when remote debugging terminates
43814         https://bugs.webkit.org/show_bug.cgi?id=99316
43815
43816         Reviewed by Yury Semikhatsky.
43817
43818         Otherwise, it is not clear that the front-end is no longer functional.
43819
43820         * inspector/front-end/InspectorFrontendHostStub.js:
43821         (WebInspector.RemoteDebuggingTerminatedScreen):
43822         * inspector/front-end/inspector.js:
43823         (WebInspector.loaded.WebInspector.socket.onclose):
43824         (WebInspector.loaded):
43825
43826 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43827
43828         Web Inspector: delete watch expression button overlaps with the expression value
43829         https://bugs.webkit.org/show_bug.cgi?id=99569
43830
43831         Reviewed by Vsevolod Vlasov.
43832
43833         Delete watch expression button now doesn't overlap with the watch expression.
43834
43835         * inspector/front-end/inspector.css:
43836         (.properties-tree.watch-expressions > li > .value):
43837
43838 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43839
43840         Move handling of CSSPropertyPointerEvents from StyleResolver into StyleBuilder.
43841         https://bugs.webkit.org/show_bug.cgi?id=99536
43842
43843         Reviewed by Alexis Menard.
43844
43845         One small step towards removing the giant switch statement in StyleResolver,
43846         this patch moves pointer event property into StyleBuilder.
43847
43848         Covered by fast/events/pointer-events.html and fast/events/pointer-events-2.html.
43849
43850         * css/StyleBuilder.cpp:
43851         (WebCore::StyleBuilder::StyleBuilder):
43852         * css/StyleResolver.cpp:
43853         (WebCore::StyleResolver::applyProperty):
43854
43855 2012-10-17  Keishi Hattori  <keishi@webkit.org>
43856
43857         Localized date should be based on LDML
43858         https://bugs.webkit.org/show_bug.cgi?id=99570
43859
43860         Reviewed by Kent Tamura.
43861
43862         Localized date should be based on LDML to match the format inside DateTimeEditElement.
43863
43864         No new tests. Covered by LocaleMacTest.formatDate and LocaleWinTest.formatDate.
43865
43866         * platform/text/LocaleICU.cpp: Removed formatDateTime.
43867         * platform/text/LocaleICU.h:
43868         (LocaleICU):
43869         * platform/text/LocaleNone.cpp: Removed formatDateTime.
43870         (LocaleNone):
43871         * platform/text/LocaleWin.cpp: Removed formatDateTime and formatDate.
43872         (WebCore):
43873         * platform/text/LocaleWin.h:
43874         (LocaleWin):
43875         * platform/text/Localizer.cpp:
43876         (WebCore::DateTimeStringBuilder::visitField): Added support for year/month/day.
43877         (WebCore::Localizer::formatDateTime): Creates the formatted string based on the format from dateFormat().
43878         * platform/text/Localizer.h:
43879         * platform/text/mac/LocaleMac.h:
43880         (LocaleMac):
43881         * platform/text/mac/LocaleMac.mm: Removed formatDateTime.
43882
43883 2012-10-17  Harald Alvestrand  <hta@google.com>
43884
43885         Implement the Selector argument to RTCPeerConnection.getStats
43886         https://bugs.webkit.org/show_bug.cgi?id=99460
43887
43888         Reviewed by Adam Barth.
43889
43890         The change adds two new parameters to the RTCStatsRequest object:
43891         stream and component. Together these are enough to identify a
43892         MediaStreamTrack.
43893
43894         Test: fast/mediastream/RTCPeerConnection-statsSelector.html
43895
43896         * Modules/mediastream/MediaStreamTrack.cpp:
43897         (WebCore::MediaStreamTrack::streamDescriptor):
43898         (WebCore):
43899         * Modules/mediastream/MediaStreamTrack.h:
43900         * Modules/mediastream/RTCPeerConnection.cpp:
43901         (WebCore::RTCPeerConnection::getStats):
43902         * Modules/mediastream/RTCStatsRequestImpl.cpp:
43903         (WebCore::RTCStatsRequestImpl::create):
43904         (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
43905         (WebCore::RTCStatsRequestImpl::hasSelector):
43906         (WebCore):
43907         (WebCore::RTCStatsRequestImpl::stream):
43908         (WebCore::RTCStatsRequestImpl::component):
43909         * Modules/mediastream/RTCStatsRequestImpl.h:
43910         (RTCStatsRequestImpl):
43911         * platform/chromium/support/WebRTCStatsRequest.cpp:
43912         (WebKit):
43913         (WebKit::WebRTCStatsRequest::hasSelector):
43914         (WebKit::WebRTCStatsRequest::stream):
43915         (WebKit::WebRTCStatsRequest::component):
43916         * platform/mediastream/RTCStatsRequest.h:
43917         (WebCore):
43918         (RTCStatsRequest):
43919
43920 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43921
43922         [Qt] Enable use of more AllInOne files
43923         https://bugs.webkit.org/show_bug.cgi?id=99579
43924
43925         Reviewed by Tor Arne Vestbø.
43926
43927         The AllInOne files reduce pressure during final link time because the object files contain less duplicated
43928         symbols.
43929
43930         * Target.pri: Add HTMLElementsAllInOne, EditingAllInOne and RenderingAllInOne to the build
43931         * editing/EditingAllInOne.cpp: Place a #if USE(CF) around the inclusion of SmartReplaceCF.cpp
43932         * html/HTMLElementsAllInOne.cpp: Move HTMLPlugInElement.cpp to the top to fix builds on X11 based platforms
43933         where the X headers get confused by the "Region" type that's also declared in WebCore.
43934         * rendering/RenderingAllInOne.cpp: Fix build on case-sensitive file systems (Plugin -> PlugIn) and added a
43935         #if PLATFORM(WIN) around the inclusion of RenderThemeWin.cpp.
43936
43937 2012-10-17  Kent Tamura  <tkent@chromium.org>
43938
43939         REGRESSION(r131421): Text baseline becomes incorrect after re-layout of input[type=time]
43940         https://bugs.webkit.org/show_bug.cgi?id=99572
43941
43942         Reviewed by Kentaro Hara.
43943
43944         We use flexible box since r131421, and it seems text baseline becomes
43945         incorrect if there are text nodes in a flex container.
43946
43947         Test: fast/forms/time-multiple-fields/time-multiple-fields-static-relayout.html
43948
43949         * css/html.css:
43950         (input::-webkit-datetime-edit-text): Added.
43951         * html/shadow/DateTimeEditElement.cpp:
43952         (WebCore::DateTimeEditBuilder::visitLiteral):
43953         Wrap text with an element with ::-webkit-datetime-edit-text.
43954
43955 2012-10-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>, Michal Roj <m.roj@samsung.com>
43956
43957         [WK2][EFL] Implementation of spellchecking feature.
43958         https://bugs.webkit.org/show_bug.cgi?id=91854
43959
43960         Reviewed by Gyuyoung Kim.
43961
43962         * PlatformEfl.cmake:
43963         Add enchant-related compiler flags: header paths and the library flag.
43964
43965 2012-10-17  Alexander Pavlov  <apavlov@chromium.org>
43966
43967         Web Inspector: Avoid style updates when retrieving the inline stylesheet text
43968         https://bugs.webkit.org/show_bug.cgi?id=99576
43969
43970         Reviewed by Vsevolod Vlasov.
43971
43972         Avoid using innerText() to retrieve inline stylesheet text, which may result in style and layout updates.
43973
43974         * inspector/InspectorStyleSheet.cpp:
43975         (WebCore::InspectorStyleSheet::inlineStyleSheetText):
43976
43977 2012-10-17  Patrick Gansterer  <paroga@webkit.org>
43978
43979         Build fix for WinCE after r131365.
43980
43981         * platform/graphics/GlyphBuffer.h:
43982         (WebCore::GlyphBufferAdvance::width):
43983         * platform/graphics/wince/FontWinCE.cpp:
43984         (WebCore::cursorToX):
43985         * platform/graphics/wince/GraphicsContextWinCE.cpp:
43986         (WebCore::GraphicsContext::drawText):
43987
43988 2012-10-17  Mike West  <mkwst@chromium.org>
43989
43990         V8 should throw a more descriptive exception when blocking 'eval' via CSP.
43991         https://bugs.webkit.org/show_bug.cgi?id=94332
43992
43993         Reviewed by Adam Barth.
43994
43995         Following up on https://bugs.webkit.org/show_bug.cgi?id=94331, this
43996         patch wires up the new error message mechanism to V8, and updates the
43997         Chromium test expectations accordingly.
43998
43999         * bindings/v8/ScriptController.cpp:
44000         (WebCore::ScriptController::disableEval):
44001             Pass 'errorMessage' through to V8.
44002         * bindings/v8/V8DOMWindowShell.cpp:
44003         (WebCore::V8DOMWindowShell::initializeIfNeeded):
44004             Grab the error message from ContentSecurityPolicy, and pass it
44005             through to V8.
44006         * bindings/v8/WorkerContextExecutionProxy.cpp:
44007         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
44008         (WebCore::WorkerContextExecutionProxy::evaluate):
44009         (WebCore::WorkerContextExecutionProxy::setEvalAllowed):
44010         * bindings/v8/WorkerContextExecutionProxy.h:
44011         (WorkerContextExecutionProxy):
44012             Convert 'm_disableEvalPending' to a string to store the current
44013             error message, and use it to set the eval state.
44014         * bindings/v8/WorkerScriptController.cpp:
44015         (WebCore::WorkerScriptController::disableEval):
44016             Pass 'errorMessage' through to V8.
44017
44018 2012-10-17  MORITA Hajime  <morrita@google.com>
44019
44020         Assertion failed on HTMLFormControlElement.cpp: updateFromElementCallback()
44021         https://bugs.webkit.org/show_bug.cgi?id=99566
44022
44023         Reviewed by Kent Tamura.
44024
44025         It had a too optimistic assertion. This change removes it.
44026
44027         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing.html
44028
44029         * html/HTMLFormControlElement.cpp:
44030         (WebCore::updateFromElementCallback):
44031
44032 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44033
44034         Web Inspector: When dirty uiSourceCode is saved to disk from scripts navigator context menu working copy is not committed.
44035         https://bugs.webkit.org/show_bug.cgi?id=99555
44036
44037         Reviewed by Yury Semikhatsky.
44038
44039         Save As context menu handler now commits working copy for dirty UISourceCodes.
44040
44041         * inspector/front-end/HandlerRegistry.js:
44042
44043 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44044
44045         Web Inspector: Stylesheets saved with FileManager are not saved to disk when edited from Elements panel.
44046         https://bugs.webkit.org/show_bug.cgi?id=99554
44047
44048         Reviewed by Yury Semikhatsky.
44049
44050         Moved saving to disk from SourceFrame to UISourceCode.
44051
44052         * inspector/front-end/SourceFrame.js:
44053         (WebInspector.SourceFrame.prototype._commitEditing):
44054         * inspector/front-end/UISourceCode.js:
44055         (WebInspector.UISourceCode.prototype._commitContent):
44056
44057 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
44058
44059         Web Inspector: [Regression] SASS sources are not saved to disk.
44060         https://bugs.webkit.org/show_bug.cgi?id=99551
44061
44062         Reviewed by Yury Semikhatsky.
44063
44064         Added resource null checks.
44065
44066         * inspector/front-end/StylesSourceMapping.js:
44067         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
44068
44069 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
44070
44071         Clean up ContentData operator overloads
44072         https://bugs.webkit.org/show_bug.cgi?id=99556
44073
44074         Reviewed by Eric Seidel.
44075
44076         Use virtual dispatch for checking ContentData equality instead
44077         of a switch over the type. This the first step in getting rid
44078         of the StyleContentType enum and all the switch statements over
44079         the type().
44080
44081         No tests needed, this is just a refactor.        
44082
44083         * rendering/style/ContentData.cpp:
44084         * rendering/style/ContentData.h:
44085         (ContentData):
44086         (WebCore::operator==):
44087         (WebCore):
44088         (WebCore::operator!=):
44089
44090 2012-10-17  Gabor Rapcsanyi  <rgabor@webkit.org>
44091
44092         NEON intrinsics Gauss filter does not work properly
44093         https://bugs.webkit.org/show_bug.cgi?id=98875
44094
44095         Reviewed by Zoltan Herczeg.
44096
44097         Fixing the NEON intrinsics Gauss filter. The stride parameter
44098         was missing from the intrinsics algorithm. Tested with pixel
44099         checks, now it's working properly.
44100
44101         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44102         (WebCore::boxBlurNEON):
44103
44104 2012-10-17  MORITA Hajime  <morrita@google.com>
44105
44106         Crash on Frame::inScope() part 2
44107         https://bugs.webkit.org/show_bug.cgi?id=99543
44108
44109         Reviewed by Kent Tamura.
44110
44111         FrameTree::scopedChildCount() can be called even when the one of child frames
44112         is in orphan state. This change added a guard for that case.
44113
44114         No new tests. A hard-to-test timing issue.
44115
44116         * page/Frame.cpp:
44117         (WebCore::Frame::inScope):
44118
44119 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
44120
44121         Remove shadowAncestorNode() from VisibleSelection
44122         https://bugs.webkit.org/show_bug.cgi?id=99544
44123
44124         Reviewed by Hajime Morita.
44125
44126         An effort to replace shadowAncestorNode() with shadowHost(), since shadowAncestorNode() is now deprecated.
44127
44128         No new tests, no change in behavior.
44129
44130         * editing/VisibleSelection.cpp:
44131         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Since shadowHost() returns 0 if
44132         an element is not in shadowRoot, it's ok to compare shadowAncestor to 0.
44133
44134 2012-10-17  Douglas Stockwell  <dstockwell@chromium.org>
44135
44136         Content of replaced elements should be trimmed to the content edge curve.
44137         https://bugs.webkit.org/show_bug.cgi?id=63899
44138
44139         Reviewed by Simon Fraser.
44140
44141         When a border-radius is specified the content of replaced elements needs to be clipped to avoid
44142         being painted over the padding or border in the corners. Previously the clip that was applied
44143         was set to the border-edge curve, this patch contracts the clip by the size of the border and
44144         padding (the content-edge curve) to match the css3 spec.
44145         Spec: http://www.w3.org/TR/css3-background/#corner-clipping
44146
44147         Test: fast/replaced/border-radius-clip-content-edge.html
44148
44149         * rendering/RenderBoxModelObject.h:
44150         (RenderBoxModelObject):
44151         * rendering/RenderReplaced.cpp:
44152         (WebCore::RenderReplaced::paint):
44153         * rendering/RenderWidget.cpp:
44154         (WebCore::RenderWidget::paint):
44155
44156 2012-10-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
44157
44158         The HTML5 formtarget/formaction/formenctyp/formmethod/formnovalidate attributes don't work in button tags with nested elements
44159         https://bugs.webkit.org/show_bug.cgi?id=90539
44160
44161         Reviewed by Kent Tamura.
44162
44163         Fix a bug where form(action|enctype|method|target) attributes of <button> are not
44164         honored if the target of the click event is an element nested within the button.
44165
44166         Test: fast/forms/formaction-attribute.html
44167
44168         * loader/FormSubmission.cpp:
44169         (WebCore::FormSubmission::create): Looks for the attributes for form submission
44170         from the nearest FormControlElement ancestor of the event target.
44171
44172 2012-10-16  MORITA Hajime  <morrita@google.com>
44173
44174         [Shadow DOM][V8] WebCore::V8DOMWindow::installPerContextProperties() is slow when shadowDOMEnabled flag is on.
44175         https://bugs.webkit.org/show_bug.cgi?id=99428
44176
44177         Reviewed by Adam Barth.
44178
44179         A benchmark unveiled that installPerContextProperties() could have made DOMWindow setup slower when
44180         - Some properties are added per-context basis by turnin the flag on and
44181         - There are bunch of DOMWindow object in the page (that is, there are many iframes.)
44182
44183         This change eliminates Shadow DOM related per-context properties from DOMWindow for getting rid of that slowness.
44184
44185         * dom/ContextFeatures.cpp:
44186         * dom/ContextFeatures.h: Removed shadowDOMEnabled() method and related enum entry.
44187         * dom/Position.cpp:
44188         (WebCore::Position::Position):
44189         (WebCore::Position::findParent):
44190         * dom/TreeScope.cpp:
44191         (WebCore::TreeScope::getSelection):
44192         * dom/make_names.pl: Re-introduced "runtimeConditional" directive.
44193         (defaultTagPropertyHash):
44194         (printConstructorInterior):
44195         (printFactoryCppFile):
44196         (printWrapperFunctions):
44197         (printWrapperFactoryCppFile):
44198         * html/HTMLTagNames.in:
44199         * html/shadow/HTMLContentElement.cpp:
44200         (WebCore::contentTagName):
44201         * page/DOMWindow.idl:
44202
44203 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
44204
44205         Make RenderObject destruction during detach a top-down operation
44206         https://bugs.webkit.org/show_bug.cgi?id=98336
44207
44208         Reviewed by Eric Seidel.
44209
44210         detach() is a DOM-driven operation that destroys the renderers bottom-up.
44211         While this is correct, it causes extra-work to be done (tree cleaning, ...)
44212         as it doesn't know about the render tree's structure.
44213
44214         The render tree on the other side already supports top-down operations
44215         but it was overriden by the DOM side of detach.
44216
44217         This change only makes ContainerNode::detach do a top-down render tree
44218         destruction. This is a required step towards doing smarter destruction.
44219
44220         Refactoring covered by existing tests.
44221
44222         * dom/ContainerNode.cpp:
44223         (WebCore::ContainerNode::detach):
44224         Changed the method to do a top-down destruction.
44225
44226         * dom/Node.cpp:
44227         (WebCore::Node::detach):
44228         Added this ASSERT that ensures that we have properly cleaned up the
44229         whole DOM subtree. The only exception is child content belonging to a
44230         flow-thread as the code will shuffle the renderers under the flow-thread.
44231
44232         * rendering/RenderObject.cpp:
44233         (WebCore::RenderObject::willBeDestroyed):
44234         As we don't update the node's renderer on the DOM side, do it here.
44235         The upside is that it ensures that we don't left any stray renderer
44236         in the tree.
44237
44238         * rendering/RenderObjectChildList.cpp:
44239         (WebCore::RenderObjectChildList::destroyLeftoverChildren):
44240         Removed the calls to setRenderer as they are redundant with what we do
44241         in willBeDestroyed.
44242
44243         * rendering/RenderTextFragment.cpp:
44244         (WebCore::RenderTextFragment::setText):
44245         Removed some now unneeded code, replaced by an ASSERT. This is because
44246         destroying m_firstLetter would automatically reset the node's renderer
44247         in destroyLeftoverChildren.
44248
44249 2012-10-16  Joseph Pecoraro  <pecoraro@apple.com>
44250
44251         HTMLSelectElement::optionSelectedByUser confuses listIndex and optionIndex
44252         https://bugs.webkit.org/show_bug.cgi?id=99523
44253
44254         Reviewed by Simon Fraser.
44255
44256         There was a call site where the optionIndex was being passed to a
44257         function that expected the listIndex. Convert appropriately.
44258
44259         Extends Test: platform/mac/fast/objc/dom-html-select-activate.html
44260
44261         * html/HTMLSelectElement.cpp:
44262         (WebCore::HTMLSelectElement::optionSelectedByUser):
44263
44264 2012-10-16  Jian Li  <jianli@chromium.org>
44265
44266         Rename feature define ENABLE_WIDGET_REGION to ENABLE_DRAGGBALE_REGION
44267         https://bugs.webkit.org/show_bug.cgi?id=98975
44268
44269         Reviewed by Adam Barth.
44270
44271         Renaming is needed to better match with the draggable region code.
44272
44273         No new tests due to no functional change.
44274
44275         * Configurations/FeatureDefines.xcconfig:
44276         * DerivedSources.make:
44277         * WebCore.exp.in:
44278         * css/CSSComputedStyleDeclaration.cpp:
44279         (WebCore):
44280         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44281         * css/CSSParser.cpp:
44282         (WebCore::CSSParser::parseValue):
44283         * css/CSSProperty.cpp:
44284         (WebCore::CSSProperty::isInheritedProperty):
44285         * css/CSSPropertyNames.in:
44286         * css/CSSValueKeywords.in:
44287         * css/StyleResolver.cpp:
44288         (WebCore::StyleResolver::applyProperty):
44289         * dom/Document.cpp:
44290         (WebCore::Document::Document):
44291         (WebCore):
44292         (WebCore::Document::reportMemoryUsage):
44293         * dom/Document.h:
44294         (WebCore):
44295         (Document):
44296         * page/Chrome.cpp:
44297         (WebCore):
44298         * page/ChromeClient.h:
44299         (ChromeClient):
44300         * page/FrameView.cpp:
44301         (WebCore::FrameView::layout):
44302         (WebCore):
44303         (WebCore::FrameView::paintContents):
44304         * page/FrameView.h:
44305         (FrameView):
44306         * rendering/RenderInline.cpp:
44307         (WebCore):
44308         (WebCore::RenderInline::addAnnotatedRegions):
44309         * rendering/RenderInline.h:
44310         (RenderInline):
44311         * rendering/RenderLayer.cpp:
44312         (WebCore::RenderLayer::scrollTo):
44313         (WebCore::RenderLayer::setHasHorizontalScrollbar):
44314         (WebCore::RenderLayer::setHasVerticalScrollbar):
44315         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
44316         * rendering/RenderListBox.cpp:
44317         (WebCore::RenderListBox::setHasVerticalScrollbar):
44318         * rendering/RenderObject.cpp:
44319         (WebCore::RenderObject::styleWillChange):
44320         (WebCore):
44321         (WebCore::RenderObject::addAnnotatedRegions):
44322         * rendering/RenderObject.h:
44323         (WebCore::AnnotatedRegionValue::operator==):
44324         (AnnotatedRegionValue):
44325         (RenderObject):
44326         * rendering/style/RenderStyle.h:
44327         * rendering/style/RenderStyleConstants.h:
44328         * rendering/style/StyleRareNonInheritedData.cpp:
44329         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
44330         (WebCore::StyleRareNonInheritedData::operator==):
44331         * rendering/style/StyleRareNonInheritedData.h:
44332         (StyleRareNonInheritedData):
44333
44334 2012-10-16  James Simonsen  <simonjam@chromium.org>
44335
44336         [Page Visibility API] View-less documents should report as hidden
44337         https://bugs.webkit.org/show_bug.cgi?id=99410
44338
44339         Reviewed by Tony Gentilcore.
44340
44341         Test: fast/events/page-visibility-null-view.html
44342
44343         * dom/Document.cpp:
44344         (WebCore::Document::visibilityState):
44345
44346 2012-10-16  Michael Saboff  <msaboff@apple.com>
44347
44348         Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
44349         https://bugs.webkit.org/show_bug.cgi?id=99484
44350
44351         Reviewed by Eric Seidel.
44352
44353         Changed macro name to align with it's purpose, therefore changed USE(8BIT_TEXTRUN) to ENABLE(8BIT_TEXTRUN).
44354
44355         No new tests.  Changed macro name, no functional change.
44356
44357         * platform/graphics/TextRun.h:
44358         (WebCore::TextRun::TextRun):
44359         (WebCore::TextRun::subRun):
44360         * rendering/RenderBlock.cpp:
44361         (WebCore::RenderBlock::constructTextRun):
44362         * rendering/RenderBlock.h:
44363         (RenderBlock):
44364
44365 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44366
44367         [Qt] REGRESSION(r131485): It broke the build
44368         https://bugs.webkit.org/show_bug.cgi?id=99499
44369
44370         Unreviewed build (warning) fix.
44371
44372         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44373         (WebCore::TextureMapperShaderProgram::getLocation):
44374
44375 2012-10-16  David Grogan  <dgrogan@chromium.org>
44376
44377         Inspector: Don't fire assert when inspecting an empty db
44378         https://bugs.webkit.org/show_bug.cgi?id=99370
44379
44380         Reviewed by Vsevolod Vlasov.
44381
44382         * inspector/InspectorIndexedDBAgent.cpp:
44383         (WebCore):
44384
44385 2012-10-16  Tony Chang  <tony@chromium.org>
44386
44387         Unreviewed, try to fix the Apple Win build by forcing a rebuild of RenderingAllInOne.cpp.
44388
44389         * rendering/RenderingAllInOne.cpp:
44390
44391 2012-10-16  Andrew Scherkus  <scherkus@chromium.org>
44392
44393         Fix crash in WebCore::MediaControlPanelElement::makeTransparent()
44394         https://bugs.webkit.org/show_bug.cgi?id=97951
44395
44396         Reviewed by Simon Fraser.
44397
44398         No new tests as it's a speculative fix based on crash dump analysis.
44399      
44400         Despite MediaControlPanelElement checking for document()->page() nullity in other places, it forgot one check in makeTransparent().
44401
44402         * html/shadow/MediaControlElements.cpp:
44403         (WebCore::MediaControlPanelElement::makeTransparent):
44404
44405 2012-10-16  Emil A Eklund  <eae@chromium.org>
44406
44407         Remove special-case flooring of baselinePosition for replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44408         https://bugs.webkit.org/show_bug.cgi?id=99376
44409
44410         Reviewed by Levi Weintraub.
44411
44412         In r122769 (bug 91410) we added a special-case handling for
44413         replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44414         to work around positioning issues in a couple of svg tests.
44415         This was needed to compensate for a workaround in the table
44416         painting code that was fixed in r131358 (bug 99364). As such the
44417         special-case handling for replaced elements is no longer needed
44418         in InlineFlowBox::placeBoxesInBlockDirection.
44419
44420         Furthermore this caused problems with caret repainting leaving
44421         residual pixels which motivated this change.
44422
44423         No new tests, have not been able to write a repaint test to
44424         demonstrate the caret repaint issue.
44425
44426         * rendering/InlineFlowBox.cpp:
44427         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
44428
44429 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44430
44431         Some #include hygiene
44432         https://bugs.webkit.org/show_bug.cgi?id=99500
44433
44434         Reviewed by Tony Chang.
44435
44436         Clean up some #includes, mostly related to GraphicsLayer.h. In many
44437         cases this can be replaced by PlatformLayer.h.
44438         
44439         Remove an #include of PluginViewBase.h from Page.h, which was a source
44440         of #include fan-out.
44441
44442         * html/canvas/CanvasRenderingContext2D.h:
44443         * page/Page.h:
44444         * page/scrolling/ScrollingCoordinator.h:
44445         * page/scrolling/ScrollingStateNode.h:
44446         * page/scrolling/mac/ScrollingStateNodeMac.mm:
44447         * platform/graphics/GraphicsContext3D.h:
44448         * platform/graphics/MediaPlayer.h:
44449         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
44450         * platform/graphics/gpu/DrawingBuffer.h:
44451         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
44452         * plugins/PluginViewBase.h:
44453
44454 2012-10-16  Adam Barth  <abarth@webkit.org>
44455
44456         Document::adoptNode shouldn't special-case <iframe>
44457         https://bugs.webkit.org/show_bug.cgi?id=99247
44458
44459         Reviewed by Ryosuke Niwa.
44460
44461         The special case was added in http://trac.webkit.org/changeset/75293 to
44462         fix a bug with magic iframes. Originally, I planned to remove this
44463         special case, but further investigation reveals that other browsers
44464         throw exceptions for other frame owner elements as well. Now we treat
44465         all frame owner elements the same way.
44466
44467         Test: fast/frames/adopt-object-into-itself.html
44468
44469         * dom/Document.cpp:
44470         (WebCore::Document::adoptNode):
44471
44472 2012-10-16  Dominik Röttsches  <dominik.rottsches@intel.com>
44473
44474         Init timeout flag in ResourceErrorMac
44475         https://bugs.webkit.org/show_bug.cgi?id=99478
44476
44477         Reviewed by Alexey Proskuryakov.
44478
44479         On construction from platform error types, initialize the timeout flag 
44480         to true if the error results from a timeout.
44481
44482         No new tests, covered by tests that will be added in bug 74802.
44483
44484         * platform/network/mac/ResourceErrorMac.mm:
44485         (WebCore::ResourceError::platformLazyInit): Initializing timeout flag if the error was a timeout.
44486
44487 2012-10-16  Tony Chang  <tony@chromium.org>
44488
44489         input[type=range] as a flex item renders thumb at wrong position
44490         https://bugs.webkit.org/show_bug.cgi?id=98666
44491
44492         Reviewed by Ojan Vafai.
44493
44494         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
44495         The previous code was trying to set the height to 100% and had a bunch of hacks in
44496         the renderer code to set an explicit height. Using the new flexbox allows us to
44497         remove these renderer hacks.
44498
44499         Test: css3/flexbox/flexitem-stretch-range.html
44500
44501         * css/html.css:
44502         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
44503         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
44504         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
44505         no longer setting top/left in the layout code.
44506         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
44507         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
44508         * html/RangeInputType.cpp:
44509         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
44510         since the height of the control should change when adding/removing a datalist.
44511         * html/shadow/SliderThumbElement.cpp:
44512         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
44513         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
44514         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
44515         we use the intrinsic size.
44516         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
44517         This used to be handled in the thumb's layout method, but I deleted that.
44518         * html/shadow/SliderThumbElement.h:
44519         * rendering/RenderSlider.cpp:
44520         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
44521         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
44522         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
44523         and expects the input to also have a height of 1px.  It worked before because the height of the input
44524         didn't depend on the height of its children.
44525         * rendering/RenderSlider.h: Fix indentation.
44526         (RenderSlider): Use new flexible box.
44527
44528 2012-10-16  Dima Gorbik  <dgorbik@apple.com>
44529
44530         Remove Platform.h include from the header files.
44531         https://bugs.webkit.org/show_bug.cgi?id=98665
44532
44533         Reviewed by Eric Seidel.
44534
44535         We don't want other clients that include WebKit headers to know about Platform.h.
44536
44537         No new tests.
44538
44539         * platform/MemoryPressureHandler.h:
44540         * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
44541         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44542         * platform/graphics/filters/arm/FELightingNEON.h:
44543
44544 2012-10-16  Xianzhu Wang  <wangxianzhu@chromium.org>
44545
44546         [Chromium] Android: Need a way to get appropriate font for some specific characters.
44547         https://bugs.webkit.org/show_bug.cgi?id=67587
44548
44549         Reviewed by Adam Barth.
44550
44551         Use the new Skia API SkGetFallbackFamilyNameForChar() to get the family name for individual characters.
44552
44553         No new tests. The following existing tests pass with the change:
44554         fast/writing-mode/vertical-subst-font-vert-no-dflt.html
44555         fast/dynamic/text-combine.html
44556         fast/writing-mode/japanese-rl-text.html
44557         fast/writing-mode/japanese-rl-selection.html
44558         fast/writing-mode/japanese-lr-text.html
44559         fast/repaint/japanese-rl-selection-repaint.html
44560         fast/writing-mode/border-vertical-lr.html
44561
44562         * platform/graphics/chromium/FontCacheAndroid.cpp:
44563         (WebCore::FontCache::getFontDataForCharacters):
44564
44565 2012-10-16  Tommy Widenflycht  <tommyw@google.com>
44566
44567         MediaStream API: Add the chromium API for RTCDataChannel
44568         https://bugs.webkit.org/show_bug.cgi?id=99435
44569
44570         Reviewed by Adam Barth.
44571
44572         Adding WebRTCDataChannel.
44573
44574         Test: fast/mediastream/RTCPeerConnection-datachannel.html
44575
44576         * WebCore.gypi:
44577         * platform/chromium/support/WebRTCDataChannel.cpp: Added.
44578         (WebKit):
44579         (ExtraDataContainer):
44580         (WebKit::ExtraDataContainer::ExtraDataContainer):
44581         (WebKit::ExtraDataContainer::extraData):
44582         (WebKit::WebRTCDataChannel::WebRTCDataChannel):
44583         (WebKit::WebRTCDataChannel::initialize):
44584         (WebKit::WebRTCDataChannel::assign):
44585         (WebKit::WebRTCDataChannel::reset):
44586         (WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
44587         (WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
44588         (WebKit::WebRTCDataChannel::extraData):
44589         (WebKit::WebRTCDataChannel::setExtraData):
44590         (WebKit::WebRTCDataChannel::label):
44591         (WebKit::WebRTCDataChannel::reliable):
44592         (WebKit::WebRTCDataChannel::setBufferedAmount):
44593         (WebKit::WebRTCDataChannel::readyStateChanged):
44594         (WebKit::WebRTCDataChannel::dataArrived):
44595         (WebKit::WebRTCDataChannel::error):
44596         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
44597         (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
44598         (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
44599         (WebCore):
44600         (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
44601         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
44602         (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
44603
44604 2012-10-16  Brady Eidson  <beidson@apple.com>
44605
44606         Update indentation in *ResourceLoader headers to match modern WebKit style
44607         https://bugs.webkit.org/show_bug.cgi?id=99487
44608
44609         Reviewed by Beth Dakin.
44610
44611         I'm going to be working on these classes and the indentation is driving me crazy.
44612
44613         * loader/MainResourceLoader.h:
44614         (WebCore):
44615         (MainResourceLoader):
44616         (WebCore::MainResourceLoader::isLoadingMultipartContent):
44617
44618         * loader/NetscapePlugInStreamLoader.h:
44619         (WebCore):
44620         (NetscapePlugInStreamLoaderClient):
44621         (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
44622         (WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
44623         (WebCore::NetscapePlugInStreamLoaderClient::~NetscapePlugInStreamLoaderClient):
44624         (NetscapePlugInStreamLoader):
44625
44626         * loader/ResourceLoader.h:
44627         (WebCore):
44628         (ResourceLoader):
44629         (WebCore::ResourceLoader::documentLoader):
44630         (WebCore::ResourceLoader::originalRequest):
44631         (WebCore::ResourceLoader::identifier):
44632         (WebCore::ResourceLoader::didReceiveCachedMetadata):
44633         (WebCore::ResourceLoader::willStopBufferingData):
44634         (WebCore::ResourceLoader::shouldUseCredentialStorage):
44635         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
44636         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
44637         (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
44638         (WebCore::ResourceLoader::receivedCancellation):
44639         (WebCore::ResourceLoader::url):
44640         (WebCore::ResourceLoader::handle):
44641         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
44642         (WebCore::ResourceLoader::reachedTerminalState):
44643         (WebCore::ResourceLoader::request):
44644         (WebCore::ResourceLoader::cancelled):
44645         (WebCore::ResourceLoader::defersLoading):
44646
44647 2012-10-16  Beth Dakin  <bdakin@apple.com>
44648
44649         https://bugs.webkit.org/show_bug.cgi?id=99254
44650         Make ScrollingTree an actual tree of nodes, and have it reflect the 
44651         ScrollingStateTree
44652
44653         Reviewed by Simon Fraser.
44654
44655         This patch finally makes the ScrollingTree over on the 
44656         ScrollingThread aware of the changes that we have been making to the 
44657         ScrollingStateTree.
44658
44659         First, it makes ScrollingTreeNode a much more generic class, similar 
44660         to ScrollingStateNode. It is an abstract class and we will add other 
44661         types of nodes such as ScrollingTreeFixedNodes that will inherit from 
44662         this class. 
44663
44664         All of the scrolling functionality that was in ScrollingTreeNode has 
44665         been moved to ScrollingTreeScrollingNode. And likewise, 
44666         ScrollingTreeNodeMac has been re-named to 
44667         ScrollingTreeScrollingNodeMac. 
44668
44669         And finally, instead of just updating and creating the root node, 
44670         ScrollingTree now recurses through the whole ScrollingStateTree to 
44671         create and update a full tree of nodes.
44672
44673         New files and moves files.
44674         * WebCore.xcodeproj/project.pbxproj:
44675
44676         Add a getter for the children vector since we need to recurse it in 
44677         ScrollingTree.
44678         * page/scrolling/ScrollingStateNode.h:
44679         (WebCore::ScrollingStateNode::children):
44680         (ScrollingStateNode):
44681
44682         m_rootNode is now a ScrollingTreeScrollingNode.
44683         * page/scrolling/ScrollingTree.cpp:
44684         (WebCore::ScrollingTree::ScrollingTree):
44685
44686         Instead of just updating the root node, call two new functions that 
44687         will take care of updating the whole tree.
44688         (WebCore::ScrollingTree::commitNewTreeState):
44689
44690         This function ecurses through the ScrollingStateTree and updates the 
44691         corresponding ScrollingTreeNodes.
44692         (WebCore::ScrollingTree::updateNodesFromStateNode):
44693
44694         This function takes the ScrollingStateTree's list of removed nodes 
44695         and removes the corresponding nodes from the ScrollingTree. It will 
44696         destroy the nodes after removing it as long as it's not the root 
44697         node. I think it's the safest choice for now to never remove the root 
44698         node. 
44699         (WebCore::ScrollingTree::removeDestroyedNodes):
44700
44701         ScrollingTree now keeps a HashMap mapping ScrollingNodeIDs to 
44702         ScrollingTreeNodes.
44703         * page/scrolling/ScrollingTree.h:
44704
44705         All of the scrolling-related functionality has been moved from this 
44706         class to new class ScrollingTreeScrollingNode. And some basic tree 
44707         traversal functionality has been added.
44708         * page/scrolling/ScrollingTreeNode.cpp:
44709         (WebCore::ScrollingTreeNode::ScrollingTreeNode):
44710         (WebCore::ScrollingTreeNode::appendChild):
44711         (WebCore::ScrollingTreeNode::removeChild):
44712         * page/scrolling/ScrollingTreeNode.h:
44713         (WebCore):
44714         (ScrollingTreeNode):
44715         (WebCore::ScrollingTreeNode::scrollingNodeID):
44716         (WebCore::ScrollingTreeNode::setScrollingNodeID):
44717         (WebCore::ScrollingTreeNode::parent):
44718         (WebCore::ScrollingTreeNode::setParent):
44719         (WebCore::ScrollingTreeNode::scrollingTree):
44720
44721         This class contains all of the scrolling-related work that used to be 
44722         done in ScrollingTreeNode.
44723         * page/scrolling/ScrollingTreeScrollingNode.cpp: Added.
44724         (WebCore):
44725         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
44726         (WebCore::ScrollingTreeScrollingNode::~ScrollingTreeScrollingNode):
44727         (WebCore::ScrollingTreeScrollingNode::update):
44728         * page/scrolling/ScrollingTreeScrollingNode.h: Added.
44729         (WebCore):
44730         (ScrollingTreeScrollingNode):
44731         (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionOnMainThread):
44732         (WebCore::ScrollingTreeScrollingNode::viewportRect):
44733         (WebCore::ScrollingTreeScrollingNode::contentsSize):
44734         (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
44735         (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
44736         (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
44737         (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
44738         (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
44739         (WebCore::ScrollingTreeScrollingNode::scrollOrigin):
44740
44741         I noticed this whitespace error and had to fix it.
44742         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
44743         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
44744
44745         Include ScrollingTreeScrollingNodeMac.h instead of 
44746         ScrollingTreeNodeMac.h
44747         * page/scrolling/mac/ScrollingTreeMac.mm:
44748
44749         This class was just re-named.
44750         * page/scrolling/mac/ScrollingTreeNodeMac.h: Removed.
44751         * page/scrolling/mac/ScrollingTreeNodeMac.mm: Removed.
44752         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: Copied from page/scrolling/mac/ScrollingTreeNodeMac.h.
44753         (ScrollingTreeScrollingNodeMac):
44754         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeNodeMac.mm.
44755         (WebCore::ScrollingTreeScrollingNode::create):
44756         (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
44757         (WebCore::ScrollingTreeScrollingNodeMac::~ScrollingTreeScrollingNodeMac):
44758         (WebCore::ScrollingTreeScrollingNodeMac::update):
44759         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
44760         (WebCore::ScrollingTreeScrollingNodeMac::allowsHorizontalStretching):
44761         (WebCore::ScrollingTreeScrollingNodeMac::allowsVerticalStretching):
44762         (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
44763         (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
44764         (WebCore::ScrollingTreeScrollingNodeMac::canScrollHorizontally):
44765         (WebCore::ScrollingTreeScrollingNodeMac::canScrollVertically):
44766         (WebCore::ScrollingTreeScrollingNodeMac::shouldRubberBandInDirection):
44767         (WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
44768         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollBy):
44769         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
44770         (WebCore::ScrollingTreeScrollingNodeMac::startSnapRubberbandTimer):
44771         (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
44772         (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
44773         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
44774         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
44775         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
44776         (WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
44777         (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
44778         (WebCore::ScrollingTreeScrollingNodeMac::scrollBy):
44779         (WebCore::ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
44780         (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
44781         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
44782
44783 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44784
44785         Add a new layer type for the page tiled cache layer
44786         https://bugs.webkit.org/show_bug.cgi?id=99491
44787
44788         Reviewed by Dean Jackson.
44789
44790         In preparation for using tile cache layers in place of CATiledLayer,
44791         add a new PlatformCALayer layer type LayerTypePageTileCacheLayer,
44792         since the page tile cache will have some different behavior from
44793         other tile cache layers.
44794         
44795         Generalize code that was looking at LayerTypeTileCacheLayer to use
44796         usesTileCacheLayer() if it applies to both types of tile caches.
44797
44798         * platform/graphics/ca/GraphicsLayerCA.cpp:
44799         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
44800         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Show the tile
44801         wash for tiled layers as well as layers with transforms (the tile
44802         wash is just for debugging).
44803         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
44804         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
44805         * platform/graphics/ca/PlatformCALayer.h:
44806         (WebCore::PlatformCALayer::usesTileCacheLayer):
44807         (PlatformCALayer):
44808         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
44809         (PlatformCALayer::PlatformCALayer):
44810         (PlatformCALayer::~PlatformCALayer):
44811         (PlatformCALayer::tiledBacking):
44812         * platform/graphics/mac/WebLayer.mm:
44813         (drawLayerContents): Avoid double-drawing the repaint counter in tile cache layers.
44814
44815 2012-10-16  Stephen Chenney  <schenney@chromium.org> 
44816         An feImage that tries to render itself should be stopped
44817         https://bugs.webkit.org/show_bug.cgi?id=94652
44818
44819         Reviewed by Eric Seidel.
44820
44821         An SVG feImage filter element will accept, as the src to render, an
44822         SVG document that makes use of the feImage itself. This causes the
44823         feImage to try to draw itself while already in the process of drawing
44824         itself. Various problems arise from this. The invariant we wish to
44825         maintain is that no element in the src tree of an feImage element
44826         refers to that feImage.
44827
44828         This patch adds a flag to all FilterData objects that tracks whether or
44829         not the filter is currently applying itself, and avoids applying the
44830         filter recursively.
44831
44832         While it may seem better to catch this problem when the src is set, or
44833         when the filter is built, that turns out to be challenging and
44834         inefficient. Say we choose to test when the src atttribute is set. To
44835         do so would require looking through all of the DOM nodes that will be
44836         rendered for the src, finding all resources used, and checking if any
44837         of them make use fo the feImage element that we are setting the source
44838         for. The infrastructure is not in place to do that, and it would
44839         involve walking a potentially very large portion of the DOM in order
44840         to detect a very rare situation. Note that it is not enough just to
44841         walk the DOM directly under the src; we also need to recursively follow any
44842         resource links to see if they use the feImage (e.g. patterns or
44843         masks or use or ...).
44844
44845         If we instead try to use the renderer node to find self referencing,
44846         we need to recursively walk a potentially very large render tree,
44847         tracing all resources in search of the feImage. This would need to be
44848         done every time the filter is built, which is again a significant
44849         overhead for a situation that is very unlikely to occur. And we do not
44850         have methods that make it easy to find feImage filter effect nodes; they are
44851         hidden behind filter resource nodes.
44852
44853         Hence the runtime check to catch the problem. The check must be in
44854         FilterData and RenderSVGResourceFilter code because we must prevent
44855         the destruction of the feImage when we encounter it recursively.
44856
44857         This patch also renames FilterData::builded to FilterData::isBuilt.
44858
44859         Test: svg/filters/feImage-self-referencing.html
44860
44861         * rendering/svg/RenderSVGResourceFilter.cpp:
44862         (WebCore::ApplyingFilterEffectGuard): Guard to ensure that, in the future, we always
44863         clear the isApplying flag even if the postApplyResource method returns early.
44864         (WebCore::RenderSVGResourceFilter::applyResource): Do not apply a resource that is already applying and
44865         rename builded to isBuilt.
44866         (WebCore::RenderSVGResourceFilter::postApplyResource): Mark a resource as applying and clear after
44867         it is done. Abort if a resource is already applying when the method begins. Rename builded to isBuilt.
44868         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Rename builded to isBuilt.
44869         * rendering/svg/RenderSVGResourceFilter.h:
44870         (WebCore::FilterData::FilterData):
44871         (FilterData): Add isApplying and rename builded to isBuilt.
44872
44873 2012-10-16  Nate Chapin  <japhet@chromium.org>
44874
44875         sendResourceLoadCallbacks() is poorly named
44876         https://bugs.webkit.org/show_bug.cgi?id=99482
44877
44878         Reviewed by Alexey Proskuryakov.
44879
44880         In both CachedResource and ResourceLoader, rename sendResourceLoadCallbacks()
44881         to shouldSendResourceLoadCallbacks() to better indicate that it is a simple getter.
44882
44883         No new tests, simple renaming.
44884
44885         * loader/FrameLoader.cpp:
44886         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
44887         * loader/ResourceLoader.h:
44888         (WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
44889         * loader/cache/CachedResource.h:
44890         (WebCore::CachedResource::shouldSendResourceLoadCallbacks):
44891
44892 2012-10-16  Chris Rogers  <crogers@google.com>
44893
44894         Rename some AudioNodes
44895         https://bugs.webkit.org/show_bug.cgi?id=99358
44896
44897         Reviewed by Daniel Bates.
44898
44899         Here's a list of the node names, showing the changing ones:
44900             AudioBufferSourceNode
44901             MediaElementAudioSourceNode
44902             MediaStreamAudioSourceNode
44903             JavaScriptAudioNode ------------> ScriptProcessorNode
44904             RealtimeAnalyserNode ------------> AnalyserNode
44905             AudioGainNode ------------> GainNode
44906             DelayNode
44907             BiquadFilterNode
44908             AudioPannerNode ------------> PannerNode
44909             ConvolverNode
44910             AudioChannelSplitter ------------> ChannelSplitterNode
44911             AudioChannelMerger ------------> ChannelMergerNode
44912             DynamicsCompressorNode
44913             Oscillator ------------> OscillatorNode
44914
44915         * CMakeLists.txt:
44916         * DerivedSources.make:
44917         * DerivedSources.pri:
44918         * GNUmakefile.list.am:
44919         * Modules/webaudio/AnalyserNode.cpp: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp.
44920         * Modules/webaudio/AnalyserNode.idl: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl.
44921         * Modules/webaudio/AudioBufferSourceNode.cpp:
44922         (WebCore::AudioBufferSourceNode::setPannerNode):
44923         * Modules/webaudio/AudioBufferSourceNode.h:
44924         (AudioBufferSourceNode):
44925         * Modules/webaudio/AudioContext.cpp:
44926         (WebCore::AudioContext::createJavaScriptNode):
44927         (WebCore::AudioContext::createPanner):
44928         (WebCore::AudioContext::createAnalyser):
44929         (WebCore::AudioContext::createGainNode):
44930         (WebCore::AudioContext::createChannelSplitter):
44931         (WebCore::AudioContext::createChannelMerger):
44932         (WebCore::AudioContext::createOscillator):
44933         * Modules/webaudio/AudioContext.h:
44934         (WebCore):
44935         (AudioContext):
44936         * Modules/webaudio/AudioContext.idl:
44937         * Modules/webaudio/ChannelMergerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.cpp.
44938         * Modules/webaudio/ChannelMergerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.h.
44939         (WebCore):
44940         (ChannelMergerNode):
44941         * Modules/webaudio/ChannelMergerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.idl.
44942         * Modules/webaudio/ChannelSplitterNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.cpp.
44943         * Modules/webaudio/ChannelSplitterNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.h.
44944         (WebCore):
44945         (ChannelSplitterNode):
44946         * Modules/webaudio/ChannelSplitterNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.idl.
44947         * Modules/webaudio/DOMWindowWebAudio.idl:
44948         * Modules/webaudio/GainNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.cpp.
44949         * Modules/webaudio/GainNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.h.
44950         * Modules/webaudio/GainNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.idl.
44951         * Modules/webaudio/OscillatorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/Oscillator.cpp.
44952         * Modules/webaudio/OscillatorNode.h: Renamed from Source/WebCore/Modules/webaudio/Oscillator.h.
44953         * Modules/webaudio/OscillatorNode.idl: Renamed from Source/WebCore/Modules/webaudio/Oscillator.idl.
44954         * Modules/webaudio/PannerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.cpp.
44955         * Modules/webaudio/PannerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.h.
44956         (WebCore):
44957         * Modules/webaudio/PannerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.idl.
44958         * Modules/webaudio/ScriptProcessorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.cpp.
44959         * Modules/webaudio/ScriptProcessorNode.h: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.h.
44960         (WebCore):
44961         * Modules/webaudio/ScriptProcessorNode.idl: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.idl.
44962         * Modules/webaudio/WaveTable.cpp:
44963         (WebCore::WaveTable::createSine):
44964         (WebCore::WaveTable::createSquare):
44965         (WebCore::WaveTable::createSawtooth):
44966         (WebCore::WaveTable::createTriangle):
44967         (WebCore::WaveTable::generateBasicWaveform):
44968         * Target.pri:
44969         * UseJSC.cmake:
44970         * WebCore.gypi:
44971         * WebCore.xcodeproj/project.pbxproj:
44972         * bindings/js/JSScriptProcessorNodeCustom.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp.
44973         (WebCore):
44974         (WebCore::JSScriptProcessorNode::visitChildren):
44975         * dom/EventTarget.h:
44976         (WebCore):
44977         * dom/EventTargetFactory.in:
44978
44979 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44980
44981         [Texmap] Refactor TextureMapperShaderManager to be clearer
44982         https://bugs.webkit.org/show_bug.cgi?id=86048
44983
44984         Reviewed by Martin Robinson.
44985
44986         Previous implementation of TextureMapperShaderManager was very verbose, calling for too
44987         many casts and ambiguous ownership.
44988         This refactor does the following:
44989         1. TextureMapperShaderProgram is one class without subclasses.
44990         2. Uniform/Attribute accessors are generated by special macros (TEXMAP_DECLARE_...) that
44991            generate both the C++ access function, as well as the GLSL name of the variable. This
44992            allows adding/removing variables from a shader without adding broiler-plate code like
44993            before.
44994
44995         After this change TextureMapperShaderManager has only one responsibility - dealing with
44996         TextureMapperGL's built-in shaders and their lifecycle. Preparing filters etc. is done
44997         in TextureMapperGL.
44998
44999         This is a refactor without new functionality. It has been verified to not break any existing
45000         relevant test.
45001
45002         * platform/graphics/texmap/TextureMapperGL.cpp:
45003         (WebCore::TextureMapperGL::drawBorder):
45004         (WebCore::TextureMapperGL::drawQuad):
45005         (WebCore::TextureMapperGL::drawTextureRectangleARB):
45006         (WebCore::TextureMapperGL::drawTexture):
45007         (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
45008         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
45009         (WebCore::TextureMapperGL::beginClip):
45010             Use the MACRO-generated uniform accessors.
45011
45012         (WebCore):
45013         (WebCore::keyForFilterType):
45014         (WebCore::getPassesRequiredForFilter):
45015         (WebCore::gauss):
45016         (WebCore::gaussianKernel):
45017         (WebCore::prepareFilterProgram):
45018         (WebCore::TextureMapperGL::drawFiltered):
45019         (WebCore::BitmapTextureGL::applyFilters):
45020             Move the filter logic to TextureMapperGL
45021
45022         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
45023         (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
45024         (WebCore::TextureMapperShaderProgram::getLocation):
45025         (ShaderSpec):
45026         (WebCore::ShaderSpec::ShaderSpec):
45027         (WebCore::getShaderSpec):
45028         (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
45029         (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
45030         (WebCore::TextureMapperShaderManager::getShaderProgram):
45031         * platform/graphics/texmap/TextureMapperShaderManager.h:
45032         (WebCore):
45033         (WebCore::TextureMapperShaderProgram::programID):
45034         (WebCore::TextureMapperShaderProgram::context):
45035         (WebCore::TextureMapperShaderProgram::create):
45036         (TextureMapperShaderProgram):
45037         (TextureMapperShaderManager):
45038             See description.
45039
45040 2012-10-16  Nico Weber  <thakis@chromium.org>
45041
45042         [chromium/mac] Make spelling indicator HighDPI
45043         https://bugs.webkit.org/show_bug.cgi?id=99417
45044
45045         Reviewed by Stephen White.
45046
45047         This is the mac version of http://trac.webkit.org/changeset/130940
45048         Since the mac and non-mac code are very similar again, merge the two
45049         code paths again.
45050
45051         Covered by editing/spelling/(inline-spelling|grammar)-markers-hidpi.html
45052
45053         * platform/graphics/skia/GraphicsContextSkia.cpp:
45054         (WebCore::GraphicsContext::drawLineForDocumentMarker):
45055
45056 2012-10-16  Tony Chang  <tony@chromium.org>
45057
45058         in a column flexbox, input overflows the box when stretched
45059         https://bugs.webkit.org/show_bug.cgi?id=99273
45060
45061         Reviewed by Ojan Vafai.
45062
45063         Fix a bug where we didn't properly subtract padding and border when overriding the child size.
45064         We didn't see this because of a performance optimization in RenderBox where we stretch children.
45065         Also apply this performance optimization in new flexbox for form controls.
45066
45067         Test: css3/flexbox/stretch-input-in-column.html
45068
45069         * rendering/RenderBox.cpp:
45070         (WebCore::flexboxChildHasStretchAlignment):
45071         (WebCore::isStretchingVerticalFlexboxChild):
45072         (WebCore::RenderBox::sizesLogicalWidthToFitContent): Apply performance optimization to form controls in new flexbox.
45073         * rendering/RenderFlexibleBox.cpp:
45074         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Properly subtract border and padding.
45075
45076 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
45077
45078         REGRESSION (r128787): Fixed position div causes other elements to not update correctly
45079         https://bugs.webkit.org/show_bug.cgi?id=98579
45080
45081         Reviewed by Beth Dakin.
45082
45083         RenderLayers cache repaint rects which are computed relative to the repaint container.
45084         Repaint containers depend on whether a RenderLayerBacking has its own backing store,
45085         so if that changes, we need to recompute repaint rects for all descendants.
45086         
45087         Test: compositing/repaint/requires-backing-repaint.html
45088
45089         * rendering/RenderLayerBacking.cpp:
45090         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
45091
45092 2012-10-16  Zan Dobersek  <zandobersek@gmail.com>
45093
45094         [GStreamer] GstBuffer ref race in WebKitWebAudioSrcLoop
45095         https://bugs.webkit.org/show_bug.cgi?id=95833
45096
45097         Reviewed by Philippe Normand.
45098
45099         The render bus used in GStreamer's implementation of AudioDestination no longer
45100         allocates memory for each of its channels. Rather than that, when looping, the
45101         data is rendered into a channel-specific GstBuffer. Each buffer is then chained
45102         to the appropriate GstPad, as has been the case before.
45103
45104         No new tests - there are tests covering this change but they are not yet working
45105         on the GTK port or any other GStreamer implementation of Web Audio.
45106
45107         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
45108         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
45109         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
45110         (_WebKitWebAudioSourcePrivate): Remove an unused member variable.
45111         (webkit_web_audio_src_init): Remove an unnecessary line.
45112         (webKitWebAudioSrcConstructed): Ditto.
45113         (webKitWebAudioSrcLoop):
45114
45115 2012-10-16  Pablo Flouret  <pablof@motorola.com>
45116
45117         Pre-process CSSGrammar.y before running through bison.
45118         https://bugs.webkit.org/show_bug.cgi?id=94290
45119
45120         Reviewed by Tony Chang.
45121
45122         Running CSSGrammar.y through a preprocessor allows the use of feature
45123         defines in all places of the yacc file (i.e. not just in C blocks).
45124         Mostly useful to be able to keep every part of a feature under feature
45125         flags for self-documenting purposes.
45126
45127         No new tests, CSSGrammar.y should be generated correctly and everything
45128         should keep working as before.
45129
45130         * CMakeLists.txt:
45131         * DerivedSources.make:
45132         * DerivedSources.pri:
45133         * GNUmakefile.am:
45134             Modify build systems to use makegrammar.pl to generate the .y files
45135             and run those through bison.
45136
45137         * WebCore.gyp/WebCore.gyp:
45138             Add a new action to preprocess the CSSGrammar.y.in file before the
45139             bison rule is run.
45140
45141         * WebCore.vcproj/WebCore.vcproj:
45142         * WebCore.xcodeproj/project.pbxproj:
45143             Add the new .y.in / .y.includes files.
45144
45145         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
45146             Also moved the top declarations section that has includes, defines,
45147             etc. to its own file. These shouldn't be touched by the first
45148             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
45149             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
45150             yet.
45151         * css/CSSGrammar.y.includes: Added.
45152             The aforementioned declarations header section. After the .y.in file
45153             is processed it will be concatenated with this one to make the
45154             CSSGrammar.y file.
45155
45156         * css/makegrammar.pl:
45157             Modify the script to handle .y.in files.
45158
45159 2012-10-16  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
45160
45161         Implement testRunner.dumpSelectionRect() in WebKitTestRunner
45162         https://bugs.webkit.org/show_bug.cgi?id=69545
45163
45164         Reviewed by Simon Fraser.
45165
45166         * WebCore.exp.in:
45167
45168 2012-10-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>
45169
45170         [Qt] Implement fastBoundingPath/boundingPath distinction.
45171         https://bugs.webkit.org/show_bug.cgi?id=99471
45172
45173         Reviewed by Noam Rosenthal.
45174
45175         Tested by existing test: svg/custom/getBBox-path.svg
45176
45177         * platform/graphics/Path.cpp:
45178         * platform/graphics/qt/PathQt.cpp:
45179         (WebCore::Path::fastBoundingRect):
45180         (WebCore::Path::boundingRect):
45181
45182 2012-10-16  Rob Buis  <rbuis@rim.com>
45183
45184         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
45185         https://bugs.webkit.org/show_bug.cgi?id=99302
45186
45187         Reviewed by Yong Li.
45188
45189         Fix a warning introduced by r131335. Since in release BBLOG is empty, only enable this block in debug builds.
45190
45191         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
45192         (WebCore::GraphicsContext3D::compileShader):
45193
45194 2012-10-16  Antoine Quint  <graouts@apple.com>
45195
45196         Inspector should allow reading the compositing debug settings
45197         https://bugs.webkit.org/show_bug.cgi?id=99458
45198
45199         Reviewed by Timothy Hatcher.
45200
45201         * inspector/Inspector.json:
45202         * inspector/InspectorPageAgent.cpp:
45203         (WebCore::InspectorPageAgent::getCompositingBordersVisible):
45204         * inspector/InspectorPageAgent.h:
45205
45206 2012-10-16  Dan Bernstein  <mitz@apple.com>
45207
45208         Code to reverse a GlyphBuffer range is repeated in several places
45209         https://bugs.webkit.org/show_bug.cgi?id=99424
45210
45211         Reviewed by Adele Peterson.
45212
45213         * platform/graphics/FontFastPath.cpp:
45214         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
45215         GlyphBuffer::reverse.
45216         * platform/graphics/GlyphBuffer.h:
45217         (WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
45218         (WebCore::GlyphBuffer::swap): Made private.
45219         * platform/graphics/WidthIterator.cpp:
45220         (WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
45221         corrected their bounds.
45222         * platform/graphics/mac/FontComplexTextMac.cpp:
45223         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
45224         GlyphBuffer::range.
45225
45226 2012-10-16  Nate Chapin  <japhet@chromium.org>
45227
45228         Re-order CachedRawResource::data() to set m_data earlier
45229         https://bugs.webkit.org/show_bug.cgi?id=99361
45230
45231         Reviewed by Adam Barth.
45232
45233         Currently, we calculate the diff between the data parameter and m_data, call
45234         dataReceived(), then set m_data to data. If something inside dataReceived()
45235         tries to access m_data via CachedResource::resourceBuffer(), it will see the
45236         old data instead of the new data, which seems inconsistent.
45237
45238         No new tests, as no one appears to try to access m_data within dataReceived() currently.
45239
45240         * loader/cache/CachedRawResource.cpp:
45241         (WebCore::CachedRawResource::data):
45242
45243 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
45244
45245         Fold setCellLogicalWidths logic into RenderTableSection layout
45246         https://bugs.webkit.org/show_bug.cgi?id=99382
45247
45248         Reviewed by Eric Seidel.
45249
45250         setCellLogicalWidths was implemented as a pre-phase to laying out
45251         the table's sections. This split was artificial as any change in
45252         the columns' logical width should trigger a sections' relayout, which
45253         could propagate and mark the cells / rows as needed.
45254
45255         Merging setCellLogicalWidths into RenderTableSection::layout removes
45256         an unneeded cells walking and some clunkiness from our implementation.
45257
45258         Refactoring covered by the existing tests.
45259
45260         * rendering/RenderTable.cpp:
45261         (WebCore::RenderTable::RenderTable): Initialize our new boolean.
45262         (WebCore::RenderTable::layout):
45263         If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
45264         are marked for layout if there is the logical width change.
45265
45266         * rendering/RenderTable.h:
45267         (WebCore::RenderTable):
45268         Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).
45269
45270         (WebCore::RenderTable::setColumnPosition):
45271         If a column position changed, register that our column logical widths changed. This is not
45272         totally true, so added a comment about when it will be wrong.
45273
45274         * rendering/RenderTableCell.h:
45275         * rendering/RenderTableCell.cpp:
45276         (WebCore::RenderTableCell::setCellLogicalWidth):
45277         Updated the function to mark the cell and the row for layout. Also changed the argument to
45278         be an 'int' as this was what was passed in.
45279
45280         * rendering/RenderTableSection.cpp:
45281         (WebCore::RenderTableSection::layout):
45282         * rendering/RenderTableSection.h:
45283         Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
45284         the table layout's logical widths first so that rows are marked as needing layout as appropriate.
45285
45286 2012-10-16  Takashi Sakamoto  <tasak@google.com>
45287
45288         [Meta] [Shadow] contenteditable attribute for distributed nodes.
45289         https://bugs.webkit.org/show_bug.cgi?id=90017
45290
45291         Reviewed by Dimitri Glazkov.
45292
45293         If an element is distributed to an insertion point, the element's
45294         webkit-user-modify is inherited from its shadow host.
45295
45296         No new tests, because the existing test: user-modify-inheritance.html
45297         covers this change.
45298
45299         * css/StyleResolver.cpp:
45300         (WebCore::StyleResolver::styleForElement):
45301         After an element inherits a style from its parent, override user-modify
45302         by using the shadow host's style if the element is distributed.
45303
45304 2012-10-16  Vsevolod Vlasov  <vsevik@chromium.org>
45305
45306         Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.
45307         https://bugs.webkit.org/show_bug.cgi?id=99469
45308
45309         Reviewed by Pavel Feldman.
45310
45311         * WebCore.gypi:
45312         * WebCore.vcproj/WebCore.vcproj:
45313         * inspector/compile-front-end.py:
45314         * inspector/front-end/BreakpointManager.js:
45315         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
45316         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
45317         * inspector/front-end/CompilerScriptMapping.js:
45318         * inspector/front-end/JavaScriptSource.js: Removed.
45319         * inspector/front-end/JavaScriptSourceFrame.js:
45320         (WebInspector.JavaScriptSourceFrame):
45321         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
45322         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
45323         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
45324         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
45325         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
45326         (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
45327         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45328         (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
45329         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45330         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
45331         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
45332         (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
45333         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
45334         (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
45335         (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
45336         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
45337         * inspector/front-end/NetworkUISourceCodeProvider.js:
45338         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
45339         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
45340         * inspector/front-end/ResourceScriptMapping.js:
45341         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
45342         * inspector/front-end/ScriptSnippetModel.js:
45343         (WebInspector.ScriptSnippetModel):
45344         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
45345         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
45346         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
45347         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
45348         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
45349         (WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
45350         (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
45351         (WebInspector.SnippetScriptFile):
45352         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45353         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45354         * inspector/front-end/ScriptsNavigator.js:
45355         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
45356         (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
45357         * inspector/front-end/ScriptsPanel.js:
45358         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
45359         (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
45360         (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
45361         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
45362         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
45363         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
45364         * inspector/front-end/SnippetJavaScriptSourceFrame.js:
45365         (WebInspector.SnippetJavaScriptSourceFrame):
45366         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
45367         * inspector/front-end/StyleSheetOutlineDialog.js:
45368         (WebInspector.StyleSheetOutlineDialog):
45369         (WebInspector.StyleSheetOutlineDialog.show):
45370         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
45371         * inspector/front-end/StyleSource.js: Removed.
45372         * inspector/front-end/WebKit.qrc:
45373         * inspector/front-end/inspector.html:
45374
45375 2012-10-15  Jer Noble  <jer.noble@apple.com>
45376
45377         WebAudio: limit output level to 0db
45378         https://bugs.webkit.org/show_bug.cgi?id=95792
45379         <rdar://problem/11966135>
45380
45381         Reviewed by Chris Rogers.
45382
45383         Clamp the output buffer data to the range of [-1,1], which limits
45384         output volume to 0db. This ensures that malicious or poorly-written
45385         pages will not be able to blow through the system volume limit by
45386         creating >0db buffers and effects.
45387
45388         No new tests; added ManualTests/webaudio/limit-level-0db.html.
45389
45390         Clamp the output vector to values of [-1,1]:
45391         * platform/audio/mac/AudioDestinationMac.cpp:
45392         (WebCore::AudioDestinationMac::render):
45393
45394         Add a VectorMath wrapper for vDSP_clip to provide accelerated vector threshold operations:
45395         * platform/audio/VectorMath.h:
45396         * platform/audio/VectorMath.cpp:
45397         (VectorMath):
45398         (WebCore::VectorMath::vclip):
45399
45400 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
45401
45402         Web Inspector: Extract domain specific editing handling logic from UISourceCode (step 2).
45403         https://bugs.webkit.org/show_bug.cgi?id=99301
45404
45405         Reviewed by Pavel Feldman.
45406
45407         StyleFile and ScriptFile now listen for the UISourceCode WorkingCopyChanged/Committed events and process
45408         them instead of being called explicitly.
45409
45410         * inspector/front-end/JavaScriptSourceFrame.js:
45411         (WebInspector.JavaScriptSourceFrame):
45412         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45413         (WebInspector.JavaScriptSourceFrame.prototype._willMergeToVM):
45414         (WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
45415         (WebInspector.JavaScriptSourceFrame.prototype._willDivergeFromVM):
45416         (WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
45417         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
45418         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45419         * inspector/front-end/ResourceScriptMapping.js:
45420         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
45421         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
45422         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
45423         (WebInspector.ResourceScriptFile):
45424         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
45425         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
45426         * inspector/front-end/ScriptSnippetModel.js:
45427         (WebInspector.SnippetScriptFile):
45428         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45429         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45430         * inspector/front-end/StylesSourceMapping.js:
45431         (WebInspector.StyleFile):
45432         (WebInspector.StyleFile.prototype._workingCopyCommitted):
45433         (WebInspector.StyleFile.prototype._workingCopyChanged):
45434         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
45435         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
45436         (WebInspector.StyleFile.prototype.addRevision):
45437         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
45438         * inspector/front-end/UISourceCode.js:
45439         (WebInspector.UISourceCode.prototype.setWorkingCopy):
45440         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
45441
45442 2012-10-16  Alexander Pavlov  <apavlov@chromium.org>
45443
45444         Web Inspector: [Elements] Double-click to live edit style tags changes text to 'undefined' in some situations
45445         https://bugs.webkit.org/show_bug.cgi?id=99336
45446
45447         Reviewed by Vsevolod Vlasov.
45448
45449         Before editing text nodes, set their textContent to the nodeValue() of the corresponding WebInspector.DOMNode in the UI.
45450         Drive-by: fix text node editing artifact in the DOM tree.
45451
45452         * inspector/front-end/ElementsTreeOutline.js:
45453         (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
45454         (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
45455
45456 2012-10-16  Mike West  <mkwst@chromium.org>
45457
45458         Web Inspector: Whitelist safe styles for 'console.log('%c...', ...)'.
45459         https://bugs.webkit.org/show_bug.cgi?id=98945
45460
45461         Reviewed by Pavel Feldman.
45462
45463         Support for styling console messages via '%c' landed without any
45464         parsing of the style information provided. This means that it's fairly
45465         simple to accidentally or maliciously break the console with cleverly
45466         styled messages. To mitigate this risk, whitelisting a safe subset of
45467         CSS seems appropriate.
45468
45469         As a first pass at a reasonable whitelist, this patch allows
45470         'background[-*]', 'border[-*]', 'color[-*]', 'font[-*]',
45471         'margin[-*]', 'padding[-*]', 'text[-*]', '-webkit-background[-*]',
45472         '-webkit-border[-*]', '-webkit-font[-*]', '-webkit-margin[-*]',
45473         '-webkit-padding[-*]', and '-webkit-text[-*]'.
45474
45475         Test: inspector/console/console-format-style-whitelist.html
45476
45477         * inspector/front-end/ConsoleMessage.js:
45478         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
45479             Create a buffer element onto which the user-provided styles are
45480             applied. Whitelisted styles are transfered from the buffer onto
45481             the actual console message.
45482         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.isWhitelistedProperty):
45483              Returns true if the specific style is whitelisted. Expects styles
45484              in the hyphenated form (that is, '-webkit-padding-start' rather than
45485              CSSOM's 'webkitPaddingStart').
45486
45487 2012-10-16  Luke Macpherson   <macpherson@chromium.org>
45488
45489         Handle CSSPropertyOpacity in StyleBuilder.
45490         https://bugs.webkit.org/show_bug.cgi?id=99418
45491
45492         Reviewed by Alexis Menard.
45493
45494         One small step in moving from the huge switch in StyleResolver::applyProperty() to the StyleBuilder approach.
45495
45496         Covered by many existing tests, for example fast/text/complex-text-opacity.html.
45497
45498         * css/StyleBuilder.cpp:
45499         (WebCore::StyleBuilder::StyleBuilder):
45500         * css/StyleResolver.cpp:
45501         (WebCore::StyleResolver::applyProperty):
45502
45503 2012-10-16  Kent Tamura  <tkent@chromium.org>
45504
45505         Fix some appearance glitches of multiple fields input elements
45506         https://bugs.webkit.org/show_bug.cgi?id=99412
45507
45508         A follow-up change for r131421.
45509
45510         * css/themeWin.css:
45511         (input[type="text"]): Don't reset paddings for date/time types.
45512
45513 2012-10-16  Kenichi Ishibashi  <bashi@chromium.org>
45514
45515         hb_face_t instances should not depend on FontPlatformData
45516         https://bugs.webkit.org/show_bug.cgi?id=99430
45517
45518         Reviewed by Kent Tamura.
45519
45520         Use platform specific font data (e.g. SkTypeface) to get
45521         font tables for harfbuzz-ng.
45522
45523         No new tests. No changes in behavior.
45524
45525         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
45526         (WebCore::harfbuzzCairoGetTable): Takes cairo_scaled_font_t* as userData.
45527         (WebCore::HarfBuzzNGFace::createFace):
45528         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp:
45529         (WebCore::harfbuzzCoreTextGetTable): Takes CGFontRef as userData.
45530         (WebCore::HarfBuzzNGFace::createFace):
45531         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
45532         (WebCore::harfbuzzSkiaGetTable): Takes SkFontID as userData.
45533         (WebCore::HarfBuzzNGFace::createFace):
45534
45535 2012-10-16  Sheriff Bot  <webkit.review.bot@gmail.com>
45536
45537         Unreviewed, rolling out r131418.
45538         http://trac.webkit.org/changeset/131418
45539         https://bugs.webkit.org/show_bug.cgi?id=99431
45540
45541         since 131403 seems innocent (Requested by shinyak|_ on
45542         #webkit).
45543
45544         * dom/Document.cpp:
45545         (WebCore::isValidNameNonASCII):
45546         (WebCore):
45547         (WebCore::Document::isValidName):
45548
45549 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
45550
45551         Web Inspector: NMI Instrument InspectorOverlay. It costs us ~9Mb because it creates page size canvas.
45552         https://bugs.webkit.org/show_bug.cgi?id=99426
45553
45554         Reviewed by Yury Semikhatsky.
45555
45556         New object type InspectorOverlay was added. InspectorOverlay was instrumented.
45557         The instrumentation code automatically visits all the objects that can be reached via m_overlayPage.
45558
45559         * dom/WebCoreMemoryInstrumentation.cpp:
45560         (WebCore):
45561         * dom/WebCoreMemoryInstrumentation.h:
45562         (WebCoreMemoryTypes):
45563         * inspector/InspectorOverlay.cpp:
45564         (WebCore::InspectorOverlay::reportMemoryUsage):
45565         (WebCore):
45566         * inspector/InspectorOverlay.h:
45567         (InspectorOverlay):
45568
45569 2012-10-16  Kent Tamura  <tkent@chromium.org>
45570
45571         Remove unused functions in Locale* classes
45572         https://bugs.webkit.org/show_bug.cgi?id=99425
45573
45574         Reviewed by Yuta Kitamura.
45575
45576         Locale*::currentLocale has been unused since LocalizedDate* and
45577         LocalizedNumber* were removed.
45578
45579         No new tests. This shouldn't change any behavior.
45580
45581         * platform/text/LocaleICU.cpp: Remove createForCurrentLocale and currentLocale.
45582         * platform/text/LocaleICU.h: Ditto.
45583         * platform/text/LocaleWin.cpp: Remove currentLocale.
45584         * platform/text/LocaleWin.h: Ditto.
45585         * platform/text/mac/LocaleMac.h: Remove currentLocale.
45586         * platform/text/mac/LocaleMac.mm: Ditto.
45587
45588 2012-10-15  Kent Tamura  <tkent@chromium.org>
45589
45590         Fix some appearance glitches of multiple fields input elements
45591         https://bugs.webkit.org/show_bug.cgi?id=99412
45592
45593         Reviewed by Kentaro Hara.
45594
45595         1. If CSS-specified width is wider than the intrinsic width of an input,
45596         the spin button and the picker indicator triangle should be put at the
45597         right side of the content area.
45598
45599         2. Remove top, right, and bottom paddings to match input[type=number]
45600         appearance as possible.
45601
45602         3. Remove unnecessary position:relative for spin buttons.
45603
45604         4. Center content vertically if the height is taller than the intrinsic height.
45605
45606         Tests: Update all of rendering tests for input element with multiple fields UI.
45607
45608         * css/html.css:
45609         (input[type="date"]):
45610         - Specify display:-webkit-inline-flex and -webkit-align-items:stretch to center contents.
45611         - Remove top/right/bottom paddings.
45612         (input[type="datetime"]): Ditto.
45613         (input[type="datetime-local"]): Ditto.
45614         (input[type="month"]): Ditto.
45615         (input[type="time"]): Ditto.
45616         (input[type="week"]): Ditto.
45617         (input::-webkit-datetime-edit):
45618         - Switch to the starndard flexible box from the legacy one.
45619         - Add white-space:pre to avoid to collapse white spaces.
45620         (input::-webkit-datetime-edit-gap):
45621         Added. This element is added to push a spin button to the right side.
45622         (input::-webkit-date-and-time-container):
45623         Add -webkit-flex:1 for the input flexible box.
45624         Sort properties.
45625         (input[type="week"]::-webkit-inner-spin-button):
45626         - Use this in date, datetime, datetime-local, and week types.
45627         - Add display:inline-block because other elements in -webkit-datetime-edit is inilne.
45628         - Add position:static to cancel position:relative below.
45629
45630         * html/shadow/DateTimeEditElement.cpp:
45631         (WebCore::DateTimeEditElement::layout):
45632         Add an element with -webkit-datetime-edit-gap before a spin button.
45633
45634 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45635
45636         Web Inspector: can't click delete button if watch expression is very long
45637         https://bugs.webkit.org/show_bug.cgi?id=99414
45638
45639         Reviewed by Vsevolod Vlasov.
45640
45641         Minus button in watch expression section doesn't overlap with the
45642         expression/value anymore.
45643
45644         * inspector/front-end/inspector.css:
45645         (.properties-tree.watch-expressions > li.hovered):
45646
45647 2012-10-15  Sheriff Bot  <webkit.review.bot@gmail.com>
45648
45649         Unreviewed, rolling out r131403.
45650         http://trac.webkit.org/changeset/131403
45651         https://bugs.webkit.org/show_bug.cgi?id=99420
45652
45653         Suspicious to cause Performance test failing (Requested by
45654         shinyak|gardenin on #webkit).
45655
45656         * dom/Document.cpp:
45657         (WebCore::Document::isValidName):
45658
45659 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45660
45661         Web Inspector: restore watch expression expansion state
45662         https://bugs.webkit.org/show_bug.cgi?id=99304
45663
45664         Reviewed by Pavel Feldman.
45665
45666         Expand watch expression value and its properties if they were expanded
45667         before update.
45668
45669         Test: inspector/debugger/watch-expressions-preserve-expansion.html
45670
45671         * inspector/front-end/WatchExpressionsSidebarPane.js:
45672         (WebInspector.WatchExpressionTreeElement.prototype.onexpand):
45673         (WebInspector.WatchExpressionTreeElement.prototype.oncollapse):
45674         (WebInspector.WatchExpressionTreeElement.prototype.onattach):
45675         (WebInspector.WatchExpressionTreeElement.prototype._expression):
45676         (WebInspector.WatchedPropertyTreeElement):
45677         (WebInspector.WatchedPropertyTreeElement.prototype.onattach):
45678         (WebInspector.WatchedPropertyTreeElement.prototype.onexpand):
45679         (WebInspector.WatchedPropertyTreeElement.prototype.oncollapse):
45680         (WebInspector.WatchedPropertyTreeElement.prototype._propertyPath):
45681
45682 2012-10-15  Mike West  <mkwst@chromium.org>
45683
45684         Warn when CSP headers don't separate directives with ';'.
45685         https://bugs.webkit.org/show_bug.cgi?id=99274
45686
45687         Reviewed by Adam Barth.
45688
45689         A recent bug report exhibited confusion as to what role, exactly,
45690         semicolons play in Content Security Policy definitions. This patch
45691         adjusts the parser to warn web authors if a directive name is
45692         encountered while parsing a source list, which would almost certainly
45693         point to a missing semicolon. For example, something like:
45694
45695             script-src 'self' object-src 'self' style-src *
45696
45697         would throw two warnings, noting that 'object-src' and 'style-src' are
45698         probably meant as directives, and not as source expressions in the
45699         'script-src' source list.
45700
45701         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html
45702
45703         * page/ContentSecurityPolicy.cpp:
45704         (WebCore::CSPSourceList::parse):
45705             Throw the new warning onto the console if the hostname of a source
45706             expression matches a CSP directive name.
45707         (WebCore::CSPDirectiveList::addDirective):
45708             Use the exciting new static variables so that the names of various
45709             directives are available outside of CSPDirectiveList::addDirective.
45710             These were previously defined as local static ASCIILiterals. Now
45711             they're static const char[] in an anonymous namespace.
45712         (WebCore::ContentSecurityPolicy::isDirectiveName):
45713             Static method that compares a string to all the known directive
45714             names, returning true if there's a (case-insensitive) match.
45715         (WebCore):
45716         (WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression):
45717             A new warning message which should be printed when a directive name
45718             is encountered as a source expression. Matching the directive name
45719             is done via a new 'isDirectiveName' function which lives in an
45720             anonymous namespace along with the other CSP helper functions.
45721         * page/ContentSecurityPolicy.h:
45722             Added 'reportDirectiveAsSourceExpression' signature.
45723
45724 2012-10-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
45725
45726         Unreviewed, rolling out r131349.
45727         http://trac.webkit.org/changeset/131349
45728         https://bugs.webkit.org/show_bug.cgi?id=97173
45729
45730         Revert r131349 because API test is broken by this commit.
45731
45732         * platform/efl/RunLoopEfl.cpp:
45733         (WebCore::RunLoop::RunLoop):
45734         (WebCore::RunLoop::~RunLoop):
45735
45736 2012-10-15  Nate Chapin  <japhet@chromium.org>
45737
45738         ResourceLoader::sendResourceLoadCallbacks() is backwards
45739         https://bugs.webkit.org/show_bug.cgi?id=99366
45740
45741         Reviewed by Daniel Bates.
45742
45743         No new tests, this function is uncalled but will be used
45744         in a later patch.
45745
45746         * loader/ResourceLoader.h:
45747         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
45748
45749 2012-10-15  Dan Bernstein  <mitz@apple.com>
45750
45751         REGRESSION (r131365): WidthIterator::advance() is needlessly passed a GlyphBuffer in many cases
45752         https://bugs.webkit.org/show_bug.cgi?id=99413
45753
45754         Reviewed by Adele Peterson.
45755
45756         r131365 made Font::width() always pass a GlyphBuffer pointer to floatWidthForSimpleText and
45757         from there down to WidthIterator::advance(). However, when measuring the width of a run, a
45758         GlyphBuffer is only needed if font transforms (kerning and ligatures) need to be applied.
45759
45760         No new test, because there is no change in behavior.
45761
45762         * platform/graphics/Font.cpp:
45763         (WebCore::Font::width): Removed the local GlyphBuffer that was passed down to
45764         floatWidthForSimpleText().
45765         * platform/graphics/Font.h: Removed the GlyphBuffer* parameter to floatWidthForSimpleText.
45766         All but the above caller were passing 0.
45767         * platform/graphics/FontFastPath.cpp:
45768         (WebCore::Font::floatWidthForSimpleText): Removed the GlyphBuffer* parameter and added a
45769         local GlyphBuffer, which is passed by reference to WidthIterator::advance() only if
45770         typesetting features require it.
45771         (WebCore::Font::offsetForPositionForSimpleText): Updated for change to
45772         floatWidthForSimpleText.
45773         * platform/graphics/pango/FontPango.cpp:
45774         (WebCore::Font::floatWidthForComplexText): Ditto.
45775
45776 2012-10-15  Pablo Flouret  <pablof@motorola.com>
45777
45778         Add force parameter to DOMTokenList.toggle
45779         https://bugs.webkit.org/show_bug.cgi?id=99375
45780
45781         Reviewed by Darin Adler.
45782
45783         See http://dom.spec.whatwg.org/#dom-domtokenlist-toggle and
45784         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18463
45785
45786         Essentially, the optional boolean force parameter, if present, makes
45787         toggle always add or remove a class.
45788
45789         No new tests, modified fast/dom/HTMLElement/script-tests/class-list.js
45790
45791         * html/DOMTokenList.cpp:
45792         (WebCore::DOMTokenList::toggle):
45793         (WebCore):
45794         * html/DOMTokenList.h:
45795         (DOMTokenList):
45796         * html/DOMTokenList.idl:
45797             New toggle() overload that takes a force parameter and calls
45798             addInternal() or removeInternal() based on it.
45799
45800 2012-10-15  Dan Bernstein  <mitz@apple.com>
45801
45802         Layout Test fast/text/justify-ideograph-leading-expansion.html is failing an assertion chromium mac
45803         https://bugs.webkit.org/show_bug.cgi?id=99406
45804
45805         Reviewed by Darin Adler.
45806
45807         * platform/graphics/WidthIterator.cpp:
45808         * platform/graphics/WidthIterator.h:
45809         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
45810         shorter than 2 characters. 1-character runs are invariant under font transforms, and therefore
45811         Font::codePath() sends them through WidthIterator even on platforms where WidthIterator
45812         does not support kerning and ligatures.
45813
45814 2012-10-15  Michael Saboff  <msaboff@apple.com>
45815
45816         Add 8 bit patch to Document::isValidName() for the non ASCII case
45817         https://bugs.webkit.org/show_bug.cgi?id=99402
45818
45819         Reviewed by Darin Adler.
45820
45821         Added 8 bit path to complete the processing of an 8 bit names without up-converting.
45822
45823         * dom/Document.cpp:
45824         (WebCore::isValidNameNonASCII):
45825         (WebCore::Document::isValidName):
45826
45827 2012-10-15  Vlad Grecescu  <igrecesc@adobe.com>, Douglas Stockwell  <dstockwell@chromium.org>
45828
45829         Support for background-clip:content-box and padding-box with border-radius
45830         https://bugs.webkit.org/show_bug.cgi?id=23166
45831
45832         Reviewed by Simon Fraser.
45833
45834         Test: fast/css/background-clip-radius-values.html
45835
45836         * rendering/RenderBoxModelObject.cpp:
45837         (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
45838         (WebCore):
45839         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
45840         * rendering/RenderBoxModelObject.h:
45841
45842 2012-10-15  Byungwoo Lee  <bw80.lee@samsung.com>
45843
45844         Fix unused parameter build warning.
45845         https://bugs.webkit.org/show_bug.cgi?id=99400
45846
45847         Reviewed by Gyuyoung Kim.
45848
45849         Remove the name of unused parameters to fix the build warning (-Wunused-parameter).
45850
45851         * platform/network/soup/ResourceErrorSoup.cpp:
45852         (WebCore::ResourceError::tlsError):
45853
45854 2012-10-15  Kenichi Ishibashi  <bashi@chromium.org>
45855
45856         [WebSocket] WebSocketInflater should handle BFINAL = 1 blocks
45857         https://bugs.webkit.org/show_bug.cgi?id=99282
45858
45859         Reviewed by Yuta Kitamura.
45860
45861         Reset decompression state if WebSocketInflater decompress a block with
45862         BFINAL set to 1.
45863
45864         Test: http/tests/websocket/tests/hybi/deflate-frame-set-bfinal.html
45865
45866         * Modules/websockets/WebSocketDeflater.cpp:
45867         (WebCore::WebSocketInflater::addBytes):
45868         Reset decompression state if inflate() returns Z_STREAM_END, which means the BFINAL
45869         of the current block was set to 1.
45870         (WebCore::WebSocketInflater::finish): Add an assertion.
45871
45872 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
45873
45874         Fix GraphicsLayer visible rect computation when scrolling in WebKit1
45875         https://bugs.webkit.org/show_bug.cgi?id=99385
45876
45877         Reviewed by Dean Jackson, Tim Horton.
45878
45879         RenderLayerCompositor always used frameView->frameRect() as the visible
45880         rect on the root used for GraphicsLayer visibleRect computation. This
45881         was wrong for subframes, which require a rect with an origin of (0,0)
45882         and size of the contentsSize().
45883         
45884         It was also wrong when the scrolling is not represented in the GraphicsLayer
45885         tree. When scrolling is done elsewhere, we need to use the ScrollView's
45886         visibleContentRect().
45887
45888         Tests: compositing/visible-rect/scrolled.html
45889                compositing/visible-rect/iframe-and-layers.html
45890                compositing/visible-rect/iframe-no-layers.html
45891
45892         * rendering/RenderLayerCompositor.cpp:
45893         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
45894
45895 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
45896
45897         Remove page visibility hidden histograms
45898         https://bugs.webkit.org/show_bug.cgi?id=99360
45899
45900         Reviewed by Ojan Vafai.
45901
45902         The 2 page visibility hidden histograms were added in http://webkit.org/b/85537 to
45903         investigate a potential optimization where we would destroy the render tree when
45904         a tab was hidden. The optimization was abandoned but the histograms were never
45905         removed. They are too narrow to be reused so this change removes them.
45906
45907         * page/Page.cpp:
45908         (WebCore::Page::setVisibilityState):
45909
45910 2012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>
45911
45912         REGRESSION: Build break after r131373 when ACCELERATED_COMPOSITING disabled
45913         https://bugs.webkit.org/show_bug.cgi?id=99397
45914
45915         Unreviewed, build fix.
45916
45917         * page/scrolling/ScrollingCoordinator.cpp:
45918         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
45919
45920 2012-10-14  Kent Tamura  <tkent@chromium.org>
45921
45922         Input elements with multiple fields UI should set appropriate direction for browser locale automatically
45923         https://bugs.webkit.org/show_bug.cgi?id=99291
45924
45925         Reviewed by Hajime Morita.
45926
45927         Input elemnts with multiple fields UI ignores HTML dir attribute or CSS
45928         direction property, and their direction should be decided by the browser
45929         locale. If the browser locale is a RTL language, date/time input fields
45930         show formats/digits for the RTL language. The layout should be always
45931         RTL regardless of the direction in such case.
45932
45933         Test: fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n.html
45934
45935         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
45936         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
45937         Set approriate dir attribute value to the child element of the UA shadow root.
45938
45939 2012-10-15  Andreas Kling  <kling@webkit.org>
45940
45941         StyleResolver: Garbage collect the matched properties cache on a timer.
45942         <http://webkit.org/b/98625>
45943
45944         Reviewed by Eric Seidel.
45945
45946         Sweeping the matched properties cache once every 100 additions ended up choking RoboHornet's
45947         svgresize.html benchmark. Move it to a single-shot timer that's refreshed every 100 additions
45948         and defers the actual sweep for 60 seconds.
45949
45950         * css/StyleResolver.cpp:
45951         (WebCore::StyleResolver::StyleResolver):
45952         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
45953         (WebCore::StyleResolver::addToMatchedPropertiesCache):
45954         * css/StyleResolver.h:
45955         (StyleResolver):
45956
45957 2012-10-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
45958
45959         [GStreamer] GstCaps are leaked when building with gstreamer-1.0
45960         https://bugs.webkit.org/show_bug.cgi?id=99362
45961
45962         Reviewed by Martin Robinson.
45963
45964         Implement GRefPtr<GstCaps> adoptGRef(GstCaps*).
45965
45966         Change webkitGstGetPadCaps signature to return a GRefPtr<GstCaps>, and
45967         use GRefPtr<GstCaps> also in webkitVideoSinkRender to simply GstCaps
45968         refeference count.
45969
45970         Covered by existing tests.
45971
45972         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
45973         (WTF::adoptGRef):
45974         (WTF):
45975         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
45976         (WTF):
45977         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
45978         (webkitGstGetPadCaps):
45979         * platform/graphics/gstreamer/GStreamerVersioning.h:
45980         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
45981         (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
45982         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
45983         (webkitVideoSinkRender):
45984
45985 2012-10-15  Tony Chang  <tony@chromium.org>
45986
45987         Unreviewed, rolling out r131367.
45988         http://trac.webkit.org/changeset/131367
45989         https://bugs.webkit.org/show_bug.cgi?id=98666
45990
45991         crashes on Apple Mac
45992
45993         * css/html.css:
45994         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
45995         (input[type="range"]::-webkit-slider-runnable-track):
45996         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
45997         * css/mediaControlsChromium.css:
45998         (input[type="range"]::-webkit-media-slider-thumb):
45999         * css/mediaControlsChromiumAndroid.css:
46000         (input[type="range"]::-webkit-media-slider-thumb):
46001         * html/RangeInputType.cpp:
46002         (WebCore::RangeInputType::listAttributeTargetChanged):
46003         * html/shadow/SliderThumbElement.cpp:
46004         (WebCore::RenderSliderThumb::layout):
46005         (WebCore):
46006         (WebCore::RenderSliderContainer::RenderSliderContainer):
46007         (RenderSliderContainer):
46008         (WebCore::RenderSliderContainer::layout):
46009         * html/shadow/SliderThumbElement.h:
46010         (RenderSliderThumb):
46011         * rendering/RenderSlider.cpp:
46012         (WebCore):
46013         (WebCore::RenderSlider::RenderSlider):
46014         (WebCore::RenderSlider::layout):
46015         * rendering/RenderSlider.h:
46016         (WebCore):
46017         (RenderSlider):
46018         (WebCore::RenderSlider::renderName):
46019         (WebCore::RenderSlider::isSlider):
46020         (WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
46021         (WebCore::toRenderSlider):
46022
46023 2012-10-15  Dan Bernstein  <mitz@apple.com>
46024
46025         Try to fix the build again after r131375.
46026
46027         * platform/graphics/WidthIterator.h:
46028         (WebCore::WidthIterator::shouldApplyFontTransforms): Removed the length check from here.
46029
46030 2012-10-15  Dan Bernstein  <mitz@apple.com>
46031
46032         Try to fix assertion failures on ports that do not support kerning and ligatures on the fast
46033         code path after r131365.
46034
46035         * platform/graphics/WidthIterator.cpp:
46036         (WebCore::applyFontTransforms): Changed the early return condition to not bother with 1-glyph
46037         sequences.
46038         * platform/graphics/WidthIterator.h:
46039         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
46040         shorter than 2 characters.
46041
46042 2012-10-15  Dan Bernstein  <mitz@apple.com>
46043
46044         Try to fix the Chromium Mac build after r131365.
46045
46046         * platform/graphics/GlyphBuffer.h:
46047         (WebCore::GlyphBufferAdvance::height): Added.
46048         * platform/graphics/skia/FontSkia.cpp:
46049         (WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.
46050
46051 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
46052
46053         Ensure that GraphicsLayer positions are updated while doing threaded scrolling
46054         https://bugs.webkit.org/show_bug.cgi?id=99372
46055
46056         Reviewed by Anders Carlsson.
46057
46058         When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
46059         but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
46060         works incorrectly.
46061         
46062         Threaded scrolling is not testabled in layout tests.
46063
46064         * page/scrolling/ScrollingCoordinator.cpp:
46065         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
46066         * platform/graphics/GraphicsLayer.h:
46067         (GraphicsLayer):
46068         (WebCore::GraphicsLayer::syncPosition):
46069
46070 2012-10-15  Tommy Widenflycht  <tommyw@google.com>
46071
46072         MediaStream API: Implement RTCDataChannel
46073         https://bugs.webkit.org/show_bug.cgi?id=99080
46074
46075         Reviewed by Adam Barth.
46076
46077         This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
46078         Since the data channel belongs to a peer connection object I have reused part of its infrastructure.
46079
46080         Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.
46081
46082         * CMakeLists.txt:
46083         * GNUmakefile.list.am:
46084         * Modules/mediastream/RTCDataChannel.cpp: Added.
46085         (WebCore):
46086         (WebCore::RTCDataChannel::create):
46087         (WebCore::RTCDataChannel::RTCDataChannel):
46088         (WebCore::RTCDataChannel::~RTCDataChannel):
46089         (WebCore::RTCDataChannel::label):
46090         (WebCore::RTCDataChannel::reliable):
46091         (WebCore::RTCDataChannel::readyState):
46092         (WebCore::RTCDataChannel::bufferedAmount):
46093         (WebCore::RTCDataChannel::binaryType):
46094         (WebCore::RTCDataChannel::setBinaryType):
46095         (WebCore::RTCDataChannel::send):
46096         (WebCore::RTCDataChannel::close):
46097         (WebCore::RTCDataChannel::readyStateChanged):
46098         (WebCore::RTCDataChannel::dataArrived):
46099         (WebCore::RTCDataChannel::error):
46100         (WebCore::RTCDataChannel::descriptor):
46101         (WebCore::RTCDataChannel::interfaceName):
46102         (WebCore::RTCDataChannel::scriptExecutionContext):
46103         (WebCore::RTCDataChannel::stop):
46104         (WebCore::RTCDataChannel::eventTargetData):
46105         (WebCore::RTCDataChannel::ensureEventTargetData):
46106         * Modules/mediastream/RTCDataChannel.h: Added.
46107         (WebCore):
46108         (RTCDataChannel):
46109         (WebCore::RTCDataChannel::refEventTarget):
46110         (WebCore::RTCDataChannel::derefEventTarget):
46111         * Modules/mediastream/RTCDataChannel.idl: Added.
46112         * Modules/mediastream/RTCDataChannelEvent.cpp: Added.
46113         (WebCore):
46114         (WebCore::RTCDataChannelEvent::create):
46115         (WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
46116         (WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
46117         (WebCore::RTCDataChannelEvent::channel):
46118         (WebCore::RTCDataChannelEvent::interfaceName):
46119         * Modules/mediastream/RTCDataChannelEvent.h: Added.
46120         (WebCore):
46121         (RTCDataChannelEvent):
46122         * Modules/mediastream/RTCDataChannelEvent.idl: Added.
46123         * Modules/mediastream/RTCPeerConnection.cpp:
46124         (WebCore::RTCPeerConnection::createDataChannel):
46125         (WebCore):
46126         (WebCore::RTCPeerConnection::close):
46127         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
46128         (WebCore::RTCPeerConnection::stop):
46129         * Modules/mediastream/RTCPeerConnection.h:
46130         (WebCore):
46131         (RTCPeerConnection):
46132         * Modules/mediastream/RTCPeerConnection.idl:
46133         * WebCore.gypi:
46134         * dom/EventNames.h:
46135         (WebCore):
46136         * dom/EventNames.in:
46137         * dom/EventTargetFactory.in:
46138         * platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
46139         (WebCore):
46140         (WebCore::RTCDataChannelDescriptor::create):
46141         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
46142         (WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
46143         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
46144         (WebCore::RTCDataChannelDescriptor::dataArrived):
46145         (WebCore::RTCDataChannelDescriptor::error):
46146         * platform/mediastream/RTCDataChannelDescriptor.h: Added.
46147         (WebCore):
46148         (RTCDataChannelDescriptorClient):
46149         (WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
46150         (RTCDataChannelDescriptor):
46151         (ExtraData):
46152         (WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
46153         (WebCore::RTCDataChannelDescriptor::client):
46154         (WebCore::RTCDataChannelDescriptor::setClient):
46155         (WebCore::RTCDataChannelDescriptor::label):
46156         (WebCore::RTCDataChannelDescriptor::reliable):
46157         (WebCore::RTCDataChannelDescriptor::readyState):
46158         (WebCore::RTCDataChannelDescriptor::bufferedAmount):
46159         (WebCore::RTCDataChannelDescriptor::setBufferedAmount):
46160         (WebCore::RTCDataChannelDescriptor::extraData):
46161         (WebCore::RTCDataChannelDescriptor::setExtraData):
46162         * platform/mediastream/RTCPeerConnectionHandler.cpp:
46163         (RTCPeerConnectionHandlerDummy):
46164         (WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
46165         (WebCore):
46166         (WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
46167         (WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
46168         (WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
46169         * platform/mediastream/RTCPeerConnectionHandler.h:
46170         (WebCore):
46171         (RTCPeerConnectionHandler):
46172         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
46173         (WebCore):
46174         (RTCPeerConnectionHandlerClient):
46175         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
46176         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
46177         (WebCore):
46178         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
46179         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
46180         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
46181         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
46182         (RTCPeerConnectionHandlerChromium):
46183
46184 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46185
46186         IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
46187         https://bugs.webkit.org/show_bug.cgi?id=99097
46188
46189         Reviewed by Tony Chang.
46190
46191         Include the error causing the abort in the callback from back end to
46192         front end so it can be exposed on the IDBTransaction.error property.
46193
46194         Test: lazy-index-population.html
46195
46196         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
46197         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
46198         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
46199         * Modules/indexeddb/IDBDatabaseCallbacks.h:
46200         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
46201         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
46202         (WebCore::IDBObjectStoreBackendImpl::putInternal):
46203         * Modules/indexeddb/IDBTransaction.cpp:
46204         (WebCore::IDBTransaction::onAbort):
46205         * Modules/indexeddb/IDBTransaction.h:
46206         (IDBTransaction):
46207         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
46208         (WebCore::IDBTransactionBackendImpl::abort):
46209         (WebCore):
46210         (WebCore::IDBTransactionBackendImpl::commit):
46211         * Modules/indexeddb/IDBTransactionBackendImpl.h:
46212         (IDBTransactionBackendImpl):
46213         * Modules/indexeddb/IDBTransactionCallbacks.h:
46214         (IDBTransactionCallbacks):
46215         * inspector/InspectorIndexedDBAgent.cpp:
46216         (WebCore):
46217
46218 2012-10-15  Mike Reed  <reed@google.com>
46219
46220         In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
46221         https://bugs.webkit.org/show_bug.cgi?id=99326
46222
46223         Reviewed by Stephen White.
46224
46225         No new tests -- existing layouttests exercise this, esp. 
46226           png-partial-load-no-alpha.html
46227           webp-partial-load.html
46228         These two fail if skia is told that these are opaque, which it is w/o this CL.
46229
46230         At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
46231         This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
46232         in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.
46233
46234         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
46235         (WebCore::ImageFrame::ImageFrame):
46236         (WebCore::ImageFrame::operator=):
46237         (WebCore::ImageFrame::zeroFillPixelData):
46238         (WebCore::ImageFrame::hasAlpha):
46239         (WebCore::ImageFrame::setHasAlpha):
46240         (WebCore::ImageFrame::setStatus):
46241
46242 2012-10-12  Tony Chang  <tony@chromium.org>
46243
46244         input[type=range] as a flex item renders thumb at wrong position
46245         https://bugs.webkit.org/show_bug.cgi?id=98666
46246
46247         Reviewed by Ojan Vafai.
46248
46249         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
46250         The previous code was trying to set the height to 100% and had a bunch of hacks in
46251         the renderer code to set an explicit height. Using the new flexbox allows us to
46252         remove these renderer hacks.
46253
46254         Test: css3/flexbox/flexitem-stretch-range.html
46255
46256         * css/html.css:
46257         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
46258         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
46259         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
46260         no longer setting top/left in the layout code.
46261         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
46262         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
46263         * html/RangeInputType.cpp:
46264         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
46265         since the height of the control should change when adding/removing a datalist.
46266         * html/shadow/SliderThumbElement.cpp:
46267         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
46268         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
46269         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
46270         we use the intrinsic size.
46271         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
46272         This used to be handled in the thumb's layout method, but I deleted that.
46273         * html/shadow/SliderThumbElement.h:
46274         * rendering/RenderSlider.cpp:
46275         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
46276         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
46277         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
46278         and expects the input to also have a height of 1px.  It worked before because the height of the input
46279         didn't depend on the height of its children.
46280         * rendering/RenderSlider.h: Fix indentation.
46281         (RenderSlider): Use new flexible box.
46282
46283 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
46284
46285         Make RenderTable columns() and columnPositions() return a const reference
46286         https://bugs.webkit.org/show_bug.cgi?id=99339
46287
46288         Reviewed by Abhishek Arya.
46289
46290         The 2 getters were returning a non-const reference. This means that callers
46291         could have modified the Vector's where only FixedTableLayout and AutoTableLayout
46292         were expected to (for columnPositions(), no one should modify columns()).
46293
46294         Refactoring covered by existing tests.
46295
46296         * rendering/AutoTableLayout.cpp:
46297         (WebCore::AutoTableLayout::layout):
46298         * rendering/FixedTableLayout.cpp:
46299         (WebCore::FixedTableLayout::layout):
46300         Updated those functions to use the new setter.
46301
46302         * rendering/RenderTable.h:
46303         (WebCore::RenderTable::columns):
46304         (WebCore::RenderTable::columnPositions):
46305         Made the 2 functions return a const reference. They are also const now!
46306
46307         (WebCore::RenderTable::setColumnPosition):
46308         Added this setter.
46309
46310         * rendering/RenderTableSection.cpp:
46311         (WebCore::RenderTableSection::addCell):
46312         (WebCore::RenderTableSection::setCellLogicalWidths):
46313         (WebCore::RenderTableSection::dirtiedColumns):
46314         Updated to use a const reference.
46315
46316 2012-10-15  Dan Bernstein  <mitz@apple.com>
46317
46318         WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
46319         https://bugs.webkit.org/show_bug.cgi?id=99113
46320
46321         Reviewed by Tim Horton.
46322
46323         * WebCore.exp.in: Exported wkCTFontTransformGlyphs.
46324         * platform/graphics/Font.cpp:
46325         (WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
46326         (WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
46327         features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
46328         typesetting features.
46329         * platform/graphics/FontFastPath.cpp:
46330         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
46331         WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
46332         about how this is not entirely correct when kerning or ligatures are enabled.
46333         (WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
46334         WidthIterator::advance() when advancing to or from the range of interest.
46335         (WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
46336         WidthIterator::advanceOneCharacter().
46337         * platform/graphics/SimpleFontData.h:
46338         (WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
46339         available.
46340         * platform/graphics/WidthIterator.cpp:
46341         (WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
46342         data member.
46343         (OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
46344         characters treated as spaces.
46345         (WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
46346         required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
46347         maintaining the advances of characters that are treated as spaces and the characters
46348         preceding them, if necessary.
46349         (WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
46350         of each contiguous run of glyphs from the same font. Also added code to maintain a vector
46351         of spaces and characters treated as space.
46352         (WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
46353         a reference.
46354         * platform/graphics/WidthIterator.h:
46355         (WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
46356         instances support the typesetting features of the given font. Returns true if the font is
46357         not a screen font and its typesetting features are kerning, ligatures or both.
46358         (WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
46359         features include kerning or ligatures.
46360         * platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
46361         wkCTFontTransformGlyphs.
46362         * platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
46363         * rendering/svg/SVGTextMetricsBuilder.cpp:
46364         (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
46365         WidthIterator::advance().
46366         * rendering/svg/SVGTextRunRenderingContext.cpp:
46367         (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.
46368
46369 2012-10-15  Mark Lam  <mark.lam@apple.com>
46370
46371         Fix build broken by r131348.
46372         https://bugs.webkit.org/show_bug.cgi?id=97533.
46373
46374         Not reviewed.
46375
46376         * rendering/RenderView.cpp:
46377         (WebCore::RenderView::layoutContent):
46378
46379 2012-10-15  Andreas Kling  <kling@webkit.org>
46380
46381         Remove WTF::fastDeleteAllValues().
46382         <http://webkit.org/b/99345>
46383
46384         Reviewed by Eric Seidel.
46385
46386         It was only used to fastDelete() a class that was already overriding operator delete
46387         by way of WTF_MAKE_FAST_ALLOCATED anyway.
46388
46389         * css/CSSParser.cpp:
46390         (WebCore::CSSParser::~CSSParser):
46391
46392 2012-10-15  Levi Weintraub  <leviw@chromium.org>
46393
46394         Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
46395         https://bugs.webkit.org/show_bug.cgi?id=99194
46396
46397         Reviewed by Eric Seidel.
46398
46399         Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
46400         these two types of elements would cause us to increase our preferred width forever.
46401
46402         Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html
46403
46404         * rendering/RenderBlock.cpp:
46405         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
46406
46407 2012-10-15  Emil A Eklund  <eae@chromium.org>
46408
46409         Revert rounding change in RenderTable::paintObject
46410         https://bugs.webkit.org/show_bug.cgi?id=99364
46411
46412         Reviewed by Levi Weintraub.
46413
46414         Bug 91410 changed RenderTable::paintObject to round the offset
46415         in order to avoid table-background bleed through. The root cause
46416         for that has since been fixed and the rounding workaround is no
46417         longer needed. This change reverts the code change from bug
46418         91410 while preserving the test added as a part of that change
46419         as it now passes without the workaround.
46420
46421         No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html
46422
46423         * rendering/RenderTable.cpp:
46424         (WebCore::RenderTable::paintObject):
46425         Remove unnecessary rounding.
46426
46427 2012-10-15  Michelangelo De Simone  <michelangelo@webkit.org>
46428
46429         [CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
46430         https://bugs.webkit.org/show_bug.cgi?id=96448
46431
46432         Reviewed by Kenneth Rohde Christiansen.
46433
46434         CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
46435         the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
46436         that m_programType encoded the very same information. Dependencies have been updated to reflect
46437         this change.
46438
46439         Current tests already cover this code.
46440
46441         * css/CSSComputedStyleDeclaration.cpp: 
46442         (WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
46443         by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
46444         * css/StyleResolver.cpp:
46445         (WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
46446         new filter program.
46447         * platform/graphics/filters/CustomFilterProgram.cpp:
46448         (WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
46449         reflect the need of setting the program type explicitly.
46450         (WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
46451         type explicitly.
46452         * platform/graphics/filters/CustomFilterProgram.h:
46453         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
46454         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
46455         (WebCore::CustomFilterProgramInfo::hash): ditto
46456         (WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
46457         the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
46458         * platform/graphics/filters/CustomFilterProgramInfo.h:
46459         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
46460         (WebCore::CustomFilterProgramMixSettings::operator==): ditto
46461         (CustomFilterProgramInfo):
46462         (WebCore::CustomFilterProgramInfo::programType):
46463         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
46464         created according to the program type.
46465         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
46466         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
46467         has been replaced with a check for the program type.
46468         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
46469         * rendering/style/StyleCustomFilterProgram.h:
46470         (WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
46471         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto
46472
46473 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46474
46475         IndexedDB: Key paths should support non-ASCII identifiers
46476         https://bugs.webkit.org/show_bug.cgi?id=98814
46477
46478         Reviewed by Kentaro Hara.
46479
46480         Update the parser for key paths to use the unicode classes from
46481         the IdentifierName production in ECMA-262.
46482
46483         Test: storage/indexeddb/keypath-basics.html
46484
46485         * Modules/indexeddb/IDBKeyPath.cpp:
46486         (WebCore):
46487         (WebCore::IDBKeyPathLexer::lexIdentifier):
46488
46489 2012-10-15  Yael Aharon  <yael.aharon@intel.com>
46490
46491         [EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
46492         https://bugs.webkit.org/show_bug.cgi?id=99325
46493
46494         Reviewed by Kenneth Rohde Christiansen.
46495
46496         Based on a patch from Regina Chung.
46497         This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
46498         The gl context is used as key in a hash map and cannot be NULL.
46499
46500         No new tests. Accelerated compositing is not yet enabled in the EFL port.
46501
46502         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
46503         (WebCore::GraphicsContext3D::GraphicsContext3D):
46504
46505 2012-10-15  Mike West  <mkwst@chromium.org>
46506
46507         Console messages containing long URLs should cut at some reasonable length.
46508         https://bugs.webkit.org/show_bug.cgi?id=97980
46509
46510         Reviewed by Pavel Feldman.
46511
46512         This patch lightly modifies the current styling of linkified URLs inside
46513         console messages in order to cut them down to some reasonable size for
46514         viewing. The middle of the URL is snipped out such that the whole
46515         thing fits into 150 characters. This only effects the displayed text;
46516         the link's href isn't changed; the link remains available via the
46517         context menu, accessible via the title attribute, and clicking it still
46518         takes the user directly to the resource in question.
46519
46520         Test: inspector/console/console-trim-long-urls.html
46521
46522         * inspector/front-end/ResourceUtils.js:
46523         (WebInspector.linkifyURLAsNode):
46524             Trim the middle of the URL to bring the whole string down to  down
46525             to 150 characters, and set the link's title to the full URL.
46526
46527 2012-10-15  Tony Chang  <tony@chromium.org>
46528
46529         Add computeLogicalHeight override methods to RenderView and RenderMultiColumnSet
46530         https://bugs.webkit.org/show_bug.cgi?id=99348
46531
46532         Reviewed by Ojan Vafai.
46533
46534         Add computeLogicalHeight to the last 2 RenderBoxes that override the method.
46535         I'm unable to remove RenderMultiColumnSet::updateLogicalHeight and make the method
46536         non-virtual since it sets ComputedColumnHeight.  I'd like to remove this
46537         eventually.
46538
46539         No new tests, this is just a code refactor.
46540
46541         * rendering/RenderMultiColumnSet.cpp:
46542         (WebCore::RenderMultiColumnSet::updateLogicalHeight): Set computedColumnHeight.
46543         (WebCore::RenderMultiColumnSet::computeLogicalHeight):
46544         (WebCore):
46545         * rendering/RenderMultiColumnSet.h:
46546         (RenderMultiColumnSet):
46547         * rendering/RenderView.cpp:
46548         (WebCore::RenderView::computeLogicalHeight):
46549         * rendering/RenderView.h:
46550
46551 2012-10-15  Eunmi Lee  <eunmi15.lee@samsung.com>
46552
46553         [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
46554         https://bugs.webkit.org/show_bug.cgi?id=97173
46555
46556         Reviewed by Gyuyoung Kim.
46557
46558         Remove codes to initialize and shutdown the EFL libraries from
46559         RunLoopEfl.cpp. Initialization and shutdown will be done in the
46560         ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
46561         process.
46562
46563         No new tests. This patch doesn't change behavior.
46564
46565         * platform/efl/RunLoopEfl.cpp:
46566         (WebCore::RunLoop::RunLoop):
46567         (WebCore::RunLoop::~RunLoop):
46568
46569 2012-10-15  Mihnea Ovidenie  <mihnea@adobe.com>
46570
46571         [CSSRegions]Add support for auto-height regions (without region-breaks)
46572         https://bugs.webkit.org/show_bug.cgi?id=97533
46573
46574         Reviewed by Julien Chaffraix.
46575
46576         Implement the 2pass layout algorithm for computing the height of regions with auto logical height, without taking region breaks into account.
46577         The algorithm is described in the CSSRegions spec: http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps
46578
46579         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.
46580         In each step of the layout, the regions are laid out before the flow thread is laid out.
46581
46582         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
46583         displays all the corresponding content from the flow thread (taking min-height and max-height into account), and the height of the content displayed
46584         determines the overridden logical content height. Thus, after the first pass of layout, each auto logical height region will store the logical height
46585         value for the second pass in its overridden logical content height property.
46586
46587         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
46588         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,
46589         for which the auto logical height regions have proper logical height.
46590
46591         A future patch will properly take region breaks into account for the first pass of layout.
46592
46593         Tests: fast/regions/autoheight-abspos-region.html
46594                fast/regions/autoheight-floatright-region.html
46595                fast/regions/autoheight-horizontal-bt.html
46596                fast/regions/autoheight-inlineblock-normalflow-region.html
46597                fast/regions/autoheight-maxheight-region.html
46598                fast/regions/autoheight-minheight-region.html
46599                fast/regions/autoheight-normalflow-region.html
46600                fast/regions/autoheight-vertical-lr.html
46601                fast/regions/autoheight-vertical-rl.html
46602
46603         * rendering/FlowThreadController.cpp:
46604         (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
46605         For all the auto logical height regions, resets their associated overrideLogicalContentHeight.
46606         Those regions are marked as needing layout (along with their ancestors).
46607         (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
46608         Mark all the auto logical height regions and their associated flow thread as needing layout (along with their ancestors).
46609         * rendering/FlowThreadController.h:
46610         * rendering/RenderBox.cpp:
46611         Add helper functions to clear out individual logical content width/height.
46612         (WebCore::RenderBox::clearOverrideLogicalContentHeight):
46613         (WebCore::RenderBox::clearOverrideLogicalContentWidth):
46614         (WebCore::RenderBox::clearOverrideSize):
46615         * rendering/RenderBox.h:
46616         * rendering/RenderFlowThread.cpp:
46617         (WebCore::RenderFlowThread::layout):
46618         (WebCore::RenderFlowThread::computeLogicalHeight):
46619         If the flow thread has an auto logical height region for which we did not yet compute the overrideLogicalContentHeight value,
46620         bail out early since we cannot compute the flow thread logical height.
46621         (WebCore::RenderFlowThread::regionAtBlockOffset):
46622         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
46623         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
46624         the logicalHeight if we are in the second layout phase (because the overriderLogicalContentHeight was already transferred into region logical height).
46625         (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
46626         (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
46627         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
46628         (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
46629         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
46630         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
46631         (WebCore::RenderFlowThread::addForcedRegionBreak):
46632         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
46633         can have its height properly computed.
46634         * rendering/RenderFlowThread.h:
46635         * rendering/RenderNamedFlowThread.cpp:
46636         (WebCore::boxIntersectsRegion):
46637         * rendering/RenderRegion.cpp:
46638         (WebCore::RenderRegion::updateLogicalHeight):
46639         If the auto logical height region has an overrideLogicalContentHeight and we are in the second pass of layout,
46640         we use the overrideLogicalContentHeight to update the region logical height.
46641         (WebCore::RenderRegion::needsOverrideLogicalContentHeightComputation):
46642         * rendering/RenderRegion.h:
46643         * rendering/RenderView.cpp:
46644         (WebCore::RenderView::RenderView):
46645         (WebCore::RenderView::layoutContent):
46646         Added a new function to contain the RenderView block layout and flow threads layout.
46647         (WebCore::RenderView::checkLayoutState):
46648         Helper function keeping the original asserts from RenderView, used in more than one place.
46649         (WebCore::RenderView::layout):
46650         * rendering/RenderView.h:
46651         (WebCore::RenderView::normalLayoutPhase):
46652         (WebCore::RenderView::constrainedFlowThreadsLayoutPhase):
46653
46654 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46655
46656         Web Inspector: Fix memory leak in TreeOutline
46657         https://bugs.webkit.org/show_bug.cgi?id=99307
46658
46659         Reviewed by Alexander Pavlov.
46660
46661         Added cleanup of empty buckets in elements cache.
46662
46663         * inspector/front-end/treeoutline.js:
46664
46665 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46666
46667         Web Inspector: Hide useless controls in remote-debugging mode.
46668         https://bugs.webkit.org/show_bug.cgi?id=99300
46669
46670         Reviewed by Vsevolod Vlasov.
46671
46672         "Close inspector" and "change docking mode" buttons seem to be rather
46673         useless in remote debugging mode.
46674
46675         * inspector/front-end/inspector.css:
46676         (body.remote .toolbar-item.close-left, body.remote .toolbar-item.close-right):
46677         (body.remote .dock-status-bar-item):
46678
46679 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46680
46681         [EFL][WK2] Implement Favicons API
46682         https://bugs.webkit.org/show_bug.cgi?id=99087
46683
46684         Reviewed by Kenneth Rohde Christiansen.
46685
46686         Moved ewk_util from WebKit to WebCore and rename it
46687         to CairoUtilityEfl so that the code can be shared
46688         between WebKit1 and WebKit2. Some related utility
46689         code was also moved from RenderThemeEfl to
46690         CairoUtilityEfl.
46691
46692         No new tests, no behavior change.
46693
46694         * PlatformEfl.cmake:
46695         * platform/efl/RenderThemeEfl.cpp:
46696         * platform/graphics/efl/CairoUtilitiesEfl.cpp: Renamed from Source/WebKit/efl/ewk/ewk_util.cpp.
46697         (WebCore):
46698         (WebCore::evasObjectFromCairoImageSurface):
46699         (WebCore::createSurfaceForBackingStore):
46700         * platform/graphics/efl/CairoUtilitiesEfl.h: Renamed from Source/WebKit/efl/ewk/ewk_util_private.h.
46701         (WebCore):
46702
46703 2012-10-15  Beth Dakin  <bdakin@apple.com>
46704
46705         https://bugs.webkit.org/show_bug.cgi?id=99350
46706         REGRESSION (r131238): Repro crash in 
46707        WebCore::ScrollingStateTree::removeNode(WebCore::ScrollingStateNode*) 
46708         opening pdf page
46709         -and corresponding-
46710         <rdar://problem/12499839>
46711
46712         Reviewed by Simon Fraser.
46713
46714         We have to null-check node here. It won't be found if  
46715         clearStateTree() was recently called.
46716         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
46717         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
46718
46719 2012-10-15  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
46720
46721         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
46722         https://bugs.webkit.org/show_bug.cgi?id=99302
46723
46724         Reviewed by Rob Buis.
46725
46726         RIM PR: 210884
46727         The marco BBLOG() is defined as a no-op in release mode which will
46728         save a function call in the release build.
46729         Internally reviewed by Charles Wei.
46730
46731         No new tests since there's no functional change.
46732
46733         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
46734         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
46735         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
46736         (WebCore::GraphicsContext3D::logFrameBufferStatus):
46737         * platform/graphics/blackberry/LayerCompositingThread.cpp:
46738         (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
46739         * platform/graphics/blackberry/VideoLayerWebKitThread.cpp:
46740         (WebCore::VideoLayerWebKitThread::setHolePunchRect):
46741         (WebCore::VideoLayerWebKitThread::boundsChanged):
46742         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
46743         (WebCore::GraphicsContext3D::compileShader):
46744
46745 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46746
46747         [EFL] Provide logging for OnlineState detection code
46748         https://bugs.webkit.org/show_bug.cgi?id=99299
46749
46750         Reviewed by Kenneth Rohde Christiansen.
46751
46752         Add logging to NetworkStateNotifierEfl.cpp to facilitate
46753         debugging of this functionality.
46754
46755         No new tests, no behavior change.
46756
46757         * platform/network/efl/NetworkStateNotifierEfl.cpp:
46758         (WebCore::NetworkStateNotifier::updateState):
46759
46760 2012-10-15  MORITA Hajime  <morrita@google.com>
46761
46762         [Regression r131167] run-webkit-tests fails
46763         https://bugs.webkit.org/show_bug.cgi?id=99279
46764
46765         Reviewed by Kentaro Hara.
46766
46767         CodeGeneratorV8.pm assumed that there are only two objects which have constructor getters and
46768         overlooked TestObj. This fix relaxes that assumption to accept it.
46769
46770         No new tests. Fixing an existing test.
46771
46772         * bindings/scripts/CodeGeneratorV8.pm:
46773         (GenerateConstructorGetter):
46774         * bindings/scripts/test/V8/V8TestObj.cpp:
46775         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
46776
46777 2012-10-15  Joe Mason  <jmason@rim.com>
46778
46779         [BlackBerry] Fix WebSockets which was disabled by recent string changes
46780         https://bugs.webkit.org/show_bug.cgi?id=99248
46781
46782         Reviewed by George Staikos.
46783
46784         PR 223681: The signature of FilterStream::notifyStatusReceived changed to take a
46785         BlackBerry::Platform::String instead of a char *. But SocketStreamHandleBlackBerry was not
46786         updated to the new signature, so the status message is not getting passed on because it is
46787         not calling the correct override.
46788
46789         No new tests because this is fixing a regression.
46790
46791         * platform/network/blackberry/SocketStreamHandle.h:
46792         (SocketStreamHandle):
46793         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46794         (WebCore::SocketStreamHandle::notifyStatusReceived):
46795
46796 2012-10-15  Rob Buis  <rbuis@rim.com>
46797
46798         Remove RenderTextControl::isSelectableElement
46799         https://bugs.webkit.org/show_bug.cgi?id=99334
46800
46801         Reviewed by Andreas Kling.
46802
46803         It seems this method is not used anymore.
46804
46805         * WebCore.order:
46806         * rendering/RenderTextControl.h:
46807
46808 2012-10-15  Mike West  <mkwst@chromium.org>
46809
46810         CSP source expressions should support paths at file-level granularity.
46811         https://bugs.webkit.org/show_bug.cgi?id=99250
46812
46813         Reviewed by Adam Barth.
46814
46815         After a bit of discussion on public-webappsec[1], path support for CSP
46816         source expressions has been tuned to support file-level granularity. In
46817         particular, this means that:
46818
46819         - 'example.com/js' matches a file named 'js'
46820         - 'example.com/js/' matches all files under a directory named 'js'
46821           (note the trailing slash)
46822         - 'example.com/js/file.js' matches only a file named 'file.js'
46823           inside a directory named 'js'
46824
46825         Though this is part of the CSP 1.1 spec, it continues to be exposed
46826         outside the CSP_NEXT flag for back-compatibility.
46827
46828         Test cases have been added to the existing
46829         http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
46830         in order ensure that the new functionality works correctly.
46831
46832         * page/ContentSecurityPolicy.cpp:
46833         (WebCore::CSPSource::pathMatches):
46834             If the path ends with '/', do a prefix check. If not, check for an
46835             exact match.
46836         (WebCore::CSPSourceList::parsePath):
46837             Don't automatically append a '/' to paths.
46838
46839 2012-10-15  George Staikos  <staikos@webkit.org>
46840
46841         [BlackBerry] Adapt to Platform API changes in string handling
46842         https://bugs.webkit.org/show_bug.cgi?id=99248
46843
46844         Reviewed by Yong Li.
46845
46846         Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.
46847
46848         * html/track/TextTrack.cpp:
46849         (WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
46850         * page/blackberry/SettingsBlackBerry.cpp:
46851         (WebCore):
46852         (WebCore::Settings::initializeDefaultFontFamilies):
46853         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
46854         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
46855         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
46856         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
46857         * platform/blackberry/PasteboardBlackBerry.cpp:
46858         (WebCore::Pasteboard::writeSelection):
46859         (WebCore::Pasteboard::writeURL):
46860         (WebCore::Pasteboard::writePlainText):
46861         (WebCore::Pasteboard::plainText):
46862         (WebCore::Pasteboard::documentFragment):
46863         * platform/blackberry/ReadOnlyLatin1String.h: Removed.
46864         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
46865         (WebCore::MediaPlayerPrivate::getSupportedTypes):
46866         (WebCore::MediaPlayerPrivate::supportsType):
46867         (WebCore::MediaPlayerPrivate::setCertificatePath):
46868         (WebCore::MediaPlayerPrivate::load):
46869         (WebCore::generateProtectionSpaceFromMMRAuthChallenge):
46870         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
46871         (WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
46872         (WebCore::MediaPlayerPrivate::lookupMediaStream):
46873         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
46874         (MediaPlayerPrivate):
46875         (WebCore::MediaPlayerPrivate::engineDescription):
46876         * platform/network/blackberry/DNSBlackBerry.cpp:
46877         (WebCore::prefetchDNS):
46878         * platform/network/blackberry/NetworkJob.cpp:
46879         (WebCore::NetworkJob::initialize):
46880         (WebCore::NetworkJob::notifyStatusReceived):
46881         (WebCore::NetworkJob::notifyHeadersReceived):
46882         (WebCore::NetworkJob::handleNotifyClose):
46883         (WebCore::NetworkJob::sendRequestWithCredentials):
46884         * platform/network/blackberry/NetworkJob.h:
46885         (NetworkJob):
46886         * platform/network/blackberry/NetworkManager.cpp:
46887         (WebCore::NetworkManager::startJob):
46888         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
46889         (WebCore::ResourceRequest::initializePlatformRequest):
46890         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46891         (WebCore::SocketStreamHandle::SocketStreamHandle):
46892         * platform/text/blackberry/StringBlackBerry.cpp:
46893         (WTF::String::String):
46894         (WTF::String::operator BlackBerry::Platform::String):
46895         * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
46896
46897 2012-10-15  Jay Civelli  <jcivelli@chromium.org>
46898
46899         Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
46900         its current position is at a segment boundary (4096) ends up adding an
46901         unitialized segment (with uninitialized memory) to the SharedBuffer.
46902         https://bugs.webkit.org/show_bug.cgi?id=99000
46903
46904         Reviewed by Adam Barth.
46905
46906         * platform/SharedBuffer.cpp:
46907         (WebCore::SharedBuffer::append):
46908
46909 2012-10-15  Luke Macpherson   <macpherson@chromium.org>
46910
46911         Make CSS variable names case-insensitive.
46912         https://bugs.webkit.org/show_bug.cgi?id=98712
46913
46914         Reviewed by Tony Chang.
46915
46916         This patch modifies the parser to normalize all variable names to lower case,
46917         making variable definitions consistent with other property names, which are also case insensitive.
46918         Spec: http://dev.w3.org/csswg/css-variables/#defining-variables
46919
46920         Test: fast/css/variables/case-insensitive.html
46921
46922         * css/CSSParser.cpp:
46923         (WebCore::CSSParser::createPrimitiveNumericValue):
46924         (WebCore):
46925         (WebCore::CSSParser::createPrimitiveVariableNameValue):
46926         (WebCore::CSSParser::parseValidPrimitive):
46927         (WebCore::CSSParser::parseValue):
46928         (WebCore::CSSParser::storeVariableDeclaration):
46929         (WebCore::CSSParserString::lowerSubstring):
46930         Added function to compute a lower case substring as an AtomicString from a CSSParserString.
46931         * css/CSSParser.h:
46932         (CSSParser):
46933         * css/CSSParserValues.h:
46934         (CSSParserString):
46935         (WebCore::CSSParserString::lowerSubstring):
46936
46937 2012-10-15  Michael Saboff  <msaboff@apple.com>
46938
46939         Update RenderText to use String instead of UChar* for text
46940         https://bugs.webkit.org/show_bug.cgi?id=96979
46941
46942         Reviewed by Dan Bernstein.
46943
46944         RenderText now uses a String for text.  It keeps a cached LCHar* or UChar* pointer to the
46945         actual text data for performance.  Added a characterAt() indexed accessor to RenderText to avoid the
46946         somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n].  This is
46947         now written as rt->characterAt(n).
46948         Enabled patch in the HTML parser to create 8 bit text data.  Modified TextRun to create 
46949         text runs using 8 bit string data where possible.  Added several flavors of RenderBlock::constructTextRun
46950         to create TextRuns from RenderText objects including with an offset.  Added an LChar flavor of constructTextRun()
46951         as well.  Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
46952         parameter.  
46953         Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN).  Enabled WTF_USE_8BIT_TEXTRUN
46954         for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific code is
46955         updated to TextRun's with 8 bit data.
46956         Added many 8/16 bit aware paths.  Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.
46957
46958         No function change therefore no new tests.
46959
46960         * html/parser/HTMLTokenizer.cpp:
46961         (WebCore::vectorEqualsString):
46962         (WebCore::HTMLTokenizer::nextToken):
46963         * html/parser/HTMLTokenizer.h:
46964         (HTMLTokenizer):
46965         * html/track/WebVTTTokenizer.cpp:
46966         (WebCore::vectorEqualsString):
46967         (WebCore::WebVTTTokenizer::nextToken):
46968         * html/track/WebVTTTokenizer.h:
46969         (WebVTTTokenizer):
46970         * platform/graphics/Font.h:
46971         (WebCore::Font::glyphDataForCharacter):
46972         * platform/graphics/FontFastPath.cpp:
46973         (WebCore):
46974         * platform/graphics/TextRun.h:
46975         (WebCore::TextRun::TextRun):
46976         (WebCore::TextRun::subRun):
46977         (TextRun):
46978         * platform/graphics/mac/ComplexTextController.cpp:
46979         (WebCore::TextLayout::isNeeded):
46980         (WebCore::TextLayout::constructTextRun):
46981         * rendering/InlineFlowBox.cpp:
46982         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
46983         * rendering/InlineIterator.h:
46984         (WebCore::InlineIterator::atTextParagraphSeparator):
46985         (WebCore::InlineIterator::current):
46986         (WebCore::InlineIterator::previousInSameNode):
46987         * rendering/InlineTextBox.cpp:
46988         (WebCore::adjustCharactersAndLengthForHyphen):
46989         (WebCore::InlineTextBox::paint):
46990         (WebCore::InlineTextBox::paintSelection):
46991         (WebCore::InlineTextBox::constructTextRun):
46992         * rendering/InlineTextBox.h:
46993         (InlineTextBox):
46994         * rendering/RenderBlock.cpp:
46995         (WebCore::constructTextRunInternal):
46996         (WebCore::RenderBlock::constructTextRun):
46997         * rendering/RenderBlock.h:
46998         (RenderBlock):
46999         * rendering/RenderBlockLineLayout.cpp:
47000         (WebCore::endsWithASCIISpaces):
47001         (WebCore::reachedEndOfTextRenderer):
47002         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
47003         (WebCore::shouldSkipWhitespaceAfterStartObject):
47004         (WebCore::textWidth):
47005         (WebCore::tryHyphenating):
47006         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
47007         * rendering/RenderCombineText.cpp:
47008         (WebCore::RenderCombineText::getStringToRender):
47009         (WebCore::RenderCombineText::combineText):
47010         * rendering/RenderCombineText.h:
47011         (RenderCombineText):
47012         * rendering/RenderText.cpp:
47013         (SameSizeAsRenderText):
47014         (WebCore::RenderText::RenderText):
47015         (WebCore::RenderText::widthFromCache):
47016         (WebCore::RenderText::computePreferredLogicalWidths):
47017         (WebCore::RenderText::setTextInternal):
47018         (WebCore::RenderText::width):
47019         * rendering/RenderText.h:
47020         (WebCore::RenderText::is8Bit):
47021         (WebCore::RenderText::characters8):
47022         (WebCore::RenderText::characters16):
47023         (WebCore::RenderText::characterAt):
47024         (WebCore::RenderText::operator[]):
47025         (RenderText):
47026         * xml/parser/MarkupTokenBase.h:
47027         (WebCore::MarkupTokenBase::appendToCharacter):
47028         (MarkupTokenBase):
47029         (WebCore::MarkupTokenBase::isAll8BitData):
47030
47031 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
47032
47033         Web Inspector: Scripts for dynamically added script elements are not shown in sources panel.
47034         https://bugs.webkit.org/show_bug.cgi?id=99324
47035
47036         Reviewed by Pavel Feldman.
47037
47038         NetworkUISourceCodeProvider now adds uiSourceCodes for dynamic anonymous scripts
47039         and dynamic scripts loaded before inspector was opened.
47040
47041         Tests: http/tests/inspector-enabled/dynamic-scripts.html
47042                inspector/debugger/dynamic-scripts.html
47043
47044         * inspector/front-end/NetworkLog.js:
47045         (WebInspector.NetworkLog.prototype.requestForURL):
47046         * inspector/front-end/NetworkUISourceCodeProvider.js:
47047         (WebInspector.NetworkUISourceCodeProvider):
47048         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
47049         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
47050
47051 2012-10-15  Dominik Röttsches  <dominik.rottsches@intel.com>
47052
47053         REGRESSION(130613): Reintroduces crashes when using soup's timeout functionality
47054         https://bugs.webkit.org/show_bug.cgi?id=99311
47055
47056         Reviewed by Gustavo Noronha Silva.
47057
47058         Removing the cleanupSoupRequestOperation call, since the cancel() call will eventually trigger the
47059         cleanup already setting the right flag. Cleaning the handle already here will result in crashes when
47060         using the soup timeout functionality.
47061         The explicit cleanup call reintroduced in r130613, after it had been previously removed in r130348.
47062
47063         No new tests, tests that catch this will be part of bug 74802 for XHR timeout support.
47064
47065         * platform/network/soup/ResourceHandleSoup.cpp:
47066         (WebCore::requestTimeoutCallback):
47067
47068 2012-10-15  Ilya Tikhonovsky  <loislo@chromium.org>
47069
47070         Web Inspector: convert manual size calculation of different WebKit things into MemoryInstrumentation.
47071         https://bugs.webkit.org/show_bug.cgi?id=99309
47072
47073         Reviewed by Yury Semikhatsky.
47074
47075         JSHeap, DOMStorage and HeapProfiler data were counted manually.
47076         Now we count the sizes more generic way.
47077
47078         * dom/WebCoreMemoryInstrumentation.cpp:
47079         * dom/WebCoreMemoryInstrumentation.h:
47080         (WebCoreMemoryTypes): new string identifiers were added for Inspector's data.
47081         * inspector/InspectorBaseAgent.cpp:
47082         (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface): common data members were moved from template to base class.
47083         (WebCore::InspectorBaseAgentInterface::reportMemoryUsage): NMI instrumentation was added to the base template.
47084         * inspector/InspectorBaseAgent.h:
47085         (InspectorBaseAgentInterface): ditto
47086         (WebCore::InspectorBaseAgent::InspectorBaseAgent): ditto
47087         * inspector/InspectorController.cpp:
47088         (WebCore::InspectorController::reportMemoryUsage): NMI instrumentation was added to the class.
47089         * inspector/InspectorController.h:
47090         * inspector/InspectorDOMStorageAgent.cpp:
47091         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage): NMI instrumentation was added to the class.
47092         * inspector/InspectorDOMStorageAgent.h:
47093         * inspector/InspectorDOMStorageResource.cpp:
47094         (WebCore::InspectorDOMStorageResource::reportMemoryUsage): NMI instrumentation was added to the class.
47095         * inspector/InspectorDOMStorageResource.h:
47096         * inspector/InspectorMemoryAgent.cpp:
47097         (WebCore::reportJSHeapInfo): these methods now use MemoryInstrumentation for reporting the size of underlying data.
47098         (WebCore::reportRenderTreeInfo):
47099         (WebCore::collectDomTreeInfo):
47100         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47101         (WebCore::InspectorMemoryAgent::reportMemoryUsage): NMI instrumentation was added to the class.
47102         * inspector/InspectorMemoryAgent.h:
47103         * inspector/InspectorProfilerAgent.cpp:
47104         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
47105         * inspector/InspectorProfilerAgent.h:
47106         (InspectorProfilerAgent): NMI instrumentation was added to the class.
47107         * inspector/MemoryInstrumentationImpl.cpp: allocatedObjects map was converted from InspectorMemoryAgent::getProcessMemoryDistribution local variable to member variable.
47108         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject):
47109         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47110         (WebCore::MemoryInstrumentationImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47111         * inspector/MemoryInstrumentationImpl.h:
47112         (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
47113         (WebCore::MemoryInstrumentationClientImpl::allocatedObjects):
47114         (WebCore::MemoryInstrumentationClientImpl::checkInstrumentedObjects):
47115         * inspector/front-end/NativeMemorySnapshotView.js:
47116         (WebInspector.MemoryBlockViewProperties._initialize):
47117         (WebInspector.NativeMemoryBarChart.prototype._updateView):
47118         * page/Page.cpp:
47119         (WebCore::Page::reportMemoryUsage): NMI instrumentation was added to the class.
47120         * page/Page.h:
47121
47122 2012-10-15  Kent Tamura  <tkent@chromium.org>
47123
47124         Improve code of LocaleMac.mm
47125         https://bugs.webkit.org/show_bug.cgi?id=98383
47126
47127         Reviewed by Darin Adler.
47128
47129         - Use isNull instead of isEmpty because isNull is more efficient.
47130         - create*Formatter should return RetainPtr to avoid to retain in each of callsites.
47131         - Explicit String conversion is not needed.
47132
47133         No new tests. This doesn't change any behavior.
47134
47135         * platform/text/mac/LocaleMac.h:
47136         (LocaleMac):
47137         - Change the return types of createShortDateFormatter,
47138         createTimeFormatter, and createShortTimeFormatter from NSDateFormatter*
47139         to RetainPtr<NSDateFormatter>.
47140         - Omit 'create' from their names.
47141         - Add m_gregorianCalendar.
47142         * platform/text/mac/LocaleMac.mm:
47143         (WebCore::createDateTimeFormatter):
47144         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47145         Add an NSCalendar argument.
47146         (WebCore::LocaleMac::shortDateFormatter):
47147         Renamed from createShortTimeFormatter.
47148         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47149         (WebCore::LocaleMac::parseDateTime): Follow the return type change and the renaming.
47150         (WebCore::LocaleMac::formatDateTime): Ditto. Also, remove explicit String construction.
47151         (WebCore::LocaleMac::dateFormatText): Ditto. Also, use isNull.
47152         (WebCore::LocaleMac::monthLabels): Follow the return type change and the renaming.
47153         (WebCore::LocaleMac::weekDayShortLabels): Ditto.
47154         (WebCore::LocaleMac::timeFormatter):
47155         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47156         Renamed from createTimeFormatter.
47157         (WebCore::LocaleMac::shortTimeFormatter): Ditto.
47158         (WebCore::LocaleMac::dateFormat):
47159         Use isNull. Remove explicit String construction. Follow the return type
47160         change and the renaming.
47161         (WebCore::LocaleMac::timeFormat): ditto.
47162         (WebCore::LocaleMac::shortTimeFormat): ditto.
47163         (WebCore::LocaleMac::timeAMPMLabels):
47164         Remove explicit String construction. Follow the return type change.
47165         (WebCore::LocaleMac::initializeLocalizerData):
47166         Remove explicit String construction.
47167
47168 2012-10-12  Ilya Tikhonovsky  <loislo@chromium.org>
47169
47170         Web Inspector: NMI remove hand made object builders with automatic builder.
47171         https://bugs.webkit.org/show_bug.cgi?id=99186
47172
47173         Reviewed by Yury Semikhatsky.
47174
47175         Old builders were replaced with single automatic builder.
47176         It does the next things:
47177         a) deduplicates entries in the MemoryInstrumentationClient's map and converts objectType pointers to String;
47178         b) creates parent entries and assigns their aggregated sizes;
47179         c) creates the hierarchy of MemoryBlocks recursively.
47180
47181         * dom/WebCoreMemoryInstrumentation.cpp:
47182         (WebCore):
47183         * dom/WebCoreMemoryInstrumentation.h:
47184         (WebCoreMemoryTypes):
47185         * inspector/InspectorMemoryAgent.cpp:
47186         (WebCore):
47187         (WebCore::jsHeapInfo):
47188         (WebCore::renderTreeInfo):
47189         (WebCore::addPlatformComponentsInfo):
47190         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47191         * inspector/MemoryInstrumentationImpl.cpp:
47192         (WebCore::MemoryInstrumentationClientImpl::sizesMap):
47193         (WebCore):
47194         * inspector/MemoryInstrumentationImpl.h:
47195         (WebCore):
47196         (MemoryInstrumentationClientImpl):
47197
47198 2012-10-14  Sam Weinig  <sam@webkit.org>
47199
47200         Simplify user content in WebKit2 by using WebCore::UserStyleSheet and WebCore::UserScript directly
47201         https://bugs.webkit.org/show_bug.cgi?id=99276
47202
47203         Reviewed by Anders Carlsson.
47204
47205         Add default constructors for UserScript and UserStyleSheet so they can be used in CoreIPC encoding/decoding.
47206
47207         * page/UserScript.h:
47208         (WebCore::UserScript::UserScript):
47209         (UserScript):
47210         * page/UserStyleSheet.h:
47211         (WebCore::UserStyleSheet::UserStyleSheet):
47212         (UserStyleSheet):
47213
47214 2012-10-14  Jon Lee  <jonlee@apple.com>
47215
47216         Allow notification origin permission request when no js callback is provided
47217         https://bugs.webkit.org/show_bug.cgi?id=63615
47218         <rdar://problem/11059590>
47219
47220         Reviewed by Sam Weinig.
47221
47222         Instead of throwing a type error when no callback is provided, we pass a null callback.
47223
47224         Test: http/tests/notifications/legacy/request-no-callback.html
47225
47226         * bindings/js/JSDesktopNotificationsCustom.cpp:
47227         (WebCore::JSNotificationCenter::requestPermission):
47228
47229 2012-10-12  Anders Carlsson  <andersca@apple.com>
47230
47231         Move QDataStream functions into HistoryItemQt.cpp
47232         https://bugs.webkit.org/show_bug.cgi?id=99203
47233
47234         Reviewed by Andreas Kling.
47235
47236         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47237         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47238         be moved into a separate header instead of polluting headers unnecessarily.
47239
47240         * history/qt/HistoryItemQt.cpp:
47241         (operator<<):
47242         (operator>>):
47243         * platform/FractionalLayoutUnit.h:
47244         * platform/graphics/IntPoint.h:
47245
47246 2012-10-14  Sam Weinig  <sam@webkit.org>
47247
47248         Make UserScript and UserStyleSheet value objects that are copyable
47249         https://bugs.webkit.org/show_bug.cgi?id=99275
47250
47251         Reviewed by Tim Horton.
47252
47253         Simplify UserScript and UserStyleSheet and make them more easily usable
47254         without sticking them in an OwnPtr.
47255
47256         * WebCore.exp.in:
47257         Update exports.
47258
47259         * page/PageGroup.cpp:
47260         (WebCore::PageGroup::addUserScriptToWorld):
47261         (WebCore::PageGroup::addUserStyleSheetToWorld):
47262         * page/PageGroup.h:
47263         (PageGroup):
47264         * page/UserContentURLPattern.cpp:
47265         (WebCore::UserContentURLPattern::matchesPatterns):
47266         * page/UserContentURLPattern.h:
47267         (UserContentURLPattern):
47268         Update to not assume whitelist and blacklist are in Vector<String>*.
47269
47270         * page/UserScript.h:
47271         (UserScript):
47272         (WebCore::UserScript::UserScript):
47273         (WebCore::UserScript::whitelist):
47274         (WebCore::UserScript::blacklist):
47275         * page/UserStyleSheet.h:
47276         (UserStyleSheet):
47277         (WebCore::UserStyleSheet::UserStyleSheet):
47278         (WebCore::UserStyleSheet::whitelist):
47279         (WebCore::UserStyleSheet::blacklist):
47280         Switch OwnPtr<Vector<String> > to Vector<String> and remove Noncopyable restriction.
47281
47282 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47283
47284         [wk2] Implement PDFPlugin
47285         https://bugs.webkit.org/show_bug.cgi?id=99206
47286
47287         Unreviewed build fix, export __ZN7WebCore8IntPointC1ERK7CGPoint.
47288
47289         * WebCore.exp.in:
47290
47291 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47292
47293         [wk2] Implement PDFPlugin
47294         https://bugs.webkit.org/show_bug.cgi?id=99206
47295
47296         Reviewed by Dan Bernstein.
47297
47298         Add a plug-in that uses PDFKit to display PDFs, instead of using PDFKit in the
47299         UIProcess for full-page PDFs. This new plugin will also be used for inline PDFs
47300         in place of SimplePDFPlugin (née BuiltInPDFView).
47301
47302         * WebCore.exp.in:
47303         Export a few more methods to WebKit(2).
47304
47305         * WebCore.xcodeproj/project.pbxproj:
47306         Expose Pasteboard.h as a private header so PDFPlugin can use it.
47307
47308         * platform/ScrollableArea.h:
47309         Make invalidateScrollbar/invalidateScrollCorner virtual.
47310
47311 2012-10-14  Antoine Quint  <graouts@apple.com>
47312
47313         InspectorPageAgent should expose a method to control the compositing debug settings.
47314         https://bugs.webkit.org/show_bug.cgi?id=99253
47315
47316         Reviewed by Timothy Hatcher.
47317
47318         * inspector/Inspector.json:
47319         * inspector/InspectorPageAgent.cpp:
47320         (WebCore::InspectorPageAgent::setCompositingBordersVisible):
47321         * inspector/InspectorPageAgent.h:
47322
47323 2012-10-13  Chris Rogers  <crogers@google.com>
47324
47325         WebAudioBus needs support for resizing bus to a smaller size
47326         https://bugs.webkit.org/show_bug.cgi?id=99215
47327
47328         Reviewed by Dimitri Glazkov.
47329
47330         Upgrade AudioBus and WebAudioBus to support resizing to a smaller size, once it has been created.
47331         This is useful, for example, when decoding VBR formats and the actual length can't be exactly determined
47332         until the entire file is decoded.
47333
47334         * platform/audio/AudioBus.cpp:
47335         (WebCore::AudioBus::resizeSmaller):
47336         (WebCore):
47337         * platform/audio/AudioBus.h:
47338         (AudioBus):
47339         * platform/audio/AudioChannel.cpp:
47340         (WebCore::AudioChannel::resizeSmaller):
47341         (WebCore):
47342         * platform/audio/AudioChannel.h:
47343         (AudioChannel):
47344         * platform/chromium/support/WebAudioBus.cpp:
47345         (WebKit::WebAudioBus::resizeSmaller):
47346         (WebKit):
47347
47348 2012-10-13  Gregg Tavares  <gman@google.com>
47349
47350         Add warning for unrenderable textures
47351         https://bugs.webkit.org/show_bug.cgi?id=99235
47352
47353         Reviewed by Kenneth Russell.
47354
47355         Unrenderable textures are often hard to debug. Adds a message to that
47356         appears in the JavaScript console to help developers find the issue.
47357
47358         No new tests as no new functionality.
47359
47360         * html/canvas/WebGLRenderingContext.cpp:
47361         (WebCore):
47362         (WebCore::WebGLRenderingContext::drawArrays):
47363         (WebCore::WebGLRenderingContext::drawElements):
47364         (WebCore::WebGLRenderingContext::handleNPOTTextures):
47365         * html/canvas/WebGLRenderingContext.h:
47366         (WebGLRenderingContext):
47367
47368 2012-10-13  Geoffrey Garen  <ggaren@apple.com>
47369
47370         Not reviewed.
47371
47372         Updated bindings test results.
47373
47374         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
47375         (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
47376
47377 2012-10-12  Geoffrey Garen  <ggaren@apple.com>
47378
47379         I pity da foo' who's converting numbers to strings
47380         https://bugs.webkit.org/show_bug.cgi?id=99197
47381
47382         Reviewed by Gavin Barraclough.
47383
47384         40% speedup on PerformanceTests/Dromaeo/dom-traverse.html. Probably speeds
47385         some other things up too.
47386
47387         Credit to Eric Seidel for spotting this.
47388
47389         * bindings/scripts/CodeGeneratorJS.pm:
47390         (GenerateImplementation): getOwnPropertySlotByIndex doesn't need to prefer
47391         string lookup in the static table because our static tables don't contain
47392         properties that are numbers.
47393
47394         I believe this is low-hanging fruit left behind by Phil's
47395         getOwnPropertySlotByIndex optimization, but it's also possible that this was a
47396         regression at some point. I didn't check.
47397
47398 2012-10-13  Adam Barth  <abarth@webkit.org>
47399
47400         Remove dead code in Node.idl
47401         https://bugs.webkit.org/show_bug.cgi?id=99237
47402
47403         Reviewed by Maciej Stachowiak.
47404
47405         We don't implement this feature. This code is dead and should be
47406         removed.
47407
47408         * dom/Node.idl:
47409
47410 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47411
47412         Fix GraphicsLayerCA visible rect computation in the face of perspective and preserve-3d
47413         https://bugs.webkit.org/show_bug.cgi?id=99212
47414
47415         Reviewed by Tim Horton.
47416
47417         GraphicsLayerCA::computeVisibleRect() was incorrect for layer trees with perspective
47418         and preserve-3d, so fix that, and add some tests.
47419         
47420         Perspective is implemented via childrenTransform(); if our parent has one,
47421         we have to left-multiply this into the transformation matrix.
47422         
47423         We have to test both this layer and its parent when deciding whether to accumulate
47424         or flatten.
47425         
47426         Use state.mappedQuad() rather than state.lastPlanarQuad(), because the last planar
47427         quad might be for some distant ancestor, and there may be intermediate preserve-3d
47428         layers.
47429
47430         Tests: compositing/visible-rect/3d-transform-style.html
47431                compositing/visible-rect/3d-transformed.html
47432                compositing/visible-rect/nested-transform.html
47433
47434         * platform/graphics/ca/GraphicsLayerCA.cpp:
47435         (WebCore::GraphicsLayerCA::computeVisibleRect):
47436
47437 2012-10-11  Simon Fraser  <simon.fraser@apple.com>
47438
47439         Move TransformState code into its own member function, and remove a test that was prematurely added
47440         https://bugs.webkit.org/show_bug.cgi?id=99117
47441
47442         Reviewed by Tim Horton.
47443
47444         The code that manipulates the TransformState and computes the visible rect is going to get
47445         more complex, so move it into a new member function.
47446
47447         * platform/graphics/ca/GraphicsLayerCA.cpp:
47448         (WebCore::GraphicsLayerCA::computeVisibleRect):
47449         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47450         * platform/graphics/ca/GraphicsLayerCA.h:
47451         (GraphicsLayerCA):
47452
47453 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47454
47455         Add some initial visible rect tests and tweak the visible wash layer
47456         https://bugs.webkit.org/show_bug.cgi?id=99095
47457
47458         Reviewed by Tim Horton.
47459
47460         Make the m_visibleTileWashLayer more useful by showing it for all
47461         layers with transforms, not just tiled layers. This is a debugging
47462         layer normally disabled, but enabled by #defining VISIBLE_TILE_WASH.
47463
47464         Tests: compositing/visible-rect/2d-transformed.html
47465                compositing/visible-rect/3d-transformed.html
47466                compositing/visible-rect/clipped-by-viewport copy.html
47467                compositing/visible-rect/clipped-by-viewport.html
47468                compositing/visible-rect/clipped-visible-rect.html
47469
47470         * platform/graphics/ca/GraphicsLayerCA.cpp:
47471         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47472         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
47473         * platform/graphics/ca/GraphicsLayerCA.h:
47474
47475 2012-10-12  Pablo Flouret  <pablof@motorola.com>
47476
47477         Teach GeneratorGObject about [ImplementedAs] extended attribute in functions
47478         https://bugs.webkit.org/show_bug.cgi?id=99214
47479
47480         Reviewed by Kentaro Hara.
47481
47482         No new tests, updated the binding tests results.
47483
47484         * bindings/scripts/CodeGeneratorGObject.pm:
47485         (GenerateFunction):
47486         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
47487         (webkit_dom_test_obj_orange):
47488
47489 2012-10-12  Beth Dakin  <bdakin@apple.com>
47490
47491         https://bugs.webkit.org/show_bug.cgi?id=99211
47492         When ScrollingStateNodes are destroyed, they should be removed 
47493         ScrollingCoordinator's HashMap
47494
47495         Reviewed by Sam Weinig.
47496
47497         This patch adds a new member variable to ScrollingStateTree. It's a 
47498         Vector of ScrollingNodeIDs. It will contain the IDs of nodes that 
47499         have been removed from the tree since the last time the tree was 
47500         committed.
47501         * page/scrolling/ScrollingStateTree.cpp:
47502         (WebCore::ScrollingStateTree::ScrollingStateTree):
47503
47504         When we do commit, copy the Vector over into the cloned tree, and 
47505         then clear our own Vector.
47506         (WebCore::ScrollingStateTree::commit):
47507
47508         Call didRemoveNode().
47509         (WebCore::ScrollingStateTree::removeNode):
47510
47511         Append the removed node's id to the vector.
47512         (WebCore::ScrollingStateTree::didRemoveNode):
47513         (WebCore):
47514         * page/scrolling/ScrollingStateTree.h:
47515         (ScrollingStateTree):
47516
47517         Call didRemoveNode().
47518         * page/scrolling/ScrollingStateNode.cpp:
47519         (WebCore::ScrollingStateNode::removeChild):
47520
47521         Fix the FIXME!
47522         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47523         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
47524
47525 2012-10-12  Brady Eidson  <beidson@apple.com>
47526
47527         Setup basic NetworkProcess messaging and initialization.
47528         https://bugs.webkit.org/show_bug.cgi?id=99198
47529
47530         Reviewed by Sam Weinig.
47531
47532         * English.lproj/Localizable.strings: Update for the Network Process UI name.
47533
47534 2012-10-12  Levi Weintraub  <leviw@chromium.org>
47535
47536         Remove unnecessary mode identifiers added in r131111
47537         https://bugs.webkit.org/show_bug.cgi?id=99208
47538
47539         Reviewed by Emil A Eklund.
47540
47541         Removing unnecessary mode identifiers from coordinate conversion methods. These
47542         were added in http://trac.webkit.org/changeset/131111
47543
47544         No new tests. No change in behavior.
47545
47546         * rendering/RenderBox.h:
47547         (RenderBox):
47548         * rendering/RenderBoxModelObject.h:
47549         (RenderBoxModelObject):
47550         * rendering/RenderInline.h:
47551         (RenderInline):
47552         * rendering/RenderObject.h:
47553         (RenderObject):
47554         * rendering/RenderView.h:
47555         (RenderView):
47556         * rendering/svg/RenderSVGForeignObject.h:
47557         (RenderSVGForeignObject):
47558         * rendering/svg/RenderSVGInline.h:
47559         (RenderSVGInline):
47560         * rendering/svg/RenderSVGModelObject.h:
47561         (RenderSVGModelObject):
47562         * rendering/svg/RenderSVGRoot.h:
47563         (RenderSVGRoot):
47564         * rendering/svg/RenderSVGText.h:
47565         (RenderSVGText):
47566
47567 2012-10-12  Sheriff Bot  <webkit.review.bot@gmail.com>
47568
47569         Unreviewed, rolling out r131224.
47570         http://trac.webkit.org/changeset/131224
47571         https://bugs.webkit.org/show_bug.cgi?id=99210
47572
47573         It broke the build (Requested by andersca on #webkit).
47574
47575         * history/qt/HistoryItemQt.cpp:
47576         * platform/FractionalLayoutUnit.h:
47577         (WebCore):
47578         (WebCore::operator<<):
47579         (WebCore::operator>>):
47580         * platform/graphics/IntPoint.h:
47581         (WebCore):
47582         (WebCore::operator<<):
47583         (WebCore::operator>>):
47584
47585 2012-10-12  Anders Carlsson  <andersca@apple.com>
47586
47587         Move QDataStream functions into HistoryItemQt.cpp
47588         https://bugs.webkit.org/show_bug.cgi?id=99203
47589
47590         Reviewed by Andreas Kling.
47591
47592         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47593         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47594         be moved into a separate header instead of polluting headers unnecessarily.
47595
47596         * history/qt/HistoryItemQt.cpp:
47597         (operator<<):
47598         (operator>>):
47599         * platform/FractionalLayoutUnit.h:
47600         * platform/graphics/IntPoint.h:
47601
47602 2012-10-12  Beth Dakin  <bdakin@apple.com>
47603
47604         https://bugs.webkit.org/show_bug.cgi?id=99204
47605         ScrollingStateNodes should keep track of their IDs
47606
47607         Reviewed by Simon Fraser.
47608
47609         There is a HashMap in ScrollingCoordinatorMac that maps 
47610         ScrollingNodeIDs to ScrollingStateNodes. The nodes themselves should 
47611         keep track of this id. Then the id can be used to make sure 
47612         ScrollingStateNodes remove themselves from the HashMap when they are 
47613         destroyed, and it will also be useful for associating 
47614         ScrollingStateNodes with ScrollingTreeNodes over on the scrolling 
47615         thread.
47616   
47617         This patch only has the ScrollingStateNodes cache the id. I will 
47618         actually make use of the id in follow-up patches.
47619
47620         * page/scrolling/ScrollingStateNode.cpp:
47621         (WebCore::ScrollingStateNode::ScrollingStateNode):
47622         * page/scrolling/ScrollingStateNode.h:
47623         (ScrollingStateNode):
47624         (WebCore::ScrollingStateNode::scrollingNodeID):
47625         * page/scrolling/ScrollingStateScrollingNode.cpp:
47626         (WebCore::ScrollingStateScrollingNode::create):
47627         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
47628         * page/scrolling/ScrollingStateScrollingNode.h:
47629         (ScrollingStateScrollingNode):
47630         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47631         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
47632
47633 2012-10-01  Jer Noble  <jer.noble@apple.com>
47634
47635         Add LSKD support to MediaPlayerPrivateAVFoundation.
47636         https://bugs.webkit.org/show_bug.cgi?id=98090
47637
47638         Reviewed by Anders Carlsson.
47639
47640         Add support for LSKD key system to MediaPlayerPrivateAVFoundation.
47641
47642         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47643         (MediaPlayerPrivateAVFoundationObjC): Add m_loaderDelegate, m_keyURIToRequestMap, and m_sessionToRequestMap.
47644         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47645         (globalLoaderDelegateQueue): Static accessor for the dispatch queue to use for the loader delegate.
47646         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
47647         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Add the loader delegate to the AVURLAsset.
47648         (WebCore::keySystemIsSupported): Convenience function; checks that the key system matches "com.apple.lskd"
47649         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Check the key system matches.
47650         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Fire a needkey event with an initData containing
47651             the key URI.
47652         (WebCore::extractKeyURIKeyIdAndCertificateFromInitData): Extract the keyURI, keyID, and the app certificate from the initData.
47653         (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Generate a streaming key request from AVFoundation and 
47654             fire a keymessage event.
47655         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Pass to AVFoundation through the AVAssetResourceLoader.
47656         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelKeyRequest): Release the loader delegate.
47657         (-[WebCoreAVFLoaderDelegate initWithCallback:]): Simple constructor.
47658         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): Pass to the MediaPlayerPrivateAVFoundationObjC.
47659
47660 2012-10-12  James Simonsen  <simonjam@chromium.org>
47661
47662         [RequestAnimationFrame] Remove vendor prefix
47663         https://bugs.webkit.org/show_bug.cgi?id=99116
47664
47665         Reviewed by Adam Barth.
47666
47667         Test: Existing rAF tests without prefix.
47668
47669         * dom/Document.cpp:
47670         (WebCore::Document::requestAnimationFrame):
47671         (WebCore::Document::cancelAnimationFrame):
47672         * dom/Document.h:
47673         (Document):
47674         * page/DOMWindow.cpp:
47675         (WebCore::DOMWindow::requestAnimationFrame):
47676         (WebCore::DOMWindow::cancelAnimationFrame):
47677         * page/DOMWindow.h:
47678         (DOMWindow):
47679         * page/DOMWindow.idl:
47680
47681 2012-10-12  Andreas Kling  <kling@webkit.org>
47682
47683         REGRESSION: Rapid memory growth calling DOM APIs with large strings.
47684         <http://webkit.org/b/98498>
47685         <rdar://problem/12443926>
47686
47687         Reviewed by Geöff Gären and Änders Cärlssön.
47688
47689         Prevent the selector query cache from growing indefinitely by setting a relaxed limit of 256 entries.
47690         If the cache fills up, remove a random entry before inserting a new one.
47691
47692         While this is unlikely to be a problem on real websites, we definitely shouldn't be adding boundless
47693         caches to WebKit.
47694
47695         * dom/SelectorQuery.cpp:
47696         (WebCore::SelectorQueryCache::add):
47697
47698 2012-10-12  Roger Fong  <roger_fong@apple.com>
47699
47700         Update method signature for platformCALayerShowRepaintCounter in MediaPlayerPlayerPrivateAVFoundationCF's LayerClient class.
47701         https://bugs.webkit.org/show_bug.cgi?id=99190
47702
47703         Reviewed by Simon Fraser.
47704
47705         LayerClient's base class (PlatformCALayerClient) method signature for abstract method platformCALayerShowRepaintCounter
47706         was updated in http://trac.webkit.org/changeset/130676 so it needs to be changed in LayerClient as well.
47707
47708         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
47709         (WebCore::LayerClient::platformCALayerShowRepaintCounter):
47710
47711 2012-10-12  Scott Graham  <scottmg@chromium.org>
47712
47713         Local disable of stack corruption warning when compiling on VS2012
47714         https://bugs.webkit.org/show_bug.cgi?id=99106
47715
47716         Reviewed by Ryosuke Niwa.
47717
47718         Warning is:
47719
47720         ...\FEConvolveMatrix.cpp(274) : warning C4789: buffer 'totals' of size 12 bytes will be overrun; 4 bytes will be written starting at offset 12.
47721
47722         And similar at lines 281, 355, and 365. This appears to be incorrect
47723         as the writes at offset 12 occur only when preserveAlphaValues is
47724         false, and when it's false, totals will be 16 bytes long.
47725
47726         No new tests.
47727
47728         * platform/graphics/filters/FEConvolveMatrix.cpp:
47729         (WebCore):
47730
47731 2012-10-11  Emil A Eklund  <eae@chromium.org>
47732
47733         [Sub pixel layout] Change RenderBox to not round logicalTop/Left for RenderReplaced
47734         https://bugs.webkit.org/show_bug.cgi?id=99108
47735
47736         Reviewed by Levi Weintraub.
47737
47738         Change RenderBox::computePositionedLogicalHeightReplaced and
47739         computePositionedLogicalWidthReplaced to not round position.
47740
47741         Covered by existing tests.
47742
47743         * rendering/InlineFlowBox.cpp:
47744         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
47745         Floor baselinePosition for replaced elements to match logic in
47746         RootInlineBox::ascentAndDescentForBox where the ascent is
47747         computed from the floored baselinePosition.
47748         
47749         * rendering/RenderBox.cpp:
47750         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
47751         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
47752         Remove .round() call for m_position, preserving precision.
47753
47754 2012-10-01  Jer Noble  <jer.noble@apple.com>
47755
47756         Enable ENCRYPTED_MEDIA support on Mac.
47757         https://bugs.webkit.org/show_bug.cgi?id=98044
47758
47759         Reviewed by Anders Carlsson.
47760
47761         Enable the ENCRYPTED_MEDIA conditional on the Mac port.
47762
47763         No new tests; Existing media/encrypted-media tests require org.w3.clearkey support, which is not implemented.
47764
47765         * Configurations/FeatureDefines.xcconfig: Enable the ENCRYPTED_MEDIA flag.
47766         * DerivedSources.make: Add the MediaKeyError and MediaKeyEvent classes.
47767         * WebCore.xcodeproj/project.pbxproj: Ditto.
47768         * bindings/js/JSDictionary.cpp:
47769         (WebCore::JSDictionary::convertValue): Add convertValue functions for Uint8Array and MediaKeyError.
47770         * bindings/js/JSDictionary.h:
47771         * html/HTMLMediaElement.cpp:
47772         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): Throw an error if no "needkey"
47773             handler is registered.
47774         * html/HTMLMediaElement.h:
47775         * html/HTMLMediaElement.idl: Change keySystem to DefaultIsUndefined.
47776         * platform/graphics/MediaPlayer.cpp:
47777         (WebCore::MediaPlayer::keyNeeded): Return a bool indicating whether the process was aborted
47778             due to a lack of "needkey" listener.
47779         * platform/graphics/MediaPlayer.h:
47780         (WebCore::MediaPlayerClient::mediaPlayerKeyAdded): Remove unused parameter names.
47781         (WebCore::MediaPlayerClient::mediaPlayerKeyError): Ditto.
47782         (WebCore::MediaPlayerClient::mediaPlayerKeyMessage): Ditto.
47783         (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded): Ditto.
47784         * platform/graphics/MediaPlayerPrivate.h:
47785         (WebCore::MediaPlayerPrivateInterface::addKey): Ditto.
47786         (WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Ditto.
47787         (WebCore::MediaPlayerPrivateInterface::cancelKeyRequest): Ditto.
47788         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47789         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47790         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Call extendedSupportsType.
47791         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Stub. Pass through to supportsType.
47792         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
47793         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
47794         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Call extendedSupportsType.
47795         (WebCore::MediaPlayerPrivateQTKit::extendedSupportsType): Stub. Pass through to supportsType.
47796
47797 2012-10-12  Jaehun Lim  <ljaehun.lim@samsung.com>
47798
47799         Check parameter's safety first
47800         https://bugs.webkit.org/show_bug.cgi?id=99136
47801
47802         Reviewed by Chris Rogers.
47803
47804         Pointer parameter was used before NULL checking.
47805         This patch moves safety checking statements to the head of the function.
47806
47807         No new tests. No behavior change.
47808
47809         * platform/audio/AudioChannel.cpp:
47810         (WebCore::AudioChannel::copyFromRange):
47811         (WebCore::AudioChannel::sumFrom):
47812         * platform/audio/EqualPowerPanner.cpp:
47813         (WebCore::EqualPowerPanner::pan):
47814
47815 2012-10-12  Andreas Kling  <kling@webkit.org>
47816
47817         RenderBR should share its constant newline string between instances.
47818         <http://webkit.org/b/99121>
47819
47820         Reviewed by Anders Carlsson.
47821
47822         * rendering/RenderBR.cpp:
47823         (WebCore::newlineString):
47824         (WebCore::RenderBR::RenderBR):
47825
47826 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47827
47828         Web Inspector: [Styles] !important priority not honored inside the same declaration
47829         https://bugs.webkit.org/show_bug.cgi?id=99170
47830
47831         Reviewed by Yury Semikhatsky.
47832
47833         Property priorities were not considered inside the same CSS rule. !important properties should stay active
47834         even if followed by non-!important properties with the same name.
47835
47836         * inspector/InspectorStyleSheet.cpp:
47837         (WebCore::InspectorStyle::styleWithProperties):
47838         * inspector/front-end/StylesSidebarPane.js:
47839         (WebInspector.StylePropertiesSection.prototype.onpopulate):
47840         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
47841
47842 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47843
47844         Web Inspector: use hard-coded zoom factors instead of 1.2 powers.
47845         https://bugs.webkit.org/show_bug.cgi?id=99173
47846
47847         Reviewed by Vsevolod Vlasov.
47848
47849         Overwise we step too fast.
47850
47851         * inspector/front-end/inspector.js:
47852         (WebInspector._zoomIn):
47853         (WebInspector._zoomOut):
47854         (WebInspector):
47855
47856 2012-10-12  Yury Semikhatsky  <yurys@chromium.org>
47857
47858         Web Inspector: move delete watch expression farther from the expand triangle
47859         https://bugs.webkit.org/show_bug.cgi?id=99166
47860
47861         Reviewed by Pavel Feldman.
47862
47863         Aligned 'delete watch expression' button on the right side (was on the left) so
47864         that it is hard to click it when expanding watched value.
47865
47866         * inspector/front-end/inspector.css:
47867         (.properties-tree.watch-expressions):
47868         (.section .properties .delete-button):
47869
47870 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47871
47872         Web Inspector: trim filename in the call stack sidebar
47873         https://bugs.webkit.org/show_bug.cgi?id=99169
47874
47875         Reviewed by Yury Semikhatsky.
47876
47877         Otherwise long file names are rendered poorly.
47878
47879         * inspector/front-end/CallStackSidebarPane.js:
47880         (WebInspector.CallStackSidebarPane.Placard.prototype._update):
47881         * inspector/front-end/inspector.css:
47882         (.placard .subtitle):
47883
47884 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
47885
47886         Web Inspector: Resume button in element inspector -> scripts has tooltip 'pause script execution'
47887         https://bugs.webkit.org/show_bug.cgi?id=99165
47888
47889         Reviewed by Pavel Feldman.
47890
47891         Pause/resume button title is now updated when debugger is paused/resumed.
47892
47893         * English.lproj/localizedStrings.js:
47894         * inspector/front-end/ScriptsPanel.js:
47895         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
47896         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
47897         (WebInspector.ScriptsPanel.prototype._updateButtonTitle):
47898         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
47899
47900 2012-10-12  Kentaro Hara  <haraken@chromium.org>
47901
47902         Unreviewed. Fix run-binding-tests failures introduced in r131167.
47903
47904         * bindings/scripts/CodeGeneratorV8.pm:
47905         (GenerateConstructorGetter):
47906         * bindings/scripts/test/V8/V8TestObj.cpp:
47907         (WebCore):
47908         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
47909         (WebCore::V8TestObj::installPerContextProperties):
47910         (WebCore::V8TestObj::installPerContextPrototypeProperties):
47911         (WebCore::V8TestObj::wrapSlow):
47912         * bindings/scripts/test/V8/V8TestObj.h:
47913         (V8TestObj):
47914
47915 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47916
47917         Web Inspector: relies on current Function.prototype.bind in the frame
47918         https://bugs.webkit.org/show_bug.cgi?id=99164
47919
47920         Reviewed by Yury Semikhatsky.
47921
47922         InjectedScriptSource should not depend on the bind override.
47923
47924         Test: inspector/console/console-bind-fake.html
47925
47926         * inspector/InjectedScriptSource.js:
47927         (.):
47928
47929 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47930
47931         Web Inspector: [Styles] Colors should be "As authored" by default
47932         https://bugs.webkit.org/show_bug.cgi?id=99017
47933
47934         Reviewed by Vsevolod Vlasov.
47935
47936         Use "original" as the default value of WebInspector.settings.colorFormat.
47937
47938         * inspector/front-end/Settings.js:
47939
47940 2012-10-12  Takashi Sakamoto  <tasak@google.com>
47941
47942         [WebKit IDL] move extended attributes to left of interface, exception...
47943         https://bugs.webkit.org/show_bug.cgi?id=99012
47944
47945         Reviewed by Kentaro Hara.
47946
47947         According to WebIDL spec, moved all extended attributes to the left
47948         of interface / attribute / readonly attribute / exception.
47949
47950         No new tests. I ran run-bindings-tests and all tests passed.
47951
47952         * Modules/battery/BatteryManager.idl:
47953         * Modules/battery/NavigatorBattery.idl:
47954         * Modules/filesystem/DOMFileSystem.idl:
47955         * Modules/filesystem/DOMFileSystemSync.idl:
47956         * Modules/filesystem/DOMWindowFileSystem.idl:
47957         * Modules/filesystem/DataTransferItemFileSystem.idl:
47958         * Modules/filesystem/DirectoryEntry.idl:
47959         * Modules/filesystem/DirectoryEntrySync.idl:
47960         * Modules/filesystem/DirectoryReader.idl:
47961         * Modules/filesystem/DirectoryReaderSync.idl:
47962         * Modules/filesystem/EntriesCallback.idl:
47963         * Modules/filesystem/Entry.idl:
47964         * Modules/filesystem/EntryArray.idl:
47965         * Modules/filesystem/EntryArraySync.idl:
47966         * Modules/filesystem/EntryCallback.idl:
47967         * Modules/filesystem/EntrySync.idl:
47968         * Modules/filesystem/ErrorCallback.idl:
47969         * Modules/filesystem/FileCallback.idl:
47970         * Modules/filesystem/FileEntry.idl:
47971         * Modules/filesystem/FileEntrySync.idl:
47972         * Modules/filesystem/FileSystemCallback.idl:
47973         * Modules/filesystem/FileWriter.idl:
47974         * Modules/filesystem/FileWriterCallback.idl:
47975         * Modules/filesystem/FileWriterSync.idl:
47976         * Modules/filesystem/HTMLInputElementFileSystem.idl:
47977         * Modules/filesystem/Metadata.idl:
47978         * Modules/filesystem/MetadataCallback.idl:
47979         * Modules/filesystem/WorkerContextFileSystem.idl:
47980         * Modules/gamepad/Gamepad.idl:
47981         * Modules/gamepad/GamepadList.idl:
47982         * Modules/gamepad/NavigatorGamepad.idl:
47983         * Modules/geolocation/Geolocation.idl:
47984         * Modules/geolocation/Geoposition.idl:
47985         * Modules/geolocation/NavigatorGeolocation.idl:
47986         * Modules/geolocation/PositionCallback.idl:
47987         * Modules/geolocation/PositionError.idl:
47988         * Modules/geolocation/PositionErrorCallback.idl:
47989         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
47990         * Modules/indexeddb/IDBAny.idl:
47991         * Modules/indexeddb/IDBCursor.idl:
47992         * Modules/indexeddb/IDBCursorWithValue.idl:
47993         * Modules/indexeddb/IDBDatabase.idl:
47994         * Modules/indexeddb/IDBDatabaseException.idl:
47995         * Modules/indexeddb/IDBFactory.idl:
47996         * Modules/indexeddb/IDBIndex.idl:
47997         * Modules/indexeddb/IDBKey.idl:
47998         * Modules/indexeddb/IDBKeyRange.idl:
47999         * Modules/indexeddb/IDBObjectStore.idl:
48000         * Modules/indexeddb/IDBOpenDBRequest.idl:
48001         * Modules/indexeddb/IDBRequest.idl:
48002         * Modules/indexeddb/IDBTransaction.idl:
48003         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
48004         * Modules/indexeddb/IDBVersionChangeEvent.idl:
48005         * Modules/indexeddb/IDBVersionChangeRequest.idl:
48006         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
48007         * Modules/intents/DOMWindowIntents.idl:
48008         * Modules/intents/DeliveredIntent.idl:
48009         * Modules/intents/NavigatorIntents.idl:
48010         * Modules/mediasource/MediaSource.idl:
48011         * Modules/mediasource/SourceBuffer.idl:
48012         * Modules/mediasource/SourceBufferList.idl:
48013         * Modules/mediastream/DOMWindowMediaStream.idl:
48014         * Modules/mediastream/IceCallback.idl:
48015         * Modules/mediastream/IceCandidate.idl:
48016         * Modules/mediastream/LocalMediaStream.idl:
48017         * Modules/mediastream/MediaStream.idl:
48018         * Modules/mediastream/MediaStreamEvent.idl:
48019         * Modules/mediastream/MediaStreamList.idl:
48020         * Modules/mediastream/MediaStreamTrack.idl:
48021         * Modules/mediastream/MediaStreamTrackEvent.idl:
48022         * Modules/mediastream/MediaStreamTrackList.idl:
48023         * Modules/mediastream/NavigatorMediaStream.idl:
48024         * Modules/mediastream/NavigatorUserMediaError.idl:
48025         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
48026         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
48027         * Modules/mediastream/PeerConnection00.idl:
48028         * Modules/mediastream/RTCErrorCallback.idl:
48029         * Modules/mediastream/RTCIceCandidate.idl:
48030         * Modules/mediastream/RTCIceCandidateEvent.idl:
48031         * Modules/mediastream/RTCPeerConnection.idl:
48032         * Modules/mediastream/RTCSessionDescription.idl:
48033         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
48034         * Modules/mediastream/RTCStatsCallback.idl:
48035         * Modules/mediastream/RTCStatsElement.idl:
48036         * Modules/mediastream/RTCStatsReport.idl:
48037         * Modules/mediastream/RTCStatsResponse.idl:
48038         * Modules/mediastream/SessionDescription.idl:
48039         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
48040         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
48041         * Modules/networkinfo/NetworkInfoConnection.idl:
48042         * Modules/notifications/DOMWindowNotifications.idl:
48043         * Modules/notifications/Notification.idl:
48044         * Modules/notifications/NotificationCenter.idl:
48045         * Modules/notifications/NotificationPermissionCallback.idl:
48046         * Modules/notifications/WorkerContextNotifications.idl:
48047         * Modules/proximity/DeviceProximityEvent.idl:
48048         * Modules/quota/DOMWindowQuota.idl:
48049         * Modules/quota/StorageInfo.idl:
48050         * Modules/quota/StorageInfoErrorCallback.idl:
48051         * Modules/quota/StorageInfoQuotaCallback.idl:
48052         * Modules/quota/StorageInfoUsageCallback.idl:
48053         * Modules/speech/DOMWindowSpeech.idl:
48054         * Modules/speech/SpeechGrammar.idl:
48055         * Modules/speech/SpeechGrammarList.idl:
48056         * Modules/speech/SpeechRecognition.idl:
48057         * Modules/speech/SpeechRecognitionAlternative.idl:
48058         * Modules/speech/SpeechRecognitionError.idl:
48059         * Modules/speech/SpeechRecognitionEvent.idl:
48060         * Modules/speech/SpeechRecognitionResult.idl:
48061         * Modules/speech/SpeechRecognitionResultList.idl:
48062         * Modules/vibration/NavigatorVibration.idl:
48063         * Modules/webaudio/AudioBuffer.idl:
48064         * Modules/webaudio/AudioBufferCallback.idl:
48065         * Modules/webaudio/AudioBufferSourceNode.idl:
48066         * Modules/webaudio/AudioChannelMerger.idl:
48067         * Modules/webaudio/AudioChannelSplitter.idl:
48068         * Modules/webaudio/AudioContext.idl:
48069         * Modules/webaudio/AudioDestinationNode.idl:
48070         * Modules/webaudio/AudioGain.idl:
48071         * Modules/webaudio/AudioGainNode.idl:
48072         * Modules/webaudio/AudioListener.idl:
48073         * Modules/webaudio/AudioNode.idl:
48074         * Modules/webaudio/AudioPannerNode.idl:
48075         * Modules/webaudio/AudioParam.idl:
48076         * Modules/webaudio/AudioProcessingEvent.idl:
48077         * Modules/webaudio/AudioSourceNode.idl:
48078         * Modules/webaudio/BiquadFilterNode.idl:
48079         * Modules/webaudio/ConvolverNode.idl:
48080         * Modules/webaudio/DOMWindowWebAudio.idl:
48081         * Modules/webaudio/DelayNode.idl:
48082         * Modules/webaudio/DynamicsCompressorNode.idl:
48083         * Modules/webaudio/JavaScriptAudioNode.idl:
48084         * Modules/webaudio/MediaElementAudioSourceNode.idl:
48085         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
48086         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
48087         * Modules/webaudio/Oscillator.idl:
48088         * Modules/webaudio/RealtimeAnalyserNode.idl:
48089         * Modules/webaudio/WaveShaperNode.idl:
48090         * Modules/webaudio/WaveTable.idl:
48091         * Modules/webdatabase/DOMWindowWebDatabase.idl:
48092         * Modules/webdatabase/Database.idl:
48093         * Modules/webdatabase/DatabaseCallback.idl:
48094         * Modules/webdatabase/DatabaseSync.idl:
48095         * Modules/webdatabase/SQLError.idl:
48096         * Modules/webdatabase/SQLException.idl:
48097         * Modules/webdatabase/SQLResultSet.idl:
48098         * Modules/webdatabase/SQLResultSetRowList.idl:
48099         * Modules/webdatabase/SQLStatementCallback.idl:
48100         * Modules/webdatabase/SQLStatementErrorCallback.idl:
48101         * Modules/webdatabase/SQLTransaction.idl:
48102         * Modules/webdatabase/SQLTransactionCallback.idl:
48103         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
48104         * Modules/webdatabase/SQLTransactionSync.idl:
48105         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
48106         * Modules/webdatabase/WorkerContextWebDatabase.idl:
48107         * Modules/websockets/CloseEvent.idl:
48108         * Modules/websockets/DOMWindowWebSocket.idl:
48109         * Modules/websockets/WebSocket.idl:
48110         * Modules/websockets/WorkerContextWebSocket.idl:
48111         * bindings/scripts/test/TestCallback.idl:
48112         * bindings/scripts/test/TestCustomNamedGetter.idl:
48113         * bindings/scripts/test/TestDomainSecurity.idl:
48114         * bindings/scripts/test/TestEventConstructor.idl:
48115         * bindings/scripts/test/TestEventTarget.idl:
48116         * bindings/scripts/test/TestInterface.idl:
48117         * bindings/scripts/test/TestNamedConstructor.idl:
48118         * bindings/scripts/test/TestNode.idl:
48119         * bindings/scripts/test/TestObj.idl:
48120         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
48121         * bindings/scripts/test/TestSupplemental.idl:
48122         * bindings/scripts/test/TestTypedArray.idl:
48123         * css/CSSCharsetRule.idl:
48124         * css/CSSImportRule.idl:
48125         * css/CSSPageRule.idl:
48126         * css/CSSRule.idl:
48127         * css/CSSRuleList.idl:
48128         * css/CSSStyleDeclaration.idl:
48129         * css/CSSStyleRule.idl:
48130         * css/CSSStyleSheet.idl:
48131         * css/CSSUnknownRule.idl:
48132         * css/CSSValue.idl:
48133         * css/CSSValueList.idl:
48134         * css/MediaList.idl:
48135         * css/MediaQueryListListener.idl:
48136         * css/StyleMedia.idl:
48137         * css/StyleSheet.idl:
48138         * css/StyleSheetList.idl:
48139         * css/WebKitCSSFilterValue.idl:
48140         * css/WebKitCSSKeyframesRule.idl:
48141         * css/WebKitCSSMatrix.idl:
48142         * css/WebKitCSSRegionRule.idl:
48143         * css/WebKitCSSTransformValue.idl:
48144         * dom/Attr.idl:
48145         * dom/BeforeLoadEvent.idl:
48146         * dom/CharacterData.idl:
48147         * dom/ClientRectList.idl:
48148         * dom/Clipboard.idl:
48149         * dom/CustomEvent.idl:
48150         * dom/DOMCoreException.idl:
48151         * dom/DOMImplementation.idl:
48152         * dom/DOMNamedFlowCollection.idl:
48153         * dom/DOMStringList.idl:
48154         * dom/DOMStringMap.idl:
48155         * dom/DataTransferItem.idl:
48156         * dom/DataTransferItemList.idl:
48157         * dom/DeviceMotionEvent.idl:
48158         * dom/DeviceOrientationEvent.idl:
48159         * dom/Document.idl:
48160         * dom/DocumentType.idl:
48161         * dom/Element.idl:
48162         * dom/Entity.idl:
48163         * dom/ErrorEvent.idl:
48164         * dom/Event.idl:
48165         * dom/EventException.idl:
48166         * dom/EventListener.idl:
48167         * dom/EventTarget.idl:
48168         * dom/HashChangeEvent.idl:
48169         * dom/MessageChannel.idl:
48170         * dom/MessageEvent.idl:
48171         * dom/MessagePort.idl:
48172         * dom/MouseEvent.idl:
48173         * dom/MutationCallback.idl:
48174         * dom/MutationObserver.idl:
48175         * dom/MutationRecord.idl:
48176         * dom/NamedNodeMap.idl:
48177         * dom/Node.idl:
48178         * dom/NodeFilter.idl:
48179         * dom/NodeIterator.idl:
48180         * dom/NodeList.idl:
48181         * dom/Notation.idl:
48182         * dom/OverflowEvent.idl:
48183         * dom/PageTransitionEvent.idl:
48184         * dom/PopStateEvent.idl:
48185         * dom/ProcessingInstruction.idl:
48186         * dom/ProgressEvent.idl:
48187         * dom/PropertyNodeList.idl:
48188         * dom/RangeException.idl:
48189         * dom/RequestAnimationFrameCallback.idl:
48190         * dom/ShadowRoot.idl:
48191         * dom/StringCallback.idl:
48192         * dom/Touch.idl:
48193         * dom/TouchEvent.idl:
48194         * dom/TouchList.idl:
48195         * dom/TreeWalker.idl:
48196         * dom/WebKitAnimationEvent.idl:
48197         * dom/WebKitNamedFlow.idl:
48198         * dom/WebKitTransitionEvent.idl:
48199         * editing/DOMTransaction.idl:
48200         * editing/UndoManager.idl:
48201         * fileapi/Blob.idl:
48202         * fileapi/File.idl:
48203         * fileapi/FileError.idl:
48204         * fileapi/FileException.idl:
48205         * fileapi/FileList.idl:
48206         * fileapi/FileReader.idl:
48207         * fileapi/FileReaderSync.idl:
48208         * html/DOMFormData.idl:
48209         * html/DOMSettableTokenList.idl:
48210         * html/DOMTokenList.idl:
48211         * html/DOMURL.idl:
48212         * html/HTMLAllCollection.idl:
48213         * html/HTMLAnchorElement.idl:
48214         * html/HTMLAppletElement.idl:
48215         * html/HTMLAreaElement.idl:
48216         * html/HTMLAudioElement.idl:
48217         * html/HTMLBRElement.idl:
48218         * html/HTMLBaseElement.idl:
48219         * html/HTMLBaseFontElement.idl:
48220         * html/HTMLBodyElement.idl:
48221         * html/HTMLButtonElement.idl:
48222         * html/HTMLCanvasElement.idl:
48223         * html/HTMLCollection.idl:
48224         * html/HTMLDListElement.idl:
48225         * html/HTMLDataListElement.idl:
48226         * html/HTMLDetailsElement.idl:
48227         * html/HTMLDialogElement.idl:
48228         * html/HTMLDirectoryElement.idl:
48229         * html/HTMLDivElement.idl:
48230         * html/HTMLDocument.idl:
48231         * html/HTMLElement.idl:
48232         * html/HTMLEmbedElement.idl:
48233         * html/HTMLFieldSetElement.idl:
48234         * html/HTMLFontElement.idl:
48235         * html/HTMLFormElement.idl:
48236         * html/HTMLFrameElement.idl:
48237         * html/HTMLFrameSetElement.idl:
48238         * html/HTMLHRElement.idl:
48239         * html/HTMLHeadElement.idl:
48240         * html/HTMLHeadingElement.idl:
48241         * html/HTMLHtmlElement.idl:
48242         * html/HTMLIFrameElement.idl:
48243         * html/HTMLImageElement.idl:
48244         * html/HTMLInputElement.idl:
48245         * html/HTMLIntentElement.idl:
48246         * html/HTMLKeygenElement.idl:
48247         * html/HTMLLIElement.idl:
48248         * html/HTMLLabelElement.idl:
48249         * html/HTMLLegendElement.idl:
48250         * html/HTMLLinkElement.idl:
48251         * html/HTMLMapElement.idl:
48252         * html/HTMLMarqueeElement.idl:
48253         * html/HTMLMediaElement.idl:
48254         * html/HTMLMenuElement.idl:
48255         * html/HTMLMetaElement.idl:
48256         * html/HTMLMeterElement.idl:
48257         * html/HTMLModElement.idl:
48258         * html/HTMLOListElement.idl:
48259         * html/HTMLObjectElement.idl:
48260         * html/HTMLOptGroupElement.idl:
48261         * html/HTMLOptionElement.idl:
48262         * html/HTMLOptionsCollection.idl:
48263         * html/HTMLOutputElement.idl:
48264         * html/HTMLParagraphElement.idl:
48265         * html/HTMLParamElement.idl:
48266         * html/HTMLPreElement.idl:
48267         * html/HTMLProgressElement.idl:
48268         * html/HTMLPropertiesCollection.idl:
48269         * html/HTMLQuoteElement.idl:
48270         * html/HTMLScriptElement.idl:
48271         * html/HTMLSelectElement.idl:
48272         * html/HTMLSourceElement.idl:
48273         * html/HTMLStyleElement.idl:
48274         * html/HTMLTableCaptionElement.idl:
48275         * html/HTMLTableCellElement.idl:
48276         * html/HTMLTableColElement.idl:
48277         * html/HTMLTableElement.idl:
48278         * html/HTMLTableRowElement.idl:
48279         * html/HTMLTableSectionElement.idl:
48280         * html/HTMLTextAreaElement.idl:
48281         * html/HTMLTitleElement.idl:
48282         * html/HTMLTrackElement.idl:
48283         * html/HTMLUListElement.idl:
48284         * html/HTMLVideoElement.idl:
48285         * html/ImageData.idl:
48286         * html/MediaController.idl:
48287         * html/MediaError.idl:
48288         * html/MediaKeyError.idl:
48289         * html/MediaKeyEvent.idl:
48290         * html/MicroDataItemValue.idl:
48291         * html/RadioNodeList.idl:
48292         * html/TimeRanges.idl:
48293         * html/ValidityState.idl:
48294         * html/VoidCallback.idl:
48295         * html/canvas/ArrayBuffer.idl:
48296         * html/canvas/ArrayBufferView.idl:
48297         * html/canvas/CanvasRenderingContext.idl:
48298         * html/canvas/CanvasRenderingContext2D.idl:
48299         * html/canvas/DataView.idl:
48300         * html/canvas/EXTTextureFilterAnisotropic.idl:
48301         * html/canvas/Float32Array.idl:
48302         * html/canvas/Float64Array.idl:
48303         * html/canvas/Int16Array.idl:
48304         * html/canvas/Int32Array.idl:
48305         * html/canvas/Int8Array.idl:
48306         * html/canvas/OESStandardDerivatives.idl:
48307         * html/canvas/OESTextureFloat.idl:
48308         * html/canvas/OESVertexArrayObject.idl:
48309         * html/canvas/Uint16Array.idl:
48310         * html/canvas/Uint32Array.idl:
48311         * html/canvas/Uint8Array.idl:
48312         * html/canvas/Uint8ClampedArray.idl:
48313         * html/canvas/WebGLActiveInfo.idl:
48314         * html/canvas/WebGLBuffer.idl:
48315         * html/canvas/WebGLCompressedTextureS3TC.idl:
48316         * html/canvas/WebGLContextAttributes.idl:
48317         * html/canvas/WebGLContextEvent.idl:
48318         * html/canvas/WebGLDebugRendererInfo.idl:
48319         * html/canvas/WebGLDebugShaders.idl:
48320         * html/canvas/WebGLDepthTexture.idl:
48321         * html/canvas/WebGLFramebuffer.idl:
48322         * html/canvas/WebGLLoseContext.idl:
48323         * html/canvas/WebGLProgram.idl:
48324         * html/canvas/WebGLRenderbuffer.idl:
48325         * html/canvas/WebGLRenderingContext.idl:
48326         * html/canvas/WebGLShader.idl:
48327         * html/canvas/WebGLShaderPrecisionFormat.idl:
48328         * html/canvas/WebGLTexture.idl:
48329         * html/canvas/WebGLUniformLocation.idl:
48330         * html/canvas/WebGLVertexArrayObjectOES.idl:
48331         * html/shadow/HTMLContentElement.idl:
48332         * html/shadow/HTMLShadowElement.idl:
48333         * html/track/TextTrack.idl:
48334         * html/track/TextTrackCue.idl:
48335         * html/track/TextTrackCueList.idl:
48336         * html/track/TextTrackList.idl:
48337         * html/track/TrackEvent.idl:
48338         * inspector/InjectedScriptHost.idl:
48339         * inspector/InspectorFrontendHost.idl:
48340         * inspector/JavaScriptCallFrame.idl:
48341         * inspector/ScriptProfile.idl:
48342         * inspector/ScriptProfileNode.idl:
48343         * loader/appcache/DOMApplicationCache.idl:
48344         * page/AbstractView.idl:
48345         * page/BarInfo.idl:
48346         * page/Console.idl:
48347         * page/Coordinates.idl:
48348         * page/Crypto.idl:
48349         * page/DOMSecurityPolicy.idl:
48350         * page/DOMSelection.idl:
48351         * page/DOMWindow.idl:
48352         * page/DOMWindowPagePopup.idl:
48353         * page/EventSource.idl:
48354         * page/History.idl:
48355         * page/Location.idl:
48356         * page/MemoryInfo.idl:
48357         * page/Navigator.idl:
48358         * page/PagePopupController.idl:
48359         * page/Performance.idl:
48360         * page/PerformanceEntry.idl:
48361         * page/PerformanceEntryList.idl:
48362         * page/PerformanceNavigation.idl:
48363         * page/PerformanceResourceTiming.idl:
48364         * page/PerformanceTiming.idl:
48365         * page/Screen.idl:
48366         * page/SpeechInputEvent.idl:
48367         * page/SpeechInputResult.idl:
48368         * page/SpeechInputResultList.idl:
48369         * page/WebKitAnimation.idl:
48370         * page/WebKitAnimationList.idl:
48371         * page/WebKitPoint.idl:
48372         * page/WorkerNavigator.idl:
48373         * plugins/DOMMimeType.idl:
48374         * plugins/DOMMimeTypeArray.idl:
48375         * plugins/DOMPlugin.idl:
48376         * plugins/DOMPluginArray.idl:
48377         * storage/Storage.idl:
48378         * storage/StorageEvent.idl:
48379         * svg/ElementTimeControl.idl:
48380         * svg/SVGAElement.idl:
48381         * svg/SVGAltGlyphDefElement.idl:
48382         * svg/SVGAltGlyphElement.idl:
48383         * svg/SVGAltGlyphItemElement.idl:
48384         * svg/SVGAngle.idl:
48385         * svg/SVGAnimateColorElement.idl:
48386         * svg/SVGAnimateElement.idl:
48387         * svg/SVGAnimateMotionElement.idl:
48388         * svg/SVGAnimateTransformElement.idl:
48389         * svg/SVGAnimatedAngle.idl:
48390         * svg/SVGAnimatedBoolean.idl:
48391         * svg/SVGAnimatedEnumeration.idl:
48392         * svg/SVGAnimatedInteger.idl:
48393         * svg/SVGAnimatedLength.idl:
48394         * svg/SVGAnimatedLengthList.idl:
48395         * svg/SVGAnimatedNumber.idl:
48396         * svg/SVGAnimatedNumberList.idl:
48397         * svg/SVGAnimatedPreserveAspectRatio.idl:
48398         * svg/SVGAnimatedRect.idl:
48399         * svg/SVGAnimatedString.idl:
48400         * svg/SVGAnimatedTransformList.idl:
48401         * svg/SVGAnimationElement.idl:
48402         * svg/SVGCircleElement.idl:
48403         * svg/SVGClipPathElement.idl:
48404         * svg/SVGColor.idl:
48405         * svg/SVGComponentTransferFunctionElement.idl:
48406         * svg/SVGCursorElement.idl:
48407         * svg/SVGDefsElement.idl:
48408         * svg/SVGDescElement.idl:
48409         * svg/SVGDocument.idl:
48410         * svg/SVGElement.idl:
48411         * svg/SVGElementInstance.idl:
48412         * svg/SVGElementInstanceList.idl:
48413         * svg/SVGEllipseElement.idl:
48414         * svg/SVGException.idl:
48415         * svg/SVGExternalResourcesRequired.idl:
48416         * svg/SVGFEBlendElement.idl:
48417         * svg/SVGFEColorMatrixElement.idl:
48418         * svg/SVGFEComponentTransferElement.idl:
48419         * svg/SVGFECompositeElement.idl:
48420         * svg/SVGFEConvolveMatrixElement.idl:
48421         * svg/SVGFEDiffuseLightingElement.idl:
48422         * svg/SVGFEDisplacementMapElement.idl:
48423         * svg/SVGFEDistantLightElement.idl:
48424         * svg/SVGFEDropShadowElement.idl:
48425         * svg/SVGFEFloodElement.idl:
48426         * svg/SVGFEFuncAElement.idl:
48427         * svg/SVGFEFuncBElement.idl:
48428         * svg/SVGFEFuncGElement.idl:
48429         * svg/SVGFEFuncRElement.idl:
48430         * svg/SVGFEGaussianBlurElement.idl:
48431         * svg/SVGFEImageElement.idl:
48432         * svg/SVGFEMergeElement.idl:
48433         * svg/SVGFEMergeNodeElement.idl:
48434         * svg/SVGFEMorphologyElement.idl:
48435         * svg/SVGFEOffsetElement.idl:
48436         * svg/SVGFEPointLightElement.idl:
48437         * svg/SVGFESpecularLightingElement.idl:
48438         * svg/SVGFESpotLightElement.idl:
48439         * svg/SVGFETileElement.idl:
48440         * svg/SVGFETurbulenceElement.idl:
48441         * svg/SVGFilterElement.idl:
48442         * svg/SVGFilterPrimitiveStandardAttributes.idl:
48443         * svg/SVGFitToViewBox.idl:
48444         * svg/SVGFontElement.idl:
48445         * svg/SVGFontFaceElement.idl:
48446         * svg/SVGFontFaceFormatElement.idl:
48447         * svg/SVGFontFaceNameElement.idl:
48448         * svg/SVGFontFaceSrcElement.idl:
48449         * svg/SVGFontFaceUriElement.idl:
48450         * svg/SVGForeignObjectElement.idl:
48451         * svg/SVGGElement.idl:
48452         * svg/SVGGlyphElement.idl:
48453         * svg/SVGGlyphRefElement.idl:
48454         * svg/SVGGradientElement.idl:
48455         * svg/SVGHKernElement.idl:
48456         * svg/SVGImageElement.idl:
48457         * svg/SVGLangSpace.idl:
48458         * svg/SVGLength.idl:
48459         * svg/SVGLengthList.idl:
48460         * svg/SVGLineElement.idl:
48461         * svg/SVGLinearGradientElement.idl:
48462         * svg/SVGLocatable.idl:
48463         * svg/SVGMPathElement.idl:
48464         * svg/SVGMarkerElement.idl:
48465         * svg/SVGMaskElement.idl:
48466         * svg/SVGMatrix.idl:
48467         * svg/SVGMetadataElement.idl:
48468         * svg/SVGMissingGlyphElement.idl:
48469         * svg/SVGNumber.idl:
48470         * svg/SVGNumberList.idl:
48471         * svg/SVGPaint.idl:
48472         * svg/SVGPathElement.idl:
48473         * svg/SVGPathSeg.idl:
48474         * svg/SVGPathSegArcAbs.idl:
48475         * svg/SVGPathSegArcRel.idl:
48476         * svg/SVGPathSegClosePath.idl:
48477         * svg/SVGPathSegCurvetoCubicAbs.idl:
48478         * svg/SVGPathSegCurvetoCubicRel.idl:
48479         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
48480         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
48481         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
48482         * svg/SVGPathSegCurvetoQuadraticRel.idl:
48483         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
48484         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
48485         * svg/SVGPathSegLinetoAbs.idl:
48486         * svg/SVGPathSegLinetoHorizontalAbs.idl:
48487         * svg/SVGPathSegLinetoHorizontalRel.idl:
48488         * svg/SVGPathSegLinetoRel.idl:
48489         * svg/SVGPathSegLinetoVerticalAbs.idl:
48490         * svg/SVGPathSegLinetoVerticalRel.idl:
48491         * svg/SVGPathSegList.idl:
48492         * svg/SVGPathSegMovetoAbs.idl:
48493         * svg/SVGPathSegMovetoRel.idl:
48494         * svg/SVGPatternElement.idl:
48495         * svg/SVGPoint.idl:
48496         * svg/SVGPointList.idl:
48497         * svg/SVGPolygonElement.idl:
48498         * svg/SVGPolylineElement.idl:
48499         * svg/SVGPreserveAspectRatio.idl:
48500         * svg/SVGRadialGradientElement.idl:
48501         * svg/SVGRect.idl:
48502         * svg/SVGRectElement.idl:
48503         * svg/SVGRenderingIntent.idl:
48504         * svg/SVGSVGElement.idl:
48505         * svg/SVGScriptElement.idl:
48506         * svg/SVGSetElement.idl:
48507         * svg/SVGStopElement.idl:
48508         * svg/SVGStringList.idl:
48509         * svg/SVGStylable.idl:
48510         * svg/SVGStyleElement.idl:
48511         * svg/SVGSwitchElement.idl:
48512         * svg/SVGSymbolElement.idl:
48513         * svg/SVGTRefElement.idl:
48514         * svg/SVGTSpanElement.idl:
48515         * svg/SVGTests.idl:
48516         * svg/SVGTextContentElement.idl:
48517         * svg/SVGTextElement.idl:
48518         * svg/SVGTextPathElement.idl:
48519         * svg/SVGTextPositioningElement.idl:
48520         * svg/SVGTitleElement.idl:
48521         * svg/SVGTransform.idl:
48522         * svg/SVGTransformList.idl:
48523         * svg/SVGTransformable.idl:
48524         * svg/SVGURIReference.idl:
48525         * svg/SVGUnitTypes.idl:
48526         * svg/SVGUseElement.idl:
48527         * svg/SVGVKernElement.idl:
48528         * svg/SVGViewElement.idl:
48529         * svg/SVGViewSpec.idl:
48530         * svg/SVGZoomAndPan.idl:
48531         * svg/SVGZoomEvent.idl:
48532         * testing/InternalSettings.idl:
48533         * testing/Internals.idl:
48534         * testing/MallocStatistics.idl:
48535         * workers/AbstractWorker.idl:
48536         * workers/DedicatedWorkerContext.idl:
48537         * workers/SharedWorker.idl:
48538         * workers/SharedWorkerContext.idl:
48539         * workers/Worker.idl:
48540         * workers/WorkerContext.idl:
48541         * workers/WorkerLocation.idl:
48542         * xml/DOMParser.idl:
48543         * xml/XMLHttpRequest.idl:
48544         * xml/XMLHttpRequestException.idl:
48545         * xml/XMLHttpRequestProgressEvent.idl:
48546         * xml/XMLHttpRequestUpload.idl:
48547         * xml/XMLSerializer.idl:
48548         * xml/XPathEvaluator.idl:
48549         * xml/XPathException.idl:
48550         * xml/XPathNSResolver.idl:
48551         * xml/XPathResult.idl:
48552         * xml/XSLTProcessor.idl:
48553         Moved extended attributes.
48554
48555 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48556
48557         Web Inspector: never expand global scope automatically
48558         https://bugs.webkit.org/show_bug.cgi?id=99159
48559
48560         Reviewed by Vsevolod Vlasov.
48561
48562         Otherwise, stepping is slow.
48563
48564         * inspector/front-end/ScopeChainSidebarPane.js:
48565         (WebInspector.ScopeChainSidebarPane.prototype.update):
48566
48567 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
48568
48569         Web Inspector: Refactor UISourceCode, make it possible to distinguish working copy changes/commits from formatting.
48570         https://bugs.webkit.org/show_bug.cgi?id=98911
48571
48572         Reviewed by Pavel Feldman.
48573
48574         ContentChanged was dispatched both when working copy was committed and UISourceCode was formatted before.
48575         WorkingCopyChanged event was dispatched when working copy was set.
48576         Now there are three explicit events: WorkingCopyChanged, WorkingCopyCommitted, FormattedChanged.
48577         No events are dispatched now during revisions restoring.
48578         Reverting to revisions is now implemented based on the working copy editing.
48579
48580         * inspector/front-end/JavaScriptSourceFrame.js:
48581         (WebInspector.JavaScriptSourceFrame):
48582         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
48583         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
48584         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
48585         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
48586         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48587         * inspector/front-end/NavigatorView.js:
48588         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
48589         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
48590         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
48591         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
48592         * inspector/front-end/TabbedEditorContainer.js:
48593         (WebInspector.TabbedEditorContainer.prototype._addUISourceCodeListeners):
48594         (WebInspector.TabbedEditorContainer.prototype._removeUISourceCodeListeners):
48595         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
48596         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
48597         * inspector/front-end/UISourceCode.js:
48598         (WebInspector.UISourceCode):
48599         (WebInspector.UISourceCode.prototype._commitContent):
48600         (WebInspector.UISourceCode.prototype.addRevision):
48601         (WebInspector.UISourceCode.prototype._restoreRevisionHistory):
48602         (WebInspector.UISourceCode.prototype.revertToOriginal):
48603         (WebInspector.UISourceCode.prototype.revertAndClearHistory):
48604         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48605         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48606         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged):
48607         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
48608         (WebInspector.UISourceCode.prototype.setFormatted):
48609         (WebInspector.Revision.prototype.revertToThis):
48610         * inspector/front-end/UISourceCodeFrame.js:
48611         (WebInspector.UISourceCodeFrame):
48612         (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
48613         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
48614         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyChanged):
48615         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyCommitted):
48616         (WebInspector.UISourceCodeFrame.prototype._innerSetContent):
48617
48618 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48619
48620         [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
48621         https://bugs.webkit.org/show_bug.cgi?id=90142
48622
48623         Reviewed by Simon Hausmann.
48624
48625         Added a setter for the certificate of ResourceError.
48626
48627         No change in behavior so no new tests.
48628
48629         * platform/network/cf/ResourceError.h:
48630         (ResourceError):
48631         * platform/network/cf/ResourceErrorCF.cpp:
48632         (WebCore):
48633         (WebCore::ResourceError::setCertificate):
48634
48635 2012-10-12  MORITA Hajime  <morrita@google.com>
48636
48637         [V8] PerContextEnabled methods should be installed when the constructor is created
48638         https://bugs.webkit.org/show_bug.cgi?id=99129
48639
48640         Reviewed by Kentaro Hara.
48641
48642         Before this change, generated installPerContextProperties() method
48643         injected both per-context attributes and functions, and functions
48644         were injected into the prototye object.  This means that the
48645         functions are injected into the prototype repeatedly for each
48646         intance creation.  This injection can be happened only once per
48647         prototype object, which is clearer and is faster.
48648
48649         This change introduces installPerContextPrototypeProperties()
48650         generated method, which is designed to be called for each time when the prototype
48651         object is created.
48652
48653         To do that, WrapperTypeInfo is extended to hold an additional
48654         function pointer to an installPerContextPrototypeProperties()
48655         implementation so that we call it from V8PerContextData::constructorForTypeSlowCase(),
48656         where the prototype instance is created.
48657
48658         Other changes:
48659         - Added some modification to pass around the parameter to constructorForTypeSlowCase().
48660         - installPerContextProperties() are now always generated for simplicity. Empty implementations are inlined thus
48661           no speed penalty.
48662
48663         No new tests. Covered by existing tests.
48664
48665         * Modules/notifications/NotificationCenter.cpp:
48666         (WebCore::NotificationCenter::document):
48667         * Modules/notifications/NotificationCenter.h:
48668         (NotificationCenter):
48669         * bindings/scripts/CodeGeneratorV8.pm:
48670         (GenerateHeader):
48671         (GenerateConstructorGetter):
48672         (GenerateNamedConstructorCallback):
48673         (GenerateImplementation): Extracted per-context function additions to new installPerContextPrototypeProperties() function.
48674         (GenerateToV8Converters):
48675         * bindings/scripts/test/V8/V8Float64Array.cpp:
48676         (WebCore):
48677         (WebCore::V8Float64Array::wrapSlow):
48678         * bindings/scripts/test/V8/V8Float64Array.h:
48679         (WebCore::V8Float64Array::installPerContextProperties):
48680         (WebCore::V8Float64Array::installPerContextPrototypeProperties):
48681         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48682         (WebCore):
48683         (WebCore::V8TestActiveDOMObject::wrapSlow):
48684         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
48685         (WebCore::V8TestActiveDOMObject::installPerContextProperties):
48686         (WebCore::V8TestActiveDOMObject::installPerContextPrototypeProperties):
48687         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
48688         (WebCore):
48689         (WebCore::V8TestCustomNamedGetter::wrapSlow):
48690         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
48691         (WebCore::V8TestCustomNamedGetter::installPerContextProperties):
48692         (WebCore::V8TestCustomNamedGetter::installPerContextPrototypeProperties):
48693         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
48694         (WebCore):
48695         (WebCore::V8TestEventConstructor::wrapSlow):
48696         * bindings/scripts/test/V8/V8TestEventConstructor.h:
48697         (WebCore::V8TestEventConstructor::installPerContextProperties):
48698         (WebCore::V8TestEventConstructor::installPerContextPrototypeProperties):
48699         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
48700         (WebCore):
48701         (WebCore::V8TestEventTarget::wrapSlow):
48702         * bindings/scripts/test/V8/V8TestEventTarget.h:
48703         (WebCore::V8TestEventTarget::installPerContextProperties):
48704         (WebCore::V8TestEventTarget::installPerContextPrototypeProperties):
48705         * bindings/scripts/test/V8/V8TestException.cpp:
48706         (WebCore):
48707         (WebCore::V8TestException::wrapSlow):
48708         * bindings/scripts/test/V8/V8TestException.h:
48709         (WebCore::V8TestException::installPerContextProperties):
48710         (WebCore::V8TestException::installPerContextPrototypeProperties):
48711         * bindings/scripts/test/V8/V8TestInterface.cpp:
48712         (WebCore):
48713         (WebCore::V8TestInterface::wrapSlow):
48714         * bindings/scripts/test/V8/V8TestInterface.h:
48715         (WebCore::V8TestInterface::installPerContextProperties):
48716         (WebCore::V8TestInterface::installPerContextPrototypeProperties):
48717         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
48718         (WebCore):
48719         (WebCore::V8TestMediaQueryListListener::wrapSlow):
48720         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
48721         (WebCore::V8TestMediaQueryListListener::installPerContextProperties):
48722         (WebCore::V8TestMediaQueryListListener::installPerContextPrototypeProperties):
48723         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
48724         (WebCore):
48725         (WebCore::V8TestNamedConstructor::wrapSlow):
48726         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
48727         (WebCore::V8TestNamedConstructor::installPerContextProperties):
48728         (WebCore::V8TestNamedConstructor::installPerContextPrototypeProperties):
48729         * bindings/scripts/test/V8/V8TestNode.cpp:
48730         (WebCore):
48731         (WebCore::V8TestNode::wrapSlow):
48732         * bindings/scripts/test/V8/V8TestNode.h:
48733         (WebCore::V8TestNode::installPerContextProperties):
48734         (WebCore::V8TestNode::installPerContextPrototypeProperties):
48735         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
48736         (WebCore):
48737         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
48738         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
48739         (WebCore::V8TestSerializedScriptValueInterface::installPerContextProperties):
48740         (WebCore::V8TestSerializedScriptValueInterface::installPerContextPrototypeProperties):
48741         * bindings/v8/NPV8Object.cpp:
48742         (WebCore::npObjectTypeInfo):
48743         * bindings/v8/V8DOMWindowShell.cpp:
48744         (WebCore::V8DOMWindowShell::installDOMWindow):
48745         * bindings/v8/V8DOMWrapper.cpp:
48746         (WebCore::V8DOMWrapper::instantiateV8Object):
48747         * bindings/v8/V8PerContextData.cpp:
48748         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
48749         (WebCore::V8PerContextData::constructorForTypeSlowCase): Now invokes installPerContextPrototypeProperties()
48750         * bindings/v8/V8PerContextData.h:
48751         (WebCore::V8PerContextData::createWrapperFromCache):
48752         (WebCore::V8PerContextData::constructorForType):
48753         (V8PerContextData):
48754         * bindings/v8/WorkerContextExecutionProxy.cpp:
48755         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
48756         * bindings/v8/WrapperTypeInfo.h:
48757         (WebCore):
48758         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties): Added.
48759         (WrapperTypeInfo):
48760         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
48761         (WebCore):
48762
48763 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48764
48765         Web Inspector: Add "goto tab 1,2,3" hotkeys
48766         https://bugs.webkit.org/show_bug.cgi?id=99157
48767
48768         Reviewed by Alexander Pavlov.
48769
48770         Ctrl/Cmd + digit shortcuts should select corresponding tabs
48771
48772         * inspector/front-end/InspectorView.js:
48773         (WebInspector.InspectorView.prototype._keyDown):
48774         (WebInspector.InspectorView.prototype._keyDownInternal):
48775
48776 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48777
48778         Web Inspector: Extract domain specific editing handling logic from UISourceCode descendants (step 1).
48779         https://bugs.webkit.org/show_bug.cgi?id=98912
48780
48781         Reviewed by Pavel Feldman.
48782
48783         This is the first step that introduces StyleFile and ScriptFile and extracts domain specific editing handling logic.
48784         StyleFile and ScriptFile should listen for the UISourceCode events and process them, this will be done in the next patch.
48785
48786         * inspector/front-end/BreakpointManager.js:
48787         (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
48788         * inspector/front-end/JavaScriptSource.js:
48789         * inspector/front-end/JavaScriptSourceFrame.js:
48790         (WebInspector.JavaScriptSourceFrame):
48791         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48792         * inspector/front-end/ResourceScriptMapping.js:
48793         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
48794         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
48795         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
48796         (WebInspector.ScriptFile):
48797         (WebInspector.ScriptFile.prototype.hasDivergedFromVM):
48798         (WebInspector.ScriptFile.prototype.isDivergingFromVM):
48799         (WebInspector.ScriptFile.prototype.addEventListener):
48800         (WebInspector.ScriptFile.prototype.removeEventListener):
48801         (WebInspector.ResourceScriptFile):
48802         (WebInspector.ResourceScriptFile.prototype.workingCopyCommitted):
48803         (WebInspector.ResourceScriptFile.prototype.workingCopyChanged):
48804         (WebInspector.ResourceScriptFile.prototype.fireHasDivergedFromVMChanged):
48805         (WebInspector.ResourceScriptFile.prototype.hasDivergedFromVM):
48806         (WebInspector.ResourceScriptFile.prototype.isDivergingFromVM):
48807         * inspector/front-end/ScriptSnippetModel.js:
48808         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
48809         (WebInspector.SnippetScriptFile):
48810         (WebInspector.SnippetScriptFile.prototype.hasDivergedFromVM):
48811         (WebInspector.SnippetScriptFile.prototype.setHasDivergedFromVM):
48812         (WebInspector.SnippetScriptFile.prototype.isDivergingFromVM):
48813         (WebInspector.SnippetScriptFile.prototype.setIsDivergingFromVM):
48814         (WebInspector.SnippetScriptFile.prototype.workingCopyCommitted):
48815         (WebInspector.SnippetScriptFile.prototype.workingCopyChanged):
48816         * inspector/front-end/ScriptsPanel.js:
48817         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
48818         * inspector/front-end/StyleSource.js:
48819         * inspector/front-end/StylesSourceMapping.js:
48820         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
48821         (WebInspector.StylesSourceMapping.prototype._addUISourceCode):
48822         (WebInspector.StyleFile):
48823         (WebInspector.StyleFile.prototype.workingCopyCommitted):
48824         (WebInspector.StyleFile.prototype.workingCopyChanged):
48825         (WebInspector.StyleFile.prototype._callOrSetTimeout):
48826         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
48827         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
48828         * inspector/front-end/UISourceCode.js:
48829         (WebInspector.UISourceCode.prototype.scriptFile):
48830         (WebInspector.UISourceCode.prototype.setScriptFile):
48831         (WebInspector.UISourceCode.prototype.styleFile):
48832         (WebInspector.UISourceCode.prototype.setStyleFile):
48833         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48834         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48835
48836 2012-10-12  Zeno Albisser  <zeno@webkit.org>
48837
48838         [Qt][WK2] GraphicsSurfaceGLX should keep track of previous GL context.
48839         https://bugs.webkit.org/show_bug.cgi?id=99076
48840
48841         In GraphicsSurfaceGLX/GraphicsSurfacePrivate we create a new
48842         QOpenGLContext for resolving GL methods.
48843         This context is implicitly made current on creation.
48844         Therefore we need to keep track of the previously bound context
48845         and make that one current again after calling create.
48846
48847         Reviewed by Kenneth Rohde Christiansen.
48848
48849         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
48850         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
48851
48852 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48853
48854         Unreviewed, rolling out r130389.
48855         http://trac.webkit.org/changeset/130389
48856         https://bugs.webkit.org/show_bug.cgi?id=98048
48857
48858         It broke chromium
48859
48860         * WebCore.exp.in:
48861         * page/Settings.cpp:
48862         (WebCore::Settings::setAcceleratedCompositingEnabled):
48863         * page/Settings.h:
48864         (WebCore::Settings::setForceCompositingMode):
48865         (WebCore::Settings::forceCompositingMode):
48866
48867 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48868
48869         Web Inspector: Show request body source in request headers view.
48870         https://bugs.webkit.org/show_bug.cgi?id=99145
48871
48872         Reviewed by Pavel Feldman.
48873
48874         Added view source toggle to query parameters and form data elements.
48875
48876         * inspector/front-end/NetworkPanel.js: fixed queryString getter usage.
48877         (WebInspector.NetworkDataGridNode.prototype._fileName):
48878         (WebInspector.NetworkDataGridNode.NameComparator):
48879         * inspector/front-end/NetworkRequest.js: Extracted queryString getter.
48880         (WebInspector.NetworkRequest.prototype.queryString):
48881         (WebInspector.NetworkRequest.prototype.get queryParameters):
48882         * inspector/front-end/RequestHeadersView.js:
48883         (WebInspector.RequestHeadersView.prototype._refreshQueryString):
48884         (WebInspector.RequestHeadersView.prototype._refreshFormData):
48885         (WebInspector.RequestHeadersView.prototype._populateTreeElementWithSourceText):
48886         extracted common method to populate elememnt with raw source text.
48887         (WebInspector.RequestHeadersView.prototype._refreshParams.toggleViewSource):
48888         (WebInspector.RequestHeadersView.prototype._refreshParams):
48889         (WebInspector.RequestHeadersView.prototype._toggleURLDecoding):
48890         (WebInspector.RequestHeadersView.prototype._refreshHeadersText):
48891         * inspector/front-end/networkPanel.css:A removed redundant raw-form-data style rule.
48892
48893 2012-10-12  Shinya Kawanaka  <shinyak@chromium.org>
48894
48895         Optimzie SelectorCheckingContext memory layout
48896         https://bugs.webkit.org/show_bug.cgi?id=99139
48897
48898         Reviewed by Hajime Morita.
48899
48900         Since VisitedMatchType and PseudoId are both enum, we can make SelectorChecker more compact
48901         if these two fields are continuously placed.
48902
48903         No new tests, no change in behavior.
48904
48905         * css/SelectorChecker.h:
48906         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
48907         (SelectorCheckingContext):
48908
48909 2012-10-12  Kenichi Ishibashi  <bashi@chromium.org>
48910
48911         [WebSocket] Add "Cache-Control: no-cache" to handshake request
48912         https://bugs.webkit.org/show_bug.cgi?id=98000
48913
48914         Reviewed by Yuta Kitamura.
48915
48916         Add no-cache headers to opening handshake.
48917         This is for compatibility improvement.
48918         Some proxies rewrite "Connection: upgrade" to "Connection: close"
48919         when a request doesn't contain no-cache headers.
48920
48921         Test: http/tests/websocket/tests/hybi/nocache.html
48922
48923         * Modules/websockets/WebSocketHandshake.cpp:
48924         (WebCore::WebSocketHandshake::clientHandshakeMessage):
48925         (WebCore::WebSocketHandshake::clientHandshakeRequest):
48926
48927 2012-10-11  Andy Estes  <aestes@apple.com>
48928
48929         Add some basic methods and properties to the injected bundle Objective-C DOM API
48930         https://bugs.webkit.org/show_bug.cgi?id=99137
48931
48932         Reviewed by Sam Weinig.
48933
48934         Export needed symbols.
48935
48936         * WebCore.exp.in:
48937
48938 2012-10-11  Rik Cabanier  <cabanier@adobe.com>
48939
48940         Bad copy constructor in StyleRareNonInheritedData
48941         https://bugs.webkit.org/show_bug.cgi?id=98950
48942
48943         Reviewed by Eric Seidel.
48944
48945         Typo in copy constructor caused blendmode to always be the default.
48946
48947         * rendering/style/StyleRareNonInheritedData.cpp:
48948         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
48949
48950 2012-10-11  Takashi Sakamoto  <tasak@google.com>
48951
48952         [WebKit IDL] remove all module from idl files.
48953         https://bugs.webkit.org/show_bug.cgi?id=99007
48954
48955         Reviewed by Kentaro Hara.
48956
48957         Since current WebIDL spec doesn't support "module", remove
48958         module from all idl files.
48959
48960         No new tests. I ran run-bindings-tests and no error was reported.
48961
48962         * Modules/battery/BatteryManager.idl:
48963         * Modules/battery/NavigatorBattery.idl:
48964         * Modules/filesystem/DOMFileSystem.idl:
48965         * Modules/filesystem/DOMFileSystemSync.idl:
48966         * Modules/filesystem/DOMWindowFileSystem.idl:
48967         * Modules/filesystem/DataTransferItemFileSystem.idl:
48968         * Modules/filesystem/DirectoryEntry.idl:
48969         * Modules/filesystem/DirectoryEntrySync.idl:
48970         * Modules/filesystem/DirectoryReader.idl:
48971         * Modules/filesystem/DirectoryReaderSync.idl:
48972         * Modules/filesystem/EntriesCallback.idl:
48973         * Modules/filesystem/Entry.idl:
48974         * Modules/filesystem/EntryArray.idl:
48975         * Modules/filesystem/EntryArraySync.idl:
48976         * Modules/filesystem/EntryCallback.idl:
48977         * Modules/filesystem/EntrySync.idl:
48978         * Modules/filesystem/ErrorCallback.idl:
48979         * Modules/filesystem/FileCallback.idl:
48980         * Modules/filesystem/FileEntry.idl:
48981         * Modules/filesystem/FileEntrySync.idl:
48982         * Modules/filesystem/FileSystemCallback.idl:
48983         * Modules/filesystem/FileWriter.idl:
48984         * Modules/filesystem/FileWriterCallback.idl:
48985         * Modules/filesystem/FileWriterSync.idl:
48986         * Modules/filesystem/HTMLInputElementFileSystem.idl:
48987         * Modules/filesystem/Metadata.idl:
48988         * Modules/filesystem/MetadataCallback.idl:
48989         * Modules/filesystem/WorkerContextFileSystem.idl:
48990         * Modules/gamepad/Gamepad.idl:
48991         * Modules/gamepad/GamepadList.idl:
48992         * Modules/gamepad/NavigatorGamepad.idl:
48993         * Modules/geolocation/Geolocation.idl:
48994         * Modules/geolocation/Geoposition.idl:
48995         * Modules/geolocation/NavigatorGeolocation.idl:
48996         * Modules/geolocation/PositionCallback.idl:
48997         * Modules/geolocation/PositionError.idl:
48998         * Modules/geolocation/PositionErrorCallback.idl:
48999         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
49000         * Modules/indexeddb/IDBAny.idl:
49001         * Modules/indexeddb/IDBCursor.idl:
49002         * Modules/indexeddb/IDBCursorWithValue.idl:
49003         * Modules/indexeddb/IDBDatabase.idl:
49004         * Modules/indexeddb/IDBDatabaseException.idl:
49005         * Modules/indexeddb/IDBFactory.idl:
49006         * Modules/indexeddb/IDBIndex.idl:
49007         * Modules/indexeddb/IDBKey.idl:
49008         * Modules/indexeddb/IDBKeyRange.idl:
49009         * Modules/indexeddb/IDBObjectStore.idl:
49010         * Modules/indexeddb/IDBOpenDBRequest.idl:
49011         * Modules/indexeddb/IDBRequest.idl:
49012         * Modules/indexeddb/IDBTransaction.idl:
49013         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
49014         * Modules/indexeddb/IDBVersionChangeEvent.idl:
49015         * Modules/indexeddb/IDBVersionChangeRequest.idl:
49016         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
49017         * Modules/intents/DOMWindowIntents.idl:
49018         * Modules/intents/DeliveredIntent.idl:
49019         * Modules/intents/Intent.idl:
49020         * Modules/intents/IntentResultCallback.idl:
49021         * Modules/intents/NavigatorIntents.idl:
49022         * Modules/mediasource/MediaSource.idl:
49023         * Modules/mediasource/SourceBuffer.idl:
49024         * Modules/mediasource/SourceBufferList.idl:
49025         * Modules/mediastream/DOMWindowMediaStream.idl:
49026         * Modules/mediastream/IceCallback.idl:
49027         * Modules/mediastream/IceCandidate.idl:
49028         * Modules/mediastream/LocalMediaStream.idl:
49029         * Modules/mediastream/MediaStream.idl:
49030         * Modules/mediastream/MediaStreamEvent.idl:
49031         * Modules/mediastream/MediaStreamList.idl:
49032         * Modules/mediastream/MediaStreamTrack.idl:
49033         * Modules/mediastream/MediaStreamTrackEvent.idl:
49034         * Modules/mediastream/MediaStreamTrackList.idl:
49035         * Modules/mediastream/NavigatorMediaStream.idl:
49036         * Modules/mediastream/NavigatorUserMediaError.idl:
49037         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
49038         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
49039         * Modules/mediastream/PeerConnection00.idl:
49040         * Modules/mediastream/RTCErrorCallback.idl:
49041         * Modules/mediastream/RTCIceCandidate.idl:
49042         * Modules/mediastream/RTCIceCandidateEvent.idl:
49043         * Modules/mediastream/RTCPeerConnection.idl:
49044         * Modules/mediastream/RTCSessionDescription.idl:
49045         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
49046         * Modules/mediastream/RTCStatsCallback.idl:
49047         * Modules/mediastream/RTCStatsElement.idl:
49048         * Modules/mediastream/RTCStatsReport.idl:
49049         * Modules/mediastream/RTCStatsResponse.idl:
49050         * Modules/mediastream/SessionDescription.idl:
49051         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
49052         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
49053         * Modules/networkinfo/NetworkInfoConnection.idl:
49054         * Modules/notifications/DOMWindowNotifications.idl:
49055         * Modules/notifications/Notification.idl:
49056         * Modules/notifications/NotificationCenter.idl:
49057         * Modules/notifications/NotificationPermissionCallback.idl:
49058         * Modules/notifications/WorkerContextNotifications.idl:
49059         * Modules/proximity/DeviceProximityEvent.idl:
49060         * Modules/quota/DOMWindowQuota.idl:
49061         * Modules/quota/StorageInfo.idl:
49062         * Modules/quota/StorageInfoErrorCallback.idl:
49063         * Modules/quota/StorageInfoQuotaCallback.idl:
49064         * Modules/quota/StorageInfoUsageCallback.idl:
49065         * Modules/speech/DOMWindowSpeech.idl:
49066         * Modules/speech/SpeechGrammar.idl:
49067         * Modules/speech/SpeechGrammarList.idl:
49068         * Modules/speech/SpeechRecognition.idl:
49069         * Modules/speech/SpeechRecognitionAlternative.idl:
49070         * Modules/speech/SpeechRecognitionError.idl:
49071         * Modules/speech/SpeechRecognitionEvent.idl:
49072         * Modules/speech/SpeechRecognitionResult.idl:
49073         * Modules/speech/SpeechRecognitionResultList.idl:
49074         * Modules/vibration/NavigatorVibration.idl:
49075         * Modules/webaudio/AudioBuffer.idl:
49076         * Modules/webaudio/AudioBufferCallback.idl:
49077         * Modules/webaudio/AudioBufferSourceNode.idl:
49078         * Modules/webaudio/AudioChannelMerger.idl:
49079         * Modules/webaudio/AudioChannelSplitter.idl:
49080         * Modules/webaudio/AudioContext.idl:
49081         * Modules/webaudio/AudioDestinationNode.idl:
49082         * Modules/webaudio/AudioGain.idl:
49083         * Modules/webaudio/AudioGainNode.idl:
49084         * Modules/webaudio/AudioListener.idl:
49085         * Modules/webaudio/AudioNode.idl:
49086         * Modules/webaudio/AudioPannerNode.idl:
49087         * Modules/webaudio/AudioParam.idl:
49088         * Modules/webaudio/AudioProcessingEvent.idl:
49089         * Modules/webaudio/AudioSourceNode.idl:
49090         * Modules/webaudio/BiquadFilterNode.idl:
49091         * Modules/webaudio/ConvolverNode.idl:
49092         * Modules/webaudio/DOMWindowWebAudio.idl:
49093         * Modules/webaudio/DelayNode.idl:
49094         * Modules/webaudio/DynamicsCompressorNode.idl:
49095         * Modules/webaudio/JavaScriptAudioNode.idl:
49096         * Modules/webaudio/MediaElementAudioSourceNode.idl:
49097         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
49098         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
49099         * Modules/webaudio/Oscillator.idl:
49100         * Modules/webaudio/RealtimeAnalyserNode.idl:
49101         * Modules/webaudio/WaveShaperNode.idl:
49102         * Modules/webaudio/WaveTable.idl:
49103         * Modules/webdatabase/DOMWindowWebDatabase.idl:
49104         * Modules/webdatabase/Database.idl:
49105         * Modules/webdatabase/DatabaseCallback.idl:
49106         * Modules/webdatabase/DatabaseSync.idl:
49107         * Modules/webdatabase/SQLError.idl:
49108         * Modules/webdatabase/SQLException.idl:
49109         * Modules/webdatabase/SQLResultSet.idl:
49110         * Modules/webdatabase/SQLResultSetRowList.idl:
49111         * Modules/webdatabase/SQLStatementCallback.idl:
49112         * Modules/webdatabase/SQLStatementErrorCallback.idl:
49113         * Modules/webdatabase/SQLTransaction.idl:
49114         * Modules/webdatabase/SQLTransactionCallback.idl:
49115         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
49116         * Modules/webdatabase/SQLTransactionSync.idl:
49117         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
49118         * Modules/webdatabase/WorkerContextWebDatabase.idl:
49119         * Modules/websockets/CloseEvent.idl:
49120         * Modules/websockets/DOMWindowWebSocket.idl:
49121         * Modules/websockets/WebSocket.idl:
49122         * Modules/websockets/WorkerContextWebSocket.idl:
49123         * bindings/scripts/test/TestCallback.idl:
49124         * bindings/scripts/test/TestCustomNamedGetter.idl:
49125         * bindings/scripts/test/TestDomainSecurity.idl:
49126         * bindings/scripts/test/TestEventConstructor.idl:
49127         * bindings/scripts/test/TestEventTarget.idl:
49128         * bindings/scripts/test/TestException.idl:
49129         * bindings/scripts/test/TestInterface.idl:
49130         * bindings/scripts/test/TestMediaQueryListListener.idl:
49131         * bindings/scripts/test/TestNamedConstructor.idl:
49132         * bindings/scripts/test/TestNode.idl:
49133         * bindings/scripts/test/TestObj.idl:
49134         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
49135         * bindings/scripts/test/TestSupplemental.idl:
49136         * bindings/scripts/test/TestTypedArray.idl:
49137         * css/CSSCharsetRule.idl:
49138         * css/CSSFontFaceRule.idl:
49139         * css/CSSImportRule.idl:
49140         * css/CSSMediaRule.idl:
49141         * css/CSSPageRule.idl:
49142         * css/CSSPrimitiveValue.idl:
49143         * css/CSSRule.idl:
49144         * css/CSSRuleList.idl:
49145         * css/CSSStyleDeclaration.idl:
49146         * css/CSSStyleRule.idl:
49147         * css/CSSStyleSheet.idl:
49148         * css/CSSUnknownRule.idl:
49149         * css/CSSValue.idl:
49150         * css/CSSValueList.idl:
49151         * css/Counter.idl:
49152         * css/MediaList.idl:
49153         * css/MediaQueryList.idl:
49154         * css/MediaQueryListListener.idl:
49155         * css/RGBColor.idl:
49156         * css/Rect.idl:
49157         * css/StyleMedia.idl:
49158         * css/StyleSheet.idl:
49159         * css/StyleSheetList.idl:
49160         * css/WebKitCSSFilterValue.idl:
49161         * css/WebKitCSSKeyframeRule.idl:
49162         * css/WebKitCSSKeyframesRule.idl:
49163         * css/WebKitCSSMatrix.idl:
49164         * css/WebKitCSSRegionRule.idl:
49165         * css/WebKitCSSTransformValue.idl:
49166         * dom/Attr.idl:
49167         * dom/BeforeLoadEvent.idl:
49168         * dom/CDATASection.idl:
49169         * dom/CharacterData.idl:
49170         * dom/ClientRect.idl:
49171         * dom/ClientRectList.idl:
49172         * dom/Clipboard.idl:
49173         * dom/Comment.idl:
49174         * dom/CompositionEvent.idl:
49175         * dom/CustomEvent.idl:
49176         * dom/DOMCoreException.idl:
49177         * dom/DOMError.idl:
49178         * dom/DOMImplementation.idl:
49179         * dom/DOMNamedFlowCollection.idl:
49180         * dom/DOMStringList.idl:
49181         * dom/DOMStringMap.idl:
49182         * dom/DataTransferItem.idl:
49183         * dom/DataTransferItemList.idl:
49184         * dom/DeviceMotionEvent.idl:
49185         * dom/DeviceOrientationEvent.idl:
49186         * dom/Document.idl:
49187         * dom/DocumentFragment.idl:
49188         * dom/DocumentType.idl:
49189         * dom/Element.idl:
49190         * dom/Entity.idl:
49191         * dom/EntityReference.idl:
49192         * dom/ErrorEvent.idl:
49193         * dom/Event.idl:
49194         * dom/EventException.idl:
49195         * dom/EventListener.idl:
49196         * dom/EventTarget.idl:
49197         * dom/HashChangeEvent.idl:
49198         * dom/KeyboardEvent.idl:
49199         * dom/MessageChannel.idl:
49200         * dom/MessageEvent.idl:
49201         * dom/MessagePort.idl:
49202         * dom/MouseEvent.idl:
49203         * dom/MutationCallback.idl:
49204         * dom/MutationEvent.idl:
49205         * dom/MutationObserver.idl:
49206         * dom/MutationRecord.idl:
49207         * dom/NamedNodeMap.idl:
49208         * dom/Node.idl:
49209         * dom/NodeFilter.idl:
49210         * dom/NodeIterator.idl:
49211         * dom/NodeList.idl:
49212         * dom/Notation.idl:
49213         * dom/OverflowEvent.idl:
49214         * dom/PageTransitionEvent.idl:
49215         * dom/PopStateEvent.idl:
49216         * dom/ProcessingInstruction.idl:
49217         * dom/ProgressEvent.idl:
49218         * dom/PropertyNodeList.idl:
49219         * dom/Range.idl:
49220         * dom/RangeException.idl:
49221         * dom/RequestAnimationFrameCallback.idl:
49222         * dom/ShadowRoot.idl:
49223         * dom/StringCallback.idl:
49224         * dom/Text.idl:
49225         * dom/TextEvent.idl:
49226         * dom/Touch.idl:
49227         * dom/TouchEvent.idl:
49228         * dom/TouchList.idl:
49229         * dom/TreeWalker.idl:
49230         * dom/UIEvent.idl:
49231         * dom/WebKitAnimationEvent.idl:
49232         * dom/WebKitNamedFlow.idl:
49233         * dom/WebKitTransitionEvent.idl:
49234         * dom/WheelEvent.idl:
49235         * editing/DOMTransaction.idl:
49236         * editing/UndoManager.idl:
49237         * fileapi/Blob.idl:
49238         * fileapi/File.idl:
49239         * fileapi/FileError.idl:
49240         * fileapi/FileException.idl:
49241         * fileapi/FileList.idl:
49242         * fileapi/FileReader.idl:
49243         * fileapi/FileReaderSync.idl:
49244         * html/DOMFormData.idl:
49245         * html/DOMSettableTokenList.idl:
49246         * html/DOMTokenList.idl:
49247         * html/DOMURL.idl:
49248         * html/HTMLAllCollection.idl:
49249         * html/HTMLAnchorElement.idl:
49250         * html/HTMLAppletElement.idl:
49251         * html/HTMLAreaElement.idl:
49252         * html/HTMLAudioElement.idl:
49253         * html/HTMLBRElement.idl:
49254         * html/HTMLBaseElement.idl:
49255         * html/HTMLBaseFontElement.idl:
49256         * html/HTMLBodyElement.idl:
49257         * html/HTMLButtonElement.idl:
49258         * html/HTMLCanvasElement.idl:
49259         * html/HTMLCollection.idl:
49260         * html/HTMLDListElement.idl:
49261         * html/HTMLDataListElement.idl:
49262         * html/HTMLDetailsElement.idl:
49263         * html/HTMLDialogElement.idl:
49264         * html/HTMLDirectoryElement.idl:
49265         * html/HTMLDivElement.idl:
49266         * html/HTMLDocument.idl:
49267         * html/HTMLElement.idl:
49268         * html/HTMLEmbedElement.idl:
49269         * html/HTMLFieldSetElement.idl:
49270         * html/HTMLFontElement.idl:
49271         * html/HTMLFormElement.idl:
49272         * html/HTMLFrameElement.idl:
49273         * html/HTMLFrameSetElement.idl:
49274         * html/HTMLHRElement.idl:
49275         * html/HTMLHeadElement.idl:
49276         * html/HTMLHeadingElement.idl:
49277         * html/HTMLHtmlElement.idl:
49278         * html/HTMLIFrameElement.idl:
49279         * html/HTMLImageElement.idl:
49280         * html/HTMLInputElement.idl:
49281         * html/HTMLIntentElement.idl:
49282         * html/HTMLKeygenElement.idl:
49283         * html/HTMLLIElement.idl:
49284         * html/HTMLLabelElement.idl:
49285         * html/HTMLLegendElement.idl:
49286         * html/HTMLLinkElement.idl:
49287         * html/HTMLMapElement.idl:
49288         * html/HTMLMarqueeElement.idl:
49289         * html/HTMLMediaElement.idl:
49290         * html/HTMLMenuElement.idl:
49291         * html/HTMLMetaElement.idl:
49292         * html/HTMLMeterElement.idl:
49293         * html/HTMLModElement.idl:
49294         * html/HTMLOListElement.idl:
49295         * html/HTMLObjectElement.idl:
49296         * html/HTMLOptGroupElement.idl:
49297         * html/HTMLOptionElement.idl:
49298         * html/HTMLOptionsCollection.idl:
49299         * html/HTMLOutputElement.idl:
49300         * html/HTMLParagraphElement.idl:
49301         * html/HTMLParamElement.idl:
49302         * html/HTMLPreElement.idl:
49303         * html/HTMLProgressElement.idl:
49304         * html/HTMLPropertiesCollection.idl:
49305         * html/HTMLQuoteElement.idl:
49306         * html/HTMLScriptElement.idl:
49307         * html/HTMLSelectElement.idl:
49308         * html/HTMLSourceElement.idl:
49309         * html/HTMLSpanElement.idl:
49310         * html/HTMLStyleElement.idl:
49311         * html/HTMLTableCaptionElement.idl:
49312         * html/HTMLTableCellElement.idl:
49313         * html/HTMLTableColElement.idl:
49314         * html/HTMLTableElement.idl:
49315         * html/HTMLTableRowElement.idl:
49316         * html/HTMLTableSectionElement.idl:
49317         * html/HTMLTextAreaElement.idl:
49318         * html/HTMLTitleElement.idl:
49319         * html/HTMLTrackElement.idl:
49320         * html/HTMLUListElement.idl:
49321         * html/HTMLUnknownElement.idl:
49322         * html/HTMLVideoElement.idl:
49323         * html/ImageData.idl:
49324         * html/MediaController.idl:
49325         * html/MediaError.idl:
49326         * html/MediaKeyError.idl:
49327         * html/MediaKeyEvent.idl:
49328         * html/MicroDataItemValue.idl:
49329         * html/RadioNodeList.idl:
49330         * html/TextMetrics.idl:
49331         * html/TimeRanges.idl:
49332         * html/ValidityState.idl:
49333         * html/VoidCallback.idl:
49334         * html/canvas/ArrayBuffer.idl:
49335         * html/canvas/ArrayBufferView.idl:
49336         * html/canvas/CanvasGradient.idl:
49337         * html/canvas/CanvasPattern.idl:
49338         * html/canvas/CanvasRenderingContext.idl:
49339         * html/canvas/CanvasRenderingContext2D.idl:
49340         * html/canvas/DataView.idl:
49341         * html/canvas/EXTTextureFilterAnisotropic.idl:
49342         * html/canvas/Float32Array.idl:
49343         * html/canvas/Float64Array.idl:
49344         * html/canvas/Int16Array.idl:
49345         * html/canvas/Int32Array.idl:
49346         * html/canvas/Int8Array.idl:
49347         * html/canvas/OESStandardDerivatives.idl:
49348         * html/canvas/OESTextureFloat.idl:
49349         * html/canvas/OESVertexArrayObject.idl:
49350         * html/canvas/Uint16Array.idl:
49351         * html/canvas/Uint32Array.idl:
49352         * html/canvas/Uint8Array.idl:
49353         * html/canvas/Uint8ClampedArray.idl:
49354         * html/canvas/WebGLActiveInfo.idl:
49355         * html/canvas/WebGLBuffer.idl:
49356         * html/canvas/WebGLCompressedTextureS3TC.idl:
49357         * html/canvas/WebGLContextAttributes.idl:
49358         * html/canvas/WebGLContextEvent.idl:
49359         * html/canvas/WebGLDebugRendererInfo.idl:
49360         * html/canvas/WebGLDebugShaders.idl:
49361         * html/canvas/WebGLDepthTexture.idl:
49362         * html/canvas/WebGLFramebuffer.idl:
49363         * html/canvas/WebGLLoseContext.idl:
49364         * html/canvas/WebGLProgram.idl:
49365         * html/canvas/WebGLRenderbuffer.idl:
49366         * html/canvas/WebGLRenderingContext.idl:
49367         * html/canvas/WebGLShader.idl:
49368         * html/canvas/WebGLShaderPrecisionFormat.idl:
49369         * html/canvas/WebGLTexture.idl:
49370         * html/canvas/WebGLUniformLocation.idl:
49371         * html/canvas/WebGLVertexArrayObjectOES.idl:
49372         * html/shadow/HTMLContentElement.idl:
49373         * html/shadow/HTMLShadowElement.idl:
49374         * html/track/TextTrack.idl:
49375         * html/track/TextTrackCue.idl:
49376         * html/track/TextTrackCueList.idl:
49377         * html/track/TextTrackList.idl:
49378         * html/track/TrackEvent.idl:
49379         * inspector/InjectedScriptHost.idl:
49380         * inspector/InspectorFrontendHost.idl:
49381         * inspector/JavaScriptCallFrame.idl:
49382         * inspector/ScriptProfile.idl:
49383         * inspector/ScriptProfileNode.idl:
49384         * loader/appcache/DOMApplicationCache.idl:
49385         * page/AbstractView.idl:
49386         * page/BarInfo.idl:
49387         * page/Console.idl:
49388         * page/Coordinates.idl:
49389         * page/Crypto.idl:
49390         * page/DOMSecurityPolicy.idl:
49391         * page/DOMSelection.idl:
49392         * page/DOMWindow.idl:
49393         * page/DOMWindowPagePopup.idl:
49394         * page/EventSource.idl:
49395         * page/History.idl:
49396         * page/Location.idl:
49397         * page/MemoryInfo.idl:
49398         * page/Navigator.idl:
49399         * page/PagePopupController.idl:
49400         * page/Performance.idl:
49401         * page/PerformanceEntry.idl:
49402         * page/PerformanceEntryList.idl:
49403         * page/PerformanceNavigation.idl:
49404         * page/PerformanceResourceTiming.idl:
49405         * page/PerformanceTiming.idl:
49406         * page/Screen.idl:
49407         * page/SpeechInputEvent.idl:
49408         * page/SpeechInputResult.idl:
49409         * page/SpeechInputResultList.idl:
49410         * page/WebKitAnimation.idl:
49411         * page/WebKitAnimationList.idl:
49412         * page/WebKitPoint.idl:
49413         * page/WorkerNavigator.idl:
49414         * plugins/DOMMimeType.idl:
49415         * plugins/DOMMimeTypeArray.idl:
49416         * plugins/DOMPlugin.idl:
49417         * plugins/DOMPluginArray.idl:
49418         * storage/Storage.idl:
49419         * storage/StorageEvent.idl:
49420         * svg/ElementTimeControl.idl:
49421         * svg/SVGAElement.idl:
49422         * svg/SVGAltGlyphDefElement.idl:
49423         * svg/SVGAltGlyphElement.idl:
49424         * svg/SVGAltGlyphItemElement.idl:
49425         * svg/SVGAngle.idl:
49426         * svg/SVGAnimateColorElement.idl:
49427         * svg/SVGAnimateElement.idl:
49428         * svg/SVGAnimateMotionElement.idl:
49429         * svg/SVGAnimateTransformElement.idl:
49430         * svg/SVGAnimatedAngle.idl:
49431         * svg/SVGAnimatedBoolean.idl:
49432         * svg/SVGAnimatedEnumeration.idl:
49433         * svg/SVGAnimatedInteger.idl:
49434         * svg/SVGAnimatedLength.idl:
49435         * svg/SVGAnimatedLengthList.idl:
49436         * svg/SVGAnimatedNumber.idl:
49437         * svg/SVGAnimatedNumberList.idl:
49438         * svg/SVGAnimatedPreserveAspectRatio.idl:
49439         * svg/SVGAnimatedRect.idl:
49440         * svg/SVGAnimatedString.idl:
49441         * svg/SVGAnimatedTransformList.idl:
49442         * svg/SVGAnimationElement.idl:
49443         * svg/SVGCircleElement.idl:
49444         * svg/SVGClipPathElement.idl:
49445         * svg/SVGColor.idl:
49446         * svg/SVGComponentTransferFunctionElement.idl:
49447         * svg/SVGCursorElement.idl:
49448         * svg/SVGDefsElement.idl:
49449         * svg/SVGDescElement.idl:
49450         * svg/SVGDocument.idl:
49451         * svg/SVGElement.idl:
49452         * svg/SVGElementInstance.idl:
49453         * svg/SVGElementInstanceList.idl:
49454         * svg/SVGEllipseElement.idl:
49455         * svg/SVGException.idl:
49456         * svg/SVGExternalResourcesRequired.idl:
49457         * svg/SVGFEBlendElement.idl:
49458         * svg/SVGFEColorMatrixElement.idl:
49459         * svg/SVGFEComponentTransferElement.idl:
49460         * svg/SVGFECompositeElement.idl:
49461         * svg/SVGFEConvolveMatrixElement.idl:
49462         * svg/SVGFEDiffuseLightingElement.idl:
49463         * svg/SVGFEDisplacementMapElement.idl:
49464         * svg/SVGFEDistantLightElement.idl:
49465         * svg/SVGFEDropShadowElement.idl:
49466         * svg/SVGFEFloodElement.idl:
49467         * svg/SVGFEFuncAElement.idl:
49468         * svg/SVGFEFuncBElement.idl:
49469         * svg/SVGFEFuncGElement.idl:
49470         * svg/SVGFEFuncRElement.idl:
49471         * svg/SVGFEGaussianBlurElement.idl:
49472         * svg/SVGFEImageElement.idl:
49473         * svg/SVGFEMergeElement.idl:
49474         * svg/SVGFEMergeNodeElement.idl:
49475         * svg/SVGFEMorphologyElement.idl:
49476         * svg/SVGFEOffsetElement.idl:
49477         * svg/SVGFEPointLightElement.idl:
49478         * svg/SVGFESpecularLightingElement.idl:
49479         * svg/SVGFESpotLightElement.idl:
49480         * svg/SVGFETileElement.idl:
49481         * svg/SVGFETurbulenceElement.idl:
49482         * svg/SVGFilterElement.idl:
49483         * svg/SVGFilterPrimitiveStandardAttributes.idl:
49484         * svg/SVGFitToViewBox.idl:
49485         * svg/SVGFontElement.idl:
49486         * svg/SVGFontFaceElement.idl:
49487         * svg/SVGFontFaceFormatElement.idl:
49488         * svg/SVGFontFaceNameElement.idl:
49489         * svg/SVGFontFaceSrcElement.idl:
49490         * svg/SVGFontFaceUriElement.idl:
49491         * svg/SVGForeignObjectElement.idl:
49492         * svg/SVGGElement.idl:
49493         * svg/SVGGlyphElement.idl:
49494         * svg/SVGGlyphRefElement.idl:
49495         * svg/SVGGradientElement.idl:
49496         * svg/SVGHKernElement.idl:
49497         * svg/SVGImageElement.idl:
49498         * svg/SVGLangSpace.idl:
49499         * svg/SVGLength.idl:
49500         * svg/SVGLengthList.idl:
49501         * svg/SVGLineElement.idl:
49502         * svg/SVGLinearGradientElement.idl:
49503         * svg/SVGLocatable.idl:
49504         * svg/SVGMPathElement.idl:
49505         * svg/SVGMarkerElement.idl:
49506         * svg/SVGMaskElement.idl:
49507         * svg/SVGMatrix.idl:
49508         * svg/SVGMetadataElement.idl:
49509         * svg/SVGMissingGlyphElement.idl:
49510         * svg/SVGNumber.idl:
49511         * svg/SVGNumberList.idl:
49512         * svg/SVGPaint.idl:
49513         * svg/SVGPathElement.idl:
49514         * svg/SVGPathSeg.idl:
49515         * svg/SVGPathSegArcAbs.idl:
49516         * svg/SVGPathSegArcRel.idl:
49517         * svg/SVGPathSegClosePath.idl:
49518         * svg/SVGPathSegCurvetoCubicAbs.idl:
49519         * svg/SVGPathSegCurvetoCubicRel.idl:
49520         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
49521         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
49522         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
49523         * svg/SVGPathSegCurvetoQuadraticRel.idl:
49524         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
49525         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
49526         * svg/SVGPathSegLinetoAbs.idl:
49527         * svg/SVGPathSegLinetoHorizontalAbs.idl:
49528         * svg/SVGPathSegLinetoHorizontalRel.idl:
49529         * svg/SVGPathSegLinetoRel.idl:
49530         * svg/SVGPathSegLinetoVerticalAbs.idl:
49531         * svg/SVGPathSegLinetoVerticalRel.idl:
49532         * svg/SVGPathSegList.idl:
49533         * svg/SVGPathSegMovetoAbs.idl:
49534         * svg/SVGPathSegMovetoRel.idl:
49535         * svg/SVGPatternElement.idl:
49536         * svg/SVGPoint.idl:
49537         * svg/SVGPointList.idl:
49538         * svg/SVGPolygonElement.idl:
49539         * svg/SVGPolylineElement.idl:
49540         * svg/SVGPreserveAspectRatio.idl:
49541         * svg/SVGRadialGradientElement.idl:
49542         * svg/SVGRect.idl:
49543         * svg/SVGRectElement.idl:
49544         * svg/SVGRenderingIntent.idl:
49545         * svg/SVGSVGElement.idl:
49546         * svg/SVGScriptElement.idl:
49547         * svg/SVGSetElement.idl:
49548         * svg/SVGStopElement.idl:
49549         * svg/SVGStringList.idl:
49550         * svg/SVGStylable.idl:
49551         * svg/SVGStyleElement.idl:
49552         * svg/SVGSwitchElement.idl:
49553         * svg/SVGSymbolElement.idl:
49554         * svg/SVGTRefElement.idl:
49555         * svg/SVGTSpanElement.idl:
49556         * svg/SVGTests.idl:
49557         * svg/SVGTextContentElement.idl:
49558         * svg/SVGTextElement.idl:
49559         * svg/SVGTextPathElement.idl:
49560         * svg/SVGTextPositioningElement.idl:
49561         * svg/SVGTitleElement.idl:
49562         * svg/SVGTransform.idl:
49563         * svg/SVGTransformList.idl:
49564         * svg/SVGTransformable.idl:
49565         * svg/SVGURIReference.idl:
49566         * svg/SVGUnitTypes.idl:
49567         * svg/SVGUseElement.idl:
49568         * svg/SVGVKernElement.idl:
49569         * svg/SVGViewElement.idl:
49570         * svg/SVGViewSpec.idl:
49571         * svg/SVGZoomAndPan.idl:
49572         * svg/SVGZoomEvent.idl:
49573         * testing/InternalSettings.idl:
49574         * testing/Internals.idl:
49575         * testing/MallocStatistics.idl:
49576         * workers/AbstractWorker.idl:
49577         * workers/DedicatedWorkerContext.idl:
49578         * workers/SharedWorker.idl:
49579         * workers/SharedWorkerContext.idl:
49580         * workers/Worker.idl:
49581         * workers/WorkerContext.idl:
49582         * workers/WorkerLocation.idl:
49583         * xml/DOMParser.idl:
49584         * xml/XMLHttpRequest.idl:
49585         * xml/XMLHttpRequestException.idl:
49586         * xml/XMLHttpRequestProgressEvent.idl:
49587         * xml/XMLHttpRequestUpload.idl:
49588         * xml/XMLSerializer.idl:
49589         * xml/XPathEvaluator.idl:
49590         * xml/XPathException.idl:
49591         * xml/XPathExpression.idl:
49592         * xml/XPathNSResolver.idl:
49593         * xml/XPathResult.idl:
49594         * xml/XSLTProcessor.idl:
49595         Removed "module".
49596
49597 2012-10-11  Beth Dakin  <bdakin@apple.com>
49598
49599         https://bugs.webkit.org/show_bug.cgi?id=98700
49600         ScrollingCoordinator is a hot mess of if-defs
49601
49602         Reviewed by Anders Carlsson.
49603
49604         This patch moves all of the threaded scrolling code in 
49605         ScrollingCoordinator into a new class called ScrollingCoordinatorMac 
49606         which inherits from ScrollingCoordinator. 
49607
49608         It also adds ScrollingCoordinatorChromium to do Chromium-specific work. 
49609         ScrollingCoordinator itself does work that is cross-platform. 
49610         
49611         Finally, this patch also eliminates ScrollingCoordinatorNone. 
49612         ScrollingCoordinator is now sufficient for platforms that relied on 
49613         ScrollingCoordinatorNone to build.
49614
49615         * CMakeLists.txt:
49616         * GNUmakefile.list.am:
49617         * Target.pri:
49618         * WebCore.exp.in:
49619         * WebCore.xcodeproj/project.pbxproj:
49620         * page/scrolling/ScrollingCoordinator.cpp:
49621         (WebCore::ScrollingCoordinator::create):
49622         (WebCore):
49623         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
49624         (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
49625         (WebCore::ScrollingCoordinator::pageDestroyed):
49626         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
49627         (WebCore::ScrollingCoordinator::computeCurrentWheelEventHandlerCount):
49628         (WebCore::ScrollingCoordinator::scrollLayerForFrameView):
49629         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
49630         * page/scrolling/ScrollingCoordinator.h:
49631         (WebCore):
49632         (ScrollingCoordinator):
49633         (WebCore::ScrollingCoordinator::scrollingTree):
49634         (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded):
49635         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
49636         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
49637         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
49638         (WebCore::ScrollingCoordinator::handleWheelEvent):
49639         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
49640         (WebCore::ScrollingCoordinator::attachToStateTree):
49641         (WebCore::ScrollingCoordinator::detachFromStateTree):
49642         (WebCore::ScrollingCoordinator::clearStateTree):
49643         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
49644         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
49645         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
49646         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
49647         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
49648         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
49649         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
49650         * page/scrolling/ScrollingCoordinatorNone.cpp: Removed.
49651         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
49652         (WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
49653         (WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
49654         (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
49655         (WebCore):
49656         (WebCore::ScrollingCoordinatorChromium::frameViewRootLayerDidChange):
49657         (WebCore::ScrollingCoordinatorChromium::frameViewHorizontalScrollbarLayerDidChange):
49658         (WebCore::ScrollingCoordinatorChromium::frameViewVerticalScrollbarLayerDidChange):
49659         (WebCore::ScrollingCoordinatorChromium::setScrollLayer):
49660         (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
49661         (WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
49662         (WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
49663         (WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
49664         (WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
49665         (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
49666         (WebCore::ScrollingCoordinatorChromium::recomputeWheelEventHandlerCountForFrameView):
49667         * page/scrolling/chromium/ScrollingCoordinatorChromium.h: Added.
49668         (WebCore):
49669         (ScrollingCoordinatorChromium):
49670         (WebCore::ScrollingCoordinatorChromium::supportsFixedPositionLayers):
49671         * page/scrolling/mac/ScrollingCoordinatorMac.h: Added.
49672         (WebCore):
49673         (ScrollingCoordinatorMac):
49674         (ScrollParameters):
49675         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
49676         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
49677         (WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
49678         (WebCore::ScrollingCoordinatorMac::pageDestroyed):
49679         (WebCore):
49680         (WebCore::ScrollingCoordinatorMac::scrollingTree):
49681         (WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
49682         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
49683         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
49684         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
49685         (WebCore::ScrollingCoordinatorMac::frameViewHorizontalScrollbarLayerDidChange):
49686         (WebCore::ScrollingCoordinatorMac::frameViewVerticalScrollbarLayerDidChange):
49687         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
49688         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
49689         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition):
49690         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
49691         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
49692         (WebCore::ScrollingCoordinatorMac::clearStateTree):
49693         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
49694         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
49695         (WebCore::ScrollingCoordinatorMac::setScrollLayerForNode):
49696         (WebCore::ScrollingCoordinatorMac::setNonFastScrollableRegionForNode):
49697         (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
49698         (WebCore::ScrollingCoordinatorMac::setWheelEventHandlerCountForNode):
49699         (WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
49700         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollLayerPosition):
49701         (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
49702         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):
49703         (WebCore::ScrollingCoordinatorMac::commitTreeState):
49704
49705 2012-10-11  Takashi Sakamoto  <tasak@google.com>
49706
49707         [Shadow DOM] Insertion points need resetStyleInheritance
49708         https://bugs.webkit.org/show_bug.cgi?id=93922
49709
49710         Reviewed by Dimitri Glazkov.
49711
49712         Implemented resetStyleInheritance of insertion points.
49713         Its spec link is http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-html-content-element-reset-style-inheritance
49714
49715         Test: fast/dom/shadow/insertion-point-resetStyleInheritance.html
49716
49717         * css/StyleResolver.cpp:
49718         (WebCore::isResetStyleInheritance):
49719         Added a new function to check whether there exists any insertion
49720         point which has reset-style-inhertiance flag set to be true.
49721         (WebCore::StyleResolver::initForStyleResolve):
49722         Modified to use the above function to check reset-style-inheritance.
49723         * html/shadow/HTMLContentElement.idl:
49724         * html/shadow/HTMLShadowElement.idl:
49725         Added a new attribute for reset-style-inheritance.
49726         * html/shadow/InsertionPoint.cpp:
49727         (WebCore::InsertionPoint::InsertionPoint):
49728         Initialized a new member variable for reset-style-inheritance.
49729         (WebCore::InsertionPoint::resetStyleInheritance):
49730         (WebCore::InsertionPoint::setResetStyleInheritance):
49731         Implemented setter/getter for reset-style-inheritance.
49732         * html/shadow/InsertionPoint.h:
49733         (InsertionPoint):
49734         Added a new member variable for reset-style-inheritance.
49735
49736 2012-10-11  Anders Carlsson  <andersca@apple.com>
49737
49738         Attempt to fix build broken by r131125.
49739
49740         * page/PageSerializer.cpp:
49741         (WebCore::PageSerializer::addImageToResources):
49742         KURL::utf8String() is apparently a USE(GOOGLEURL) feature. Call url.string().utf8() instead.
49743
49744 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49745
49746         [Chromium] Use harfbuzz-ng by default on Linux
49747         https://bugs.webkit.org/show_bug.cgi?id=97281
49748
49749         Reviewed by Tony Chang.
49750
49751         Switch old harfbuzz to harfbuzz-ng on chromium linux port.
49752
49753         No new tests. Existing tests should cover this switch.
49754         Test expectations will be updated.
49755
49756         * WebCore.gyp/WebCore.gyp:
49757
49758 2012-10-11  Nat Duca  <nduca@chromium.org>
49759
49760         Expose high-resolution on requestAnimationFrame callback
49761         https://bugs.webkit.org/show_bug.cgi?id=66683
49762
49763         This changes requestAnimationFrame's animationStartTime argument
49764         to be a high resolution DOM timestamp, per disucssion here:
49765         http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
49766
49767         Reviewed by James Robinson.
49768
49769         Covered by existing requestAnimationFrame tests.
49770
49771         * dom/Document.cpp:
49772         (WebCore::Document::serviceScriptedAnimations):
49773         * dom/Document.h:
49774         (Document):
49775         * dom/ScriptedAnimationController.cpp:
49776         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
49777         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
49778         (WebCore):
49779         (WebCore::ScriptedAnimationController::windowScreenDidChange):
49780         (WebCore::ScriptedAnimationController::scheduleAnimation):
49781         (WebCore::ScriptedAnimationController::animationTimerFired):
49782         (WebCore::ScriptedAnimationController::displayRefreshFired):
49783         * dom/ScriptedAnimationController.h:
49784         (ScriptedAnimationController):
49785         * page/FrameView.cpp:
49786         (WebCore::FrameView::serviceScriptedAnimations):
49787         * page/FrameView.h:
49788         (FrameView):
49789         * platform/graphics/DisplayRefreshMonitor.cpp:
49790         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
49791         (WebCore::DisplayRefreshMonitor::notifyClients):
49792         * platform/graphics/DisplayRefreshMonitor.h:
49793         (DisplayRefreshMonitor):
49794         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
49795         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49796         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
49797         (WebCore):
49798         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
49799         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49800
49801 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49802
49803         Unreviewed, rolling out r131100.
49804         http://trac.webkit.org/changeset/131100
49805         https://bugs.webkit.org/show_bug.cgi?id=99127
49806
49807         Caused an ASSERT (Requested by abarth|gardening on #webkit).
49808
49809         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
49810         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
49811
49812 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49813
49814         [Chromium] Improve vertical text rendering of HarfBuzzShaper (Re-land)
49815         https://bugs.webkit.org/show_bug.cgi?id=98979
49816
49817         Reviewed by Tony Chang.
49818
49819         - Specify 'vert' and 'vrt2' features when we render vertical text.
49820         - Set appropriate script so that harfbuzz-ng can use the features.
49821
49822         No new tests. fast/text/international/text-spliced-font.html should cover this change.
49823         This change will affect after switching to harfbuzz-ng.
49824
49825         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49826         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49827         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
49828         (WebCore):
49829         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
49830         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49831         (HarfBuzzNGFace): Added m_scriptForVerticalText.
49832         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49833         (WebCore::HarfBuzzShaper::setFontFeatures):
49834         Set 'vert' and 'vrt2' features when orientation() == Vertical.
49835         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49836         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
49837
49838 2012-10-11  Jay Civelli  <jcivelli@chromium.org>
49839
49840         Fix for a crasher when generating MHTML for a page containing SVG images.
49841         https://bugs.webkit.org/show_bug.cgi?id=99105
49842
49843         Reviewed by Adam Barth.
49844
49845         * page/PageSerializer.cpp:
49846         (WebCore::PageSerializer::serializeCSSStyleSheet):
49847         (WebCore::PageSerializer::addImageToResources):
49848
49849 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49850
49851         Unreviewed, rolling out r131107.
49852         http://trac.webkit.org/changeset/131107
49853         https://bugs.webkit.org/show_bug.cgi?id=99126
49854
49855         Causes an ASSERT (Requested by abarth|gardening on #webkit).
49856
49857         * accessibility/AccessibilityNodeObject.cpp:
49858         (WebCore::AccessibilityNodeObject::labelForElement):
49859         * dom/DocumentOrderedMap.cpp:
49860         * dom/DocumentOrderedMap.h:
49861         (DocumentOrderedMap):
49862         * dom/Element.cpp:
49863         (WebCore::Element::insertedInto):
49864         (WebCore::Element::removedFrom):
49865         (WebCore):
49866         (WebCore::Element::willModifyAttribute):
49867         * dom/Element.h:
49868         (Element):
49869         * dom/TreeScope.cpp:
49870         (WebCore::TreeScope::TreeScope):
49871         * dom/TreeScope.h:
49872         (WebCore):
49873         (TreeScope):
49874
49875 2012-10-11  Tim Horton  <timothy_horton@apple.com>
49876
49877         LocalCurrentGraphicsContext will never restore the current context to null
49878         https://bugs.webkit.org/show_bug.cgi?id=99122
49879
49880         Reviewed by Simon Fraser.
49881
49882         LocalCurrentGraphicsContext is meant to cause temporary changes to
49883         NSGraphicsContext's currentContext. However, if it is entered when
49884         currentContext is null, it will not restore to null, as a null
49885         m_savedNSGraphicsContext was being used to indicate that the current and
49886         passed-in graphics contexts were equal (and thus no save/restore was required).
49887
49888         Add a separate flag for whether or not we need to restore the context.
49889
49890         Also flip the order of calls to restore graphics context state so that
49891         exiting LocalCurrentGraphicsContext does things in exactly the opposite
49892         of entry.
49893
49894         * platform/mac/LocalCurrentGraphicsContext.h:
49895         (LocalCurrentGraphicsContext):
49896         * platform/mac/LocalCurrentGraphicsContext.mm:
49897         (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
49898         (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
49899
49900 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49901
49902         Unreviewed, rolling out r131109.
49903         http://trac.webkit.org/changeset/131109
49904         https://bugs.webkit.org/show_bug.cgi?id=99124
49905
49906         Does not compile on chromium-mac (Requested by
49907         abarth|gardening on #webkit).
49908
49909         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49910         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49911         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49912         (HarfBuzzNGFace):
49913         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49914         (WebCore::HarfBuzzShaper::setFontFeatures):
49915         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49916
49917 2012-10-11  Beth Dakin  <bdakin@apple.com>
49918
49919         https://bugs.webkit.org/show_bug.cgi?id=99111
49920         ScrollingStateNode should keep its Vector of children in an OwnPtr
49921
49922         Reviewed by Ada Chan.
49923
49924         Vector<OwnPtr<ScrollingStateNode> >* m_children; is now:
49925          OwnPtr<Vector<OwnPtr<ScrollingStateNode> > > m_children;
49926         * page/scrolling/ScrollingStateNode.cpp:
49927         (WebCore::ScrollingStateNode::ScrollingStateNode):
49928         (WebCore::ScrollingStateNode::~ScrollingStateNode):
49929         (WebCore::ScrollingStateNode::appendChild):
49930         * page/scrolling/ScrollingStateNode.h:
49931         (ScrollingStateNode):
49932
49933 2012-10-11  Levi Weintraub  <leviw@chromium.org>
49934
49935         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
49936         https://bugs.webkit.org/show_bug.cgi?id=98571
49937
49938         Reviewed by Emil A Eklund.
49939
49940         Refactoring all coordinate-switching functionality to use a single "mode" flag
49941         as opposed to having a bunch of boolean values. This enables the same set of
49942         options across the board, and a consistent interface. This was previously
49943         done for mapLocalToContainer.
49944
49945         The imptetus for this for this stems from the one logical change in this patch
49946         which only effects sub-pixel layout. FrameView::convertToRenderer and
49947         convertFromRenderer return IntPoint coordinates, and need to also snap transform
49948         offsets to determine proper rects for scrolling.
49949
49950         Unlabeled functions below are simply being updated to these new interfaces.
49951
49952         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
49953
49954         * WebCore.exp.in:
49955         * dom/ContainerNode.cpp:
49956         (WebCore::ContainerNode::getUpperLeftCorner):
49957         (WebCore::ContainerNode::getLowerRightCorner):
49958         * dom/Element.cpp:
49959         (WebCore::Element::boundsInRootViewSpace):
49960         * dom/MouseRelatedEvent.cpp:
49961         (WebCore::MouseRelatedEvent::computeRelativePosition):
49962         * dom/Node.cpp:
49963         (WebCore::Node::convertToPage):
49964         (WebCore::Node::convertFromPage):
49965         * html/HTMLSelectElement.cpp:
49966         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
49967         * html/shadow/SliderThumbElement.cpp:
49968         (WebCore::SliderThumbElement::setPositionFromPoint):
49969         * html/shadow/SpinButtonElement.cpp:
49970         (WebCore::SpinButtonElement::defaultEventHandler):
49971         * page/FrameView.cpp:
49972         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
49973         them to TransformState, which transforms the coordinates.
49974         (WebCore::FrameView::convertFromRenderer): Ditto.
49975         * rendering/LayoutState.cpp:
49976         (WebCore::LayoutState::LayoutState):
49977         * rendering/RenderBlock.cpp:
49978         (WebCore::RenderBlock::absoluteQuads):
49979         * rendering/RenderBox.cpp:
49980         (WebCore::RenderBox::absoluteQuads):
49981         (WebCore::RenderBox::mapLocalToContainer):
49982         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
49983         * rendering/RenderBox.h:
49984         (RenderBox):
49985         * rendering/RenderBoxModelObject.cpp:
49986         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
49987         * rendering/RenderBoxModelObject.h:
49988         (RenderBoxModelObject):
49989         * rendering/RenderEmbeddedObject.cpp:
49990         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
49991         * rendering/RenderFrameSet.cpp:
49992         (WebCore::RenderFrameSet::userResize):
49993         * rendering/RenderGeometryMap.cpp:
49994         (WebCore::RenderGeometryMap::absolutePoint):
49995         * rendering/RenderInline.cpp:
49996         (WebCore::RenderInline::mapLocalToContainer):
49997         * rendering/RenderInline.h:
49998         (RenderInline):
49999         * rendering/RenderLayer.cpp:
50000         (WebCore::RenderLayer::absoluteToContents):
50001         (WebCore::RenderLayer::calculateClipRects):
50002         * rendering/RenderMediaControls.cpp:
50003         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
50004         * rendering/RenderMenuList.cpp:
50005         (WebCore::RenderMenuList::showPopup):
50006         * rendering/RenderObject.cpp:
50007         (WebCore::RenderObject::localToAbsolute):
50008         (WebCore::RenderObject::absoluteToLocal):
50009         (WebCore::RenderObject::mapLocalToContainer):
50010         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
50011         (WebCore::RenderObject::localToContainerQuad):
50012         (WebCore::RenderObject::localToContainerPoint):
50013         * rendering/RenderObject.h:
50014         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
50015         now used for other conversion methods.
50016         (WebCore::RenderObject::localToAbsoluteQuad):
50017         * rendering/RenderTheme.cpp:
50018         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
50019         * rendering/RenderView.cpp:
50020         (WebCore::RenderView::mapLocalToContainer):
50021         (WebCore::RenderView::mapAbsoluteToLocalPoint):
50022         * rendering/RenderView.h:
50023         (RenderView):
50024         * rendering/svg/RenderSVGForeignObject.cpp:
50025         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
50026         * rendering/svg/RenderSVGForeignObject.h:
50027         (RenderSVGForeignObject):
50028         * rendering/svg/RenderSVGInline.cpp:
50029         (WebCore::RenderSVGInline::mapLocalToContainer):
50030         * rendering/svg/RenderSVGInline.h:
50031         (RenderSVGInline):
50032         * rendering/svg/RenderSVGModelObject.cpp:
50033         (WebCore::RenderSVGModelObject::mapLocalToContainer):
50034         * rendering/svg/RenderSVGModelObject.h:
50035         (RenderSVGModelObject):
50036         * rendering/svg/RenderSVGRoot.cpp:
50037         (WebCore::RenderSVGRoot::mapLocalToContainer):
50038         * rendering/svg/RenderSVGRoot.h:
50039         (RenderSVGRoot):
50040         * rendering/svg/RenderSVGText.cpp:
50041         (WebCore::RenderSVGText::mapLocalToContainer):
50042         * rendering/svg/RenderSVGText.h:
50043         (RenderSVGText):
50044         * rendering/svg/SVGRenderSupport.cpp:
50045         (WebCore::SVGRenderSupport::mapLocalToContainer):
50046         * svg/SVGSVGElement.cpp:
50047         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
50048
50049 2012-10-11  Adam Barth  <abarth@webkit.org>
50050
50051         Incorrect/Illegal static cast in FrameView.cpp
50052         https://bugs.webkit.org/show_bug.cgi?id=98943
50053
50054         Reviewed by Eric Seidel.
50055
50056         HTMLFrameElementBase is the common base class for <frame> and <iframe>.
50057
50058         * page/FrameView.cpp:
50059         (WebCore::FrameView::init):
50060
50061 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
50062
50063         [Chromium] Improve vertical text rendering of HarfBuzzShaper
50064         https://bugs.webkit.org/show_bug.cgi?id=98979
50065
50066         Reviewed by Tony Chang.
50067
50068         - Specify 'vert' and 'vrt2' features when we render vertical text.
50069         - Set appropriate script so that harfbuzz-ng can use the features.
50070
50071         No new tests. fast/text/international/text-spliced-font.html should cover this change.
50072         This change will affect after switching to harfbuzz-ng.
50073
50074         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
50075         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
50076         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
50077         (WebCore):
50078         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
50079         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
50080         (HarfBuzzNGFace): Added m_scriptForVerticalText.
50081         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
50082         (WebCore::HarfBuzzShaper::setFontFeatures):
50083         Set 'vert' and 'vrt2' features when orientation() == Vertical.
50084         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
50085         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
50086
50087 2012-10-11  Dominic Mazzoni  <dmazzoni@google.com>
50088
50089         AX: labelForElement is slow when there are a lot of DOM elements
50090         https://bugs.webkit.org/show_bug.cgi?id=97825
50091
50092         Reviewed by Ryosuke Niwa.
50093
50094         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
50095         quickly map from an id to the label for that id. This speeds up
50096         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
50097         when accessibility was on.
50098
50099         Tests: accessibility/title-ui-element-correctness.html
50100                perf/accessibility-title-ui-element.html
50101
50102         * accessibility/AccessibilityNodeObject.cpp:
50103         (WebCore::AccessibilityNodeObject::labelForElement):
50104         * dom/DocumentOrderedMap.cpp:
50105         (WebCore::keyMatchesLabelForAttribute):
50106         (WebCore):
50107         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
50108         * dom/DocumentOrderedMap.h:
50109         (DocumentOrderedMap):
50110         * dom/Element.cpp:
50111         (WebCore::Element::insertedInto):
50112         (WebCore::Element::removedFrom):
50113         (WebCore::Element::updateLabel):
50114         (WebCore):
50115         (WebCore::Element::willModifyAttribute):
50116         * dom/Element.h:
50117         (Element):
50118         * dom/TreeScope.cpp:
50119         (WebCore::TreeScope::TreeScope):
50120         (WebCore::TreeScope::addLabel):
50121         (WebCore):
50122         (WebCore::TreeScope::removeLabel):
50123         (WebCore::TreeScope::labelElementForId):
50124         * dom/TreeScope.h:
50125         (WebCore):
50126         (TreeScope):
50127         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
50128
50129 2012-10-11  James Simonsen  <simonjam@chromium.org>
50130
50131         unprefix window.performance.webkitNow()
50132         https://bugs.webkit.org/show_bug.cgi?id=88278
50133
50134         Reviewed by Tony Gentilcore.
50135
50136         Test: fast/dom/Window/window-properties-performance.html
50137               fast/performance/performance-now-timestamps.html
50138
50139         * page/Performance.cpp:
50140         (WebCore::Performance::now):
50141         * page/Performance.h:
50142         (Performance):
50143         * page/Performance.idl:
50144
50145 2012-10-11  Roger Fong  <roger_fong@apple.com>
50146
50147         [WebGL] [Mac] only the mapped symbol for the first element of a uniform/attribute array is stored.
50148         https://bugs.webkit.org/show_bug.cgi?id=98966
50149
50150         Reviewed by Dean Jackson.
50151
50152         We currently do not add name/mappedName symbol pairs for each element of a uniform/attribute array.
50153         This is because we only add a number of symbols equal to how many symbols the shader compiler tells us there are.
50154         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.
50155         The mappedName of each array element is the same between elements except for the "[index]" at the end so this is easy to do.
50156
50157         Tested using Khronos WebGL conformance suite:
50158         conformance/glsl/misc/glsl-long-variable-names.html
50159
50160         * platform/graphics/ANGLEWebKitBridge.cpp:
50161         (WebCore::getSymbolInfo):
50162
50163 2012-10-11  Andreas Kling  <kling@webkit.org>
50164
50165         ElementAttributeData shouldn't be managing Element's callbacks.
50166         <http://webkit.org/b/98987>
50167
50168         Reviewed by Anders Carlsson.
50169
50170         Dispatch the following attribute-related Element callbacks from within Element
50171         instead of ElementAttributeData. Also made them private.
50172
50173             - willModifyAttribute
50174             - didModifyAttribute
50175             - didAddAttribute
50176             - didRemoveAttribute
50177
50178         No behavior change, just making ElementAttributeData a bit dumber (a good thing.)
50179
50180         * dom/Element.cpp:
50181         (WebCore::Element::detachAttribute):
50182         (WebCore::Element::removeAttribute):
50183         (WebCore::Element::setAttributeInternal):
50184         (WebCore::Element::removeAttributeInternal):
50185         (WebCore::Element::addAttributeInternal):
50186         * dom/Element.h:
50187         * dom/ElementAttributeData.cpp:
50188         (WebCore::ElementAttributeData::addAttribute):
50189         (WebCore::ElementAttributeData::removeAttribute):
50190         * dom/ElementAttributeData.h:
50191
50192 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50193
50194         [CSS Shaders] Make custom filters use a premultiplied buffer.
50195         https://bugs.webkit.org/show_bug.cgi?id=98396
50196
50197         Reviewed by Dean Jackson.
50198
50199         Currently, a GLSL css_Composite function returns a premultiplied color, so
50200         FECustomFilter must make a premultiplied buffer in the case when an author is
50201         using the CSS mix function.
50202
50203         In addition, there are two performance benefits when FECustomFilter uses a premultiplied buffer.
50204         1. FilterEffect::asImageBuffer is faster.
50205         2. In the future when Accelerated Compositing implementations use
50206         FECustomFilter, they do not need to convert an unmultiplied buffer to a
50207         premultiplied buffer.
50208
50209         Test: css3/filters/custom/custom-filter-composite-fractional-source-alpha.html
50210
50211         * platform/graphics/filters/FECustomFilter.cpp:
50212         (WebCore::FECustomFilter::applyShader):
50213
50214 2012-10-11  Rob Buis  <rbuis@rim.com>
50215
50216         [CMAKE] Do not add include dirs twice
50217         https://bugs.webkit.org/show_bug.cgi?id=99099
50218
50219         Reviewed by Yong Li.
50220
50221         Do not add WebCore_INCLUDE_DIRECTORIES to WebCoreTestSupport_INCLUDE_DIRECTORIES, the includes_directory
50222         call does this for us.
50223
50224         * CMakeLists.txt:
50225
50226 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50227
50228         [CSS Shaders] Implement all composite operators except destination and lighter.
50229         https://bugs.webkit.org/show_bug.cgi?id=97859
50230
50231         Reviewed by Dean Jackson.
50232
50233         Add expressions for all composite operators except destination and
50234         lighter. The expressions are lifted directly from the CSS Compositing
50235         and Blending spec [1]. WebKit adds these compositing expressions to the
50236         author's shader.
50237
50238         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
50239
50240         Test: css3/filters/custom/custom-filter-composite-operators.html
50241
50242         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
50243         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
50244
50245 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50246
50247         IndexedDB: IDL types defined in spec should be visible to scripts
50248         https://bugs.webkit.org/show_bug.cgi?id=99093
50249
50250         Reviewed by Adam Barth.
50251
50252         Interfaces defined in the spec WebIDL, such as IDBCursorWithValue, should be exposed
50253         to scripts as properties of the global object. A few types were missing - add them.
50254
50255         Test: storage/indexeddb/interfaces.html
50256
50257         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
50258         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
50259
50260 2012-10-11  Geoffrey Garen  <ggaren@apple.com>
50261
50262         Removed ASSERT_CLASS_FITS_IN_CELL
50263         https://bugs.webkit.org/show_bug.cgi?id=97634
50264
50265         Reviewed by Mark Hahnenberg.
50266
50267         * bindings/js/JSDOMWindowShell.cpp:
50268         (WebCore):
50269         * bindings/js/JSImageConstructor.cpp:
50270         (WebCore):
50271         * bindings/js/JSNodeFilterCondition.cpp:
50272         (WebCore):
50273         * bindings/js/JSWorkerContextBase.cpp:
50274         (WebCore):
50275         * bindings/scripts/CodeGeneratorJS.pm:
50276         (GenerateImplementation):
50277         * bindings/scripts/test/JS/JSFloat64Array.cpp:
50278         (WebCore):
50279         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
50280         (WebCore):
50281         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
50282         (WebCore):
50283         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
50284         (WebCore):
50285         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
50286         (WebCore):
50287         * bindings/scripts/test/JS/JSTestException.cpp:
50288         (WebCore):
50289         * bindings/scripts/test/JS/JSTestInterface.cpp:
50290         (WebCore):
50291         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
50292         (WebCore):
50293         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
50294         (WebCore):
50295         * bindings/scripts/test/JS/JSTestNode.cpp:
50296         (WebCore):
50297         * bindings/scripts/test/JS/JSTestObj.cpp:
50298         (WebCore):
50299         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
50300         (WebCore):
50301         * bridge/runtime_method.cpp:
50302         (JSC):
50303
50304 2012-10-10  Brady Eidson  <beidson@apple.com>
50305
50306         Switch ResourceLoader::resourceData() from SharedBuffer to ResourceBuffer
50307         https://bugs.webkit.org/show_bug.cgi?id=98976
50308
50309         Reviewed by Anders Carlsson.
50310
50311         No new tests (No change in behavior).
50312
50313         * WebCore.exp.in:
50314         * html/ImageDocument.cpp:
50315         (WebCore::ImageDocumentParser::appendBytes):
50316         (WebCore::ImageDocumentParser::finish):
50317         * inspector/InspectorPageAgent.cpp:
50318         (WebCore::InspectorPageAgent::mainResourceContent):
50319         (WebCore::InspectorPageAgent::sharedBufferContent):
50320         (WebCore):
50321         (WebCore::InspectorPageAgent::dataContent):
50322         * inspector/InspectorPageAgent.h:
50323         * inspector/InspectorResourceAgent.cpp:
50324         (WebCore::InspectorResourceAgent::didFinishLoading):
50325         (WebCore::InspectorResourceAgent::didFailLoading):
50326         * loader/DocumentLoader.cpp:
50327         (WebCore::DocumentLoader::mainResourceData):
50328         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
50329         (WebCore::DocumentLoader::maybeCreateArchive):
50330         (WebCore::DocumentLoader::mainResource):
50331         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent):
50332         * loader/DocumentLoader.h:
50333         (WebCore):
50334         (DocumentLoader):
50335         * loader/ResourceBuffer.cpp:
50336         (WebCore::ResourceBuffer::append):
50337         (WebCore):
50338         (WebCore::ResourceBuffer::clear):
50339         * loader/ResourceBuffer.h:
50340         (ResourceBuffer):
50341         * loader/ResourceLoader.cpp:
50342         (WebCore::ResourceLoader::resourceData):
50343         (WebCore::ResourceLoader::addData):
50344         (WebCore::ResourceLoader::willStopBufferingData):
50345         * loader/ResourceLoader.h:
50346         (WebCore):
50347         (ResourceLoader):
50348         * loader/SubresourceLoader.cpp:
50349         (WebCore::SubresourceLoader::didReceiveResponse):
50350         (WebCore::SubresourceLoader::sendDataToResource):
50351         (WebCore::SubresourceLoader::didFinishLoading):
50352         * loader/appcache/ApplicationCacheGroup.cpp:
50353         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
50354
50355 2012-10-11  Konrad Piascik  <kpiascik@rim.com>
50356
50357         Web Inspector: node search does not work with elements on touch start listener
50358         https://bugs.webkit.org/show_bug.cgi?id=95252
50359
50360         Reviewed by Pavel Feldman.
50361
50362         Added new InspectorInstrumentation::handleTouchEvent() method which
50363         will prevent a touch handler from firing and inspect and element if we
50364         are already searching for a node to highlight.
50365         Now when a user has chosen to inspect element (magnifying glass icon)
50366         and touches on a page the event will be directed to inspector and
50367         handled appropriately.
50368
50369         Not testable.
50370
50371         * inspector/InspectorDOMAgent.cpp:
50372         (WebCore::InspectorDOMAgent::handleTouchEvent):
50373         (WebCore):
50374         * inspector/InspectorDOMAgent.h:
50375         (InspectorDOMAgent):
50376         * inspector/InspectorInstrumentation.cpp:
50377         (WebCore):
50378         (WebCore::InspectorInstrumentation::handleTouchEventImpl):
50379         * inspector/InspectorInstrumentation.h:
50380         (InspectorInstrumentation):
50381         (WebCore::InspectorInstrumentation::handleTouchEvent):
50382         (WebCore):
50383         * page/EventHandler.cpp:
50384         (WebCore::EventHandler::handleTouchEvent):
50385
50386 2012-10-11  Otto Derek Cheung  <otcheung@rim.com>
50387
50388         [BlackBerry] Credentials for HTTPS urls are saved in the HTTP protection space
50389         https://bugs.webkit.org/show_bug.cgi?id=99082
50390
50391         Reviewed by Rob Buis.
50392
50393         Adding support for secure ProtectionSpaces in Credentials
50394         to prevent credentials from being overwritten/used when the user
50395         accesses both versions of the same url.
50396
50397         PR 199457
50398
50399         The issue was the secure/non-secure version of the same protocol
50400         were using the same ProtectionSpace enum in the network stack. When
50401         the credentials are saved, it will overwrite each other since the
50402         protection object is identical.
50403
50404         The fix is to use the WebKit provided secure enums when the protcol is secure.
50405
50406         To test this, access a restricted site that is running on http. Save the
50407         password and access the same restricted site (same domain
50408         and path) but on https. The browser should prompt for credentials.
50409
50410         * platform/network/blackberry/NetworkJob.cpp:
50411         (WebCore::NetworkJob::notifyAuthReceived):
50412         (WebCore::NetworkJob::handleFTPHeader):
50413         (WebCore::NetworkJob::sendRequestWithCredentials):
50414         (WebCore::NetworkJob::storeCredentials):
50415         * platform/network/blackberry/NetworkManager.cpp:
50416         (WebCore::NetworkManager::startJob):
50417
50418 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50419
50420         [texmap] logic error in BitmapTextureGL::updateContents
50421         https://bugs.webkit.org/show_bug.cgi?id=98969
50422
50423         Reviewed by Noam Rosenthal.
50424
50425         Incorrect test (bytesPerLine == targetRect.width() / 4) never
50426         evaluates to true. Change it to correct test 
50427         (bytesPerLine == targetRect.width() * 4)
50428
50429         No new tests because no functional change.
50430
50431         * platform/graphics/texmap/TextureMapperGL.cpp:
50432         (WebCore::BitmapTextureGL::updateContents):
50433
50434 2012-10-11  Dan Bernstein  <mitz@apple.com>
50435
50436         <rdar://problem/12477191> Combined text reverts to full-width font after a style change
50437         https://bugs.webkit.org/show_bug.cgi?id=99009
50438
50439         Reviewed by John Sullivan.
50440
50441         Test: fast/text/text-combine-width-after-style-change.html
50442
50443         * rendering/RenderCombineText.cpp:
50444         (WebCore::RenderCombineText::styleDidChange): Changed to reset m_isCombined to false, to
50445         ensure that combineText() is called on the next layout.
50446
50447 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50448
50449         accelerated compositing does not work with ati driver
50450         https://bugs.webkit.org/show_bug.cgi?id=97472
50451
50452         Reviewed by Martin Robinson.
50453
50454         Create m_parentWindow at positive position. Otherwise, parts of it are
50455         not displayed on ati drivers.
50456
50457         Covered by existing tests.
50458
50459         * platform/gtk/RedirectedXCompositeWindow.cpp:
50460         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
50461
50462 2012-10-11  Jaehun Lim  <ljaehun.lim@samsung.com>
50463
50464         Fix JPEG decoding faiure when IMAGE_DECODER_DOWN_SAMPLING is enabled
50465         https://bugs.webkit.org/show_bug.cgi?id=98878
50466
50467         Reviewed by Kenneth Russell.
50468
50469         When using libjpeg-turbo and enabling IMAGE_DECODER_DOWN_SAMPLING,
50470         JPEG decoding failed because of no support for JCS_EXT_RGBA, JCS_EXT_BGRA.
50471         Set RGBA values when color space is JCS_EXT_RGBA or JCS_EXT_BGRA.
50472
50473         No new tests.
50474
50475         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
50476         (WebCore::JPEGImageDecoder::outputScanlines):
50477
50478 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50479
50480         Web Inspector: Preview HTML in ajax responses in network panel
50481         https://bugs.webkit.org/show_bug.cgi?id=99066
50482
50483         Reviewed by Yury Semikhatsky.
50484
50485         HTML preview is now shown for XHR responses with text/html mime types.
50486         Also RequestHTMLView is refactored to use sandbox iframe correctly.
50487         Also extracted a method to generate dataURL from resource/request content.
50488
50489         * inspector/front-end/NetworkRequest.js:
50490         (WebInspector.NetworkRequest):
50491         (WebInspector.NetworkRequest.prototype.populateImageSource):
50492         (WebInspector.NetworkRequest.prototype.asDataURL):
50493         * inspector/front-end/RequestHTMLView.js:
50494         (WebInspector.RequestHTMLView):
50495         (WebInspector.RequestHTMLView.prototype._createIFrame):
50496         * inspector/front-end/RequestPreviewView.js:
50497         (WebInspector.RequestPreviewView.prototype._createPreviewView):
50498         * inspector/front-end/Resource.js:
50499         (WebInspector.Resource.prototype.populateImageSource):
50500         * inspector/front-end/ResourceUtils.js:
50501         (WebInspector.contentAsDataURL):
50502
50503 2012-10-11  Christophe Dumez  <christophe.dumez@intel.com>
50504
50505         Regression(r131058): Broke EFL build
50506         https://bugs.webkit.org/show_bug.cgi?id=99079
50507
50508         Unreviewed build fix.
50509
50510         Use iterator::value instead of iterator::second to fix
50511         build break after r131058.
50512
50513         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
50514         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50515
50516 2012-10-11  Mihai Balan  <mibalan@adobe.com>
50517
50518         Always enable the experiments tab for WebKit nightly
50519
50520         Web Inspector: Enabling experiments tab in WebKit nightly.
50521         https://bugs.webkit.org/show_bug.cgi?id=98923
50522
50523         Reviewed by Pavel Feldman.
50524
50525         Enabling Web Inspector experiments tab in WebKit nightly. This is done by adding a new
50526         Preference key, Preferences.experimentsEnabled. Default values are true for WebKit and false
50527         for Chromium. They can also be overridden as before (in Chromium)
50528
50529         * inspector/front-end/Settings.js:
50530         (WebInspector.ExperimentsSettings.prototype.get experimentsEnabled):
50531
50532 2012-10-11  Hayato Ito  <hayato@chromium.org>
50533
50534         Support re-projection for Shadow DOM.
50535         https://bugs.webkit.org/show_bug.cgi?id=97151
50536
50537         Reviewed by Dimitri Glazkov.
50538
50539         Update node distribution algorithm so that nodes can be re-projected to insertion points
50540         in nested shadow subtree.
50541
50542         See the latest Shadow DOM spec for what 're-projected' means:
50543         - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html
50544         Also see the related W3C bug:
50545         - http://www.w3.org/Bugs/Public/show_bug.cgi?id=18513
50546
50547         Since this change breaks existing behavior, we have to update several code at once, which includes:
50548         - ContentDistributer: ContentDistributor now re-projects distributed nodes.
50549         - ComposedShadowTreeWalker: ComposedShadowTreeWalker is now aware of re-projection. That can
50550           resolve re-projection transparently.
50551         - AncestorChainWalker (formerly named ComposedShadowTreeParentWallker):
50552           AncestorChainWalker is now aware of re-projection. I've also added a crossingInsertionPoint()
50553           member function so that clients of the walker can know whether the walker is just crossing
50554           insertion points for a re-projected node.
50555         - EventDispatcher: EventDispatcher now uses the updated AncestorChainWalker and its
50556           crossingInsertionPoint() so that EventDispatcher can compute relative target for each ancestor correctly.
50557
50558         I've also updated existing layout tests and added some layout tests for re-projection.
50559         Re-projection for multiple shadow root is not supported yet. I'll address that in another bug.
50560
50561         Tests: fast/dom/shadow/composed-shadow-tree-walker.html
50562                fast/dom/shadow/shadow-dom-event-dispatching.html
50563                fast/dom/shadow/shadowdom-reprojection-1.html
50564                fast/dom/shadow/shadowdom-reprojection-2.html
50565
50566         * dom/ComposedShadowTreeWalker.cpp:
50567         (WebCore::resolveReprojection):
50568         (WebCore):
50569         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
50570         (WebCore::ComposedShadowTreeWalker::traverseParent):
50571         (WebCore::AncestorChainWalker::AncestorChainWalker):
50572         (WebCore::AncestorChainWalker::parent):
50573         * dom/ComposedShadowTreeWalker.h:
50574         (AncestorChainWalker):
50575         (WebCore::AncestorChainWalker::crossingInsertionPoint):
50576         * dom/EventDispatcher.cpp:
50577         (WebCore::EventRelatedTargetAdjuster::adjust):
50578         (WebCore::EventDispatcher::ensureEventAncestors):
50579         * dom/TreeScope.cpp:
50580         (WebCore::TreeScope::focusedNode):
50581         * html/HTMLLIElement.cpp:
50582         (WebCore::HTMLLIElement::attach):
50583         * html/shadow/ContentDistributor.cpp:
50584         (WebCore::ContentDistributor::distribute):
50585         * page/EventHandler.cpp:
50586         (WebCore::EventHandler::updateMouseEventTargetNode):
50587
50588 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50589
50590         Make ContentSelectorQuery work when siblings are passed explicitly.
50591         https://bugs.webkit.org/show_bug.cgi?id=96990
50592
50593         Reviewed by Dimitri Glazkov.
50594
50595         When we implement content reprojection in ShadowDOM, we have to pass a node pool to SelectorChecker.
50596         We introdue ShadowDOMSiblingTraversalStrategy, which traverses a node pool instead of real node siblings.
50597
50598         Since ContentSelector is a very hot place, we don't want to regress performance. In the previous patch,
50599         we've make ContentSelector::checkOneSelector template to take SiblingTraversalStrategy as an argument.
50600
50601         We also move DOMSiblingTraversalStrategy to SiblingTraversalStrategies.h.
50602
50603         * GNUmakefile.list.am:
50604         * Target.pri:
50605         * WebCore.gypi:
50606         * WebCore.vcproj/WebCore.vcproj:
50607         * WebCore.xcodeproj/project.pbxproj:
50608         * css/SelectorChecker.cpp:
50609         (WebCore):
50610         * css/SelectorChecker.h:
50611         * css/SiblingTraversalStrategies.h: Added.
50612         (WebCore):
50613         (DOMSiblingTraversalStrategy): Moved from SelectorChecker.
50614         (WebCore::DOMSiblingTraversalStrategy::isFirstChild):
50615         (WebCore::DOMSiblingTraversalStrategy::isLastChild):
50616         (WebCore::DOMSiblingTraversalStrategy::isFirstOfType):
50617         (WebCore::DOMSiblingTraversalStrategy::isLastOfType):
50618         (WebCore::DOMSiblingTraversalStrategy::countElementsBefore):
50619         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50620         (WebCore::DOMSiblingTraversalStrategy::countElementsAfter):
50621         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50622         (WebCore::ShadowDOMSiblingTraversalStrategy::ShadowDOMSiblingTraversalStrategy):
50623         (ShadowDOMSiblingTraversalStrategy): SiblingTraversalStrategy which uses a node pool instead of a real element
50624         siblings. This strategy takes a vector of node which we traverse.
50625         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstChild):
50626         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastChild):
50627         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstOfType):
50628         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastOfType):
50629         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsBefore):
50630         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsAfter):
50631         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50632         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50633         * css/StyleResolver.cpp:
50634         * html/shadow/ContentDistributor.cpp:
50635         (WebCore::ContentDistributor::distributeSelectionsTo):
50636         * html/shadow/ContentSelectorQuery.cpp: Uses ShadowDOMSiblingTraversalStrategy instead of DOMSiblingTraversalStrategy.
50637         (WebCore::ContentSelectorChecker::ContentSelectorChecker):
50638         (WebCore):
50639         (WebCore::ContentSelectorChecker::checkContentSelector):
50640         (WebCore::ContentSelectorDataList::initialize):
50641         (WebCore::ContentSelectorDataList::matches):
50642         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
50643         (WebCore::ContentSelectorQuery::matches):
50644         * html/shadow/ContentSelectorQuery.h:
50645         (ContentSelectorChecker):
50646         (WebCore):
50647         (ContentSelectorDataList):
50648         (ContentSelectorQuery):
50649
50650 2012-10-11  Balazs Kelemen  <kbalazs@webkit.org>
50651
50652         [Qt] GraphicsContextPlatformPrivate is leaking it's ShadowBlur
50653         https://bugs.webkit.org/show_bug.cgi?id=99073
50654
50655         Reviewed by Noam Rosenthal.
50656
50657         Stop leaking GraphicsContextPlatformPrivate::shadow.
50658
50659         No change in behavior so no new tests.
50660
50661         * platform/graphics/qt/GraphicsContextQt.cpp:
50662         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
50663         Always destroy shadow. It is obviously owned by the context so it has
50664         nothing to do with the erly return.
50665
50666 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50667
50668         WebIDL: overloaded methods prevent number -> string conversion
50669         https://bugs.webkit.org/show_bug.cgi?id=85326
50670
50671         Reviewed by Kentaro Hara.
50672
50673         Make the default behavior for overloaded methods matching DOMString arguments match the
50674         default behavior for non-overloaded methods, which more closely matches the WebIDL spec.
50675         Enable legacy behavior of only matching undefined/null/string/object(and not number,
50676         boolean, etc) via the StrictTypeChecking attribute.
50677
50678         Tests: storage/indexeddb/cursor-overloads.html
50679                storage/indexeddb/legacy-constants.html
50680                ... and run-bindings-tests
50681
50682         * Modules/indexeddb/IDBCursor.cpp:
50683         (WebCore::IDBCursor::stringToDirection): Handle "0"..."4" as stringified legacy constants.
50684         * Modules/indexeddb/IDBCursor.h:
50685         * Modules/indexeddb/IDBDatabase.cpp: Remove redundant overloads.
50686         (WebCore::IDBDatabase::transaction): Remove redundant overloads.
50687         * Modules/indexeddb/IDBDatabase.h:
50688         (IDBDatabase):
50689         * Modules/indexeddb/IDBDatabase.idl: Remove redundant overloads.
50690         * Modules/indexeddb/IDBIndex.cpp: Remove redundant overloads.
50691         (WebCore::IDBIndex::openCursor):
50692         (WebCore::IDBIndex::openKeyCursor):
50693         * Modules/indexeddb/IDBIndex.h: Remove redundant overloads.
50694         (IDBIndex):
50695         * Modules/indexeddb/IDBIndex.idl: Remove redundant overloads.
50696         * Modules/indexeddb/IDBObjectStore.cpp: Remove redundant overloads.
50697         (WebCore::IDBObjectStore::openCursor):
50698         * Modules/indexeddb/IDBObjectStore.h: Remove redundant overloads.
50699         (IDBObjectStore):
50700         * Modules/indexeddb/IDBObjectStore.idl: Remove redundant overloads.
50701         * Modules/indexeddb/IDBTransaction.cpp:
50702         (WebCore::IDBTransaction::stringToMode): Handle "0"..."4" as stringified legacy constants.
50703         * Modules/indexeddb/IDBTransaction.h:
50704         * bindings/scripts/CodeGeneratorJS.pm: Check for StrictTypeChecking attribute.
50705         (GenerateParametersCheckExpression):
50706         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
50707         (GenerateParametersCheckExpression):
50708         * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
50709         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
50710         (WebCore):
50711         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
50712         * bindings/scripts/test/TestObj.idl: Added [StrictTypeChecking] to DOMString overloads,
50713         plus a new DOMString overload w/o it.
50714         * bindings/scripts/test/V8/V8TestObj.cpp: Rebaselined.
50715         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
50716         (TestObjV8Internal):
50717         (WebCore::TestObjV8Internal::overloadedMethodCallback):
50718         * html/canvas/CanvasRenderingContext2D.idl: Tag legacy overloads with [StrictTypeChecking].
50719         * xml/XMLHttpRequest.idl: Ditto.
50720
50721 2012-10-11  Justin Novosad  <junov@chromium.org>
50722
50723         [Chromium][Mac] r130994 seems to break chromium gpu test
50724         https://bugs.webkit.org/show_bug.cgi?id=98995
50725
50726         Reviewed by Stephen White.
50727
50728         Removing unnecessary assertion that was based on an invalid assumption
50729         that 2d canvas draw operations were always called from within WebThread
50730         tasks.
50731
50732         Test: Canvas2DAllowed chromium gpu_test
50733
50734         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
50735         (WebCore::Canvas2DLayerManager::willProcessTask):
50736
50737 2012-10-11  Kenichi Ishibashi <bashi@chromium.org>
50738
50739         REGRESSION(130231): Causes 3 complex font test failures on EFL / Harfbuzz+Freetype
50740         https://bugs.webkit.org/show_bug.cgi?id=98247
50741
50742         Reviewed by Kenneth Rohde Christiansen.
50743
50744         Implement canRenderCombiningCharacterSequence() for the Freetype case.
50745
50746         No new tests, covered by existing tests. Actually the lack of the implementation made
50747         fast/text/atsui-multiple-renderers.html,  fast/text/atsui-spacing-features.html and
50748         fast/text/wide-zero-width-space.html fail on EFL.
50749
50750         * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Implement canRenderCombiningCharacterSequence().
50751         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50752
50753 2012-10-11  Keishi Hattori  <keishi@webkit.org>
50754
50755         F4 key should open the picker popup on Windows and Linux
50756         https://bugs.webkit.org/show_bug.cgi?id=98754
50757
50758         Reviewed by Kent Tamura.
50759
50760         On Windows, F4 key is used to open the combo box popup. We will introduce the same keybinding for picker popups.
50761
50762         Added test to calendar-picker-key-operations.html, date-suggestion-picker-key-operations.html, time-suggestion-picker-key-operations.html.
50763
50764         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
50765         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open picker on F4 key if it is enabled.
50766         * rendering/RenderTheme.cpp:
50767         (WebCore::RenderTheme::shouldOpenPickerWithF4Key): Returns true if we want to enable the F4 key binding on this platform. Return false for default.
50768         (WebCore):
50769         * rendering/RenderTheme.h:
50770         (RenderTheme):
50771         * rendering/RenderThemeChromiumLinux.cpp:
50772         (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key): Returns true.
50773         (WebCore):
50774         * rendering/RenderThemeChromiumLinux.h:
50775         * rendering/RenderThemeChromiumWin.cpp:
50776         (WebCore):
50777         (WebCore::RenderThemeChromiumWin::shouldOpenPickerWithF4Key): Returns true.
50778         * rendering/RenderThemeChromiumWin.h:
50779         (RenderThemeChromiumWin):
50780
50781 2012-10-11  John J. Barton  <johnjbarton@chromium.org>
50782
50783         Web Inspector: Zebra stripe the console
50784         https://bugs.webkit.org/show_bug.cgi?id=98701
50785
50786         Reviewed by Pavel Feldman.
50787
50788         Add .console-message:hover rule to lightly highlight the message line.
50789
50790         * inspector/front-end/inspector.css:
50791         (.console-message:hover):
50792
50793 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50794
50795         Web Inspector: Filter out embedder injected content scripts
50796         https://bugs.webkit.org/show_bug.cgi?id=99039
50797
50798         Reviewed by Yury Semikhatsky.
50799
50800         * inspector/front-end/NetworkUISourceCodeProvider.js:
50801         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
50802
50803 2012-10-11  Pavel Feldman  <pfeldman@chromium.org>
50804
50805         Not reviewed: revert 131004, 131012, 131016, 131042, 131043 for breaking inspector console
50806         https://bugs.webkit.org/show_bug.cgi?id=99042
50807
50808         One can't type in the inspector console after 131004.
50809
50810         * CMakeLists.txt:
50811         * GNUmakefile.list.am:
50812         * Target.pri:
50813         * WebCore.gypi:
50814         * WebCore.vcproj/WebCore.vcproj:
50815         * WebCore.xcodeproj/project.pbxproj:
50816         * dom/DOMAllInOne.cpp:
50817         * dom/Element.cpp:
50818         (WebCore::Element::attach):
50819         (WebCore::Element::detach):
50820         (WebCore::Element::recalcStyle):
50821         * dom/Element.h:
50822         (WebCore):
50823         (Element):
50824         * dom/ElementRareData.h:
50825         (ElementRareData):
50826         * dom/Node.cpp:
50827         (WebCore::checkAcceptChild):
50828         * dom/Node.h:
50829         (Node):
50830         * dom/NodeRenderingContext.cpp:
50831         (WebCore::NodeRenderingContext::nextRenderer):
50832         * dom/PseudoElement.cpp: Removed.
50833         * dom/PseudoElement.h: Removed.
50834         * rendering/HitTestResult.cpp:
50835         (WebCore::HitTestResult::setInnerNode):
50836         (WebCore::HitTestResult::setInnerNonSharedNode):
50837         * rendering/RenderBlock.cpp:
50838         (WebCore::RenderBlock::styleDidChange):
50839         (WebCore::RenderBlock::updateBeforeAfterContent):
50840         (WebCore):
50841         (WebCore::RenderBlock::splitBlocks):
50842         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
50843         (WebCore::RenderBlock::createReplacementRunIn):
50844         (WebCore::RenderBlock::renderName):
50845         * rendering/RenderBlock.h:
50846         (RenderBlock):
50847         * rendering/RenderButton.cpp:
50848         (WebCore::RenderButton::updateBeforeAfterContent):
50849         (WebCore):
50850         * rendering/RenderButton.h:
50851         (RenderButton):
50852         * rendering/RenderCounter.cpp:
50853         (WebCore::RenderCounter::originalText):
50854         * rendering/RenderDeprecatedFlexibleBox.cpp:
50855         (WebCore::RenderDeprecatedFlexibleBox::renderName):
50856         * rendering/RenderGrid.cpp:
50857         (WebCore::RenderGrid::renderName):
50858         * rendering/RenderInline.cpp:
50859         (WebCore::RenderInline::styleDidChange):
50860         (WebCore::RenderInline::addChildIgnoringContinuation):
50861         (WebCore::RenderInline::splitInlines):
50862         (WebCore::RenderInline::renderName):
50863         * rendering/RenderListItem.cpp:
50864         (WebCore::RenderListItem::updateMarkerLocation):
50865         * rendering/RenderMultiColumnBlock.cpp:
50866         (WebCore::RenderMultiColumnBlock::renderName):
50867         * rendering/RenderObject.cpp:
50868         (WebCore::RenderObject::createObject):
50869         * rendering/RenderObject.h:
50870         (WebCore::RenderObject::generatingNode):
50871         * rendering/RenderObjectChildList.cpp:
50872         (WebCore):
50873         (WebCore::findBeforeAfterParent):
50874         (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
50875         (WebCore::createRendererForBeforeAfterContent):
50876         (WebCore::ensureBeforeAfterContainer):
50877         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
50878         * rendering/RenderObjectChildList.h:
50879         (RenderObjectChildList):
50880         * rendering/RenderRubyText.cpp:
50881         (WebCore::RenderRubyText::updateBeforeAfterContent):
50882         (WebCore):
50883         * rendering/RenderRubyText.h:
50884         (RenderRubyText):
50885         * rendering/RenderTableCell.h:
50886         (WebCore::RenderTableCell::renderName):
50887         * rendering/RenderTableRow.cpp:
50888         (WebCore::RenderTableRow::updateBeforeAndAfterContent):
50889         (WebCore):
50890         (WebCore::RenderTableRow::styleDidChange):
50891         * rendering/RenderTableRow.h:
50892         (RenderTableRow):
50893         (WebCore::RenderTableRow::renderName):
50894         * rendering/RenderTableSection.cpp:
50895         (WebCore::RenderTableSection::addChild):
50896         * rendering/RenderTableSection.h:
50897         (WebCore::RenderTableSection::renderName):
50898         * rendering/RenderTreeAsText.cpp:
50899         (WebCore::RenderTreeAsText::writeRenderObject):
50900
50901 2012-10-11  Arpita Bahuguna  <arpitabahuguna@gmail.com>
50902
50903         REGRESSION (r96393): In some cases, generated content is never shown
50904         https://bugs.webkit.org/show_bug.cgi?id=88196
50905
50906         Reviewed by Antti Koivisto.
50907
50908         Elements with style specified from an attribute selector in conjunction
50909         with a pseudo-element should not take on the shared style of their
50910         previous matching sibling (if any).
50911
50912         The problem here is that an attribute selector appended by a pseudo-element
50913         does not return any matched rules for the call (matchesRuleSet(m_uncommonAttributeRuleSet.get()))
50914         in StyleResolver::locateSharedStyle().
50915
50916         This is because of the way pseudo-elements are handled in
50917         SelectorChecker::checkSelector(). For a pseudo-element selector we check
50918         for the condition (!context.elementStyle && m_mode == ResolvingStyle) and
50919         since for this particular flow the SelectorChecker mode is set to ResolvingStyle
50920         and since the current element's style is still not available we fail this
50921         initial check and return SelectorFailsLocally from checkSelector(). This is
50922         incorrect behavior since the element does have an attribute selector specified
50923         for it.
50924
50925         Have thus introduced another enum value: SharingRules for SelectorChecker's Mode.
50926         SelectorChecker's mode should be set to SharingRules before making the
50927         call to collectMatchingRules() and then reset (back to ResolvingStyle) thereafter.
50928
50929         Existing Mode value: CollectingRules although appropriate cannot be used in this
50930         scenario because we also don't want to set any value to dynamicPseudo for this flow.
50931
50932         Test: fast/selectors/style-sharing-attribute-selector-with-pseudo-element.html
50933
50934         * css/SelectorChecker.cpp:
50935         (WebCore::SelectorChecker::checkSelector):
50936         Added additional check for SelectorChecker's mode: SharingRules when
50937         trying to match for the pseudo-element selector.
50938
50939         * css/SelectorChecker.h:
50940         Added SharingRules to Mode enum.
50941
50942         * css/StyleResolver.cpp:
50943         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
50944         (WebCore::StyleResolver::locateSharedStyle):
50945         * css/StyleResolver.h:
50946         (StyleResolver):
50947         Renamed matchesRuleSet() to a more descriptive styleSharingCandidateMatchesRuleSet().
50948         Also, setting the SelectorChecker's mode to SharingRules before calling
50949         on collectMatchingRules() from styleSharingCandidateMatchesRuleSet().
50950
50951 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50952
50953         Some shadow roots are not showing up in Inspector.
50954         https://bugs.webkit.org/show_bug.cgi?id=88251
50955
50956         Reviewed by Pavel Feldman.
50957
50958         When an element has only text node, its shadow root is not showing up in Inspector, since
50959         child text is shown in oneline. We had to prevent from inlining child text when a shadow root is
50960         added.
50961
50962         Test: inspector/elements/shadow-root.html
50963
50964         * inspector/front-end/DOMAgent.js:
50965         (WebInspector.DOMNode):
50966         (WebInspector.DOMNode.prototype.hasShadowRoots):
50967         * inspector/front-end/ElementsTreeOutline.js:
50968
50969 2012-10-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
50970
50971         [Qt] More responsive scroll animations
50972         https://bugs.webkit.org/show_bug.cgi?id=99016
50973
50974         Reviewed by Jocelyn Turcotte.
50975
50976         Changes the scrolling animations so they accelerate faster than they deccelerate,
50977         making the animation respond faster to user input.
50978
50979         * platform/ScrollAnimatorNone.cpp:
50980         (WebCore::ScrollAnimatorNone::parametersForScrollGranularity):
50981         * platform/ScrollAnimatorNone.h:
50982         (ScrollAnimatorNone):
50983
50984 2012-10-11  Alexander Shalamov  <alexander.shalamov@intel.com>
50985
50986         [CSS3 Media Queries] Aspect ratio value re-parsed when media query expression is evaluated
50987         https://bugs.webkit.org/show_bug.cgi?id=99003
50988
50989         Reviewed by Kenneth Rohde Christiansen.
50990
50991         Use CSSAspectRatioValue instead of CSSValueList to store aspect ratio value
50992         in order to avoid re-parsing of aspect ratio data during media expression evaluation.
50993
50994         test: fast/media/w3c/test_media_queries.html
50995
50996         * css/MediaQueryEvaluator.cpp:
50997         (WebCore::compareAspectRatioValue):
50998         (WebCore):
50999         (WebCore::aspect_ratioMediaFeatureEval):
51000         (WebCore::device_aspect_ratioMediaFeatureEval):
51001         * css/MediaQueryExp.cpp:
51002         (WebCore::MediaQueryExp::MediaQueryExp):
51003
51004 2012-10-11  Zeno Albisser  <zeno@webkit.org>
51005
51006         [Qt] Implement GraphicsSurfaceToken to replace uint64_t as token type.
51007         https://bugs.webkit.org/show_bug.cgi?id=98501
51008
51009         Replace the token type for GraphicsSurface with a new class GraphicsSurfaceToken.
51010         This is necessary in order to implement GraphicsSurface for Windows.
51011         Depending on the platform a GraphicsSurfaceToken might contain a
51012         WindowID (Linux/GLX), two IOSurfaceIDs (Mac) or in the future two HANDLEs (Windows).
51013         The simple uint64_t is not sufficient anymore, since a single HANDLE in windows
51014         can be 64bit already.
51015
51016         Reviewed by Noam Rosenthal.
51017
51018         * Target.pri:
51019         * platform/graphics/qt/GraphicsContext3DQt.cpp:
51020         (GraphicsContext3DPrivate):
51021         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
51022         * platform/graphics/surfaces/GraphicsSurface.cpp:
51023         (WebCore::GraphicsSurface::create):
51024         (WebCore::GraphicsSurface::exportToken):
51025         * platform/graphics/surfaces/GraphicsSurface.h:
51026         (GraphicsSurface):
51027         * platform/graphics/surfaces/GraphicsSurfaceToken.h: Added.
51028         (WebCore):
51029         (GraphicsSurfaceToken):
51030         (WebCore::GraphicsSurfaceToken::GraphicsSurfaceToken):
51031         (WebCore::GraphicsSurfaceToken::operator!=):
51032         (WebCore::GraphicsSurfaceToken::isValid):
51033         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
51034         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
51035         (WebCore::GraphicsSurfacePrivate::token):
51036         (GraphicsSurfacePrivate):
51037         (WebCore::GraphicsSurface::platformExport):
51038         (WebCore::GraphicsSurface::platformImport):
51039         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
51040         (WebCore::GraphicsSurface::platformExport):
51041         (WebCore::GraphicsSurface::platformImport):
51042         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
51043         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
51044         (WebCore::TextureMapperSurfaceBackingStore::setSurface):
51045         * platform/graphics/texmap/TextureMapperBackingStore.h:
51046         (TextureMapperSurfaceBackingStore):
51047         (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
51048         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
51049         (WebCore::TextureMapperPlatformLayer::graphicsSurfaceToken):
51050
51051 2012-10-11  Alexander Pavlov  <apavlov@chromium.org>
51052
51053         Web Inspector: [Elements] Breadcrumbs are not updated upon involved elements' className changes
51054         https://bugs.webkit.org/show_bug.cgi?id=98887
51055
51056         Reviewed by Vsevolod Vlasov.
51057
51058         Breadcrumbs should be updated upon the "class" and "id" attribute changes of elements participating in the breadcrumb path.
51059
51060         Test: inspector/elements/breadcrumb-updates.html
51061
51062         * inspector/front-end/ElementsPanel.js:
51063         (WebInspector.ElementsPanel):
51064         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
51065
51066 2012-10-11  Kunihiko Sakamoto  <ksakamoto@chromium.org>
51067
51068         Final newline (LF or CRLF) in paste buffer is converted to space
51069         https://bugs.webkit.org/show_bug.cgi?id=80838
51070
51071         Reviewed by Ryosuke Niwa.
51072
51073         Currently newline characters are replaced with spaces when pasted
51074         to text input. This behavior was introduced in r37539, with the
51075         intention to follow the FireFox's behavior (see
51076         https://bugs.webkit.org/show_bug.cgi?id=20461). However, FireFox
51077         truncates newlines at the end of pasted text, instead of replacing
51078         them with spaces. So this patch changes TextFieldInputType to cut
51079         trailing newlines of inserted text.
51080
51081         Test: fast/forms/paste-multiline-text-input.html
51082
51083         * html/TextFieldInputType.cpp:
51084         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
51085         Truncates trailing newlines.
51086
51087 2012-10-11  Kent Tamura  <tkent@chromium.org>
51088
51089         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
51090         https://bugs.webkit.org/show_bug.cgi?id=98992
51091
51092         * platform/text/LocaleICU.cpp:
51093         (WebCore::LocaleICU::isRTL): Need to initialize 'status'.
51094
51095 2012-10-11  Eugene Klyuchnikov  <eustas.bug@gmail.com>
51096
51097         Web Inspector: The 'X' of the close button of Settings view is not centered
51098         https://bugs.webkit.org/show_bug.cgi?id=99008
51099
51100         Reviewed by Alexander Pavlov.
51101
51102         Fixed text positioning in CSS.
51103
51104         * inspector/front-end/helpScreen.css:
51105         (.help-close-button):
51106
51107 2012-10-11  Kent Tamura  <tkent@chromium.org>
51108
51109         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
51110         https://bugs.webkit.org/show_bug.cgi?id=98992
51111
51112         Reviewed by Kentaro Hara.
51113
51114         - Move the RTL detection code in
51115           WebKit/chromium/src/DateTimeChooserImpl.cpp to LocaleWin::isRTL()
51116         - Introduce Localizer::isRTL as a pure virtual function
51117         - Implement LocaleMac::isRTL with native API
51118         - Implement LocaleICU::isRTL with ICU API
51119         - Add dummy implementation: LocaleNone::isRTL
51120
51121         Add some tests to WebKit/chromium/tests/.
51122
51123         * platform/text/Localizer.h:
51124         (Localizer): Declare pure virtual isRTL.
51125
51126         * platform/text/LocaleICU.h:
51127         (LocaleICU): Declare isRTL.
51128         * platform/text/LocaleICU.cpp:
51129         (WebCore::LocaleICU::isRTL): Implemented with uloc_getCharacterOrientation.
51130
51131         * platform/text/LocaleNone.cpp:
51132         (LocaleNone): Declare isRTL.
51133         (WebCore::LocaleNone::isRTL): Added.
51134
51135         * platform/text/LocaleWin.h:
51136         (LocaleWin): Declare isRTL.
51137         * platform/text/LocaleWin.cpp:
51138         (WebCore::LocaleWin::isRTL): Implemented.
51139
51140         * platform/text/mac/LocaleMac.h:
51141         (LocaleMac): Declare isRTL.
51142         * platform/text/mac/LocaleMac.mm:
51143         (WebCore::LocaleMac::isRTL): Implemented.
51144
51145 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
51146
51147         Web Inspector: TypeError in ConsoleMessage.js
51148         https://bugs.webkit.org/show_bug.cgi?id=98999
51149
51150         Reviewed by Alexander Pavlov.
51151
51152         This patch is based on patch by John J. Barton.
51153         Added a check that stack length is equal.
51154
51155         * inspector/front-end/ConsoleMessage.js:
51156         (WebInspector.ConsoleMessageImpl.prototype.isEqual):
51157
51158 2012-10-10  Jer Noble  <jer.noble@apple.com>
51159
51160         Disallow full screen mode keyboard access by default.
51161         https://bugs.webkit.org/show_bug.cgi?id=98971
51162         <rdar://problem/12474226>
51163
51164         Reviewed by Sam Weinig.
51165
51166         Fall back to requesting non-keyboard access if the client refuses to allow keyboard access.
51167
51168         * dom/Document.cpp:
51169         (WebCore::Document::requestFullScreenForElement):
51170
51171 2012-10-10  Ilya Tikhonovsky  <loislo@chromium.org>
51172
51173         Web Inspector: NMI instrument HTMLCanvas element.
51174         https://bugs.webkit.org/show_bug.cgi?id=98917
51175
51176         Reviewed by Yury Semikhatsky.
51177
51178         It also includes non intrusive instrumentation for skia classes.
51179
51180         Test: inspector/profiler/memory-instrumentation-canvas.html
51181
51182         * WebCore.gypi:
51183         * html/HTMLCanvasElement.cpp:
51184         (WebCore::HTMLCanvasElement::reportMemoryUsage):
51185         (WebCore):
51186         * html/HTMLCanvasElement.h:
51187         (HTMLCanvasElement):
51188         * platform/graphics/ImageBuffer.cpp:
51189         (WebCore::ImageBuffer::reportMemoryUsage):
51190         (WebCore):
51191         * platform/graphics/ImageBuffer.h:
51192         (ImageBuffer):
51193         * platform/graphics/chromium/ImageBufferDataSkia.h:
51194         (ImageBufferData):
51195         * platform/graphics/skia/ImageBufferSkia.cpp:
51196         (WebCore::ImageBufferData::reportMemoryUsage):
51197         (WebCore):
51198         * platform/graphics/skia/MemoryInstrumentationSkia.cpp: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51199         (reportMemoryUsage):
51200         * platform/graphics/skia/MemoryInstrumentationSkia.h: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51201         * platform/graphics/skia/NativeImageSkia.cpp:
51202
51203 2012-10-10  Mike West  <mkwst@google.com>
51204
51205         Document calls createElement with the wrong parameters.
51206         https://bugs.webkit.org/show_bug.cgi?id=98907
51207
51208         Reviewed by Kent Tamura.
51209
51210         Document::importNode calls Document::createElement with a QualifiedName
51211         and ExceptionCode. The Document::createElement that takes a
51212         QualifiedName doesn't generate an exception; the second argument is a
51213         bool, which the ExceptionCode autocasts into.
51214
51215         Changing the argument to an explicit bool shouldn't have any visible
51216         effect; no new tests are required.
51217
51218         * dom/Document.cpp:
51219         (WebCore::Document::importNode):
51220
51221 2012-10-10  Lianghui Chen  <liachen@rim.com>
51222
51223         [BlackBerry] Fix assertion in NetworkJob::notifyChallengeResult.
51224         https://bugs.webkit.org/show_bug.cgi?id=97397
51225         Internal PR: 186597.
51226
51227         Internally reviewed by Yong Li, Joe Mason.
51228         Reviewed by George Staikos.
51229
51230         Add a singleton AuthenticationChallengeManager to manage authentication
51231         challenge dialog. It does following things:
51232         Record page creation/deletion, so it knows what page is present or not.
51233         Record page visibility change so it knows when to display a dialog or not.
51234         Accept authentication challenge, and decide whether to postpone the
51235             challenge dialog based on whether there is active authentication challenge
51236             dialog already and whether its page is visible or not.
51237         When a challenge result comes back, notify the result to all clients
51238             authenticating for the same protection space, and then start the next
51239             authentication challenge from the same page, if there is one.
51240         When a page becomes visible, start the first authentication challenge
51241             dialog that has been blocked before.
51242         When an authentication challenge is requested, the NetworkJob will be
51243             deferred so its initial response will be saved while waiting for
51244             user decision on the challenge.
51245
51246         No new tests for platform specific internal change.
51247
51248         * PlatformBlackBerry.cmake:
51249         * platform/blackberry/AuthenticationChallengeManager.cpp: Added.
51250         (WebCore):
51251         (ChallengeInfo):
51252         (WebCore::ChallengeInfo::ChallengeInfo):
51253         (AuthenticationChallengeManagerPrivate):
51254         (WebCore::AuthenticationChallengeManagerPrivate::AuthenticationChallengeManagerPrivate):
51255         (WebCore::AuthenticationChallengeManagerPrivate::resumeAuthenticationChallenge):
51256         (WebCore::AuthenticationChallengeManagerPrivate::startAuthenticationChallenge):
51257         (WebCore::AuthenticationChallengeManagerPrivate::pageExists):
51258         (WebCore::AuthenticationChallengeManager::AuthenticationChallengeManager):
51259         (WebCore::AuthenticationChallengeManager::pageCreated):
51260         (WebCore::AuthenticationChallengeManager::pageDeleted):
51261         (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
51262         (WebCore::AuthenticationChallengeManager::authenticationChallenge):
51263         (WebCore::AuthenticationChallengeManager::cancelAuthenticationChallenge):
51264         (WebCore::AuthenticationChallengeManager::notifyChallengeResult):
51265         (WebCore::AuthenticationChallengeManager::instance):
51266         (WebCore::AuthenticationChallengeManager::init):
51267         * platform/blackberry/AuthenticationChallengeManager.h:
51268         (WebCore):
51269         (AuthenticationChallengeManager):
51270         * platform/blackberry/PageClientBlackBerry.h:
51271         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
51272         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
51273         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
51274         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
51275         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
51276         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
51277         (MediaPlayerPrivate):
51278         * platform/network/blackberry/NetworkJob.cpp:
51279         (WebCore::NetworkJob::NetworkJob):
51280         (WebCore::NetworkJob::~NetworkJob):
51281         (WebCore):
51282         (WebCore::NetworkJob::handleNotifyStatusReceived):
51283         (WebCore::NetworkJob::handleNotifyClose):
51284         (WebCore::NetworkJob::shouldReleaseClientResource):
51285         (WebCore::NetworkJob::sendRequestWithCredentials):
51286         (WebCore::NetworkJob::notifyChallengeResult):
51287         * platform/network/blackberry/NetworkJob.h:
51288         (NetworkJob):
51289
51290 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
51291
51292         compositing/tiling/crash-reparent-tiled-layer.html is flakey
51293         https://bugs.webkit.org/show_bug.cgi?id=82546
51294
51295         Reviewed by Beth Dakin.
51296
51297         When calling layerTreeAsText() inside the document load event,
51298         GraphicsLayerCA may have not flushed layers yet, so layer tree
51299         properties that are affected by flushing (tiled layer, visible
51300         rects) appeared flakey in tests.
51301         
51302         Fix by forcing a flush before dumping the layer tree.        
51303         
51304         * rendering/RenderLayerCompositor.cpp:
51305         (WebCore::RenderLayerCompositor::layerTreeAsText):
51306
51307 2012-10-10  Beth Dakin  <bdakin@apple.com>
51308
51309         https://bugs.webkit.org/show_bug.cgi?id=98984
51310         REGRESSION: Crash happens after we add non-top-level frame to the 
51311         ScrollingStateTree
51312
51313         Reviewed by Simon Fraser.
51314
51315         isRootLayer() can return true for layers that do not correspond to 
51316         the main frame. But we only want the ones that DO correspond to the 
51317         main frame!
51318         * rendering/RenderLayerCompositor.cpp:
51319         (WebCore::RenderLayerCompositor::updateBacking):
51320
51321 2012-10-10  Dan Bernstein  <mitz@apple.com>
51322
51323         <rdar://problem/12472460> text-combine doesn’t use third- and quarter-width variants when used with @font-face
51324         https://bugs.webkit.org/show_bug.cgi?id=98961
51325
51326         Reviewed by Tim Horton.
51327
51328         Test: fast/text/text-combine-with-font-face.html
51329
51330         * css/CSSSegmentedFontFace.cpp:
51331         (WebCore::CSSSegmentedFontFace::getFontData): Added the width variant to the
51332         key used for entries in the font data table, so that we can return different
51333         font data for different width variants.
51334         * platform/graphics/FontWidthVariant.h: Defined FontWidthVariantWidth for
51335         use in the computation of the above key.
51336         * rendering/RenderCombineText.cpp:
51337         (WebCore::RenderCombineText::combineText): Added a local variable to store
51338         the font selector before changing the font description. Previously, by the time
51339         we tried to get the font selector from the font, it had already been cleared,
51340         so we called Font::update() with a 0 font selector, meaning @font-face fonts
51341         could not be selected.
51342
51343 2012-10-10  Elliott Sprehn  <esprehn@chromium.org>
51344
51345         Move :before and :after into the DOM        
51346         https://bugs.webkit.org/show_bug.cgi?id=95117
51347
51348         Reviewed by Eric Seidel.
51349
51350         Reimplement generated content :before and :after as DOM Elements. Now ElementRareData has
51351         two RefPtrs to PseudoElements for the generated content and Node has methods for traversing
51352         the tree including generated content.
51353
51354         This allows the generated content to be treated as real nodes instead of anonymous and take
51355         part in the usual recalcStyle and attach flow which fixes many bugs and vastly simplifies the
51356         lifecycle of generated content.
51357
51358         No new tests needed for now.
51359
51360         * CMakeLists.txt:
51361         * GNUmakefile.list.am:
51362         * Target.pri:
51363         * WebCore.gypi:
51364         * WebCore.vcproj/WebCore.vcproj:
51365         * WebCore.xcodeproj/project.pbxproj:
51366         * dom/DOMAllInOne.cpp:
51367         * dom/Element.cpp:
51368         (WebCore::Element::attach): Add generated content if needed.
51369         (WebCore::Element::detach): Remove all child generated content.
51370         (WebCore::Element::recalcStyle): Add or remove generated content based on the new style.
51371         (WebCore::Element::updatePseudoElement): Updates pseudo content based on a pseudoId.
51372         (WebCore):
51373         (WebCore::Element::createPseudoElementIfNeeded):
51374         (WebCore::Element::beforePseudoElement):
51375         (WebCore::Element::afterPseudoElement):
51376         * dom/Element.h:
51377         (WebCore):
51378         (Element):
51379         * dom/ElementRareData.h:
51380         (ElementRareData):
51381         (WebCore::ElementRareData::setPseudoElement):
51382         (WebCore):
51383         (WebCore::ElementRareData::pseudoElement):
51384         * dom/Node.cpp:
51385         (WebCore::Node::pseudoAwarePreviousSibling):
51386         (WebCore):
51387         (WebCore::Node::pseudoAwareNextSibling):
51388         (WebCore::checkAcceptChild): Forbid moving PseudoElements for sanity. The code never does this.
51389         * dom/Node.h:
51390         (Node):
51391         (WebCore::Node::isPseudoElement):
51392         (WebCore::Node::pseudoId): Fast path that only calls virtualPseudoId if the node has custom callbacks so isPseudoElement is fast.
51393         (WebCore::Node::virtualPseudoId):
51394         (WebCore::Node::isBeforePseudoElement):
51395         (WebCore::Node::isAfterPseudoElement):
51396         * dom/NodeRenderingContext.cpp:
51397         (WebCore::NodeRenderingContext::nextRenderer): Changed to find the next sibling of pseudos for insertion.
51398         * dom/PseudoElement.cpp: Added.
51399         (WebCore):
51400         (WebCore::pseudoElementName):
51401         (WebCore::PseudoElement::PseudoElement):
51402         (WebCore::PseudoElement::pseudoRendererIsNeeded):
51403         (WebCore::PseudoElement::customStyleForRenderer):
51404         (WebCore::PseudoElement::attach):
51405         (WebCore::PseudoElement::rendererIsNeeded):
51406         (WebCore::PseudoElement::updateChildStyle): Propagates the style downward into the anonymous renderers for the content.
51407         (WebCore::PseudoElement::didRecalcStyle):
51408         (WebCore::PseudoElement::createRendererForContent): Refactored from RenderObjectChildList.
51409         * dom/PseudoElement.h: Added.
51410         (WebCore):
51411         (PseudoElement):
51412         (WebCore::PseudoElement::create):
51413         (WebCore::toPseudoElement):
51414         * rendering/HitTestResult.cpp:
51415         (WebCore::HitTestResult::setInnerNode): Hit testing a PseudoElement should really hit the parent.
51416         (WebCore::HitTestResult::setInnerNonSharedNode): Same as above.
51417         * rendering/RenderBlock.cpp:
51418         (WebCore::RenderBlock::styleDidChange): Remove old generated content code, same for below.
51419         (WebCore::RenderBlock::splitBlocks):
51420         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
51421         (WebCore::RenderBlock::createReplacementRunIn):
51422         (WebCore::RenderBlock::renderName):
51423         * rendering/RenderBlock.h:
51424         (RenderBlock):
51425         * rendering/RenderButton.cpp:
51426         * rendering/RenderButton.h:
51427         (RenderButton):
51428         * rendering/RenderCounter.cpp:
51429         (WebCore::RenderCounter::originalText):
51430         * rendering/RenderDeprecatedFlexibleBox.cpp:
51431         (WebCore::RenderDeprecatedFlexibleBox::renderName):
51432         * rendering/RenderGrid.cpp:
51433         (WebCore::RenderGrid::renderName):
51434         * rendering/RenderInline.cpp:
51435         (WebCore::RenderInline::styleDidChange):
51436         (WebCore::RenderInline::addChildIgnoringContinuation):
51437         (WebCore::RenderInline::splitInlines):
51438         (WebCore::RenderInline::renderName):
51439         * rendering/RenderListItem.cpp:
51440         (WebCore::RenderListItem::updateMarkerLocation):
51441         * rendering/RenderMultiColumnBlock.cpp:
51442         (WebCore::RenderMultiColumnBlock::renderName):
51443         * rendering/RenderObject.cpp:
51444         (WebCore::RenderObject::createObject):
51445         * rendering/RenderObject.h:
51446         (WebCore::RenderObject::isPseudoElement):
51447         (RenderObject):
51448         (WebCore::RenderObject::generatingNode):
51449         * rendering/RenderObjectChildList.cpp:
51450         * rendering/RenderObjectChildList.h:
51451         (RenderObjectChildList):
51452         * rendering/RenderRubyText.cpp:
51453         * rendering/RenderRubyText.h:
51454         (RenderRubyText):
51455         * rendering/RenderTableCell.h:
51456         (WebCore::RenderTableCell::renderName):
51457         * rendering/RenderTableRow.cpp:
51458         (WebCore::RenderTableRow::styleDidChange):
51459         * rendering/RenderTableRow.h:
51460         (WebCore::RenderTableRow::renderName):
51461         * rendering/RenderTableSection.cpp:
51462         (WebCore::RenderTableSection::addChild):
51463         * rendering/RenderTableSection.h:
51464         (WebCore::RenderTableSection::renderName):
51465         * rendering/RenderTreeAsText.cpp:
51466         (WebCore::RenderTreeAsText::writeRenderObject):
51467
51468 2012-10-10  Sam Weinig  <sam@webkit.org>
51469
51470         Add more Objective-C WebKit2 DOM API skeletons.
51471         https://bugs.webkit.org/show_bug.cgi?id=98981
51472
51473         Reviewed by Anders Carlsson.
51474
51475         * WebCore.exp.in:
51476         Add necessary export.
51477
51478 2012-10-10  Dimitri Glazkov  <dglazkov@chromium.org>
51479
51480         Minimize the recent template explosion in SelectorChecker.
51481         https://bugs.webkit.org/show_bug.cgi?id=98829
51482
51483         Reviewed by Antti Koivisto.
51484
51485         We've recently added the capability to switch sibling traversal strategy to SelectorChecker, at some readability/clarity expense.
51486         This patch tries to minimize the surface of this expense to SelectorChecker::checkOneSelector. 
51487
51488         No new tests, no change in behavior.
51489
51490         * css/SelectorChecker.cpp:
51491         (WebCore::SelectorChecker::checkSelector): Turned back into a function.
51492         (WebCore::SelectorChecker::checkOneSelector): Changed to specialize on traversal strategy, rather than the context, which was less clear.
51493         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild): Turned into a function.
51494         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild): Ditto.
51495         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType): Ditto.
51496         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType): Ditto.
51497         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore): Ditto.
51498         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore): Ditto.
51499         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter): Ditto.
51500         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter): Ditto.
51501         * css/SelectorChecker.h:
51502         (DOMTraversalStrategy): Changed into a class, rather than a template.
51503         (SelectorChecker): Turned back into a function.
51504
51505 2012-10-10  James Simonsen  <simonjam@chromium.org>
51506
51507         High res times should start at 0
51508         https://bugs.webkit.org/show_bug.cgi?id=84912
51509
51510         Reviewed by Tony Gentilcore.
51511
51512         Test: Existing Navigation Timing tests.
51513
51514         * inspector/InspectorInstrumentation.cpp: Use legacy document time, pending 98223.
51515         (WebCore):
51516         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
51517         * inspector/InspectorResourceAgent.cpp:
51518         (WebCore::buildObjectForTiming):
51519         * loader/DocumentLoadTiming.cpp:
51520         (WebCore::DocumentLoadTiming::convertMonotonicTimeToLegacyDocumentTime):
51521         (WebCore):
51522         (WebCore::DocumentLoadTiming::convertMonotonicTimeToZeroBasedDocumentTime):
51523         (WebCore::DocumentLoadTiming::markNavigationStart):
51524         * loader/DocumentLoadTiming.h:
51525         (DocumentLoadTiming):
51526         (WebCore::DocumentLoadTiming::navigationStart): These just report raw monotonic times now.
51527         (WebCore::DocumentLoadTiming::unloadEventStart):
51528         (WebCore::DocumentLoadTiming::unloadEventEnd):
51529         (WebCore::DocumentLoadTiming::redirectStart):
51530         (WebCore::DocumentLoadTiming::redirectEnd):
51531         (WebCore::DocumentLoadTiming::fetchStart):
51532         (WebCore::DocumentLoadTiming::responseEnd):
51533         (WebCore::DocumentLoadTiming::loadEventStart):
51534         (WebCore::DocumentLoadTiming::loadEventEnd):
51535         * page/PerformanceTiming.cpp:
51536         (WebCore::PerformanceTiming::navigationStart): Convert these back to legacy document times.
51537         (WebCore::PerformanceTiming::unloadEventStart):
51538         (WebCore::PerformanceTiming::unloadEventEnd):
51539         (WebCore::PerformanceTiming::redirectStart):
51540         (WebCore::PerformanceTiming::redirectEnd):
51541         (WebCore::PerformanceTiming::fetchStart):
51542         (WebCore::PerformanceTiming::responseEnd):
51543         (WebCore::PerformanceTiming::loadEventStart):
51544         (WebCore::PerformanceTiming::loadEventEnd):
51545         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
51546         (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
51547         * platform/network/ResourceLoadTiming.cpp:
51548         (WebCore::ResourceLoadTiming::convertResourceLoadTimeToMonotonicTime):
51549         * platform/network/ResourceLoadTiming.h:
51550         (ResourceLoadTiming):
51551
51552 2012-10-10  Levi Weintraub  <leviw@chromium.org>
51553
51554         Tests failure on Chromium Mac after r130821
51555         https://bugs.webkit.org/show_bug.cgi?id=98865
51556
51557         Reviewed by Adam Barth.
51558
51559         Updating the check for USE(HARFBUZZ_NG) to check for Mac Chromium, as the HARFBUZZ_NG flag isn't
51560         actually set, despite us using Harfbuzz. This unbreaks Chromium Mac as we diagnose the root
51561         cause of this issue.
51562
51563         * rendering/RenderBlockLineLayout.cpp:
51564         (WebCore::setLogicalWidthForTextRun):
51565
51566 2012-10-10  Stephen Chenney  <schenney@chromium.org>
51567
51568         SVGTextRunRenderingContext changes font data in the glyph page, but it shouldn't
51569         https://bugs.webkit.org/show_bug.cgi?id=98755
51570
51571         Reviewed by Eric Seidel.
51572
51573         The code in SVGTextRunRenderingContext::glyphDataForCharacter, when it
51574         encounters an <altglyph> tag, immediately replaces the font data for a
51575         glyph with font data for the primary font, presumably to meet the SVG
51576         spec requirement: "If the references to alternate glyphs do not result
51577         in successful identification of alternate glyphs to use, then the
51578         character(s) that are inside of the ‘altGlyph’ element are rendered as
51579         if the ‘altGlyph’ element were a ‘tspan’ element instead."
51580
51581         If the alt glyph is not then found we are in the case from the spec
51582         and indeed we should use the primary font. However, we end up replacing the GlyphPage
51583         entry for the character with primary font data, which we should not do
51584         because the glyph page might be used in some place that does not have
51585         the alt glyph tag.
51586
51587         Furthermore, this causes object lifetime problems for font data, because
51588         in cases where the font data that is replaced is for the system fallback
51589         font the GlyphPage will live forever with no knowldege that it contains
51590         font data pointers into font data other that the system fallback. The
51591         replaced font data may be deleted while the pointer lives on in the
51592         system fallback page.
51593
51594         The fix is simply not to replace the font data in the page.
51595
51596         Test: svg/text/alt-glpyh-on-fallback-font-crash.html
51597
51598         * rendering/svg/SVGTextRunRenderingContext.cpp:
51599         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Keep track of the original font data and put it back
51600         in the glyph page when the method has finished.
51601
51602 2012-10-10  Tab Atkins  <jackalmage@gmail.com>
51603
51604         column-count: 0 should not prevent margin-collapse through
51605         https://bugs.webkit.org/show_bug.cgi?id=65159
51606
51607         Reviewed by Tony Chang.
51608
51609         This patch makes "column-count:0" be properly recognized as invalid syntax,
51610         as it violates the property grammar in the spec.
51611
51612         Tests: fast/multicol/zeroColumnCount.html
51613
51614         * css/CSSParser.cpp:
51615         (WebCore::CSSParser::validUnit):
51616         (WebCore::CSSParser::parseValue):
51617         * css/CSSParser.h:
51618
51619 2012-10-10  Benjamin Poulain  <bpoulain@apple.com>
51620
51621         [WK2] Safari crashes on error when using CFNetwork
51622         https://bugs.webkit.org/show_bug.cgi?id=98965
51623
51624         Reviewed by Sam Weinig.
51625
51626         The code of ResourceErrorMac when using CFNetwork was assuming
51627         there is always either a CFError or an NSError associated with
51628         any ResourceError.
51629
51630         This is not true on WebKit2 where error can be generic errors
51631         in the WebProcess (for example a cannotShowURLError).
51632         The code was crashing when trying to invoke function on the
51633         non-existing CFError.
51634
51635         This patch fixes the issue by handling that third case separately.
51636         If the ResourceError is a generic error, a new NSError is created,
51637         similarily to what is done in the non-CFNetwork case.
51638
51639         * platform/network/mac/ResourceErrorMac.mm:
51640         (WebCore::ResourceError::nsError):
51641
51642 2012-10-10  Alexander Shalamov  <alexander.shalamov@intel.com>
51643
51644         Invalid values for media query features are not handled
51645         https://bugs.webkit.org/show_bug.cgi?id=97006
51646
51647         Reviewed by Kenneth Rohde Christiansen.
51648
51649         This patch improves pass rate of CSS3 Media Queries test suite
51650         by making media expressions compliant with W3C specification. Few
51651         performance issues are fixed by removal of string comparison during
51652         media expression evaluation.
51653
51654         Tests: fast/media/w3c/test_media_queries.html
51655
51656         * css/CSSGrammar.y: Handle media query expression with specified media restrictor as invalid.
51657         * css/MediaQuery.cpp:
51658         (WebCore::MediaQuery::serialize): Serialize invalid query according to specification.
51659         * css/MediaQueryEvaluator.cpp:
51660         (WebCore::orientationMediaFeatureEval): Compare CSSValueID instead of strings.
51661         (WebCore::view_modeMediaFeatureEval): Compare CSSValueID instead of strings.
51662         (WebCore::pointerMediaFeatureEval): Compare CSSValueID instead of strings.
51663         * css/MediaQueryExp.cpp:
51664         (WebCore::MediaQueryExp::MediaQueryExp): Check that media features initialized with correct values.
51665
51666 2012-10-10  Justin Novosad  <junov@chromium.org>
51667
51668         [Chromium] Smoother animation for non-RAF 2D canvas animations
51669         https://bugs.webkit.org/show_bug.cgi?id=97918
51670
51671         Reviewed by Stephen White.
51672
51673         Reduces animation jank by preventing the accumulation of multiple
51674         frames of backlog in the deferred canvas rendering queue. When the
51675         animation is more than one full frame ahead of the compositor, an
51676         immediate flush is triggered.  This takes into account overdraw
51677         elimination by the skip-on-clear optimization that is built-in to
51678         SkDeferredCanvas, to allow non-RAF animations that clear the canvas at
51679         each frame to run without any rate limiting. This change also
51680         incidentally improves frame rate in many cases by providing more
51681         granular batching of GPU API calls, resulting in better pipelining
51682         through the command buffer.
51683
51684         Test: webkit_unit_test Canvas2DLayerManagerTest.testDeferredFrame
51685
51686         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
51687         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
51688         (WebCore::Canvas2DLayerBridge::limitPendingFrames):
51689         Called at the end of a task (usually a scheduled script action) that
51690         invoked 2d canvas rendering context methods. The end of the task
51691         marks the completion of a displayable frame. This method will trigger
51692         a flush if it detects that the layer has pending draw commands that
51693         are more that one frame old.
51694         (WebCore):
51695         (WebCore::Canvas2DLayerBridge::flushedDrawCommands):
51696         (WebCore::Canvas2DLayerBridge::didFlushPendingCommands):
51697         (WebCore::Canvas2DLayerBridge::skippedPendingDrawCommands):
51698         (WebCore::Canvas2DLayerBridge::flush):
51699         (WebCore::Canvas2DLayerBridge::contextAcquired):
51700         * platform/graphics/chromium/Canvas2DLayerBridge.h:
51701         (Canvas2DLayerBridge):
51702         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
51703         (WebCore::Canvas2DLayerManager::~Canvas2DLayerManager):
51704         (WebCore::Canvas2DLayerManager::willProcessTask):
51705         (WebCore):
51706         (WebCore::Canvas2DLayerManager::didProcessTask):
51707         (WebCore::Canvas2DLayerManager::layerDidDraw):
51708         * platform/graphics/chromium/Canvas2DLayerManager.h:
51709         (Canvas2DLayerManager):
51710
51711 2012-10-10  Beth Dakin  <bdakin@apple.com>
51712
51713         https://bugs.webkit.org/show_bug.cgi?id=98968
51714         REGRESSION: Unable to scroll with trackpad on some websites after 
51715         r130783
51716
51717         Reviewed by Simon Fraser.
51718
51719         This bug seems to reproduce mostly on web pages that require login. 
51720         The re-routing causes extra churn of the RenderLayerBacking, and we 
51721         end up destroying and re-creating the backing and therefore the 
51722         ScrollingStateNodes, and when the timing is just wrong we get into a 
51723         state where the ScrollingTree has a set of incorrect information. 
51724         This patch fixes the bug by making sure the ScrollingStateNodes keep 
51725         the ScrollingTree in synch with their re-set data.
51726
51727         Tell the ScrollingStateTree that the root layer has changed.
51728         * page/scrolling/ScrollingCoordinator.cpp:
51729         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
51730
51731         New virtual function will set every property as having changed.
51732         * page/scrolling/ScrollingStateNode.h:
51733         (WebCore::ScrollingStateNode::setHasChangedProperties):
51734         * page/scrolling/ScrollingStateScrollingNode.cpp:
51735         (WebCore::ScrollingStateScrollingNode::setHasChangedProperties):
51736         (WebCore):
51737         * page/scrolling/ScrollingStateScrollingNode.h:
51738
51739         When the root layer changes, make sure we update the ScrollingTree 
51740         appropriately by indicating that every property could have changed.
51741         * page/scrolling/ScrollingStateTree.cpp:
51742         (WebCore::ScrollingStateTree::rootLayerDidChange):
51743         (WebCore):
51744         * page/scrolling/ScrollingStateTree.h:
51745         (ScrollingStateTree):
51746
51747 2012-10-10  MORITA Hajime  <morrita@google.com>
51748
51749         [Chromium] Crash on SpellChecker::didCheck()
51750         https://bugs.webkit.org/show_bug.cgi?id=98476
51751
51752         Reviewed by Kent Tamura.
51753
51754         SpellChecker::didCheck() assumed m_processingRequest is non-NULL. However, SpellChecker::invokeRequest()
51755         calls SpellCheckRequest::didCancel(), which results didCheck() with NULL m_processingRequest.
51756         This chagne eliminates the problematic didCheck().
51757
51758         No new tests. The case depends on specific timing and is hard to hit by automated testing.
51759
51760         * editing/SpellChecker.cpp:
51761         (WebCore::SpellChecker::didCheck):
51762
51763 2012-10-10  MORITA Hajime  <morrita@google.com>
51764
51765         https://bugs.webkit.org/show_bug.cgi?id=95664
51766         [Shadow DOM] should be able to be available without <style scoped>
51767
51768         Reviewed by Dimitri Glazkov.
51769
51770         This change relaxes ENABLE(STYLE_SCOPED) compilation guard
51771         and styleScopedEnabled() runtime guard. The flags now masks
51772         user visible bits of the code, rather than all of it.
51773         This change also eliminates some redundant guards for simplicity.
51774
51775         Test: fast/dom/shadow/style-scoped-not-enabled.html
51776
51777         * css/StyleResolver.cpp:
51778         (WebCore::StyleResolver::matchScopedAuthorRules):
51779         (WebCore::StyleResolver::locateCousinList):
51780         (WebCore::StyleResolver::canShareStyleWithElement):
51781         (WebCore::StyleResolver::locateSharedStyle):
51782         * css/StyleScopeResolver.cpp:
51783         (WebCore::StyleScopeResolver::scopeFor):
51784         * css/StyleScopeResolver.h:
51785         (WebCore):
51786         * html/HTMLStyleElement.cpp:
51787         (WebCore::HTMLStyleElement::HTMLStyleElement):
51788         (WebCore::HTMLStyleElement::parseAttribute):
51789         (WebCore::HTMLStyleElement::scopedAttributeChanged):
51790         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
51791         (WebCore::HTMLStyleElement::registerWithScopingNode):
51792         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
51793         (WebCore::HTMLStyleElement::insertedInto):
51794         (WebCore::HTMLStyleElement::removedFrom):
51795         (WebCore::HTMLStyleElement::scoped):
51796         (WebCore::HTMLStyleElement::scopingElement):
51797         * html/HTMLStyleElement.h:
51798         (HTMLStyleElement):
51799         * testing/InternalSettings.cpp: Exporsing a flag for testing.
51800         (WebCore::InternalSettings::Backup::Backup):
51801         (WebCore::InternalSettings::Backup::restoreTo):
51802         (WebCore::InternalSettings::setStyleScopedEnabled):
51803         (WebCore):
51804         * testing/InternalSettings.h: Exporsing a flag for testing.
51805         (Backup):
51806         (InternalSettings):
51807         * testing/InternalSettings.idl: Exporsing a flag for testing.
51808
51809 2012-10-10  Roger Fong  <roger_fong@apple.com>
51810
51811         [WebGL] [On Mac] queried attributes and uniforms need to return the original variable name, not the mapped name.
51812         https://bugs.webkit.org/show_bug.cgi?id=98470
51813
51814         Reviewed by Timothy Horton.
51815
51816         When a variable name is too long we translate to a shorter version and keep a mapping between the long and short names.
51817         However, when querying for a variable client side using getActiveAttrib or getActiveUniform, we accidentally return the 
51818         translated names. This fix makes these methods return the original variable names.
51819
51820         Tested using Khronos WebGL conformance suite:
51821         conformance/glsl/misc/glsl-long-variable-names.html
51822
51823         * platform/graphics/GraphicsContext3D.h:
51824         (GraphicsContext3D):
51825         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: getActiveAttrib and getActiveUniform
51826         now use GraphicsContext3D::originalSymbolName to find the original variable name.
51827         (WebCore::GraphicsContext3D::getActiveAttrib):
51828         (WebCore::GraphicsContext3D::getActiveUniform):
51829         (WebCore):
51830         (WebCore::GraphicsContext3D::originalSymbolName): This method returns the original variable name given 
51831         the mapped name.
51832
51833 2012-10-10 Brady Eidson  <beidson@apple.com>
51834
51835         Switch over CachedResource::data() from taking a SharedBuffer to taking a ResourceBuffer.
51836         https://bugs.webkit.org/show_bug.cgi?id=98952
51837
51838         Reviewed by Anders Carlsson.
51839
51840         No new tests (No behavior change).
51841
51842         * html/ImageDocument.cpp:
51843         (WebCore::ImageDocumentParser::appendBytes):
51844         (WebCore::ImageDocumentParser::finish):
51845         * loader/SubresourceLoader.cpp:
51846         (WebCore::SubresourceLoader::sendDataToResource):
51847         (WebCore::SubresourceLoader::didFinishLoading):
51848         * loader/cache/CachedCSSStyleSheet.cpp:
51849         (WebCore::CachedCSSStyleSheet::data):
51850         * loader/cache/CachedCSSStyleSheet.h:
51851         (WebCore):
51852         (CachedCSSStyleSheet):
51853         * loader/cache/CachedFont.cpp:
51854         (WebCore::CachedFont::data):
51855         * loader/cache/CachedFont.h:
51856         (WebCore):
51857         (CachedFont):
51858         * loader/cache/CachedImage.cpp:
51859         (WebCore::CachedImage::data):
51860         * loader/cache/CachedImage.h:
51861         (CachedImage):
51862         * loader/cache/CachedRawResource.cpp:
51863         (WebCore::CachedRawResource::data):
51864         * loader/cache/CachedRawResource.h:
51865         (CachedRawResource):
51866         * loader/cache/CachedResource.cpp:
51867         (WebCore::CachedResource::data):
51868         * loader/cache/CachedResource.h:
51869         (CachedResource):
51870         * loader/cache/CachedSVGDocument.cpp:
51871         (WebCore::CachedSVGDocument::data):
51872         * loader/cache/CachedSVGDocument.h:
51873         (CachedSVGDocument):
51874         * loader/cache/CachedScript.cpp:
51875         (WebCore::CachedScript::data):
51876         * loader/cache/CachedScript.h:
51877         (CachedScript):
51878         * loader/cache/CachedShader.cpp:
51879         (WebCore::CachedShader::data):
51880         * loader/cache/CachedShader.h:
51881         (CachedShader):
51882         * loader/cache/CachedTextTrack.cpp:
51883         (WebCore::CachedTextTrack::data):
51884         * loader/cache/CachedTextTrack.h:
51885         (CachedTextTrack):
51886         * loader/cache/CachedXSLStyleSheet.cpp:
51887         (WebCore::CachedXSLStyleSheet::data):
51888         * loader/cache/CachedXSLStyleSheet.h:
51889         (CachedXSLStyleSheet):
51890
51891 2012-10-10  Jon Lee  <jonlee@apple.com>
51892
51893         [WK2] Activate plugins when user clicks on snapshot
51894         https://bugs.webkit.org/show_bug.cgi?id=98328
51895         <rdar://problem/12426681>
51896
51897         Reviewed by Brady Eidson.
51898
51899         Extend the default event handler to deal with plugins with snapshots.
51900         When the user clicks on the placeholder, the plugin is recreated and displayed.
51901
51902         * loader/FrameLoaderClient.h: Add new client function recreatePlugin(), which is
51903         expected to re-create the plugin with the same parameters as when it was run to
51904         obtain the plugin's snapshot placeholder.
51905
51906         * loader/EmptyClients.cpp: Stub implementation of recreatePlugin().
51907         * loader/EmptyClients.h:
51908         * WebCore.exp.in: Expose HTMLPlugInElement::pluginWidget().
51909
51910         * html/HTMLPlugInElement.cpp:
51911         (WebCore::HTMLPlugInElement::defaultEventHandler): Update to look for
51912         RenderSnapshottedPlugIn. If the plugin is not playing, have the renderer handle the
51913         event.
51914
51915         * rendering/RenderSnapshottedPlugIn.cpp:
51916         (WebCore::RenderSnapshottedPlugin::getCursor): Set to hand cursor when the plugin is not
51917         playing.
51918         (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the plugin using the
51919         left button, update the state of the element to playing. Recreate the plugin if the widget exists
51920         to begin with. The cached snapshot image will be saved for possible reuse on back/forward navigation.
51921         * rendering/RenderSnapshottedPlugIn.h:
51922         (RenderSnapshottedPlugIn):
51923
51924 2012-10-10  Kenichi Ishibashi  <bashi@chromium.org>
51925
51926         FontVerticalDataCache should allow zero as a key value
51927         https://bugs.webkit.org/show_bug.cgi?id=98877
51928
51929         Reviewed by Tony Chang.
51930
51931         Use WTF::UnsignedWithZeroKeyHashTraits for type definition of
51932         FontVerticalDataCache.
51933
51934         No new tests because there is no certain way to make
51935         FontPlatformDataHarfBuzz::uniqueID() be zero.
51936
51937         * platform/graphics/FontCache.cpp:
51938         (WebCore):
51939         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
51940         (WebCore::FontPlatformData::verticalData): Removed zero check of uniqueID().
51941         (WebCore::FontPlatformData::openTypeTable): Ditto.
51942
51943 2012-10-10  Regina Chung  <heejin.r.chung@samsung.com>
51944
51945         [EFL] Use the shareable GraphicsContext3DOpenGL* implementation.
51946         https://bugs.webkit.org/show_bug.cgi?id=96627
51947
51948         Reviewed by Kenneth Rohde Christiansen.
51949
51950         Changed EFL implementation of GraphicsContext3D(GC3D) to use GraphicsContext3DOpenGL*.
51951         It was initially implemented in a different way, due to characteristics of Evas,
51952         but it would be better to use the common implementation and find another way
51953         to deal with Evas, especially because all the duplicated code.
51954
51955         No new tests. No functional changes.
51956
51957         * PlatformEfl.cmake: Removed cairo implementation of GC3D and added efl files to WebCore_SOURCES.
51958         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Modified code so GC3DOpenGL* can be used.
51959         (WebCore::GraphicsContext3D::create):
51960         (WebCore::GraphicsContext3D::GraphicsContext3D):
51961         (WebCore::GraphicsContext3D::platformLayer):
51962         (WebCore::GraphicsContext3D::makeContextCurrent):
51963         (WebCore::GraphicsContext3D::setContextLostCallback):
51964         (WebCore::GraphicsContext3D::setErrorMessageCallback):
51965         (WebCore::GraphicsContext3D::paintToCanvas):
51966         (WebCore):
51967         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
51968         (WebCore::GraphicsContext3D::releaseShaderCompiler):
51969         (WebCore::GraphicsContext3D::getImageData):
51970         * platform/graphics/efl/GraphicsContext3DPrivate.cpp: Removed functions implemented in GC3DOpenGL*
51971         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
51972         (WebCore):
51973         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
51974         (WebCore::GraphicsContext3DPrivate::createSurface):
51975         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
51976         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
51977         (WebCore::GraphicsContext3DPrivate::isGLES2Compliant):
51978         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
51979         * platform/graphics/efl/GraphicsContext3DPrivate.h: Removed functions implemented in GC3DOpenGL*
51980         (GraphicsContext3DPrivate):
51981
51982 2012-10-10  Tony Chang  <tony@chromium.org>
51983
51984         Unreviewed, rolling out r130937, r130949, r130955, and
51985         r130957.
51986         http://trac.webkit.org/changeset/130937
51987         http://trac.webkit.org/changeset/130949
51988         http://trac.webkit.org/changeset/130955
51989         http://trac.webkit.org/changeset/130957
51990         https://bugs.webkit.org/show_bug.cgi?id=94290
51991
51992         Breaks Qt build
51993
51994         * CMakeLists.txt:
51995         * DerivedSources.make:
51996         * DerivedSources.pri:
51997         * GNUmakefile.am:
51998         * WebCore.gyp/WebCore.gyp:
51999         * WebCore.gyp/scripts/action_preprocessgrammar.py: Removed.
52000         * WebCore.vcproj/WebCore.vcproj:
52001         * WebCore.xcodeproj/project.pbxproj:
52002         * css/CSSGrammar.y: Renamed from Source/WebCore/css/CSSGrammar.y.in.
52003         * css/CSSGrammar.y.includes: Removed.
52004         * css/makegrammar.pl:
52005
52006 2012-10-10  Rob Buis  <rbuis@rim.com>
52007
52008         [BlackBerry] Adapt to new image for search-cancel
52009         https://bugs.webkit.org/show_bug.cgi?id=98954
52010
52011         Reviewed by Antonio Gomes.
52012
52013         The new image for search-cancel is bigger than the old one, so invert the scaling.
52014
52015         * platform/blackberry/RenderThemeBlackBerry.cpp:
52016         (WebCore::RenderThemeBlackBerry::adjustSearchFieldCancelButtonStyle):
52017
52018 2012-10-10  Tony Chang  <tony@chromium.org>
52019
52020         Unreviewed, another speculative fix for Qt Win.
52021
52022         * DerivedSources.pri: Pass --preprocessor to the perl script.
52023         * css/makegrammar.pl: Use --preprocessor instead of /usr/bin/gcc.
52024
52025 2012-10-10  Tony Chang  <tony@chromium.org>
52026
52027         Unreviewed, another speculative fix for Qt Win.
52028
52029         * DerivedSources.pri: Make the path slash marks be forward slashes to the .in file.
52030
52031 2012-10-10  David Barton  <dbarton@mathscribe.com>
52032
52033         Turn on ENABLE_MATHML for Chromium
52034         https://bugs.webkit.org/show_bug.cgi?id=96960
52035
52036         Reviewed by Adam Barth.
52037
52038         Add the rendering/mathml directory to search.
52039
52040         * WebCore.gyp/WebCore.gyp:
52041
52042 2012-10-10  Tony Chang  <tony@chromium.org>
52043
52044         Unreviewed, speculative build fix for Qt Win.
52045
52046         * css/makegrammar.pl: Rather than making a temp file, use a pipe to
52047         pass data from gcc to the final output file.
52048
52049 2012-10-10  Brady Eidson  <beidson@apple.com>
52050
52051         Switch CachedResource over from SharedBuffer to a new ResourceBuffer
52052         https://bugs.webkit.org/show_bug.cgi?id=98541
52053
52054         Reviewed by Anders Carlsson.
52055
52056         As part of preparation for a WebKit2 NetworkProcess, we need to change the data handle shared
52057         between CachedResources and ResourceLoaders to be one that can be backed by something other
52058         than a SharedBuffer.
52059
52060         ResourceBuffer is this new object. Right now it is directly backed by a SharedBuffer and there
52061         should be no change in behavior.
52062
52063         No new tests (No behavior change).
52064
52065         * WebCore.exp.in:
52066         * WebCore.xcodeproj/project.pbxproj:
52067         * WebCore.vcproj/WebCore.vcproj:
52068         * CMakeLists.txt:
52069         * GNUmakefile.list.am:
52070         * Target.pri:
52071         * WebCore.gypi:
52072
52073         Implementation of the new ResourceBuffer, backed directly by a SharedBuffer:
52074         * loader/ResourceBuffer.cpp: Added.
52075         (WebCore):
52076         (WebCore::ResourceBuffer::ResourceBuffer):
52077         (WebCore::ResourceBuffer::~ResourceBuffer):
52078         (WebCore::ResourceBuffer::data):
52079         (WebCore::ResourceBuffer::size):
52080         (WebCore::ResourceBuffer::isEmpty):
52081         (WebCore::ResourceBuffer::getSomeData):
52082         (WebCore::ResourceBuffer::sharedBuffer):
52083         (WebCore::ResourceBuffer::copy):
52084         (WebCore::ResourceBuffer::hasPurgeableBuffer):
52085         (WebCore::ResourceBuffer::releasePurgeableBuffer):
52086         (WebCore::ResourceBuffer::createCFData):
52087
52088         * loader/ResourceBuffer.h: Added.
52089         (WebCore):
52090         (ResourceBuffer):
52091         (WebCore::ResourceBuffer::create):
52092         (WebCore::ResourceBuffer::adoptSharedBuffer):
52093         * loader/mac/ResourceBuffer.mm: Added.
52094
52095         (WebCore):
52096         (WebCore::ResourceBuffer::createNSData):
52097
52098         Switch CachedResource over to using it:
52099         * loader/cache/CachedResource.cpp:
52100         (WebCore::CachedResource::makePurgeable):
52101
52102         * loader/cache/CachedResource.h:
52103         (WebCore):
52104         (WebCore::CachedResource::resourceBuffer):
52105         (CachedResource):
52106
52107         Switch all the other CachedResource subclasses over to using it:
52108         * loader/cache/CachedCSSStyleSheet.cpp:
52109         (WebCore::CachedCSSStyleSheet::data):
52110
52111         * loader/cache/CachedFont.cpp:
52112         (WebCore::CachedFont::data):
52113         (WebCore::CachedFont::ensureCustomFontData):
52114
52115         * loader/cache/CachedImage.cpp:
52116         (WebCore::CachedImage::didAddClient):
52117         (WebCore::CachedImage::data):
52118
52119         * loader/cache/CachedRawResource.cpp:
52120         (WebCore::CachedRawResource::data):
52121
52122         * loader/cache/CachedScript.cpp:
52123         (WebCore::CachedScript::data):
52124
52125         * loader/cache/CachedShader.cpp:
52126         (WebCore::CachedShader::data):
52127
52128         * loader/cache/CachedTextTrack.cpp:
52129         (WebCore::CachedTextTrack::data):
52130         
52131         * loader/cache/CachedXSLStyleSheet.cpp:
52132         (WebCore::CachedXSLStyleSheet::data):
52133
52134         Switch other affect parties over to using it:
52135         * inspector/InspectorPageAgent.cpp:
52136         (WebCore::decodeBuffer):
52137         (WebCore::InspectorPageAgent::cachedResourceContent):
52138         (WebCore::InspectorPageAgent::sharedBufferContent):
52139
52140         * loader/DocumentLoader.cpp:
52141         (WebCore::DocumentLoader::subresource):
52142
52143         * loader/TextTrackLoader.cpp:
52144         (WebCore::TextTrackLoader::processNewCueData):
52145         (WebCore::TextTrackLoader::didReceiveData):
52146
52147         * loader/archive/cf/LegacyWebArchive.cpp:
52148         (WebCore::LegacyWebArchive::create):
52149
52150         * loader/icon/IconLoader.cpp:
52151         (WebCore::IconLoader::notifyFinished):
52152
52153         * platform/mac/PasteboardMac.mm:
52154         (WebCore::fileWrapperForImage):
52155
52156 2012-10-10  Julien Chaffraix  <jchaffraix@webkit.org>
52157
52158         Unreviewed build fix after r130940.
52159
52160         * platform/graphics/skia/GraphicsContextSkia.cpp:
52161         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52162         Avoid redefining the same variable twice.
52163
52164 2012-10-10  Alexis Menard  <alexis@webkit.org>
52165
52166         [Mac] Deprecate getPropertyShorthand from objective c bindings for future removal
52167         https://bugs.webkit.org/show_bug.cgi?id=98916
52168
52169         Reviewed by Timothy Hatcher.
52170
52171         Mark getPropertyShorthand as deprecated so we can remove it later. It will allow us
52172         to remove getPropertyShorthand from the web exposed API (this function is not part of
52173         any specification, it was there for historical reason).
52174
52175         No new tests : just mark a function as deprecated.
52176
52177         * bindings/objc/PublicDOMInterfaces.h:
52178
52179 2012-10-10  Mike West  <mkwst@chromium.org>
52180
52181         Web Inspector: add support for %c (style) in console API
52182         https://bugs.webkit.org/show_bug.cgi?id=69401
52183
52184         Reviewed by Pavel Feldman.
52185
52186         This patch mimics Firebug's '%c' option when calling 'console.log'
52187         messages. 'console.log("%cBlue!", "color: blue;");' will write blue
52188         text to the console, and so on.
52189
52190         To match Firebug's behavior, multiple '%c' entries will overwrite each
52191         other: only one style will be applied. Sorry, folks.
52192
52193         Test: inspector/console/console-format-style.html
52194
52195         * inspector/front-end/ConsoleMessage.js:
52196         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
52197         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.append):
52198         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
52199
52200 2012-10-10  Varun Jain  <varunjain@chromium.org>
52201
52202         [chromium] Spelling and grammar markers are pixelated in hidpi.
52203         https://bugs.webkit.org/show_bug.cgi?id=98339
52204
52205         Reviewed by Stephen White.
52206
52207         We create separate bitmaps for markers in normal and hidpi mode as per
52208         specification from UX and choose the right bitmap based on the current
52209         device scale factor.
52210
52211         Tests: editing/spelling/grammar-markers-hidpi.html
52212                editing/spelling/inline-spelling-markers-hidpi.html
52213
52214         * platform/graphics/skia/GraphicsContextSkia.cpp:
52215         (WebCore::draw2xMarker):
52216         (WebCore):
52217         (WebCore::draw1xMarker):
52218         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52219         * platform/graphics/skia/PlatformContextSkia.cpp:
52220         (WebCore::PlatformContextSkia::PlatformContextSkia):
52221         * platform/graphics/skia/PlatformContextSkia.h:
52222         (WebCore::PlatformContextSkia::deviceScaleFactor):
52223         (WebCore::PlatformContextSkia::setDeviceScaleFactor):
52224         (PlatformContextSkia):
52225
52226 2012-10-10  Pablo Flouret  <pablof@motorola.com>
52227
52228         Pre-process CSSGrammar.y before running through bison.
52229         https://bugs.webkit.org/show_bug.cgi?id=94290
52230
52231         Reviewed by Tony Chang.
52232
52233         Running CSSGrammar.y through a preprocessor allows the use of feature
52234         defines in all places of the yacc file (i.e. not just in C blocks).
52235         Mostly useful to be able to keep every part of a feature under feature
52236         flags for self-documenting purposes.
52237
52238         No new tests, CSSGrammar.y should be generated correctly and everything
52239         should keep working as before.
52240
52241         * CMakeLists.txt:
52242         * DerivedSources.make:
52243         * DerivedSources.pri:
52244         * GNUmakefile.am:
52245             Modify build systems to use makegrammar.pl to generate the .y files
52246             and run those through bison.
52247
52248         * WebCore.gyp/WebCore.gyp:
52249         * WebCore.gyp/scripts/action_preprocessgrammar.py: Added.
52250             Add a new action to preprocess the CSSGrammar.y.in file before the
52251             bison rule is run.
52252
52253         * WebCore.vcproj/WebCore.vcproj:
52254         * WebCore.xcodeproj/project.pbxproj:
52255             Add the new .y.in / .y.includes files.
52256
52257         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
52258             Also moved the top declarations section that has includes, defines,
52259             etc. to its own file. These shouldn't be touched by the first
52260             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
52261             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
52262             yet.
52263         * css/CSSGrammar.y.includes: Added.
52264             The aforementioned declarations header section. After the .y.in file
52265             is processed it will be concatenated with this one to make the
52266             CSSGrammar.y file.
52267
52268         * css/makegrammar.pl:
52269             Modify the script to handle .y.in files.
52270
52271 2012-10-10  Luciano Wolf  <luciano.wolf@openbossa.org>
52272
52273         EventHandler::handleGestureLongPress breaks compilation if CONTEXT_MENUS isn't set
52274         https://bugs.webkit.org/show_bug.cgi?id=98890
52275
52276         Reviewed by Caio Marcelo de Oliveira Filho.
52277
52278         * page/EventHandler.cpp:
52279         (WebCore::EventHandler::handleGestureLongPress):
52280
52281 2012-10-10  David Grogan  <dgrogan@chromium.org>
52282
52283         Inspector: display IndexedDB integer versions
52284         https://bugs.webkit.org/show_bug.cgi?id=95816
52285
52286         Reviewed by Vsevolod Vlasov.
52287
52288         Added basic test to database-structure.html
52289
52290         * inspector/Inspector.json:
52291         * inspector/InspectorIndexedDBAgent.cpp:
52292         (WebCore):
52293         * inspector/front-end/IndexedDBModel.js:
52294         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
52295         (WebInspector.IndexedDBModel.prototype._loadDatabase):
52296         (WebInspector.IndexedDBModel.Database):
52297         * inspector/front-end/IndexedDBViews.js:
52298         (WebInspector.IDBDatabaseView):
52299         (WebInspector.IDBDatabaseView.prototype._refreshDatabase):
52300
52301 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
52302
52303         Store a visible rect in GraphicsLayers, and optionally dump it in layerTreeAsText
52304         https://bugs.webkit.org/show_bug.cgi?id=98839
52305
52306         Reviewed by Sam Weinig.
52307
52308         To replace CATiledLayer with TileCaches, we need to be able to compute the visible part of a GraphicsLayer,
52309         in order to limit the extent of TileCache tiles. Reuse the existing code in GraphicsLayerCA for this,
52310         but store the computed rect in m_visibleRect.
52311         
52312         Add a flag to layerTreeAsText() so that tests can optionally include this visible rect in
52313         layer tree dumps. This output will be platform-specific, so we don't want to do it unconditionally.
52314
52315         * WebCore.exp.in: Signature of Frame::layerTreeAsText() changed.
52316         * page/Frame.cpp:
52317         (WebCore::Frame::layerTreeAsText): Change to take some enum flags rather than just a bool.
52318         * page/Frame.h:
52319         * platform/graphics/GraphicsLayer.cpp:
52320         (WebCore::GraphicsLayer::writeIndent): Make into a static class method so subclasses can use it.
52321         (WebCore::GraphicsLayer::dumpProperties): Call a virtual dumpAdditionalProperties() for subclasses.
52322         (showGraphicsLayerTree):
52323         * platform/graphics/GraphicsLayer.h:
52324         (GraphicsLayer): New LayerTreeAsTextIncludeVisibleRects flag.
52325         (WebCore::GraphicsLayer::dumpAdditionalProperties): New virtual method.
52326         * platform/graphics/ca/GraphicsLayerCA.cpp:
52327         (WebCore::GraphicsLayerCA::recursiveCommitChanges): clipRectForChildren and clipRectForSelf
52328         were previously unused and buggy. Fix to correctly compute clipRectForSelf, to assign
52329         to m_visibleRect.
52330         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump m_visibleRect.
52331         * platform/graphics/ca/GraphicsLayerCA.h:
52332         (GraphicsLayerCA):
52333         * rendering/RenderLayerCompositor.cpp:
52334         (WebCore::RenderLayerCompositor::layerTreeAsText): Convert the flags from Frame flags
52335         to GraphicsLayerFlags and pass them along.
52336         * rendering/RenderLayerCompositor.h:
52337         (RenderLayerCompositor):
52338         * testing/Internals.cpp:
52339         (WebCore::Internals::layerTreeAsText): Overloaded method to handle the optional IDL arguments.
52340         * testing/Internals.h: Add enum.
52341         * testing/Internals.idl: Add optional flags, and a const short to describe the flags.
52342
52343 2012-10-10  Shinya Kawanaka  <shinyak@chromium.org>
52344
52345         Needs internal API to return distributed nodes for InsertionPoint
52346         https://bugs.webkit.org/show_bug.cgi?id=98868
52347
52348         Reviewed by Hajime Morita.
52349
52350         When testing insertion points, we would like to have an internal API which returns a node list
52351         distributed to an insertion point.
52352
52353         We've added the API in Internals.
52354
52355         Test: fast/dom/shadow/distributed-nodes.html
52356
52357         * WebCore.exp.in:
52358         * html/shadow/InsertionPoint.cpp:
52359         (WebCore::InsertionPoint::distributedNodes): Returns the distributed nodes. When InsertionPoint is not
52360         attached, the result will be null, since the distribution is not calculated correctly.
52361         (WebCore):
52362         * html/shadow/InsertionPoint.h:
52363         (InsertionPoint):
52364         * testing/Internals.cpp:
52365         (WebCore::Internals::distributedNodes):
52366         (WebCore):
52367         * testing/Internals.h:
52368         (Internals):
52369         * testing/Internals.idl:
52370
52371 2012-10-10  Wei James  <james.wei@intel.com>
52372
52373         [Chromium]Android x86 content shell debug build warning for uninitialized value used as error with gcc 4.6
52374         https://bugs.webkit.org/show_bug.cgi?id=98629
52375
52376         Reviewed by Adam Barth.
52377
52378         Warning was taken as error for uninitialized value being used when
52379         building content shell for Android x86 with gcc 4.6.
52380
52381         * WebCore.gyp/WebCore.gyp:
52382
52383 2012-10-10  Andrei Bucur  <abucur@adobe.com>
52384
52385         [CSS Regions] Create a separate list for the invalid regions
52386         https://bugs.webkit.org/show_bug.cgi?id=98752
52387
52388         Reviewed by Andreas Kling.
52389
52390         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:
52391         - iterations through the region list don't need to worry about invalid regions
52392         - accessing the first/last region is straightforward
52393         - list manipulations are easier to implement (e.g. binary search for a region)
52394
52395         Tests: Adapted fast/regions/flows-dependency-same-flow.html to use the new dump format for the region chain.
52396
52397         * dom/WebKitNamedFlow.cpp:
52398         (WebCore::WebKitNamedFlow::getRegionsByContent): Now returns only the valid regions.
52399         (WebCore::WebKitNamedFlow::getRegions): Now returns only the valid regions.
52400         * rendering/RenderFlowThread.cpp:
52401         (WebCore::RenderFlowThread::RenderFlowThread):
52402         (WebCore::RenderFlowThread::layout):
52403         (WebCore::RenderFlowThread::updateLogicalWidth):
52404         (WebCore::RenderFlowThread::computeLogicalHeight):
52405         (WebCore::RenderFlowThread::repaintRectangleInRegions):
52406         (WebCore::RenderFlowThread::regionAtBlockOffset):
52407         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
52408         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
52409         (WebCore::RenderFlowThread::firstRegion):
52410         (WebCore::RenderFlowThread::lastRegion):
52411         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
52412         (WebCore::RenderFlowThread::regionInRange):
52413         (WebCore::RenderFlowThread::checkRegionsWithStyling):
52414         (WebCore::RenderFlowThread::objectInFlowRegion):
52415         (WebCore::RenderFlowThread::autoLogicalHeightRegionsCount):
52416         * rendering/RenderFlowThread.h:
52417         * rendering/RenderNamedFlowThread.cpp:
52418         (WebCore):
52419         (WebCore::addRegionToList):
52420         (WebCore::RenderNamedFlowThread::addRegionToThread):
52421         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
52422         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
52423         * rendering/RenderNamedFlowThread.h:
52424         (WebCore::RenderNamedFlowThread::invalidRenderRegionList):
52425         (RenderNamedFlowThread):
52426         (WebCore::RenderNamedFlowThread::canBeDestroyed):
52427         * rendering/RenderTreeAsText.cpp:
52428         (WebCore::writeRenderRegionList):
52429         (WebCore):
52430         (WebCore::writeRenderNamedFlowThreads): The valid regions are listed first followed by the invalid regions.
52431
52432 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52433
52434         Web Inspector: [Regression] Stale revisions are not cleared when inspector is opened for the already loaded page.
52435         https://bugs.webkit.org/show_bug.cgi?id=98915
52436
52437         Reviewed by Alexander Pavlov.
52438
52439         WorkspaceController now clears stale revisions on navigation as well.
52440
52441         * inspector/front-end/Workspace.js:
52442         (WebInspector.WorkspaceController):
52443         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
52444
52445 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52446
52447         Web Inspector: Exception when committing java script editing with revision history view open.
52448         https://bugs.webkit.org/show_bug.cgi?id=98908
52449
52450         Reviewed by Alexander Pavlov.
52451
52452         Added null check.
52453
52454         * inspector/front-end/RevisionHistoryView.js:
52455
52456 2012-10-10  Pavel Feldman  <pfeldman@chromium.org>
52457
52458         Web Inspector: protect node in the InspectorDOMNode::inspect
52459         https://bugs.webkit.org/show_bug.cgi?id=98914
52460
52461         Reviewed by Yury Semikhatsky.
52462
52463         * inspector/InspectorDOMAgent.cpp:
52464         (WebCore::InspectorDOMAgent::inspect):
52465
52466 2012-10-10  Mike West  <mkwst@google.com>
52467
52468         EditorCommand calls setProperty with the wrong parameters.
52469         https://bugs.webkit.org/show_bug.cgi?id=98896
52470
52471         Reviewed by Jochen Eisinger.
52472
52473         EditorCommand::executeToggleStyleInList calls
52474         StylePropertySet::setProperty with an ExceptionCode as the final
52475         argument. This only succeeds because it's automagically cast to a bool,
52476         which is what the method actually expects.
52477
52478         Implicitly passing in 'false' by dropping the parameter shouldn't change
52479         any visible functionality; no new tests are required.
52480
52481         * editing/EditorCommand.cpp:
52482         (WebCore::executeToggleStyleInList):
52483
52484 2012-10-10  Mike West  <mkwst@google.com>
52485
52486         HTMLTextFormControlElement calls setInlineStyleProperty with the wrong parameters.
52487         https://bugs.webkit.org/show_bug.cgi?id=98892
52488
52489         Reviewed by Jochen Eisinger.
52490
52491         HTMLTextFormControlElement::updatePlaceholderVisibility calls
52492         HTMLElement::setInlineStyleProperty with an ExceptionCode as the last
52493         parameter. This only succeeds because it's automagically cast to a bool,
52494         which is what the method actually expects.
52495
52496         Implicitly passing in 'false' by dropping the parameter shouldn't change
52497         any functionality; so no new tests are required.
52498
52499         * html/HTMLTextFormControlElement.cpp:
52500         (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
52501
52502 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
52503
52504         SQLResultSet.rowsAffected not cleared
52505         https://bugs.webkit.org/show_bug.cgi?id=46070
52506
52507         Reviewed by Kenneth Rohde Christiansen.
52508
52509         SQLResultSet.rowsAffected is supposed to return the number
52510         of rows that were changed by the statement. For "SELECT"
52511         statements, it should return 0.
52512
52513         However, our implementation currently relies on sqlite3_changes()
52514         to compute this value. sqlite3_changes() returns the number of
52515         direct row changes in the most recent INSERT, UPDATE, or DELETE
52516         statement within the same trigger context. Unfortunately, the
52517         most recent INSERT, UPDATE, or DELETE statement may not be the
52518         last statement. As a consequence, if you INSERT 1 row, then
52519         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
52520         INSERT and the SELECT statements.
52521
52522         The proposed solution is to use sqlite3_total_changes() instead
52523         of sqlite3_changes(). sqlite3_total_changes() returns the number
52524         of row changes caused by INSERT, UPDATE or DELETE statements since
52525         the database connection was opened. We now store the value
52526         returned by sqlite3_total_changes() before each statement in
52527         order to return the count difference in
52528         SQLiteDatabase::lastChanges().
52529
52530         Test: storage/websql/execute-sql-rowsAffected.html
52531
52532         * platform/sql/SQLiteDatabase.cpp:
52533         (WebCore::SQLiteDatabase::SQLiteDatabase):
52534         (WebCore::SQLiteDatabase::updateLastChangesCount):
52535         (WebCore):
52536         (WebCore::SQLiteDatabase::lastChanges):
52537         * platform/sql/SQLiteDatabase.h:
52538         (SQLiteDatabase):
52539         * platform/sql/SQLiteStatement.cpp:
52540         (WebCore::SQLiteStatement::step):
52541
52542 2012-10-10  Keishi Hattori  <keishi@webkit.org>
52543
52544         REGRESSION (r129738): Calendar picker is too wide when the input is rtl
52545         https://bugs.webkit.org/show_bug.cgi?id=98881
52546
52547         Reviewed by Kent Tamura.
52548
52549         Calendar picker should use param.isCalendarRTL instead of param.isRTL but some were left.
52550
52551         No new tests. Covered by ManualTests/forms/calendar-picker.html.
52552
52553         * Resources/pagepopups/calendarPicker.js:
52554         (CalendarPicker.prototype.fixWindowSize): Calendar picker should use param.isCalendarRTL instead of param.isRTL.
52555         (DaysTable.prototype._handleKey): Ditto.
52556
52557 2012-10-10  Alexander Pavlov  <apavlov@chromium.org>
52558
52559         Web Inspector: Semantically incorrect CSS rules result in broken source code data
52560         https://bugs.webkit.org/show_bug.cgi?id=98520
52561
52562         Reviewed by Vsevolod Vlasov.
52563
52564         Pop and throw away rule data from the stack when data have been collected for a semantically invalid CSS rule
52565         (which is not going to be created).
52566
52567         * css/CSSParser.cpp:
52568         (WebCore::CSSParser::createImportRule):
52569         (WebCore::CSSParser::createFontFaceRule):
52570         (WebCore::CSSParser::createPageRule):
52571         (WebCore::CSSParser::createRegionRule):
52572
52573 2012-10-10  Zeno Albisser  <zeno@webkit.org>
52574
52575         [Qt][Mac] GL_ARB_texture_rectangle must be activated when using ANGLE.
52576         https://bugs.webkit.org/show_bug.cgi?id=98387
52577
52578         Check for the availability of GL_ARB_texture_rectangle extension.
52579         In case it is available, we activate the extension for ANGLE.
52580         This is necessary for WebGL on mac, because the GraphicsSurface
52581         on this platform is based on an IOSurface, which requires this extension.
52582
52583         Reviewed by Noam Rosenthal.
52584
52585         * platform/graphics/qt/GraphicsContext3DQt.cpp:
52586         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
52587
52588 2012-10-10  Andreas Kling  <kling@webkit.org>
52589
52590         ElementAttributeData: tighten member packing on 64-bit.
52591         <http://webkit.org/b/98861>
52592
52593         Reviewed by Anders Carlsson.
52594
52595         Pack m_isMutable and m_arraySize into the slack from the RefCounted base on 64-bit.
52596         218kB progression on Membuster3.
52597
52598         * dom/ElementAttributeData.h:
52599         (ElementAttributeData):
52600
52601 2012-10-10  Alexandre Elias  <aelias@chromium.org>
52602
52603         Text Autosizing: Counteract funky window sizing on Android.
52604         https://bugs.webkit.org/show_bug.cgi?id=98809
52605
52606         Reviewed by Adam Barth.
52607
52608         In Chrome for Android, the window sizes provided to WebCore are
52609         currently in physical screen pixels instead of
52610         device-scale-adjusted units. For example window width on a
52611         Galaxy Nexus is 720 instead of 360.  Text autosizing expects
52612         device-independent pixels.  When Chrome for Android cuts over to
52613         the new coordinate space, it will be tied to the setting
52614         applyPageScaleFactorInCompositor.
52615
52616         No new tests.
52617
52618         * rendering/TextAutosizer.cpp:
52619         (WebCore::TextAutosizer::processSubtree):
52620
52621 2012-10-09  Philip Rogers  <pdr@google.com>
52622
52623         Recursively detach SVGElementInstances
52624         https://bugs.webkit.org/show_bug.cgi?id=98851
52625
52626         Reviewed by Ryosuke Niwa and Abhishek Arya
52627
52628         Before this patch, SVGElementInstance child nodes were not being detached. This
52629         patch makes detach() recursively detach SVGElementInstances.
52630
52631         * svg/SVGElementInstance.cpp:
52632         (WebCore::SVGElementInstance::detach):
52633
52634 2012-10-09  Kenichi Ishibashi  <bashi@chromium.org>
52635
52636         [Chromium] Fix harfbuzz-ng related code after r130231
52637         https://bugs.webkit.org/show_bug.cgi?id=98858
52638
52639         Reviewed by Kent Tamura.
52640
52641         Replace first/second with key/value.
52642
52643         No new tests. No changes in behavior.
52644
52645         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
52646         (WebCore::harfbuzzGetGlyph):
52647         * platform/graphics/skia/SimpleFontDataSkia.cpp:
52648         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
52649
52650 2012-10-09  Enrica Casucci  <enrica@apple.com>
52651
52652         Only measure text once instead of twice when performing line layout.
52653         https://bugs.webkit.org/show_bug.cgi?id=98317
52654         <rdar://problem/12080821>
52655
52656         Reviewed by Dan Bernstein.
52657
52658         Since we are measuring each word to find out where the line break should occur,
52659         we should cache that information to avoid measuring the run again when
52660         creating the line box. The bulk of the change is in nextLineBreak, where
52661         the measurements are collected and placed in a vector so that they can
52662         be consumed in setLogicalWidthForTextRun where we used to measure the
52663         text one more time.
52664         Each entry in the vector is a WordMeasurement object that contains information
52665         about the start and end offset in the run, the renderer, the measured width
52666         and, possibly, a list of fallback fonts.
52667         When we need to compute the width of the run to create the line box, we add
52668         all the measurements for the given renderer in the run to get the total width.
52669         This optiomization is currently disabled for platforms using HarfBuzz.
52670
52671         * platform/graphics/Font.cpp:
52672         (WebCore::Font::width): Added fallback fonts parameter.
52673         * platform/graphics/Font.h:
52674         (Font): Added fallback fonts parameter to the width static member function.
52675         This method is called when we compute the width using TextLayout.
52676         * platform/graphics/mac/ComplexTextController.cpp:
52677         (WebCore::TextLayout::width): Added fallback fonts parameter.
52678         (WebCore::Font::width):
52679         (WebCore::ComplexTextController::advance):
52680         * platform/graphics/mac/ComplexTextController.h:
52681         (ComplexTextController): Added fallback fonts parameter to advance method.
52682         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
52683         * rendering/RenderBlockLineLayout.cpp:
52684         (WordMeasurement): Added new class to hold measurement information.
52685         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
52686         cached information.
52687         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
52688         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
52689         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
52690         vector and its use.
52691         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
52692         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
52693         the measurements of the individual words and add them to the vector.
52694
52695 2012-10-09  Andreas Kling  <kling@webkit.org>
52696
52697         GlyphPageTreeNode should use HashMap<OwnPtr>.
52698         <http://webkit.org/b/98845>
52699
52700         Reviewed by Dan Bernstein.
52701
52702         - Replace manual memory management by OwnPtrs.
52703         - Added a GlyphPageTreeNodeMap typedef to make call sites look a bit nicer.
52704         = Changed some hashmap get()/remove() pairs to use the more efficient take() instead.
52705         - Made the constructor private, it has no external clients.
52706
52707         * platform/graphics/GlyphPageTreeNode.cpp:
52708         (WebCore::GlyphPageTreeNode::getRoot):
52709         (WebCore::GlyphPageTreeNode::pageCount):
52710         (WebCore::GlyphPageTreeNode::getChild):
52711         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
52712         (WebCore::GlyphPageTreeNode::pruneFontData):
52713         (WebCore::GlyphPageTreeNode::showSubtree):
52714         * platform/graphics/GlyphPageTreeNode.h:
52715         (GlyphPageTreeNode):
52716         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
52717
52718 2012-10-09  Kent Tamura  <tkent@chromium.org>
52719
52720         Sub-fields in input[type=time] should not be focusable if the input is disabled or read-only
52721         https://bugs.webkit.org/show_bug.cgi?id=98850
52722
52723         Reviewed by Kentaro Hara.
52724
52725         Covered by additional test cases of
52726         time-multiple-fields/time-multiple-fields-keyboard-events.html and
52727         time-multiple-fields/time-multiple-fields-mouse-events.html.
52728
52729         * html/shadow/DateTimeFieldElement.h:
52730         (FieldOwner): Add isFieldOwnerDisabledOrReadOnly.
52731         * html/shadow/DateTimeFieldElement.cpp:
52732         (WebCore::DateTimeFieldElement::isFocusable):
52733         Check isFieldOwnerDisabledOrReadOnly, and calls HTMLElement::isFocusable()
52734         just in case.
52735         * html/shadow/DateTimeEditElement.cpp:
52736         (WebCore::DateTimeEditElement::isFieldOwnerDisabledOrReadOnly): Added.
52737         * html/shadow/DateTimeEditElement.h:
52738         (DateTimeEditElement): Declare isFieldOwnerDisabledOrReadOnly.
52739
52740 2012-10-09  Robert Kroeger  <rjkroege@chromium.org>
52741
52742         [chromium] revert fling deacceleration parameter change
52743         https://bugs.webkit.org/show_bug.cgi?id=98820
52744
52745         Reviewed by Adrienne Walker.
52746
52747         After an extended discussion, it has been decided that a previous
52748         adjustment to fling deacceleration parameters should be reverted.
52749
52750         Tested by existing unit tests.
52751
52752         * platform/TouchFlingPlatformGestureCurve.cpp:
52753         (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
52754         (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
52755
52756 2012-10-09  Kent Tamura  <tkent@chromium.org>
52757
52758         Should reject invalid dates constructed with multiple fields UI
52759         https://bugs.webkit.org/show_bug.cgi?id=98727
52760
52761         Reviewed by Hajime Morita.
52762
52763         In input[type=date] with multiple fields UI, we allow users to set
52764         day-of-month value to 1-31 regardless of the month value. So users can
52765         construct an invalid date such as "2012-02-31". We should sanitize such
52766         values.
52767
52768         This change affects platforms with ENABLE_INPUT_TYPE_DATE &&
52769         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
52770
52771         Test: fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html
52772
52773         * html/BaseDateAndTimeInputType.h:
52774         (BaseDateAndTimeInputType): Make sanitizeValue protected to be called from
52775         BaseMultipleFieldsDateAndTimeInputType.
52776         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
52777         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
52778         Apply sanitizeValue to a value constructed in UI.
52779         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
52780         Ditto.
52781
52782 2012-10-09  Joe Mason  <jmason@rim.com>
52783
52784         Check for null m_frame in NetworkJob
52785         https://bugs.webkit.org/show_bug.cgi?id=98830
52786
52787         Reviewed by George Staikos.
52788
52789         PR 220025
52790
52791         * platform/network/blackberry/NetworkJob.cpp:
52792         (WebCore::NetworkJob::sendRequestWithCredentials):
52793         (WebCore::NetworkJob::storeCredentials):
52794
52795 2012-10-09  Jian Li  <jianli@chromium.org>
52796
52797         Update the CSS property used to support draggable regions.
52798         https://bugs.webkit.org/show_bug.cgi?id=97156
52799
52800         Reviewed by Adam Barth.
52801
52802         The CSS property to support draggable regions has been changed from
52803         "-webkit-widget-region" to "-webkit-app-region" in the following syntax:
52804            -webkit-app-region: drag|no-drag
52805
52806         The CSS parsing code for draggable regions is now different from the CSS
52807         parsing code for dashboard regions since we have quite different syntax.
52808
52809         We still try to share as much rendering update code as possible for
52810         these two features. To make the shared code easier to understand for
52811         both features, the name "DashboardRegions" in the shared code is changed
52812         to "AnnotatedRegions" to work for both dashboard regions and draggable
52813         regions.
52814
52815         Note that we still using WIDGET_REGION as feature name in order not to
52816         add more changes to this patch. It will be renamed to a more appropriate
52817         name in next patch. WIDGET_REGION is now only turned on for the chromium
52818         port.
52819
52820         Test: fast/css/draggable-region-parser.html
52821
52822         * Configurations/FeatureDefines.xcconfig: Disable WIDGET_REGION feature.
52823         * WebCore.exp.in: Update the exported symbol due to renaming.
52824         * css/CSSComputedStyleDeclaration.cpp: Update the CSS parsing.
52825         (WebCore):
52826         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52827         * css/CSSParser.cpp: Update the CSS parsing.
52828         (WebCore::CSSParser::parseValue):
52829         (WebCore):
52830         (WebCore::CSSParser::parseDashboardRegions):
52831         * css/CSSParserValues.cpp: Update the CSS parsing.
52832         (WebCore::CSSParserValue::createCSSValue):
52833         * css/CSSPrimitiveValue.cpp: Update the CSS parsing.
52834         (WebCore::isValidCSSUnitTypeForDoubleConversion):
52835         (WebCore):
52836         (WebCore::CSSPrimitiveValue::cleanup):
52837         (WebCore::CSSPrimitiveValue::customCssText):
52838         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
52839         (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
52840         * css/CSSPrimitiveValue.h: Update the CSS parsing.
52841         (CSSPrimitiveValue):
52842         * css/CSSProperty.cpp:
52843         (WebCore::CSSProperty::isInheritedProperty):
52844         * css/CSSPropertyNames.in: Rename the CSS property for draggable region.
52845         * css/CSSValueKeywords.in: Add the keywords supported for the draggable region.
52846         * css/DashboardRegion.h: Remove WIDGET_REGION guard.
52847         (DashboardRegion):
52848         * css/StyleResolver.cpp: Update the CSS parsing.
52849         (WebCore::StyleResolver::collectMatchingRulesForList):
52850         * dom/Document.cpp: Rename dashboardRegions to annotatedRegions.
52851         (WebCore::Document::Document):
52852         (WebCore::Document::annotatedRegions):
52853         (WebCore::Document::setAnnotatedRegions):
52854         (WebCore::Document::reportMemoryUsage):
52855         * dom/Document.h: Rename dashboardRegions to annotatedRegions.
52856         (WebCore):
52857         (WebCore::Document::setAnnotatedRegionsDirty):
52858         (WebCore::Document::annotatedRegionsDirty):
52859         (WebCore::Document::hasAnnotatedRegions):
52860         (WebCore::Document::setHasAnnotatedRegions):
52861         (Document):
52862         * page/Chrome.cpp: Rename dashboardRegions to annotatedRegions.
52863         (WebCore::ChromeClient::annotatedRegionsChanged):
52864         * page/ChromeClient.h: Rename dashboardRegions to annotatedRegions.
52865         (ChromeClient):
52866         * page/FrameView.cpp: Rename dashboardRegions to annotatedRegions.
52867         (WebCore::FrameView::layout):
52868         (WebCore::FrameView::updateAnnotatedRegions):
52869         (WebCore::FrameView::paintContents):
52870         * page/FrameView.h: Rename dashboardRegions to annotatedRegions.
52871         (FrameView):
52872         * rendering/RenderInline.cpp:
52873         (WebCore::RenderInline::addAnnotatedRegions):
52874         * rendering/RenderInline.h: Rename dashboardRegions to annotatedRegions.
52875         (RenderInline):
52876         * rendering/RenderLayer.cpp: Rename dashboardRegions to annotatedRegions.
52877         (WebCore::RenderLayer::scrollTo):
52878         (WebCore::RenderLayer::setHasHorizontalScrollbar):
52879         (WebCore::RenderLayer::setHasVerticalScrollbar):
52880         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
52881         * rendering/RenderListBox.cpp: Rename dashboardRegions to annotatedRegions.
52882         (WebCore::RenderListBox::setHasVerticalScrollbar):
52883         * rendering/RenderObject.cpp: Rename dashboardRegions to annotatedRegions.
52884         (WebCore::RenderObject::styleWillChange):
52885         (WebCore::RenderObject::addAnnotatedRegions):
52886         (WebCore::RenderObject::collectAnnotatedRegions):
52887         * rendering/RenderObject.h: Rename dashboardRegions to annotatedRegions.
52888         (WebCore::AnnotatedRegionValue::operator==):
52889         (WebCore::AnnotatedRegionValue::operator!=):
52890         (AnnotatedRegionValue):
52891         (RenderObject):
52892         * rendering/style/RenderStyle.cpp: Update the CSS parsing.
52893         (WebCore::RenderStyle::diff):
52894         (WebCore):
52895         * rendering/style/RenderStyle.h: Update the CSS parsing.
52896         * rendering/style/RenderStyleConstants.h: Update the CSS parsing.
52897         * rendering/style/StyleDashboardRegion.h: Update the CSS parsing.
52898         * rendering/style/StyleRareNonInheritedData.cpp: Update the CSS parsing.
52899         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52900         (WebCore::StyleRareNonInheritedData::operator==):
52901         * rendering/style/StyleRareNonInheritedData.h: Update the CSS parsing.
52902         (WebCore):
52903         (StyleRareNonInheritedData):
52904
52905 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
52906
52907         Unreviewed, rolling out r130811 and r130821.
52908         http://trac.webkit.org/changeset/130811
52909         http://trac.webkit.org/changeset/130821
52910         https://bugs.webkit.org/show_bug.cgi?id=98831
52911
52912         Broke date-suggestion-picker-appearance-with-scroll-bar.html
52913         (Requested by abarth|gardening on #webkit).
52914
52915         * WebCore.exp.in:
52916         * dom/ContainerNode.cpp:
52917         (WebCore::ContainerNode::getUpperLeftCorner):
52918         (WebCore::ContainerNode::getLowerRightCorner):
52919         * dom/MouseRelatedEvent.cpp:
52920         (WebCore::MouseRelatedEvent::computeRelativePosition):
52921         * dom/Node.cpp:
52922         (WebCore::Node::convertToPage):
52923         (WebCore::Node::convertFromPage):
52924         * editing/FrameSelection.cpp:
52925         (WebCore::CaretBase::absoluteBoundsForLocalRect):
52926         * editing/RenderedPosition.cpp:
52927         (WebCore::RenderedPosition::absoluteRect):
52928         * editing/VisiblePosition.cpp:
52929         (WebCore::VisiblePosition::absoluteCaretBounds):
52930         * html/HTMLSelectElement.cpp:
52931         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
52932         * html/shadow/SliderThumbElement.cpp:
52933         (WebCore::SliderThumbElement::setPositionFromPoint):
52934         * html/shadow/SpinButtonElement.cpp:
52935         (WebCore::SpinButtonElement::defaultEventHandler):
52936         * page/FrameView.cpp:
52937         (WebCore::FrameView::convertFromRenderer):
52938         (WebCore::FrameView::convertToRenderer):
52939         * rendering/InlineTextBox.cpp:
52940         (WebCore::InlineTextBox::paintDocumentMarker):
52941         (WebCore::InlineTextBox::paintTextMatchMarker):
52942         (WebCore::InlineTextBox::computeRectForReplacementMarker):
52943         * rendering/LayoutState.cpp:
52944         (WebCore::LayoutState::LayoutState):
52945         * rendering/RenderBlock.cpp:
52946         (WebCore::RenderBlock::absoluteQuads):
52947         * rendering/RenderBox.cpp:
52948         (WebCore::RenderBox::absoluteQuads):
52949         (WebCore::RenderBox::absoluteContentBox):
52950         (WebCore::RenderBox::mapLocalToContainer):
52951         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
52952         * rendering/RenderBox.h:
52953         (RenderBox):
52954         * rendering/RenderBoxModelObject.cpp:
52955         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
52956         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
52957         * rendering/RenderBoxModelObject.h:
52958         (RenderBoxModelObject):
52959         * rendering/RenderEmbeddedObject.cpp:
52960         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
52961         * rendering/RenderFrameSet.cpp:
52962         (WebCore::RenderFrameSet::userResize):
52963         * rendering/RenderGeometryMap.cpp:
52964         (WebCore::RenderGeometryMap::absolutePoint):
52965         * rendering/RenderInline.cpp:
52966         (WebCore::RenderInline::mapLocalToContainer):
52967         * rendering/RenderInline.h:
52968         (RenderInline):
52969         * rendering/RenderLayer.cpp:
52970         (WebCore::RenderLayer::absoluteToContents):
52971         (WebCore::RenderLayer::convertToLayerCoords):
52972         (WebCore::RenderLayer::scrollTo):
52973         (WebCore::RenderLayer::calculateClipRects):
52974         (WebCore::RenderLayer::childrenClipRect):
52975         (WebCore::RenderLayer::selfClipRect):
52976         * rendering/RenderLayerBacking.cpp:
52977         (WebCore::RenderLayerBacking::contentsVisible):
52978         * rendering/RenderMediaControls.cpp:
52979         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
52980         * rendering/RenderMenuList.cpp:
52981         (WebCore::RenderMenuList::showPopup):
52982         * rendering/RenderObject.cpp:
52983         (WebCore::RenderObject::absoluteFocusRingQuads):
52984         (WebCore::RenderObject::localToAbsolute):
52985         (WebCore::RenderObject::absoluteToLocal):
52986         (WebCore::RenderObject::mapLocalToContainer):
52987         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
52988         (WebCore::RenderObject::localToContainerQuad):
52989         (WebCore::RenderObject::localToContainerPoint):
52990         * rendering/RenderObject.h:
52991         (RenderObject):
52992         (WebCore::RenderObject::localToAbsoluteQuad):
52993         * rendering/RenderText.cpp:
52994         (WebCore::RenderText::absoluteRectsForRange):
52995         (WebCore::RenderText::absoluteQuads):
52996         (WebCore::RenderText::absoluteQuadsForRange):
52997         * rendering/RenderTheme.cpp:
52998         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
52999         * rendering/RenderView.cpp:
53000         (WebCore::RenderView::mapLocalToContainer):
53001         (WebCore::RenderView::mapAbsoluteToLocalPoint):
53002         (WebCore::RenderView::selectionBounds):
53003         * rendering/RenderView.h:
53004         (RenderView):
53005         * rendering/RenderWidget.cpp:
53006         (WebCore::RenderWidget::updateWidgetGeometry):
53007         * rendering/svg/RenderSVGForeignObject.cpp:
53008         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
53009         * rendering/svg/RenderSVGForeignObject.h:
53010         (RenderSVGForeignObject):
53011         * rendering/svg/RenderSVGInline.cpp:
53012         (WebCore::RenderSVGInline::mapLocalToContainer):
53013         * rendering/svg/RenderSVGInline.h:
53014         (RenderSVGInline):
53015         * rendering/svg/RenderSVGModelObject.cpp:
53016         (WebCore::RenderSVGModelObject::mapLocalToContainer):
53017         (WebCore::RenderSVGModelObject::absoluteQuads):
53018         * rendering/svg/RenderSVGModelObject.h:
53019         (RenderSVGModelObject):
53020         * rendering/svg/RenderSVGRoot.cpp:
53021         (WebCore::RenderSVGRoot::mapLocalToContainer):
53022         * rendering/svg/RenderSVGRoot.h:
53023         (RenderSVGRoot):
53024         * rendering/svg/RenderSVGText.cpp:
53025         (WebCore::RenderSVGText::mapLocalToContainer):
53026         (WebCore::RenderSVGText::absoluteQuads):
53027         * rendering/svg/RenderSVGText.h:
53028         (RenderSVGText):
53029         * rendering/svg/SVGRenderSupport.cpp:
53030         (WebCore::SVGRenderSupport::mapLocalToContainer):
53031         * svg/SVGSVGElement.cpp:
53032         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
53033
53034 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
53035
53036         Unreviewed, rolling out r130812.
53037         http://trac.webkit.org/changeset/130812
53038         https://bugs.webkit.org/show_bug.cgi?id=98826
53039
53040         Caused fast/text/shaping/shaping-selection-rect to fail
53041         (Requested by abarth|gardening on #webkit).
53042
53043         * platform/graphics/Font.cpp:
53044         (WebCore::Font::width):
53045         * platform/graphics/Font.h:
53046         (Font):
53047         * platform/graphics/mac/ComplexTextController.cpp:
53048         (WebCore::TextLayout::width):
53049         (WebCore::Font::width):
53050         (WebCore::ComplexTextController::advance):
53051         * platform/graphics/mac/ComplexTextController.h:
53052         (ComplexTextController):
53053         * rendering/RenderBlock.h:
53054         (WebCore):
53055         (LineBreaker):
53056         (RenderBlock):
53057         * rendering/RenderBlockLineLayout.cpp:
53058         (WebCore::setLogicalWidthForTextRun):
53059         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
53060         (WebCore::RenderBlock::createLineBoxesFromBidiRuns):
53061         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
53062         (WebCore::textWidth):
53063         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
53064
53065 2012-10-09  Ryosuke Niwa  <rniwa@webkit.org>
53066
53067         DOM/textarea-edit.html spends 35% of time in numGraphemeClusters
53068         https://bugs.webkit.org/show_bug.cgi?id=98711
53069
53070         Reviewed by Kent Tamura.
53071
53072         Since the number of characters is always greater than the number of grapheme clusters,
53073         we can avoid calling computeLengthForSubmission when the number of characters is less
53074         than maxlength. We still have to count the number of LFs since they all need to be
53075         converted into CRLFs. This improves WebKit's score on DOM/textarea-edit.html by 45%.
53076
53077         * html/HTMLTextAreaElement.cpp:
53078         (WebCore::computeLengthForSubmission):
53079         (WebCore::numberOfLineBreaks):
53080         (WebCore::upperBoundForLengthForSubmission): Added.
53081         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
53082         (WebCore::HTMLTextAreaElement::tooLong):
53083
53084 2012-10-09  Nate Chapin  <japhet@chromium.org>
53085
53086         Make CachedResourceLoader RefCounted and have both Document
53087         and DocumentLoader hold RefPtrs. This is in preparation for
53088         caching main resources.
53089         https://bugs.webkit.org/show_bug.cgi?id=86787
53090
53091         Reviewed by Adam Barth.
53092
53093         No new tests, no functionality changes at this time.
53094
53095         * WebCore.exp.in:
53096         * WebCore.xcodeproj/project.pbxproj:
53097         * dom/Document.cpp:
53098         (WebCore::Document::Document): Only create our own CachedResourceLoader
53099             if we were given a null frame.
53100         (WebCore::Document::~Document):
53101         (WebCore::Document::cachedResourceLoader):
53102         (WebCore):
53103         * dom/Document.h:
53104         (Document):
53105         * loader/DocumentLoader.cpp: Throughout, use our m_cachedResourceLoader instead
53106             of the Document's pointer.
53107         (WebCore::DocumentLoader::DocumentLoader): Create a CachedResourceLoader.
53108         (WebCore::DocumentLoader::~DocumentLoader):
53109         (WebCore::DocumentLoader::isLoadingInAPISense):
53110         (WebCore::DocumentLoader::subresource):
53111         (WebCore::DocumentLoader::getSubresources):
53112         * loader/DocumentLoader.h:
53113         (WebCore::DocumentLoader::cachedResourceLoader):
53114         (DocumentLoader):
53115         * loader/SubresourceLoader.cpp: Remove m_document, since it only existed to keep alive and access the CachedResourceLoader.
53116             It can now be accessed from m_documentLoader.
53117         (WebCore::SubresourceLoader::SubresourceLoader):
53118         (WebCore::SubresourceLoader::~SubresourceLoader):
53119         (WebCore::SubresourceLoader::willSendRequest):
53120         (WebCore::SubresourceLoader::releaseResources):
53121         * loader/SubresourceLoader.h:
53122         (SubresourceLoader):
53123         * loader/cache/CachedResourceLoader.cpp: Handle the possibility of a null Document in several places.
53124         (WebCore::CachedResourceLoader::CachedResourceLoader):
53125         (WebCore::CachedResourceLoader::~CachedResourceLoader):
53126         (WebCore::CachedResourceLoader::frame):
53127         (WebCore::CachedResourceLoader::canRequest):
53128         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
53129         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
53130         (WebCore::CachedResourceLoader::loadDone):
53131         * loader/cache/CachedResourceLoader.h:
53132         (WebCore):
53133         (WebCore::CachedResourceLoader::create): Add create(), make constructor private.
53134         (CachedResourceLoader):
53135         (WebCore::CachedResourceLoader::document):
53136         (WebCore::CachedResourceLoader::setDocument):
53137         (WebCore::CachedResourceLoader::clearDocumentLoader):
53138
53139 2012-10-09  Alexander Shalamov  <alexander.shalamov@intel.com>
53140
53141         CSS Style is not recalculated when media attribute of style element is changed
53142         https://bugs.webkit.org/show_bug.cgi?id=96752
53143
53144         Reviewed by Kenneth Rohde Christiansen.
53145
53146         When "media" attribute of style element is changed, style should be recalculated.
53147         This patch modifies HTMLStyleElement::parseAttribute, so that when the media attribute
53148         is updated, new MediaQuerySet is created and applied to the style element then, document
53149         style is recalculated. Since media query set is updated for CSSStyleSheet, CSSOM wrapper
53150         for media query should be updated as well in order to sync with new media query set value.
53151
53152         Test: fast/media/mq-js-update-media.html
53153
53154         * css/CSSStyleSheet.cpp:
53155         (WebCore::CSSStyleSheet::setMediaQueries):
53156         * html/HTMLStyleElement.cpp:
53157         (WebCore::HTMLStyleElement::parseAttribute):
53158
53159 2012-10-09  Ben Murdoch  <benm@google.com>
53160
53161         [chromium][Android] Add WebSecurityOrigin::grantLoadLocalResources()
53162         https://bugs.webkit.org/show_bug.cgi?id=97689
53163
53164         Reviewed by Adam Barth.
53165
53166         In addition to the WebKit/chromium side of the change, remove the
53167         ASSERT in SecurityOrigin::grantLoadLocalResources(). Android WebView
53168         is a legitimate user of this API in cases where neither of the
53169         ASSERT'd conditions hold.
53170
53171         * page/SecurityOrigin.cpp:
53172         (WebCore::SecurityOrigin::grantLoadLocalResources): Remove ASSERT.
53173
53174 2012-10-09  Jon Lee  <jonlee@apple.com>
53175
53176         Build fix for Qt Windows.
53177
53178         * html/HTMLPlugInElement.h: Include Image.h.
53179
53180 2012-10-09  Enrica Casucci  <enrica@apple.com>
53181
53182         Only measure text once instead of twice when performing line layout.
53183         https://bugs.webkit.org/show_bug.cgi?id=98317
53184         <rdar://problem/12080821>
53185
53186         Reviewed by Dan Bernstein.
53187
53188         Since we are measuring each word to find out where the line break should occur,
53189         we should cache that information to avoid measuring the run again when
53190         creating the line box. The bulk of the change is in nextLineBreak, where
53191         the measurements are collected and placed in a vector so that they can
53192         be consumed in setLogicalWidthForTextRun where we used to measure the
53193         text one more time.
53194         Each entry in the vector is a WordMeasurement object that contains information
53195         about the start and end offset in the run, the renderer, the measured width
53196         and, possibly, a list of fallback fonts.
53197         When we need to compute the width of the run to create the line box, we add
53198         all the measurements for the given renderer in the run to get the total width.
53199
53200         * platform/graphics/Font.cpp:
53201         (WebCore::Font::width): Added fallback fonts parameter.
53202         * platform/graphics/Font.h:
53203         (Font): Added fallback fonts parameter to the width static member function.
53204         This method is called when we compute the width using TextLayout.
53205         * platform/graphics/mac/ComplexTextController.cpp:
53206         (WebCore::TextLayout::width): Added fallback fonts parameter.
53207         (WebCore::Font::width):
53208         (WebCore::ComplexTextController::advance):
53209         * platform/graphics/mac/ComplexTextController.h:
53210         (ComplexTextController): Added fallback fonts parameter to advance method.
53211         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
53212         * rendering/RenderBlockLineLayout.cpp:
53213         (WordMeasurement): Added new class to hold measurement information.
53214         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
53215         cached information.
53216         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
53217         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
53218         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
53219         vector and its use.
53220         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
53221         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
53222         the measurements of the individual words and add them to the vector.
53223
53224 2012-10-09  Levi Weintraub  <leviw@chromium.org>
53225
53226         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
53227         https://bugs.webkit.org/show_bug.cgi?id=98571
53228
53229         Reviewed by Emil A Eklund.
53230
53231         Refactoring all coordinate-switching functionality to use a single "mode" flag
53232         as opposed to having a bunch of boolean values. This enables the same set of
53233         options across the board, and a consistent interface. This was previously
53234         done for mapLocalToContainer.
53235
53236         The imptetus for this for this stems from the one logical change in this patch
53237         which only effects sub-pixel layout. FrameView::convertToRenderer and
53238         convertFromRenderer return IntPoint coordinates, and need to also snap transform
53239         offsets to determine proper rects for scrolling.
53240
53241         Unlabeled functions below are simply being updated to these new interfaces.
53242
53243         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
53244
53245         * WebCore.exp.in:
53246         * dom/ContainerNode.cpp:
53247         (WebCore::ContainerNode::getUpperLeftCorner):
53248         (WebCore::ContainerNode::getLowerRightCorner):
53249         * dom/Element.cpp:
53250         (WebCore::Element::boundsInRootViewSpace):
53251         * dom/MouseRelatedEvent.cpp:
53252         (WebCore::MouseRelatedEvent::computeRelativePosition):
53253         * dom/Node.cpp:
53254         (WebCore::Node::convertToPage):
53255         (WebCore::Node::convertFromPage):
53256         * html/HTMLSelectElement.cpp:
53257         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
53258         * html/shadow/SliderThumbElement.cpp:
53259         (WebCore::SliderThumbElement::setPositionFromPoint):
53260         * html/shadow/SpinButtonElement.cpp:
53261         (WebCore::SpinButtonElement::defaultEventHandler):
53262         * page/FrameView.cpp:
53263         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
53264         them to TransformState, which transforms the coordinates.
53265         (WebCore::FrameView::convertFromRenderer): Ditto.
53266         * rendering/LayoutState.cpp:
53267         (WebCore::LayoutState::LayoutState):
53268         * rendering/RenderBlock.cpp:
53269         (WebCore::RenderBlock::absoluteQuads):
53270         * rendering/RenderBox.cpp:
53271         (WebCore::RenderBox::absoluteQuads):
53272         (WebCore::RenderBox::mapLocalToContainer):
53273         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
53274         * rendering/RenderBox.h:
53275         (RenderBox):
53276         * rendering/RenderBoxModelObject.cpp:
53277         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
53278         * rendering/RenderBoxModelObject.h:
53279         (RenderBoxModelObject):
53280         * rendering/RenderEmbeddedObject.cpp:
53281         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
53282         * rendering/RenderFrameSet.cpp:
53283         (WebCore::RenderFrameSet::userResize):
53284         * rendering/RenderGeometryMap.cpp:
53285         (WebCore::RenderGeometryMap::absolutePoint):
53286         * rendering/RenderInline.cpp:
53287         (WebCore::RenderInline::mapLocalToContainer):
53288         * rendering/RenderInline.h:
53289         (RenderInline):
53290         * rendering/RenderLayer.cpp:
53291         (WebCore::RenderLayer::absoluteToContents):
53292         (WebCore::RenderLayer::calculateClipRects):
53293         * rendering/RenderMediaControls.cpp:
53294         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
53295         * rendering/RenderMenuList.cpp:
53296         (WebCore::RenderMenuList::showPopup):
53297         * rendering/RenderObject.cpp:
53298         (WebCore::RenderObject::localToAbsolute):
53299         (WebCore::RenderObject::absoluteToLocal):
53300         (WebCore::RenderObject::mapLocalToContainer):
53301         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
53302         (WebCore::RenderObject::localToContainerQuad):
53303         (WebCore::RenderObject::localToContainerPoint):
53304         * rendering/RenderObject.h:
53305         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
53306         now used for other conversion methods.
53307         (WebCore::RenderObject::localToAbsoluteQuad):
53308         * rendering/RenderTheme.cpp:
53309         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
53310         * rendering/RenderView.cpp:
53311         (WebCore::RenderView::mapLocalToContainer):
53312         (WebCore::RenderView::mapAbsoluteToLocalPoint):
53313         * rendering/RenderView.h:
53314         (RenderView):
53315         * rendering/svg/RenderSVGForeignObject.cpp:
53316         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
53317         * rendering/svg/RenderSVGForeignObject.h:
53318         (RenderSVGForeignObject):
53319         * rendering/svg/RenderSVGInline.cpp:
53320         (WebCore::RenderSVGInline::mapLocalToContainer):
53321         * rendering/svg/RenderSVGInline.h:
53322         (RenderSVGInline):
53323         * rendering/svg/RenderSVGModelObject.cpp:
53324         (WebCore::RenderSVGModelObject::mapLocalToContainer):
53325         * rendering/svg/RenderSVGModelObject.h:
53326         (RenderSVGModelObject):
53327         * rendering/svg/RenderSVGRoot.cpp:
53328         (WebCore::RenderSVGRoot::mapLocalToContainer):
53329         * rendering/svg/RenderSVGRoot.h:
53330         (RenderSVGRoot):
53331         * rendering/svg/RenderSVGText.cpp:
53332         (WebCore::RenderSVGText::mapLocalToContainer):
53333         * rendering/svg/RenderSVGText.h:
53334         (RenderSVGText):
53335         * rendering/svg/SVGRenderSupport.cpp:
53336         (WebCore::SVGRenderSupport::mapLocalToContainer):
53337         * svg/SVGSVGElement.cpp:
53338         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
53339
53340 2012-10-09  Jon Lee  <jonlee@apple.com>
53341
53342         [WK2] Have plugins render offscreen to capture snapshot
53343         https://bugs.webkit.org/show_bug.cgi?id=98326
53344         <rdar://problem/12426658>
53345
53346         Reviewed by Simon Fraser.
53347
53348         Change updateSnapshot() to use a PassRefPtr<Image> instead of Image*. WebKit2 ultimately
53349         hands the image off to RenderSnapshottedPlugin. A CachedImage instance then manages the
53350         lifetime of the Image.
53351
53352         * html/HTMLPlugInElement.h:
53353         (WebCore::HTMLPlugInElement::updateSnapshot):
53354         * html/HTMLPlugInImageElement.cpp:
53355         (WebCore::HTMLPlugInImageElement::updateSnapshot):
53356         * html/HTMLPlugInImageElement.h:
53357         (HTMLPlugInImageElement):
53358         * rendering/RenderSnapshottedPlugIn.cpp:
53359         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Updated to use the PassRefPtr<Image>
53360         pointer.
53361         * rendering/RenderSnapshottedPlugIn.h:
53362         (RenderSnapshottedPlugIn):
53363
53364 2012-10-09  Adam Barth  <abarth@webkit.org>
53365
53366         Unreviewed. Move this file to where the build systems think it should
53367         be. See https://bugs.webkit.org/show_bug.cgi?id=94755
53368
53369         * platform/graphics/CustomFilterConstants.h: Removed.
53370         * platform/graphics/filters/CustomFilterConstants.h: Copied from Source/WebCore/platform/graphics/CustomFilterConstants.h.
53371
53372 2012-10-09  Tony Chang  <tony@chromium.org>
53373
53374         Use computeLogical* methods instead of updateLogical* methods in RenderImage
53375         https://bugs.webkit.org/show_bug.cgi?id=98802
53376
53377         Reviewed by Eric Seidel.
53378
53379         We were storing the old values of width/height, calling updateLogical{Width,Height}, then restoring
53380         the old values.  Instead, use the computeLogical{Width,Height} methods so we don't have to overwrite
53381         the current values.
53382
53383         No new tests, this is just a refactoring.
53384
53385         * rendering/RenderImage.cpp:
53386         (WebCore::RenderImage::imageDimensionsChanged):
53387
53388 2012-10-09  Enrica Casucci  <enrica@apple.com>
53389
53390         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-
53391         background-canvas.html failing on the Mac after r130443
53392         https://bugs.webkit.org/show_bug.cgi?id=98545
53393
53394         Reviewed by Tony Chang.
53395
53396         Adding back the ! removed by mistake before submitting r130779. 
53397
53398         * platform/graphics/FontFastPath.cpp:
53399         (WebCore::Font::glyphDataAndPageForCharacter):
53400
53401 2012-10-09  Artem Simonov  <asimonov@rim.com>
53402
53403         [BlackBerry] EGL Context deleted prematurely in GraphicsContext3D destructor
53404         https://bugs.webkit.org/show_bug.cgi?id=98796
53405
53406         Reviewed by George Staikos.
53407
53408         Reordered destruction of GraphicsContext3D so that the compositing layer is
53409         destroyed first.
53410
53411         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
53412         (WebCore::GraphicsContext3D::~GraphicsContext3D):
53413
53414 2012-10-09  Ben Wagner  <bungeman@chromium.org>
53415
53416         Disable hinting when webkit-font-smoothing:antialiased is used on Mac.
53417         https://bugs.webkit.org/show_bug.cgi?id=98061
53418
53419         Reviewed by Stephen White.
53420
53421         Normal anti-aliased text matches subpixel anti-aliased text.
53422         However, text marked with webkit-font-smoothing:antialiased should be drawn without hinting to match Safari.
53423         See crbug.com/152304 . 
53424
53425         Test is fast/css/font-smoothing.html, but DRT runs with font smoothing disabled, so no change visible. 
53426
53427         * platform/graphics/skia/FontSkia.cpp:
53428         (WebCore::setupPaint):
53429         Set kNo_Hinting when webkit-font-smoothing is antialiased.
53430
53431 2012-10-09  Max Vujovic  <mvujovic@adobe.com>
53432
53433         [CSS Shaders] Create constants for vertex attribute sizes and offsets
53434         https://bugs.webkit.org/show_bug.cgi?id=94755
53435
53436         Reviewed by Dean Jackson.
53437
53438         Factor out the vertex attribute size and offset constants into a new file,
53439         CustomFilterConstants.h. Replace literals in CustomFilterMeshGenerator with the constants.
53440
53441         I could have added the constants to CustomFilterMeshGenerator.h, but this would make
53442         FECustomFilter depend on CustomFilterMeshGenerator.
53443
53444         I also could have added the constants to CustomFilterMesh.h, but this would make
53445         CustomFilterMeshGenerator depend on CustomFilterMesh.
53446
53447         No new tests. No change in behavior.
53448
53449         * GNUmakefile.list.am:
53450         * Target.pri:
53451         * WebCore.gypi:
53452         * WebCore.vcproj/WebCore.vcproj:
53453         * WebCore.xcodeproj/project.pbxproj:
53454         * platform/graphics/CustomFilterConstants.h: Added.
53455         (WebCore):
53456         * platform/graphics/filters/CustomFilterMeshGenerator.h:
53457         (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
53458             Use the new constants instead of literal values.
53459         * platform/graphics/filters/FECustomFilter.cpp:
53460         (WebCore::FECustomFilter::bindProgramAndBuffers):
53461             Pull the constant definitions out of here.
53462
53463 2012-10-09  Michael Saboff  <msaboff@apple.com>
53464
53465         MarkupAccumulator should optimally handle 8 bit Strings
53466         https://bugs.webkit.org/show_bug.cgi?id=98224
53467
53468         Reviewed by Ryosuke Niwa.
53469
53470         Updated appendCharactersReplacingEntities to take a string, offset and length and process 8 or 16 bit
53471         data as appropriate.  Also made it a member function of MarkupAccumulator.
53472
53473         No new tests, behavior covered by existing tests.
53474
53475         * editing/MarkupAccumulator.cpp:
53476         (WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
53477         (WebCore::MarkupAccumulator::appendAttributeValue):
53478         (WebCore::MarkupAccumulator::appendNodeValue):
53479         * editing/MarkupAccumulator.h:
53480         (MarkupAccumulator):
53481         * editing/markup.cpp:
53482         (WebCore::StyledMarkupAccumulator::appendText):
53483         (WebCore::urlToMarkup):
53484
53485 2012-10-09  Joshua Bell  <jsbell@chromium.org>
53486
53487         IndexedDB: Overflowing key generator should throw ConstraintError
53488         https://bugs.webkit.org/show_bug.cgi?id=98807
53489
53490         Reviewed by Tony Chang.
53491
53492         After the WebKit implementation landed throwing DataError, public-webapps
53493         consensus was that the exception thrown should be ConstraintError. Trivial
53494         change, and we pass one more W3C test submission.
53495
53496         Test: storage/indexeddb/key-generator.html
53497
53498         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
53499         (WebCore::IDBObjectStoreBackendImpl::putInternal):
53500
53501 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
53502
53503         Fix the order of the statements in my previous build fix.
53504
53505         Reviewed by Gustavo Noronha Silva.
53506
53507         My previous build build fix for ResourceHandleSoup ordered the assignment
53508         of the local ResourceHandleInternal incorrectly. Instead of being before
53509         both assertions, it should be interspersed among them.
53510
53511         * platform/network/soup/ResourceHandleSoup.cpp:
53512         (WebCore::createSoupMessageForHandleAndRequest):
53513
53514 2012-10-09  Beth Dakin  <bdakin@apple.com>
53515
53516         https://bugs.webkit.org/show_bug.cgi?id=98457
53517         ScrollingStateNodes should be referenced via IDs on 
53518         RenderLayerBacking
53519
53520         Reviewed by Simon Fraser.
53521
53522         This patch associates all ScrollingStateNodes with a 
53523         RenderLayerBacking via a HashMap from RenderLayerBackings to 
53524         ScrollingStateNodes on ScrollingCoordinator. Prior to this patch, the 
53525         root ScrollingStateNode was created immediately upon creation of the 
53526         ScrollingCoordinator, and it was constantly re-used for every main 
53527         FrameView. This doesn't work in the new model since that doesn't 
53528         allow that ScrollingStateNode to have a definite association with a 
53529         RenderLayerBacking. So this patch does also introduce some lifetime 
53530         differences with the ScrollingStateNodes.
53531
53532         If a page is going into the page cache, we should clear the state 
53533         tree. When the page is in the cache, we won't have access to the 
53534         RenderLayerBacking, and we don't want to be doing anything with the 
53535         ScrollingStateNodes anyway.
53536         * dom/Document.cpp:
53537         (WebCore::Document::setInPageCache):
53538
53539         When a page is restored from the page cache, call 
53540         frameViewRootLayerDidChange() to re-create the state tree.
53541         * loader/HistoryController.cpp:
53542         (WebCore::HistoryController::restoreScrollPositionAndViewState):
53543
53544         This new FrameView function will return the scrollLayerID for a given FrameView.
53545         * page/FrameView.cpp:
53546         (WebCore::FrameView::scrollLayerID):
53547         (WebCore):
53548         * page/FrameView.h:
53549         (FrameView):
53550
53551         There is a lot of unfortunate fiddling with the terrible 
53552         if-defs in ScrollingCoordinator. I added a FIXME to the header
53553         noting how we can avoid this in the future.
53554         * page/scrolling/ScrollingCoordinator.cpp:
53555
53556         All of this code used to refer to the rootStateNode directly. 
53557         Instead, now it looks up the proper ScrollingStateNode for the given 
53558         FrameView in the HashMap.
53559         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
53560         (WebCore::ScrollingCoordinator::frameViewWheelEventHandlerCountChanged):
53561         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
53562         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
53563         (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPosition):
53564         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
53565         (WebCore::ScrollingCoordinator::setScrollLayerForNode):
53566         (WebCore::ScrollingCoordinator::setNonFastScrollableRegionForNode):
53567         (WebCore::ScrollingCoordinator::setScrollParametersForNode):
53568         (WebCore::ScrollingCoordinator::setWheelEventHandlerCountForNode):
53569
53570         Returns the existing ScrollingStateNode for a given FrameView by 
53571         looking it up in the HashMap.
53572         (WebCore::ScrollingCoordinator::stateNodeForFrameView):
53573
53574         This is called when a RenderLayerBacking is destroyed. At that time, 
53575         its associated ScrollingStateNode is destroyed.
53576         (WebCore::ScrollingCoordinator::detachFromStateTree):
53577
53578         clearStateTree() clears the HashMap and destroys all of the nodes in 
53579         the current state tree.
53580         (WebCore::ScrollingCoordinator::clearStateTree):
53581
53582         Creates a new root state node for the given FrameView.
53583         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53584
53585         Some new functions for the new node stuff.
53586         * page/scrolling/ScrollingCoordinator.h:
53587         * page/scrolling/ScrollingCoordinatorNone.cpp:
53588         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
53589         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
53590         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
53591         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
53592         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
53593         (WebCore::ScrollingCoordinator::detachFromStateTree):
53594         (WebCore::ScrollingCoordinator::clearStateTree):
53595         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53596         (WebCore::setScrollParameters):
53597         (WebCore::setWheelEventHandlerCount):
53598
53599         New remove functions are used when the sate tree is cleared and when 
53600         a RenderLayerBacking is destroyed.
53601         * page/scrolling/ScrollingStateNode.cpp:
53602         (WebCore::ScrollingStateNode::removeChild):
53603         (WebCore):
53604         * page/scrolling/ScrollingStateNode.h:
53605         (WebCore::ScrollingStateNode::isScrollingStateScrollingNode):
53606         (ScrollingStateNode):
53607         (WebCore::ScrollingStateNode::parent):
53608
53609         New convenience function for casting to ScrollingStateScrollingNodes.
53610         * page/scrolling/ScrollingStateScrollingNode.h:
53611         (WebCore::toScrollingStateScrollingNode):
53612         (WebCore):
53613
53614         No longer automatically create a root node upon creation of the 
53615         ScrollingStateTree. We now want to wait to create the root node until 
53616         we have a RenderLayerBacking to associate it with.
53617         * page/scrolling/ScrollingStateTree.cpp:
53618         (WebCore::ScrollingStateTree::ScrollingStateTree):
53619         (WebCore::ScrollingStateTree::removeNode):
53620         (WebCore):
53621         * page/scrolling/ScrollingStateTree.h:
53622         (WebCore::ScrollingStateTree::setRootStateNode):
53623         (ScrollingStateTree):
53624
53625         RenderLayerBacking has a new data member called m_scrollLayerID. If 
53626         this RenderLayerBacking is represented in the scrolling tree, then 
53627         the ID with be unique and non-zero. 
53628         * rendering/RenderLayerBacking.cpp:
53629         (WebCore::RenderLayerBacking::RenderLayerBacking):
53630         (WebCore::RenderLayerBacking::~RenderLayerBacking):
53631         (WebCore::generateScrollLayerID):
53632         (WebCore):
53633         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
53634         (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
53635         * rendering/RenderLayerBacking.h:
53636         (RenderLayerBacking):
53637         (WebCore::RenderLayerBacking::scrollLayerID):
53638
53639         Move the call to ScrollingCooridinator::frameViewRootLayerDidChange() 
53640         from RenderLayerCompositor::attachRootLayer() to 
53641         RenderLayerCompositor:: updateBacking(). The problem with the old call 
53642         site is that there is no backing at that time, so we are trying to set 
53643         state on the root scrolling state node before we have enough 
53644         information to create that node and add it to the HashMap.
53645         * rendering/RenderLayerCompositor.cpp:
53646         (WebCore::RenderLayerCompositor::updateBacking):
53647         (WebCore::RenderLayerCompositor::attachRootLayer):
53648
53649 2012-10-09  Florin Malita  <fmalita@chromium.org>
53650
53651         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53652         https://bugs.webkit.org/show_bug.cgi?id=98683
53653
53654         Reviewed by Darin Adler.
53655
53656         Eric's notes:
53657
53658         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53659         They do basically the same thing, and the former is much more common (and less code). It's
53660         also safe, on the off-chance that we're using AtomicStrings which might otherwise go away.
53661
53662         No new tests, refactoring. 
53663
53664         * rendering/svg/SVGResources.cpp:
53665         (WebCore::clipperFilterMaskerTags):
53666         (WebCore::markerTags):
53667         (WebCore::fillAndStrokeTags):
53668         (WebCore::chainableResourceTags):
53669         (WebCore::SVGResources::buildCachedResources):
53670
53671 2012-10-09  Enrica Casucci  <enrica@apple.com>
53672
53673         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-background-canvas.html
53674         failing on the Mac after r130443
53675         https://bugs.webkit.org/show_bug.cgi?id=98545
53676
53677         Reviewed by Tony Chang.
53678
53679         Fixes a regression introduced with r130443.
53680         No new tests added since we already have tests covering this.
53681         Updated TestExpectations for chromium and mac.
53682
53683         * platform/graphics/FontFastPath.cpp:
53684         (WebCore::Font::glyphDataAndPageForCharacter): Text orientation should not be
53685         taken into account if the character is an ideograph or a symbol.
53686
53687 2012-10-09  Philip Rogers  <pdr@google.com>
53688
53689         Prevent animation when CSS attributeType is invalid.
53690         https://bugs.webkit.org/show_bug.cgi?id=94569
53691
53692         Reviewed by Dirk Schulze.
53693
53694         This patch changes hasValidAttributeType() to return false when
53695         we have attributeType=CSS with a non-CSS attribute name.
53696
53697         Previously we would animate non-CSS attributes when attributeType was
53698         CSS which resulted in crashes. To track this case, this patch catches
53699         changes to targetElement, attributeName, and attributeType and checks
53700         if an invalid combination is present. If invalid, hasInvalidCSSAttributeType()
53701         will return true causing hasValidAttributeType() to return false and prevent
53702         the animation from running.
53703
53704         Tests: svg/animations/animate-css-xml-attributeType.html
53705                svg/animations/invalid-css-attribute-crash-expected.svg
53706                svg/animations/invalid-css-attribute-crash.svg
53707
53708         * svg/SVGAnimateElement.cpp:
53709         (WebCore::SVGAnimateElement::hasValidAttributeType):
53710         (WebCore::SVGAnimateElement::targetElementWillChange):
53711         * svg/SVGAnimationElement.cpp:
53712         (WebCore::SVGAnimationElement::SVGAnimationElement):
53713         (WebCore::SVGAnimationElement::isSupportedAttribute):
53714
53715             This now supports the attributeType attribute which is stored in m_attributeType.
53716
53717         (WebCore::SVGAnimationElement::parseAttribute):
53718         (WebCore::SVGAnimationElement::setAttributeType):
53719
53720             Changes to attributeType, attributeName, and targetElement need to be tracked
53721             to determine when an invalid combination happens.
53722
53723         (WebCore::SVGAnimationElement::targetElementWillChange):
53724         (WebCore):
53725         (WebCore::SVGAnimationElement::setAttributeName):
53726         (WebCore::SVGAnimationElement::checkInvalidCSSAttributeType):
53727         * svg/SVGAnimationElement.h:
53728         (WebCore::SVGAnimationElement::attributeType):
53729         (SVGAnimationElement):
53730         (WebCore::SVGAnimationElement::hasInvalidCSSAttributeType):
53731         * svg/animation/SVGSMILElement.cpp:
53732         (WebCore::SVGSMILElement::targetElement):
53733         * svg/animation/SVGSMILElement.h:
53734         (SVGSMILElement):
53735
53736 2012-10-09  Pravin D  <pravind.2k4@gmail.com>
53737
53738         max-width property is does not overriding the width properties for css tables(display:table)
53739         https://bugs.webkit.org/show_bug.cgi?id=98455
53740
53741         Reviewed by Tony Chang.
53742
53743         The max-width property determines the maximum computed width an element can have. In case of css tables(display:table),
53744         the computed was not being limited by the max-width property. The current patch fixes this issue.
53745
53746         Test: fast/table/css-table-max-width.html
53747
53748         * rendering/RenderTable.cpp:
53749         (WebCore::RenderTable::updateLogicalWidth):
53750          Logic to compute the logical width of an element such that it does not exceed the max-width value.
53751          Also when both min-width and max-width are present, the following contraint is used to compute the logical width:
53752            1) min-width < Computed LogicalWidth < max-width, when min-width < max-width.
53753            2) Computed LogicalWidth = min-width, when min-width > max-width.
53754
53755 2012-10-09  Harald Alvestrand  <hta@google.com>
53756
53757         Change PeerConnection getStats function to single value local / remote
53758         elements in RTCStatsReport.
53759
53760         https://bugs.webkit.org/show_bug.cgi?id=98753
53761
53762         Reviewed by Adam Barth.
53763
53764         IDL of RTCStatsReport has been changed to make local/remote
53765         single valued RTCStatsElement attributes.
53766         The RTCStatsReport argument to index the list of RTCStatsElement
53767         in the local and remote functions has been removed.
53768
53769         Tested by modifications to RTCPeerConnection-stats.html
53770
53771         * Modules/mediastream/RTCStatsReport.cpp:
53772         (WebCore::RTCStatsReport::addElement):
53773         (WebCore::RTCStatsReport::addStatistic):
53774         * Modules/mediastream/RTCStatsReport.h:
53775         (WebCore::RTCStatsReport::local):
53776         (WebCore::RTCStatsReport::remote):
53777         (RTCStatsReport):
53778         * Modules/mediastream/RTCStatsReport.idl:
53779         * Modules/mediastream/RTCStatsResponse.cpp:
53780         (WebCore::RTCStatsResponse::addElement):
53781         (WebCore::RTCStatsResponse::addStatistic):
53782         * Modules/mediastream/RTCStatsResponse.h:
53783         (RTCStatsResponse):
53784         * platform/chromium/support/WebRTCStatsResponse.cpp:
53785         (WebKit::WebRTCStatsResponse::addElement):
53786         (WebKit::WebRTCStatsResponse::addStatistic):
53787         * platform/mediastream/RTCStatsResponseBase.h:
53788         (RTCStatsResponseBase):
53789
53790 2012-10-09  Antonio Gomes  <agomes@rim.com>
53791
53792         Get rid of FIXED_POSITION_CREATES_STACKING_CONTEXT in favor of Settings::fixedPositionCreatesStackingContext()
53793         https://bugs.webkit.org/show_bug.cgi?id=98756
53794
53795         Reviewed by Rob Buis.
53796
53797         No behavior change so no new tests.
53798
53799         * css/StyleResolver.cpp:
53800         (WebCore::StyleResolver::collectMatchingRulesForList):
53801
53802 2012-10-09  Simon Hausmann  <simon.hausmann@digia.com>
53803
53804         [Qt] Fix build with QtMultimedia
53805
53806         Reviewed by Tor Arne Vestbø.
53807
53808         This is an initial rudimentary port to of the QtMultimedia back-end,
53809         adapted to slight API changes and (more importantly) to the
53810         implementation of QAbstractVideoSurface instead of using
53811         QGraphicsVideoItem (which is in QtMultimediaWidgets).
53812
53813         * WebCore.pri:
53814         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
53815         (WebCore::MediaPlayerPrivateQt::supportsType):
53816         (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
53817         (WebCore::MediaPlayerPrivateQt::~MediaPlayerPrivateQt):
53818         (WebCore::MediaPlayerPrivateQt::didLoadingProgress):
53819         (WebCore::MediaPlayerPrivateQt::totalBytes):
53820         (WebCore::MediaPlayerPrivateQt::setVisible):
53821         (WebCore::MediaPlayerPrivateQt::surfaceFormatChanged):
53822         (WebCore::MediaPlayerPrivateQt::setSize):
53823         (WebCore::MediaPlayerPrivateQt::removeVideoItem):
53824         (WebCore::MediaPlayerPrivateQt::restoreVideoItem):
53825         (WebCore):
53826         (WebCore::MediaPlayerPrivateQt::start):
53827         (WebCore::MediaPlayerPrivateQt::supportedPixelFormats):
53828         (WebCore::MediaPlayerPrivateQt::present):
53829         (WebCore::MediaPlayerPrivateQt::paint):
53830         (WebCore::MediaPlayerPrivateQt::paintCurrentFrameInContext):
53831         (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
53832         * platform/graphics/qt/MediaPlayerPrivateQt.h:
53833         (MediaPlayerPrivateQt):
53834
53835 2012-10-09  Garrett Casto  <gcasto@chromium.org>
53836
53837         Allow users to specify a different hover image for TextFieldDecorationElement
53838         https://bugs.webkit.org/show_bug.cgi?id=93662
53839
53840         Reviewed by Kent Tamura.
53841
53842         * html/shadow/TextFieldDecorationElement.cpp:
53843         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
53844         (WebCore::TextFieldDecorationElement::updateImage):
53845         (WebCore::TextFieldDecorationElement::defaultEventHandler): Handles mouseover and mouseout events.
53846         (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Now returns true if the element is not disabled.
53847         (WebCore):
53848         * html/shadow/TextFieldDecorationElement.h:
53849         (TextFieldDecorator):
53850         (TextFieldDecorationElement):
53851
53852 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53853
53854         [Qt] Uploading images to Google+ using QtWebKit does not work.
53855         https://bugs.webkit.org/show_bug.cgi?id=72329
53856
53857         Reviewed by Jocelyn Turcotte.
53858
53859         Implement handling of Blob FormData, including its extensions to the File FormData.
53860
53861         * platform/network/qt/QNetworkReplyHandler.cpp:
53862         (WebCore::FormDataIODevice::FormDataIODevice):
53863         (WebCore::appendBlobResolved):
53864         (WebCore::FormDataIODevice::prepareFormElements):
53865         (WebCore::FormDataIODevice::computeSize):
53866         (WebCore::FormDataIODevice::moveToNextElement):
53867         (WebCore::FormDataIODevice::prepareCurrentElement):
53868         (WebCore::FormDataIODevice::openFileForCurrentElement):
53869         (WebCore::FormDataIODevice::readData):
53870         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53871         * platform/network/qt/QNetworkReplyHandler.h:
53872         (FormDataIODevice):
53873
53874 2012-10-09  Arpita Bahuguna  <arpitabahuguna@gmail.com>
53875
53876         Text decorations specified on the containing block are not properly applied when ::first-line is present.
53877         https://bugs.webkit.org/show_bug.cgi?id=93829
53878
53879         Reviewed by Abhishek Arya.
53880
53881         If a container's style and its pseudo :first-line style have unique
53882         text-decorations specified for them, only the :first-line text-decoarations
53883         were being applied.
53884
53885         The uploaded patch intends to first compute the text decoration colors
53886         for the containing box, followed by that of the first-line (if specified).
53887
53888         This thus avoids the condition wherein our containing box's text-decorations
53889         were not getting applied at all since initially we were only computing
53890         for the first-line style.
53891
53892         Test: fast/css/text-decorations-on-first-line-and-containing-block.html
53893
53894         * rendering/InlineTextBox.cpp:
53895         (WebCore::InlineTextBox::paintDecoration):
53896         getTextDecorationColors() is first called for computing the containing box's
53897         text-decoration values and then for first-line style's text-decorations,
53898         if specified.
53899
53900 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
53901
53902         Unreviewed, rolling out r130746.
53903         http://trac.webkit.org/changeset/130746
53904         https://bugs.webkit.org/show_bug.cgi?id=98749
53905
53906         It made 45 tests crash on Qt (Requested by Ossy on #webkit).
53907
53908         * platform/network/qt/QNetworkReplyHandler.cpp:
53909         (WebCore::FormDataIODevice::FormDataIODevice):
53910         (WebCore::FormDataIODevice::computeSize):
53911         (WebCore::FormDataIODevice::moveToNextElement):
53912         (WebCore::FormDataIODevice::openFileForCurrentElement):
53913         (WebCore::FormDataIODevice::readData):
53914         (WebCore::QNetworkReplyHandler::getIODevice):
53915         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53916         * platform/network/qt/QNetworkReplyHandler.h:
53917         (QNetworkReplyHandler):
53918         (FormDataIODevice):
53919
53920 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53921
53922         [Qt] Uploading images to Google+ using QtWebKit does not work.
53923         https://bugs.webkit.org/show_bug.cgi?id=72329
53924
53925         Reviewed by Jocelyn Turcotte.
53926
53927         Implement handling of Blob FormData, including its extensions to the File FormData.
53928
53929         * platform/network/qt/QNetworkReplyHandler.cpp:
53930         (WebCore::FormDataIODevice::FormDataIODevice):
53931         (WebCore::FormDataIODevice::computeSize):
53932         (WebCore::FormDataIODevice::moveToNextElement):
53933         (WebCore::FormDataIODevice::prepareCurrentElement):
53934         (WebCore::FormDataIODevice::openFileForCurrentElement):
53935         (WebCore::FormDataIODevice::readData):
53936         (WebCore::QNetworkReplyHandler::getIODevice):
53937         (WebCore::QNetworkReplyHandler::handleBlobDataIfAny):
53938         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53939         * platform/network/qt/QNetworkReplyHandler.h:
53940         (QNetworkReplyHandler):
53941         (FormDataIODevice):
53942
53943 2012-10-09  Keishi Hattori  <keishi@webkit.org>
53944
53945         Page popup should be smarter about its layout
53946         https://bugs.webkit.org/show_bug.cgi?id=98499
53947
53948         Reviewed by Kent Tamura.
53949
53950         This change fixes these two issues:
53951         1. Page popup should reposition itself so it won't get clipped by screen(Win/Linux) or rootview(Mac) bounds.
53952         2. Page popup should resize itself when it doesn't fit.
53953
53954         Test: platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html
53955
53956         * Resources/pagepopups/calendarPicker.js:
53957         (initialize): We need to set global.params at the beginning because we need it for resizeWindow().
53958         * Resources/pagepopups/colorSuggestionPicker.js: Added global.params.
53959         (handleMessage):
53960         (initialize):
53961         (handleArgumentsTimeout):
53962         * Resources/pagepopups/pickerCommon.js:
53963         (Rect): Represents an axis aligned rectangle.
53964         (Rect.prototype.get maxX): Gets position of right edge.
53965         (Rect.prototype.get maxY): Gets position of bottom edge.
53966         (Rect.prototype.toString):
53967         (Rect.intersection): Returns the intersection of two rectangles.
53968         (resizeWindow): Resize window to a certain size. Don't allow shrinking.
53969         (adjustWindowRect): Calculates the best position and size for the popup.
53970         (_adjustWindowRectVertically):
53971         (_adjustWindowRectHorizontally):
53972         (setWindowRect): Sets the position and size of the popup to the given rect.
53973         * Resources/pagepopups/suggestionPicker.css:
53974         (.suggestion-list): Don't show horizontal scroll bar.
53975         * Resources/pagepopups/suggestionPicker.js:
53976         (SuggestionPicker.prototype._fixWindowSize): 
53977         * page/PagePopupClient.cpp:
53978         (WebCore::PagePopupClient::addProperty): For adding an int to JSON.
53979         (WebCore::PagePopupClient::addProperty): For adding an IntRect to JSON.
53980         (WebCore):
53981         * page/PagePopupClient.h:
53982         (PagePopupClient):
53983
53984 2012-10-09  Hajime Morrita  <morrita@google.com>
53985
53986         [Refactoring] Scoped Style related code should have its own class.
53987         https://bugs.webkit.org/show_bug.cgi?id=98244
53988
53989         Reviewed by Dimitri Glazkov.
53990
53991         This change extracts StyleScopeResolver from StyleResolver to clarify
53992         the responsibility of the style scope handling. Now we can easily see
53993         where the style scoping needs to be involed.
53994
53995         Coming Shadow DOM related change like @host rules will fit within this class.
53996
53997         No new tests, refactoring.
53998
53999         * CMakeLists.txt:
54000         * GNUmakefile.list.am:
54001         * Target.pri:
54002         * WebCore.gypi:
54003         * WebCore.xcodeproj/project.pbxproj:
54004         * css/CSSAllInOne.cpp:
54005         * css/StyleResolver.cpp:
54006         (WebCore::StyleResolver::StyleResolver):
54007         (WebCore::StyleResolver::collectFeatures):
54008         (WebCore::StyleResolver::appendAuthorStylesheets):
54009         (WebCore::StyleResolver::pushParentElement):
54010         (WebCore::StyleResolver::popParentElement):
54011         (WebCore::StyleResolver::pushParentShadowRoot):
54012         (WebCore::StyleResolver::popParentShadowRoot):
54013         (WebCore::StyleResolver::matchScopedAuthorRules):
54014         (WebCore::StyleResolver::collectMatchingRulesForList):
54015         (WebCore::StyleResolver::reportMemoryUsage):
54016         * css/StyleResolver.h:
54017         (StyleResolver):
54018         * css/StyleScopeResolver.cpp: Added.
54019         (WebCore):
54020         (WebCore::StyleScopeResolver::StyleScopeResolver):
54021         (WebCore::StyleScopeResolver::~StyleScopeResolver):
54022         (WebCore::StyleScopeResolver::scopeFor):
54023         (WebCore::StyleScopeResolver::ruleSetFor):
54024         (WebCore::StyleScopeResolver::ensureRuleSetFor):
54025         (WebCore::StyleScopeResolver::setupStack):
54026         (WebCore::StyleScopeResolver::push):
54027         (WebCore::StyleScopeResolver::pop):
54028         (WebCore::StyleScopeResolver::collectFeaturesTo):
54029         (WebCore::StyleScopeResolver::reportMemoryUsage):
54030         * css/StyleScopeResolver.h: Added.
54031         (WebCore):
54032         (StyleScopeResolver):
54033         (WebCore::StyleScopeResolver::StackFrame::StackFrame):
54034         (StackFrame):
54035         (WebCore::StyleScopeResolver::hasScopedStyles):
54036         (WebCore::StyleScopeResolver::stackSize):
54037         (WebCore::StyleScopeResolver::stackFrameAt):
54038         (WebCore::StyleScopeResolver::matchesStyleBounds):
54039         (WebCore::StyleScopeResolver::stackIsConsistent):
54040         (WebCore::StyleScopeResolver::ensureStackConsistency):
54041         (WebCore::StyleScopeResolver::scopeFor):
54042         (WebCore::StyleScopeResolver::ensureRuleSetFor):
54043
54044 2012-10-08  Simon Hausmann  <simon.hausmann@digia.com>
54045
54046         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
54047         https://bugs.webkit.org/show_bug.cgi?id=98268
54048
54049         Reviewed by Tor Arne Vestbø.
54050
54051         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
54052
54053         QStyleFacade is a pure interface that lives in WebCore/platform/qt
54054         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
54055         minimal interface of what we need to draw with QStyle as well as basic
54056         hit testing and metric retrieval. It also provides a
54057         QStyleFacadeOption class that aggregates common meta-data for
54058         rendering primitives, such as direction, rectangle, state (sunken,
54059         enabled, etc.) or palette. It also provides some more slider/scrollbar
54060         specific fields in a slider sub-structure.
54061
54062         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
54063         them with state information from render objects, before calling straight to QStyle. Most of the common code
54064         was encapsulated in StylePainterQStyle.
54065
54066         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
54067         StylePainterQStyle to populate state into QStyleFacadeOption before
54068         calling into QStyleFacade.
54069
54070         The style facade is then implemented by QStyleFacadeImp, which extracts
54071         meta-data from QStyleFacadeOption arguments, populates style
54072         primitive specific QStyleOption objects and then calls on QStyle.
54073
54074         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
54075         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
54076         separate QtWebKitWidgets library in the future and therefore cannot use
54077         any WebCore types.
54078
54079         * Target.pri:
54080         * platform/qt/QStyleFacade.cpp: Added.
54081         (WebCore):
54082         (WebCore::QStyleFacade::styleForPage):
54083         * platform/qt/QStyleFacade.h: Added.
54084         (WebCore):
54085         (QStyleFacade):
54086         (WebCore::QStyleFacade::~QStyleFacade):
54087         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
54088         (QStyleFacadeOption):
54089         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
54090         (WebCore):
54091         (WebCore::RenderThemeQStyle::getStylePainter):
54092         (WebCore::StylePainterQStyle::StylePainterQStyle):
54093         (WebCore::StylePainterQStyle::init):
54094         (WebCore::RenderThemeQStyle::create):
54095         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
54096         (WebCore::RenderThemeQStyle::styleFactory):
54097         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
54098         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
54099         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
54100         (WebCore::RenderThemeQStyle::inflateButtonRect):
54101         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
54102         (WebCore::RenderThemeQStyle::adjustButtonStyle):
54103         (WebCore::RenderThemeQStyle::setButtonPadding):
54104         (WebCore::RenderThemeQStyle::paintButton):
54105         (WebCore::RenderThemeQStyle::paintTextField):
54106         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
54107         (WebCore::RenderThemeQStyle::paintTextArea):
54108         (WebCore::RenderThemeQStyle::setPopupPadding):
54109         (WebCore::RenderThemeQStyle::colorPalette):
54110         (WebCore::RenderThemeQStyle::paintMenuList):
54111         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
54112         (WebCore::RenderThemeQStyle::paintMenuListButton):
54113         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
54114         (WebCore::RenderThemeQStyle::paintProgressBar):
54115         (WebCore::RenderThemeQStyle::paintSliderTrack):
54116         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
54117         (WebCore::RenderThemeQStyle::paintSliderThumb):
54118         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
54119         (WebCore::RenderThemeQStyle::paintSearchField):
54120         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
54121         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
54122         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
54123         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
54124         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
54125         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
54126         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
54127         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
54128         (WebCore):
54129         (RenderThemeQStyle):
54130         (WebCore::RenderThemeQStyle::qStyle):
54131         (StylePainterQStyle):
54132         (WebCore::StylePainterQStyle::isValid):
54133         (WebCore::StylePainterQStyle::paintButton):
54134         (WebCore::StylePainterQStyle::paintTextField):
54135         (WebCore::StylePainterQStyle::paintComboBox):
54136         (WebCore::StylePainterQStyle::paintComboBoxArrow):
54137         (WebCore::StylePainterQStyle::paintSliderTrack):
54138         (WebCore::StylePainterQStyle::paintSliderThumb):
54139         (WebCore::StylePainterQStyle::paintInnerSpinButton):
54140         (WebCore::StylePainterQStyle::paintProgressBar):
54141         (WebCore::StylePainterQStyle::paintScrollCorner):
54142         (WebCore::StylePainterQStyle::paintScrollBar):
54143         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
54144         (WebCore):
54145         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
54146         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
54147         (WebCore::scPart):
54148         (WebCore::scrollbarPart):
54149         (WebCore::initSliderStyleOption):
54150         (WebCore::ScrollbarThemeQStyle::paint):
54151         (WebCore::ScrollbarThemeQStyle::hitTest):
54152         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
54153         (WebCore::ScrollbarThemeQStyle::invalidatePart):
54154         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
54155         (WebCore::ScrollbarThemeQStyle::thumbPosition):
54156         (WebCore::ScrollbarThemeQStyle::thumbLength):
54157         (WebCore::ScrollbarThemeQStyle::trackPosition):
54158         (WebCore::ScrollbarThemeQStyle::trackLength):
54159         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
54160         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
54161         (WebCore):
54162         (ScrollbarThemeQStyle):
54163         (WebCore::ScrollbarThemeQStyle::qStyle):
54164
54165 2012-10-08  Kiran Muppala  <cmuppala@apple.com>
54166
54167         Throttle DOM timers on hidden pages.
54168         https://bugs.webkit.org/show_bug.cgi?id=98474
54169
54170         Reviewed by Maciej Stachowiak.
54171
54172         When the visibility of a page changes to "hidden", all it's DOM timers are
54173         updated to align their fire times on one second intervals.  This limits the
54174         number of CPU wakes due to a hidden pages to one per second.
54175
54176         Test: fast/dom/timer-throttling-hidden-page.html
54177
54178         * Configurations/FeatureDefines.xcconfig:
54179         * WebCore.exp.in:
54180         * dom/Document.cpp:
54181         (WebCore):
54182         (WebCore::Document::timerAlignmentInterval):
54183         Read Page::timerAlignmentInterval and pass it along to DOMTimer.
54184
54185         * dom/Document.h:
54186         (Document):
54187         * dom/ScriptExecutionContext.cpp:
54188         (WebCore):
54189         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
54190         Scan through self DOM Timers and tell them to recompute their fire
54191         time based on the updated alignment interval.
54192         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
54193
54194         * dom/ScriptExecutionContext.h:
54195         (ScriptExecutionContext):
54196         * page/DOMTimer.cpp:
54197         (WebCore):
54198         (WebCore::DOMTimer::alignedFireTime):
54199         If the document's alignment interval is non zero, round up the fire
54200         time to the next multiple of alignment interval.
54201
54202         * page/DOMTimer.h:
54203         (DOMTimer):
54204         (WebCore::DOMTimer::defaultTimerAlignmentInterval):
54205         (WebCore::DOMTimer::setDefaultTimerAlignmentInterval):
54206         * page/Page.cpp:
54207         (WebCore::Page::Page):
54208         (WebCore):
54209         (WebCore::Page::setTimerAlignmentInterval):
54210         (WebCore::Page::timerAlignmentInterval):
54211         (WebCore::Page::setVisibilityState):
54212         Getter and Setter for alignment interval.  Expose setVisibilityState
54213         if either PAGE_VISIBILITY_API is enabled or if HIDDEN_PAGE_DOM_TIMER_REDUCTION
54214         is enabled.
54215
54216         * page/Page.h:
54217         (Page):
54218         * page/Settings.cpp:
54219         (WebCore):
54220         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval):
54221         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
54222         (WebCore::Settings::setDOMTimerAlignmentInterval):
54223         (WebCore::Settings::domTimerAlignmentInterval):
54224         * page/Settings.h:
54225         (Settings):
54226         * page/SuspendableTimer.cpp:
54227         (WebCore::SuspendableTimer::suspend):
54228         Save the time remaining to the original unaligned fire time, so that
54229         on resuming, the fire time will be correctly aligned using the latest
54230         alignment interval.
54231
54232         * platform/ThreadTimers.cpp:
54233         (WebCore::ThreadTimers::sharedTimerFiredInternal):
54234         Clear m_unalignedNextFireTime along with m_nextFireTime to keep
54235         them always in sync.
54236
54237         * platform/Timer.cpp:
54238         (WebCore::TimerBase::TimerBase):
54239         (WebCore::TimerBase::setNextFireTime):
54240         Save the requested fire time in m_unalignedNextFireTime and
54241         set m_nextFireTime to the aligned value.  The unalinged value
54242         is used to recompute fire time if alignment interval changes.
54243         (WebCore):
54244         (WebCore::TimerBase::didChangeAlignmentInterval):
54245         Recompute next fire time from m_unalignedNextFireTime.
54246         (WebCore::TimerBase::nextUnalignedFireInterval):
54247         Interval from current time to the original unaligned fire time.
54248
54249         * platform/Timer.h:
54250         (TimerBase):
54251         (WebCore::TimerBase::alignedFireTime):
54252
54253 2012-10-08  Andreas Kling  <kling@webkit.org>
54254
54255         1.18MB below RenderTableSection::setCachedCollapsedBorderValue() on Membuster3.
54256         <http://webkit.org/b/98670>
54257         <rdar://problem/12454276>
54258
54259         Reviewed by Anders Carlsson.
54260
54261         Refactor CollapsedBorderValue to only store the bits and pieces from the BorderValue
54262         that it actually needs. Packed the whole thing into 64 bits.
54263
54264         Reduces memory consumption by 547kB on Membuster3.
54265
54266         * rendering/RenderTableCell.cpp:
54267
54268             Add compile-time size assertion for CollapsedBorderValue.
54269
54270         * rendering/style/CollapsedBorderValue.h:
54271         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
54272         (WebCore::CollapsedBorderValue::width):
54273         (WebCore::CollapsedBorderValue::style):
54274         (WebCore::CollapsedBorderValue::color):
54275         (WebCore::CollapsedBorderValue::isTransparent):
54276         (WebCore::CollapsedBorderValue::precedence):
54277         (WebCore::CollapsedBorderValue::isSameIgnoringColor):
54278         (CollapsedBorderValue):
54279
54280             Apply shrinkwrap to CollapsedBorderValue. Removed specialized copy constructor since
54281             the class only has primitive members now.
54282
54283 2012-10-08  Yoshifumi Inoue  <yosin@chromium.org>
54284
54285         HTMLSelectElement::typeAheadFind depends on implementation dependent behavior
54286         https://bugs.webkit.org/show_bug.cgi?id=98710
54287
54288         Reviewed by Kent Tamura.
54289
54290         This patch gets rid of C/C++ implementation dependent behavior from
54291         HTMLSelectElement::typeAheadFind() which does modulo operation with
54292         a negative operand.
54293
54294         HTMLSelectElement::typeAheadFind() contains expression with modulo
54295         operator and dividend can be -1 when the "select" element without
54296         "option" element but "optgroup" element.
54297
54298         Test: fast/forms/select/select-typeahead-crash.html
54299
54300         * html/HTMLSelectElement.cpp:
54301         (WebCore::HTMLSelectElement::typeAheadFind): Changed to do modulo
54302         operation with both operands are non-negative.
54303
54304 2012-10-08  Kent Tamura  <tkent@chromium.org>
54305
54306         Take account of overflowing values for width calculation of a year sub-field
54307         https://bugs.webkit.org/show_bug.cgi?id=98506
54308
54309         Reviewed by Eric Seidel.
54310
54311         When we decide the width of a year field of an input[type=date]
54312         with the multiple fields UI, we need to take account of the
54313         current value width because we allow to set overflowing values to
54314         the input[type=date].
54315
54316         This change affects only platforms with INPUT_TYPE_DATE &&
54317         INPUT_MULTIPLE_FIELDS_UI.
54318
54319         Test: fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value.html
54320
54321         * html/shadow/DateTimeNumericFieldElement.cpp:
54322         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
54323         Take account of the current value width.
54324
54325 2012-10-08  Tony Chang  <tony@chromium.org>
54326
54327         image not displayed in flexbox
54328         https://bugs.webkit.org/show_bug.cgi?id=98611
54329
54330         Reviewed by Ojan Vafai.
54331
54332         Flexbox will override the width of a child and when stretching, will override the height of the child.
54333         When this happens, when an image loads, it checks to see if it's width/height has
54334         changed, and if so, does a relayout.  The overridden width/height was preventing this
54335         relayout from happening.
54336
54337         To fix, we clear all the override sizes when we're done laying out the flex children.
54338
54339         Test: css3/flexbox/relayout-image-load.html
54340
54341         * rendering/RenderFlexibleBox.cpp:
54342         (WebCore::RenderFlexibleBox::layoutBlock): Clear child override sizes.
54343         (WebCore::RenderFlexibleBox::clearChildOverrideSizes):
54344         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): No longer need to clear the override size
54345         here since it should have already been cleared.
54346         * rendering/RenderFlexibleBox.h:
54347
54348 2012-10-08  Andreas Kling  <kling@webkit.org>
54349
54350         REGRESSION(r130643): editing/pasteboard/data-transfer-item is failing on chromium.
54351         <http://webkit.org/b/98686>
54352
54353         Reviewed by Tony Chang.
54354
54355         Change ChromiumDataObject::createFromPasteboard() to use a ListHashSet instead of a HashSet so that
54356         item order is preserved.
54357
54358         * platform/chromium/ChromiumDataObject.cpp:
54359         (WebCore::ChromiumDataObject::createFromPasteboard):
54360
54361 2012-10-08  Eric Seidel  <eric@webkit.org>
54362
54363         Inline logicalHeightForRowSizing to shave another 2-3% off robohornet's resizecol.html
54364         https://bugs.webkit.org/show_bug.cgi?id=98703
54365
54366         Reviewed by Emil A Eklund.
54367
54368         This is very small potatoes.  There are much bigger wins for table layout yet, but
54369         this was an easy win.
54370
54371         This function should probably be converted to use int's only, as table cells are pixel-sized
54372         according to our subpixel-experts.
54373
54374         Also, I suspect there should be ways to early return with less-math in the common cases, but
54375         I've saved such for a later patch.
54376
54377         Note that I changed from using paddingBefore/paddingAfter (which include the instrinsic padding)
54378         to calling computedCSSPaddingBefore/computedCSSPaddingAfter directly as well.
54379
54380         This single function is about 11% of total time for robohornet's resizecol.
54381
54382         * rendering/RenderTableCell.cpp:
54383         * rendering/RenderTableCell.h:
54384         (WebCore::RenderTableCell::logicalHeightForRowSizing):
54385
54386 2012-10-08  Alec Flett  <alecflett@chromium.org>
54387
54388         IndexedDB: remove autogenerated objectStore/index id code
54389         https://bugs.webkit.org/show_bug.cgi?id=98085
54390
54391         Reviewed by Tony Chang.
54392
54393         Remove support for backend-generated objectstore and index
54394         ids. The frontend objects now manage that state during
54395         versionchange transactions. The IDBDatabaseBackendInterface and
54396         IDBObjectStoreBackendInterface methods will go away when
54397         https://bugs.webkit.org/show_bug.cgi?id=98682 lands.
54398
54399         No new tests as this is part of a refactoring, existing indexeddb
54400         tests cover correctness.
54401
54402         * Modules/indexeddb/IDBBackingStore.h:
54403         (IDBBackingStore):
54404         * Modules/indexeddb/IDBDatabase.cpp:
54405         (WebCore::IDBDatabase::createObjectStore):
54406         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
54407         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
54408         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
54409         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
54410         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
54411         (IDBDatabaseBackendInterface):
54412         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
54413         (WebCore::IDBLevelDBBackingStore::createObjectStore):
54414         (WebCore::setMaxIndexId):
54415         (WebCore::IDBLevelDBBackingStore::createIndex):
54416         * Modules/indexeddb/IDBLevelDBBackingStore.h:
54417         (IDBLevelDBBackingStore):
54418         * Modules/indexeddb/IDBObjectStore.cpp:
54419         (WebCore::IDBObjectStore::createIndex):
54420         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
54421         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
54422         (WebCore::IDBObjectStoreBackendImpl::createIndex):
54423         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
54424         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
54425
54426 2012-10-08  Jaehun Lim  <ljaehun.lim@samsung.com>
54427
54428         [CAIRO] Adjust the source rect size when IMAGE_DECODER_DOWN_SAMPLING is enabled
54429         https://bugs.webkit.org/show_bug.cgi?id=98630
54430
54431         Reviewed by Martin Robinson.
54432
54433         IMAGE_DECODER_DOWN_SAMPLING scales down the size of the big image.
54434         CAIRO needs to adjust the source size to the scaled value.
54435
54436         No new tests.
54437
54438         * platform/graphics/cairo/BitmapImageCairo.cpp:
54439         (WebCore::BitmapImage::draw):
54440
54441 2012-10-08  Adam Barth  <abarth@webkit.org>
54442
54443         Remove unused features of BlobBuilder
54444         https://bugs.webkit.org/show_bug.cgi?id=98331
54445
54446         Reviewed by Eric Seidel.
54447
54448         Now that we don't expose BlobBuilder as a web platform API, we can
54449         strip down the class to handle only those cases that are needed by the
54450         Blob constructor.
54451
54452         I've also renamed the class from WebKitBlobBuilder to BlobBuilder and
54453         made it stack allocated rather than RefCounted. A future patch will
54454         actually move the files around. (I didn't want to mix moving code
54455         around with modifying the code.)
54456
54457         * bindings/js/JSBlobCustom.cpp:
54458         (WebCore::JSBlobConstructor::constructJSBlob):
54459         * bindings/v8/custom/V8BlobCustom.cpp:
54460         (WebCore::V8Blob::constructorCallback):
54461         * fileapi/WebKitBlobBuilder.cpp:
54462         (WebCore):
54463         (WebCore::BlobBuilder::BlobBuilder):
54464         (WebCore::BlobBuilder::getBuffer):
54465         (WebCore::BlobBuilder::append):
54466         (WebCore::BlobBuilder::appendBytesData):
54467         (WebCore::BlobBuilder::getBlob):
54468         * fileapi/WebKitBlobBuilder.h:
54469         (WebCore):
54470         (BlobBuilder):
54471         * page/FeatureObserver.h:
54472
54473 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
54474
54475         Try to fix the debug build after r130699
54476
54477         Move the assignment of the ResourceHandleInternal local to before
54478         the include statement where it is used.
54479
54480         * platform/network/soup/ResourceHandleSoup.cpp:
54481         (WebCore::createSoupMessageForHandleAndRequest):
54482
54483 2012-10-08  Nate Chapin  <japhet@chromium.org>
54484
54485         Post-r130226 Cleanup: Comment a complicated if statement and make it a helper.
54486         https://bugs.webkit.org/show_bug.cgi?id=98463
54487
54488         Reviewed by Eric Seidel.
54489
54490         No new tests, refactor only.
54491
54492         * rendering/RenderLayer.cpp:
54493         (WebCore::frameElementAndViewPermitScroll):
54494         (WebCore::RenderLayer::scrollRectToVisible):
54495
54496 2012-10-06  Martin Robinson  <mrobinson@igalia.com>
54497
54498         [Soup] Simplify the way that requests are started
54499         https://bugs.webkit.org/show_bug.cgi?id=98532
54500
54501         Reviewed by Gustavo Noronha Silva.
54502
54503         Simplify the creation of the libsoup request and message when kicking off
54504         requests, by elminating a bit of duplicate code.
54505
54506         No new tests. This should not change any behavior.
54507
54508         * platform/network/ResourceHandle.h:
54509         (ResourceHandle):
54510         * platform/network/soup/ResourceHandleSoup.cpp:
54511         (WebCore):
54512         (WebCore::ResourceHandleInternal::soupSession): Ensure the session
54513         is initialized when passing it to the caller.
54514         (WebCore::createSoupMessageForHandleAndRequest): Added this helper which
54515         takes care of creating the SoupMessage for HTTP/HTTPS requests.
54516         (WebCore::createSoupRequestAndMessageForHandle): Collapsed the HTTP and
54517         non-HTTP request creation into this helper.
54518         (WebCore::ResourceHandle::start): Call the new helper now and then sendPendingRequest.
54519         (WebCore::ResourceHandle::sendPendingRequest): Instead of having special
54520         helpers to create and send the request, duplicating the logic for sending it
54521         across the file, add this method which can be used in both cases.
54522         (WebCore::waitingToSendRequest): Reworked the hasBeenSent method to answer
54523         the question of whether or not the request is ready to be sent, but is unsent.
54524         (WebCore::ResourceHandle::platformSetDefersLoading): Use the new helper.
54525         * platform/network/soup/ResourceRequest.h:
54526         (ResourceRequest): Added a new method for getting the URL string for soup.
54527         * platform/network/soup/ResourceRequestSoup.cpp:
54528         (WebCore::ResourceRequest::urlStringForSoup): Added.
54529
54530 2012-10-08  Eric Seidel  <eric@webkit.org>
54531
54532         Make no-column table-layout cases a little faster with inlining
54533         https://bugs.webkit.org/show_bug.cgi?id=98566
54534
54535         Reviewed by Julien Chaffraix.
54536
54537         This change is almost not worth it at only a couple percent boost on
54538         http://www.robohornet.org/tests/resizecol.html
54539         However, I think the logicalWidthFromTableColumn split it kinda nice
54540         so I've decided to post it anyway.
54541
54542         * rendering/RenderTable.cpp:
54543         (WebCore::RenderTable::slowColElement):
54544         * rendering/RenderTable.h:
54545         (WebCore::RenderTable::colElement):
54546         (RenderTable):
54547         * rendering/RenderTableCell.cpp:
54548         (WebCore::RenderTableCell::logicalWidthFromTableColumn):
54549         * rendering/RenderTableCell.h:
54550         (WebCore::RenderTableCell::styleOrColLogicalWidth):
54551         (RenderTableCell):
54552
54553 2012-10-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
54554
54555         Rename RenderObject::firstLineStyleSlowCase() to a more appropriate cachedFirstLineStyle()
54556         https://bugs.webkit.org/show_bug.cgi?id=98631
54557
54558         Reviewed by Eric Seidel.
54559
54560         Renaming firstLineStyleSlowCase() to cachedFirstLineStyle().
54561
54562         The current name is confusing since the function actually gets the
54563         the cached first-line styles.
54564         It also makes the name more descriptive of its functionality
54565         and in accordance with RenderObject::uncachedFirstLineStyle().
54566
54567         No new tests required for this change since no change in behavior is expected.
54568
54569         * rendering/RenderObject.cpp:
54570         (WebCore::RenderObject::cachedFirstLineStyle):
54571         * rendering/RenderObject.h:
54572         (WebCore::RenderObject::firstLineStyle):
54573         (RenderObject):
54574         Renamed RenderObject::firstLineStyleSlowCase() to cachedFirstLineStyle()
54575         and made the associated changes.
54576
54577 2012-10-08  Sami Kyostila  <skyostil@chromium.org>
54578
54579         Some non-scrollable elements are added to non-fast-scrollable region
54580         https://bugs.webkit.org/show_bug.cgi?id=97927
54581
54582         Reviewed by James Robinson.
54583
54584         Only RenderLayers that can actually be scrolled should be added to the
54585         ScrollingCoordinator's non-fast scrollable region. Otherwise we may
54586         needlessly fall back to main thread scrolling.
54587
54588         Test: ScrollingCoordinatorChromiumTest.clippedBodyTest
54589
54590         * rendering/RenderLayer.cpp:
54591         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
54592         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
54593
54594 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54595
54596         Move layerTreeAsText to window.internals
54597         https://bugs.webkit.org/show_bug.cgi?id=98690
54598
54599         Reviewed by James Robinson.
54600
54601         Add window.internals.layerTreeAsText(document), and change the tests to use it.
54602         I'll remove testRunner.layerTreeAsText() in a later patch.
54603
54604         * testing/Internals.cpp:
54605         (WebCore::Internals::layerTreeAsText):
54606         * testing/Internals.h:
54607         (Internals):
54608         * testing/Internals.idl:
54609
54610 2012-10-08  Jon Lee  <jonlee@apple.com>
54611
54612         Add render object that paints plugin snapshots
54613         https://bugs.webkit.org/show_bug.cgi?id=98322
54614         <rdar://problem/12426546>
54615
54616         Reviewed by Simon Fraser.
54617
54618         First, teach plugins to maintain a set of states when plugin snapshotting is enabled.
54619
54620         Second, a new RenderSnapshottedPlugIn class is a RenderEmbeddedObject that knows how to paint
54621         snapshots when the plugin is not visibly playing. It maintains a RenderImageResource to
54622         the generated poster image.
54623
54624         * html/HTMLPlugInElement.cpp:
54625         (WebCore::HTMLPlugInElement::HTMLPlugInElement): By default all plugins play on load.
54626         * html/HTMLPlugInElement.h: Move the inheritance of ImageLoaderClientBase down to
54627         HTMLPlugInImageElement, since that is the class that actually deals with image-based plugins.
54628         (WebCore::HTMLPlugInElement::displayState): Add bit for display state.
54629         (WebCore::HTMLPlugInElement::setDisplayState):
54630         (WebCore::HTMLPlugInElement::updateSnapshot):
54631
54632         * html/HTMLPlugInImageElement.cpp:
54633         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): If plugin snapshotting is
54634         enabled, plugin state is set to wait for a poster image.
54635         (WebCore::HTMLPlugInImageElement::createRenderer): Create RenderSnapshottedPlugIn if
54636         plugin snapshotting is enabled.
54637         (WebCore::HTMLPlugInImageElement::updateSnapshot): Once a snapshot is available, update the
54638         renderer and set its state to wait for user input to start the plugin.
54639         * html/HTMLPlugInImageElement.h:
54640         (HTMLPlugInImageElement):
54641
54642         * rendering/RenderObject.h:
54643         (WebCore::RenderObject::isSnapshottedPlugIn): Add new function to identify
54644         RenderSnapshottedPlugIn instances. Since RenderSnapshottedPlugIn inherits from
54645         RenderEmbeddedObject, isEmbeddedObject() still returns true.
54646         * rendering/RenderEmbeddedObject.h:
54647         (RenderEmbeddedObject): Elevate a few virtual methods to protected for
54648         RenderSnapshottedPlugIn to override.
54649
54650         * rendering/RenderSnapshottedPlugIn.cpp: Added.
54651         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize snapshot
54652         resource.
54653         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Shut down snapshot
54654         image resource to remove the renderer as a client, and remove image from memory cache.
54655         (WebCore::RenderSnapshottedPlugIn::plugInImageElement): Convenience function to get the
54656         HTML element.
54657         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Cache the snapshot, and repaint.
54658         (WebCore::RenderSnapshottedPlugIn::paint): If the plugin is not playing, paint like a
54659         RenderImage does.
54660         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the snapshot and overlay if the
54661         plugin is not playing.
54662         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot): Inspired by
54663         RenderImage::paintReplaced() and RenderImage::paintIntoRect().
54664         * rendering/RenderSnapshottedPlugIn.h: Added.
54665         (WebCore::RenderSnapshottedPlugIn::isSnapshottedPlugin): Returns true.
54666
54667         * rendering/RenderTheme.h: Add a function that paints the overlay on top of the snapshot.
54668         * rendering/RenderThemeMac.h:
54669         * rendering/RenderThemeMac.mm:
54670         (WebCore::RenderThemeMac::paintPlugInSnapshotOverlay):
54671
54672         * WebCore.xcodeproj/project.pbxproj: Add new RenderSnapshottedPlugIn class.
54673         * CMakeLists.txt: Ditto.
54674         * GNUmakefile.list.am: Ditto.
54675         * Target.pri: Ditto.
54676         * WebCore.gypi: Ditto.
54677         * WebCore.vcproj/WebCore.vcproj: Ditto.
54678         * rendering/RenderingAllInOne.cpp: Ditto.
54679
54680 2012-10-08  Hans Muller  <hmuller@adobe.com>
54681
54682         [CSS Exclusions] Add support for polygonal shapes
54683         https://bugs.webkit.org/show_bug.cgi?id=96811
54684
54685         Reviewed by Dirk Schulze.
54686
54687         Initial version of the layout support for polygonal exclusion shapes: the ExclusionPolygon class.
54688         Supports the public ExclusionShape operations using the algorithm described here:
54689         http://hansmuller-webkit.blogspot.com/2012/06/horizontal-box-polygon-intersection-for.html.
54690         Although both the "included" and "excluded" operations are supported, only the former is
54691         used, since only shape-inside is supported at the moment.
54692
54693         The ExclusionPolygon class stores the polygon's edges in an interval tree.
54694
54695         Polygon edges are represented by the ExclusionPolygonEdge struct, which records the indices of
54696         the pair of vertices joined by the edge.  Edge vertex index1 is usually less than index2, except
54697         the last edge where index2 is 0.  We plan to improve the algorithm that creates the edges
54698         by spanning vertices contained in sequences of more than two colinear vertices. For example,
54699         a triangular polygon might be specified with 5 vertices like this: 3,0 5,0, 5,5, 4,4 2,2, 0,0.
54700         By spanning the extra colinear points: 0,0 5,0, 5,5, which implies index1-index2 edges: 5-1 1-2 2-5.
54701
54702         Although the implementation supports complex polygons, the layout code is limited to
54703         essentially rectangular shapes until a patch for https://bugs.webkit.org/show_bug.cgi?id=96813
54704         lands.
54705
54706         Tests: fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html
54707                fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html
54708                fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html
54709                fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html
54710                fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html
54711
54712         * CMakeLists.txt:
54713         * GNUmakefile.list.am:
54714         * Target.pri:
54715         * WebCore.gypi:
54716         * WebCore.vcproj/WebCore.vcproj:
54717         * WebCore.xcodeproj/project.pbxproj:
54718         * rendering/ExclusionPolygon.cpp: Added.
54719         (WebCore):
54720         (EdgeIntersection): Internal description of the intersection of a polygon edge and a horizontal line.
54721         (WebCore::ExclusionPolygon::ExclusionPolygon): See the introductory text above for a description of this type.
54722         (WebCore::computeXIntersection): Find and classify the X intercept of a polygon edge with horizontal line, if any.
54723         (WebCore::ExclusionPolygon::rightVertexY): This method is used to decide if a horizontal line "crosses" a vertex.
54724         (WebCore::appendIntervalX): Append an x coordinate to a vector of ExclusionIntervals.
54725         (WebCore::ExclusionPolygon::computeXIntersections): Return a vector of the intersections of a horizontal line with the polygon's edges.
54726         (WebCore::ExclusionPolygon::computeEdgeIntersections): Return a vector of the X projections of the edges that overlap a horizonal rectangle.
54727         (WebCore::ExclusionPolygon::getExcludedIntervals): Return a SegmentList of the X intervals within a horizontal rectangle that overlap the polygon.
54728         (WebCore::ExclusionPolygon::getIncludedIntervals): Return the X intervals within a horizontal rectangle that fit inside the polygon.
54729         * rendering/ExclusionPolygon.h: Added.
54730         (WebCore):
54731         (ExclusionPolygon):
54732         (WebCore::ExclusionPolygon::getXAt): X coordinate of a polygon vertex
54733         (WebCore::ExclusionPolygon::getYAt): Y coordinate of a polygon vertex
54734         (WebCore::ExclusionPolygon::numberOfVertices):
54735         (WebCore::ExclusionPolygon::fillRule): A WindRule value that defines "inside" for self-intersecting polygons.
54736         (ExclusionPolygonEdge):
54737         (WebCore::ExclusionPolygonEdge::ExclusionPolygonEdge):
54738         (WebCore::ExclusionPolygonEdge::vertex1):
54739         (WebCore::ExclusionPolygonEdge::vertex2):
54740         (WebCore::ExclusionPolygonEdge::minX):
54741         (WebCore::ExclusionPolygonEdge::minY):
54742         (WebCore::ExclusionPolygonEdge::maxX):
54743         (WebCore::ExclusionPolygonEdge::maxY):
54744         * rendering/ExclusionShape.cpp:
54745         (WebCore::createExclusionPolygon): Return a new ExclusionPolygon.
54746         (WebCore):
54747         (WebCore::ExclusionShape::createExclusionShape): Added support for BasicShape::BASIC_SHAPE_POLYGON.
54748         * rendering/ExclusionShapeInsideInfo.cpp:
54749         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): Enable BASIC_SHAPE_POLYGON shapes for RenderBlocks.
54750
54751 2012-10-08  Tony Chang  <tony@chromium.org>
54752
54753         Replace 2 uses of updateLogicalHeight with computeLogicalHeight
54754         https://bugs.webkit.org/show_bug.cgi?id=98677
54755
54756         Reviewed by Ojan Vafai.
54757
54758         This is part of bug 96804.  Convert RenderTextControl and RenderSVGForeignObject to
54759         override the const computeLogicalHeight method rather than the updateLogicalHeight
54760         setter method.
54761
54762         No new tests, there should be no behavior change as this is just a refactor.
54763
54764         * rendering/RenderTextControl.cpp:
54765         (WebCore::RenderTextControl::computeLogicalHeight): Pass logicalHeight through rather than setting height.
54766         This is a slight correctness fix, although we don't support vertical inputs yet.
54767         * rendering/RenderTextControl.h:
54768         (RenderTextControl):
54769         * rendering/svg/RenderSVGForeignObject.cpp:
54770         (WebCore::RenderSVGForeignObject::computeLogicalHeight):
54771         * rendering/svg/RenderSVGForeignObject.h:
54772         (RenderSVGForeignObject):
54773
54774 2012-10-08  Min Qin  <qinmin@chromium.org>
54775
54776         Upstream some tweaks for overlay play button on Android
54777         https://bugs.webkit.org/show_bug.cgi?id=98671
54778
54779         Reviewed by Adam Barth.
54780
54781         This change stops displaying the overlay play button if video height is too small
54782         No test for this. Will rebase layout test expectations for android later.
54783
54784         * css/mediaControlsChromiumAndroid.css:
54785         (video::-webkit-media-controls-overlay-enclosure):
54786
54787 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54788
54789         Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer
54790         https://bugs.webkit.org/show_bug.cgi?id=98574
54791
54792         Reviewed by Dean Jackson.
54793
54794         GraphicsLayerCA assumed that using a TileCache equated to being the main page tile
54795         cache layer, which has some special considerations. Make these two concepts separate
54796         to get closer to being able to use TileCaches in place of CATiledLayer.
54797
54798         * platform/graphics/GraphicsLayer.h:
54799         (GraphicsLayer): Remove m_usingTileCache member, which was not appropriate
54800         for this class to have.
54801         * platform/graphics/GraphicsLayer.cpp:
54802         (WebCore::GraphicsLayer::GraphicsLayer): Remove init of m_usingTileCache.
54803         (WebCore::GraphicsLayer::debugBorderInfo): Can no longer use m_usingTileCache to
54804         get the blue color, so moved code into a virtual debugBorderInfo() method.
54805         (WebCore::GraphicsLayer::updateDebugIndicators): Call the virtual debugBorderInfo().
54806         * platform/graphics/GraphicsLayerClient.h: Remove the usingTileCache() callback;
54807         we now just cache this information in the GraphicsLayerCA on creation.
54808         * platform/graphics/ca/GraphicsLayerCA.cpp:
54809         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Init m_isPageTileCacheLayer to false,
54810         then set to m_isPageTileCacheLayer if the client says we should create a tile cache.
54811         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter): Overidden to avoid duplicate repaint
54812         counters in the top-left tile.
54813         (WebCore::GraphicsLayerCA::updateLayerBackgroundColor): If this layer is the page tile cache layer,
54814         we allow setting of its background color.
54815         (WebCore::GraphicsLayerCA::debugBorderInfo): Overidden to use a blue color for tiles.
54816         (WebCore::GraphicsLayerCA::requiresTiledLayer): Don't make CATiledLayers for the page tile cache.
54817         * platform/graphics/ca/GraphicsLayerCA.h:
54818         (GraphicsLayerCA):
54819         * platform/graphics/ca/PlatformCALayerClient.h:
54820         (PlatformCALayerClient): Need to pass the platform layer into platformCALayerShowRepaintCounter()
54821         so we can distinguish between calls for tiles, and calls for the tile cache layer itself.
54822         * platform/graphics/ca/mac/TileCache.mm:
54823         (WebCore::TileCache::shouldShowRepaintCounters): Pass 0 to platformCALayerShowRepaintCounter() to
54824         indicate that we're asking about a tile.
54825         * platform/graphics/mac/WebLayer.mm:
54826         (drawLayerContents): Now we can just rely on platformCALayerShowRepaintCounter() to tell us whether
54827         to draw the repaint counter.
54828         (-[WebLayer setNeedsDisplayInRect:]):
54829         * platform/graphics/mac/WebTiledLayer.mm:
54830         (-[WebTiledLayer setNeedsDisplayInRect:]):
54831         * rendering/RenderLayerBacking.h:
54832         (WebCore::RenderLayerBacking::usingTileCache):
54833         (RenderLayerBacking):
54834         * rendering/RenderLayerCompositor.cpp:
54835         (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): We can ask the RenderLayerBacking
54836         whether it's for the tile cache, rather than going to the GraphicsLayer.
54837         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
54838         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerShowRepaintCounter):
54839
54840 2012-10-08  Huang Dongsung  <luxtella@company100.net>
54841
54842         [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism.
54843         https://bugs.webkit.org/show_bug.cgi?id=98582
54844
54845         Reviewed by Eric Seidel.
54846
54847         Only Qt port failed canvas/philip/tests/2d.imageData.put.unchanged.html because
54848         ImageBufferQt converts from or to a premultiplied color using its own code. When
54849         we convert twice from an unmultiplied color to a premultiplied color and then to
54850         an unmultiplied color using this code, the calculated result are pretty
54851         different against the input color. It is why Gtk passes this test although Qt
54852         fails. Gtk port uses them in Color.h.
54853
54854         In addition, Qt should use the functions in Color.h to reduce duplicated codes.
54855
54856         Tests: canvas/philip/tests/2d.imageData.put.unchanged.html: Fixed a test case
54857
54858         * platform/graphics/qt/ImageBufferQt.cpp:
54859         (WebCore::getImageData):
54860         (WebCore::convertBGRAToRGBA):
54861         (WebCore::ImageBuffer::putByteArray):
54862
54863 2012-10-08  Tab Atkins  <jackalmage@gmail.com>
54864
54865         Remove "orphaned units" quirk
54866         https://bugs.webkit.org/show_bug.cgi?id=98553
54867
54868         Reviewed by Eric Seidel.
54869
54870         This patch removes our "orphaned units" quirk.
54871         We have an "orphaned units" quirk to match IE, which allows things like "width: 20 px;".
54872         But FF and Opera don't have it and aren't aware of bugs for it,
54873         and it's not in Simon Pieters' Quirks Mode spec <http://dvcs.w3.org/hg/quirks-mode/raw-file/tip/Overview.html>
54874
54875         No new tests, because I'm killing a quirk.
54876
54877         * css/CSSParser.cpp:
54878         (WebCore::CSSParser::parseValue):
54879         * css/CSSParser.h:
54880         (CSSParser):
54881
54882 2012-10-08  Robert Hogan  <robert@webkit.org>
54883
54884         Border, margin and padding of an inline's inline ancestors counted twice
54885         https://bugs.webkit.org/show_bug.cgi?id=63074
54886
54887         Reviewed by David Hyatt.
54888
54889         In a line such as '<span><span><img>Text' the border, padding and margin belonging
54890         to the two spans was counted twice by RenderBlockLineLayout::nextLineBreak(): once
54891         when adding the width of the <img> object to the line, and a second time when adding
54892         the 'Text'. The result was that nextLineBreak() now had a length for the line that 
54893         exceeded the line's maximum length and inserted a bogus line break.
54894
54895         This all happened because the helper function that is used to add in the border etc.
54896         from inline ancestors was crawling up the tree each time. It doesn't need to do that, it
54897         should stop crawling up the tree when the current object is not the first or last sibling below a parent.
54898
54899         Test: fast/inline/bpm-inline-ancestors.html
54900
54901         * rendering/RenderBlockLineLayout.cpp:
54902         (WebCore::shouldAddBorderPaddingMargin): Broke this check out into a helper function so that it 
54903         can help inlineLogicalWidth() return early and also treat empty RenderTexts the same as no previous/next
54904         sibling on the line. This ensures that collapsed leading space does not interfere with the decision to
54905         crawl up the ancestors accumulating border, padding, and margin.
54906         (WebCore):
54907         (WebCore::inlineLogicalWidth): Return early once the current child is no longer on the edge of its line - 
54908         this ensures the border, padding and margin of ancestors is not counted twice. 
54909
54910 2012-10-08  Mike West  <mkwst@chromium.org>
54911
54912         Null-check for DOMWindow before feeding it to FeatureObserver.
54913         https://bugs.webkit.org/show_bug.cgi?id=98624
54914
54915         Reviewed by Adam Barth.
54916
54917         We shouldn't call out to FeatureObserver in
54918         ContentSecurityPolicy::didReceiveHeader if the policy's document doesn't
54919         have a DOMWindow.
54920
54921         Test: http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html
54922
54923         * page/ContentSecurityPolicy.cpp:
54924         (WebCore::ContentSecurityPolicy::didReceiveHeader):
54925             Null check 'document->domWindow' before passing it on.
54926         * page/FeatureObserver.cpp:
54927         (WebCore::FeatureObserver::observe):
54928             ASSERT 'domWindow'.
54929
54930 2012-10-08  Nate Chapin  <japhet@chromium.org>
54931
54932         Loader cleanup : Simplify FrameLoader/DocumentLoader setupForReplace()
54933         https://bugs.webkit.org/show_bug.cgi?id=49072
54934
54935         Reviewed by Eric Seidel.
54936
54937         This patch contains one small known behavior change: multipart/x-mixed-replace main resources with text/html parts
54938         will no longer load the text/html progressively. In practice, loading the html progressively causes the document
54939         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
54940         seems to be pathological, as IE, FF, Opera and WebKit all do something different currently. This patch will cause
54941         us to behave like Firefox, which is the most sane of the current behaviors.
54942
54943         Test: http/tests/multipart/multipart-html.php
54944
54945         * loader/DocumentLoader.cpp:
54946         (WebCore::DocumentLoader::commitData): Use isMultipartReplacingLoad() helper.
54947         (WebCore::DocumentLoader::receivedData):
54948         (WebCore::DocumentLoader::setupForReplace): Renamed from setupForReplaceByMIMEType(). Call maybeFinishLoadingMultipartContent()
54949             instead of doing identical work inline. After we call frameLoader()->setReplacing(), we will never load progressively, so remove
54950             the if (doesProgressiveLoad(newMIMEType)) {} block.
54951         (WebCore::DocumentLoader::isMultipartReplacingLoad):
54952         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Inline the old DocumentLoader::setupForeReplace(), check
54953             frameLoader()->isReplacing() instead of the delete doesProgressiveLoad().
54954         * loader/DocumentLoader.h:
54955         * loader/FrameLoader.cpp:
54956         (WebCore::FrameLoader::setupForReplace): Move all calls to revertToProvisionalState here.
54957         * loader/MainResourceLoader.cpp:
54958         (WebCore::MainResourceLoader::didReceiveResponse): Call setupForReplace(), renamed from setupForReplaceByMIMEType().
54959
54960 2012-10-08  Zoltan Horvath  <zoltan@webkit.org>
54961
54962         [Qt] r122720 causes performance regression with DirectFB on ARMv7
54963         https://bugs.webkit.org/show_bug.cgi?id=97548
54964
54965         Reviewed by Jocelyn Turcotte.
54966
54967         Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
54968
54969         Covered by existing tests.
54970
54971         * bridge/qt/qt_pixmapruntime.cpp:
54972         (JSC::Bindings::assignToHTMLImageElement):
54973         (JSC::Bindings::QtPixmapRuntime::toQt):
54974         * platform/DragImage.h:
54975         (WebCore):
54976         * platform/graphics/GraphicsContext.h:
54977         (GraphicsContext):
54978         * platform/graphics/Image.h:
54979         (Image):
54980         * platform/graphics/NativeImagePtr.h:
54981         (WebCore):
54982         * platform/graphics/gstreamer/ImageGStreamer.h:
54983         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
54984         (ImageGStreamer::ImageGStreamer):
54985         * platform/graphics/qt/GraphicsContext3DQt.cpp:
54986         (WebCore::GraphicsContext3D::getImageData):
54987         * platform/graphics/qt/GraphicsContextQt.cpp:
54988         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
54989         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
54990         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
54991         * platform/graphics/qt/ImageBufferDataQt.h:
54992         (ImageBufferData):
54993         * platform/graphics/qt/ImageBufferQt.cpp:
54994         (WebCore::ImageBufferData::ImageBufferData):
54995         (WebCore):
54996         (WebCore::ImageBufferData::toQImage):
54997         (WebCore::ImageBuffer::copyImage):
54998         (WebCore::ImageBuffer::clip):
54999         (WebCore::ImageBuffer::platformTransformColorSpace):
55000         (WebCore::getImageData):
55001         (WebCore::ImageBuffer::putByteArray):
55002         (WebCore::encodeImage):
55003         (WebCore::ImageBuffer::toDataURL):
55004         * platform/graphics/qt/ImageDecoderQt.cpp:
55005         (WebCore::ImageFrame::asNewNativeImage):
55006         * platform/graphics/qt/ImageQt.cpp:
55007         (graphics):
55008         (loadResourcePixmap):
55009         (WebCore::Image::loadPlatformResource):
55010         (WebCore::Image::setPlatformResource):
55011         (WebCore::Image::drawPattern):
55012         (WebCore::BitmapImage::BitmapImage):
55013         (WebCore::BitmapImage::draw):
55014         (WebCore::BitmapImage::checkForSolidColor):
55015         (WebCore::BitmapImage::create):
55016         * platform/graphics/qt/PatternQt.cpp:
55017         (WebCore::Pattern::createPlatformPattern):
55018         * platform/graphics/qt/StillImageQt.cpp:
55019         (WebCore::StillImage::StillImage):
55020         (WebCore::StillImage::~StillImage):
55021         (WebCore::StillImage::currentFrameHasAlpha):
55022         (WebCore::StillImage::size):
55023         (WebCore::StillImage::nativeImageForCurrentFrame):
55024         (WebCore::StillImage::draw):
55025         * platform/graphics/qt/StillImageQt.h:
55026         (WebCore::StillImage::create):
55027         (WebCore::StillImage::createForRendering):
55028         (StillImage):
55029         * platform/graphics/qt/TransparencyLayer.h:
55030         (WebCore::TransparencyLayer::TransparencyLayer):
55031         (TransparencyLayer):
55032         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
55033         (WebCore::GraphicsSurface::createReadOnlyImage):
55034         * platform/graphics/texmap/TextureMapperGL.cpp:
55035         (WebCore::BitmapTextureGL::updateContents):
55036         * platform/qt/ClipboardQt.cpp:
55037         (WebCore::ClipboardQt::createDragImage):
55038         (WebCore::ClipboardQt::declareAndWriteDragImage):
55039         * platform/qt/CursorQt.cpp:
55040         (WebCore::createCustomCursor):
55041         * platform/qt/DragImageQt.cpp:
55042         (WebCore::createDragImageFromImage):
55043         * platform/qt/PasteboardQt.cpp:
55044         (WebCore::Pasteboard::writeImage):
55045
55046 2012-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
55047
55048         Unreviewed. Fix make distcheck.
55049
55050         * GNUmakefile.list.am: Add missing header file to compilation.
55051
55052 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
55053
55054         Unreviewed, rolling out r130619.
55055         http://trac.webkit.org/changeset/130619
55056         https://bugs.webkit.org/show_bug.cgi?id=98634
55057
55058         Causes many crashes on the EFL bots. (Requested by rakuco on
55059         #webkit).
55060
55061         * platform/RunLoop.h:
55062         (RunLoop):
55063         * platform/efl/RunLoopEfl.cpp:
55064         (WebCore::RunLoop::RunLoop):
55065         (WebCore::RunLoop::wakeUpEvent):
55066         (WebCore::RunLoop::wakeUp):
55067
55068 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
55069
55070         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
55071         https://bugs.webkit.org/show_bug.cgi?id=98505
55072
55073         Reviewed by Kenneth Rohde Christiansen.
55074
55075         Instead of ecore_pipe_write(),
55076         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
55077
55078         According to the EFL API document, this function is designed to dispatch
55079         a function on ecore main loop by avoiding dead lock or race condition. 
55080         With this function, webkit doesn't need to maintain ecore pipe also.
55081
55082         No new tests. The function to wakeup main loop is changed.
55083
55084         * platform/RunLoop.h:
55085         (RunLoop):
55086         * platform/efl/RunLoopEfl.cpp:
55087         (WebCore::RunLoop::RunLoop):
55088         (WebCore::RunLoop::wakeUpEvent):
55089         (WebCore::RunLoop::wakeUp):
55090
55091 2012-10-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
55092
55093         :first-line pseudo selector ignoring words created from :before
55094         https://bugs.webkit.org/show_bug.cgi?id=80794
55095
55096         Reviewed by Daniel Bates.
55097
55098         The :first-line pseudo-element style is not applied for content
55099         which is generated from the :before/:after pseudo-elements.
55100
55101         Test: fast/css/first-line-style-for-before-after-content.html
55102
55103         * rendering/RenderObject.cpp:
55104         (WebCore::firstLineStyleForCachedUncachedType):
55105         Added a new static helper function incorporating the common
55106         functionality of both uncachedFirstLineStyle() and firstLineStyleSlowCase()
55107         functions. It also modifies the functionality to handle the
55108         scenario when :first-line style needs to be applied on content
55109         generated from :before/:after.
55110
55111         While getting the :first-line style we should also consider the case
55112         when the content is generated from a :before/:after pseudo-element in
55113         which case the RenderInline's parent should be considered for
55114         obtaining the first-line style.
55115
55116         (WebCore):
55117         (WebCore::RenderObject::uncachedFirstLineStyle):
55118         (WebCore::RenderObject::firstLineStyleSlowCase):
55119         Moved the duplicate code between the two functions to the common
55120         helper function firstLineStyleForCachedUncachedType().
55121
55122 2012-10-07  Peter Wang  <peter.wang@torchmobile.com.cn>
55123
55124         Web Inspector: The front-end should provide the position in original source file when set a breakpoint
55125         https://bugs.webkit.org/show_bug.cgi?id=93473
55126
55127         Reviewed by Yury Semikhatsky.
55128
55129         Since frontend truncates the indent, the first statement in a line must match the breakpoint (line, 0).
55130         With this patch JSC debugger can support both normal and "Pretty Print" mode.
55131
55132         No new test case. This patch can be verified with cases in "LayoutTests/inspector/debugger/".
55133
55134         * bindings/js/ScriptDebugServer.cpp:
55135         (WebCore::ScriptDebugServer::ScriptDebugServer):
55136         (WebCore::ScriptDebugServer::hasBreakpoint):
55137         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
55138         (WebCore::ScriptDebugServer::pauseIfNeeded):
55139         * bindings/js/ScriptDebugServer.h:
55140         (ScriptDebugServer):
55141
55142 2012-10-07  Martin Robinson  <mrobinson@igalia.com>
55143
55144         [Soup] Clean up ResourceError creation
55145         https://bugs.webkit.org/show_bug.cgi?id=98521
55146
55147         Reviewed by Carlos Garcia Campos.
55148
55149         Simplify the creation of ResourcErrors in ResourceHandleSoup. This is
55150         part of a process to make the libsoup networking backend more hackable.
55151
55152         No new tests. This shouldn't change functionality.
55153
55154         * GNUmakefile.list.am: Added new file.
55155         * PlatformEfl.cmake: Added new file.
55156         * platform/network/soup/ResourceError.h:
55157         (ResourceError): Added new factories.
55158         * platform/network/soup/ResourceErrorSoup.cpp: Added.
55159         (WebCore::failingURI): Added this helper.
55160         (WebCore::ResourceError::httpError): New factory.
55161         (WebCore::ResourceError::genericIOError): Ditto.
55162         (WebCore::ResourceError::tlsError): Ditto.
55163         (WebCore::ResourceError::timeoutError): Ditto.
55164         * platform/network/soup/ResourceHandleSoup.cpp:
55165         (WebCore::handleUnignoredTLSErrors): Created this helper which merges
55166         some of the logic from sendRequestCallback.
55167         (WebCore::sendRequestCallback): Use the new helper.
55168         (WebCore::requestTimeoutCallback): Use the new factory.
55169
55170 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
55171
55172         Rename first/second to key/value in HashMap iterators
55173         https://bugs.webkit.org/show_bug.cgi?id=82784
55174
55175         Reviewed by Eric Seidel.
55176
55177         * Modules/geolocation/Geolocation.cpp:
55178         (WebCore::Geolocation::Watchers::find):
55179         (WebCore::Geolocation::Watchers::remove):
55180         * Modules/indexeddb/IDBDatabase.cpp:
55181         (WebCore::IDBDatabase::objectStoreNames):
55182         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
55183         (WebCore::IDBDatabaseBackendImpl::metadata):
55184         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
55185         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
55186         (WebCore::IDBFactoryBackendImpl::openBackingStore):
55187         (WebCore::IDBFactoryBackendImpl::open):
55188         * Modules/indexeddb/IDBObjectStore.cpp:
55189         (WebCore::IDBObjectStore::indexNames):
55190         (WebCore::IDBObjectStore::put):
55191         (WebCore::IDBObjectStore::index):
55192         (WebCore::IDBObjectStore::deleteIndex):
55193         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
55194         (WebCore::IDBObjectStoreBackendImpl::metadata):
55195         (WebCore::makeIndexWriters):
55196         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
55197         * Modules/indexeddb/IDBTransaction.cpp:
55198         (WebCore::IDBTransaction::objectStore):
55199         (WebCore::IDBTransaction::objectStoreDeleted):
55200         (WebCore::IDBTransaction::onAbort):
55201         (WebCore::IDBTransaction::dispatchEvent):
55202         * Modules/mediastream/MediaConstraintsImpl.cpp:
55203         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
55204         (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
55205         * Modules/webdatabase/AbstractDatabase.cpp:
55206         (WebCore::AbstractDatabase::performOpenAndVerify):
55207         * Modules/webdatabase/DatabaseTracker.cpp:
55208         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55209         * Modules/webdatabase/OriginUsageRecord.cpp:
55210         (WebCore::OriginUsageRecord::diskUsage):
55211         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
55212         (WebCore::SQLTransactionCoordinator::acquireLock):
55213         (WebCore::SQLTransactionCoordinator::releaseLock):
55214         (WebCore::SQLTransactionCoordinator::shutdown):
55215         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
55216         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55217         * Modules/webdatabase/chromium/QuotaTracker.cpp:
55218         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
55219         (WebCore::QuotaTracker::updateDatabaseSize):
55220         * Modules/websockets/WebSocketDeflateFramer.cpp:
55221         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
55222         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
55223         (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
55224         * accessibility/AXObjectCache.cpp:
55225         (WebCore::AXObjectCache::~AXObjectCache):
55226         * bindings/gobject/DOMObjectCache.cpp:
55227         (WebKit::DOMObjectCache::clearByFrame):
55228         * bindings/js/DOMObjectHashTableMap.h:
55229         (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
55230         (WebCore::DOMObjectHashTableMap::get):
55231         * bindings/js/JSDOMBinding.cpp:
55232         (WebCore::cacheDOMStructure):
55233         * bindings/js/JSDOMGlobalObject.cpp:
55234         (WebCore::JSDOMGlobalObject::visitChildren):
55235         * bindings/js/JSDOMGlobalObject.h:
55236         (WebCore::getDOMConstructor):
55237         * bindings/js/PageScriptDebugServer.cpp:
55238         (WebCore::PageScriptDebugServer::addListener):
55239         (WebCore::PageScriptDebugServer::removeListener):
55240         * bindings/js/ScriptCachedFrameData.cpp:
55241         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
55242         (WebCore::ScriptCachedFrameData::restore):
55243         * bindings/js/ScriptController.cpp:
55244         (WebCore::ScriptController::~ScriptController):
55245         (WebCore::ScriptController::clearWindowShell):
55246         (WebCore::ScriptController::attachDebugger):
55247         (WebCore::ScriptController::updateDocument):
55248         (WebCore::ScriptController::createRootObject):
55249         (WebCore::ScriptController::collectIsolatedContexts):
55250         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55251         (WebCore::ScriptController::clearScriptObjects):
55252         * bindings/js/ScriptController.h:
55253         (WebCore::ScriptController::windowShell):
55254         (WebCore::ScriptController::existingWindowShell):
55255         * bindings/js/ScriptDebugServer.cpp:
55256         (WebCore::ScriptDebugServer::setBreakpoint):
55257         (WebCore::ScriptDebugServer::removeBreakpoint):
55258         (WebCore::ScriptDebugServer::hasBreakpoint):
55259         * bindings/js/SerializedScriptValue.cpp:
55260         (WebCore::CloneSerializer::checkForDuplicate):
55261         (WebCore::CloneSerializer::dumpIfTerminal):
55262         (WebCore::CloneSerializer::write):
55263         * bindings/scripts/CodeGeneratorV8.pm:
55264         (GenerateImplementation):
55265         * bindings/scripts/test/V8/V8Float64Array.cpp:
55266         (WebCore::V8Float64Array::GetRawTemplate):
55267         (WebCore::V8Float64Array::GetTemplate):
55268         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
55269         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
55270         (WebCore::V8TestActiveDOMObject::GetTemplate):
55271         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
55272         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
55273         (WebCore::V8TestCustomNamedGetter::GetTemplate):
55274         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
55275         (WebCore::V8TestEventConstructor::GetRawTemplate):
55276         (WebCore::V8TestEventConstructor::GetTemplate):
55277         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
55278         (WebCore::V8TestEventTarget::GetRawTemplate):
55279         (WebCore::V8TestEventTarget::GetTemplate):
55280         * bindings/scripts/test/V8/V8TestException.cpp:
55281         (WebCore::V8TestException::GetRawTemplate):
55282         (WebCore::V8TestException::GetTemplate):
55283         * bindings/scripts/test/V8/V8TestInterface.cpp:
55284         (WebCore::V8TestInterface::GetRawTemplate):
55285         (WebCore::V8TestInterface::GetTemplate):
55286         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
55287         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
55288         (WebCore::V8TestMediaQueryListListener::GetTemplate):
55289         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
55290         (WebCore::V8TestNamedConstructor::GetRawTemplate):
55291         (WebCore::V8TestNamedConstructor::GetTemplate):
55292         * bindings/scripts/test/V8/V8TestNode.cpp:
55293         (WebCore::V8TestNode::GetRawTemplate):
55294         (WebCore::V8TestNode::GetTemplate):
55295         * bindings/scripts/test/V8/V8TestObj.cpp:
55296         (WebCore::V8TestObj::GetRawTemplate):
55297         (WebCore::V8TestObj::GetTemplate):
55298         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
55299         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
55300         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
55301         * bindings/v8/DOMWrapperWorld.cpp:
55302         (WebCore::DOMWrapperWorld::deallocate):
55303         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
55304         * bindings/v8/NPV8Object.cpp:
55305         (WebCore::freeV8NPObject):
55306         (WebCore::npCreateV8ScriptObject):
55307         * bindings/v8/ScriptController.cpp:
55308         (WebCore::ScriptController::clearScriptObjects):
55309         (WebCore::ScriptController::resetIsolatedWorlds):
55310         (WebCore::ScriptController::ensureIsolatedWorldContext):
55311         (WebCore::ScriptController::existingWindowShellInternal):
55312         (WebCore::ScriptController::evaluateInIsolatedWorld):
55313         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
55314         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55315         (WebCore::ScriptController::collectIsolatedContexts):
55316         * bindings/v8/SerializedScriptValue.cpp:
55317         * bindings/v8/V8DOMMap.h:
55318         (WebCore::WeakReferenceMap::removeIfPresent):
55319         (WebCore::WeakReferenceMap::visit):
55320         * bindings/v8/V8PerContextData.cpp:
55321         (WebCore::V8PerContextData::dispose):
55322         * bindings/v8/npruntime.cpp:
55323         * bridge/IdentifierRep.cpp:
55324         (WebCore::IdentifierRep::get):
55325         * bridge/NP_jsobject.cpp:
55326         (ObjectMap::add):
55327         (ObjectMap::remove):
55328         * bridge/runtime_root.cpp:
55329         (JSC::Bindings::RootObject::invalidate):
55330         * css/CSSCanvasValue.cpp:
55331         (WebCore::CSSCanvasValue::canvasChanged):
55332         (WebCore::CSSCanvasValue::canvasResized):
55333         * css/CSSComputedStyleDeclaration.cpp:
55334         (WebCore::counterToCSSValue):
55335         * css/CSSCrossfadeValue.cpp:
55336         (WebCore::CSSCrossfadeValue::crossfadeChanged):
55337         * css/CSSFontFaceSource.cpp:
55338         (WebCore::CSSFontFaceSource::getFontData):
55339         * css/CSSFontSelector.cpp:
55340         (WebCore::CSSFontSelector::addFontFaceRule):
55341         (WebCore::CSSFontSelector::getFontData):
55342         * css/CSSImageGeneratorValue.cpp:
55343         (WebCore::CSSImageGeneratorValue::addClient):
55344         (WebCore::CSSImageGeneratorValue::removeClient):
55345         (WebCore::CSSImageGeneratorValue::getImage):
55346         * css/CSSSegmentedFontFace.cpp:
55347         (WebCore::CSSSegmentedFontFace::getFontData):
55348         * css/CSSSelector.cpp:
55349         (WebCore::CSSSelector::parsePseudoType):
55350         * css/CSSValuePool.cpp:
55351         (WebCore::CSSValuePool::createColorValue):
55352         (WebCore::CSSValuePool::createFontFamilyValue):
55353         (WebCore::CSSValuePool::createFontFaceValue):
55354         * css/PropertySetCSSStyleDeclaration.cpp:
55355         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
55356         * css/RuleSet.cpp:
55357         (WebCore::reportAtomRuleMap):
55358         (WebCore::RuleSet::addToRuleSet):
55359         (WebCore::shrinkMapVectorsToFit):
55360         * css/StyleBuilder.cpp:
55361         (WebCore::ApplyPropertyCounter::applyInheritValue):
55362         (WebCore::ApplyPropertyCounter::applyValue):
55363         * css/StyleResolver.cpp:
55364         (WebCore::StyleResolver::collectFeatures):
55365         (WebCore::StyleResolver::ruleSetForScope):
55366         (WebCore::StyleResolver::appendAuthorStylesheets):
55367         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
55368         (WebCore::StyleResolver::collectMatchingRulesForList):
55369         * css/StyleSheetContents.cpp:
55370         (WebCore::StyleSheetContents::parserAddNamespace):
55371         (WebCore::StyleSheetContents::determineNamespace):
55372         * dom/CheckedRadioButtons.cpp:
55373         (WebCore::CheckedRadioButtons::addButton):
55374         (WebCore::CheckedRadioButtons::removeButton):
55375         * dom/ChildListMutationScope.cpp:
55376         (WebCore::ChildListMutationAccumulator::getOrCreate):
55377         * dom/Document.cpp:
55378         (WebCore::Document::windowNamedItems):
55379         (WebCore::Document::documentNamedItems):
55380         (WebCore::Document::getCSSCanvasElement):
55381         (WebCore::Document::cachedImmutableAttributeData):
55382         (WebCore::Document::getCachedLocalizer):
55383         * dom/DocumentMarkerController.cpp:
55384         (WebCore::DocumentMarkerController::markerContainingPoint):
55385         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
55386         (WebCore::DocumentMarkerController::removeMarkers):
55387         (WebCore::DocumentMarkerController::repaintMarkers):
55388         (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
55389         (WebCore::DocumentMarkerController::showMarkers):
55390         * dom/DocumentOrderedMap.cpp:
55391         (WebCore::DocumentOrderedMap::remove):
55392         * dom/DocumentStyleSheetCollection.cpp:
55393         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
55394         * dom/ElementAttributeData.cpp:
55395         (WebCore::ensureAttrListForElement):
55396         * dom/EventDispatcher.cpp:
55397         (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
55398         * dom/IdTargetObserverRegistry.cpp:
55399         (WebCore::IdTargetObserverRegistry::addObserver):
55400         (WebCore::IdTargetObserverRegistry::removeObserver):
55401         * dom/MutationObserverInterestGroup.cpp:
55402         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
55403         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
55404         * dom/Node.cpp:
55405         (WebCore::Node::dumpStatistics):
55406         (WebCore::Node::clearRareData):
55407         (WebCore::NodeListsNodeData::invalidateCaches):
55408         (WebCore::collectMatchingObserversForMutation):
55409         * dom/NodeRareData.h:
55410         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
55411         (WebCore::NodeListsNodeData::addCacheWithName):
55412         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
55413         (WebCore::NodeListsNodeData::adoptTreeScope):
55414         * dom/ProcessingInstruction.cpp:
55415         (WebCore::ProcessingInstruction::checkStyleSheet):
55416         * dom/ScriptExecutionContext.cpp:
55417         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
55418         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
55419         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
55420         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
55421         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
55422         * dom/SelectorQuery.cpp:
55423         (WebCore::SelectorQueryCache::add):
55424         * dom/SpaceSplitString.cpp:
55425         (WebCore::SpaceSplitStringData::create):
55426         * dom/StyledElement.cpp:
55427         (WebCore::StyledElement::updateAttributeStyle):
55428         * editing/mac/AlternativeTextUIController.mm:
55429         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
55430         * html/FormController.cpp:
55431         (WebCore::SavedFormState::serializeTo):
55432         (WebCore::SavedFormState::appendControlState):
55433         (WebCore::SavedFormState::takeControlState):
55434         (WebCore::SavedFormState::getReferencedFilePaths):
55435         (WebCore::FormKeyGenerator::formKey):
55436         (WebCore::FormController::createSavedFormStateMap):
55437         (WebCore::FormController::formElementsState):
55438         (WebCore::FormController::takeStateForFormElement):
55439         (WebCore::FormController::getReferencedFilePaths):
55440         * html/HTMLCollection.cpp:
55441         (WebCore::HTMLCollectionCacheBase::append):
55442         * html/canvas/WebGLFramebuffer.cpp:
55443         (WebCore::WebGLFramebuffer::getAttachment):
55444         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
55445         (WebCore::WebGLFramebuffer::checkStatus):
55446         (WebCore::WebGLFramebuffer::deleteObjectImpl):
55447         (WebCore::WebGLFramebuffer::initializeAttachments):
55448         * inspector/CodeGeneratorInspector.py:
55449         * inspector/DOMPatchSupport.cpp:
55450         (WebCore::DOMPatchSupport::diff):
55451         (WebCore::DOMPatchSupport::innerPatchChildren):
55452         (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
55453         * inspector/InjectedScriptManager.cpp:
55454         (WebCore::InjectedScriptManager::injectedScriptForId):
55455         (WebCore::InjectedScriptManager::injectedScriptIdFor):
55456         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
55457         (WebCore::InjectedScriptManager::releaseObjectGroup):
55458         (WebCore::InjectedScriptManager::injectedScriptFor):
55459         * inspector/InspectorCSSAgent.cpp:
55460         (WebCore::SelectorProfile::commitSelector):
55461         (WebCore::SelectorProfile::commitSelectorTime):
55462         (WebCore::SelectorProfile::toInspectorObject):
55463         (WebCore::UpdateRegionLayoutTask::onTimer):
55464         (WebCore::InspectorCSSAgent::forcePseudoState):
55465         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
55466         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
55467         (WebCore::InspectorCSSAgent::didRemoveDOMNode):
55468         (WebCore::InspectorCSSAgent::didModifyDOMAttr):
55469         (WebCore::InspectorCSSAgent::resetPseudoStates):
55470         * inspector/InspectorConsoleAgent.cpp:
55471         (WebCore::InspectorConsoleAgent::stopTiming):
55472         (WebCore::InspectorConsoleAgent::count):
55473         * inspector/InspectorDOMAgent.cpp:
55474         (WebCore::InspectorDOMAgent::nodeForId):
55475         (WebCore::InspectorDOMAgent::performSearch):
55476         (WebCore::InspectorDOMAgent::getSearchResults):
55477         * inspector/InspectorDOMDebuggerAgent.cpp:
55478         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
55479         * inspector/InspectorDOMStorageAgent.cpp:
55480         (WebCore::InspectorDOMStorageAgent::clearFrontend):
55481         (WebCore::InspectorDOMStorageAgent::enable):
55482         (WebCore::InspectorDOMStorageAgent::storageId):
55483         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
55484         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
55485         (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
55486         * inspector/InspectorDatabaseAgent.cpp:
55487         (WebCore::InspectorDatabaseAgent::enable):
55488         (WebCore::InspectorDatabaseAgent::databaseId):
55489         (WebCore::InspectorDatabaseAgent::findByFileName):
55490         (WebCore::InspectorDatabaseAgent::databaseForId):
55491         * inspector/InspectorDebuggerAgent.cpp:
55492         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
55493         (WebCore::InspectorDebuggerAgent::removeBreakpoint):
55494         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
55495         (WebCore::InspectorDebuggerAgent::searchInContent):
55496         (WebCore::InspectorDebuggerAgent::getScriptSource):
55497         (WebCore::InspectorDebuggerAgent::didParseSource):
55498         * inspector/InspectorIndexedDBAgent.cpp:
55499         (WebCore):
55500         * inspector/InspectorMemoryAgent.cpp:
55501         (WebCore):
55502         * inspector/InspectorPageAgent.cpp:
55503         (WebCore::cachedResourcesForFrame):
55504         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
55505         (WebCore::InspectorPageAgent::frameDetached):
55506         * inspector/InspectorProfilerAgent.cpp:
55507         (WebCore::InspectorProfilerAgent::getProfileHeaders):
55508         (WebCore):
55509         (WebCore::InspectorProfilerAgent::getProfile):
55510         * inspector/InspectorResourceAgent.cpp:
55511         (WebCore::buildObjectForHeaders):
55512         (WebCore::InspectorResourceAgent::willSendRequest):
55513         (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
55514         (WebCore::InspectorResourceAgent::willLoadXHR):
55515         (WebCore::InspectorResourceAgent::replayXHR):
55516         * inspector/InspectorState.cpp:
55517         (WebCore::InspectorState::getBoolean):
55518         (WebCore::InspectorState::getString):
55519         (WebCore::InspectorState::getLong):
55520         (WebCore::InspectorState::getDouble):
55521         (WebCore::InspectorState::getObject):
55522         * inspector/InspectorStyleSheet.cpp:
55523         (WebCore::InspectorStyle::styleWithProperties):
55524         (WebCore::InspectorStyleSheet::inspectorStyleForId):
55525         * inspector/InspectorValues.cpp:
55526         (WebCore::InspectorObjectBase::get):
55527         (WebCore::InspectorObjectBase::writeJSON):
55528         * inspector/InspectorWorkerAgent.cpp:
55529         (WebCore::InspectorWorkerAgent::workerContextTerminated):
55530         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
55531         (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
55532         * inspector/MemoryInstrumentationImpl.cpp:
55533         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
55534         * inspector/MemoryInstrumentationImpl.h:
55535         (WebCore::MemoryInstrumentationClientImpl::totalSize):
55536         (WebCore::MemoryInstrumentationClientImpl::reportedSizeForAllTypes):
55537         * inspector/NetworkResourcesData.cpp:
55538         (WebCore::NetworkResourcesData::setXHRReplayData):
55539         (WebCore::NetworkResourcesData::removeCachedResource):
55540         (WebCore::NetworkResourcesData::clear):
55541         * loader/CrossOriginAccessControl.cpp:
55542         (WebCore::isSimpleCrossOriginAccessRequest):
55543         (WebCore::createAccessControlPreflightRequest):
55544         * loader/CrossOriginPreflightResultCache.cpp:
55545         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
55546         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
55547         * loader/DocumentLoader.cpp:
55548         (WebCore::DocumentLoader::getSubresources):
55549         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
55550         * loader/MainResourceLoader.cpp:
55551         (WebCore::MainResourceLoader::didReceiveResponse):
55552         * loader/ResourceLoadScheduler.cpp:
55553         (WebCore::ResourceLoadScheduler::servePendingRequests):
55554         * loader/appcache/ApplicationCache.cpp:
55555         (WebCore::ApplicationCache::removeResource):
55556         (WebCore::ApplicationCache::clearStorageID):
55557         (WebCore::ApplicationCache::dump):
55558         * loader/appcache/ApplicationCacheGroup.cpp:
55559         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
55560         (WebCore::ApplicationCacheGroup::startLoadingEntry):
55561         (WebCore::ApplicationCacheGroup::addEntry):
55562         * loader/appcache/ApplicationCacheHost.cpp:
55563         (WebCore::ApplicationCacheHost::fillResourceList):
55564         * loader/appcache/ApplicationCacheResource.cpp:
55565         (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
55566         * loader/appcache/ApplicationCacheStorage.cpp:
55567         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
55568         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
55569         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
55570         (WebCore::ApplicationCacheStorage::store):
55571         (WebCore::ApplicationCacheStorage::empty):
55572         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
55573         * loader/archive/ArchiveFactory.cpp:
55574         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
55575         * loader/cache/CachedRawResource.cpp:
55576         (WebCore::CachedRawResource::canReuse):
55577         * loader/cache/CachedResource.cpp:
55578         (WebCore::CachedResource::switchClientsToRevalidatedResource):
55579         (WebCore::CachedResource::updateResponseAfterRevalidation):
55580         * loader/cache/CachedResourceClientWalker.h:
55581         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
55582         * loader/cache/CachedResourceLoader.cpp:
55583         (WebCore::CachedResourceLoader::~CachedResourceLoader):
55584         (WebCore::CachedResourceLoader::requestResource):
55585         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
55586         (WebCore::CachedResourceLoader::removeCachedResource):
55587         (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
55588         * loader/cache/MemoryCache.cpp:
55589         (WebCore::MemoryCache::removeResourcesWithOrigin):
55590         (WebCore::MemoryCache::getOriginsWithCache):
55591         (WebCore::MemoryCache::getStatistics):
55592         (WebCore::MemoryCache::setDisabled):
55593         * loader/icon/IconDatabase.cpp:
55594         (WebCore::IconDatabase::removeAllIcons):
55595         (WebCore::IconDatabase::iconRecordCountWithData):
55596         (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
55597         * page/DOMWindow.cpp:
55598         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
55599         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
55600         * page/EventHandler.cpp:
55601         (WebCore::EventHandler::handleTouchEvent):
55602         * page/Frame.cpp:
55603         (WebCore::Frame::injectUserScripts):
55604         * page/PageGroup.cpp:
55605         (WebCore::PageGroup::pageGroup):
55606         (WebCore::PageGroup::closeLocalStorage):
55607         (WebCore::PageGroup::clearLocalStorageForAllOrigins):
55608         (WebCore::PageGroup::clearLocalStorageForOrigin):
55609         (WebCore::PageGroup::syncLocalStorage):
55610         (WebCore::PageGroup::addUserScriptToWorld):
55611         (WebCore::PageGroup::addUserStyleSheetToWorld):
55612         (WebCore::PageGroup::removeUserScriptFromWorld):
55613         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
55614         * page/PageSerializer.cpp:
55615         (WebCore::PageSerializer::urlForBlankFrame):
55616         * page/SecurityPolicy.cpp:
55617         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
55618         (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
55619         * page/Settings.cpp:
55620         (WebCore::setGenericFontFamilyMap):
55621         (WebCore::getGenericFontFamilyForScript):
55622         * page/SpeechInput.cpp:
55623         (WebCore::SpeechInput::registerListener):
55624         * page/TouchDisambiguation.cpp:
55625         (WebCore::findGoodTouchTargets):
55626         * page/WindowFeatures.cpp:
55627         (WebCore::WindowFeatures::boolFeature):
55628         (WebCore::WindowFeatures::floatFeature):
55629         * page/animation/AnimationController.cpp:
55630         (WebCore::AnimationControllerPrivate::updateAnimations):
55631         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
55632         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
55633         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
55634         * page/animation/CompositeAnimation.cpp:
55635         (WebCore::CompositeAnimation::clearRenderer):
55636         (WebCore::CompositeAnimation::updateTransitions):
55637         (WebCore::CompositeAnimation::updateKeyframeAnimations):
55638         (WebCore::CompositeAnimation::animate):
55639         (WebCore::CompositeAnimation::getAnimatedStyle):
55640         (WebCore::CompositeAnimation::setAnimating):
55641         (WebCore::CompositeAnimation::timeToNextService):
55642         (WebCore::CompositeAnimation::getAnimationForProperty):
55643         (WebCore::CompositeAnimation::suspendAnimations):
55644         (WebCore::CompositeAnimation::resumeAnimations):
55645         (WebCore::CompositeAnimation::overrideImplicitAnimations):
55646         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
55647         (WebCore::CompositeAnimation::isAnimatingProperty):
55648         (WebCore::CompositeAnimation::numberOfActiveAnimations):
55649         * platform/Language.cpp:
55650         (WebCore::languageDidChange):
55651         * platform/MIMETypeRegistry.cpp:
55652         (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
55653         * platform/audio/HRTFElevation.cpp:
55654         (WebCore::getConcatenatedImpulseResponsesForSubject):
55655         * platform/blackberry/CookieManager.cpp:
55656         (WebCore::CookieManager::generateHtmlFragmentForCookies):
55657         (WebCore::CookieManager::removeAllCookies):
55658         * platform/blackberry/CookieMap.cpp:
55659         (WebCore::CookieMap::removeOldestCookie):
55660         (WebCore::CookieMap::getAllChildCookies):
55661         * platform/cf/BinaryPropertyList.cpp:
55662         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
55663         * platform/chromium/support/WebHTTPLoadInfo.cpp:
55664         (WebKit::addHeader):
55665         * platform/chromium/support/WebURLRequest.cpp:
55666         (WebKit::WebURLRequest::visitHTTPHeaderFields):
55667         * platform/chromium/support/WebURLResponse.cpp:
55668         (WebKit::WebURLResponse::addHTTPHeaderField):
55669         (WebKit::WebURLResponse::visitHTTPHeaderFields):
55670         * platform/graphics/DisplayRefreshMonitor.cpp:
55671         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
55672         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
55673         * platform/graphics/FontCache.cpp:
55674         (WebCore::FontCache::getCachedFontPlatformData):
55675         (WebCore::FontCache::getVerticalData):
55676         (WebCore::FontCache::getCachedFontData):
55677         (WebCore::FontCache::releaseFontData):
55678         (WebCore::FontCache::purgeInactiveFontData):
55679         * platform/graphics/GlyphPageTreeNode.cpp:
55680         (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
55681         (WebCore::GlyphPageTreeNode::pageCount):
55682         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
55683         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
55684         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
55685         (WebCore::GlyphPageTreeNode::pruneFontData):
55686         (WebCore::GlyphPageTreeNode::showSubtree):
55687         (showGlyphPageTrees):
55688         * platform/graphics/TiledBackingStore.cpp:
55689         (WebCore::TiledBackingStore::updateTileBuffers):
55690         (WebCore::TiledBackingStore::resizeEdgeTiles):
55691         (WebCore::TiledBackingStore::setKeepRect):
55692         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
55693         (WebCore::AVFWrapper::avfWrapperForCallbackContext):
55694         * platform/graphics/blackberry/LayerTiler.cpp:
55695         (WebCore::LayerTiler::layerVisibilityChanged):
55696         (WebCore::LayerTiler::uploadTexturesIfNeeded):
55697         (WebCore::LayerTiler::addTileJob):
55698         (WebCore::LayerTiler::deleteTextures):
55699         (WebCore::LayerTiler::pruneTextures):
55700         (WebCore::LayerTiler::bindContentsTexture):
55701         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
55702         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
55703         (WebCore::TextureCacheCompositingThread::textureForColor):
55704         * platform/graphics/ca/GraphicsLayerCA.cpp:
55705         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
55706         (WebCore::GraphicsLayerCA::pauseAnimation):
55707         (WebCore::GraphicsLayerCA::layerDidDisplay):
55708         (WebCore::GraphicsLayerCA::updateGeometry):
55709         (WebCore::GraphicsLayerCA::updateTransform):
55710         (WebCore::GraphicsLayerCA::updateChildrenTransform):
55711         (WebCore::GraphicsLayerCA::updateMasksToBounds):
55712         (WebCore::GraphicsLayerCA::updateContentsVisibility):
55713         (WebCore::GraphicsLayerCA::updateContentsOpaque):
55714         (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
55715         (WebCore::GraphicsLayerCA::updateFilters):
55716         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
55717         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
55718         (WebCore::GraphicsLayerCA::updateContentsImage):
55719         (WebCore::GraphicsLayerCA::updateContentsRect):
55720         (WebCore::GraphicsLayerCA::updateMaskLayer):
55721         (WebCore::GraphicsLayerCA::updateLayerAnimations):
55722         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
55723         (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
55724         (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
55725         (WebCore::GraphicsLayerCA::suspendAnimations):
55726         (WebCore::GraphicsLayerCA::resumeAnimations):
55727         (WebCore::GraphicsLayerCA::findOrMakeClone):
55728         (WebCore::GraphicsLayerCA::setOpacityInternal):
55729         (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
55730         * platform/graphics/ca/mac/TileCache.mm:
55731         (WebCore::TileCache::~TileCache):
55732         (WebCore::TileCache::setNeedsDisplay):
55733         (WebCore::TileCache::setScale):
55734         (WebCore::TileCache::setAcceleratesDrawing):
55735         (WebCore::TileCache::setTileDebugBorderWidth):
55736         (WebCore::TileCache::setTileDebugBorderColor):
55737         (WebCore::TileCache::revalidateTiles):
55738         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
55739         (PlatformCALayer::animationStarted):
55740         (resubmitAllAnimations):
55741         (PlatformCALayer::animationForKey):
55742         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
55743         (WebCore::LookupAltName):
55744         (WebCore::fontContainsCharacter):
55745         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
55746         (WebCore::getDerivedFontData):
55747         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
55748         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
55749         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
55750         (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
55751         * platform/graphics/filters/CustomFilterProgram.cpp:
55752         (WebCore::CustomFilterProgram::notifyClients):
55753         * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
55754         (WebCore::getCachedHarfbuzzFace):
55755         (WebCore::releaseCachedHarfbuzzFace):
55756         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
55757         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
55758         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
55759         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
55760         (WebCore::SimpleFontData::getCFStringAttributes):
55761         * platform/graphics/mac/SimpleFontDataMac.mm:
55762         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
55763         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
55764         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
55765         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
55766         (WebCore::GraphicsContext3D::compileShader):
55767         (WebCore::GraphicsContext3D::mappedSymbolName):
55768         (WebCore::GraphicsContext3D::getShaderiv):
55769         (WebCore::GraphicsContext3D::getShaderInfoLog):
55770         (WebCore::GraphicsContext3D::getShaderSource):
55771         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
55772         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
55773         (WebCore::EGLDisplayOpenVG::destroySurface):
55774         (WebCore::EGLDisplayOpenVG::contextForSurface):
55775         * platform/graphics/texmap/TextureMapperGL.cpp:
55776         (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
55777         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
55778         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
55779         (WebCore::TextureMapperShaderManager::getShaderProgram):
55780         (WebCore::TextureMapperShaderManager::getShaderForFilter):
55781         * platform/graphics/wince/FontPlatformData.cpp:
55782         (WebCore::FixedSizeFontData::create):
55783         * platform/gtk/DataObjectGtk.cpp:
55784         (WebCore::DataObjectGtk::forClipboard):
55785         * platform/gtk/GtkDragAndDropHelper.cpp:
55786         (WebCore::GtkDragAndDropHelper::handleGetDragData):
55787         (WebCore::GtkDragAndDropHelper::handleDragLeave):
55788         (WebCore::GtkDragAndDropHelper::handleDragMotion):
55789         (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
55790         (WebCore::GtkDragAndDropHelper::handleDragDrop):
55791         * platform/gtk/RedirectedXCompositeWindow.cpp:
55792         (WebCore::filterXDamageEvent):
55793         * platform/gtk/RenderThemeGtk3.cpp:
55794         (WebCore::gtkStyleChangedCallback):
55795         (WebCore::getStyleContext):
55796         * platform/mac/ScrollbarThemeMac.mm:
55797         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
55798         * platform/network/CredentialStorage.cpp:
55799         (WebCore::CredentialStorage::set):
55800         (WebCore::CredentialStorage::get):
55801         * platform/network/HTTPHeaderMap.cpp:
55802         (WebCore::HTTPHeaderMap::copyData):
55803         (WebCore::HTTPHeaderMap::get):
55804         * platform/network/MIMEHeader.cpp:
55805         (WebCore::MIMEHeader::parseHeader):
55806         * platform/network/ResourceHandle.cpp:
55807         (WebCore::ResourceHandle::create):
55808         * platform/network/ResourceRequestBase.cpp:
55809         (WebCore::ResourceRequestBase::addHTTPHeaderField):
55810         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
55811         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
55812         (WebCore::ResourceRequest::targetTypeFromMimeType):
55813         (WebCore::ResourceRequest::initializePlatformRequest):
55814         * platform/network/cf/ResourceHandleCFNet.cpp:
55815         (WebCore::makeFinalRequest):
55816         * platform/network/cf/ResourceRequestCFNet.cpp:
55817         (WebCore::setHeaderFields):
55818         * platform/network/curl/ResourceHandleManager.cpp:
55819         (WebCore::ResourceHandleManager::initializeHandle):
55820         * platform/network/mac/ResourceRequestMac.mm:
55821         (WebCore::ResourceRequest::doUpdatePlatformRequest):
55822         * platform/network/qt/ResourceRequestQt.cpp:
55823         (WebCore::ResourceRequest::toNetworkRequest):
55824         * platform/network/soup/ResourceHandleSoup.cpp:
55825         (WebCore::sendRequestCallback):
55826         (WebCore::ResourceHandle::setClientCertificate):
55827         * platform/network/soup/ResourceRequestSoup.cpp:
55828         (WebCore::ResourceRequest::updateSoupMessage):
55829         (WebCore::ResourceRequest::toSoupMessage):
55830         * platform/network/soup/ResourceResponseSoup.cpp:
55831         (WebCore::ResourceResponse::toSoupMessage):
55832         * platform/network/win/ResourceHandleWin.cpp:
55833         (WebCore::ResourceHandle::start):
55834         * platform/qt/RunLoopQt.cpp:
55835         (WebCore::RunLoop::TimerBase::timerFired):
55836         * platform/text/LocaleToScriptMappingDefault.cpp:
55837         (WebCore::scriptNameToCode):
55838         (WebCore::localeToScriptCodeForFontSelection):
55839         * platform/text/TextEncodingRegistry.cpp:
55840         (WebCore::pruneBlacklistedCodecs):
55841         (WebCore::dumpTextEncodingNameMap):
55842         * platform/text/transcoder/FontTranscoder.cpp:
55843         (WebCore::FontTranscoder::converterType):
55844         * platform/text/win/TextCodecWin.cpp:
55845         (WebCore::LanguageManager::LanguageManager):
55846         (WebCore::getCodePage):
55847         (WebCore::TextCodecWin::registerExtendedEncodingNames):
55848         (WebCore::TextCodecWin::registerExtendedCodecs):
55849         (WebCore::TextCodecWin::enumerateSupportedEncodings):
55850         * platform/win/ClipboardUtilitiesWin.cpp:
55851         (WebCore::getDataMapItem):
55852         (WebCore::getClipboardData):
55853         (WebCore::setClipboardData):
55854         * platform/win/ClipboardWin.cpp:
55855         (WebCore::ClipboardWin::types):
55856         * platform/win/FileSystemWin.cpp:
55857         (WebCore::cachedStorageDirectory):
55858         * platform/win/RunLoopWin.cpp:
55859         (WebCore::RunLoop::TimerBase::timerFired):
55860         * platform/win/WCDataObject.cpp:
55861         (WebCore::WCDataObject::createInstance):
55862         * platform/wince/MIMETypeRegistryWinCE.cpp:
55863         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
55864         * platform/wx/ContextMenuWx.cpp:
55865         (WebCore::ContextMenu::appendItem):
55866         * plugins/PluginDatabase.cpp:
55867         (WebCore::PluginDatabase::refresh):
55868         (WebCore::PluginDatabase::MIMETypeForExtension):
55869         (WebCore::PluginDatabase::remove):
55870         * plugins/PluginMainThreadScheduler.cpp:
55871         (WebCore::PluginMainThreadScheduler::scheduleCall):
55872         (WebCore::PluginMainThreadScheduler::dispatchCalls):
55873         * plugins/PluginStream.cpp:
55874         (WebCore::PluginStream::startStream):
55875         * plugins/blackberry/PluginDataBlackBerry.cpp:
55876         (WebCore::PluginData::initPlugins):
55877         * plugins/wx/PluginDataWx.cpp:
55878         (WebCore::PluginData::initPlugins):
55879         * rendering/ExclusionShapeInsideInfo.cpp:
55880         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
55881         * rendering/FlowThreadController.cpp:
55882         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
55883         * rendering/InlineFlowBox.cpp:
55884         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
55885         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
55886         * rendering/RenderBlock.cpp:
55887         (WebCore::RenderBlock::clearFloats):
55888         * rendering/RenderBlockLineLayout.cpp:
55889         (WebCore::setLogicalWidthForTextRun):
55890         * rendering/RenderBoxModelObject.cpp:
55891         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
55892         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
55893         * rendering/RenderCounter.cpp:
55894         (WebCore::RenderCounter::destroyCounterNodes):
55895         (WebCore::RenderCounter::destroyCounterNode):
55896         (WebCore::updateCounters):
55897         (WebCore::RenderCounter::rendererStyleChanged):
55898         * rendering/RenderFlowThread.cpp:
55899         (WebCore::RenderFlowThread::setRegionRangeForBox):
55900         (WebCore::RenderFlowThread::getRegionRangeForBox):
55901         * rendering/RenderLayer.cpp:
55902         (WebCore::RenderLayer::paint):
55903         (WebCore::performOverlapTests):
55904         * rendering/RenderLayerFilterInfo.cpp:
55905         (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
55906         (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
55907         * rendering/RenderNamedFlowThread.cpp:
55908         (WebCore::RenderNamedFlowThread::dependsOn):
55909         (WebCore::RenderNamedFlowThread::pushDependencies):
55910         * rendering/RenderRegion.cpp:
55911         (WebCore::RenderRegion::setRenderBoxRegionInfo):
55912         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
55913         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
55914         (WebCore::RenderRegion::computeChildrenStyleInRegion):
55915         * rendering/RenderTableSection.cpp:
55916         (WebCore::RenderTableSection::cachedCollapsedBorder):
55917         * rendering/RenderThemeMac.mm:
55918         (WebCore::RenderThemeMac::systemColor):
55919         * rendering/RenderView.cpp:
55920         (WebCore::RenderView::selectionBounds):
55921         (WebCore::RenderView::setSelection):
55922         * rendering/RenderWidget.cpp:
55923         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
55924         * rendering/RootInlineBox.cpp:
55925         (WebCore::RootInlineBox::ascentAndDescentForBox):
55926         * rendering/VerticalPositionCache.h:
55927         (WebCore::VerticalPositionCache::get):
55928         * rendering/svg/RenderSVGInlineText.cpp:
55929         (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
55930         * rendering/svg/RenderSVGResourceFilter.cpp:
55931         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
55932         * rendering/svg/RenderSVGResourceGradient.cpp:
55933         (WebCore::RenderSVGResourceGradient::applyResource):
55934         * rendering/svg/RenderSVGResourcePattern.cpp:
55935         (WebCore::RenderSVGResourcePattern::applyResource):
55936         * rendering/svg/SVGResourcesCache.cpp:
55937         (WebCore::SVGResourcesCache::resourceDestroyed):
55938         * rendering/svg/SVGRootInlineBox.cpp:
55939         (WebCore::swapItemsInLayoutAttributes):
55940         * rendering/svg/SVGTextLayoutAttributes.cpp:
55941         (WebCore::SVGTextLayoutAttributes::dump):
55942         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
55943         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
55944         (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
55945         * rendering/svg/SVGTextLayoutEngine.cpp:
55946         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
55947         * rendering/svg/SVGTextMetricsBuilder.cpp:
55948         (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
55949         * storage/StorageAreaSync.cpp:
55950         (WebCore::StorageAreaSync::syncTimerFired):
55951         (WebCore::StorageAreaSync::performImport):
55952         (WebCore::StorageAreaSync::sync):
55953         * storage/StorageMap.cpp:
55954         (WebCore::StorageMap::key):
55955         (WebCore::StorageMap::setItem):
55956         * storage/StorageNamespaceImpl.cpp:
55957         (WebCore::StorageNamespaceImpl::localStorageNamespace):
55958         (WebCore::StorageNamespaceImpl::copy):
55959         (WebCore::StorageNamespaceImpl::close):
55960         (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
55961         (WebCore::StorageNamespaceImpl::sync):
55962         * svg/SVGDocumentExtensions.cpp:
55963         (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
55964         (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
55965         (WebCore::SVGDocumentExtensions::addPendingResource):
55966         (WebCore::SVGDocumentExtensions::isElementPendingResources):
55967         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
55968         (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
55969         (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
55970         (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
55971         * svg/SVGElement.cpp:
55972         (WebCore::SVGElement::~SVGElement):
55973         * svg/animation/SMILTimeContainer.cpp:
55974         (WebCore::SMILTimeContainer::setElapsed):
55975         (WebCore::SMILTimeContainer::updateAnimations):
55976         * svg/graphics/SVGImageCache.cpp:
55977         (WebCore::SVGImageCache::~SVGImageCache):
55978         (WebCore::SVGImageCache::removeClientFromCache):
55979         (WebCore::SVGImageCache::requestedSizeAndScales):
55980         (WebCore::SVGImageCache::imageContentChanged):
55981         (WebCore::SVGImageCache::redraw):
55982         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
55983         * svg/graphics/filters/SVGFilterBuilder.h:
55984         (WebCore::SVGFilterBuilder::effectReferences):
55985         (WebCore::SVGFilterBuilder::addBuiltinEffects):
55986         * svg/properties/SVGAnimatedProperty.h:
55987         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
55988         * svg/properties/SVGAttributeToPropertyMap.cpp:
55989         (WebCore::SVGAttributeToPropertyMap::addProperties):
55990         (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
55991         * workers/WorkerContext.cpp:
55992         (WebCore::WorkerContext::hasPendingActivity):
55993         * workers/WorkerEventQueue.cpp:
55994         (WebCore::WorkerEventQueue::close):
55995         * xml/XMLHttpRequest.cpp:
55996         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
55997         (WebCore::XMLHttpRequest::getAllResponseHeaders):
55998         * xml/XPathFunctions.cpp:
55999         (WebCore::XPath::createFunction):
56000         * xml/XPathParser.cpp:
56001         (isAxisName):
56002         * xml/XSLTProcessorLibxslt.cpp:
56003         (WebCore::xsltParamArrayFromParameterMap):
56004         * xml/XSLTProcessorQt.cpp:
56005         (WebCore::XSLTProcessor::transformToString):
56006
56007 2012-10-07  Geoffrey Garen  <ggaren@apple.com>
56008
56009         REGRESSION (r130584): Crashes in JSC::MarkedAllocator::allocateSlowCase, failing fast/dom/gc-dom-tree-lifetime.html
56010         https://bugs.webkit.org/show_bug.cgi?id=98612
56011
56012         Reviewed by Darin Adler.
56013
56014         Since DOM modification can happen outside of JS, calls into JS due to
56015         DOM modification need to take the JS lock.
56016
56017         * bindings/js/JSNodeCustom.cpp:
56018         (WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase): Take the JS
56019         lock before doing a JS allocation, since this may be a JS entrypoint.
56020
56021         * bindings/js/JSNodeCustom.h:
56022         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Split out a slow case
56023         to help the inliner.
56024
56025 2012-10-07  Nick Carter  <nick@chromium.org>
56026
56027         [chromium] Crash in WebCore::GraphicsLayerChromium::setContentsToImage
56028         https://bugs.webkit.org/show_bug.cgi?id=98456
56029
56030         Reviewed by James Robinson.
56031
56032         Handle null return of nativeImageForCurrentFrame.
56033
56034         Test: compositing/images/truncated-direct-png-image.html
56035
56036         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
56037         (WebCore::GraphicsLayerChromium::setContentsToImage):
56038
56039 2012-10-07  Benjamin Poulain  <benjamin@webkit.org>
56040
56041         WTFURL: implement URL port removal for HTMLAnchorElement
56042         https://bugs.webkit.org/show_bug.cgi?id=98604
56043
56044         Reviewed by Adam Barth.
56045
56046         * platform/KURLWTFURL.cpp:
56047         (WebCore::KURL::hasPort):
56048         (WebCore::KURL::removePort):
56049         (WebCore::KURL::isHierarchical):
56050         Implement those methods to pass the port removal test of HTMLAnchorElement.
56051
56052 2012-10-05  Dirk Schulze  <krit@webkit.org>
56053
56054         SVG radialGradient should support 'fr' for focal radius (just like Canvas)
56055         https://bugs.webkit.org/show_bug.cgi?id=97986
56056
56057         Reviewed by Daniel Bates.
56058
56059         Update SVGRadialGradient to the changed behavior in SVG2: http://www.w3.org/TR/SVG2/pservers.html#RadialGradients
56060         SVG2 adds the focal radius for radial gradients. Color stops will start from the edge of
56061         the focal radius.
56062         The new specification does not limit the focal point to be inside the radial gradients radius.
56063         This makes SVGRadialGradient consistent with the radial gradient on Canvas.
56064
56065         Test: svg/custom/radialGradient-focal-radius.svg
56066
56067         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
56068             Remove checks for position of focal point. The focal point
56069             can be placed every where outside the radius of the gradient now.
56070         (WebCore::RenderSVGResourceRadialGradient::focalRadius):
56071             Add new method to get the focal radius from SVGRadialGradientElement.
56072         (WebCore::RenderSVGResourceRadialGradient::buildGradient):
56073         * rendering/svg/RenderSVGResourceRadialGradient.h:
56074         (RenderSVGResourceRadialGradient):
56075         * rendering/svg/SVGRenderTreeAsText.cpp:
56076         (WebCore::writeSVGResourceContainer):
56077             Modify DRT output to include the focal radius.
56078         * svg/RadialGradientAttributes.h:
56079         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
56080         (WebCore::RadialGradientAttributes::fr):
56081         (WebCore::RadialGradientAttributes::setFr):
56082         (WebCore::RadialGradientAttributes::hasFr):
56083         (RadialGradientAttributes):
56084             New setters and getters for focal radius.
56085         * svg/SVGRadialGradientElement.cpp:
56086         (WebCore):
56087         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
56088         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
56089         (WebCore::SVGRadialGradientElement::parseAttribute):
56090         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
56091         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
56092             Ditto.
56093         * svg/SVGRadialGradientElement.h:
56094         (SVGRadialGradientElement):
56095         * svg/SVGRadialGradientElement.idl:
56096         * svg/svgattrs.in:
56097             Add 'fr' as new attribute to the SVG attribute list.
56098
56099 2012-10-07  Glenn Adams  <glenn@skynav.com>
56100
56101         Use start instead of -webkit-auto in default and quirks mode stylesheets.
56102         https://bugs.webkit.org/show_bug.cgi?id=98609
56103
56104         Reviewed by Antti Koivisto.
56105
56106         Change text-align use of legacy '-webkit-auto' to 'start' in the few places where it is used
56107         in default/quirks stylesheets.
56108         
56109         No new tests. No change of rendering/styling behavior. No performance impact.
56110
56111         * css/html.css:
56112         (input, textarea, keygen, select, button, isindex):
56113         (ruby > rt):
56114         * css/quirks.css:
56115         (table):
56116
56117 2012-10-06  Raul Hudea  <rhudea@adobe.com>
56118
56119         -webkit-clip-path should parse IRIs
56120         https://bugs.webkit.org/show_bug.cgi?id=96381
56121
56122         Reviewed by Andreas Kling.
56123
56124         Implemented the clipping via referencing a SVG clipPath. Currently it works only if the clipPath is defined
56125         before using it on an HTML element. The forward reference issue is tracked via https://bugs.webkit.org/show_bug.cgi?id=90405.
56126
56127         Tests: css3/masking/clip-path-reference-userSpaceOnUse.html
56128                css3/masking/clip-path-reference.html
56129                fast/masking/parsing-clip-path-iri.html
56130
56131         * css/CSSComputedStyleDeclaration.cpp:
56132         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add handling for SVG clipPath references.
56133         * css/CSSParser.cpp:
56134         (WebCore::CSSParser::parseValue): Add handling for SVG clipPath references.
56135         * css/StyleBuilder.cpp:
56136         (WebCore::ApplyPropertyClipPath::applyValue): Add handling for SVG references.
56137         * rendering/ClipPathOperation.h:
56138         (ReferenceClipPathOperation): Added a new class corresponding to SVG referenced clipPath.
56139         (WebCore::ReferenceClipPathOperation::create):
56140         (WebCore::ReferenceClipPathOperation::url):
56141         (WebCore::ReferenceClipPathOperation::fragment):
56142         (WebCore::ReferenceClipPathOperation::operator==):
56143         (WebCore::ReferenceClipPathOperation::ReferenceClipPathOperation):
56144         (WebCore):
56145         * rendering/RenderLayer.cpp:
56146         (WebCore::RenderLayer::paintLayerContents): Add handling for ReferenceClipPathOperation.
56147         * rendering/svg/RenderSVGResourceClipper.h:
56148         (RenderSVGResourceClipper): Made applyClippingToContext public as it needs to be called directly for HTML elements.
56149
56150 2012-10-06  Pratik Solanki  <psolanki@apple.com>
56151
56152         Reduce calls to CGImageSourceCopyPropertiesAtIndex from frameSizeAtIndex
56153         https://bugs.webkit.org/show_bug.cgi?id=98607
56154
56155         Reviewed by Dan Bernstein.
56156
56157         Refactor code so that we avoid a second call to CGImageSourceCopyPropertiesAtIndex under
56158         ImageSource::frameSizeAtIndex().
56159
56160         No new tests because no functional change.
56161
56162         * platform/graphics/cg/ImageSourceCG.cpp:
56163         (WebCore::orientationFromProperties):
56164         (WebCore):
56165         (WebCore::ImageSource::frameSizeAtIndex):
56166         (WebCore::ImageSource::orientationAtIndex):
56167
56168 2012-10-06  Mark Rowe  <mrowe@apple.com>
56169
56170         Build fix.
56171
56172         Stop calling -[NSSliderCell setTitle:]. It's never done anything on OS X.
56173
56174         * rendering/RenderThemeMac.mm:
56175         (WebCore::RenderThemeMac::sliderThumbHorizontal):
56176         (WebCore::RenderThemeMac::sliderThumbVertical):
56177
56178 2012-10-06  Andreas Kling  <kling@webkit.org>
56179
56180         Clipboard::types() should return an ordered collection.
56181         <http://webkit.org/b/98547>
56182
56183         Reviewed by Darin Adler.
56184
56185         Let Clipboard::types() return a ListHashSet<String> instead of a HashSet<String> to make sure
56186         it retains the order in which type strings are added.
56187
56188         No test, this fixes an issue that was uncovered when lowering the default table size of WTF
56189         hash tables, causing the HashSet<String> to rehash and reorder itself.
56190
56191         * bindings/js/JSClipboardCustom.cpp:
56192         (WebCore::JSClipboard::types):
56193         * bindings/v8/custom/V8ClipboardCustom.cpp:
56194         (WebCore::V8Clipboard::typesAccessorGetter):
56195         * dom/Clipboard.h:
56196         (Clipboard):
56197         * platform/blackberry/ClipboardBlackBerry.cpp:
56198         (WebCore::ClipboardBlackBerry::types):
56199         * platform/blackberry/ClipboardBlackBerry.h:
56200         (ClipboardBlackBerry):
56201         * platform/chromium/ChromiumDataObject.cpp:
56202         (WebCore::ChromiumDataObject::types):
56203         * platform/chromium/ChromiumDataObject.h:
56204         (ChromiumDataObject):
56205         * platform/chromium/ClipboardChromium.cpp:
56206         (WebCore::ClipboardChromium::types):
56207         * platform/chromium/ClipboardChromium.h:
56208         (ClipboardChromium):
56209         * platform/efl/ClipboardEfl.cpp:
56210         (WebCore::ClipboardEfl::types):
56211         * platform/efl/ClipboardEfl.h:
56212         (ClipboardEfl):
56213         * platform/gtk/ClipboardGtk.cpp:
56214         (WebCore::ClipboardGtk::types):
56215         * platform/gtk/ClipboardGtk.h:
56216         (ClipboardGtk):
56217         * platform/mac/ClipboardMac.h:
56218         (ClipboardMac):
56219         * platform/mac/ClipboardMac.mm:
56220         (WebCore::addHTMLClipboardTypesForCocoaType):
56221         (WebCore::ClipboardMac::types):
56222         * platform/qt/ClipboardQt.cpp:
56223         (WebCore::ClipboardQt::types):
56224         * platform/qt/ClipboardQt.h:
56225         (ClipboardQt):
56226         * platform/win/ClipboardWin.cpp:
56227         (WebCore::addMimeTypesForFormat):
56228         (WebCore::ClipboardWin::types):
56229         * platform/win/ClipboardWin.h:
56230         (ClipboardWin):
56231         * platform/wx/ClipboardWx.cpp:
56232         (WebCore::ClipboardWx::types):
56233         * platform/wx/ClipboardWx.h:
56234         (ClipboardWx):
56235
56236 2012-10-06  Geoffrey Garen  <ggaren@apple.com>
56237
56238         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56239         https://bugs.webkit.org/show_bug.cgi?id=88834
56240
56241         Reviewed by Gavin Barraclough.
56242
56243         Follow-up patch to address some comments by Darin Adler.
56244
56245         * bindings/js/JSNodeCustom.h:
56246         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Save some space by
56247         collapsing comment lines. Use Node::hasChildNodes() for brevity.
56248
56249 2012-10-06  Benjamin Poulain  <benjamin@webkit.org>
56250
56251         Fix weird use of KURL's protocolIs
56252         https://bugs.webkit.org/show_bug.cgi?id=98584
56253
56254         Reviewed by Adam Barth.
56255
56256         Converting a KURL to string is a bad idea.
56257
56258         Invalid URLs can return a string that pass the tests, while an
56259         invalid URL will fail protocolIs().
56260
56261         * loader/cache/CachedResource.cpp:
56262         (WebCore::CachedResource::removeClient):
56263         * platform/graphics/MediaPlayer.cpp:
56264         (WebCore::MediaPlayer::load):
56265         * platform/network/DataURL.cpp:
56266         (WebCore::handleDataURL):
56267
56268 2012-10-06  Dan Bernstein  <mitz@apple.com>
56269
56270         WebCore part of <rdar://problem/12446507> [mac] WebKit clients cannot change the behavior of text-rendering: auto
56271         https://bugs.webkit.org/show_bug.cgi?id=98601
56272
56273         Reviewed by Darin Adler.
56274
56275         * WebCore.exp.in: Exported Font::setDefaultTypesettingFeatures().
56276         * platform/graphics/Font.cpp:
56277         (WebCore::Font::s_defaultTypesettingFeatures): Defined this static.
56278         (WebCore::Font::setDefaultTypesettingFeatures): Added this setter.
56279         (WebCore::Font::defaultTypesettingFeatures): Added this getter.
56280         * platform/graphics/Font.h:
56281         (WebCore::Font::typesettingFeatures): Changed to use the value of the new static member
56282         s_defaultTypesettingFeatures, rather than 0, if text-redering is set to auto.
56283
56284 2012-10-04  Geoffrey Garen  <ggaren@apple.com>
56285
56286         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56287         https://bugs.webkit.org/show_bug.cgi?id=88834
56288
56289         Reviewed by Gavin Barraclough.
56290
56291         * bindings/js/JSNodeCustom.cpp:
56292         (WebCore::isObservable): Clarified this comment, since it seems to have
56293         misled some folks. 
56294
56295         * bindings/js/JSNodeCustom.h:
56296         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): New helper function
56297         to ensure that a disconnected tree is visible to JavaScript.
56298
56299         * bindings/js/ScriptState.cpp:
56300         (WebCore::mainWorldScriptState): Need to check for null because a document's
56301         frame can be null.
56302
56303         * dom/ContainerNode.cpp:
56304         (WebCore::dispatchChildRemovalEvents): When we remove a subtree from the
56305         document, we sever the reference that JavaScript previously held by
56306         referencing its root. So, we give JavaScript an opportunity to establish
56307         a reference to the new root.
56308
56309 2012-10-06  Byungwoo Lee  <bw80.lee@samsung.com>
56310
56311         Fix build warning : -Wunused-parameter.
56312         https://bugs.webkit.org/show_bug.cgi?id=98583
56313
56314         Reviewed by Kentaro Hara.
56315
56316         Use ASSERT_UNUSED() macro to remove build warning.
56317
56318         * plugins/PluginStream.cpp:
56319         (WebCore::PluginStream::delayDeliveryTimerFired):
56320         (WebCore::PluginStream::didReceiveResponse):
56321         (WebCore::PluginStream::didReceiveData):
56322         (WebCore::PluginStream::didFail):
56323         (WebCore::PluginStream::didFinishLoading):
56324         * plugins/PluginView.cpp:
56325         (WebCore::PluginView::requestTimerFired):
56326         (WebCore::PluginView::invalidateTimerFired):
56327
56328 2012-10-05  Adam Barth  <abarth@webkit.org>
56329
56330         [V8] toV8(Node*, ...) does more work than needed (6% faster on dom-traverse)
56331         https://bugs.webkit.org/show_bug.cgi?id=98567
56332
56333         Reviewed by Kentaro Hara.
56334
56335         This patch introduces toV8Fast for Node*. This function works a
56336         differently from the existing toV8 function in two ways:
56337
56338         1) It uses the inline wrapper cache in Node to determine if we're
56339            executing in the main world. This is faster both in the case when
56340            isolated worlds exist because we don't need to retrieve any state
56341            for the current context.
56342
56343         2) It doesn't attempt to inline the hash table lookup used to find the
56344            wrapper in the isolated world. There isn't a big need to inline this
56345            code since performance in the isolated world case is dominated by
56346            the hash table lookup.
56347
56348         Because of these two changes, toV8Fast is small enough to inline into
56349         each attribute getter profitably. Over time, I would like to convert
56350         all the performance critical uses of toV8(Node*) to toV8Fast. At that
56351         point, we can delete toV8 and rename toV8Slow to toV8.
56352
56353         * bindings/scripts/CodeGeneratorV8.pm:
56354         (GenerateHeader):
56355         (GenerateNormalAttrGetter):
56356
56357 2012-10-05  Huang Dongsung  <luxtella@company100.net>
56358
56359         [mac] REGRESSION (r122215): Animated GIF outside the viewport doesn't play when scrolled into view.
56360         https://bugs.webkit.org/show_bug.cgi?id=94874
56361
56362         Reviewed by Simon Fraser.
56363
56364         Rollback previous patch because this patch caused two problems.
56365         1. GIF animation is occasionally paused when tiled scrolling is enabled.
56366         2. This change regressed Apple's Membuster benchmark by ~20% (80MB.)
56367
56368         * loader/cache/CachedImage.cpp:
56369         (WebCore::CachedImage::shouldPauseAnimation):
56370         * loader/cache/CachedImage.h:
56371         (CachedImage):
56372         * loader/cache/CachedResource.h:
56373         * loader/cache/MemoryCache.cpp:
56374         (WebCore::MemoryCache::pruneLiveResourcesToSize):
56375         * rendering/RenderObject.cpp:
56376         (WebCore::RenderObject::willRenderImage):
56377
56378 2012-10-05  Xianzhu Wang  <wangxianzhu@chromium.org>
56379
56380         OpenTypeVerticalData issue with DroidSansFallback.ttf on chromium-android and chromium-linux
56381         https://bugs.webkit.org/show_bug.cgi?id=97824
56382
56383         Reviewed by Tony Chang.
56384
56385         The issue occurred when a font that contains vert GSUB table but doesn't have
56386         a DFLT script and the first script doesn't have vert feature. Added logic to
56387         handle the case.
56388
56389         Test: fast/writing-mode/vertical-subst-font-vert-no-dflt.html
56390
56391         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
56392         (FeatureList):
56393         (WebCore::OpenType::FeatureList::findFeature): Added to find the matching feature in FeatureList.
56394         (WebCore::OpenType::GSUBTable::feature): Added logic to handle the case of no DFLT script and no vert feature under the first script.
56395
56396 2012-10-05  Tony Chang  <tony@chromium.org>
56397
56398         Form controls should always be horizontal
56399         https://bugs.webkit.org/show_bug.cgi?id=98563
56400
56401         Reviewed by Ojan Vafai.
56402
56403         Fix a regression where we didn't force form controls to be horizontal.
56404
56405         Tests: fast/dom/HTMLMeterElement/meter-writing-mode.html
56406                fast/dom/HTMLProgressElement/progress-writing-mode.html
56407                fast/table/colspanMinWidth-vertical.html
56408
56409         * css/html.css:
56410         (input, textarea, keygen, select, button, isindex, meter, progress):
56411
56412 2012-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
56413
56414         Unreviewed, rolling out r130556 and r130564.
56415         http://trac.webkit.org/changeset/130556
56416         http://trac.webkit.org/changeset/130564
56417         https://bugs.webkit.org/show_bug.cgi?id=98572
56418
56419         The patch wasn't reviewed by a reviewer and it is breaking
56420         Chromium Windows (Requested by jchaffraix on #webkit).
56421
56422         * WebCore.exp.in:
56423         * WebCore.xcodeproj/project.pbxproj:
56424         * css/mediaControls.css:
56425         (video::-webkit-media-text-track-container):
56426         (video::-webkit-media-text-track-past-nodes):
56427         (video::-webkit-media-text-track-future-nodes):
56428         (video::-webkit-media-text-track-display):
56429         * html/HTMLMediaElement.cpp:
56430         (WebCore::HTMLMediaElement::HTMLMediaElement):
56431         (WebCore::HTMLMediaElement::attach):
56432         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage):
56433         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind):
56434         (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
56435         (WebCore::HTMLMediaElement::updateClosedCaptionsControls):
56436         * html/HTMLMediaElement.h:
56437         (HTMLMediaElement):
56438         * html/shadow/MediaControlElements.cpp:
56439         (WebCore):
56440         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
56441         * html/shadow/MediaControlElements.h:
56442         (MediaControlTextTrackContainerElement):
56443         * html/shadow/MediaControlRootElement.cpp:
56444         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56445         * html/shadow/MediaControlRootElement.h:
56446         (MediaControlRootElement):
56447         * html/shadow/MediaControls.h:
56448         (MediaControls):
56449         * html/track/TextTrack.cpp:
56450         (WebCore::TextTrack::TextTrack):
56451         (WebCore::TextTrack::isValidKindKeyword):
56452         (WebCore::TextTrack::setKind):
56453         (WebCore::TextTrack::setMode):
56454         (WebCore::TextTrack::mode):
56455         * html/track/TextTrack.h:
56456         (WebCore::TextTrack::create):
56457         (WebCore::TextTrack::kind):
56458         (TextTrack):
56459         (WebCore::TextTrack::label):
56460         (WebCore::TextTrack::setLabel):
56461         (WebCore::TextTrack::language):
56462         (WebCore::TextTrack::setLanguage):
56463         * html/track/TextTrackCue.cpp:
56464         (WebCore::TextTrackCueBox::TextTrackCueBox):
56465         (WebCore::TextTrackCueBox::shadowPseudoId):
56466         (WebCore):
56467         (WebCore::TextTrackCue::updateDisplayTree):
56468         * html/track/TextTrackCue.h:
56469         (TextTrackCueBox):
56470         (TextTrackCue):
56471         * platform/mac/WebCoreSystemInterface.h:
56472         * platform/mac/WebCoreSystemInterface.mm:
56473         * rendering/CaptionPreferencesChangedListener.h: Removed.
56474         * rendering/RenderTheme.h:
56475         (WebCore):
56476         (RenderTheme):
56477         * rendering/RenderThemeMac.h:
56478         (RenderThemeMac):
56479         * rendering/RenderThemeMac.mm:
56480         (WebCore):
56481         (WebCore::RenderThemeMac::RenderThemeMac):
56482         (WebCore::RenderThemeMac::~RenderThemeMac):
56483
56484 2012-10-05  Tim Horton  <timothy_horton@apple.com>
56485
56486         [cg] GraphicsContextCG should ask CG whether the shadow offset workaround is required
56487         https://bugs.webkit.org/show_bug.cgi?id=98565
56488         <rdar://problem/12436468>
56489
56490         Reviewed by Simon Fraser.
56491
56492         On Mountain Lion and above, CG can tell us whether we need to work around incorrect
56493         shadow offsets. Prior to Mountain Lion, we should assume we need to apply the workaround.
56494
56495         No new tests, as this requires an obscure configuration to test.
56496
56497         * WebCore.exp.in:
56498         * platform/graphics/cg/GraphicsContextCG.cpp:
56499         (WebCore::applyShadowOffsetWorkaroundIfNeeded):
56500         (WebCore::GraphicsContext::setPlatformShadow):
56501         * platform/mac/WebCoreSystemInterface.h: Add wkCGContextDrawsWithCorrectShadowOffsets.
56502         * platform/mac/WebCoreSystemInterface.mm: Add wkCGContextDrawsWithCorrectShadowOffsets.
56503
56504 2012-10-05  Anders Carlsson  <andersca@apple.com>
56505
56506         Try to fix the build.
56507
56508         * rendering/RenderThemeMac.mm:
56509         (WebCore::RenderThemeMac::captionsWindowColor):
56510
56511 2012-10-05  Eric Seidel  <eric@webkit.org>
56512
56513         Remove needless virtual calls and inline RenderStyle::logical* to make table layout faster
56514         https://bugs.webkit.org/show_bug.cgi?id=98550
56515
56516         Reviewed by Andreas Kling.
56517
56518         This shaved another 5% (100ms) off of the runtime of resizecol.html microbenchmark:
56519         http://www.robohornet.org/tests/resizecol.html
56520
56521         * rendering/AutoTableLayout.cpp:
56522         (WebCore::AutoTableLayout::recalcColumn):
56523         * rendering/style/RenderStyle.cpp:
56524         * rendering/style/RenderStyle.h:
56525
56526 2012-10-04  Eric Carlson  <eric.carlson@apple.com>
56527
56528         Allow ports to override text track rendering style
56529         https://bugs.webkit.org/show_bug.cgi?id=97800
56530         <rdar://problem/12044964>
56531
56532         Reviewed by Silvia Pfeiffer.
56533
56534         * WebCore.exp.in: Export new WebkitSystemInterface functions.
56535         * WebCore.xcodeproj/project.pbxproj: Add CaptionPreferencesChangedListener.h.
56536
56537         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
56538             background, and text independently.
56539
56540         * html/HTMLMediaElement.cpp:
56541         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
56542         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
56543         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
56544         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
56545         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
56546         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
56547             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
56548         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
56549         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
56550             setClosedCaptionsVisible
56551         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
56552
56553         * html/shadow/MediaControlElements.cpp:
56554         (WebCore::MediaControlTextTrackContainerElement::userCaptionPreferencesChanged): New, if theme
56555             has a captions style sheet override, inject it into the current page group, otherwise
56556             remove injected sheet.
56557         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
56558             variable. Get caption font scale from theme instead of hard coding.
56559         * html/shadow/MediaControlElements.h:
56560
56561         * html/shadow/MediaControlRootElement.cpp:
56562         (WebCore::MediaControlRootElement::userCaptionPreferencesChanged): New.
56563         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56564         * html/shadow/MediaControlRootElement.h: Add userCaptionPreferencesChanged, minor cleanup.
56565
56566         * html/shadow/MediaControls.h:
56567         (WebCore::MediaControls::userCaptionPreferencesChanged): New.
56568
56569         * html/track/TextTrackCue.cpp:
56570         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
56571         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
56572             shadow pseudo id so it can be used elsewhere.
56573         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
56574         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
56575             shadow pseudo id so it can be used elsewhere.
56576         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
56577         (WebCore::TextTrackCue::updateDisplayTree):
56578         * html/track/TextTrackCue.h:
56579
56580         * platform/mac/WebCoreSystemInterface.h: Updated.
56581         * platform/mac/WebCoreSystemInterface.mm: Ditto.
56582
56583         * rendering/CaptionPreferencesChangedListener.h: Added.
56584
56585         * rendering/RenderTheme.h:
56586         (WebCore::RenderTheme::userPrefersCaptions): New, default do-nothing implementation.
56587         (WebCore::RenderTheme::userHasCaptionPreferences): Ditto.
56588         (WebCore::RenderTheme::captionFontSizeScale): Ditto.
56589         (WebCore::RenderTheme::captionsStyleSheetOverride): Ditto.
56590         (WebCore::RenderTheme::registerForCaptionPreferencesChangedCallbacks): Ditto.
56591         (WebCore::RenderTheme::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
56592
56593         * rendering/RenderThemeMac.h:
56594         * rendering/RenderThemeMac.mm:
56595         (WebCore::userCaptionPreferencesChangedNotificationCallback): New, receives preference changed notifications.
56596         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_listeningForCaptionPreferenceNotifications.
56597         (WebCore::RenderThemeMac::~RenderThemeMac): Unregister for notifications if necessary.
56598         (WebCore::RenderThemeMac::userHasCaptionPreferences): New, passthrough to WKSI function.
56599         (WebCore::RenderThemeMac::userPrefersCaptions): Ditto.
56600         (WebCore::RenderThemeMac::captionsWindowColor): Return Color with user's caption window color preference.
56601         (WebCore::RenderThemeMac::captionsBackgroundColor): Return Color with user's caption 
56602             background color preference.
56603         (WebCore::RenderThemeMac::captionsTextColor): Return Color with user's caption text color preference.
56604         (WebCore::RenderThemeMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
56605         (WebCore::RenderThemeMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
56606             or webkit-text-stroke property.
56607         (WebCore::RenderThemeMac::cssColorProperty): Return a String with css to set a property 
56608             with a color value.
56609         (WebCore::RenderThemeMac::captionsTextEdgeStyle): Return a String with css to style caption 
56610             text with the user's preferred text edge stye.
56611         (WebCore::RenderThemeMac::captionsDefaultFont): Return a String with css to style caption
56612             text with the user's preferred font.
56613         (WebCore::RenderThemeMac::captionsStyleSheetOverride): Return a String with css to style captions
56614             with the user's preferred style.
56615         (WebCore::RenderThemeMac::captionFontSizeScale): Return the user's preferred caption font scale.
56616         (WebCore::RenderThemeMac::captionPreferencesChanged): Notify listeners of caption preference change.
56617         (WebCore::RenderThemeMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
56618             changes listener.
56619         (WebCore::RenderThemeMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
56620             changes listener.
56621
56622 2012-10-05  Takashi Sakamoto  <tasak@google.com>
56623
56624         Inline continuations create :after generated content on style recalcs
56625         https://bugs.webkit.org/show_bug.cgi?id=93170
56626
56627         Reviewed by Abhishek Arya.
56628
56629         The bug is caused by RenderInline::styleDidChange's setContinuation(0).
56630         RenderObjectChildList uses continuation to know whether the given
56631         renderer should have AFTER render object or not.
56632         However, setContinuation(0) makes RenderObjectChildList to
56633         misunderstand that all continuations are last continuation.
56634         To avoid the misunderstanding, added a new flag to class
56635         RenderObejctChildList to enable/disable updating :after content (and
56636         also :before content).
56637
56638         Tests: fast/css-generated-content/after-with-inline-continuation.html
56639                fast/css-generated-content/dynamic-apply-after-for-inline.html
56640
56641         * rendering/RenderInline.cpp:
56642         (WebCore::RenderInline::styleDidChange):
56643         Disable upating :after content for continuations which are not
56644         the last one during setStyle just after setContinuation(0).
56645         The setStyle invokes RenderInline::styleDidChange and also invokes
56646         updateBeforeAfterContent via the styleDidChange. This means,
56647         the last continuation's updateBeforeAfterContent is also invoked
56648         after setContinuation(0). We have to update :after for the last
56649         continuation.
56650         * rendering/RenderObjectChildList.cpp:
56651         (WebCore):
56652         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
56653         If s_updateBeforeAfterContent is false, quickly exit
56654         updateBeforeAfterContent.
56655         * rendering/RenderObjectChildList.h:
56656         (RenderObjectChildList):
56657         Added a new flag s_enableUpdateBeforeAfterContent to enable/disable
56658         updating :before or :after content.
56659
56660 2012-10-05  Simon Fraser  <simon.fraser@apple.com>
56661
56662         Don't assume that TileCache layers are opaque
56663         https://bugs.webkit.org/show_bug.cgi?id=98555
56664
56665         Reviewed by Dean Jackson.
56666
56667         TileCache previously set all its tile CALayers as opaque.
56668         However, we will need non-opaque tile caches when we use this
56669         tile cache for tiled layers, so add a member function to
56670         control tile opacity.
56671         
56672         RenderLayerBacking already calls m_graphicsLayer->setContentsOpaque()
56673         using the FrameView's notion of opaqueness, so this change will
56674         cause the main tile cache to be non-opaque if external forces have
56675         set the FrameView to be non-opaque.
56676         
56677         Also tweak the layer border widths on tiled layers.
56678
56679         * platform/graphics/ca/mac/TileCache.h:
56680         (TileCache):
56681         (WebCore::TileCache::tilesAreOpaque):
56682         * platform/graphics/ca/mac/TileCache.mm:
56683         (WebCore::TileCache::TileCache):
56684         (WebCore::TileCache::setTilesOpaque):
56685         (WebCore::TileCache::createTileLayer):
56686         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
56687         (-[WebTileCacheLayer setOpaque:]):
56688         (-[WebTileCacheLayer isOpaque]):
56689         (-[WebTileCacheLayer setBorderWidth:]):
56690
56691 2012-10-05  Tony Chang  <tony@chromium.org>
56692
56693         Fix margin box ascent computation in flexbox
56694         https://bugs.webkit.org/show_bug.cgi?id=98540
56695
56696         Reviewed by Ojan Vafai.
56697
56698         The margin box ascent doesn't depend on the margin below the box.
56699
56700         Tests: css3/flexbox/flex-align.html: Fixed a test case and removed a FIXME.
56701                css3/flexbox/flex-align-vertical-writing-mode.html: Similar test case.
56702
56703         * rendering/RenderFlexibleBox.cpp:
56704         (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
56705
56706 2012-10-05  Ojan Vafai  <ojan@chromium.org>
56707
56708         Deprecated flexboxes subtract scrollbar width/height twice
56709         https://bugs.webkit.org/show_bug.cgi?id=98552
56710
56711         Reviewed by Tony Chang.
56712
56713         This is a regression from http://trac.webkit.org/changeset/119507.
56714         The problem is that contentHeight subtracts the scrollbar and
56715         RenderDeprecatedFlexbox subtracts the scrollbar.
56716
56717         -Make it so that we only access override sizes if one has been set.
56718         I think this makes the calling code more clear.
56719         -If we don't have one set, grab the height/width - borderAndPadding.
56720         -Add a FIXME to change this all back to being borderbox sizes.
56721         There's something trick with making table padding/border work right for that
56722         though (noted in the original patch).
56723
56724         Test: fast/flexbox/flexing-overflow-scroll-item.html
56725
56726         * rendering/RenderBox.cpp:
56727         (WebCore::RenderBox::overrideLogicalContentWidth):
56728         (WebCore::RenderBox::overrideLogicalContentHeight):
56729         (WebCore::RenderBox::availableLogicalHeightUsing):
56730         * rendering/RenderBox.h:
56731         (RenderBox):
56732         * rendering/RenderDeprecatedFlexibleBox.cpp:
56733         (WebCore::contentWidthForChild):
56734         (WebCore):
56735         (WebCore::contentHeightForChild):
56736         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
56737         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
56738         (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
56739
56740 2012-10-05  Eric Seidel  <eric@webkit.org>
56741
56742         Make tables which don't use col/row span much faster to layout
56743         https://bugs.webkit.org/show_bug.cgi?id=98221
56744
56745         Reviewed by Julien Chaffraix.
56746
56747         My sense is that most tables on webpages do not use colspan/rowspan
56748         so I stole another bit from RenderTableCell::m_column to avoid
56749         having to re-parse the colSpan/rowSpan attributes for every cell
56750         when doing table layout.
56751         This made these symbols disappear from biggrid.html/redraw.html (dglazkov's spreadsheets benchmarks)
56752         as well as moved our robohornet/resizecol.html number from an average of 3221ms to 2608ms (~20%!).
56753
56754         I removed m_hasHTMLTableCellElement (from http://trac.webkit.org/changeset/97691)
56755         since it was attempting to do the same sort of optimization.
56756
56757         * rendering/RenderTableCell.cpp:
56758         (WebCore::RenderTableCell::RenderTableCell):
56759         (WebCore::RenderTableCell::parseColSpanFromDOM):
56760         (WebCore::RenderTableCell::parseRowSpanFromDOM):
56761         (WebCore::RenderTableCell::layout):
56762         * rendering/RenderTableCell.h:
56763         (WebCore::RenderTableCell::colSpan):
56764         (WebCore::RenderTableCell::rowSpan):
56765         (RenderTableCell):
56766
56767 2012-10-05  Oli Lan  <olilan@chromium.org>
56768
56769         Allow EventHandler to handle longpress gestures, including longpress selection on Android.
56770         https://bugs.webkit.org/show_bug.cgi?id=98173
56771         
56772         Reviewed by Ryosuke Niwa.
56773
56774         Adds handling for GestureLongPress to EventHandler::handleGestureEvent, with a new
56775         handleGestureLongPress method. On Android, this method selects the closest word
56776         if the gesture event was over non-link text.
56777
56778         This is tested via a new chromium test WebViewTest.LongPressSelection.  
56779
56780         * page/EventHandler.cpp:
56781         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
56782         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
56783         (WebCore):
56784         (WebCore::EventHandler::handleGestureEvent):
56785         (WebCore::EventHandler::handleGestureLongPress):
56786         * page/EventHandler.h:
56787         (EventHandler):
56788
56789 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56790
56791         <marquee> element forces itself to be at least 1em high, regardless of 'height' declaration
56792         https://bugs.webkit.org/show_bug.cgi?id=18098
56793
56794         Reviewed by Eric Seidel.
56795
56796         This restriction originally existed to match IE, but IE changed some time ago to be normal instead.
56797         We're the last browser, afaict, to still enforce this de-facto restriction.
56798         This patch makes <marquee> instead act like a normal element.
56799
56800         Tests: fast/css/MarqueeLayoutTest.html (rewritten from the older, bad version)
56801
56802         * rendering/RenderMarquee.cpp:
56803         (WebCore::RenderMarquee::updateMarqueeStyle):
56804
56805 2012-10-05  Joe Mason  <jmason@rim.com>
56806
56807         [BlackBerry] Fix regression in proxy auth
56808         https://bugs.webkit.org/show_bug.cgi?id=98533
56809
56810         Reviewed by Yong Li.
56811
56812         The proxy auth dialog gets the proxy address from
56813         BlackBerry::Platform::Settings::proxyAddress, which returns
56814         "host:port", but we try to parse it with a KURL, which expects
56815         "scheme://host:port".  Since this is an http proxy, add http:// to the
56816         url to get it to parse.
56817
56818         PR 220567.
56819
56820         * platform/network/blackberry/NetworkJob.cpp:
56821         (WebCore::NetworkJob::sendRequestWithCredentials):
56822
56823 2012-10-05  Jer Noble  <jer.noble@apple.com>
56824
56825         No autorelease pool in place, causing buildup of autoreleased objects.
56826         https://bugs.webkit.org/show_bug.cgi?id=98522
56827         <rdar://problem/11647950>
56828
56829         Reviewed by Alexey Proskuryakov.
56830
56831         Wrap each timer callback in an AutodrainPool, ensuring an autorelease
56832         pool is present during calls from C/C++ into ObjC.
56833
56834         * platform/cf/RunLoopTimerCF.cpp:
56835         (WebCore::timerFired):
56836
56837 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
56838
56839         Deleting across multiple paragraphs can change the style of surrounding text
56840         https://bugs.webkit.org/show_bug.cgi?id=97266
56841
56842         Reviewed by Levi Weintraub.
56843
56844         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
56845         even when we're not annotating. We don't want to preserve all styles because it's against
56846         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
56847         styles from a mail blockquote because that's not a style the user has applied. See the comment
56848         in EditingStyle::wrappingStyleForSerialization.
56849
56850         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
56851
56852         * editing/EditingStyle.cpp:
56853         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
56854         (WebCore::EditingStyle::wrappingStyleForSerialization):
56855
56856 2012-10-05  Dan Bernstein  <mitz@apple.com>
56857
56858         Reversing a GlyphBuffer needlessly queries its size multiple times
56859         https://bugs.webkit.org/show_bug.cgi?id=98530
56860
56861         Reviewed by Simon Fraser.
56862
56863         No new tests because there is no change in behavior.
56864
56865         * WebCore.xcodeproj/project.pbxproj:
56866         * platform/graphics/FontFastPath.cpp:
56867         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced the condition
56868         (i < glyphBuffer.size() / 2) with the equivalent test (i < end).
56869         * platform/graphics/mac/FontComplexTextMac.cpp:
56870         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Ditto.
56871
56872 2012-10-05  José Dapena Paz  <jdapena@igalia.com>
56873
56874         [GTK] Add support for creating EGL contexts
56875         https://bugs.webkit.org/show_bug.cgi?id=77921
56876
56877         Reviewed by Martin Robinson.
56878
56879         This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
56880         options are set up on compile time, with the configure options
56881         --enable-egl and --enable-gles2.
56882
56883         The implementation only adds support for EGL on top of X11, to
56884         isolate the changes to the minimum. More changes should come
56885         later to enable EGL for other targets (as Wayland).
56886
56887         No new tests required, as existing WebGL and AC tests should cover
56888         the cases.
56889
56890         * GNUmakefile.am:
56891         * GNUmakefile.list.am:
56892         * platform/graphics/GraphicsContext3D.h:
56893         (GraphicsContext3D):
56894         * platform/graphics/OpenGLESShims.h:
56895         * platform/graphics/cairo/GLContext.cpp:
56896         (WebCore):
56897         (WebCore::GLContext::sharedX11Display):
56898         (WebCore::GLContext::cleanupSharedX11Display):
56899         (WebCore::activeContextList):
56900         (WebCore::GLContext::addActiveContext):
56901         (WebCore::GLContext::removeActiveContext):
56902         (WebCore::GLContext::cleanupActiveContextsAtExit):
56903         (WebCore::GLContext::createContextForWindow):
56904         (WebCore::GLContext::createOffscreenContext):
56905         * platform/graphics/cairo/GLContext.h:
56906         (GLContext):
56907         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
56908         (WebCore::GraphicsContext3D::create):
56909         (WebCore::GraphicsContext3D::GraphicsContext3D):
56910         (WebCore::GraphicsContext3D::~GraphicsContext3D):
56911         (WebCore::GraphicsContext3D::isGLES2Compliant):
56912         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
56913         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
56914         * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
56915         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
56916         * platform/graphics/egl/GLContextEGL.cpp: Added.
56917         (WebCore):
56918         (WebCore::sharedEGLDisplay):
56919         (WebCore::getEGLConfig):
56920         (WebCore::GLContextEGL::createWindowContext):
56921         (WebCore::GLContextEGL::createPbufferContext):
56922         (WebCore::GLContextEGL::createPixmapContext):
56923         (WebCore::GLContextEGL::createContext):
56924         (WebCore::GLContextEGL::GLContextEGL):
56925         (WebCore::GLContextEGL::~GLContextEGL):
56926         (WebCore::GLContextEGL::canRenderToDefaultFramebuffer):
56927         (WebCore::GLContextEGL::defaultFrameBufferSize):
56928         (WebCore::GLContextEGL::makeContextCurrent):
56929         (WebCore::GLContextEGL::swapBuffers):
56930         (WebCore::GLContextEGL::waitNative):
56931         (WebCore::GLContextEGL::platformContext):
56932         * platform/graphics/egl/GLContextEGL.h: Added.
56933         (WebCore):
56934         (GLContextEGL):
56935         * platform/graphics/glx/GLContextGLX.cpp:
56936         (WebCore::GLContextGLX::createWindowContext):
56937         (WebCore::GLContextGLX::createPbufferContext):
56938         (WebCore::GLContextGLX::createPixmapContext):
56939         (WebCore::GLContextGLX::createContext):
56940         (WebCore::GLContextGLX::~GLContextGLX):
56941         (WebCore::GLContextGLX::defaultFrameBufferSize):
56942         (WebCore::GLContextGLX::makeContextCurrent):
56943         (WebCore::GLContextGLX::swapBuffers):
56944         (WebCore):
56945         (WebCore::GLContextGLX::waitNative):
56946         * platform/graphics/glx/GLContextGLX.h:
56947         (GLContextGLX):
56948         * platform/graphics/mac/GraphicsContext3DMac.mm:
56949         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
56950         (WebCore::GraphicsContext3D::releaseShaderCompiler):
56951         (WebCore):
56952         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
56953         (WebCore::GraphicsContext3D::readPixels):
56954         (WebCore::GraphicsContext3D::reshapeFBOs):
56955         (WebCore::GraphicsContext3D::renderbufferStorage):
56956         * platform/graphics/qt/GraphicsContext3DQt.cpp:
56957         * platform/graphics/texmap/TextureMapper.h:
56958         * platform/gtk/RedirectedXCompositeWindow.cpp:
56959         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
56960         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
56961         (WebCore::RedirectedXCompositeWindow::resize):
56962         * platform/gtk/RedirectedXCompositeWindow.h:
56963
56964 2012-10-04  Jon Lee  <jonlee@apple.com>
56965
56966         Add a setting to enable plugin snapshotting
56967         https://bugs.webkit.org/show_bug.cgi?id=98319
56968         <rdar://problem/12426480>
56969
56970         Reviewed by Brady Eidson.
56971
56972         Add a new bit for this preference.
56973
56974         * page/Settings.cpp:
56975         (WebCore::Settings::Settings): Preference is false by default.
56976         * page/Settings.h: Added m_plugInSnapshottingEnabled bit.
56977         (WebCore::Settings::setPlugInSnapshottingEnabled): Set the bit.
56978         (WebCore::Settings::plugInSnapshottingEnabled): Return the bit.
56979
56980 2012-10-05  Vsevolod Vlasov  <vsevik@chromium.org>
56981
56982         Unreviewed inspector front-end closure compilaiton fixes.
56983
56984         * inspector/InjectedScriptCanvasModuleSource.js:
56985         * inspector/InjectedScriptExterns.js:
56986         (InjectedScriptHost.prototype.getInternalProperties):
56987         * inspector/front-end/DockController.js:
56988         * inspector/front-end/externs.js:
56989         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
56990
56991 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56992
56993         Replace uses of prefixed properties with unprefixed versions in the UA stylesheets
56994         https://bugs.webkit.org/show_bug.cgi?id=98453
56995
56996         Reviewed by Ojan Vafai.
56997
56998         Switched 'border-radius' and 'box-shadow' to their unprefixed version in the UA stylesheets.
56999
57000         No new tests, because the unprefixed properties have the same behavior as the prefixed.
57001
57002         * css/fullscreenQuickTime.css:
57003         (video:-webkit-full-screen::-webkit-media-controls-panel):
57004         * css/html.css:
57005         (keygen, select):
57006         (select[size][multiple]):
57007         (select[size="1"]):
57008         (::-webkit-validation-bubble-message):
57009         * css/themeBlackBerry.css:
57010         (input, textarea):
57011         * css/themeChromiumAndroid.css:
57012         (select[size][multiple]):
57013         * css/themeQtNoListboxes.css:
57014         (select[size][multiple]):
57015         * css/themeWin.css:
57016         (select[size="1"]):
57017         * css/view-source.css:
57018         (.webkit-html-message-bubble):
57019
57020 2012-10-05  Kevin Ellis  <kevers@chromium.org>
57021
57022         [chromium] Only inflate the height of rows in a popup menu when a touch device is detected.
57023         https://bugs.webkit.org/show_bug.cgi?id=98515
57024
57025         Reviewed by Adam Barth.
57026
57027         Enforces a minimum row height for popup menus when a touch device is
57028         detected.  In a previous patch (r127597), the sizing of popup was 
57029         consolidated for touch and non-touch.  Based on user feedback, reverting
57030         to the old behavior for non-touch and only adding padding for touch
57031         devices seems like a much safer strategy.  This patch is not a direct
57032         revert of r127567 since the padding previously used for touch is a bit
57033         excessive.
57034
57035         Covered by existing tests.
57036
57037         * platform/chromium/PopupListBox.cpp:
57038         (WebCore::PopupListBox::getRowHeight):
57039         * platform/chromium/PopupMenuChromium.cpp:
57040         (WebCore):
57041         * platform/chromium/PopupMenuChromium.h:
57042         (WebCore::PopupMenuChromium::optionRowHeightForTouch):
57043         (WebCore::PopupMenuChromium::setOptionRowHeightForTouch):
57044         (PopupMenuChromium):
57045
57046 2012-10-05  Alexander Pavlov  <apavlov@chromium.org>
57047
57048         Web Inspector: [Styles] Unable to edit properties in broken stylesheets
57049         https://bugs.webkit.org/show_bug.cgi?id=98246
57050
57051         Reviewed by Vsevolod Vlasov.
57052
57053         Pop source data for invalid rules off the stack whenever we have consecutive CSSParser::markRuleHeaderStart() invocations.
57054
57055         Test: inspector/styles/parse-stylesheet-errors.html
57056
57057         * css/CSSParser.cpp:
57058         (WebCore::CSSParser::popRuleData):
57059         (WebCore::CSSParser::markRuleHeaderStart):
57060         (WebCore::CSSParser::markRuleBodyStart):
57061         * css/CSSParser.h:
57062         (CSSParser):
57063
57064 2012-10-05  Gabor Rapcsanyi  <rgabor@webkit.org>
57065
57066         Add ARM-NEON support to VectorMath in WebAudio
57067         https://bugs.webkit.org/show_bug.cgi?id=98131
57068
57069         Reviewed by Zoltan Herczeg.
57070
57071         Speed up vector operations in WebAudio with NEON intrinsics.
57072
57073         * platform/audio/VectorMath.cpp:
57074         (WebCore::VectorMath::vsma):
57075         (WebCore::VectorMath::vsmul):
57076         (WebCore::VectorMath::vadd):
57077         (WebCore::VectorMath::vmul):
57078         (WebCore::VectorMath::zvmul):
57079         (WebCore::VectorMath::vsvesq):
57080         (WebCore::VectorMath::vmaxmgv):
57081
57082 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
57083
57084         Unreviewed, rolling out r130495.
57085         http://trac.webkit.org/changeset/130495
57086         https://bugs.webkit.org/show_bug.cgi?id=98268
57087
57088         Made WK2 tests crash.
57089
57090         * Target.pri:
57091         * platform/qt/QStyleFacade.cpp: Removed.
57092         * platform/qt/QStyleFacade.h: Removed.
57093
57094 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
57095
57096         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
57097         https://bugs.webkit.org/show_bug.cgi?id=98268
57098
57099         Reviewed by Tor Arne Vestbø.
57100
57101         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
57102
57103         QStyleFacade is a pure interface that lives in WebCore/platform/qt
57104         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
57105         minimal interface of what we need to draw with QStyle as well as basic
57106         hit testing and metric retrieval. It also provides a
57107         QStyleFacadeOption class that aggregates common meta-data for
57108         rendering primitives, such as direction, rectangle, state (sunken,
57109         enabled, etc.) or palette. It also provides some more slider/scrollbar
57110         specific fields in a slider sub-structure.
57111
57112         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
57113         them with state information from render objects, before calling straight to QStyle. Most of the common code
57114         was encapsulated in StylePainterQStyle.
57115
57116         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
57117         StylePainterQStyle to populate state into QStyleFacadeOption before
57118         calling into QStyleFacade.
57119
57120         The style facade is then implemented by QStyleFacadeImp, which extracts
57121         meta-data from QStyleFacadeOption arguments, populates style
57122         primitive specific QStyleOption objects and then calls on QStyle.
57123
57124         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
57125         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
57126         separate QtWebKitWidgets library in the future and therefore cannot use
57127         any WebCore types.
57128
57129         * Target.pri:
57130         * platform/qt/QStyleFacade.cpp: Added.
57131         (WebCore):
57132         (WebCore::QStyleFacade::styleForPage):
57133         * platform/qt/QStyleFacade.h: Added.
57134         (WebCore):
57135         (QStyleFacade):
57136         (WebCore::QStyleFacade::~QStyleFacade):
57137         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
57138         (QStyleFacadeOption):
57139         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
57140         (WebCore):
57141         (WebCore::RenderThemeQStyle::getStylePainter):
57142         (WebCore::StylePainterQStyle::StylePainterQStyle):
57143         (WebCore::StylePainterQStyle::init):
57144         (WebCore::RenderThemeQStyle::create):
57145         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
57146         (WebCore::RenderThemeQStyle::styleFactory):
57147         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
57148         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
57149         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
57150         (WebCore::RenderThemeQStyle::inflateButtonRect):
57151         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
57152         (WebCore::RenderThemeQStyle::adjustButtonStyle):
57153         (WebCore::RenderThemeQStyle::setButtonPadding):
57154         (WebCore::RenderThemeQStyle::paintButton):
57155         (WebCore::RenderThemeQStyle::paintTextField):
57156         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
57157         (WebCore::RenderThemeQStyle::paintTextArea):
57158         (WebCore::RenderThemeQStyle::setPopupPadding):
57159         (WebCore::RenderThemeQStyle::colorPalette):
57160         (WebCore::RenderThemeQStyle::paintMenuList):
57161         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
57162         (WebCore::RenderThemeQStyle::paintMenuListButton):
57163         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
57164         (WebCore::RenderThemeQStyle::paintProgressBar):
57165         (WebCore::RenderThemeQStyle::paintSliderTrack):
57166         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
57167         (WebCore::RenderThemeQStyle::paintSliderThumb):
57168         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
57169         (WebCore::RenderThemeQStyle::paintSearchField):
57170         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
57171         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
57172         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
57173         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
57174         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
57175         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
57176         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
57177         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
57178         (WebCore):
57179         (RenderThemeQStyle):
57180         (WebCore::RenderThemeQStyle::qStyle):
57181         (StylePainterQStyle):
57182         (WebCore::StylePainterQStyle::isValid):
57183         (WebCore::StylePainterQStyle::paintButton):
57184         (WebCore::StylePainterQStyle::paintTextField):
57185         (WebCore::StylePainterQStyle::paintComboBox):
57186         (WebCore::StylePainterQStyle::paintComboBoxArrow):
57187         (WebCore::StylePainterQStyle::paintSliderTrack):
57188         (WebCore::StylePainterQStyle::paintSliderThumb):
57189         (WebCore::StylePainterQStyle::paintInnerSpinButton):
57190         (WebCore::StylePainterQStyle::paintProgressBar):
57191         (WebCore::StylePainterQStyle::paintScrollCorner):
57192         (WebCore::StylePainterQStyle::paintScrollBar):
57193         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
57194         (WebCore):
57195         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
57196         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
57197         (WebCore::scPart):
57198         (WebCore::scrollbarPart):
57199         (WebCore::initSliderStyleOption):
57200         (WebCore::ScrollbarThemeQStyle::paint):
57201         (WebCore::ScrollbarThemeQStyle::hitTest):
57202         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
57203         (WebCore::ScrollbarThemeQStyle::invalidatePart):
57204         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
57205         (WebCore::ScrollbarThemeQStyle::thumbPosition):
57206         (WebCore::ScrollbarThemeQStyle::thumbLength):
57207         (WebCore::ScrollbarThemeQStyle::trackPosition):
57208         (WebCore::ScrollbarThemeQStyle::trackLength):
57209         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
57210         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
57211         (WebCore):
57212         (ScrollbarThemeQStyle):
57213         (WebCore::ScrollbarThemeQStyle::qStyle):
57214
57215 2012-10-05  Andrei Bucur  <abucur@adobe.com>
57216
57217         Incomplete repaint of boxes with inset box-shadow and padding when resized
57218         https://bugs.webkit.org/show_bug.cgi?id=59863
57219
57220         Reviewed by Simon Fraser.
57221
57222         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.
57223
57224         New Test: fast/repaint/box-shadow-inset-repaint.html
57225
57226         * rendering/RenderObject.cpp:
57227         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
57228         * rendering/style/RenderStyle.cpp:
57229         (WebCore::RenderStyle::getShadowInsetExtent):
57230         (WebCore):
57231         * rendering/style/RenderStyle.h:
57232
57233 2012-10-04  Kent Tamura  <tkent@chromium.org>
57234
57235         Fix sub-field width to the maximum width of a placeholder and the maximum value
57236         https://bugs.webkit.org/show_bug.cgi?id=98481
57237
57238         Reviewed by Hajime Morita.
57239
57240         We can't assume a placeholder text is shorter than the width of
57241         digits. The placeholder string for the year field of
57242         input[type=week] is "----", but input[type=date] will have a
57243         localized string for it.
57244
57245         We should set the 'width' CSS property to the maximum of the
57246         placeholder width and the maximum value width in order to prevent
57247         the field width from growing/narrowing.
57248
57249         Before this patch, we secured four digits space for a year field,
57250         and allowed the field to grow its width when a larger year is
57251         set. After this patch, we don't allow it to grow because the
57252         'width' property is set to the maximum width.
57253
57254         Update week-multiple-fields-appearance-basic.html, and the
57255         following tests are affected.
57256         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes.html
57257         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html
57258         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-style.html
57259
57260         * html/shadow/DateTimeNumericFieldElement.cpp:
57261         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
57262         Enable customStyleForRenderer.
57263         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
57264         Added. The code is similar to DateTimeSymbolicFieldElement::customStyleForRenderer().
57265         (WebCore::DateTimeNumericFieldElement::formatValue):
57266         Made a function with the code in value(). This is used in
57267         customStyleForRenderer() and value().
57268         (WebCore::DateTimeNumericFieldElement::value): Use formatValue().
57269         * html/shadow/DateTimeNumericFieldElement.h:
57270         (DateTimeNumericFieldElement): Declare new functions.
57271
57272 2012-10-05  Kent Tamura  <tkent@chromium.org>
57273
57274         Improve spelling and performance of Localizer.cpp
57275         https://bugs.webkit.org/show_bug.cgi?id=98485
57276
57277         Reviewed by Kentaro Hara.
57278
57279         Some improvements pointed in webkit.org/b/98229#c5.
57280
57281         No new tests because of no behavior change.
57282
57283         * platform/text/Localizer.h:
57284         (Localizer):
57285          - Rename dateTimeFormatWithSecond to dateTimeFormatWithSeconds
57286          - Rename dateTimeFormatWithoutSecond to dateTimeFormatWithoutSeconds
57287          - Add data members: m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
57288         * platform/text/Localizer.cpp:
57289         (WebCore::Localizer::timeFormat): Check isNull instead of isEmpty
57290         (WebCore::Localizer::shortTimeFormat): Ditto.
57291         (WebCore::Localizer::dateTimeFormatWithSeconds):
57292         - Renamed.
57293         - Cache the concatenation result to a data member.
57294         (WebCore::Localizer::dateTimeFormatWithoutSeconds): Ditto.
57295
57296         * html/DateTimeInputType.cpp:
57297         (WebCore::DateTimeInputType::setupLayoutParameters): Follow the renaming.
57298         * html/DateTimeLocalInputType.cpp:
57299         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
57300
57301 2012-10-04  Kenichi Ishibashi  <bashi@chromium.org>
57302
57303         [WebSocket] ExtensionParser should have its own file
57304         https://bugs.webkit.org/show_bug.cgi?id=98475
57305
57306         Reviewed by Yuta Kitamura.
57307
57308         Factor out ExtensionParser from WebSocketExtensionDispatcher and rename it as WebSocketExtensionParser.
57309         WebSocketExtensionParser has its own file.
57310
57311         No changes in behavior. Added a test case for parsing Sec-WebSocket-Extensions field as a chromium unit test.
57312
57313         * CMakeLists.txt: Added WebSocketExtensionParser.
57314         * GNUmakefile.list.am: Ditto.
57315         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
57316         (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
57317         Use WebSocketExtensionParser::parseExtension() to parser extension header value.
57318         * Modules/websockets/WebSocketExtensionParser.cpp: Added.
57319         (WebCore):
57320         (WebCore::WebSocketExtensionParser::finished): Moved from ExtensionParser.
57321         (WebCore::WebSocketExtensionParser::parsedSuccessfully): Ditto.
57322         (WebCore::isSeparator): Ditto.
57323         (WebCore::WebSocketExtensionParser::skipSpaces): Ditto.
57324         (WebCore::WebSocketExtensionParser::consumeToken): Ditto.
57325         (WebCore::WebSocketExtensionParser::consumeQuotedString): Ditto.
57326         (WebCore::WebSocketExtensionParser::consumeQuotedStringOrToken): Ditto.
57327         (WebCore::WebSocketExtensionParser::consumeCharacter): Ditto.
57328         (WebCore::WebSocketExtensionParser::parseExtension): Moved from WebSocketExtensionDispatcher.
57329         * Modules/websockets/WebSocketExtensionParser.h: Added.
57330         (WebCore):
57331         (WebSocketExtensionParser):
57332         (WebCore::WebSocketExtensionParser::WebSocketExtensionParser):
57333         (WebCore::WebSocketExtensionParser::currentToken):
57334         * Target.pri: Added WebSocketExtensionParser.
57335         * WebCore.gypi: Ditto.
57336         * WebCore.vcproj/WebCore.vcproj: Ditto.
57337         * WebCore.xcodeproj/project.pbxproj: Ditto.
57338
57339 2012-10-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
57340
57341         <input> size attribute should throw INDEX_SIZE_ERR when set to 0
57342         https://bugs.webkit.org/show_bug.cgi?id=61675
57343
57344         Reviewed by Kent Tamura.
57345
57346         According to the spec, the size IDL attribute of input elements is limited
57347         to only non-negative numbers greater than zero. It should throw INDEX_SIZE_ERR
57348         exception when set to 0. New behavior matches both Firefox and IE.
57349         Spec: http://www.w3.org/TR/html5/common-input-element-attributes.html#the-size-attribute
57350
57351         Test: fast/dom/HTMLInputElement/input-size-attribute.html
57352
57353         * html/HTMLInputElement.cpp:
57354         (WebCore::HTMLInputElement::setSize):
57355         * html/HTMLInputElement.h:
57356         (HTMLInputElement):
57357         * html/HTMLInputElement.idl:
57358
57359 2012-10-04  Kent Tamura  <tkent@chromium.org>
57360
57361         Fix font for date/time input types.
57362         https://bugs.webkit.org/show_bug.cgi?id=98478
57363
57364         Reviewed by Kentaro Hara.
57365
57366         input[type=date] should use monospace font if
57367         ENABLE_INPUT_MULTIPLE_FIELDS_UI && ENABLE_INPUT_TYPE_DATE.
57368
57369         For other date/time types, they should use monospace font only
57370         if their types are enabled. input[type="foo"] matches input
57371         element with type="foo" even if the foo type is not supported.
57372
57373         The input[type=date] change is covered by
57374         fast/forms/date/calendar-picker-appearance.html,
57375         platform/chromium/fast/forms/date/date-suggestion-picker-appearance*.html
57376
57377         * css/html.css:
57378         (input[type="date"]):
57379         (input[type="datetime"]):
57380         (input[type="datetime-local"]):
57381         (input[type="month"]):
57382         (input[type="time"]):
57383
57384 2012-10-04  Hajime Morrita  <morrita@google.com>
57385
57386         [Refactoring] Some classes in StyleResolver.cpp/h could have its own file.
57387         https://bugs.webkit.org/show_bug.cgi?id=98469
57388
57389         Reviewed by Dimitri Glazkov.
57390
57391         This change extracts RuleData, RuleSet, RuleFeature and Featurs class
57392         to its own file: RuleSet.h/cpp and RuleFeature.h/cpp
57393
57394         RuleFeature class is moved fro StyleResolver inner class to plain WebCore class.
57395         Feaures class is renamed to RuleFeatureSet to avoid possible name conflict.
57396
57397         No new tests. Just splitting file and doing simple rename.
57398
57399         * CMakeLists.txt:
57400         * GNUmakefile.list.am:
57401         * Target.pri:
57402         * WebCore.gypi:
57403         * WebCore.xcodeproj/project.pbxproj:
57404         * css/CSSAllInOne.cpp:
57405         * css/RuleFeature.cpp: Added.
57406         (WebCore):
57407         (WebCore::RuleFeatureSet::add):
57408         (WebCore::RuleFeatureSet::clear):
57409         (WebCore::RuleFeatureSet::reportMemoryUsage):
57410         * css/RuleFeature.h: Added.
57411         (WebCore):
57412         (RuleFeature):
57413         (WebCore::RuleFeature::RuleFeature):
57414         (RuleFeatureSet):
57415         (WebCore::RuleFeatureSet::RuleFeatureSet):
57416         * css/RuleSet.cpp: Added.
57417         (WebCore):
57418         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
57419         (WebCore::selectorListContainsUncommonAttributeSelector):
57420         (WebCore::isCommonAttributeSelectorAttribute):
57421         (WebCore::containsUncommonAttributeSelector):
57422         (WebCore::RuleData::RuleData):
57423         (WebCore::RuleData::reportMemoryUsage):
57424         (WebCore::reportAtomRuleMap):
57425         (WebCore::RuleSet::reportMemoryUsage):
57426         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
57427         (WebCore::collectFeaturesFromSelector):
57428         (WebCore::collectFeaturesFromRuleData):
57429         (WebCore::RuleSet::addToRuleSet):
57430         (WebCore::RuleSet::addRule):
57431         (WebCore::RuleSet::addPageRule):
57432         (WebCore::RuleSet::addRegionRule):
57433         (WebCore::RuleSet::addRulesFromSheet):
57434         (WebCore::RuleSet::addStyleRule):
57435         (WebCore::shrinkMapVectorsToFit):
57436         (WebCore::RuleSet::shrinkToFit):
57437         * css/RuleSet.h: Added.
57438         (WebCore):
57439         (RuleData):
57440         (WebCore::RuleData::position):
57441         (WebCore::RuleData::rule):
57442         (WebCore::RuleData::selector):
57443         (WebCore::RuleData::selectorIndex):
57444         (WebCore::RuleData::hasFastCheckableSelector):
57445         (WebCore::RuleData::hasMultipartSelector):
57446         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
57447         (WebCore::RuleData::containsUncommonAttributeSelector):
57448         (WebCore::RuleData::specificity):
57449         (WebCore::RuleData::linkMatchType):
57450         (WebCore::RuleData::hasDocumentSecurityOrigin):
57451         (WebCore::RuleData::isInRegionRule):
57452         (WebCore::RuleData::descendantSelectorIdentifierHashes):
57453         (SameSizeAsRuleData):
57454         (RuleSet):
57455         (WebCore::RuleSet::create):
57456         (WebCore::RuleSet::disableAutoShrinkToFit):
57457         (WebCore::RuleSet::features):
57458         (WebCore::RuleSet::idRules):
57459         (WebCore::RuleSet::classRules):
57460         (WebCore::RuleSet::tagRules):
57461         (WebCore::RuleSet::shadowPseudoElementRules):
57462         (WebCore::RuleSet::linkPseudoClassRules):
57463         (WebCore::RuleSet::focusPseudoClassRules):
57464         (WebCore::RuleSet::universalRules):
57465         (WebCore::RuleSet::pageRules):
57466         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
57467         (RuleSetSelectorPair):
57468         (WebCore::RuleSet::RuleSet):
57469         * css/StyleResolver.cpp:
57470         (WebCore):
57471         (WebCore::makeRuleSet):
57472         (WebCore::StyleResolver::collectMatchingRulesForList):
57473         * css/StyleResolver.h:
57474         (StyleResolver):
57475
57476 2012-10-04  Adam Barth  <abarth@webkit.org>
57477
57478         FeatureObserver should distinguish between legacy HTML and text notifications
57479         https://bugs.webkit.org/show_bug.cgi?id=98441
57480
57481         Reviewed by Tony Chang.
57482
57483         We might be able to drop support for legacy HTML notifications before
57484         we can drop support for legacy text notifications. We should measure
57485         and find out.
57486
57487         * Modules/notifications/NotificationCenter.idl:
57488         * page/FeatureObserver.h:
57489
57490 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57491
57492         Removing the unused member variable m_wasMalformed from HTMLFormElement class and its related code frgment.
57493         https://bugs.webkit.org/show_bug.cgi?id=98444
57494
57495         Reviewed by Eric Seidel.
57496
57497         The member variable m_wasMalformed of HTMLFormElement class was used to determine if the <form> tag was malformed or not.
57498         This information was used elsewhere to decide if bottom margins have to be included for such a <form>.
57499         However currently this member variable is not being set by any code following code refactoring in HTML parser class.
57500
57501         Code cleanup patch. No new tests required.
57502
57503         * html/HTMLFormElement.cpp:
57504         (WebCore::HTMLFormElement::HTMLFormElement):
57505           Removed m_wasMalformed initialization.
57506
57507         * html/HTMLFormElement.h:
57508         (HTMLFormElement):
57509          Removed m_wasMalformed variable.
57510          Removed m_wasMalformed variable's setter and getter functions.
57511
57512         * rendering/RenderBlock.cpp:
57513         (WebCore::RenderBlock::layoutBlock):
57514          Removed code fragment using/dependent on m_wasMalformed.
57515
57516 2012-10-04  Rik Cabanier  <cabanier@adobe.com>
57517
57518         Turn Compositing on by default in WebKit build
57519         https://bugs.webkit.org/show_bug.cgi?id=98315
57520
57521         Reviewed by Simon Fraser.
57522
57523         enable -webkit-blend-mode on trunk.
57524
57525         No new tests. Existing blending test were updated.
57526
57527         * Configurations/FeatureDefines.xcconfig:
57528         * css/CSSPropertyNames.in:
57529         * css/CSSValueKeywords.in:
57530
57531 2012-10-04  Hayato Ito  <hayato@chromium.org>
57532
57533         [Refactoring] Introduce a traversal strategy in SelectorChecker
57534         https://bugs.webkit.org/show_bug.cgi?id=97298
57535
57536         Reviewed by Antti Koivisto.
57537
57538         We extract DOM traversal code from SelectorChecker so that we can use another traversal strategy.
57539         Another traversal strategy will be introduced in Bug 96990.
57540
57541         Since this code path is very hot, we were very careful not to regress performance.
57542         We will use template specialization to change the traversal implementation.
57543
57544         We confirmed that this patch does not regress SelectorCheckerPerformance. I have checked the performance of
57545         the added test in my Linux Box using run-perf-tests.
57546
57547         The performance of the added test before using this patch was:
57548
57549           RESULT CSS: PseudoClassSelectors= 3399.68308031 runs/s
57550           median= 3404.48685564 runs/s, stdev= 37.3480114449 runs/s, min= 3272.64871114 runs/s, max= 3438.72385184 runs/s
57551
57552         When we used this patch, the performance was:
57553
57554           RESULT CSS: PseudoClassSelectors= 3367.74473886 runs/s
57555           median= 3367.12072755 runs/s, stdev= 14.1464547639 runs/s, min= 3348.55881171 runs/s, max= 3395.98212857 runs/s
57556
57557         Test: PerformanceTests/CSS/PseudoClass-Selectors.html
57558
57559         * css/SelectorChecker.cpp:
57560         (WebCore):
57561         (WebCore::SelectorChecker::checkSelector): Make this a template method to accept another Context type.
57562         Another Context type will be introduced in coming patch.
57563         (WebCore::SelectorChecker::checkOneSelector):
57564         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild):
57565         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild):
57566         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType):
57567         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType):
57568         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore):
57569         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore):
57570         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter):
57571         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter):
57572         * css/SelectorChecker.h:
57573         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
57574         (SelectorCheckingContext):
57575         (SelectorChecker):
57576         (DOMTraversalStrategy): Extracted the DOM traversal code from SelectorChecker. Another traversal code
57577         will be introduced the coming patch.
57578
57579 2012-10-04  Eric Seidel  <eric@webkit.org>
57580
57581         SVGAttributeHashTranslator does not need to copy QualifiedName in the common case
57582         https://bugs.webkit.org/show_bug.cgi?id=98473
57583
57584         Reviewed by Adam Barth.
57585
57586         I tested this using instruments on a test case which modified SVG attributes in a loop.
57587         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,
57588         since we're no longer creating a QualifiedName (and thus adding it to the hash) on each QualifiedName-based lookup in SVG.
57589
57590         * svg/SVGElement.h:
57591         (WebCore::SVGAttributeHashTranslator::hash):
57592         (WebCore::SVGAttributeHashTranslator::equal):
57593
57594 2012-10-04  Julien Chaffraix  <jchaffraix@webkit.org>
57595
57596         Split the intrinsic padding update code out of RenderTableSection::layoutRows
57597         https://bugs.webkit.org/show_bug.cgi?id=98454
57598
57599         Reviewed by Eric Seidel.
57600
57601         RenderTableSection::layoutRows is very long and it's difficult to see what's
57602         going on. This change moves the intrinsic padding update code into RenderTableCell
57603         for clarity. While at it, cleaned up a bit the code (renaming variables, functions).
57604
57605         Change covered by existing table tests.
57606
57607         * rendering/RenderTableCell.cpp:
57608         (WebCore::RenderTableCell::computeIntrinsicPadding):
57609         Added this new function that does the update. Removed the 'default' case, replaced by
57610         the explicit label BASELINE_MIDDLE.
57611
57612         * rendering/RenderTableCell.h:
57613         (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
57614         (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
57615         (WebCore::RenderTableCell::setIntrinsicPadding):
57616         Moved those setters to the private section as we want other classes
57617         to use computeIntrinsicPadding.
57618
57619         * rendering/RenderTableSection.cpp:
57620         (WebCore::RenderTableSection::layoutRows):
57621         Replaced the code with a call to RenderTableCell::computeIntrinsicPadding.
57622         Also moved 2 variables in the loop per our coding style.
57623
57624         * rendering/RenderTableSection.h:
57625         (WebCore::RenderTableSection::rowBaseline):
57626         Renamed to match our coding style.
57627
57628 2012-10-04  Nate Chapin  <japhet@chromium.org>
57629
57630         Crash in EventHandler::mouseMoved().
57631         https://bugs.webkit.org/show_bug.cgi?id=98460
57632
57633         Reviewed by Abhishek Arya.
57634
57635         No new tests, this fixes fast/events/mouse-moved-remove-frame-crash.html.
57636
57637         * page/EventHandler.cpp:
57638         (WebCore::EventHandler::mouseMoved):
57639
57640 2012-10-04  Adam Barth  <abarth@webkit.org>
57641
57642         [V8] NotificationCenter leaks because it uses buggy custom bindings
57643         https://bugs.webkit.org/show_bug.cgi?id=98445
57644
57645         Reviewed by Tony Chang.
57646
57647         There's no reason to use custom bindings here. All they do is cause leaks..
57648
57649         * Modules/notifications/NotificationCenter.idl:
57650         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
57651
57652 2012-10-04  Tab Atkins  <jackalmage@gmail.com>
57653
57654         Selector specificity categories "overflow" into higher categories
57655         https://bugs.webkit.org/show_bug.cgi?id=98295
57656
57657         Reviewed by Eric Seidel.
57658
57659         This patch adds per-component overflow guards for CSS selector specificity.
57660         Previously, we didn't guard against overflow. 
57661         Since we stored each component as a byte mapped into a single unsigned int for the whole specificity,
57662         256 of a particular simple selector was equivalent to 1 of the next-higher-group selector.
57663         This violated the Selectors specification,
57664         which requires the components to be compared lexicographically.
57665
57666         Tests: /fast/selectors/specificity-overflow.html
57667
57668         * css/CSSSelector.cpp:
57669         (WebCore::CSSSelector::specificity):
57670
57671 2012-10-04  Enrica Casucci  <enrica@apple.com>
57672
57673         Font::glyphDataAndPageForCharacter doesn't account for text orientation when using systemFallback on a cold cache.
57674         https://bugs.webkit.org/show_bug.cgi?id=98452.
57675
57676         Reviewed by Dan Bernstein.
57677
57678         The text orientation was considered only when there is a cache hit.
57679         This change moves the logic to handle text orientation to a separate
57680         inline function that is called also when the glyph is added to the cache.
57681
57682         Test: fast/text/vertical-rl-rtl-linebreak.html
57683
57684         * platform/graphics/FontFastPath.cpp:
57685         (WebCore::applyTextOrientationForCharacter): Added.
57686         (WebCore::Font::glyphDataAndPageForCharacter): Modified to use the new function in
57687         both cases of cold and warm cache.
57688
57689 2012-10-04  Adam Klein  <adamk@chromium.org>
57690
57691         MutationRecord attributeName should be null for non attribute changes
57692         https://bugs.webkit.org/show_bug.cgi?id=98438
57693
57694         Reviewed by Ojan Vafai.
57695
57696         Test: fast/mutation/mutation-record-nullity.html
57697
57698         * dom/MutationRecord.idl:
57699
57700 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
57701
57702         Final part of "sync" to "flush" renaming
57703         https://bugs.webkit.org/show_bug.cgi?id=98430
57704
57705         Reviewed by Tim Horton.
57706
57707         Change method names on GraphicsLayer and GraphicsLayerClient that
57708         refer to "sync" to use the term "flush" instead, to be consistent
57709         with the rest of the code.
57710
57711         * platform/graphics/GraphicsLayer.h:
57712         (WebCore::GraphicsLayer::flushCompositingState):
57713         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
57714         * platform/graphics/GraphicsLayerClient.h:
57715         (GraphicsLayerClient):
57716         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
57717         (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
57718         * platform/graphics/blackberry/LayerWebKitThread.cpp:
57719         (WebCore::LayerWebKitThread::setNeedsCommit):
57720         * platform/graphics/ca/GraphicsLayerCA.cpp:
57721         (WebCore::GraphicsLayerCA::flushCompositingState):
57722         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
57723         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
57724         (WebCore::GraphicsLayerCA::positionForCloneRootLayer):
57725         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
57726         * platform/graphics/ca/GraphicsLayerCA.h:
57727         (GraphicsLayerCA):
57728         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
57729         (WebCore::GraphicsLayerTextureMapper::notifyChange):
57730         (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
57731         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
57732         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
57733         (GraphicsLayerTextureMapper):
57734         * platform/graphics/texmap/TextureMapperLayer.cpp:
57735         (WebCore::TextureMapperLayer::flushCompositingState):
57736         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
57737         * platform/graphics/texmap/TextureMapperLayer.h:
57738         (TextureMapperLayer):
57739         * rendering/RenderLayerBacking.cpp:
57740         (WebCore::RenderLayerBacking::notifyFlushRequired):
57741         * rendering/RenderLayerBacking.h:
57742         (RenderLayerBacking):
57743         * rendering/RenderLayerCompositor.cpp:
57744         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
57745         * rendering/RenderLayerCompositor.h:
57746         (WebCore::RenderLayerCompositor::notifyFlushRequired):
57747
57748 2012-10-04  Tab Atkins  <tabatkins@google.com>
57749
57750         1ex should equal .5em when the font has no x-height metric
57751         https://bugs.webkit.org/show_bug.cgi?id=80360
57752
57753         Reviewed by Eric Seidel.
57754
57755         Updated FontMetrics and CSSPrimitiveValue to have/use an explicit "hasXHeight" flag to determine how to size an 'ex' unit.
57756
57757         Updated a few of the platform font files to set the flag properly.
57758
57759         Patch cleanup by David Barr <davidbarr@chromium.org>.
57760
57761         Test: fast/css/ex-unit-with-no-x-height.html
57762
57763         * css/CSSPrimitiveValue.cpp:
57764         (WebCore::CSSPrimitiveValue::computeLengthDouble):
57765         * platform/graphics/FontMetrics.h:
57766         (WebCore::FontMetrics::FontMetrics):
57767         (WebCore::FontMetrics::setXHeight):
57768         (FontMetrics):
57769         (WebCore::FontMetrics::hasXHeight):
57770         (WebCore::FontMetrics::setHasXHeight):
57771         (WebCore::FontMetrics::reset):
57772         * platform/graphics/skia/SimpleFontDataSkia.cpp:
57773         (WebCore::SimpleFontData::platformInit):
57774
57775 2012-10-04  Ryosuke Niwa  <rniwa@webkit.org>
57776
57777         Build fix after r130411. Add the right offset.
57778         Also use RefPtr instead of a raw pointer for next and previous pointers.
57779
57780         * editing/ReplaceSelectionCommand.cpp:
57781         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
57782
57783 2012-10-04  Alec Flett  <alecflett@chromium.org>
57784
57785         IndexedDB: promote objectstore/index backend ids to the frontend
57786         https://bugs.webkit.org/show_bug.cgi?id=97834
57787
57788         Reviewed by Tony Chang.
57789
57790         Expose int64-based database/objectStore/index ids to the renderer,
57791         step 1 of 2. Support both styles of createObjectStore and
57792         createIndex: those that take an explicit id, and those that take
57793         -1, meaning to autogenerate an id on the backend. In part 2, after
57794         the chromium side lands, support for the autogenerated ids will be
57795         removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)
57796
57797         This is a part of larger refactoring work to ultimately make the interface
57798         between the frontend and the backend simpler.
57799
57800         No new tests, extensive ASSERTs and existing tests cover correctness.
57801
57802         * Modules/indexeddb/IDBBackingStore.h:
57803         (IDBBackingStore):
57804         * Modules/indexeddb/IDBDatabase.cpp:
57805         (WebCore::IDBDatabase::createObjectStore):
57806         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
57807         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
57808         (WebCore::IDBDatabaseBackendImpl::openInternal):
57809         (WebCore::IDBDatabaseBackendImpl::metadata):
57810         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
57811         (WebCore):
57812         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
57813         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
57814         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
57815         (IDBDatabaseBackendImpl):
57816         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
57817         (IDBDatabaseBackendInterface):
57818         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
57819         (WebCore::IDBIndexBackendImpl::metadata):
57820         * Modules/indexeddb/IDBIndexBackendImpl.h:
57821         (WebCore::IDBIndexBackendImpl::create):
57822         (IDBIndexBackendImpl):
57823         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
57824         (WebCore):
57825         (WebCore::getMaxObjectStoreId):
57826         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
57827         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
57828         (WebCore::IDBLevelDBBackingStore::getObjectStores):
57829         (WebCore::setMaxObjectStoreId):
57830         (WebCore::IDBLevelDBBackingStore::createObjectStore):
57831         (WebCore::getMaxIndexId):
57832         (WebCore::setMaxIndexId):
57833         (WebCore::IDBLevelDBBackingStore::createIndex):
57834         * Modules/indexeddb/IDBLevelDBBackingStore.h:
57835         (IDBLevelDBBackingStore):
57836         * Modules/indexeddb/IDBMetadata.h:
57837         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
57838         (IDBDatabaseMetadata):
57839         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
57840         (IDBObjectStoreMetadata):
57841         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
57842         (IDBIndexMetadata):
57843         * Modules/indexeddb/IDBObjectStore.cpp:
57844         (WebCore::IDBObjectStore::createIndex):
57845         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
57846         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
57847         (WebCore::IDBObjectStoreBackendImpl::metadata):
57848         (WebCore::IDBObjectStoreBackendImpl::createIndex):
57849         (WebCore):
57850         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
57851         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
57852         (WebCore::IDBObjectStoreBackendImpl::create):
57853         (IDBObjectStoreBackendImpl):
57854         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
57855 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57856
57857         Layout broken after cloning and re-inserting a table with a misplaced <form>
57858         https://bugs.webkit.org/show_bug.cgi?id=86746
57859
57860         Reviewed by Julien Chaffraix.
57861
57862         There is a concept of demotion for a <form> contained in a table. A <form> is demoted if its immediate parent
57863         is either a <table>, table sections (tbody, etc) or a table row (tr). A renderer for such a <form> is created only
57864         if its display is one of the table display types (TABLE, INLINE_TABLE, TABLE_FOOTER_GROUP, etc).
57865         However when a <table> containing a demoted <form> is cloned, the <form> does not retain its demotion state and 
57866         results in the table getting improperly rendered.
57867
57868         Test: fast/table/form-with-non-table-display-inside-table-elements.html
57869
57870         * html/HTMLFormElement.cpp:
57871         (WebCore::HTMLFormElement::copyNonAttributePropertiesFromElement):
57872           Extended the virtual function for HTMLFormElement class specific implementation.
57873           The function is used to copy any necessary state information(member variables) associated with
57874           the <form> element being cloned to the current node.
57875           For HTMLFormElement node the member variable can be classified into five groups based on the 
57876           information they hold:
57877             1) Variables containing information regarding <form> subtree and elements associated with it.
57878                These get updated as and when an element is added to the <form> subtree.
57879             2) Variables containing <form> submit state information.
57880             3) Flag to hold information if reset() has been called.
57881             4) Flag(m_wasDemoted) that indicates whether the form is demoted or not, based on which it needs to
57882                be handled differently during creation of its renderer.
57883                This information is currently being updated only during the HTML tree construction phase.
57884             5) Flag(m_wasMalformed) to hold information if the <form> is malformed or not.
57885
57886           Variables of group (1) will be updated as and when elements are added to the <form> subtree. Whereas,
57887           (2) and (3) hold instance specific information, thus copying them is not required. Also (5) is currently not
57888           being used(not set by any code).
57889
57890           On the other hand, (4) is required to be copied during cloning as this information cannot be accessed
57891           during the cloning process.
57892
57893         (WebCore):
57894         * html/HTMLFormElement.h:
57895           Added copyNonAttributePropertiesFromElement() declaration.
57896
57897 2012-10-04  Dean Jackson  <dino@apple.com>
57898
57899         Attribute and Uniform variable names need translation in shader
57900         https://bugs.webkit.org/show_bug.cgi?id=70989
57901
57902         Reviewed by Tim Horton (and Darin Adler).
57903
57904         WebGL specifies some maximum lengths for variable names (attributes
57905         and uniforms). Also, some GL drivers have issues with long names. For
57906         that reason, ANGLE has an option to rewrite the shader, translating
57907         long names into short names. Turning this on helps shaders compile,
57908         but we need to keep a mapping between the original names and the
57909         translated names, so that we bind to the right location from user code
57910         (which won't ever see the translated source).
57911
57912         This provided an opportunity to clean up some other bits of code:
57913         CSS Filters examined the uniform names after a compilation; It can
57914         now use the variable name map. I also added a typedef for the
57915         HashMaps that keep the shader, the source code and the variable name
57916         mappings.
57917
57918         I also opened a followup bug to make sure these tables are deleted
57919         when the associated shaders (or linked programs) go away:
57920         https://bugs.webkit.org/show_bug.cgi?id=98204
57921
57922         Covered by existing tests (with some enhancements):
57923         - fast/canvas/webgl/attrib-location-length-limits.html:
57924         - fast/canvas/webgl/uniform-location-length-limits.html:
57925
57926         * platform/graphics/ANGLEWebKitBridge.cpp:
57927         (WebCore::getSymbolInfo): Extracts all the information on symbols (either attributes
57928         or uniforms) from the newly compiled shader.
57929         (WebCore):
57930         (WebCore::ANGLEWebKitBridge::compileShaderSource): New method name.
57931         * platform/graphics/ANGLEWebKitBridge.h:
57932         (WebCore::getUniforms): Deleted this method.
57933         (WebCore::ANGLEShaderSymbol::isSampler): Make sure the symbol is a uniform.
57934         (ANGLEWebKitBridge):
57935         * platform/graphics/GraphicsContext3D.h:
57936         (WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): A new object that
57937         holds the size, type and translated name of a symbol from a WebGL shader.
57938         (ShaderSourceEntry):
57939         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry): Now keeps track
57940         of the translated source code and symbol mappings.
57941         (WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap): Helper function to
57942         get the member variable corresponding to the type of symbol you're asking fo.
57943         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
57944         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram): Calls new method
57945         name which also produces a set of symbols to examine.
57946         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
57947         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): We now can pass
57948         in some extra compile options to do translation of long symbol names. Also fill the
57949         map of translated symbol names.
57950         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
57951         (WebCore::GraphicsContext3D::compileShader):
57952         (WebCore::GraphicsContext3D::mappedSymbolName): Returns the mapped name for
57953         a shader symbol if it was translated during compilation.
57954         (WebCore):
57955         (WebCore::GraphicsContext3D::getAttribLocation):
57956         (WebCore::GraphicsContext3D::getShaderiv):
57957         (WebCore::GraphicsContext3D::getShaderInfoLog):
57958         (WebCore::GraphicsContext3D::getShaderSource):
57959         (WebCore::GraphicsContext3D::getUniformLocation):
57960
57961 2012-10-04  Alpha Lam  <hclam@chromium.org>
57962
57963         [skia] Drawing a subrect of bitmap image is misaligned
57964         https://bugs.webkit.org/show_bug.cgi?id=95121
57965
57966         Reviewed by Stephen White.
57967
57968         When drawing a subrect of BitmapImage and the subrect is not aligned
57969         to integer boundaries, skia expands it to the closest enclosing integer
57970         rectangle. This creates prominent rendering artifacts when an image
57971         is used as background and its sub-regions are invalidated frequently.
57972
57973         This patch fixes the problem by doing alignment to integer boundaries
57974         and clipping for both cases of RESAMPLE_AWESOME and RESAMPLE_LINEAR.
57975
57976         A clip rect is applied to the canvas using original destination
57977         rectangle, while source and destination rectangles are enlarged
57978         appropriately to ensure source rectangle is aligned.
57979
57980         This patch also fixes a closely related problem. In RESAMPLE_AWESOME
57981         resampling mode the previous algorithm applies different approximated
57982         scale factor for each scaled image fragment. This caused the stitched
57983         image to look ugly.
57984
57985         Scale factor is approximated using entire image size, this gives a
57986         more accurate approximation because of greater denominator and a
57987         consistent scale factor across all fragments.
57988
57989         Changes in Skia enable caching of the scaled image and return the
57990         scaled fragment because scale factor is now consistent for all
57991         fragments.
57992
57993         Tests: fast/images/paint-subrect-grid.html
57994                fast/images/paint-subrect.html
57995                fast/images/repaint-subrect-grid.html
57996
57997         * platform/graphics/skia/ImageSkia.cpp:
57998         (WebCore::computeResamplingMode): Use float for width and height.
57999         (WebCore):
58000         (WebCore::areBoundariesIntegerAligned):
58001         (WebCore::computeBitmapDrawRects):
58002         (WebCore::extractScaledImageFragment):
58003         (WebCore::drawResampledBitmap): New algorithm for drawing scaled image fragment.
58004         (WebCore::paintSkBitmap):
58005         (WebCore::Image::drawPattern):
58006         (WebCore::BitmapImage::draw): Use SkRect instead of SkIRect.
58007         (WebCore::BitmapImageSingleFrameSkia::draw):
58008         * platform/graphics/skia/NativeImageSkia.cpp:
58009         Changing the algorithm for extracting a scaled image fragment.
58010         A fragment is now identified by (scaledImageSize, scaledImageSubset).
58011         (WebCore::NativeImageSkia::hasResizedBitmap):
58012         (WebCore::NativeImageSkia::resizedBitmap):
58013         (WebCore::NativeImageSkia::shouldCacheResampling):
58014         (WebCore::NativeImageSkia::CachedImageInfo::CachedImageInfo):
58015         (WebCore):
58016         (WebCore::NativeImageSkia::CachedImageInfo::isEqual):
58017         (WebCore::NativeImageSkia::CachedImageInfo::set):
58018         (WebCore::NativeImageSkia::CachedImageInfo::rectInSubset):
58019         * platform/graphics/skia/NativeImageSkia.h:
58020         (NativeImageSkia):
58021         (CachedImageInfo):
58022
58023 2012-10-03  Ryosuke Niwa  <rniwa@webkit.org>
58024
58025         ReplaceSelectionCommand should merge text nodes
58026         https://bugs.webkit.org/show_bug.cgi?id=98188
58027
58028         Reviewed by Levi Weintraub.
58029
58030         Added mergeTextNodesAroundPosition to ReplaceSelectionCommand to merge text nodes after the replace in
58031         completeHTMLReplacement. Also fixed a bunch of bugs in other classes and functions to make this work.
58032
58033         This behavior change is tested by existing tests.
58034
58035         * editing/InsertParagraphSeparatorCommand.cpp:
58036         (WebCore::InsertParagraphSeparatorCommand::doApply): When splitting a text node, place the insertionPosition
58037         at the end of the first half. Leaving it at the beginning of the second half confuses the rest of the code in
58038         the function. However, the logic to handle the "insignificant" white spaces needs the position at the start of
58039         the second half. So keep this position.
58040         * editing/ReplaceSelectionCommand.cpp:
58041         (WebCore::ReplaceSelectionCommand::doApply): Update visibleStart after inserting a paragraph separator so that
58042         the logic to cleanup the nested div checks the right condition (right beneath it starting with a long comment).
58043         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Insert a space for smart paste at the appropriate
58044         offset instead of at the end of endNode. Also update the layout before obtaining startDownstream as we may have 
58045         modified the DOM by inserting a space for endNode. Finally, a non-breaking space should be treated like a space
58046         isCharacterSmartReplaceExempt for the purpose of smart replace. e.g. if we're inserting "world" after
58047         "hello&nbsp;", we shouldn't be inserting another space between "hello" and "world".
58048         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
58049         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): Added. Merge text nodes around position, and
58050         adjust position and positionOnlyToBeUpdated accordingly. We need to call updatePositionForNodeRemoval when
58051         positions were before or after the text node.
58052         * editing/ReplaceSelectionCommand.h:
58053         (ReplaceSelectionCommand):
58054
58055 2012-10-04  Tony Chang  <tony@chromium.org>
58056
58057         Fix <input type="month"> tests
58058         https://bugs.webkit.org/show_bug.cgi?id=98426
58059
58060         Reviewed by Ojan Vafai.
58061
58062         The month picker uses flexbox and assumes that it will be aligned with
58063         the last line box. This looks visually correct. I will follow up on
58064         www-style to see what the expected behavior is.
58065
58066         Tests: fast/forms/month-multiple-fields tests cover this.
58067
58068         * rendering/RenderFlexibleBox.cpp:
58069         * rendering/RenderFlexibleBox.h:
58070
58071 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58072
58073         Unreviewed, rolling out r130396.
58074         http://trac.webkit.org/changeset/130396
58075         https://bugs.webkit.org/show_bug.cgi?id=98421
58076
58077         This patch is causing crashes on 4 tests on Lion Debug and
58078         Mountain Lion Debug (Requested by jernoble on #webkit).
58079
58080         * rendering/RenderLayerCompositor.cpp:
58081         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58082         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58083         * rendering/RenderLayerCompositor.h:
58084         * testing/InternalSettings.cpp:
58085         (WebCore::InternalSettings::Backup::Backup):
58086         (WebCore::InternalSettings::Backup::restoreTo):
58087         * testing/InternalSettings.h:
58088         (Backup):
58089
58090 2012-10-04  Tony Chang  <tony@chromium.org>
58091
58092         inline-flex baseline is sometimes wrong
58093         https://bugs.webkit.org/show_bug.cgi?id=96188
58094
58095         Reviewed by Ojan Vafai.
58096
58097         Implement the necessary methods to get the proper baseline alignment of flexbox.
58098         We were falling back to the inline-block behavior.
58099
58100         Test: css3/flexbox/flexbox-baseline.html
58101
58102         * rendering/RenderFlexibleBox.cpp:
58103         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
58104         (WebCore::RenderFlexibleBox::baselinePosition): Used to get the baseline of the box.
58105         Mostly just the first line box baseline.
58106         (WebCore):
58107         (WebCore::RenderFlexibleBox::lastLineBoxBaseline): This is used for getting the baseline when in an inline-block.
58108         We actually don't want the last line, but the flexbox's baseline.
58109         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Compute the baseline according to the rules in the spec.
58110         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Keep track of the number of children on the
58111         first line so we don't have to re-compute this when getting the baseline.
58112         (WebCore::RenderFlexibleBox::crossAxisExtentForChild): Make const.
58113         (WebCore::RenderFlexibleBox::mainAxisExtentForChild): Make const.
58114         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis): Make const.
58115         * rendering/RenderFlexibleBox.h: Add a size_t to keep track of how many children are in the first line.
58116
58117 2012-10-04  Xianzhu Wang  <wangxianzhu@chromium.org>
58118
58119         [Chromium] Should set unitsPerEm in SimpleFontDataSkia.cpp
58120         https://bugs.webkit.org/show_bug.cgi?id=98100
58121
58122         Reviewed by Stephen White.
58123
58124         At least on chromium-linux and chromium-android, unitsPerEm was not set
58125         according to the information in the font, causing at least problems in
58126         OpenTypeVerticalData when calculating vertical advance.
58127
58128         Test: fast/writing-mode/vertical-font-vmtx-units-per-em.html
58129
58130         * platform/graphics/skia/SimpleFontDataSkia.cpp:
58131         (WebCore::SimpleFontData::platformInit):
58132
58133 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
58134
58135         Standardize on "flush" terminology for compositing layer flushing/syncing
58136         https://bugs.webkit.org/show_bug.cgi?id=98321
58137
58138         Reviewed by Simon Fraser.
58139
58140         Rename compositing-related methods that refer to "syncing" to instead
58141         refer to "flushing".
58142
58143         * WebCore.exp.in:
58144         * loader/EmptyClients.h:
58145         (WebCore::EmptyChromeClient::scheduleCompositingLayerFlush):
58146         * page/ChromeClient.h:
58147         (ChromeClient):
58148         * page/FrameView.cpp:
58149         (WebCore::FrameView::flushCompositingStateForThisFrame):
58150         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
58151         (WebCore::FrameView::paintContents):
58152         * page/FrameView.h:
58153         (FrameView):
58154         * rendering/RenderLayerCompositor.cpp:
58155         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
58156         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
58157
58158 2012-10-04  Peter Rybin  <peter.rybin@gmail.com>
58159
58160         Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis
58161         https://bugs.webkit.org/show_bug.cgi?id=94397
58162
58163         Reviewed by Yury Semikhatsky.
58164
58165         Internal property access is built from Injected Script to V8 debug API. JSC binding
58166         has a stub imlpementation. Protocol is updated to explicitly reflect internal properties.
58167
58168         Test: inspector-protocol/runtime-getProperties.html
58169
58170         * bindings/js/JSInjectedScriptHostCustom.cpp:
58171         (WebCore::JSInjectedScriptHost::getInternalProperties):
58172         (WebCore):
58173         * bindings/v8/DebuggerScript.js:
58174         * bindings/v8/ScriptDebugServer.cpp:
58175         (WebCore::ScriptDebugServer::getInternalProperties):
58176         (WebCore):
58177         * bindings/v8/ScriptDebugServer.h:
58178         (ScriptDebugServer):
58179         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
58180         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallback):
58181         (WebCore):
58182         * inspector/InjectedScript.cpp:
58183         (WebCore::InjectedScript::getInternalProperties):
58184         (WebCore):
58185         * inspector/InjectedScript.h:
58186         (InjectedScript):
58187         * inspector/InjectedScriptHost.idl:
58188         * inspector/InjectedScriptSource.js:
58189         (.):
58190         * inspector/Inspector.json:
58191         * inspector/InspectorRuntimeAgent.cpp:
58192         (WebCore::InspectorRuntimeAgent::getProperties):
58193         * inspector/InspectorRuntimeAgent.h:
58194         (InspectorRuntimeAgent):
58195
58196 2012-10-04  Sami Kyostila  <skyostil@chromium.org>
58197
58198         Fixed position visibility check does not consider descendants
58199         https://bugs.webkit.org/show_bug.cgi?id=98144
58200
58201         Reviewed by Simon Fraser.
58202
58203         The check against creating composition layers for invisible fixed positioned
58204         elements is too aggressive in that it does not consider descendants of the
58205         fixed positioned element that may be visible even though the element itself is
58206         out of view.
58207
58208         Fix the problem by calculating the true composited bounds of the fixed
58209         element instead of just using the size of the fixed layer. Because calculating
58210         the true bounds may be expensive, it is only done if the fixed layer itself is
58211         invisible.
58212
58213         Test: compositing/layer-creation/fixed-position-absolute-descendant.html
58214
58215         * rendering/RenderLayerCompositor.cpp:
58216         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58217         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58218         * rendering/RenderLayerCompositor.h:
58219
58220 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58221
58222         Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.
58223         https://bugs.webkit.org/show_bug.cgi?id=98385
58224
58225         Reviewed by Pavel Feldman.
58226
58227         When javaScriptSource diverges from VM, ResourceScriptMapping now switches debugging
58228         to temporary VM scripts based uiSourceCode with isDivergedReplacement property set.
58229         Added hasDivergedFromVM and isDivergingFromVM properties to JavaScriptSource.
58230         JavaScriptSourceFrame and ScriptSnippetsModel are updated to process breakpoint changes correctly.
58231
58232         * inspector/front-end/BreakpointManager.js:
58233         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
58234         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
58235         * inspector/front-end/JavaScriptSource.js:
58236         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
58237         (WebInspector.JavaScriptSource.prototype.workingCopyChanged):
58238         (WebInspector.JavaScriptSource.prototype.fireHasDivergedFromVMChanged):
58239         * inspector/front-end/JavaScriptSourceFrame.js:
58240         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
58241         (WebInspector.JavaScriptSourceFrame.prototype._hasDivergedFromVM):
58242         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
58243         (WebInspector.JavaScriptSourceFrame.prototype._getBreakpointDecorations):
58244         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
58245         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
58246         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
58247         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
58248         * inspector/front-end/ResourceScriptMapping.js:
58249         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
58250         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
58251         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
58252         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
58253         * inspector/front-end/ScriptSnippetModel.js:
58254         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58255         (WebInspector.ScriptSnippetModel.prototype._restoreBreakpoints):
58256         * inspector/front-end/ScriptsPanel.js:
58257         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58258         * inspector/front-end/UISourceCode.js:
58259         (WebInspector.UISourceCode.prototype.formatted):
58260
58261 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58262
58263         Web Inspector: Scripts panel should not automatically switch to snippet evaluation when previously evaluated snippet is edited.
58264         https://bugs.webkit.org/show_bug.cgi?id=98402
58265
58266         Reviewed by Pavel Feldman.
58267
58268         Scripts panel does not automatically switch to snippet evaluation when
58269         one edits previously evaluated snippet.
58270
58271         * inspector/front-end/ScriptSnippetModel.js:
58272         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58273         * inspector/front-end/ScriptsPanel.js:
58274         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58275
58276 2012-10-04  Balazs Kelemen  <kbalazs@webkit.org>
58277
58278         Don't allow to disable compositing in forced compositing mode
58279         https://bugs.webkit.org/show_bug.cgi?id=98048
58280
58281         Reviewed by Jocelyn Turcotte.
58282
58283         Make forced compositing mode imply accelerated compositing. This will
58284         avoid unexpected situations for platforms that don't want to support
58285         the non-accelerated rendering path.
58286
58287         Covered by existing tests.
58288
58289         * WebCore.exp.in: Export Settings::setAcceleratedCompositingEnabled
58290         because it has been deinlined.
58291         * page/Settings.cpp:
58292         (WebCore::Settings::setAcceleratedCompositingEnabled):
58293         (WebCore::Settings::setForceCompositingMode):
58294         (WebCore):
58295         * page/Settings.h:
58296         (Settings):
58297         (WebCore::Settings::forceCompositingMode): Make it const as a side fix.
58298
58299 2012-10-04  Harald Alvestrand  <hta@google.com>
58300
58301         Change RTCPeerConnection GetStats to use Date timestamp format
58302         https://bugs.webkit.org/show_bug.cgi?id=98263
58303
58304         Reviewed by Yury Semikhatsky.
58305
58306         Tested by extension to RTCPeerConnection-stats test.
58307
58308         * Modules/mediastream/RTCStatsElement.cpp:
58309         (WebCore::RTCStatsElement::create):
58310         (WebCore::RTCStatsElement::RTCStatsElement):
58311         * Modules/mediastream/RTCStatsElement.h: long -> double
58312         (RTCStatsElement):
58313         (WebCore::RTCStatsElement::timestamp):
58314         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58315         * Modules/mediastream/RTCStatsReport.cpp:
58316         (WebCore::RTCStatsReport::addElement):
58317         * Modules/mediastream/RTCStatsReport.h:
58318         (RTCStatsReport):
58319         * Modules/mediastream/RTCStatsResponse.cpp:
58320         (WebCore::RTCStatsResponse::addElement):
58321         * Modules/mediastream/RTCStatsResponse.h:
58322         (RTCStatsResponse):
58323         * platform/chromium/support/WebRTCStatsResponse.cpp:
58324         (WebKit::WebRTCStatsResponse::addElement):
58325         * platform/mediastream/RTCStatsResponseBase.h:
58326         (RTCStatsResponseBase):
58327
58328 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58329
58330         Unreviewed, rolling out r130377.
58331         http://trac.webkit.org/changeset/130377
58332         https://bugs.webkit.org/show_bug.cgi?id=98392
58333
58334         Chromium Win compilation is broken (Requested by yurys on
58335         #webkit).
58336
58337         * Modules/mediastream/RTCStatsElement.cpp:
58338         (WebCore::RTCStatsElement::create):
58339         (WebCore::RTCStatsElement::RTCStatsElement):
58340         * Modules/mediastream/RTCStatsElement.h:
58341         (RTCStatsElement):
58342         (WebCore::RTCStatsElement::timestamp):
58343         * Modules/mediastream/RTCStatsElement.idl:
58344         * Modules/mediastream/RTCStatsReport.cpp:
58345         (WebCore::RTCStatsReport::addElement):
58346         * Modules/mediastream/RTCStatsReport.h:
58347         (RTCStatsReport):
58348         * Modules/mediastream/RTCStatsResponse.cpp:
58349         (WebCore::RTCStatsResponse::addElement):
58350         * Modules/mediastream/RTCStatsResponse.h:
58351         (RTCStatsResponse):
58352         * platform/chromium/support/WebRTCStatsResponse.cpp:
58353         (WebKit::WebRTCStatsResponse::addElement):
58354         * platform/mediastream/RTCStatsResponseBase.h:
58355         (RTCStatsResponseBase):
58356
58357 2012-10-04  Harald Alvestrand  <hta@google.com>
58358
58359         Change RTCPeerConnection GetStats to use Date timestamp format
58360         https://bugs.webkit.org/show_bug.cgi?id=98263
58361
58362         Reviewed by Adam Barth.
58363
58364         Tested by extension to RTCPeerConnection-stats test.
58365
58366         * Modules/mediastream/RTCStatsElement.cpp:
58367         (WebCore::RTCStatsElement::create):
58368         (WebCore::RTCStatsElement::RTCStatsElement):
58369         * Modules/mediastream/RTCStatsElement.h: long -> double
58370         (RTCStatsElement):
58371         (WebCore::RTCStatsElement::timestamp):
58372         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58373         * Modules/mediastream/RTCStatsReport.cpp:
58374         (WebCore::RTCStatsReport::addElement):
58375         * Modules/mediastream/RTCStatsReport.h:
58376         (RTCStatsReport):
58377         * Modules/mediastream/RTCStatsResponse.cpp:
58378         (WebCore::RTCStatsResponse::addElement):
58379         * Modules/mediastream/RTCStatsResponse.h:
58380         (RTCStatsResponse):
58381         * platform/chromium/support/WebRTCStatsResponse.cpp:
58382         (WebKit::WebRTCStatsResponse::addElement):
58383         * platform/mediastream/RTCStatsResponseBase.h:
58384         (RTCStatsResponseBase):
58385
58386 2012-10-05  Kent Tamura  <tkent@chromium.org>
58387
58388         [Chromium] Enable the multiple fields UI for input[type=date]
58389         https://bugs.webkit.org/show_bug.cgi?id=98351
58390
58391         Reviewed by Hajime Morita.
58392
58393         Touch files related to ENABLE_INPUT_TYPE_DATE_LEGACY_UI to avoid build
58394         issues.
58395
58396         No new tests. Many tests will be landed shortly.
58397
58398         * html/DateInputType.cpp:
58399         * html/DateInputType.h:
58400
58401 2012-10-04  Kent Tamura  <tkent@chromium.org>
58402
58403         Add code for input[type=date] with the multiple fields UI
58404         https://bugs.webkit.org/show_bug.cgi?id=98340
58405
58406         Reviewed by Hajime Morita.
58407
58408         The new code is available if !ENABLE(INPUT_TYPE_DATE_LEGACY_UI). At this
58409         moment, there are no platforms enabling the new code. We're going to
58410         enable it soon on desktop Chromium, and add tests. Then we're going to
58411         remove the code for ENABLE(INPUT_TYPE_DATE_LEGACY_UI).
58412
58413         ENABLE(INPUT_TYPE_DATE_LEGACY_UI) means the current UI; input[type=date]
58414         is represetnted as a kind of text field, and it has code to invoke a
58415         calendar picker.
58416         ENABLE(CALENDAR_PICKER) was used wrongly. It meant calendar picker
58417         support + text field UI of input[type=date]. Now it means only calendar
58418         picker support.
58419
58420         * html/DateInputType.h:
58421         (WebCore): If ENABLE(INPUT_MULTIPLE_FIELDS_UI) &&
58422         !ENABLE(INPUT_TYPE_DATE_LEGACY_UI), change the base class to the class
58423         for multiple fields UI.
58424         (DateInputType): Wrap the code for text fields behavior and calendar
58425         picker UI with ENABLE(INPUT_TYPE_DATE_LEGACY_UI). Add functions for
58426         ENABLE(INPUT_MULTIPLE_FIELDS_UI)
58427         * html/DateInputType.cpp:
58428         (WebCore::DateInputType::DateInputType):
58429         Change the flag name; CALENDAR_PICKER -> INPUT_TYPE_DATE_LEGACY_UI
58430         (WebCore): ditto.
58431         (WebCore::DateInputType::formatDateTimeFieldsState):
58432         A callback for multiple fields UI. This constructs a string value from
58433         each of values of multiple fields.
58434         Note that we don't need to do +1 to month().
58435         (WebCore::DateInputType::setupLayoutParameters):
58436         A callback for multiple fields UI. Passes information to build UI.
58437
58438         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58439         (BaseMultipleFieldsDateAndTimeInputType):
58440         Add m_pickerIndicatorIsAlwaysVisible member, wrap some members with flags.
58441         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58442         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
58443         Initialize m_pickerIndicatorIsAlwaysVisible.
58444         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
58445         If a type supports calendar picker, we should always show the picker
58446         indicator. We introduce m_pickerIndicatorIsAlwaysVisible flag, and ask
58447         RenderTheme for support status of each of types.
58448         Add a local variable 'document' to avoid multiple element()->document().
58449         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility):
58450         - If m_pickerIndicatorIsAlwaysVisible, don't hide the picker indicator element.
58451         - Wrap the code with appropriate flags.
58452
58453         * rendering/RenderTheme.h:
58454         (WebCore::RenderTheme::supportsCalendarPicker): Added.
58455         * rendering/RenderThemeChromiumMac.h: Override supportsCalendarPicker.
58456         * rendering/RenderThemeChromiumMac.mm:
58457         (WebCore::RenderThemeChromiumMac::supportsCalendarPicker):
58458         Added. Delegate to RenderThemeChromiumCommon.
58459         * rendering/RenderThemeChromiumSkia.h: Override supportsCalendarPicker.
58460         * rendering/RenderThemeChromiumSkia.cpp:
58461         (WebCore::RenderThemeChromiumSkia::supportsCalendarPicker):
58462         Added. Delegate to RenderThemeChromiumCommon.
58463         * rendering/RenderThemeChromiumCommon.h:
58464         (RenderThemeChromiumCommon): Declare supportsCalendarPicker.
58465         * rendering/RenderThemeChromiumCommon.cpp:
58466         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
58467         Returns true if the type is "date."
58468
58469         * html/DateTimeFieldsState.h:
58470         (DateTimeFieldsState): Add a comment for the m_month field.
58471
58472 2012-10-04  Kent Tamura  <tkent@chromium.org>
58473
58474         DateTimeYearFieldElement should respect min/max values specified by page authors
58475         https://bugs.webkit.org/show_bug.cgi?id=98227
58476
58477         Reviewed by Hajime Morita.
58478
58479         Before this patch, we always set 1 to the minimum limit and 275760 to
58480         the maximum limit for a year field, and a user can specify any year
58481         regardless of min/max attributes. Such wide range is unnecessary for
58482         normal applications and we should provide a way to limit the range.
58483
58484         Test: fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
58485
58486         * html/shadow/DateTimeFieldElements.h:
58487         To add four constructor arguments, introduce Parameters struct.
58488         Actually, we add the followings;
58489          - minimum year in UI
58490          - maximum year in UI
58491          - min attribute is specified
58492          - max attribute is specified
58493         (Parameters):
58494         (WebCore::DateTimeYearFieldElement::Parameters::Parameters):
58495         (DateTimeYearFieldElement):
58496         * html/shadow/DateTimeFieldElements.cpp:
58497         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): ditto.
58498         (WebCore::DateTimeYearFieldElement::create): ditto.
58499         (WebCore::DateTimeYearFieldElement::clampValueForHardLimits):
58500         Override DateTimeNumericFieldElement::clampValueForHardLimits.
58501         By this, we allow to set out-of-range year values.
58502         (WebCore::currentFullYear): A helper to get the current year.
58503         (WebCore::DateTimeYearFieldElement::defaultValueForStepDown):
58504         If the field has no value and step down operation occurs,
58505          - the field has the current year if the max attribute is not specified.
58506          - the field has the maximum value otherwise.
58507         (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Similar change.
58508
58509         * html/shadow/DateTimeNumericFieldElement.h:
58510         (DateTimeNumericFieldElement): Declare clampValueForHardLimits.
58511         * html/shadow/DateTimeNumericFieldElement.cpp:
58512         (WebCore::DateTimeNumericFieldElement::clampValueForHardLimits):
58513         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
58514         Call clampValueForHardLimits instead of clampValue in order to
58515         distinguish limits for UI and limits for internal value update.
58516
58517         * html/shadow/DateTimeEditElement.h:
58518         (LayoutParameters): Add minimumYear and maximumYear members.
58519         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58520         Initialize minimumYear and maximumYear.
58521         (WebCore::DateTimeEditElement::LayoutParameters::undefinedYear):
58522         Represents 'undefined' value for minimumYear and maximumYear.
58523         * html/shadow/DateTimeEditElement.cpp:
58524         (WebCore::DateTimeEditBuilder::visitField):
58525         Preparas DateTimeYearField::Parameters and pass it to the DateTimeYearField factory.
58526
58527         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58528         (WebCore::BaseMultipleFieldsDateAndTimeInputType::fullYear):
58529         A helper to get a year value from an attribute value string.
58530         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58531         (BaseMultipleFieldsDateAndTimeInputType): Add fullYear().
58532
58533         * html/DateTimeInputType.cpp:
58534         (WebCore::DateTimeInputType::setupLayoutParameters):
58535         Set LayoutParameters::minimumYear and maximumYear.
58536         * html/DateTimeLocalInputType.cpp:
58537         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
58538         * html/MonthInputType.cpp:
58539         (WebCore::MonthInputType::setupLayoutParameters): ditto.
58540         * html/WeekInputType.cpp:
58541         (WebCore::WeekInputType::setupLayoutParameters): ditto.
58542
58543 2012-10-03  Adam Barth  <abarth@webkit.org>
58544
58545         Unreviewed. Fix parse error in vcproj file.
58546
58547         * WebCore.vcproj/WebCore.vcproj:
58548
58549 2012-10-03  Keishi Hattori  <keishi@webkit.org>
58550
58551         Implement localizeValue for TimeInputType
58552         https://bugs.webkit.org/show_bug.cgi?id=98237
58553
58554         Reviewed by Kent Tamura.
58555
58556         We want to localize time values for the suggestion picker.
58557         DateTimeStringBuilder parses a format and creates a formatted string.
58558
58559         Added chromium unit test LocaleMacTest.formatTime
58560
58561         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58562         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField): Moved from LayoutParameters because we want to use it inside localizeValue.
58563         (WebCore):
58564         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58565         (BaseMultipleFieldsDateAndTimeInputType):
58566         * html/DateTimeInputType.cpp:
58567         (WebCore::DateTimeInputType::setupLayoutParameters):
58568         * html/DateTimeLocalInputType.cpp:
58569         (WebCore::DateTimeLocalInputType::setupLayoutParameters):
58570         * html/TimeInputType.cpp:
58571         (WebCore::TimeInputType::localizeValue):
58572         (WebCore):
58573         (WebCore::TimeInputType::setupLayoutParameters):
58574         * html/TimeInputType.h:
58575         (TimeInputType):
58576         * html/shadow/DateTimeEditElement.cpp:
58577         (WebCore):
58578         * html/shadow/DateTimeEditElement.h:
58579         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58580         * platform/text/LocaleICU.cpp:
58581         (WebCore::LocaleICU::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58582         * platform/text/LocaleICU.h:
58583         (LocaleICU):
58584         * platform/text/LocaleWin.cpp:
58585         (WebCore::LocaleWin::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58586         * platform/text/LocaleWin.h:
58587         (LocaleWin):
58588         * platform/text/LocaleNone.cpp:
58589         (LocaleNone):
58590         (WebCore::LocaleNone::formatDateTime):
58591         * platform/text/Localizer.cpp:
58592         (DateTimeStringBuilder):
58593         (WebCore):
58594         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder): Takes a
58595         Localizer pointer. This is used inside the Localizer so the Localizer
58596         will out live the DateTimeStringBuilder.
58597         (WebCore::DateTimeStringBuilder::build): Builds a localized string for the given format.
58598         (WebCore::DateTimeStringBuilder::zeroPadString):
58599         (WebCore::DateTimeStringBuilder::appendNumber): Appends a number with left zero padding to match width.
58600         (WebCore::DateTimeStringBuilder::visitField):
58601         (WebCore::DateTimeStringBuilder::visitLiteral):
58602         (WebCore::DateTimeStringBuilder::toString): Returns the localized string.
58603         (WebCore::Localizer::formatDateTime):
58604         * platform/text/Localizer.h:
58605         * platform/text/mac/LocaleMac.h:
58606         (LocaleMac):
58607         * platform/text/mac/LocaleMac.mm:
58608         (WebCore::LocaleMac::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58609
58610 2012-10-03  Douglas Stockwell  <dstockwell@chromium.org>
58611
58612         Chromium needs support for border radius clipping
58613         https://bugs.webkit.org/show_bug.cgi?id=69866
58614
58615         Reviewed by Stephen White.
58616
58617         Changes to make this suitably efficient have already landed upstream in skia:
58618         http://code.google.com/p/skia/source/detail?r=2924
58619
58620         Covered by existing tests.
58621
58622         * rendering/RenderLayer.cpp:
58623
58624 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58625
58626         Simplify attribute access in Element::computeInheritedLanguage
58627         https://bugs.webkit.org/show_bug.cgi?id=98327
58628
58629         Reviewed by Andreas Kling.
58630
58631         * dom/Element.cpp:
58632         (WebCore::Element::computeInheritedLanguage):
58633         By using Element::fastGetAttribute(), we check for the existence of attributeData twice
58634         and do a bunch of useless operation on AtomicString.
58635
58636         By using ElementAttributeData directly, we can cut it to the two important branch.
58637
58638 2012-10-03  Kangil Han  <kangil.han@samsung.com>
58639
58640         Fix unused parameter compile warnings.
58641         https://bugs.webkit.org/show_bug.cgi?id=98243
58642
58643         Reviewed by Alexey Proskuryakov.
58644
58645         Fixed unused parameter compile warning by removing parameter names and adding UNUSED_PARAM usage.
58646
58647         * plugins/PluginDebug.cpp:
58648         (WebCore::prettyNameForNPPVariable):
58649         * plugins/npapi.cpp:
58650         (NPN_MemFlush):
58651         (NPN_RequestRead):
58652         (NPN_GetJavaPeer):
58653
58654 2012-10-03  Adam Barth  <abarth@webkit.org>
58655
58656         Measure the usage of WebSQLDatabase
58657         https://bugs.webkit.org/show_bug.cgi?id=98330
58658
58659         Reviewed by Ojan Vafai.
58660
58661         WebKit is the only engine that implements WebSQLDatabase. This patch
58662         causes us to measure its usage so we can see how quickly web sites move
58663         to IndexedDB.
58664
58665         * Modules/webdatabase/DOMWindowWebDatabase.idl:
58666         * page/FeatureObserver.h:
58667
58668 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58669
58670         [soup] WebKit crashes when doing a http request
58671         https://bugs.webkit.org/show_bug.cgi?id=98055
58672
58673         Reviewed by Martin Robinson.
58674
58675         On i386, (d->m_firstRequest.timeoutInterval() * 1000) results in 0 if
58676         timeoutInterval() is INT_MAX. So, set default timeout to 0 to avoid
58677         calling soup_add_timeout with a 0 value.
58678
58679         Also, if resource handle is deleted before "request-started" signal is
58680         emitted, soupMessage handle points to a deleted object, and a crash
58681         occurs. So, reset soupMessage handle data in
58682         cleanupSoupRequestOperation so it won't happen anymore.
58683
58684         Lastly, if timeout occurs before request is completed, handle is
58685         deleted, and crash occurs in sendRequestCallback due to an early
58686         destroyed handle. To avoid that, call handle->cancel in
58687         requestTimeoutCallback. There is no need to call
58688         cleanupSoupRequestOperation anymore since handle->cancel will trigger
58689         sendRequestCallback, and as handle is deleted,
58690         cleanupSoupRequestOperation will be called automatically.
58691
58692         No new tests yet, tests will be added with the patch in bug 74802.
58693
58694         * platform/network/ResourceRequestBase.cpp:
58695         (WebCore):
58696         * platform/network/soup/ResourceHandleSoup.cpp:
58697         (WebCore::cleanupSoupRequestOperation):
58698         (WebCore::ResourceHandle::platformSetDefersLoading):
58699         (WebCore::requestTimeoutCallback):
58700
58701 2012-10-03  Adam Barth  <abarth@webkit.org>
58702
58703         Remove support for ENABLE(LEGACY_WEBKIT_BLOB_BUILDER)
58704         https://bugs.webkit.org/show_bug.cgi?id=98301
58705
58706         Reviewed by Eric Seidel.
58707
58708         According to anonymous usage statistics, the APIs guarded by
58709         ENABLE(LEGACY_WEBKIT_BLOB_BUILDER) are used on approximately 0.006% of
58710         web pages. Given that this feature is only enabled in GTK and Chromium,
58711         it seems likely that we should remove it.
58712
58713         * CMakeLists.txt:
58714         * DerivedSources.make:
58715         * DerivedSources.pri:
58716         * GNUmakefile.features.am:
58717         * GNUmakefile.list.am:
58718         * WebCore.gypi:
58719         * WebCore.xcodeproj/project.pbxproj:
58720         * fileapi/WebKitBlobBuilder.idl: Removed.
58721         * page/DOMWindow.idl:
58722
58723 2012-10-03  Beth Dakin  <bdakin@apple.com>
58724
58725         https://bugs.webkit.org/show_bug.cgi?id=98313
58726         ScrollingStateNode should keep a Vector of children instead of child 
58727         pointers
58728
58729         Reviewed by Simon Fraser.
58730
58731         This patch re-names ScrollingStateNode::cloneNode() to 
58732         ScrollingStateNode::cloneAndResetNode(). The new function resets the 
58733         change properties of the current node after cloning it, and it also 
58734         takes care of cloning children, which the old function did not do.
58735
58736         m_firstChild and m_nextSibling are gone. Use the m_children Vector 
58737         instead.
58738         * page/scrolling/ScrollingStateNode.cpp:
58739         (WebCore::ScrollingStateNode::cloneAndResetChildNodes):
58740         (WebCore::ScrollingStateNode::appendChild):
58741         * page/scrolling/ScrollingStateNode.h:
58742         (ScrollingStateNode):
58743         (WebCore::ScrollingStateNode::parent):
58744         (WebCore::ScrollingStateNode::setParent):
58745
58746         Reset the change properties and clone children in cloneAndResetNode()
58747         * page/scrolling/ScrollingStateScrollingNode.cpp:
58748         (WebCore::ScrollingStateScrollingNode::cloneAndResetNode):
58749         * page/scrolling/ScrollingStateScrollingNode.h:
58750
58751         Yay, this function can be vastly simplified now that we don't have 
58752         those messy child and sibling pointers.
58753         * page/scrolling/ScrollingStateTree.cpp:
58754         (WebCore::ScrollingStateTree::commit):
58755
58756 2012-10-03  Ojan Vafai  <ojan@chromium.org>
58757
58758         Replace uses of -webkit-box-sizing with box-sizing
58759         https://bugs.webkit.org/show_bug.cgi?id=98312
58760
58761         Reviewed by Tony Chang.
58762
58763         No need to use the prefixed version when the unprefixed works the same.
58764         No new tests since there's no change in behavior..
58765
58766         * css/html.css:
58767
58768 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58769
58770         IndexedDB: Don't do full commit for empty transactions
58771         https://bugs.webkit.org/show_bug.cgi?id=89239
58772
58773         Reviewed by Tony Chang.
58774
58775         Don't bother creating a leveldb write batch if there's nothing in the transaction
58776         to commit. Note that a read-only transaction may still have index cleanup so may
58777         not be an empty transaction.
58778
58779         This cuts the Lookup2 benchmark in http://reyesr.github.com/html5-storage-benchmark/
58780         from 70s to 2s.
58781
58782         Covered by existing tests, e.g. storage/indexeddb/transaction-basics.html
58783
58784         * platform/leveldb/LevelDBTransaction.cpp:
58785         (WebCore::LevelDBTransaction::commit):
58786
58787 2012-10-03  Adam Klein  <adamk@chromium.org>
58788
58789         Remove bogus FIXME from Document.idl
58790         https://bugs.webkit.org/show_bug.cgi?id=98302
58791
58792         Reviewed by Adam Barth.
58793
58794         The FIXME claimed that document.body throwing an exception was not
58795         specced, but in fact it is:
58796         http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#dom-document-body
58797
58798         * dom/Document.idl:
58799
58800 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58801
58802         IndexedDB: Memory leak when deleting object stores with indexes
58803         https://bugs.webkit.org/show_bug.cgi?id=98292
58804
58805         Reviewed by Tony Chang.
58806
58807         Reference cycles between IDBObjectStore and IDBIndex instances are explicitly
58808         broken when the transaction completes (and the spec allows traversal to fail).
58809         Deleted stores need to have the reference cycle broken too.
58810
58811         Caught by running valgrind over: storage/indexeddb/keypath-basics.html
58812
58813         * Modules/indexeddb/IDBTransaction.cpp:
58814         (WebCore::IDBTransaction::objectStoreDeleted): Add store to set.
58815         (WebCore::IDBTransaction::dispatchEvent): Notify stores in set.
58816         * Modules/indexeddb/IDBTransaction.h: Add set of deleted stores.
58817
58818 2012-10-03  Adam Barth  <abarth@webkit.org>
58819
58820         CSSNamespace.h is empty and should be deleted
58821         https://bugs.webkit.org/show_bug.cgi?id=98304
58822
58823         Reviewed by Eric Seidel.
58824
58825         There's no reason to have this file in the repository.
58826
58827         * GNUmakefile.list.am:
58828         * WebCore.gypi:
58829         * WebCore.vcproj/WebCore.vcproj:
58830         * WebCore.xcodeproj/project.pbxproj:
58831         * css/CSSNamespace.h: Removed.
58832
58833 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58834
58835         Build failure with css filters enabled and accelerated compositing disabled
58836         https://bugs.webkit.org/show_bug.cgi?id=95908
58837
58838         Reviewed by Tony Chang.
58839
58840         Do not try to setBackingNeedsRepaint when building without accelerated
58841         compositing.
58842
58843         Also, allow painting with filter (paintsWithFilters returns true if
58844         renderer has filter) when accelerated compositing is not enabled.
58845
58846         No functional change, so no new tests.
58847
58848         * rendering/RenderLayer.cpp:
58849         (WebCore::RenderLayer::styleChanged):
58850
58851 2012-10-03  Emil A Eklund  <eae@chromium.org>
58852
58853         Round image sizes when zooming
58854         https://bugs.webkit.org/show_bug.cgi?id=98205
58855
58856         Reviewed by Eric Seidel.
58857
58858         We currently floor image sizes when zooming which can result in
58859         images being rendered at one pixel less than the actual size.
58860         This is especially likely to happen for very large images.
58861
58862         Test: fast/sub-pixel/zoomed-image-tiles.html
58863
58864         * loader/cache/CachedImage.cpp:
58865         (WebCore::CachedImage::imageSizeForRenderer):
58866
58867 2012-10-03  Hugo Parente Lima  <hugo.lima@openbossa.org>
58868
58869         [WK2] PageViewportController.cpp is supposed to be a generic WebKit2 file but only works with Qt port.
58870         https://bugs.webkit.org/show_bug.cgi?id=98186
58871
58872         Reviewed by Noam Rosenthal.
58873
58874         Remove the implicit conversion from WebCore::FloatSize to QSize.
58875
58876         * platform/graphics/FloatSize.h:
58877         (FloatSize):
58878
58879 2012-10-03  Levi Weintraub  <leviw@chromium.org>
58880
58881         [Sub-pixel layout] incorrect rendering when painting sub-layers as their own root
58882         https://bugs.webkit.org/show_bug.cgi?id=97484
58883
58884         Reviewed by Eric Seidel.
58885
58886         When in compositing mode, layer painting can be triggered through the backing store. When this
58887         happens, a non-top-level RenderLayer is called to paint as its own root. Normally, we attempt to preserve
58888         the proper sub-pixel accumulation through layers to their children, but since we're not
58889         starting with the top-level layer, we haven't properly accumulated one, and convertToLayerCoords,
58890         another source of correctly getting the sub-pixel offset for a layer, also avoids crawling
58891         past the listed root layer.
58892
58893         When painting a root layer, we're aligned to the surface we're painting to, so we round our
58894         offset to avoid moving objects around.
58895
58896         * rendering/RenderLayer.cpp:
58897         (WebCore::RenderLayer::paintLayerContents):
58898
58899 2012-10-03  Jeff Timanus  <twiz@chromium.org>
58900
58901         [chromium] Expose settings value to conditionally enable pinch-zoom scaling in the Chromium compositor.  The
58902         flag defaults to disabled, so this change should be a no-op for scaling/scrolling behaviour.
58903         https://bugs.webkit.org/show_bug.cgi?id=93292
58904
58905         Reviewed by James Robinson.
58906
58907         Tests:  Existing page-scale layout tests.
58908
58909         * page/Frame.cpp:
58910         (WebCore::Frame::frameScaleFactor):
58911         * page/Settings.cpp:
58912         (WebCore::Settings::Settings):
58913         * page/Settings.h:
58914         (WebCore::Settings::setApplyPageScaleFactorInCompositor):
58915         (WebCore::Settings::applyPageScaleFactorInCompositor):
58916         (Settings):
58917
58918 2012-10-03  Stephen Chenney  <schenney@chromium.org>
58919
58920         Font data is purged while fonts are still using it
58921         https://bugs.webkit.org/show_bug.cgi?id=93640
58922
58923         Reviewed by Eric Seidel.
58924
58925         Move the handling of custom font pruning from Document to FontFallbackList.
58926         The previous inplementation allowed fonts to be removed before all their
58927         clients were done. This change moves handling of custom font purging to the
58928         FontFallbackList class, which is the shared object that is only removed
58929         when all clients of a font are done with it. This fixes a crash in Angry
58930         Birds due to a seamless iframe and some failing tests in fast/frames/seamless.
58931
58932         The specific element that causes problems is:
58933         <iframe id="ingame_frame0" name="ingame_frame0" frameborder="0" seamless="true"
58934           src="http://chrome.angrybirds.com/ingame_graphic.html"
58935           onload="this.style.opacity = 1; parent.adLoaded();" scrolling="no"
58936           style="opacity: 1; -webkit-transition: opacity 1s ease-in-out 0s;
58937           position: absolute; border: 0px; width: 312px; height: 320px; z-index:
58938           300; overflow: hidden; visibility: visible;"></iframe>
58939         The source document uses the same font as the embedding document.
58940
58941         Tests: fast/frames/seamless/seamless-custom-font-pruning-crash.html
58942                fast/frames/seamless/seamless-nested-crash.html
58943
58944         * css/CSSFontFaceSource.cpp:
58945         (WebCore::CSSFontFaceSource::getFontData): Remove code to register the font with the document.
58946         * css/CSSSegmentedFontFace.cpp:
58947         (WebCore::CSSSegmentedFontFace::getFontData): Remove code to register the font with the document.
58948         * dom/Document.cpp:
58949         (WebCore::Document::~Document): Remove code that records and purges custom fonts.
58950         (WebCore):
58951         (WebCore::Document::reportMemoryUsage): Remove reference to non-existent objects.
58952         * dom/Document.h:
58953         (WebCore):
58954         (Document): Remove method declarations for custom font handling.
58955         * platform/graphics/FontFallbackList.h:
58956         (FontFallbackList): Moved some code around and made non-copyable.
58957         (WebCore::FontFallbackList::setGlyphPageZero): Moved.
58958         (WebCore::FontFallbackList::setGlyphPages): Moved.
58959         * platform/graphics/GlyphPageTreeNode.cpp:
58960         (WebCore::GlyphPageTreeNode::pruneFontData): Removed unnecessary null check.
58961         * platform/graphics/SegmentedFontData.cpp:
58962         (WebCore::SegmentedFontData::~SegmentedFontData): Added code to prune the Glyph pages when this is deleted.
58963         * platform/graphics/SimpleFontData.cpp:
58964         (WebCore::SimpleFontData::~SimpleFontData): Added code to prune the Glyph pages when this is deleted.
58965
58966 2012-10-03  Adam Barth  <abarth@webkit.org>
58967
58968         Crash when calling document.open during unload
58969         https://bugs.webkit.org/show_bug.cgi?id=98287
58970
58971         Reviewed by Nate Chapin.
58972
58973         Calling document.open results in us nulling out m_documentLoader. This
58974         code doesn't properly handle that case and crashes.
58975
58976         Test: fast/parser/document-open-in-unload.html
58977
58978         * loader/FrameLoader.cpp:
58979         (WebCore::FrameLoader::commitProvisionalLoad):
58980
58981 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58982
58983         Element::computeInheritedLanguage: evaluate the while() condition after fetching the string
58984         https://bugs.webkit.org/show_bug.cgi?id=98220
58985
58986         Reviewed by Andreas Kling.
58987
58988         * dom/Element.cpp:
58989         (WebCore::Element::computeInheritedLanguage):
58990         The condition is never false on the first execution. Move the condition to the
58991         end of the loop for fun and profit.
58992
58993 2012-10-03  Hans Wennborg  <hans@chromium.org>
58994
58995         Speech JavaScript API: Add SpeechRecognition.interimResults attribute
58996         https://bugs.webkit.org/show_bug.cgi?id=98279
58997
58998         Reviewed by Adam Barth.
58999
59000         Add the interimResults attribute and pass it to the embedder. It was
59001         added to the spec draft in
59002         http://dvcs.w3.org/hg/speech-api/rev/d25fea0d029c
59003
59004         Tested in fast/speech/scripted/basics.html
59005
59006         * Modules/speech/SpeechRecognition.cpp:
59007         (WebCore::SpeechRecognition::start):
59008         (WebCore::SpeechRecognition::SpeechRecognition):
59009         * Modules/speech/SpeechRecognition.h:
59010         (WebCore::SpeechRecognition::interimResults):
59011         (WebCore::SpeechRecognition::setInterimResults):
59012         * Modules/speech/SpeechRecognition.idl:
59013         * Modules/speech/SpeechRecognitionClient.h:
59014         (SpeechRecognitionClient):
59015         * Modules/speech/SpeechRecognitionController.h:
59016         (WebCore::SpeechRecognitionController::start):
59017
59018 2012-10-03  Hans Wennborg  <hans@chromium.org>
59019
59020         Speech JavaScript API: Remove resultdeleted event
59021         https://bugs.webkit.org/show_bug.cgi?id=98272
59022
59023         Reviewed by Adam Barth.
59024
59025         Remove the resultdeleted event. This was never used, and was removed
59026         from the spec draft in
59027         http://dvcs.w3.org/hg/speech-api/rev/f9d53ab8b449
59028
59029         The fast/speech/scripted/basics.html test is updated to reflect this.
59030
59031         * Modules/speech/SpeechRecognition.cpp:
59032         * Modules/speech/SpeechRecognition.h:
59033         (SpeechRecognition):
59034         * Modules/speech/SpeechRecognition.idl:
59035         * Modules/speech/SpeechRecognitionEvent.cpp:
59036         * Modules/speech/SpeechRecognitionEvent.h:
59037         (SpeechRecognitionEvent):
59038         * dom/EventNames.h:
59039         (WebCore):
59040
59041 2012-09-16  Mark Hahnenberg  <mhahnenberg@apple.com>
59042
59043         Delayed structure sweep can leak structures without bound
59044         https://bugs.webkit.org/show_bug.cgi?id=96546
59045
59046         Reviewed by Geoffrey Garen.
59047
59048         This patch gets rid of the separate Structure allocator in the MarkedSpace and adds two new destructor-only
59049         allocators. We now have separate allocators for our three types of objects: those objects with no destructors,
59050         those objects with destructors and with immortal structures, and those objects with destructors that don't have 
59051         immortal structures. All of the objects of the third type (destructors without immortal structures) now 
59052         inherit from a new class named JSDestructibleObject (which in turn is a subclass of JSNonFinalObject), which stores 
59053         the ClassInfo for these classes at a fixed offset for safe retrieval during sweeping/destruction.
59054
59055         No new tests.
59056
59057         * ForwardingHeaders/runtime/JSDestructableObject.h: Added.
59058         * bindings/js/JSDOMWrapper.h: Inherits from JSDestructibleObject.
59059         (JSDOMWrapper):
59060         (WebCore::JSDOMWrapper::JSDOMWrapper):
59061         * bindings/scripts/CodeGeneratorJS.pm: Add finalizers to anything that inherits from JSGlobalObject,
59062         e.g. JSDOMWindow and JSWorkerContexts. For those classes we also need to define needsDestruction as true.
59063         (GenerateHeader):
59064         * bridge/objc/objc_runtime.h: Inherit from JSDestructibleObject.
59065         (ObjcFallbackObjectImp):
59066         * bridge/objc/objc_runtime.mm:
59067         (Bindings):
59068         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
59069         * bridge/runtime_array.cpp: Use a finalizer so that JSArray isn't forced to inherit from JSDestructibleObject.
59070         (JSC):
59071         (JSC::RuntimeArray::destroy):
59072         * bridge/runtime_array.h:
59073         (JSC::RuntimeArray::create):
59074         (JSC):
59075         * bridge/runtime_object.cpp: Inherit from JSDestructibleObject.
59076         (Bindings):
59077         (JSC::Bindings::RuntimeObject::RuntimeObject):
59078         * bridge/runtime_object.h:
59079         (RuntimeObject):
59080
59081 2012-10-02  Anders Carlsson  <andersca@apple.com>
59082
59083         Change most GraphicsLayer::create calls to use the version that takes a GraphicsLayerFactory
59084         https://bugs.webkit.org/show_bug.cgi?id=98217
59085
59086         Reviewed by Andreas Kling.
59087
59088         * WebCore.exp.in:
59089         * rendering/RenderLayerBacking.cpp:
59090         (WebCore::RenderLayerBacking::createGraphicsLayer):
59091         * rendering/RenderLayerCompositor.cpp:
59092         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
59093         (WebCore::RenderLayerCompositor::ensureRootLayer):
59094
59095 2012-10-03  Joshua Bell  <jsbell@chromium.org>
59096
59097         IndexedDB: Optimize encodeString/decodeString
59098         https://bugs.webkit.org/show_bug.cgi?id=97794
59099
59100         Reviewed by Tony Chang.
59101
59102         Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling.
59103         The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy
59104         isn't sufficient, but the code used StringBuilder::append() character-by-character
59105         and custom byte-swapping which was slow.
59106
59107         Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string
59108         and putting it 20k times and getting it 20k times. On my test box, mean time before the
59109         patch was 8.2s, mean time after the patch was 4.6s.
59110
59111         Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*'
59112
59113         * Modules/indexeddb/IDBLevelDBCoding.cpp:
59114         (WebCore::IDBLevelDBCoding::encodeString):
59115         (WebCore::IDBLevelDBCoding::decodeString):
59116
59117 2012-10-03  Keishi Hattori  <keishi@webkit.org>
59118
59119         Implement DataList UI for input type time on chromium
59120         https://bugs.webkit.org/show_bug.cgi?id=98240
59121
59122         Reviewed by Kent Tamura.
59123
59124         This adds datalist UI for input type time. We add the picker indicator to
59125         BaseMultipleFieldsDateAndTimeInputType. We enclose the dateTimeEdit element
59126         and picker indicator inside a new div element so we can position the picker
59127         indicator in the same place as input type=date.
59128
59129         Tests: platform/chromium/fast/forms/time/time-suggestion-picker-appearance-rtl.html
59130                platform/chromium/fast/forms/time/time-suggestion-picker-appearance-with-scroll-bar.html
59131                platform/chromium/fast/forms/time/time-suggestion-picker-appearance.html
59132                platform/chromium/fast/forms/time/time-suggestion-picker-key-operations.html
59133                platform/chromium/fast/forms/time/time-suggestion-picker-mouse-operations.html
59134
59135         * css/html.css:
59136         (input::-webkit-date-and-time-container):
59137         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
59138         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
59139         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Creates a picker indicator.
59140         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open the picker on Alt+Down.
59141         (WebCore):
59142         (WebCore::BaseMultipleFieldsDateAndTimeInputType::listAttributeTargetChanged): Updates picker visibility.
59143         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility): In the future, DateInputType can override
59144         this so the picker indicator is always visible.
59145         (WebCore::BaseMultipleFieldsDateAndTimeInputType::hidePickerIndicator):
59146         (WebCore::BaseMultipleFieldsDateAndTimeInputType::showPickerIndicator):
59147         * html/BaseMultipleFieldsDateAndTimeInputType.h:
59148         (WebCore):
59149         (BaseMultipleFieldsDateAndTimeInputType):
59150         * html/shadow/DateTimeFieldElement.cpp:
59151         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Ignore Alt+down because it should trigger the picker to open.
59152         * rendering/RenderThemeChromiumCommon.cpp:
59153         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add time to the list.
59154
59155 2012-10-03  Andreas Kling  <kling@webkit.org>
59156
59157         Give CSSValueList backing vector an inline capacity.
59158         <http://webkit.org/b/98266>
59159         <rdar://problem/12421425>
59160
59161         Reviewed by Anders Carlsson.
59162
59163         Set an inline capacity of 4 on the CSSValue vector backing CSSValueList. This avoids an extra heap allocation
59164         in the common case, and reduces total memory use across the board, since the majority of CSSValueLists have
59165         at least 1 item, and the Vector will bump from 0 to 16 capacity on the first append.
59166
59167         394kB progression on Membuster3.
59168
59169         * css/CSSValueList.h:
59170         (CSSValueList):
59171
59172 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59173
59174         Web Inspector: NMI: instrument NativeImageSkia.
59175         https://bugs.webkit.org/show_bug.cgi?id=96277
59176
59177         Reviewed by Yury Semikhatsky.
59178
59179         * platform/graphics/skia/NativeImageSkia.cpp:
59180         (WebCore::NativeImageSkia::reportMemoryUsage):
59181         (WebCore::reportMemoryUsage):
59182
59183 2012-10-03  Pavel Feldman  <pfeldman@chromium.org>
59184
59185         Web Inspector: remember the last dock option so that user could toggle between dock to bottom and right
59186         https://bugs.webkit.org/show_bug.cgi?id=98255
59187
59188         Reviewed by Vsevolod Vlasov.
59189
59190         - Introduced DockController.js that covers the dock mechanics
59191         - Removed dock orientation from the settings
59192         - Storing the last dock option to present it as default
59193         - Simplified the multi-option status bar button
59194
59195         * WebCore.gypi:
59196         * WebCore.vcproj/WebCore.vcproj:
59197         * inspector/compile-front-end.py:
59198         * inspector/front-end/DockController.js: Added.
59199         (WebInspector.DockController):
59200         (WebInspector.DockController.prototype.get element):
59201         (WebInspector.DockController.prototype.setDocked.set if):
59202         (WebInspector.DockController.prototype.setDocked):
59203         (WebInspector.DockController.prototype.setDockingUnavailable):
59204         (WebInspector.DockController.prototype._updateUI.get states):
59205         (WebInspector.DockController.prototype._updateUI):
59206         (WebInspector.DockController.prototype._decorateButtonForTargetState):
59207         (WebInspector.DockController.prototype._createDockOptions):
59208         (WebInspector.DockController.prototype._toggleDockState):
59209         (WebInspector.DockController.prototype.isCompactMode):
59210         (WebInspector.DockController.prototype.setCompactMode):
59211         * inspector/front-end/InspectorFrontendAPI.js:
59212         (InspectorFrontendAPI.setAttachedWindow):
59213         * inspector/front-end/InspectorFrontendHostStub.js:
59214         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
59215         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
59216         * inspector/front-end/Settings.js:
59217         * inspector/front-end/SettingsScreen.js:
59218         (WebInspector.GenericSettingsTab):
59219         * inspector/front-end/StatusBarButton.js:
59220         (WebInspector.StatusBarButton):
59221         * inspector/front-end/Toolbar.js:
59222         (WebInspector.Toolbar):
59223         (WebInspector.Toolbar.prototype.setCompactMode):
59224         (WebInspector.Toolbar.prototype._toolbarDragStart):
59225         (WebInspector.Toolbar.prototype._toolbarDrag):
59226         * inspector/front-end/WebKit.qrc:
59227         * inspector/front-end/externs.js:
59228         (WebInspector.toggleSearchingForNode):
59229         * inspector/front-end/inspector.css:
59230         (body.undocked.platform-mac-snowleopard #toolbar):
59231         (body.undocked.platform-mac-snowleopard #toolbar-dropdown):
59232         * inspector/front-end/inspector.html:
59233         * inspector/front-end/inspector.js:
59234         (WebInspector._createGlobalStatusBarItems):
59235         (windowLoaded):
59236         (WebInspector.setDockingUnavailable):
59237         * inspector/front-end/inspectorCommon.css:
59238         (body.dock-to-right:not(.undocked)):
59239         (body.dock-to-right.inactive:not(.undocked)):
59240
59241 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59242
59243         Web Inspector: UISourceCode commitWorkingCopy should not fail when original script had syntax error.
59244         https://bugs.webkit.org/show_bug.cgi?id=97272
59245
59246         Reviewed by Pavel Feldman.
59247
59248         This patch is based on patch by John J. Barton.
59249
59250         * inspector/front-end/JavaScriptSource.js:
59251         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): added rawLocation null check.
59252
59253 2012-10-03  Alexander Pavlov  <apavlov@chromium.org>
59254
59255         Web Inspector: After "Edit as HTML", any click outside box should stop editing
59256         https://bugs.webkit.org/show_bug.cgi?id=98258
59257
59258         Reviewed by Vsevolod Vlasov.
59259
59260         Make the DOM tree OL span the entire height of its container in the Elements panel to catch mouse events.
59261
59262         * inspector/front-end/elementsPanel.css:
59263         (#elements-content > ol):
59264
59265 2012-10-03  Dongwoo Joshua Im  <dw.im@samsung.com>
59266
59267         [EFL] Skeleton code of File system API.
59268         https://bugs.webkit.org/show_bug.cgi?id=91187
59269
59270         Reviewed by Gyuyoung Kim.
59271
59272         Add skeleton code of File System API on EFL port.
59273         Implementation patches will be created later.
59274
59275         No new tests because this is just skeleton code.
59276
59277         * CMakeLists.txt: Add new files which created by other patches in Modules/filesystem/ directory.
59278         * PlatformEfl.cmake: Add AsyncFileSystemEfl.cpp.
59279         * platform/AsyncFileSystem.cpp:
59280         (WebCore):
59281         * platform/efl/AsyncFileSystemEfl.cpp: Added.
59282         * platform/efl/AsyncFileSystemEfl.h: Added.
59283
59284 2012-10-03  Andreas Kling  <kling@webkit.org>
59285
59286         Shrink ElementRareData by moving bool flags to NodeRareData.
59287         <http://webkit.org/b/98225>
59288
59289         Reviewed by Antti Koivisto.
59290
59291         Move all bool flags from ElementRareData to the bitfield in its base class NodeRareData.
59292         This shrinks ElementRareData by 8 bytes (on 64-bit) and saves a whopping 58kB on Membuster3.
59293         Also removed some double raredata hash lookups.
59294
59295         * dom/Element.cpp:
59296         (WebCore::Element::detach):
59297         (WebCore::Element::recalcStyle):
59298         (WebCore::Element::ensureShadow):
59299         (WebCore::Element::setStyleAffectedByEmpty):
59300         (WebCore::Element::styleAffectedByEmpty):
59301         (WebCore::Element::setIsInCanvasSubtree):
59302         (WebCore::Element::isInCanvasSubtree):
59303         (WebCore::Element::containsFullScreenElement):
59304         (WebCore::Element::setContainsFullScreenElement):
59305         * dom/ElementRareData.h:
59306         (ElementRareData):
59307         (WebCore::ElementRareData::ElementRareData):
59308         * dom/NodeRareData.h:
59309         (WebCore::NodeRareData::styleAffectedByEmpty):
59310         (WebCore::NodeRareData::setStyleAffectedByEmpty):
59311         (WebCore::NodeRareData::isInCanvasSubtree):
59312         (WebCore::NodeRareData::setIsInCanvasSubtree):
59313         (NodeRareData):
59314         (WebCore::NodeRareData::containsFullScreenElement):
59315         (WebCore::NodeRareData::setContainsFullScreenElement):
59316
59317 2012-10-03  Jussi Kukkonen  <jussi.kukkonen@intel.com>
59318
59319         getComputedStyle perspective-origin is based on the wrong bounding box
59320         https://bugs.webkit.org/show_bug.cgi?id=98027
59321
59322         Reviewed by Simon Fraser.
59323
59324         perspective-origin for ComputedStyleDeclaration is currently calculated using the
59325         wrong bounding box (sizingBox() which ends up as the contentbox).
59326
59327         Start using borderbox for ComputedStyleDeclaration perspective-origin, similar to
59328         what transform-origin already does.
59329
59330         Test: fast/css/getComputedStyle/getComputedStyle-origin-percentage.html
59331
59332         * css/CSSComputedStyleDeclaration.cpp:
59333         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
59334
59335 2012-10-03  Patrick Gansterer  <paroga@webkit.org>
59336
59337         Build fix for WinCE after r130160.
59338
59339         * platform/graphics/FontFastPath.cpp:
59340         (WebCore::Font::glyphDataAndPageForCharacter):
59341
59342 2012-10-03  Tommy Widenflycht  <tommyw@google.com>
59343
59344         MediaStream API: RTCPeerConnection should send down its handler via the FrameLoaderClient directly after creation.
59345         https://bugs.webkit.org/show_bug.cgi?id=98149
59346
59347         Reviewed by Adam Barth.
59348
59349         The chromium implementation needs to know which Frame created a PeerConnection so
59350         that the right housekeeping can take place correctly.
59351
59352         Not testable in DRT, but have verified the change manually and with our pyautotests.
59353
59354         * Modules/mediastream/RTCPeerConnection.cpp:
59355         (WebCore::RTCPeerConnection::RTCPeerConnection):
59356         * loader/FrameLoaderClient.h:
59357         (WebCore):
59358         (FrameLoaderClient):
59359         (WebCore::FrameLoaderClient::dispatchWillStartUsingPeerConnectionHandler):
59360         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
59361         (WebCore::RTCPeerConnectionHandlerChromium::toWebRTCPeerConnectionHandler):
59362         (WebCore):
59363         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
59364         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
59365         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
59366         (RTCPeerConnectionHandlerChromium):
59367
59368 2012-10-03  Eugene Klyuchnikov  <eustas.bug@gmail.com>
59369
59370         Web Inspector: Profiles: taking heap snapshot causes error message in console.
59371         https://bugs.webkit.org/show_bug.cgi?id=97890
59372
59373         Reviewed by Yury Semikhatsky.
59374
59375         Actual problem is that proxy loader is closed twice.
59376
59377         "_snapshotReceived" should never try to close receiver,
59378         because it is a callback fired by close.
59379
59380         Also minor glitches fixed:
59381          - taking snapshot shows "Loading..." status first,
59382         and then "Saving xxx%";
59383          - after all chunks are sent "Parsing" status is set and
59384         then is replaced with "Saving 100%";
59385          - removed dead code in proxy;
59386          - proxy was ignoring callback parameter;
59387          - "Loading %d\%" is not localized.
59388
59389         * English.lproj/localizedStrings.js: Added missing "Loading %d%" string.
59390         * inspector/front-end/HeapSnapshotProxy.js: Removed dead code.
59391         (WebInspector.HeapSnapshotLoaderProxy):
59392         (WebInspector.HeapSnapshotLoaderProxy.prototype.write): Make this method
59393         interface-conformant.
59394         * inspector/front-end/HeapSnapshotView.js:
59395         (WebInspector.HeapProfileHeader): Fixed update-status and
59396         finish-transfer logic.
59397
59398 2012-10-03  Jochen Eisinger  <jochen@chromium.org>
59399
59400         Make sure that user gestures can't be consumed twice
59401         https://bugs.webkit.org/show_bug.cgi?id=97483
59402
59403         Reviewed by Adam Barth.
59404
59405         Instead of a simple counter, use a ref counted token to track how many
59406         user gestures happened and where consumed. When creating a timer that
59407         is supposed to forward the user gesture, take a reference to this token
59408         and reinstantiate the UserGestureIndicator with that token when the
59409         timer is triggered.
59410
59411         Tests: platform/chromium/fast/events/popup-forwarded-gesture-blocked.html
59412                platform/chromium/fast/events/popup-forwarded-gesture.html
59413
59414         * dom/UserGestureIndicator.cpp:
59415         (WebCore):
59416         (WebCore::UserGestureIndicator::UserGestureIndicator):
59417         (WebCore::UserGestureIndicator::~UserGestureIndicator):
59418         (WebCore::UserGestureIndicator::processingUserGesture):
59419         (WebCore::UserGestureIndicator::consumeUserGesture):
59420         (WebCore::UserGestureIndicator::currentToken):
59421         * dom/UserGestureIndicator.h:
59422         (Token):
59423         (WebCore::UserGestureIndicator::Token::~Token):
59424         (UserGestureIndicator):
59425         * page/DOMTimer.cpp:
59426         (WebCore::DOMTimer::DOMTimer):
59427         (WebCore::DOMTimer::fired):
59428         * page/DOMTimer.h:
59429         (DOMTimer):
59430
59431 2012-10-03  Dominic Mazzoni  <dmazzoni@google.com>
59432
59433         AX: Heap-use-after-free when deleting a ContainerNode with an AX object
59434         https://bugs.webkit.org/show_bug.cgi?id=98073
59435
59436         Reviewed by Hajime Morita.
59437
59438         Calls axObjectCache()->remove(this) in ~ContainerNode so that the AX tree
59439         doesn't try to access the container node while walking up the parent chain
59440         from one of the container node's children.
59441
59442         Test: accessibility/container-node-delete-causes-crash.html
59443
59444         * dom/ContainerNode.cpp:
59445         (WebCore::ContainerNode::~ContainerNode):
59446         * dom/Node.cpp:
59447         (WebCore::Node::~Node):
59448         * dom/Node.h:
59449         (WebCore::Node::document):
59450         (WebCore::Node::documentInternal):
59451
59452 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59453
59454         Web Inspector: SourceURL should be taken from debugger agent when possible.
59455         https://bugs.webkit.org/show_bug.cgi?id=98239
59456
59457         Reviewed by Yury Semikhatsky.
59458
59459         Removed a check that sourceURL coming from js engine is the same as the one parsed by debugger agent.
59460         Alwys use the one from debugger agent now.
59461
59462         * inspector/InspectorDebuggerAgent.cpp:
59463         (WebCore::InspectorDebuggerAgent::didParseSource):
59464
59465 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59466
59467         Unreviewed. Touch FrameView.cpp file for fixing mac bot compilation.
59468
59469         * page/FrameView.cpp:
59470         (WebCore):
59471
59472 2012-10-02  Ilya Tikhonovsky  <loislo@chromium.org>
59473
59474         Web Inspector: "Load profile..." context menu item has to be shown only for left column with the list of profiles.
59475         https://bugs.webkit.org/show_bug.cgi?id=98163
59476
59477         Reviewed by Yury Semikhatsky.
59478
59479         The text was changed to "Load Heap Snapshot..."
59480         Also I changed "Save profile..." to "Save Heap Snapshot..." because other profiles don't support Save/Load operations yet.
59481         The Load context menu item will appear only when the user clicked in sidebar the tree empty space or a profile.
59482
59483         * English.lproj/localizedStrings.js:
59484         * inspector/front-end/ProfilesPanel.js:
59485         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
59486         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
59487
59488 2012-10-03  Harald Alvestrand  <hta@google.com>
59489
59490         Add data passing to the GetStats interface of RTCPeerConnection
59491         https://bugs.webkit.org/show_bug.cgi?id=98003
59492
59493         Reviewed by Adam Barth.
59494
59495         Added an RTCStatsResponseBase interface to platform, and let the
59496         RTCStatsRequestImpl class produce an implementation of it that's returned
59497         to WebCore.
59498
59499         Tested by extension of the RTCPeerConnection-stats.html test.
59500
59501         * Modules/mediastream/RTCStatsElement.cpp:
59502         (WebCore::RTCStatsElement::addStatistic):
59503         (WebCore):
59504         * Modules/mediastream/RTCStatsElement.h:
59505         (RTCStatsElement):
59506         * Modules/mediastream/RTCStatsReport.cpp:
59507         (WebCore):
59508         (WebCore::RTCStatsReport::addElement):
59509         (WebCore::RTCStatsReport::addStatistic):
59510         * Modules/mediastream/RTCStatsReport.h:
59511         (RTCStatsReport):
59512         * Modules/mediastream/RTCStatsRequestImpl.cpp:
59513         (WebCore::RTCStatsRequestImpl::createResponse):
59514         (WebCore):
59515         (WebCore::RTCStatsRequestImpl::requestSucceeded):
59516         * Modules/mediastream/RTCStatsRequestImpl.h:
59517         (RTCStatsRequestImpl):
59518         * Modules/mediastream/RTCStatsResponse.cpp:
59519         (WebCore::RTCStatsResponse::create):
59520         (WebCore::RTCStatsResponse::addReport):
59521         (WebCore):
59522         (WebCore::RTCStatsResponse::addElement):
59523         (WebCore::RTCStatsResponse::addStatistic):
59524         * Modules/mediastream/RTCStatsResponse.h:
59525         (RTCStatsResponse):
59526         * WebCore.gypi:
59527         * platform/chromium/support/WebRTCStatsRequest.cpp:
59528         (WebKit::WebRTCStatsRequest::response):
59529         (WebKit):
59530         (WebKit::WebRTCStatsRequest::requestSucceeded):
59531         * platform/chromium/support/WebRTCStatsResponse.cpp: Added.
59532         (WebKit):
59533         (WebKit::WebRTCStatsResponse::WebRTCStatsResponse):
59534         (WebKit::WebRTCStatsResponse::assign):
59535         (WebKit::WebRTCStatsResponse::reset):
59536         (WebKit::WebRTCStatsResponse::operator WTF::PassRefPtr<WebCore::RTCStatsResponseBase>):
59537         (WebKit::WebRTCStatsResponse::addReport):
59538         (WebKit::WebRTCStatsResponse::addElement):
59539         (WebKit::WebRTCStatsResponse::addStatistic):
59540         * platform/mediastream/RTCStatsRequest.h:
59541         (WebCore):
59542         (RTCStatsRequest):
59543         * platform/mediastream/RTCStatsResponseBase.h: Added.
59544         (WebCore):
59545         (RTCStatsResponseBase):
59546         (WebCore::RTCStatsResponseBase::~RTCStatsResponseBase):
59547
59548 2012-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
59549
59550         [GTK] Add API to get the web view that initiated a custom URI request to WebKit2 GTK+
59551         https://bugs.webkit.org/show_bug.cgi?id=97895
59552
59553         Reviewed by Martin Robinson.
59554
59555         * platform/network/NetworkingContext.h:
59556         (NetworkingContext): Add initiatingPageID().
59557         * platform/network/ResourceHandle.h:
59558         (ResourceHandle): Add static method
59559         getSoupRequestInitiaingPageID().
59560         * platform/network/ResourceHandleInternal.h:
59561         (ResourceHandleInternal): Add initiatingPageID().
59562         * platform/network/soup/ResourceHandleSoup.cpp:
59563         (WebCore::ResourceHandleInternal::initiatingPageID): Get the
59564         initiating page ID of the resource handle networking context.
59565         (WebCore::setSoupRequestInitiaingPageID): Helper function to
59566         attach a page ID to a SoupRequest.
59567         (WebCore::startHTTPRequest): Call setSoupRequestInitiaingPageID()
59568         to attch the initiating page ID to the SoupRequest.
59569         (WebCore::startNonHTTPRequest): Ditto.
59570         (WebCore::ResourceHandle::getSoupRequestInitiaingPageID): Static
59571         method to get the page ID attached to a SoupRequest.
59572
59573 2012-10-03  Kent Tamura  <tkent@chromium.org>
59574
59575         Introduce DateComponents::minimumYear and maximumYear
59576         https://bugs.webkit.org/show_bug.cgi?id=98230
59577
59578         Reviewed by Kentaro Hara.
59579
59580         Share same difinitions in DateComponents.cpp and DateTimeFieldElements.cpp.
59581
59582         No new tests. This doesn't change any bahevior.
59583
59584         * platform/DateComponents.h:
59585         (WebCore::DateComponents::minimumYear): Moved from DateComponents.cpp.
59586         (WebCore::DateComponents::maximumYear): ditto.
59587         * platform/DateComponents.cpp:
59588         (WebCore): Move out static minimumYear and maximumYear.
59589         (WebCore::DateComponents::parseYear): Use DateCompnents::minimumYear and/or maximumYear.
59590         (WebCore::withinHTMLDateLimits): ditto.
59591         (WebCore::DateComponents::parseWeek): ditto.
59592         (WebCore::DateComponents::setMonthsSinceEpoch): ditto.
59593         (WebCore::DateComponents::setMillisecondsSinceEpochForWeek): ditto.
59594
59595         * html/shadow/DateTimeFieldElements.cpp:
59596         (WebCore): Remove minimumYear and maximumYear.
59597         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
59598         Use DateComponents::minimumYear and maximumYear.
59599
59600
59601 2012-10-02  Arko Saha  <arko@motorola.com>
59602
59603         Microdata: itemprop names must not override builtin properties.
59604         https://bugs.webkit.org/show_bug.cgi?id=98025
59605
59606         Reviewed by Kentaro Hara.
59607
59608         We should look in the prototype for functions before assuming it as
59609         an item's name. Return false if the prototype of the object has a
59610         property (function) with propertyName.
59611         Named properties Spec: http://dev.w3.org/2006/webapi/WebIDL/#idl-named-properties
59612         Named property visibility algorithm:
59613         http://dev.w3.org/2006/webapi/WebIDL/#indexed-and-named-properties
59614         ...
59615         7. If the result of calling the [[HasProperty]] internal method on
59616         prototype with property name P is true, then return false.
59617         ...
59618         Also [OverrideBuiltins] is not declared for any of the properties,
59619         hence no overriding is allowed in this case.
59620
59621         Test: fast/dom/MicroData/itemprop-names-override-builtin-properties.html
59622
59623         * bindings/scripts/CodeGeneratorJS.pm:
59624         (GenerateGetOwnPropertySlotBody):
59625         (GenerateGetOwnPropertyDescriptorBody):
59626
59627 2012-10-02  Keishi Hattori  <keishi@webkit.org>
59628
59629         REGRESSION (r129738): Suggestion picker label is placed in the wrong location
59630         https://bugs.webkit.org/show_bug.cgi?id=98094
59631
59632         Reviewed by Kent Tamura.
59633
59634         We needed to reverse padding-left/right when rtl.
59635
59636         No new tests. Covered by date-suggestion-picker-appearance.html.
59637
59638         * Resources/pagepopups/suggestionPicker.css:
59639         (.suggestion-list-entry .label):
59640         (.rtl .suggestion-list-entry .label):
59641
59642 2012-10-02  Yury Semikhatsky  <yurys@chromium.org>
59643
59644         Provide memory instrumentation for HashCountedSet
59645         https://bugs.webkit.org/show_bug.cgi?id=98138
59646
59647         Reviewed by Pavel Feldman.
59648
59649         Replaced addHashCountedSet calls with addMember that now automatically
59650         detects HashCountedSet and calls appropriate routine.
59651
59652         * css/CSSImageGeneratorValue.cpp:
59653         (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
59654         * loader/cache/CachedResource.cpp:
59655
59656 2012-10-02  Nandor Huszka  <hnandor@inf.u-szeged.hu>
59657
59658         Buildfix after r130235.
59659
59660         Reviewed by Csaba Osztrogonác.
59661
59662         systemAllowsMultisamplingOnATICards was deleted from GraphicsContext3D,
59663         but function body remained in GraphicsContext3DOpenGLES. Delete method body.
59664
59665         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
59666
59667 2012-10-02  Kent Tamura  <tkent@chromium.org>
59668
59669         Fix assertion failures on Chromium Debug bots for datetime/datetime-local input types.
59670
59671         * html/shadow/DateTimeFieldElements.cpp:
59672         If a placeholder stirng is empty, use a sequence of "-".
59673         (WebCore::DateTimeDayFieldElement::create):
59674         (WebCore::DateTimeMonthFieldElement::create):
59675         (WebCore::DateTimeYearFieldElement::create):
59676
59677 2012-10-02  MORITA Hajime  <morrita@google.com>
59678
59679         https://bugs.webkit.org/show_bug.cgi?id=98134
59680         [Refactoring] StyleResolver::matchScopedAuthorRules() could be simpler.
59681
59682         Reviewed by Dimitri Glazkov.
59683
59684         matchScopedAuthorRules() did have some optimization which only
59685         makes sense for heavily nested shadow tree. However, we don't see
59686         such type of usage of Shadow DOM and this looks premature
59687         optimization. This change unified its triple for loop into one,
59688         which makes the code much simpler.
59689
59690         No new tests. Covered by existing tests.
59691
59692         * css/StyleResolver.cpp:
59693         (WebCore::StyleResolver::matchScopedAuthorRules):
59694
59695 2012-10-02  Kent Tamura  <tkent@chromium.org>
59696
59697         Introduce Localizer::dateTimeFormatWithSecond and dateTimeFormatWithoutSecond
59698         https://bugs.webkit.org/show_bug.cgi?id=98229
59699
59700         Reviewed by Kentaro Hara.
59701
59702         Unify identical code in DateTimeInputType and DateTimeLocalInputType as
59703         Localizer member functions.
59704         They still have some common code. We'll address it later.
59705
59706         No new tests. This doesn't change any behavior.
59707
59708         * platform/text/Localizer.h:
59709         (Localizer): Add dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59710         * platform/text/Localizer.cpp:
59711         (WebCore::Localizer::dateTimeFormatWithSecond):
59712         Implemented. Just concatenating dateFormat, a space, and timeFormat.
59713         (WebCore::Localizer::dateTimeFormatWithoutSecond):
59714         Implemented. Just concatenating dateFormat, a space, and shortTimeFormat.
59715
59716         * html/DateTimeInputType.cpp:
59717         (WebCore::DateTimeInputType::setupLayoutParameters):
59718         Use dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59719         * html/DateTimeLocalInputType.cpp:
59720         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
59721
59722 2012-10-03  Kent Tamura  <tkent@chromium.org>
59723
59724         Refactoring: DateTimeEditBuilder had better hold LayoutParameters
59725         https://bugs.webkit.org/show_bug.cgi?id=98228
59726
59727         Reviewed by Kentaro Hara.
59728
59729         Stop copying multiple members of LayoutParameters in DateTimeEditBuilder
59730         constructor. This change improves code size and runtime cost.
59731
59732         No new tests. This doesn't change user-visible behavior.
59733
59734         * html/shadow/DateTimeEditElement.cpp:
59735         (DateTimeEditBuilder): Add a comment about lifetime of objects.
59736         (WebCore::DateTimeEditBuilder::stepRange):
59737         Added. A helper to access m_parameters.stepRange.
59738         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
59739         Remove m_stepRange, m_localizer, m_placeholderFor* members.
59740         Add m_parameters.
59741         (WebCore::DateTimeEditBuilder::needMillisecondField):
59742         Use stepRange() instead of m_stepRange.
59743         (WebCore::DateTimeEditBuilder::visitField):
59744         Use m_parameters.placeholderFor*.
59745         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
59746         Use stepRange() instead of m_stepRange.
59747         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly): ditto.
59748         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly): ditto.
59749
59750 2012-10-02  Kent Tamura  <tkent@chromium.org>
59751
59752         Implement LocaleICU::dateFormat
59753         https://bugs.webkit.org/show_bug.cgi?id=98118
59754
59755         Reviewed by Hajime Morita.
59756
59757         http://trac.webkit.org/changeset/130127 introduced
59758         Localizer::dateFormat, and this is its implementation for LocaleICU
59759         classs. The code is going to be used when
59760         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59761
59762         No new tests. The function is not used yet.
59763
59764         * platform/text/LocaleICU.cpp:
59765         (WebCore::LocaleICU::dateFormat):
59766         Implemented. Note that m_shortDateFormat is a UDateFormat object, which
59767         knows various format information.
59768         * platform/text/LocaleICU.h:
59769         (LocaleICU): Add m_dateFormat to cache the format string.
59770
59771 2012-10-02  Kent Tamura  <tkent@chromium.org>
59772
59773         [Mac][Chromium-Mac] Implement LocaleMac::dateFormat
59774         https://bugs.webkit.org/show_bug.cgi?id=98116
59775
59776         Reviewed by Hajime Morita.
59777
59778         http://trac.webkit.org/changeset/130127 introduced
59779         Localizer::dateFormat, and this is its implementation for LocaleICU
59780         classs. The code is going to be used when
59781         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59782
59783         No new tests. The function is not used yet.
59784
59785         * platform/text/mac/LocaleMac.h:
59786         (LocaleMac): Declare m_dateFormat.
59787         * platform/text/mac/LocaleMac.mm:
59788         (WebCore::LocaleMac::dateFormat): Implemented.
59789
59790 2012-10-02  Kent Tamura  <tkent@chromium.org>
59791
59792         [Chromium-Win] Implement LocaleWin::dateFormat
59793         https://bugs.webkit.org/show_bug.cgi?id=98117
59794
59795         Reviewed by Kentaro Hara.
59796
59797         http://trac.webkit.org/changeset/130127 introduced
59798         Localizer::dateFormat, and this is its implementation for LocaleICU
59799         classs. The code is going to be used when
59800         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59801
59802         Tests: Added a new test to WebKit/chromium/tests/LocaleWinTest.cpp.
59803
59804         * platform/text/LocaleWin.cpp:
59805         (WebCore::parseDateFormat):
59806         Fix a continuous apostrophes parsing bug; "abc''''def" produced "abc'''def"
59807         (WebCore::appendAsLDMLLiteral):
59808         A helper function to make a literal string for LDML.
59809         (WebCore::convertWindowsDateFormatToLDML):
59810         Creates an LDML format from a parsed date format tokens.
59811         (WebCore::LocaleWin::dateFormat):
59812         Implemented. This uses convertWindowsDateFormatToLDML.
59813         (WebCore::LocaleWin::dateFormat):
59814         Added for testing. The source windows format is specified as a function
59815         argument.
59816         * platform/text/LocaleWin.h:
59817         (LocaleWin): Declare m_dateFormat and dateFormat().
59818
59819 2012-10-02  Ian Vollick  <vollick@chromium.org>
59820
59821         [chromium] Fix spelling of isNVIDIA override in Extensions3DChromium
59822         https://bugs.webkit.org/show_bug.cgi?id=98219
59823
59824         Reviewed by Dean Jackson.
59825
59826         The override in Extensions3dChromium should have been spelled isNVIDIA, not isNVidia.
59827
59828         No new tests. No change in functionality.
59829
59830         * platform/graphics/chromium/Extensions3DChromium.h:
59831         (WebCore::Extensions3DChromium::isNVIDIA):
59832
59833 2012-10-02  Anders Carlsson  <andersca@apple.com>
59834
59835         Try to fix the Snow Leopard build.
59836
59837         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
59838
59839 2012-10-02  Joshua Bell  <jsbell@chromium.org>
59840
59841         Add htons/htonl definitions and implementations
59842         https://bugs.webkit.org/show_bug.cgi?id=98054
59843
59844         Reviewed by Darin Adler.
59845
59846         Update users of htons and friends to use new wtf/ByteOrder.h header.
59847
59848         No new tests - just refactoring.
59849
59850         * platform/graphics/WOFFFileFormat.cpp:
59851         * platform/graphics/chromium/VDMXParser.cpp:
59852
59853 == Rolled over to ChangeLog-2012-10-02 ==