Correction of macro naming for Docomo bug 1339
[framework/web/webkit-efl.git] / Source / WebCore / ChangeLog
1 2013-03-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2
3         [EFL] Cancel mark on search field is not displayed
4         https://bugs.webkit.org/show_bug.cgi?id=94880
5
6         Reviewed by Kenneth Rohde Christiansen.
7
8         adjustSearchFieldCancelButtonStyle() doesn't set style width and height for search cancel button.
9         So, the button isn't showing up in search input field. Besides the button size should be scaled based
10         on the font size as chromium, qt, and blackberry ports.
11
12         Tests: fast/forms/search-cancel-button-style-sharing.html
13                fast/forms/search-rtl.html
14         * platform/efl/RenderThemeEfl.cpp:
15         (WebCore):
16         (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
17
18 2012-08-30  Kangil Han  <kangil.han@samsung.com>
19
20         Fix compile warning when enable tiled backing store
21         https://bugs.webkit.org/show_bug.cgi?id=95422
22
23         Reviewed by Kentaro Hara.
24
25         Fixed compile warning messages when enabled tiled backing store.
26         In case of TiledBackingStore, it was first thought about static_cast<unsigned>.
27         However, if minus value is assigned to the comparison, it would be critical.
28         So, it was modified as using int value in tiled coordinate calculation.
29
30         * page/Frame.cpp:
31         (WebCore::Frame::tiledBackingStorePaintEnd): comparison between signed and unsigned integer expressions [-Wsign-compare]
32         * platform/graphics/TiledBackingStore.cpp:
33         (WebCore::TiledBackingStore::invalidate): comparison between signed and unsigned integer expressions [-Wsign-compare]
34         (WebCore::TiledBackingStore::paint): comparison between signed and unsigned integer expressions [-Wsign-compare]
35         (WebCore::TiledBackingStore::coverageRatio): comparison between signed and unsigned integer expressions [-Wsign-compare]
36         (WebCore::TiledBackingStore::createTiles): comparison between signed and unsigned integer expressions [-Wsign-compare]
37         * platform/graphics/cairo/GLContext.cpp:
38         (WebCore::GLContext::createOffscreenContext): no return statement in function returning non-void [-Wreturn-type]
39
40 2012-09-28  Alberto Garcia  <agarcia@igalia.com>
41
42         TextureMapperGL: fix -Wsign-compare compilation warning.
43         https://bugs.webkit.org/show_bug.cgi?id=97928
44
45         Reviewed by Martin Robinson.
46
47         Use size_t rather than int to iterate over FilterOperations.
48
49         * platform/graphics/texmap/TextureMapperGL.cpp:
50         (WebCore::BitmapTextureGL::applyFilters):
51
52 2013-03-11  Kent Tamura  <tkent@chromium.org>
53
54         Inappropriate validation message for required number/date input elements
55         https://bugs.webkit.org/show_bug.cgi?id=111982
56
57         Reviewed by Kentaro Hara.
58
59         For validation message, badInput messages should take precedence
60         over valueMissing messages because users already filled out the
61         field with a bad value.
62
63         Tests: Update fast/forms/validationMessage.html
64
65         * html/InputType.cpp:
66         (WebCore::InputType::validationMessage):
67         Check badInput first.
68
69 2013-03-11  Kent Tamura  <tkent@chromium.org>
70
71         Refactoring: Move the content of HTMLInputElement::subtreeHasChanged to TextFieldInputType
72         https://bugs.webkit.org/show_bug.cgi?id=103195
73
74         Reviewed by Kentaro Hara.
75
76         HTMLInputElement::subtreeHasChanged is called only if the input is
77         a text field. The code should be moved to TextFieldInputType.
78
79         No new tests. This should not change any behavior.
80
81         * html/HTMLInputElement.cpp:
82         - Remove unnecessary NumberInputType.h inclusion.
83         - Remove convertFromVisibleValue. It was used only by subtreeHasChanged.
84         (WebCore::HTMLInputElement::subtreeHasChanged):
85         Move the code to TextFieldInputType::subtreeHasChanged except
86         calculateAndAdjustDirectionality, which is a protected member of
87         HTMLElement.
88         * html/HTMLInputElement.h:
89         (HTMLInputElement): Remove convertFromVisibleValue.
90
91         * html/InputType.cpp:
92         Move convertFromVisibleValue to TextFieldInputType.
93         (WebCore::InputType::subtreeHasChanged):
94         Add ASSERT_NOT_REACHED.
95         * html/InputType.h:
96         (InputType): Remove convertFromVisibleValue.
97
98         * html/TextFieldInputType.cpp:
99         (WebCore::TextFieldInputType::convertFromVisibleValue):
100         Moved from InputType.
101         (WebCore::TextFieldInputType::subtreeHasChanged):
102         Moved from HTMLInputElement. A latter part is moved to
103         didSetValueByUserEdit to be hooked by SearchInputType.
104         (WebCore::TextFieldInputType::didSetValueByUserEdit):
105         Moved from HTMLInputElement::subtreeHasChanged, and clean up the code.
106         * html/TextFieldInputType.h:
107         (TextFieldInputType):
108         - Move convertFromVisibleValue from InputType.
109         - Add didSetValueByUserEdit and subtreeHasChanged.
110
111         * html/SearchInputType.cpp:
112         (WebCore::SearchInputType::didSetValueByUserEdit):
113         Renamed from subtreeHasChanged, and calls TextFieldInputType::didSetValueByUserEdit.
114         * html/SearchInputType.h:
115         (SearchInputType): Rename subtreeHasChanged to didSetValueByUserEdit.
116
117 2012-11-22  Kentaro Hara  <haraken@chromium.org>
118
119         [V8] Move WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer
120         https://bugs.webkit.org/show_bug.cgi?id=103061
121
122         Reviewed by Adam Barth.
123
124         This is an incremental step to remove WorkerExecutionContextProxy.
125         This patch moves WorkerExecutionContextProxy::initializeIfNeeded() to V8Initializer.
126         This patch also renames methods so that the names become consistent
127         between the main thread and workers.
128
129         No tests. No change in behavior.
130
131         * bindings/v8/V8Initializer.cpp:
132         (WebCore::reportFatalErrorInMainThread):
133         (WebCore::messageHandlerInMainThread):
134         (WebCore::failedAccessCheckCallbackInMainThread):
135         (WebCore::V8Initializer::initializeMainThreadIfNeeded):
136         (WebCore::reportFatalErrorInWorker):
137         (WebCore):
138         (WebCore::messageHandlerInWorker):
139         (WebCore::V8Initializer::initializeWorkerIfNeeded):
140         * bindings/v8/V8Initializer.h:
141         (V8Initializer):
142         * bindings/v8/WorkerContextExecutionProxy.cpp:
143         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
144         * bindings/v8/WorkerContextExecutionProxy.h:
145         (WorkerContextExecutionProxy):
146
147 2012-11-25  Christophe Dumez  <christophe.dumez@intel.com>
148
149         [EFL] Refactor RenderThemeEfl::ThemePartCacheEntry::reuse()
150         https://bugs.webkit.org/show_bug.cgi?id=103189
151
152         Reviewed by Kenneth Rohde Christiansen.
153
154         Check if the entry size and type changed in
155         RenderThemeEfl::ThemePartCacheEntry::reuse() to avoid
156         useless processing if one of them did not change.
157
158         Remove useless call to cairo_surface_finish() since
159         we are using a smart pointer for the surface.
160
161         Resize the edge object *after* loading its content
162         from the theme file as it seems more logical this
163         way.
164
165         No new tests, no behavior change for layout tests.
166
167         * platform/efl/RenderThemeEfl.cpp:
168         (WebCore::RenderThemeEfl::ThemePartCacheEntry::reuse):
169         * platform/efl/RenderThemeEfl.h:
170         (ThemePartCacheEntry):
171
172 2012-11-25  Ryosuke Niwa  <rniwa@webkit.org>
173
174         Rename DynamicNodeList to LiveNodeList
175         https://bugs.webkit.org/show_bug.cgi?id=103197
176
177         Reviewed by Ojan Vafai.
178
179         Rename DynamicNodeList to LiveNodeList to match the terminology used in DOM4 working draft:
180         http://www.w3.org/TR/2012/WD-dom-20120405/#concept-collection-live
181         "A collection (either NodeList or HTMLCollection) can be either live or static".
182
183         Also rename DynamicNodeListCacheBase to LiveNodeListBase, and merge DynamicSubtreeNodeList
184         into LiveNodeList (old DynamicNodeList) now that the only difference between those two classes
185         is the former calling registerNodeListCache and unregisterNodeListCache on Document.
186
187         This patch completes the series of simplification of NodeList/HTMLCollection classes.
188
189         * CMakeLists.txt:
190         * GNUmakefile.list.am:
191         * Target.pri:
192         * WebCore.gypi:
193         * WebCore.xcodeproj/project.pbxproj:
194         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
195         (WebCore::getNamedItems):
196         * bindings/js/JSNodeListCustom.cpp:
197         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
198         * bindings/v8/custom/V8NodeListCustom.cpp:
199         (WebCore::V8NodeList::opaqueRootForGC):
200         * dom/ChildNodeList.cpp:
201         (WebCore::ChildNodeList::ChildNodeList):
202         (WebCore::ChildNodeList::nodeMatches):
203         * dom/ChildNodeList.h:
204         * dom/ClassNodeList.cpp:
205         (WebCore::ClassNodeList::ClassNodeList):
206         * dom/ClassNodeList.h:
207         * dom/DOMAllInOne.cpp:
208         * dom/Document.cpp:
209         (WebCore::Document::registerNodeListCache):
210         (WebCore::Document::unregisterNodeListCache):
211         (WebCore):
212         * dom/Document.h:
213         (WebCore):
214         (Document):
215         * dom/DynamicNodeList.cpp: Removed.
216         * dom/DynamicNodeList.h: Removed.
217         * dom/LiveNodeList.cpp: Copied from Source/WebCore/dom/DynamicNodeList.cpp.
218         (WebCore::LiveNodeListBase::rootNode):
219         (WebCore::LiveNodeListBase::invalidateCache):
220         (WebCore::LiveNodeListBase::invalidateIdNameCacheMaps):
221         (WebCore::LiveNodeListBase::reportMemoryUsage):
222         (WebCore::LiveNodeList::namedItem):
223         * dom/LiveNodeList.h: Copied from Source/WebCore/dom/DynamicNodeList.h.
224         (WebCore::LiveNodeListBase::LiveNodeListBase):
225         (WebCore::LiveNodeListBase::shouldInvalidateTypeOnAttributeChange):
226         (WebCore::LiveNodeList::LiveNodeList):
227         (WebCore::LiveNodeList::~LiveNodeList):
228         (LiveNodeList):
229         * dom/MicroDataItemList.cpp:
230         (WebCore::MicroDataItemList::MicroDataItemList):
231         * dom/MicroDataItemList.h:
232         * dom/NameNodeList.cpp:
233         (WebCore::NameNodeList::NameNodeList):
234         * dom/NameNodeList.h:
235         * dom/Node.cpp:
236         (WebCore::shouldInvalidateNodeListCachesForAttr):
237         (WebCore::Document::invalidateNodeListCaches):
238         * dom/Node.h:
239         (WebCore):
240         * dom/NodeList.h:
241         (WebCore::NodeList::isLiveNodeList):
242         * dom/NodeRareData.h:
243         (NodeListsNodeData):
244         (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
245         (WebCore::NodeListsNodeData::removeCacheWithName):
246         (WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
247         (WebCore::NodeListsNodeData::adoptTreeScope):
248         * dom/PropertyNodeList.cpp:
249         (WebCore::PropertyNodeList::PropertyNodeList):
250         * dom/PropertyNodeList.h:
251         * dom/TagNodeList.cpp:
252         (WebCore::TagNodeList::TagNodeList):
253         * dom/TagNodeList.h:
254         * html/HTMLCollection.cpp:
255         (WebCore::HTMLCollection::HTMLCollection):
256         (WebCore::LiveNodeListBase::iterateForNextNode):
257         (WebCore::LiveNodeListBase::itemBeforeOrAfter):
258         (WebCore::LiveNodeListBase::itemBefore):
259         (WebCore::LiveNodeListBase::itemAfter):
260         (WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
261         (WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
262         (WebCore::LiveNodeListBase::setItemCache):
263         (WebCore::LiveNodeListBase::length):
264         (WebCore::LiveNodeListBase::item):
265         (WebCore::LiveNodeListBase::itemBeforeOrAfterCachedItem):
266         * html/HTMLCollection.h:
267         * html/LabelsNodeList.cpp:
268         (WebCore::LabelsNodeList::LabelsNodeList):
269         * html/LabelsNodeList.h:
270         * html/RadioNodeList.cpp:
271         (WebCore::RadioNodeList::RadioNodeList):
272         * html/RadioNodeList.h:
273
274 2012-10-08  Robert Hogan  <robert@webkit.org>
275
276         Changing position:relative to position:static results in mis-positioned div
277         https://bugs.webkit.org/show_bug.cgi?id=26397
278
279         Reviewed by Ojan Vafai.
280
281         When a block changes position from relative to static it is no longer the containing block for any
282         positioned objects it may have. If any of those positioned objects actually have a position specified
283         they are going to need a layout as their new containing block will likely have a different location they
284         need to offset from. Positioned objects without a specified position always get a layout anyway 
285         in layoutPositionedObjects() so no need to worry about them in this situation. 
286
287         Test: fast/block/abspos-child-container-changes-from-relative-to-static-expected.html
288
289         * rendering/RenderBlock.cpp:
290         (WebCore::RenderBlock::styleWillChange):
291         (WebCore::RenderBlock::layoutPositionedObjects):
292         (WebCore::RenderBlock::removePositionedObjects):
293         * rendering/RenderBlock.h:
294         (RenderBlock):
295
296 2012-11-25  Kent Tamura  <tkent@chromium.org>
297
298         Correct input[type=number] value sanitization for user-input
299         https://bugs.webkit.org/show_bug.cgi?id=103018
300
301         Reviewed by Kentaro Hara.
302
303         If a number field has non-number string, HTMLInputElement::value is not
304         updated and returns the past valid value. It doesn't match to the value
305         sanitization algorithm defined by the HTML standard [1], and Opera's
306         behavior. We should sanitize non-number strings to "".
307
308         [1] http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#number-state-(type=number)
309         > The value sanitization algorithm is as follows: If the value of the
310         > element is not a valid floating-point number, then set it to the empty
311         > string instead.
312
313         No new tests. Update existing tests;
314         fast/forms/number/number-commit-valid-only.html and
315         fast/forms/number/number-unacceptable-style.html
316
317         * html/HTMLInputElement.cpp:
318         (WebCore::HTMLInputElement::subtreeHasChanged):
319         Remove isAcceptableValue check.
320
321         * html/HTMLInputElement.h:
322         (HTMLInputElement): isAcceptableValue is no longer needed.
323         * html/InputType.cpp: Remove isAcceptableValue.
324         * html/InputType.h: Ditto.
325         * html/NumberInputType.cpp: Ditto.
326         (WebCore::NumberInputType::hasUnacceptableValue):
327         Fold the isAcceptableValue content into this.
328         * html/NumberInputType.h:
329         (NumberInputType): Remove isAcceptableValue.
330
331 2012-12-11  Viatcheslav Ostapenko  <sl.ostapenko@samsung.com>
332
333         Remove conversion to/from float and float division from ImageFrame::setRGBA
334         https://bugs.webkit.org/show_bug.cgi?id=103693
335
336         Reviewed by Brent Fulgham.
337
338         Replace floating point operations used for alpha premultiply with fixed point arithmetic
339         which is basically integer operations. Allows to shave extra couple percent from decoding
340         images with transparency.
341
342         Covered by existing tests.
343
344         * platform/image-decoders/ImageDecoder.h:
345         (ImageFrame):
346         (WebCore::ImageFrame::fixPointUnsignedMultiply):
347         (WebCore::ImageFrame::setRGBA):
348
349 2012-11-30  Jer Noble  <jer.noble@apple.com>
350
351         Unreviewed Windows build fix.
352
353         Add a default: entry to an case statement to fix a build error when compiled in VS2005.
354
355         * html/MediaController.cpp:
356         (MediaController::playbackState):
357
358 2012-11-28  Byungwoo Lee  <bw80.lee@samsung.com>
359
360         [EFL] Use mutex locker in wakeUp() to ensure thread-safety.
361         https://bugs.webkit.org/show_bug.cgi?id=101132
362
363         Reviewed by Gyuyoung Kim.
364
365         Add mutex locker for the ecore pipe to ensure thread-safety of
366         RunLoop::wakeUp().
367
368         RunLoop::wakeUp() can be called by multiple thread. It uses
369         ecore_pipe_write() function but the function is not thread-safe.
370
371         * platform/RunLoop.h:
372         (RunLoop):
373         * platform/efl/RunLoopEfl.cpp:
374         (WebCore::RunLoop::wakeUp):
375
376 2012-11-09  Huang Dongsung  <luxtella@company100.net>
377
378         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
379         https://bugs.webkit.org/show_bug.cgi?id=101656
380
381         Reviewed by Kenneth Rohde Christiansen.
382
383         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
384         smartly, but currently TiledBackingStore expects a contents rect is big enough
385         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
386         is usually wrong expectation.
387
388         We must compute cover and keep rects using the visibleRect, instead of
389         the rect intersecting the visibleRect with m_rect, because TBS can be
390         used as a backing store of GraphicsLayer and the visible rect usually
391         does not intersect with m_rect.
392         In the below case, the intersecting rect is an empty.
393
394          +---------------+
395          |               |
396          |   m_rect      |
397          |       +-------|-----------------------+
398          |       | HERE  |  cover or keep        |
399          +---------------+      rect             |
400                  |         +---------+           |
401                  |         | visible |           |
402                  |         |  rect   |           |
403                  |         +---------+           |
404                  |                               |
405                  |                               |
406                  +-------------------------------+
407
408         We must create or keep the tiles in the HERE region. Currently in the
409         case, we do not create or keep tiles on the HERE region. Moreover, in
410         the case, we early return, which means we don't remove any tiles. It
411         causes to waste heap and video memory.
412
413         This patch changes TiledBackingStore to manage tiles smartly for
414         Coordinated Graphics.
415
416         Changing cache policy is not testable in layout tests.
417
418         * platform/graphics/TiledBackingStore.cpp:
419         (WebCore::TiledBackingStore::visibleRect):
420         (WebCore::TiledBackingStore::visibleAreaIsCovered):
421         (WebCore::TiledBackingStore::createTiles):
422         (WebCore::TiledBackingStore::adjustForContentsRect):
423         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
424         * platform/graphics/TiledBackingStore.h:
425         (TiledBackingStore):
426
427 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
428
429         SQLResultSet.rowsAffected not cleared
430         https://bugs.webkit.org/show_bug.cgi?id=46070
431
432         Reviewed by Kenneth Rohde Christiansen.
433
434         SQLResultSet.rowsAffected is supposed to return the number
435         of rows that were changed by the statement. For "SELECT"
436         statements, it should return 0.
437
438         However, our implementation currently relies on sqlite3_changes()
439         to compute this value. sqlite3_changes() returns the number of
440         direct row changes in the most recent INSERT, UPDATE, or DELETE
441         statement within the same trigger context. Unfortunately, the
442         most recent INSERT, UPDATE, or DELETE statement may not be the
443         last statement. As a consequence, if you INSERT 1 row, then
444         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
445         INSERT and the SELECT statements.
446
447         The proposed solution is to use sqlite3_total_changes() instead
448         of sqlite3_changes(). sqlite3_total_changes() returns the number
449         of row changes caused by INSERT, UPDATE or DELETE statements since
450         the database connection was opened. We now store the value
451         returned by sqlite3_total_changes() before each statement in
452         order to return the count difference in
453         SQLiteDatabase::lastChanges().
454
455         Test: storage/websql/execute-sql-rowsAffected.html
456
457         * platform/sql/SQLiteDatabase.cpp:
458         (WebCore::SQLiteDatabase::SQLiteDatabase):
459         (WebCore::SQLiteDatabase::updateLastChangesCount):
460         (WebCore):
461         (WebCore::SQLiteDatabase::lastChanges):
462         * platform/sql/SQLiteDatabase.h:
463         (SQLiteDatabase):
464         * platform/sql/SQLiteStatement.cpp:
465         (WebCore::SQLiteStatement::step):
466
467 2012-11-20  Keishi Hattori  <keishi@webkit.org>
468
469         Week picker width is too small
470         https://bugs.webkit.org/show_bug.cgi?id=102766
471
472         Reviewed by Kent Tamura.
473
474         The width of week picker was too small because we were forgetting about
475         the week number column when calculating the desired width.
476
477         No new tests. Covered by week-picker-appearance*.html.
478
479         * Resources/pagepopups/calendarPicker.css:
480         (.week-mode .week-column): Needs to be table-cell.
481         * Resources/pagepopups/calendarPicker.js:
482         (CalendarPicker.prototype.fixWindowSize):
483
484 2012-11-20  Xabier Rodriguez Calvar  <calvaris@igalia.com>
485
486         [GTK] no volume slider in HTML5 media element controls
487         https://bugs.webkit.org/show_bug.cgi?id=97192
488
489         Reviewed by Philippe Normand.
490
491         r115829 was causing this regression so it was partially
492         reverted. The revert causes some small regressions, in the tests
493         but it is better to have the volume slider shown.
494
495         * css/mediaControlsGtk.css:
496         (audio::-webkit-media-controls-panel)
497         (video::-webkit-media-controls-panel): Partially reverted
498         r115829.
499
500 2012-11-19  Antti Koivisto  <antti@apple.com>
501
502         Collect user style sheets in DocumentStyleSheetCollection
503         https://bugs.webkit.org/show_bug.cgi?id=102683
504
505         Reviewed by Andreas Kling.
506
507         Move the user stylesheet collection logic from StyleResolver to DocumentStyleSheetCollection.
508         
509         * css/StyleResolver.cpp:
510         (WebCore::StyleResolver::StyleResolver):
511         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
512         (WebCore::collectCSSOMWrappers):
513         * css/StyleResolver.h:
514         (StyleResolver):
515         * dom/DocumentStyleSheetCollection.cpp:
516         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
517         (WebCore::DocumentStyleSheetCollection::pageUserStyleSheet):
518         (WebCore::DocumentStyleSheetCollection::clearPageUserStyleSheet):
519         (WebCore::DocumentStyleSheetCollection::updatePageUserStyleSheet):
520         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
521         (WebCore::collectActiveStyleSheetsFromSeamlessParents):
522         (WebCore::DocumentStyleSheetCollection::updateStyleResolver):
523         
524             Factor the StyleResolver updating code to function.
525
526         (WebCore):
527         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
528         
529             Collect the user style sheets. Some renaming and other minor refactoring.
530
531         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
532         * dom/DocumentStyleSheetCollection.h:
533         (WebCore::DocumentStyleSheetCollection::activeUserStyleSheets):
534         
535             Add activeUserStyleSheets vector that contains all user stylesheets from different sources,
536             similar to activeAuthorStyleSheets.
537
538         (DocumentStyleSheetCollection):
539         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
540
541 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
542
543         Remove unneeded optimization in Element::isInTopLayer
544         https://bugs.webkit.org/show_bug.cgi?id=102772
545
546         Reviewed by Andreas Kling.
547
548         There's no reason to worry about calling elementRareData() multiple
549         times in this non performance sensitive code path as it's only used
550         in HTMLDialogElement's showModal and close methods.
551
552         No new tests, just simplification.
553
554         * dom/Element.cpp:
555         (WebCore::Element::setIsInTopLayer):
556
557 2012-11-20  Elliott Sprehn  <esprehn@chromium.org>
558
559         Simplify Element::isSpellCheckingEnabled
560         https://bugs.webkit.org/show_bug.cgi?id=102779
561
562         Reviewed by Andreas Kling.
563
564         isSpellCheckingEnabled contains logic that duplicates parentOrHostElement
565         and can be simplified by just calling that.
566
567         No new tests, just simplification.
568
569         * dom/Element.cpp:
570         (WebCore::Element::isSpellCheckingEnabled):
571
572 2012-11-20  Kihong Kwon  <kihong.kwon@samsung.com>
573
574         Apply DeviceController as parent class of DeviceMotionController.
575         https://bugs.webkit.org/show_bug.cgi?id=102578
576
577         Reviewed by Hajime Morita.
578
579         DeviceController needs to be applied as parent class of DeviceMotionController
580         because DeviceController which is extracted as parent class of
581         DeviceMotionController and DeviceOrientationController is already added.
582         Therefore duplicated implementation can be removed.
583
584         Covered by existing tests.
585
586         * dom/DeviceMotionClient.h:
587         * dom/DeviceMotionController.cpp:
588         (WebCore::DeviceMotionController::DeviceMotionController):
589         (WebCore::DeviceMotionController::didChangeDeviceMotion):
590         (WebCore::DeviceMotionController::deviceMotionClient):
591         (WebCore::DeviceMotionController::hasLastData):
592         (WebCore::DeviceMotionController::getLastEvent):
593         (WebCore::DeviceMotionController::from):
594         (WebCore):
595         * dom/DeviceMotionController.h:
596         (WebCore):
597         (WebCore::DeviceMotionController::~DeviceMotionController):
598         (DeviceMotionController):
599         * dom/Document.cpp:
600         Remove all implementations which are related DeviceOrientationEvnet and DeviceMotionEvent.
601         Because DeviceController checks suspend and stop status of active dom object before dispatchEvent.
602         (WebCore::Document::suspendActiveDOMObjects):
603         (WebCore::Document::resumeActiveDOMObjects):
604         * loader/EmptyClients.h:
605         * page/DOMWindow.cpp:
606         (WebCore::DOMWindow::addEventListener):
607         (WebCore::DOMWindow::removeEventListener):
608         (WebCore::DOMWindow::removeAllEventListeners):
609
610 2012-11-20  Kentaro Hara  <haraken@chromium.org>
611
612         [V8] Remove V8ParameterBase
613         https://bugs.webkit.org/show_bug.cgi?id=102774
614
615         Reviewed by Adam Barth.
616
617         V8ParameterBase is a redundant indirection.
618         We can flatten methods of V8ParameterBase to V8Parameter.
619
620         No tests. No change in behavior.
621
622         * bindings/v8/V8StringResource.h:
623         (WebCore::V8Parameter::V8Parameter):
624         (V8Parameter):
625         (WebCore::V8Parameter::toString):
626         (WebCore::::prepare):
627
628 2012-11-20  Kunihiko Sakamoto  <ksakamoto@chromium.org>
629
630         Use localized date-time format in datetime input
631         https://bugs.webkit.org/show_bug.cgi?id=102769
632
633         Reviewed by Kent Tamura.
634
635         Move the implementation of Locale::dateTimeFormatWithSeconds and Locale::dateTimeFormatWithoutSeconds
636         to its subclasses and use platform-specific methods to get date-time pattern.
637         Because Windows does not provide an API to get date-time pattern. We use fixed "{date} {time}"
638         pattern for Windows.
639
640         Test: fast/forms/datetime/datetime-appearance-l10n.html
641
642         * platform/text/LocaleICU.cpp:
643         (WebCore::LocaleICU::initializeDateTimeFormat): Retrieve datetime formats too.
644         (WebCore::LocaleICU::dateTimeFormatWithSeconds): Added.
645         (WebCore):
646         (WebCore::LocaleICU::dateTimeFormatWithoutSeconds): Added.
647         * platform/text/LocaleICU.h:
648         (LocaleICU): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
649         * platform/text/LocaleNone.cpp:
650         (LocaleNone):
651         (WebCore::LocaleNone::dateTimeFormatWithSeconds): Added. Always returns "dd/MM/yyyyy HH:mm:ss".
652         (WebCore):
653         (WebCore::LocaleNone::dateTimeFormatWithoutSeconds): Added. Always returns "dd/MM/yyyyy HH:mm".
654         * platform/text/PlatformLocale.cpp:
655         (WebCore): Remove dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() as these are now pure virtual.
656         * platform/text/PlatformLocale.h:
657         (Locale): Make dateTimeFormatWithSeconds() and dateTimeFormatWithoutSeconds() pure virtual.
658         * platform/text/mac/LocaleMac.h:
659         (LocaleMac): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
660         * platform/text/mac/LocaleMac.mm:
661         (WebCore::LocaleMac::dateTimeFormatterWithSeconds): Added.
662         (WebCore):
663         (WebCore::LocaleMac::dateTimeFormatterWithoutSeconds): Added.
664         (WebCore::LocaleMac::dateTimeFormatWithSeconds): Added.
665         (WebCore::LocaleMac::dateTimeFormatWithoutSeconds): Added.
666         * platform/text/win/LocaleWin.cpp:
667         (WebCore::LocaleWin::dateTimeFormatWithSeconds): Copied from original Locale::dateTimeFormatWithSeconds().
668         (WebCore):
669         (WebCore::LocaleWin::dateTimeFormatWithoutSeconds): Copied from original Locale::dateTimeFormatWithoutSeconds().
670         * platform/text/win/LocaleWin.h:
671         (LocaleWin): Add m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
672
673 2012-11-20  Sheriff Bot  <webkit.review.bot@gmail.com>
674
675         Unreviewed, rolling out r135257.
676         http://trac.webkit.org/changeset/135257
677         https://bugs.webkit.org/show_bug.cgi?id=102777
678
679         Broke Chromium Debug compilation (Requested by yurys on
680         #webkit).
681
682         * bindings/v8/DOMDataStore.h:
683         (WebCore::DOMDataStore::getNode):
684
685 2012-11-20  Vsevolod Vlasov  <vsevik@chromium.org>
686
687         Web Inspector: Revert r133149: breaks revision reverting
688         https://bugs.webkit.org/show_bug.cgi?id=102672
689
690         Reviewed by Yury Semikhatsky.
691
692         * inspector/front-end/JavaScriptSourceFrame.js:
693         (WebInspector.JavaScriptSourceFrame):
694         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
695         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
696         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
697
698 2012-11-19  Csaba Osztrogonác  <ossy@webkit.org>
699
700         [Qt][Win] Unreviewed speculative buildfix after r135217.
701
702         * platform/win/WindowsExtras.h:
703
704 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
705
706         Unreviewed. Fix Chromium Win compilation after r135255.
707         https://bugs.webkit.org/show_bug.cgi?id=97803
708
709         * WebCore.gypi: removed reference to platform/wince/DragDataWince.cpp which
710         was deleted in the aforementioned change.
711
712 2012-11-19  Kentaro Hara  <haraken@chromium.org>
713
714         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
715         https://bugs.webkit.org/show_bug.cgi?id=102158
716
717          Reviewed by Adam Barth.
718
719         A follow-up patch for r135230. This patch adds a correct ASSERTION.
720
721         No tests. No change in behavior.
722
723         * bindings/v8/DOMDataStore.h:
724         (WebCore::DOMDataStore::getNode):
725
726 2012-11-19  Kentaro Hara  <haraken@chromium.org>
727
728         [JSC] Replace $implClassName with $interfaceName in CodeGeneratorJS.pm
729         https://bugs.webkit.org/show_bug.cgi?id=102757
730
731         Reviewed by Adam Barth.
732
733         In CodeGeneratorJS.pm $implClassName and $interfaceName are
734         equivalent. We're using them interchangeably. We should replace
735         $implClassName with $interfaceName.
736
737         No tests. No change in behavior.
738
739         * bindings/scripts/CodeGeneratorJS.pm:
740         (AddClassForwardIfNeeded):
741         (GenerateGetOwnPropertySlotBody):
742         (GenerateGetOwnPropertyDescriptorBody):
743         (GenerateHeader):
744         (GenerateOverloadedFunction):
745         (GenerateImplementation):
746         (GenerateParametersCheck):
747         (GenerateImplementationFunctionCall):
748         (NativeToJSValue):
749
750 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
751
752         Port DragDataWin.cpp to WinCE
753         https://bugs.webkit.org/show_bug.cgi?id=97803
754
755         Reviewed by Brent Fulgham.
756
757         Add two simple #if OS(WINCE) to DragDataWin.cpp, so it can be used by the WinCE port too.
758
759         * PlatformWinCE.cmake:
760         * platform/win/DragDataWin.cpp:
761         (WebCore::DragData::containsFiles):
762         (WebCore::DragData::numberOfFiles):
763         (WebCore::DragData::asFilenames):
764         * platform/wince/DragDataWinCE.cpp: Removed.
765
766 2012-11-19  Pan Deng  <pan.deng@intel.com>
767
768         [Web Inspector] This patch makes script line number search-able in Timeline panel.
769         https://bugs.webkit.org/show_bug.cgi?id=101910.
770
771         Reviewed by Pavel Feldman.
772
773         Script line number is visible in Timeline panel, however, not search-able. This patch makes it search-able.
774
775         No new tests. 
776
777         * inspector/front-end/TimelinePanel.js:
778         (WebInspector.TimelineRecordListRow.prototype.update):
779         (WebInspector.TimelineRecordListRow.testContentMatching):
780         * inspector/front-end/TimelinePresentationModel.js:
781         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
782         (WebInspector.TimelinePresentationModel.Record.prototype._refreshDetails):
783         (WebInspector.TimelinePresentationModel.Record.prototype.detailsNode):
784         (WebInspector.TimelinePresentationModel.Record.prototype._createSpanWithText):
785         (WebInspector.TimelinePresentationModel.Record.prototype._getRecordDetails):
786
787 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
788
789         Remove unneeded null check in NodeRendererFactory::createRendererIfNeeded
790         https://bugs.webkit.org/show_bug.cgi?id=102765
791
792         Reviewed by Ojan Vafai.
793
794         If parentRenderer() was null then we return early from
795         createRendererIfNeeded() because shouldCreateRenderer() will return false
796         so there's no reason to check for it again.
797
798         Additionally if either parentRenderer() or style() is null then
799         implementations of rendererIsNeeded() will crash, so add asserts to
800         make this assumption more clear.
801
802         No new tests, just simplification.
803
804         * dom/NodeRenderingContext.cpp:
805         (WebCore::NodeRendererFactory::createRendererIfNeeded):
806
807 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
808
809         [Refactoring] Remove WebCore::isInsertionPoint(Node*)
810         https://bugs.webkit.org/show_bug.cgi?id=102756
811
812         Reviewed by Hajime Morita.
813
814         Now that WebCore::isInsertionPoint(Node* node) does nothing special. We can remove this.
815
816         No new tests, simple refactoring.
817
818         * dom/ComposedShadowTreeWalker.cpp:
819         (WebCore::ComposedShadowTreeWalker::traverseNodeEscapingFallbackContents):
820         * dom/ContainerNode.cpp:
821         (WebCore::childAttachedAllowedWhenAttachingChildren):
822         * html/shadow/ContentDistributor.cpp:
823         (WebCore::ContentDistributor::invalidate):
824         * html/shadow/InsertionPoint.cpp:
825         (WebCore::InsertionPoint::isActive):
826         * html/shadow/InsertionPoint.h:
827         (WebCore::toInsertionPoint):
828         (WebCore::isActiveInsertionPoint):
829         (WebCore::isLowerEncapsulationBoundary):
830         (WebCore::parentNodeForDistribution):
831         * testing/Internals.cpp:
832         (WebCore::Internals::isValidContentSelect):
833
834 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
835
836         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <progress> ElementShadow.
837         https://bugs.webkit.org/show_bug.cgi?id=101703
838
839         Reviewed by Hajime Morita.
840
841         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
842         setPseudo()/pseudo() instead.
843
844         No new tests, simple refactoring.
845
846         * html/shadow/ProgressShadowElement.cpp:
847         (WebCore::ProgressInnerElement::ProgressInnerElement):
848         * html/shadow/ProgressShadowElement.h:
849         (ProgressInnerElement):
850         (WebCore::ProgressBarElement::ProgressBarElement):
851         (ProgressBarElement):
852         (WebCore::ProgressValueElement::ProgressValueElement):
853
854 2012-11-19  Yury Semikhatsky  <yurys@chromium.org>
855
856         Unreviewed. Fix Chromium Debug compilation after r135230.
857         https://bugs.webkit.org/show_bug.cgi?id=102158
858
859         Removed ASSERT that used instance field in a static method.
860
861         * bindings/v8/DOMDataStore.h:
862         (WebCore::DOMDataStore::getWrapperFromObject):
863
864 2012-11-19  Chris Guan  <chris.guan@torchmobile.com.cn>
865
866         [Blackberry] When a frame is being detached, cancel all its network jobs.
867         https://bugs.webkit.org/show_bug.cgi?id=102758
868
869         Reviewed by George Staikos.
870
871         I use FrameDestructionObserver to refactor Networkjob code.
872         NetworkJob is inheriting from FrameDestructionObserver to be
873         aware of frame's destroyed. When a frame is being detached,
874         the willDetachPage() can be called in which we can cancel 
875         the job. This patch reverted the fix for RIM PR134207 as well.
876
877         Manually test is on 
878         "http://www.reuters.com/article/2012/01/27/us-greece-idUSTRE80P0DE20120127"
879         which triggers a ping loader.
880
881         No behavior changed, no new layout tests.
882
883         * platform/network/blackberry/NetworkJob.cpp:
884         (WebCore::NetworkJob::NetworkJob):
885         (WebCore::NetworkJob::initialize):
886         (WebCore::NetworkJob::handleNotifyHeaderReceived):
887         (WebCore::NetworkJob::startNewJobWithRequest):
888         (WebCore::NetworkJob::frameDestroyed):
889         (WebCore):
890         (WebCore::NetworkJob::willDetachPage):
891         * platform/network/blackberry/NetworkJob.h:
892         (NetworkJob):
893         * platform/network/blackberry/NetworkManager.cpp:
894         (WebCore::NetworkManager::startJob):
895         * platform/network/blackberry/NetworkManager.h:
896         (NetworkManager):
897         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
898         (WebCore::ResourceHandle::start):
899         (WebCore::ResourceHandle::loadResourceSynchronously):
900
901 2012-11-19  Matt Falkenhagen  <falken@chromium.org>
902
903         Implement the new stacking layer needed by the Fullscreen API and the new <dialog> element
904         https://bugs.webkit.org/show_bug.cgi?id=84796
905
906         Reviewed by Julien Chaffraix.
907
908         This adds the top layer element stack to Document. The Fullscreen
909         specification mandates that we track the ordering of the DOM nodes in
910         the top layer, not the renderers. That makes it hard to implement on
911         the rendering side only.
912
913         Elements in the top layer get a layer. Layers in the top layer are
914         added to the root layer's child list after normal layers and in the
915         order of the top layer stack. This way, the top layer appears above
916         all other stacking contexts and in the desired order.
917
918         In addition, top layer renderers are added as children of RenderView
919         in top layer order. This is to satisfy requirements such as the
920         containing block of an element in the top layer is the initial
921         containing block. It also allows RenderLayer to know the proper
922         stacking order of the layers without going directly from the top layer
923         elements to their layers.
924
925         So far, only modal dialog elements can be added to the top layer.
926         The plan is to make the Fullscreen API also use the top layer.
927
928         Tests: fast/dom/HTMLDialogElement/top-layer-containing-block.html
929                fast/dom/HTMLDialogElement/top-layer-display-none.html
930                fast/dom/HTMLDialogElement/top-layer-nesting.html
931                fast/dom/HTMLDialogElement/top-layer-stacking-dynamic.html
932                fast/dom/HTMLDialogElement/top-layer-stacking.html
933
934         * WebCore.exp.in:
935         * css/StyleResolver.cpp:
936         (WebCore::StyleResolver::adjustRenderStyle): Elements in the top layer have a stacking context.
937         * dom/Document.cpp:
938         (WebCore):
939         (WebCore::Document::addToTopLayer):
940         (WebCore::Document::removeFromTopLayer):
941         * dom/Document.h:
942         (Document):
943         (WebCore::Document::topLayerElements): Add the top layer element stack to Document.
944         * dom/Element.cpp:
945         (WebCore::Element::removedFrom):
946         (WebCore):
947         (WebCore::Element::isInTopLayer):
948         (WebCore::Element::setIsInTopLayer):
949         * dom/Element.h:
950         * dom/ElementRareData.h:
951         (ElementRareData):
952         * dom/Node.cpp:
953         (WebCore::Node::detach): Add an exception to the assert since top layer elements and their descendants are moved from their
954         regular position in the render tree.
955         * dom/NodeRareData.h:
956         (WebCore::NodeRareData::NodeRareData):
957         (NodeRareData):
958         (WebCore::NodeRareData::isInTopLayer):
959         (WebCore::NodeRareData::setIsInTopLayer):
960         * dom/NodeRenderingContext.cpp:
961         (WebCore):
962         (WebCore::adjustInsertionPointForTopLayerElement):
963         (WebCore::NodeRendererFactory::createRendererIfNeeded): Add renderers for top layer elements as children of RenderView, and
964         in top layer stacking order.
965         * html/HTMLDialogElement.cpp:
966         (WebCore::HTMLDialogElement::close):
967         (WebCore::HTMLDialogElement::showModal):
968         * rendering/RenderLayer.cpp:
969         (WebCore):
970         (WebCore::RenderLayer::isInTopLayer):
971         (WebCore::RenderLayer::isInTopLayerSubtree):
972         (WebCore::RenderLayer::rebuildZOrderLists): Add the top layer stack after normal layer collection.
973         (WebCore::RenderLayer::collectLayers): Avoid adding layers for top layer elements during normal layer collection.
974         * rendering/RenderLayer.h:
975         (RenderLayer):
976
977 2012-11-19  Kentaro Hara  <haraken@chromium.org>
978
979         In CodeGeneratorObj.pm we should rename $dataNode to $interface.
980         https://bugs.webkit.org/show_bug.cgi?id=102749
981
982         Reviewed by Adam Barth.
983
984         $dataNode is misnamed. It should be renamed to $interface.
985
986         No tests. No change in behavior.
987
988         * bindings/scripts/CodeGeneratorObjC.pm:
989         (GenerateInterface):
990         (GetParentImplClassName):
991         (GetParentAndProtocols):
992         (GenerateHeader):
993         (GenerateImplementation):
994
995 2012-11-19  Kentaro Hara  <haraken@chromium.org>
996
997         In CodeGeneratorV8.pm, we should rename $dataNode to $interface
998         https://bugs.webkit.org/show_bug.cgi?id=102747
999
1000         Reviewed by Adam Barth.
1001
1002         $dataNode is misnamed. It should be $interface.
1003
1004         No tests. No change in behavior.
1005
1006         * bindings/scripts/CodeGeneratorV8.pm:
1007         (GenerateInterface):
1008         (NeedsCustomOpaqueRootForGC):
1009         (GetGenerateIsReachable):
1010         (GetCustomIsReachable):
1011         (GenerateOpaqueRootForGC):
1012         (GenerateHeader):
1013         (GetInternalFields):
1014         (GenerateHeaderCustomInternalFieldIndices):
1015         (GenerateHeaderNamedAndIndexedPropertyAccessors):
1016         (GenerateHeaderCustomCall):
1017         (IsConstructable):
1018         (GenerateConstructorGetter):
1019         (GenerateNormalAttrGetter):
1020         (GenerateReplaceableAttrSetter):
1021         (GenerateNormalAttrSetter):
1022         (GenerateOverloadedFunctionCallback):
1023         (GenerateFunctionCallback):
1024         (GenerateArgumentsCountCheck):
1025         (GenerateOverloadedConstructorCallback):
1026         (GenerateSingleConstructorCallback):
1027         (GenerateConstructorCallback):
1028         (GenerateEventConstructorCallback):
1029         (GenerateTypedArrayConstructorCallback):
1030         (GenerateNamedConstructorCallback):
1031         (GenerateBatchedAttributeData):
1032         (IsStandardFunction):
1033         (GenerateNonStandardFunction):
1034         (GenerateImplementationIndexer):
1035         (GenerateImplementationNamedPropertyGetter):
1036         (GenerateImplementationCustomCall):
1037         (GenerateImplementationMasqueradesAsUndefined):
1038         (GenerateImplementation):
1039         (GenerateHeaderContentHeader):
1040         (GenerateImplementationContentHeader):
1041         (GenerateCallbackHeader):
1042         (GenerateCallbackImplementation):
1043         (BaseInterfaceName):
1044         (GenerateToV8Converters):
1045         (GetNativeTypeForConversions):
1046         (GetTypeNameOfExternalTypedArray):
1047         (WriteData):
1048
1049 2012-11-19  Keishi Hattori  <keishi@webkit.org>
1050
1051         Move in animation should be disabled until the calendar picker is loaded.
1052         https://bugs.webkit.org/show_bug.cgi?id=102661
1053
1054         Reviewed by Kent Tamura.
1055
1056         On weeks where the first day is in the previous month (e.x. 2013-W01)
1057         the move in animation happens when you open the calendar picker. This
1058         patch disables the move in animation until the calendar picker is fully
1059         loaded.
1060
1061         No new tests.
1062
1063         * Resources/pagepopups/calendarPicker.js:
1064         (CalendarPicker):
1065         (CalendarPicker.prototype._handleWindowResize):
1066         (DaysTable.prototype._startMoveInAnimation):
1067
1068 2012-11-19  Elliott Sprehn  <esprehn@chromium.org>
1069
1070         Clean up loop in NodeRenderingContext::nextRenderer and previousRenderer
1071         https://bugs.webkit.org/show_bug.cgi?id=102743
1072
1073         Reviewed by Hajime Morita.
1074
1075         Clean up while (true) loops in NodeRenderingContext reducing the
1076         amount of code and the need for ASSERT_NOT_REACHED.
1077
1078         No new tests, just simplifcation.
1079
1080         * dom/NodeRenderingContext.cpp:
1081         (WebCore::NodeRenderingContext::nextRenderer):
1082         (WebCore::NodeRenderingContext::previousRenderer):
1083
1084 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1085
1086         [Shadow] attribute pseudo should return empty string instead of null when nothing is specified.
1087         https://bugs.webkit.org/show_bug.cgi?id=102753
1088
1089         Reviewed by Hajime Morita.
1090
1091         The ShadowDOM spec is changed so that attribute 'pseudo' returns empty string instead of null when
1092         no value is set.
1093
1094         Test: fast/dom/shadow/pseudo-attribute.html
1095
1096         * dom/Element.idl:
1097
1098 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1099
1100         In CodeGeneratorGObject.pm we should rename $dataNode to $interface
1101         https://bugs.webkit.org/show_bug.cgi?id=102751
1102
1103         Reviewed by Adam Barth.
1104
1105         $dataNode is misnamed. It should be $interface.
1106
1107         No tests. No change in behavior.
1108
1109         * bindings/scripts/CodeGeneratorGObject.pm:
1110         (GetParentClassName):
1111         (GetParentGObjType):
1112         (GenerateProperties):
1113         (GenerateFunctions):
1114         (GenerateCFile):
1115         (GenerateEventTargetIface):
1116         (Generate):
1117         (WriteData):
1118         (GenerateInterface):
1119
1120 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1121
1122         In CodeGenerator.pm we should rename $dataNode to $interface
1123         https://bugs.webkit.org/show_bug.cgi?id=102754
1124
1125         Reviewed by Adam Barth.
1126
1127         $dataNode is misnamed. It should be $interface.
1128
1129         No tests. No change in behavior.
1130
1131         * bindings/scripts/CodeGenerator.pm:
1132         (ForAllParents):
1133         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1134         (FindSuperMethod):
1135         (IsConstructorTemplate):
1136         (LinkOverloadedFunctions):
1137         (GenerateCompileTimeCheckForEnumsIfNeeded):
1138         (GetVisibleInterfaceName):
1139         (IsSubType):
1140
1141 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1142
1143         In CodeGeneratorCPP.pm we should rename $dataNode to $interface
1144         https://bugs.webkit.org/show_bug.cgi?id=102752
1145
1146         Reviewed by Adam Barth.
1147
1148         $dataNode is misnamed. It should be $interface.
1149
1150         No tests. No change in behavior.
1151
1152         * bindings/scripts/CodeGeneratorCPP.pm:
1153         (GenerateInterface):
1154         (GetParentImplClassName):
1155         (GetParent):
1156         (GenerateHeader):
1157         (GenerateImplementation):
1158
1159 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1160
1161         In CodeGeneratorJS.pm we should rename $dataNode to $interface
1162         https://bugs.webkit.org/show_bug.cgi?id=102748
1163
1164         Reviewed by Adam Barth.
1165
1166         $dataNode is misnamed. It should be $interface.
1167
1168         No tests. No change in behavior.
1169
1170         * bindings/scripts/CodeGeneratorJS.pm:
1171         (GenerateInterface):
1172         (GetParentClassName):
1173         (GetGenerateIsReachable):
1174         (GetCustomIsReachable):
1175         (GenerateGetOwnPropertySlotBody):
1176         (GenerateGetOwnPropertyDescriptorBody):
1177         (GenerateHeaderContentHeader):
1178         (GenerateImplementationContentHeader):
1179         (ShouldGenerateToJSDeclaration):
1180         (ShouldGenerateToJSImplementation):
1181         (GenerateHeader):
1182         (GenerateAttributesHashTable):
1183         (GenerateOverloadedFunction):
1184         (GenerateImplementation):
1185         (GenerateArgumentsCountCheck):
1186         (GenerateParametersCheck):
1187         (GenerateCallbackHeader):
1188         (GenerateCallbackImplementation):
1189         (WriteData):
1190         (GenerateConstructorDeclaration):
1191         (GenerateConstructorDefinition):
1192         (IsConstructable):
1193
1194 2012-11-19  Adam Barth  <abarth@webkit.org>
1195
1196         [V8] Merge getCachedWrapper(Node*) into DOMDataStore
1197         https://bugs.webkit.org/show_bug.cgi?id=102158
1198
1199         Reviewed by Eric Seidel.
1200
1201         This patch is an incremental step towards fully merging the Node code
1202         path with the general code path. After this patch, at least Nodes flow
1203         through the same class.
1204
1205         * Modules/indexeddb/IDBTransactionCoordinator.h:
1206         * bindings/scripts/CodeGeneratorV8.pm:
1207         (GenerateHeader):
1208         (GenerateToV8Converters):
1209         * bindings/v8/DOMDataStore.h:
1210         (WebCore::DOMDataStore::getNode):
1211         (DOMDataStore):
1212         (WebCore::DOMDataStore::getWrapperFromObject):
1213         * bindings/v8/DOMWrapperWorld.cpp:
1214         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
1215         (WebCore):
1216         * bindings/v8/DOMWrapperWorld.h:
1217         (WebCore):
1218         (DOMWrapperWorld):
1219         * bindings/v8/V8DOMWrapper.h:
1220         (V8DOMWrapper):
1221
1222 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1223
1224         In the IDL parser, we should rename $dataNode to $interface
1225         https://bugs.webkit.org/show_bug.cgi?id=102746
1226
1227         Reviewed by Adam Barth.
1228
1229         $dataNode is misnamed. It should be $interface.
1230
1231         No tests. No change in behavior.
1232
1233         * bindings/scripts/IDLParser.pm:
1234         (parseInterface):
1235         (parseException):
1236         (parseAttributeOrOperationRest):
1237         (parseOperationOrIterator):
1238         (parseSpecialOperation):
1239         (parseInterfaceOld):
1240         (parseExceptionOld):
1241         (parseAttributeOrOperationOrIteratorOld):
1242         (parseAttributeOrOperationRestOld):
1243         (applyMemberList):
1244         (applyExtendedAttributeList):
1245         * bindings/scripts/generate-bindings.pl:
1246         * bindings/scripts/preprocess-idls.pl:
1247         (checkIDLAttributes):
1248
1249 2012-11-19  Adam Klein  <adamk@chromium.org>
1250
1251         MutationObserver wrapper should not be collected while still observing
1252         https://bugs.webkit.org/show_bug.cgi?id=102328
1253
1254         Reviewed by Adam Barth.
1255
1256         Use the new opaqueRootForGC helper in V8GCController to put each
1257         MutationObserver wrapper in the same object group as the nodes it's
1258         observing.
1259
1260         Only includes V8 impl for now, JSC impl coming soon.
1261
1262         Tests: fast/mutation/observer-wrapper-dropoff-transient.html
1263                fast/mutation/observer-wrapper-dropoff.html
1264
1265         * bindings/v8/V8GCController.cpp: Add custom code for MutationObserver
1266         with a FIXME to move this out once we update the opaque roots API.
1267         * dom/MutationObserver.cpp:
1268         (WebCore::MutationObserver::getObservedNodes): Plumbing to expose the observed nodes
1269         to the GC controller.
1270         (WebCore):
1271         * dom/MutationObserver.h:
1272         * dom/MutationObserverRegistration.cpp:
1273         (WebCore::MutationObserverRegistration::addRegistrationNodesToSet): More plumbing.
1274         (WebCore):
1275         * dom/MutationObserverRegistration.h:
1276         (MutationObserverRegistration):
1277
1278 2012-11-19  Tony Chang  <tony@chromium.org>
1279
1280         Move more non-settings out of InternalSettings
1281         https://bugs.webkit.org/show_bug.cgi?id=102711
1282
1283         Reviewed by Adam Barth.
1284
1285         Remove userPreferredLanguages, setUserPreferredLanguages and allowRoundingHacks
1286         from internal.settings since they are already exposed by window.internals (in
1287         fact, no one calls the internal.settings version).
1288
1289         Move setUsesOverlayScrollbars from internals.settings to internals because it is
1290         a global (static) setting and not tied to the lifetime of the Settings object.
1291
1292         No new tests, there should be no behavior change since this is a refactor.
1293
1294         * testing/InternalSettings.cpp:
1295         (WebCore::InternalSettings::reset): Remove custom reset code.
1296         (WebCore::InternalSettings::setUsesOverlayScrollbars): Add exception code handling to make it more consistent with other settings setters.
1297         * testing/InternalSettings.h:
1298         * testing/InternalSettings.idl: Remove unnecessary methods.
1299         * testing/Internals.cpp:
1300         (WebCore::Internals::resetToConsistentState): Reset userPreferredLanguages, allowRoundingHacks and overlay scrollbars.
1301         (WebCore::Internals::userPreferredLanguages): Don't go through InternalSettings.
1302         (WebCore::Internals::setUserPreferredLanguages): Don't go through InternalSettings.
1303         (WebCore::Internals::setUsesOverlayScrollbars): Moved from InternalsSettings.
1304         (WebCore::Internals::allowRoundingHacks): Don't go through InternalSettings.
1305
1306 2012-11-19  David Grogan  <dgrogan@chromium.org>
1307
1308         IndexedDB: Complex series of opens/deleteDatabase fails an ASSERT
1309         https://bugs.webkit.org/show_bug.cgi?id=101810
1310
1311         Reviewed by Tony Chang.
1312
1313         Tests - storage/indexeddb/deletedatabase-delayed-by-versionchange.html
1314
1315         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
1316         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
1317         The condition tested by this assert is a valid state.
1318
1319 2012-11-19  Peter Wang  <peter.wang@torchmobile.com.cn>
1320
1321         Web Inspector: [JSC] worker debugger shouldn't stop for "willExecuteProgram" instruction
1322         https://bugs.webkit.org/show_bug.cgi?id=102637
1323
1324         Reviewed by Timothy Hatcher.
1325
1326         Override the interface "willExecuteProgram" to let WorkerScriptDebugServer to avoid to stop for it.
1327
1328         No new DRT test case. Sorry, so far it seems impossible to write a case to controle the popupped
1329         worker inspector window.
1330
1331         * bindings/js/ScriptDebugServer.cpp:
1332         (WebCore::ScriptDebugServer::createCallFrame):
1333         (WebCore::ScriptDebugServer::callEvent):
1334         (WebCore::ScriptDebugServer::willExecuteProgram):
1335         * bindings/js/ScriptDebugServer.h:
1336         (ScriptDebugServer):
1337         * bindings/js/WorkerScriptDebugServer.cpp:
1338         (WebCore::WorkerScriptDebugServer::willExecuteProgram):
1339         (WebCore):
1340         * bindings/js/WorkerScriptDebugServer.h:
1341         (WorkerScriptDebugServer):
1342
1343 2012-11-19  Pratik Solanki  <psolanki@apple.com>
1344
1345         For single element arrays use the pointer into the CFDataRef instead of copying data
1346         https://bugs.webkit.org/show_bug.cgi?id=102306
1347
1348         Reviewed by Brent Fulgham.
1349
1350         Address review comments for slightly nicer code.
1351
1352         * platform/SharedBuffer.cpp:
1353         (WebCore::SharedBuffer::data):
1354         * platform/cf/SharedBufferCF.cpp:
1355         (WebCore::SharedBuffer::singleDataArrayBuffer):
1356
1357 2012-11-19  Chris Rogers  <crogers@google.com>
1358
1359         Remove empirical bass-boost for HRTF spatialization
1360         https://bugs.webkit.org/show_bug.cgi?id=102745
1361
1362         Reviewed by Kenneth Russell.
1363
1364         Some empirically-based post-processing is being removed so that we'll
1365         now process with the exact HRTF impulse response measurements.
1366         Listening tests have determined that this post-processing is not necessary.
1367
1368         * platform/audio/HRTFElevation.cpp:
1369         (WebCore::HRTFElevation::calculateKernelsForAzimuthElevation):
1370         * platform/audio/HRTFKernel.cpp:
1371         (WebCore::HRTFKernel::HRTFKernel):
1372         * platform/audio/HRTFKernel.h:
1373         (WebCore::HRTFKernel::create):
1374         (HRTFKernel):
1375
1376 2012-11-19  Adam Barth  <abarth@webkit.org>
1377
1378         DISALLOW_COPY_AND_ASSIGN is not a WebKit macro
1379         https://bugs.webkit.org/show_bug.cgi?id=102755
1380
1381         Reviewed by Sam Weinig.
1382
1383         WTF_MAKE_NONCOPYABLE is the idiom we use in WebKit.  I don't understand
1384         how this compiles.
1385
1386         * Modules/indexeddb/IDBBackingStore.h:
1387         (RecordIdentifier):
1388
1389 2012-11-19  Chris Rogers  <crogers@google.com>
1390
1391         Implement .detune attribute for BiquadFilterNode
1392         https://bugs.webkit.org/show_bug.cgi?id=102737
1393
1394         Reviewed by Kenneth Russell.
1395
1396         Similar to OscillatorNode, BiquadFilterNode must have a .detune attribute
1397
1398         Tests changed: webaudio/biquad-lowpass.html
1399
1400         * Modules/webaudio/BiquadDSPKernel.cpp:
1401         (WebCore::BiquadDSPKernel::updateCoefficientsIfNecessary):
1402         * Modules/webaudio/BiquadFilterNode.h:
1403         (WebCore::BiquadFilterNode::detune):
1404         * Modules/webaudio/BiquadFilterNode.idl:
1405         * Modules/webaudio/BiquadProcessor.cpp:
1406         (WebCore::BiquadProcessor::BiquadProcessor):
1407         (WebCore::BiquadProcessor::checkForDirtyCoefficients):
1408         * Modules/webaudio/BiquadProcessor.h:
1409         (WebCore::BiquadProcessor::parameter4):
1410         (BiquadProcessor):
1411
1412 2012-11-19  Patrick Gansterer  <paroga@webkit.org>
1413
1414         [WIN] Add WebCore::getRegistryValue()
1415         https://bugs.webkit.org/show_bug.cgi?id=97828
1416
1417         Reviewed by Brent Fulgham.
1418
1419         The new function adds an abstraction to SHGetValue(), which isn't available on WinCE.
1420         Changing the existing files allows us to share more code between WinCE and WinNT in a next step.
1421
1422         * platform/win/MIMETypeRegistryWin.cpp:
1423         (WebCore::mimeTypeForExtension):
1424         (WebCore):
1425         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
1426         * platform/win/WindowsExtras.h:
1427         (WebCore::getRegistryValue):
1428         (WebCore):
1429         * plugins/win/PluginDatabaseWin.cpp:
1430         (WebCore::addPluginPathsFromRegistry):
1431         (WebCore::addWindowsMediaPlayerPluginDirectory):
1432         (WebCore::addQuickTimePluginDirectory):
1433         (WebCore::addAdobeAcrobatPluginDirectory):
1434         (WebCore::addJavaPluginDirectory):
1435
1436 2012-11-19  Alpha Lam  <hclam@chromium.org>
1437
1438         Not reviewed. Build fix for Chromium.
1439
1440         Added SkTypes.h includes for Windows.
1441
1442         * platform/graphics/chromium/ImageDecodingStore.h:
1443         * platform/graphics/chromium/ImageFrameGenerator.h:
1444         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1445
1446 2012-11-19  Adam Barth  <abarth@webkit.org>
1447
1448         [V8] Simplify V8DOMWindowShell::getEntered
1449         https://bugs.webkit.org/show_bug.cgi?id=102156
1450
1451         Reviewed by Eric Seidel.
1452
1453         This patch is an incremental step towards merging
1454         V8DOMWrapper::getCachedWrapper(Node*) with the general case for looking
1455         up DOM wrappers. In order to merge with the general case, we need to
1456         get down to calling v8::Context::GetCurrent once, which means we need
1457         to factor the call to v8::Context::GetEntered out of V8DOMWindowShell.
1458
1459         As a side-benefit to this change, we can remove some redundant checks
1460         for isolatedWorldsExist and v8::Context::InContext from callers of
1461         V8DOMWindowShell::getEntered, including in getCachedWrapper.
1462
1463         * bindings/v8/DOMDataStore.cpp:
1464         (WebCore::DOMDataStore::current):
1465         * bindings/v8/ScriptController.cpp:
1466         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
1467         (WebCore::ScriptController::currentWorldContext):
1468         * bindings/v8/V8DOMWindowShell.h:
1469         (WebCore::V8DOMWindowShell::isolated):
1470         (WebCore::V8DOMWindowShell::perContextData):
1471         (WebCore::V8DOMWindowShell::world):
1472         (V8DOMWindowShell):
1473         * bindings/v8/V8DOMWrapper.h:
1474         (WebCore::V8DOMWrapper::getCachedWrapper):
1475         * bindings/v8/WorldContextHandle.cpp:
1476         (WebCore::WorldContextHandle::WorldContextHandle):
1477         * bindings/v8/custom/V8DocumentCustom.cpp:
1478         (WebCore::V8Document::dispatchWrapCustom):
1479         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
1480         (WebCore::V8HTMLDocument::dispatchWrapCustom):
1481         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
1482         (WebCore::V8SVGDocument::dispatchWrapCustom):
1483         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
1484         (WebCore::V8XMLHttpRequest::constructorCallback):
1485
1486 2012-11-19  Kentaro Hara  <haraken@chromium.org>
1487
1488         Rename idlDocument::classes to idlDocument::interfaces in the IDL parser
1489         https://bugs.webkit.org/show_bug.cgi?id=102671
1490
1491         Reviewed by Adam Barth.
1492
1493         Most part of code generators use 'interface'. The spec uses 'interface'.
1494         Thus, the IDL parser should use 'interface' instead of 'class'.
1495
1496         No tests. No change in behavior.
1497
1498         * bindings/scripts/CodeGenerator.pm:
1499         (ProcessDocument):
1500         (AddMethodsConstantsAndAttributesFromParentInterfaces):
1501         (ParseInterface):
1502         * bindings/scripts/CodeGeneratorCPP.pm:
1503         (GenerateImplementation):
1504         * bindings/scripts/CodeGeneratorJS.pm:
1505         (GenerateHeader):
1506         * bindings/scripts/CodeGeneratorObjC.pm:
1507         (GenerateImplementation):
1508         * bindings/scripts/CodeGeneratorV8.pm:
1509         (GenerateHeader):
1510         (GenerateFunctionCallback):
1511         * bindings/scripts/IDLParser.pm:
1512         (Parse):
1513         (parseModule):
1514         * bindings/scripts/generate-bindings.pl:
1515
1516 2012-11-19  Eric Carlson  <eric.carlson@apple.com>
1517
1518         HTMLMediaElement::configureTextTracks should configure all text tracks
1519         https://bugs.webkit.org/show_bug.cgi?id=102561
1520
1521         Reviewed by Philippe Normand.
1522
1523         No new tests, track-mode-not-changed-by-new-track.html was updated to test the changes.
1524
1525         * html/HTMLMediaElement.cpp:
1526         (WebCore::HTMLMediaElement::textTrackModeChanged): HTMLTrackElement -> TextTrack.
1527         (WebCore::HTMLMediaElement::willRemoveTrack): Ditto.
1528         (WebCore::HTMLMediaElement::configureTextTrackGroup): Ditto.
1529         (WebCore::HTMLMediaElement::configureTextTracks): Ditto.
1530         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): Ditto.
1531         * html/HTMLMediaElement.h:
1532
1533         * html/HTMLTrackElement.cpp:
1534         (WebCore::HTMLTrackElement::HTMLTrackElement): Move hasBeenConfigured down to TextTrack.
1535         (WebCore::HTMLTrackElement::parseAttribute): isDefault is stored on TextTrack.
1536         (WebCore::HTMLTrackElement::ensureTrack): LoadableTextTrack constructor doesn't take 
1537             "default" argument.
1538         * html/HTMLTrackElement.h:
1539
1540         * html/track/LoadableTextTrack.cpp:
1541         (WebCore::LoadableTextTrack::LoadableTextTrack): Initialize m_isDefault to false.
1542         * html/track/LoadableTextTrack.h: 
1543         (WebCore::TextTrack::isDefault): Override base class implementation, because a track element
1544             can be flagged as default.
1545         (WebCore::TextTrack::setIsDefault): Ditto.
1546
1547         * html/track/TextTrack.cpp:
1548         (WebCore::TextTrack::TextTrack): Initialize m_hasBeenConfigured.
1549         * html/track/TextTrack.h:
1550         (WebCore::TextTrack::hasBeenConfigured): New, moved from HTMLTrackElement so other code doesn't
1551             need know what type of track it is calling.
1552         (WebCore::TextTrack::setHasBeenConfigured): Ditto.
1553         (WebCore::TextTrack::isDefault): Base, do nothing, implementation because only LoadableTextTrack
1554             can be "default".
1555         (WebCore::TextTrack::setIsDefault): Ditto.
1556
1557 2012-11-19  Huang Dongsung  <luxtella@company100.net>
1558
1559         Coordinated Graphics: refactor syncCanvas to handle the lifecycle clearly.
1560         https://bugs.webkit.org/show_bug.cgi?id=102664
1561
1562         Reviewed by Noam Rosenthal.
1563
1564         As refactoring Coordinated Graphics in WebKit2, code related to
1565         TextureMapper is changed.
1566
1567         No new tests. Refactoring only.
1568
1569         * platform/graphics/qt/GraphicsContext3DQt.cpp:
1570         (GraphicsContext3DPrivate):
1571         (WebCore::GraphicsContext3DPrivate::platformLayerSize):
1572             We need to know the size of a texture mapper platform layer.
1573         (WebCore):
1574         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
1575           Because CoordinatedGraphicsLayer handles the canvas GraphicsSurface
1576           lifecycle, TextureMapperSurfaceBackingStore does not need to know
1577           GraphicsSurfaceToken.
1578         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
1579         (WebCore::TextureMapperSurfaceBackingStore::swapBuffersIfNeeded):
1580         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
1581         * platform/graphics/texmap/TextureMapperBackingStore.h:
1582         (TextureMapperSurfaceBackingStore):
1583         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
1584         (WebCore::TextureMapperPlatformLayer::platformLayerSize):
1585
1586 2012-11-19  Alpha Lam  <hclam@chromium.org>
1587
1588         [chromium] Lazy image decoding without cache
1589         https://bugs.webkit.org/show_bug.cgi?id=102021
1590
1591         Reviewed by Stephen White.
1592
1593         Goal of this change is to make image decoding in ImageFrameGenerator
1594         completely lazy without caching. Image decoding logic is then removed
1595         from ImageDecodingStore.
1596
1597         These methods are removed.
1598         - ImageDecodingStore::lockPixels
1599         - ImageDecodingStore::unlockPixels
1600
1601         Instead image decoding and scaling is done in
1602         ImageFrameGenerator::decodeAndScale().
1603
1604         Unit tests are updated:
1605         DeferredImageDecoderTest::drawIntoSkPicture
1606         DeferredImageDecoderTest::drawScaledIntoSkPicture
1607
1608         Also covered by layout tests:
1609         platform/chromium/virtual/deferred
1610
1611         * platform/graphics/chromium/DeferredImageDecoder.cpp:
1612         (WebCore::DeferredImageDecoder::createLazyDecodingBitmap):
1613         * platform/graphics/chromium/ImageDecodingStore.h:
1614         (ImageDecodingStore):
1615         * platform/graphics/chromium/ImageFrameGenerator.cpp:
1616         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
1617         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
1618         (WebCore::ImageFrameGenerator::setData):
1619         (WebCore::ImageFrameGenerator::decodeAndScale):
1620         * platform/graphics/chromium/ImageFrameGenerator.h:
1621         (WebCore::ImageFrameGenerator::create):
1622         (ImageFrameGenerator):
1623         * platform/graphics/chromium/LazyDecodingPixelRef.cpp:
1624         (WebCore::LazyDecodingPixelRef::onLockPixels):
1625         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
1626         * platform/graphics/chromium/LazyDecodingPixelRef.h:
1627         (LazyDecodingPixelRef):
1628
1629 2012-11-19  Abhishek Arya  <inferno@chromium.org>
1630
1631         Crash in ApplyStyleCommand::cleanupUnstyledAppleStyleSpans.
1632         https://bugs.webkit.org/show_bug.cgi?id=100150
1633
1634         Reviewed by Ryosuke Niwa.
1635
1636         RefPtr startDummySpanAncestor and endDummySpanAncestor since
1637         they can go away inside fixRangeAndApplyInlineStyle call.
1638
1639         Test: editing/style/apply-style-crash.html
1640
1641         * editing/ApplyStyleCommand.cpp:
1642         (WebCore::ApplyStyleCommand::applyInlineStyle):
1643
1644 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1645
1646         Unreviewed, rolling out r135172.
1647         http://trac.webkit.org/changeset/135172
1648         https://bugs.webkit.org/show_bug.cgi?id=102710
1649
1650         Broke some WebKit2 api tests :( (Requested by japhet on
1651         #webkit).
1652
1653         * loader/DocumentLoader.cpp:
1654         (WebCore::DocumentLoader::DocumentLoader):
1655         (WebCore::DocumentLoader::~DocumentLoader):
1656         (WebCore::DocumentLoader::finishedLoading):
1657         (WebCore::DocumentLoader::clearMainResourceLoader):
1658         (WebCore::DocumentLoader::isLoadingInAPISense):
1659         (WebCore::DocumentLoader::documentURL):
1660         (WebCore::DocumentLoader::isLoadingMainResource):
1661         (WebCore::DocumentLoader::startLoadingMainResource):
1662         * loader/DocumentLoader.h:
1663         (DocumentLoader):
1664         * loader/FrameLoader.cpp:
1665         (WebCore::FrameLoader::FrameLoader):
1666         (WebCore::FrameLoader::init):
1667         * loader/FrameLoaderStateMachine.cpp:
1668         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
1669         * loader/FrameLoaderStateMachine.h:
1670         * loader/MainResourceLoader.cpp:
1671         (WebCore::shouldLoadAsEmptyDocument):
1672         (WebCore):
1673         (WebCore::MainResourceLoader::continueAfterContentPolicy):
1674         (WebCore::MainResourceLoader::didReceiveResponse):
1675         (WebCore::MainResourceLoader::didFinishLoading):
1676         (WebCore::MainResourceLoader::handleEmptyLoad):
1677         (WebCore::MainResourceLoader::loadNow):
1678         (WebCore::MainResourceLoader::load):
1679         * loader/MainResourceLoader.h:
1680         (MainResourceLoader):
1681
1682 2012-11-19  Tony Chang  <tony@chromium.org>
1683
1684         Remove 'is' prefix from WebSettings::isWebSecurityEnabled and WebSettings::isSpatialNavigationEnabled
1685         https://bugs.webkit.org/show_bug.cgi?id=102548
1686
1687         Reviewed by Adam Barth.
1688
1689         This allows us to use Settings.in to generate the code for this.
1690
1691         I didn't rename any of the WebKit API methods with similar names because that would
1692         probably break consumers.  It turns out that the getter is only called from
1693         Source/WebKit/efl (most of the time, WebPreferences just sets values on Settings).
1694
1695         No new tests, just a refactor.
1696
1697         * WebCore.exp.in: Remove symbols that are now inlined.
1698         * WebCore.order: Remove symbols that are now inlined.
1699         * dom/Document.cpp:
1700         (WebCore::Document::initSecurityContext): Rename.
1701         * page/Settings.cpp:
1702         (WebCore::Settings::Settings): Remove code since it will be generated.
1703         * page/Settings.h:
1704         (Settings): Remove code since it will be generated.
1705         * page/Settings.in: Add entries to be generated.
1706         * page/SpatialNavigation.cpp:
1707         (WebCore::isSpatialNavigationEnabled): Fix caller.
1708
1709 2012-11-19  Yael Aharon  <yael.aharon@intel.com>
1710
1711         [EFL][TexMap] Complie error when considering warnings as errors
1712         https://bugs.webkit.org/show_bug.cgi?id=102705
1713
1714         Reviewed by Kenneth Rohde Christiansen.
1715
1716         Change GaussianKernelHalfWidth to unsigned.
1717
1718         No new tests.
1719
1720         * platform/graphics/texmap/TextureMapperGL.cpp:
1721         (WebCore):
1722
1723 2012-11-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1724
1725         Unreviewed, rolling out r134830.
1726         http://trac.webkit.org/changeset/134830
1727         https://bugs.webkit.org/show_bug.cgi?id=102701
1728
1729         ActiveDOMObject is not applicable to MutationObservers due to
1730         being tied to a Document (Requested by aklein on #webkit).
1731
1732         * bindings/js/JSMutationObserverCustom.cpp:
1733         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
1734         * bindings/v8/custom/V8MutationObserverCustom.cpp:
1735         (WebCore::V8MutationObserver::constructorCallback):
1736         * dom/MutationObserver.cpp:
1737         (WebCore::MutationObserver::create):
1738         (WebCore::MutationObserver::MutationObserver):
1739         (WebCore::MutationObserver::observationStarted):
1740         (WebCore::MutationObserver::observationEnded):
1741         * dom/MutationObserver.h:
1742         (WebCore):
1743         * dom/MutationObserver.idl:
1744
1745 2012-11-19  Brady Eidson  <beidson@apple.com>
1746
1747         NetworkProcess Authentication.
1748         https://bugs.webkit.org/show_bug.cgi?id=102592
1749
1750         Reviewed by Alexey Proskuryakov.
1751
1752         Change an ASSERT that assumes there should be a resource handle which is not true with the NetworkProcess.
1753
1754         Also export some more stuff.
1755
1756         No new tests (Platform support, no effect in tested configs).
1757
1758         * WebCore.exp.in:
1759
1760         * loader/ResourceLoader.cpp:
1761         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Only ASSERT that the handle has a challenge if
1762           there is a handle.
1763
1764 2012-11-19  Alec Flett  <alecflett@chromium.org>
1765
1766         IndexedDB: simplify RecordIdentifier
1767         https://bugs.webkit.org/show_bug.cgi?id=102018
1768
1769         Reviewed by Tony Chang.
1770
1771         Make IDBBackingStore's RecordIdentifier be a simple
1772         class, existing only as an inline or stack-based instance.
1773         This makes much of the copy semantics more explicit, and
1774         removes refcounting from an object that only ever had a refcount
1775         of 1 or 2.
1776
1777         No new tests, just a refactor.
1778
1779         * Modules/indexeddb/IDBBackingStore.cpp:
1780         (WebCore::IDBBackingStore::putRecord):
1781         (WebCore::IDBBackingStore::deleteRecord):
1782         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
1783         (WebCore::IDBBackingStore::keyExistsInObjectStore):
1784         (WebCore::IDBBackingStore::putIndexDataForRecord):
1785         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
1786         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
1787         (ObjectStoreCursorImpl):
1788         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
1789         (WebCore::IndexKeyCursorImpl::recordIdentifier):
1790         (WebCore::IndexCursorImpl::recordIdentifier):
1791         * Modules/indexeddb/IDBBackingStore.h:
1792         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
1793         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
1794         (WebCore::IDBBackingStore::RecordIdentifier::reset):
1795         (RecordIdentifier):
1796         (IDBBackingStore):
1797         (WebCore::IDBBackingStore::Cursor::recordIdentifier):
1798         (WebCore::IDBBackingStore::Cursor::Cursor):
1799         (Cursor):
1800         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
1801         (WebCore):
1802         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
1803         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1804         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1805
1806 2012-11-19  Alexander Shalamov  <alexander.shalamov@intel.com>
1807
1808         Improve ContentTypeParser, so that it could be used to validate mime type according to RFC
1809         https://bugs.webkit.org/show_bug.cgi?id=100927
1810
1811         Reviewed by Alexey Proskuryakov.
1812
1813         This patch adds ParsedContentType class that represents contents of parsed
1814         content type string. isValidContentType function could be used to check if
1815         format of the content type string is acorrding to RFC 2616 section 4.2.
1816
1817         * CMakeLists.txt:
1818         * GNUmakefile.list.am:
1819         * Target.pri:
1820         * WebCore.gypi:
1821         * WebCore.xcodeproj/project.pbxproj:
1822         * platform/network/MIMEHeader.cpp:
1823         (WebCore::MIMEHeader::parseHeader):
1824         * platform/network/ParsedContentType.cpp: Renamed from Source/WebCore/platform/network/ContentTypeParser.cpp.
1825         (WebCore):
1826         (EmptyParsedContentType):
1827         (WebCore::EmptyParsedContentType::setContentType):
1828         (WebCore::EmptyParsedContentType::setContentTypeParameter):
1829         (WebCore::skipSpaces):
1830         (WebCore::isTokenCharacter):
1831         (WebCore::parseToken):
1832         (WebCore::parseQuotedString):
1833         (WebCore::substringForRange):
1834         (WebCore::parseContentType):
1835         (WebCore::isValidContentType):
1836         (WebCore::ParsedContentType::ParsedContentType):
1837         (WebCore::ParsedContentType::charset):
1838         (WebCore::ParsedContentType::parameterValueForName):
1839         (WebCore::ParsedContentType::parameterCount):
1840         (WebCore::ParsedContentType::setContentType):
1841         (WebCore::ParsedContentType::setContentTypeParameter):
1842         * platform/network/ParsedContentType.h: Renamed from Source/WebCore/platform/network/ContentTypeParser.h.
1843         (WebCore):
1844         (ParsedContentType):
1845         (WebCore::ParsedContentType::mimeType):
1846
1847 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1848
1849         Update DOMException name: InvalidNodeTypeError
1850         https://bugs.webkit.org/show_bug.cgi?id=102519
1851
1852         Reviewed by Kentaro Hara.
1853
1854         Patch 24 of 25 to update DOMException name to match the spec and Firefox.
1855
1856         No code uses DOMException InvalidNodeTypeError. We do use INVALID_NODE_TYPE_ERR for RangeException. See bug 102515.
1857
1858         * dom/DOMCoreException.cpp:
1859
1860 2012-11-19  Shinya Kawanaka  <shinyak@chromium.org>
1861
1862         Changing id, className, or attribute should invalidate distribution
1863         https://bugs.webkit.org/show_bug.cgi?id=100738
1864
1865         Reviewed by Dimitri Glazkov.
1866
1867         When id, className, or attribute is changed, we might have to invalidate distribution.
1868         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow
1869         to invalidate distribution only if necessary.
1870
1871         For the code that className is changed, we can share a lot of code between invalidating distribution and
1872         invalidating style. So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
1873
1874         Since attributeChanged() is a hot method, we don't want to make it slow. So we made one function to determine
1875         whether we have to invalidate distribution, and make it called only if necessary. Also, we've optimized
1876         shadowOfParentForDistribution() by making isInsertionPoint() de-virtualed. We consuded NodeFlags (IsInsertionPointFlag)
1877         for this purpose.
1878
1879         We've measured how this patch makes changing attribute slow. I've measured each code 3 times.
1880         DOM/ModifyAttribute.html is a micro benchmark which changes attribute a lot of times. The result of this benchmark
1881         will be the most affected by this patch. However, it's only 2% performance regression.
1882
1883         DOM/ModifyAttribute.html
1884         Before this patch:
1885                 median  stdev    min    max    [ms]
1886           1st    494.0   3.36  490.0  502.0
1887           2nd    503.5   3.44  497.0  512.0
1888           3rd    494.0   3.48  488.0  499.0
1889
1890         After this patch:
1891                 median  stdev  min      max    [ms]
1892           1st    504.0   2.00  501.0  509.0
1893           2nd    505.5   3.08  500.0  513.0
1894           3rd    507.0   2.32  502.0  510.0
1895
1896         Tests: fast/dom/shadow/distribution-attribute-modified.html
1897                fast/dom/shadow/distribution-className-modified.html
1898                fast/dom/shadow/distribution-id-modified.html
1899                fast/dom/shadow/reprojection-attribute-modified.html
1900                fast/dom/shadow/reprojection-className-modified.html
1901                fast/dom/shadow/reprojection-id-modified.html
1902
1903         * dom/Element.cpp:
1904         (WebCore::Element::attributeChanged):
1905         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
1906         (HasSelectorForClassStyleFunctor):
1907         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
1908         (WebCore):
1909         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
1910         (HasSelectorForClassDistributionFunctor):
1911         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectForClass returns true.
1912         (WebCore::checkFunctorForClassChange):
1913         (WebCore::checkNeedsStyleInvalidationForClassChange):
1914         (WebCore::checkNeedsDistributionInvalidationForClassChange): Extracted the implementation to checkFunctorForClassChange.
1915         (WebCore::Element::shouldInvalidateDistributionWhenAttributeChanged):
1916         * dom/Element.h:
1917         (Element):
1918         * dom/Node.h:
1919         (WebCore::Node::isInsertionPoint):
1920         * html/HTMLElement.h:
1921         (HTMLElement):
1922         * html/shadow/InsertionPoint.cpp:
1923         (WebCore::InsertionPoint::InsertionPoint):
1924         * html/shadow/InsertionPoint.h:
1925         (InsertionPoint):
1926         (WebCore::isInsertionPoint):
1927         (WebCore::shadowOfParentForDistribution):
1928         (WebCore::resolveReprojection):
1929
1930 2012-11-19  Nate Chapin  <japhet@chromium.org>
1931
1932         Move empty loading to DocumentLoader, simplify FrameLoader::init()
1933         https://bugs.webkit.org/show_bug.cgi?id=101512
1934
1935         Reviewed by Adam Barth.
1936
1937         No new tests, though several outputs changed because we no longer send resource
1938             load callbacks for empty loads.
1939
1940         * loader/DocumentLoader.cpp:
1941         (WebCore::DocumentLoader::DocumentLoader):
1942         (WebCore::DocumentLoader::~DocumentLoader):
1943         (WebCore::DocumentLoader::finishedLoading):
1944         (WebCore::DocumentLoader::clearMainResourceLoader):
1945         (WebCore::DocumentLoader::isLoadingInAPISense):
1946         (WebCore::DocumentLoader::isLoadingMainResource):
1947         (WebCore::DocumentLoader::maybeLoadEmpty):
1948         (WebCore):
1949         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
1950              loads directly here.
1951         * loader/DocumentLoader.h:
1952         (DocumentLoader):
1953         * loader/FrameLoader.cpp:
1954         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
1955             were previously being reset in init(). Given that the FrameLoader is in
1956             an inconsistent state before init() is called anyway, there doesn't seem
1957             to be a disadvantage to just initializing them to their post-init() values.
1958         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
1959             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
1960         * loader/FrameLoaderStateMachine.cpp:
1961         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
1962         * loader/FrameLoaderStateMachine.h:
1963         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
1964         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
1965             load got deferred, which won't happen now. Return void and always treat
1966             as returning false.
1967         * loader/MainResourceLoader.h:
1968         (MainResourceLoader):
1969
1970 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1971
1972         Update DOMException name: TimeoutError
1973         https://bugs.webkit.org/show_bug.cgi?id=102513
1974
1975         Reviewed by Kentaro Hara.
1976
1977         Patch 23 of 25 to update DOMException name to match the spec and Firefox.
1978
1979         No code uses DOMException TimeoutError. We do use TIMEOUT_ERR for XMLHttpRequestException. See bug 102506.
1980
1981         * dom/DOMCoreException.cpp:
1982
1983 2012-11-19  Erik Arvidsson  <arv@chromium.org>
1984
1985         Update DOMException name: DataCloneError
1986         https://bugs.webkit.org/show_bug.cgi?id=102521
1987
1988         Reviewed by Kentaro Hara.
1989
1990         Patch 25 of 25 to update DOMException name to match the spec and Firefox.
1991
1992         Updated existing tests.
1993
1994         * dom/DOMCoreException.cpp:
1995
1996 2012-11-19  Tom Hudson  <tomhudson@chromium.org>
1997
1998         Improve performance of RenderBoxModelObject::paintTranslucentBorderSides()
1999         https://bugs.webkit.org/show_bug.cgi?id=98660
2000
2001         Reviewed by Simon Fraser.
2002
2003         Accumulate edges[i].shouldRender() in a flag field and pass that to paintBorderSides()
2004         and paintTranslucentBorderSides() so that we don't do unnecessary work.
2005
2006         If we can avoid setting up and tearing down an unnecessary transparent layer we save
2007         30ms on some mobile platforms.
2008
2009         * rendering/RenderBoxModelObject.h:
2010         * rendering/RenderBoxModelObject.cpp:
2011         (WebCore::RenderBoxModelObject::paintBorder):
2012         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
2013
2014 2012-11-19  Hans Muller  <hmuller@adobe.com>
2015
2016         [CSS Exclusions] remove null exclusion shape check from ExclusionShape::createExclusionShape
2017         https://bugs.webkit.org/show_bug.cgi?id=100765
2018
2019         Reviewed by Dirk Schulze.
2020
2021         ExclusionShape::createExclusionShape now ASSERTs that its basicShape argument
2022         isn't null, since the caller is expected to ensure as much.  No new tests were
2023         needed since this is a near-trivial cleanup.
2024
2025         * rendering/ExclusionShape.cpp:
2026         (WebCore::ExclusionShape::createExclusionShape): This method no longer defends against a null basicShape argument by returning null.
2027
2028 2012-11-19  Sami Kyostila  <skyostil@chromium.org>
2029
2030         Use device scale factor instead of physical screen DPI for screen DPI
2031         https://bugs.webkit.org/show_bug.cgi?id=101769
2032
2033         Reviewed by Adam Barth.
2034
2035         Media queries call WebCore::Screen::{horizontal,vertical}DPI() to determine
2036         the dots per CSS inch[1] value for the "screen" media type. On Chromium these
2037         functions currently return the physical screen DPI, which is wrong. To fix
2038         this, we remove both of these functions entirely and make media queries use
2039         the device scale factor multiplied by 96 on all ports.
2040
2041         [1] http://www.w3.org/TR/css3-mediaqueries/#resolution0
2042
2043         * page/Screen.cpp:
2044         (WebCore::Screen::horizontalDPI):
2045         (WebCore::Screen::verticalDPI):
2046         * platform/PlatformScreen.h:
2047         (WebCore):
2048         * platform/blackberry/PlatformScreenBlackBerry.cpp:
2049         * platform/chromium/PlatformScreenChromium.cpp:
2050         * platform/efl/PlatformScreenEfl.cpp:
2051         * platform/gtk/PlatformScreenGtk.cpp:
2052         * platform/mac/PlatformScreenMac.mm:
2053         * platform/qt/PlatformScreenQt.cpp:
2054         * platform/win/PlatformScreenWin.cpp:
2055         * platform/wx/ScreenWx.cpp:
2056
2057 2012-11-19  Julien Chaffraix  <jchaffraix@webkit.org>
2058
2059         Computed grid items' positions shouldn't be using Length
2060         https://bugs.webkit.org/show_bug.cgi?id=102537
2061
2062         Reviewed by Tony Chang.
2063
2064         This change refactors how we store the grid items' position to use
2065         a new type GridPosition. Length was a temporary type as it supported
2066         'auto' | <integer> but it was starting to get more and more confusing
2067         as we were implementing the layout routines.
2068
2069         No change in behavior.
2070
2071         * GNUmakefile.list.am:
2072         * WebCore.gypi:
2073         * WebCore.vcproj/WebCore.vcproj:
2074         * WebCore.xcodeproj/project.pbxproj:
2075         Added the new file to the build systems.
2076
2077         * rendering/style/RenderStyle.h:
2078         Updated after the type change. Also made some getters
2079         return a const reference instead of forcing a copy.
2080
2081         * rendering/style/StyleGridItemData.h:
2082         (StyleGridItemData):
2083         Ditto, also removed a comment about adding a new type.
2084
2085         * css/CSSComputedStyleDeclaration.cpp:
2086         (WebCore::valueForGridPosition):
2087         * css/StyleResolver.cpp:
2088         (WebCore::createGridPosition):
2089         (WebCore::StyleResolver::applyProperty):
2090         * rendering/RenderGrid.cpp:
2091         (WebCore::RenderGrid::resolveGridPosition):
2092         Updated these sites after switching to GridPosition.
2093
2094         * rendering/RenderGrid.h:
2095         Changed resolveGridPosition signature: it now takes a GridPosition.
2096
2097         * rendering/style/GridPosition.h: Added.
2098         (WebCore::GridPosition::GridPosition):
2099         Default constructor, creates an 'auto' position.
2100
2101         (WebCore::GridPosition::isPositive):
2102         (WebCore::GridPosition::type):
2103         (WebCore::GridPosition::isAuto):
2104         (WebCore::GridPosition::setIntegerPosition):
2105         (WebCore::GridPosition::integerPosition):
2106         Helper functions.
2107
2108         (WebCore::GridPosition::operator==):
2109         Required comparison operator for StyleGridItemData.
2110
2111 2012-11-19  Thiago Marcos P. Santos  <thiago.santos@intel.com>
2112
2113         Apply the resolved viewport rules
2114         https://bugs.webkit.org/show_bug.cgi?id=95964
2115
2116         Reviewed by Kenneth Rohde Christiansen.
2117
2118         This patch implements the CSS Device Adaptation specification. The
2119         WebKit implementation relies on the already implemented Viewport Meta
2120         infrastructure to notify the browser of viewport changes.
2121
2122         The implementation was tests with success on the Qt and EFL ports, but
2123         basically every port supporting Viewport Meta should be fine.
2124
2125         The usage of @-webkit-viewport inside media queries (more tests coming
2126         to map all the corner cases) is currently limited when the media query
2127         depends on the viewport dimensions itself. Defining the width and height
2128         based on screen size will fail on ports reporting the screen
2129         size as the size of the browser window instead of the device screen.
2130
2131         Tests: css3/device-adapt/opera/cascading-001.xhtml
2132                css3/device-adapt/opera/cascading-002.xhtml
2133                css3/device-adapt/opera/cascading-003.xhtml
2134                css3/device-adapt/opera/cascading-004.xhtml
2135                css3/device-adapt/opera/constrain-001.xhtml
2136                css3/device-adapt/opera/constrain-002.xhtml
2137                css3/device-adapt/opera/constrain-003.xhtml
2138                css3/device-adapt/opera/constrain-004.xhtml
2139                css3/device-adapt/opera/constrain-005.xhtml
2140                css3/device-adapt/opera/constrain-006.xhtml
2141                css3/device-adapt/opera/constrain-007.xhtml
2142                css3/device-adapt/opera/constrain-008.xhtml
2143                css3/device-adapt/opera/constrain-009.xhtml
2144                css3/device-adapt/opera/constrain-010.xhtml
2145                css3/device-adapt/opera/constrain-011.xhtml
2146                css3/device-adapt/opera/constrain-012.xhtml
2147                css3/device-adapt/opera/constrain-013.xhtml
2148                css3/device-adapt/opera/constrain-014.xhtml
2149                css3/device-adapt/opera/constrain-015.xhtml
2150                css3/device-adapt/opera/constrain-016.xhtml
2151                css3/device-adapt/opera/constrain-017.xhtml
2152                css3/device-adapt/opera/constrain-020.xhtml
2153                css3/device-adapt/opera/syntax-001.xhtml
2154                css3/device-adapt/opera/syntax-002.xhtml
2155                css3/device-adapt/opera/syntax-003.xhtml
2156
2157         * CMakeLists.txt:
2158         * GNUmakefile.list.am:
2159         * Target.pri:
2160         * WebCore.gypi:
2161         * WebCore.vcproj/WebCore.vcproj:
2162         * WebCore.xcodeproj/project.pbxproj:
2163         * css/CSSAllInOne.cpp:
2164         * css/RuleSet.cpp:
2165         (WebCore::RuleSet::addRulesFromSheet):
2166         * css/StyleResolver.cpp:
2167         (WebCore::StyleResolver::StyleResolver):
2168         (WebCore::StyleResolver::appendAuthorStyleSheets):
2169         (WebCore::StyleResolver::~StyleResolver):
2170         * css/StyleResolver.h:
2171         (StyleResolver):
2172         (WebCore::StyleResolver::viewportStyleResolver):
2173         * css/ViewportStyleResolver.cpp: Added.
2174         (WebCore):
2175         (WebCore::ViewportStyleResolver::ViewportStyleResolver):
2176         (WebCore::ViewportStyleResolver::addViewportRule):
2177         (WebCore::ViewportStyleResolver::clearDocument):
2178         (WebCore::ViewportStyleResolver::resolve):
2179         (WebCore::ViewportStyleResolver::getViewportArgumentValue):
2180         * css/ViewportStyleResolver.h: Added.
2181         (WebCore):
2182         (ViewportStyleResolver):
2183         (WebCore::ViewportStyleResolver::create):
2184         * dom/Document.h:
2185         (WebCore::Document::setViewportArguments):
2186         * dom/ViewportArguments.cpp:
2187         (WebCore::compareIgnoringAuto):
2188         (WebCore):
2189         (WebCore::ViewportArguments::resolve):
2190         * dom/ViewportArguments.h:
2191         (ViewportAttributes):
2192         (WebCore::ViewportArguments::ViewportArguments):
2193         (ViewportArguments):
2194         (WebCore::ViewportArguments::operator==):
2195
2196 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2197
2198         Update DOMException name: SecurityError
2199         https://bugs.webkit.org/show_bug.cgi?id=102437
2200
2201         Reviewed by Kentaro Hara.
2202
2203         Patch 18 of 25 to update DOMException name to match the spec and Firefox.
2204
2205         Updated existing tests.
2206
2207         * dom/DOMCoreException.cpp:
2208
2209 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2210
2211         Update DOMException name: URLMismatchError
2212         https://bugs.webkit.org/show_bug.cgi?id=102511
2213
2214         Reviewed by Kentaro Hara.
2215
2216         Patch 21 of 25 to update DOMException name to match the spec and Firefox.
2217
2218         Updated existing tests.
2219
2220         * dom/DOMCoreException.cpp:
2221         (WebCore):
2222
2223 2012-11-19  Kihong Kwon  <kihong.kwon@samsung.com>
2224
2225         Add PROXIMITY_EVENTS feature
2226         https://bugs.webkit.org/show_bug.cgi?id=102658
2227
2228         Reviewed by Kentaro Hara.
2229
2230         Add PROXIMITY_EVENTS feature to xcode project for WebCorei and GNU make.
2231
2232         No new tests. Just add a new feature.
2233
2234         * Configurations/FeatureDefines.xcconfig:
2235         * GNUmakefile.features.am:
2236
2237 2012-11-19  Alexei Filippov  <alph@chromium.org>
2238
2239         Web Inspector: Dim a component's subitems' color in NMI snapshot
2240         https://bugs.webkit.org/show_bug.cgi?id=102224
2241
2242         Reviewed by Yury Semikhatsky.
2243
2244         * inspector/front-end/NativeMemorySnapshotView.js:
2245         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
2246         * inspector/front-end/nativeMemoryProfiler.css:
2247         (.native-snapshot-view .data-grid .dimmed div.size-bar):
2248
2249 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2250
2251         Update DOMException name: NetworkError
2252         https://bugs.webkit.org/show_bug.cgi?id=102503
2253
2254         Reviewed by Kentaro Hara.
2255
2256         Patch 19 of 25 to update DOMException name to match the spec and Firefox.
2257
2258         No code uses DOMException NetworkError. We do use NETWORK_ERR for XMLHttpRequestException. See bug 102506.
2259
2260         * dom/DOMCoreException.cpp:
2261
2262 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2263
2264         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2265         https://bugs.webkit.org/show_bug.cgi?id=102649
2266
2267         Reviewed by Adam Barth.
2268
2269         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2270         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2271         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2272
2273         No new tests as there is no new functionality.
2274
2275         * Modules/webaudio/AudioBufferSourceNode.cpp:
2276         (WebCore::AudioBufferSourceNode::looping):
2277         (WebCore::AudioBufferSourceNode::setLooping):
2278         * Modules/webaudio/AudioContext.cpp:
2279         (WebCore::AudioContext::AudioContext):
2280         (WebCore::AudioContext::stop):
2281         (WebCore::AudioContext::scriptExecutionContext):
2282         (WebCore::AudioContext::fireCompletionEvent):
2283         (WebCore::AudioContext::reportMemoryUsage):
2284         * Modules/webaudio/AudioContext.h:
2285         (AudioContext):
2286         * Modules/webaudio/ScriptProcessorNode.cpp:
2287         (WebCore::ScriptProcessorNode::fireProcessEvent):
2288         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2289
2290 2012-11-19  Ilya Tikhonovsky  <loislo@chromium.org>
2291
2292         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2293         https://bugs.webkit.org/show_bug.cgi?id=102356
2294
2295         Reviewed by Adam Barth.
2296
2297         A clean-up code was moved from uninitialize to clear method.
2298         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2299         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2300         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2301         adoptRef was added in createOfflineContext method.
2302         A guard was added into deleteMarkedNodes.
2303
2304         Test: inspector-protocol/nmi-webaudio-leak-test.html
2305
2306         * Modules/webaudio/AudioContext.cpp:
2307         (WebCore::AudioContext::createOfflineContext):
2308         (WebCore::AudioContext::AudioContext):
2309         (WebCore::AudioContext::constructCommon):
2310         (WebCore::AudioContext::~AudioContext):
2311         (WebCore::AudioContext::clear):
2312         (WebCore::AudioContext::uninitialize):
2313         (WebCore::AudioContext::stopDispatch):
2314         (WebCore::AudioContext::stop):
2315         (WebCore::AudioContext::markForDeletion):
2316         (WebCore::AudioContext::scheduleNodeDeletion):
2317         (WebCore::AudioContext::deleteMarkedNodes):
2318         * Modules/webaudio/AudioContext.h:
2319         (AudioContext):
2320         * bindings/v8/custom/V8AudioContextCustom.cpp:
2321         (WebCore::V8AudioContext::constructorCallback):
2322         * inspector/InspectorMemoryAgent.cpp:
2323         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2324         * platform/PlatformMemoryInstrumentation.cpp:
2325         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2326         (WebCore):
2327         * platform/PlatformMemoryInstrumentation.h:
2328         (PlatformMemoryInstrumentation):
2329         (WebCore):
2330
2331 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2332
2333         Update DOMException name: QuotaExceededError
2334         https://bugs.webkit.org/show_bug.cgi?id=102512
2335
2336         Reviewed by Kentaro Hara.
2337
2338         Patch 22 of 25 to update DOMException name to match the spec and Firefox.
2339
2340         Updated existing tests.
2341
2342         * dom/DOMCoreException.cpp:
2343
2344 2012-11-19  Erik Arvidsson  <arv@chromium.org>
2345
2346         Update DOMException name: AbortError
2347         https://bugs.webkit.org/show_bug.cgi?id=102508
2348
2349         Reviewed by Kentaro Hara.
2350
2351         Patch 20 of 25 to update DOMException name to match the spec and Firefox.
2352
2353         No code uses DOMException AbortError. We do use ABORT_ERR for XMLHttpRequestException. See bug 102506.
2354
2355         * dom/DOMCoreException.cpp:
2356
2357 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2358
2359         Unreviewed, rolling out r135111.
2360         http://trac.webkit.org/changeset/135111
2361         https://bugs.webkit.org/show_bug.cgi?id=102356
2362
2363         The patch caused crashes in several layout tests
2364
2365         * Modules/webaudio/AudioContext.cpp:
2366         (WebCore::AudioContext::createOfflineContext):
2367         (WebCore::AudioContext::AudioContext):
2368         (WebCore::AudioContext::constructCommon):
2369         (WebCore::AudioContext::~AudioContext):
2370         (WebCore::AudioContext::uninitialize):
2371         (WebCore::AudioContext::uninitializeDispatch):
2372         (WebCore::AudioContext::stop):
2373         (WebCore::AudioContext::markForDeletion):
2374         (WebCore::AudioContext::scheduleNodeDeletion):
2375         (WebCore::AudioContext::deleteMarkedNodes):
2376         * Modules/webaudio/AudioContext.h:
2377         (AudioContext):
2378         * bindings/v8/custom/V8AudioContextCustom.cpp:
2379         (WebCore::V8AudioContext::constructorCallback):
2380         * inspector/InspectorMemoryAgent.cpp:
2381         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2382         * platform/PlatformMemoryInstrumentation.cpp:
2383         (WebCore):
2384         * platform/PlatformMemoryInstrumentation.h:
2385
2386 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2387
2388         Unreviewed, rolling out r135116.
2389         http://trac.webkit.org/changeset/135116
2390         https://bugs.webkit.org/show_bug.cgi?id=102649
2391
2392         Revert this patch to revert r135111, which caused crashes in
2393         several layout tests
2394
2395         * Modules/webaudio/AudioBufferSourceNode.cpp:
2396         (WebCore::AudioBufferSourceNode::looping):
2397         (WebCore::AudioBufferSourceNode::setLooping):
2398         * Modules/webaudio/AudioContext.cpp:
2399         (WebCore::AudioContext::AudioContext):
2400         (WebCore::AudioContext::stop):
2401         (WebCore::AudioContext::document):
2402         (WebCore):
2403         (WebCore::AudioContext::hasDocument):
2404         (WebCore::AudioContext::scriptExecutionContext):
2405         (WebCore::AudioContext::fireCompletionEvent):
2406         (WebCore::AudioContext::reportMemoryUsage):
2407         * Modules/webaudio/AudioContext.h:
2408         (AudioContext):
2409         * Modules/webaudio/ScriptProcessorNode.cpp:
2410         (WebCore::ScriptProcessorNode::fireProcessEvent):
2411         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2412
2413 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2414
2415         Web Inspector: Refine JsDoc in DebuggerScriptMapping.js
2416         https://bugs.webkit.org/show_bug.cgi?id=102673
2417
2418         Reviewed by Vsevolod Vlasov.
2419
2420         DebuggerScriptMapping calls public method "addScript" not defined
2421         in SourceMapping interface.
2422
2423         To make things clear I've added ScriptSourceMapping interface that
2424         extends SourceMapping interface by adding "addScript" method.
2425
2426         * inspector/front-end/SourceMapping.js: Added "ScriptSourceMapping".
2427         * inspector/front-end/CompilerScriptMapping.js:
2428         Updated "@implements" to ScriptSourceMapping.
2429         * inspector/front-end/ResourceScriptMapping.js: Ditto.
2430         * inspector/front-end/ScriptSnippetModel.js: Ditto.
2431         * inspector/front-end/DebuggerScriptMapping.js: Updated signatures.
2432         Removed useless code.
2433
2434 2012-11-19  Tim Horton  <timothy_horton@apple.com>
2435
2436         Unreviewed, untested build fix.
2437
2438         * bindings/scripts/IDLParser.pm:
2439         (parseModule):
2440
2441 2012-11-19  Dongwoo Joshua Im  <dw.im@samsung.com>
2442
2443         [CSS3] Move CSSPropertyWebkitTextAlignLast into isValidKeywordPropertyAndValue function
2444         https://bugs.webkit.org/show_bug.cgi?id=102303
2445
2446         Reviewed by Alexis Menard.
2447
2448         Move the part which check whether CSSPropertyWebkitTextAlignLast has available value
2449         into the isValidKeywordPropertyAndValue function, like the same kind of properties.
2450         This will help speed wise in JS.
2451
2452         No new functionality, no new tests.
2453
2454         * css/CSSParser.cpp:
2455         (WebCore::isValidKeywordPropertyAndValue):
2456         (WebCore::isKeywordPropertyID):
2457         (WebCore::CSSParser::parseValue):
2458
2459 2012-11-19  Keishi Hattori  <keishi@webkit.org>
2460
2461         REGRESSION (r133565): Calendar picker isn't animating when changing month by pressing 't'
2462         https://bugs.webkit.org/show_bug.cgi?id=102660
2463
2464         Reviewed by Kent Tamura.
2465
2466         The calendar picker used to animate when you press 't'.
2467
2468         No new tests.
2469
2470         * Resources/pagepopups/calendarPicker.js:
2471         (DaysTable.prototype.selectRange):
2472
2473 2012-11-19  Kent Tamura  <tkent@chromium.org>
2474
2475         input.value="" should clear date/time input elements with partial values
2476         https://bugs.webkit.org/show_bug.cgi?id=102645
2477
2478         Reviewed by Kentaro Hara.
2479
2480         Tests: fast/forms/date-multiple-fields/date-multiple-fields-value-set-empty.html
2481                fast/forms/datetime-multiple-fields/datetime-multiple-fields-value-set-empty.html
2482                fast/forms/datetimelocal-multiple-fields/datetimelocal-multiple-fields-value-set-empty.html
2483                fast/forms/month-multiple-fields/month-multiple-fields-value-set-empty.html
2484                fast/forms/time-multiple-fields/time-multiple-fields-value-set-empty.html
2485                fast/forms/week-multiple-fields/week-multiple-fields-value-set-empty.html
2486
2487         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
2488         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setValue):
2489         If the new value is an empty string and sub-fields has values, we should
2490         update the UI value to the empty state.
2491         * html/DateTimeFieldsState.h:
2492         (WebCore::DateTimeFieldsState::hasAnyValue):
2493         Added. It returns true if one or more sub-fields are not empty.
2494
2495 2012-11-19  Andrey Adaikin  <aandrey@chromium.org>
2496
2497         Web Inspector: [Canvas] if many canvases are being instrumented show the screenshot of the first one
2498         https://bugs.webkit.org/show_bug.cgi?id=102522
2499
2500         Reviewed by Yury Semikhatsky.
2501
2502         When many canvases are being instrumented we'll want to show replay screenshots for each canvas.
2503         Meanwhile, show the screenshot of the first one (instead of the last one), as it's likely to be the "main" canvas.
2504         Drive-by: add more typification for the JS compiler.
2505         Drive-by: create a new canvas for WebGL replay every time (similar to 2D replay) to avoid problems with resetting the context state.
2506
2507         * inspector/InjectedScriptCanvasModuleSource.js:
2508         (.):
2509
2510 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2511
2512         Remove IDLStructure.pm
2513         https://bugs.webkit.org/show_bug.cgi?id=102642
2514
2515         Reviewed by Adam Barth.
2516
2517         Previously IDLStructure.pm was full of regular expressions to
2518         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2519         just contains several data structures for the IDL parser. We can
2520         move them to IDLParser.pm and thus remove IDLStructure.pm.
2521
2522         No tests. No change in generated code.
2523
2524         * CMakeLists.txt:
2525         * DerivedSources.make:
2526         * DerivedSources.pri:
2527         * GNUmakefile.am:
2528         * WebCore.gyp/WebCore.gyp:
2529         * WebCore.vcproj/MigrateScripts:
2530         * WebCore.vcproj/WebCore.vcproj:
2531         * WebCore.xcodeproj/project.pbxproj:
2532         * bindings/scripts/IDLParser.pm:
2533         (Parse):
2534         (parseInterface):
2535         (parseException):
2536         (parseConst):
2537         (parseAttributeRest):
2538         (parseOperationRest):
2539         (parseOptionalOrRequiredArgument):
2540         (parseExceptionField):
2541         (parseInterfaceOld):
2542         (parseExceptionOld):
2543         (parseAttributeRestOld):
2544         (applyExtendedAttributeList):
2545         * bindings/scripts/IDLStructure.pm: Removed.
2546
2547 2012-11-19  Alexei Filippov  <alph@chromium.org>
2548
2549         Web Inspector: refine time and bytes output formatting
2550         https://bugs.webkit.org/show_bug.cgi?id=102265
2551
2552         Reviewed by Yury Semikhatsky.
2553
2554         Add a space between number and unit, otherwise it's hard to read things like 88B.
2555         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2556
2557         * English.lproj/localizedStrings.js:
2558         * inspector/front-end/CookiesTable.js:
2559         (WebInspector.CookiesTable.prototype._createGridNode):
2560         * inspector/front-end/UIUtils.js:
2561         (Number.secondsToString):
2562         (Number.bytesToString):
2563
2564 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2565
2566         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2567         https://bugs.webkit.org/show_bug.cgi?id=102383
2568
2569         Reviewed by Yury Semikhatsky.
2570
2571         Fixed string presentation of event.
2572
2573         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2574
2575 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2576
2577         Remove IDLStructure.pm
2578         https://bugs.webkit.org/show_bug.cgi?id=102642
2579
2580         Reviewed by Adam Barth.
2581
2582         Previously IDLStructure.pm was full of regular expressions to
2583         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2584         just contains several data structures for the IDL parser. We can
2585         move them to IDLParser.pm and thus remove IDLStructure.pm.
2586
2587         No tests. No change in generated code.
2588
2589         * CMakeLists.txt:
2590         * DerivedSources.make:
2591         * DerivedSources.pri:
2592         * GNUmakefile.am:
2593         * WebCore.gyp/WebCore.gyp:
2594         * WebCore.vcproj/MigrateScripts:
2595         * WebCore.vcproj/WebCore.vcproj:
2596         * WebCore.xcodeproj/project.pbxproj:
2597         * bindings/scripts/IDLParser.pm:
2598         (Parse):
2599         (parseInterface):
2600         (parseException):
2601         (parseConst):
2602         (parseAttributeRest):
2603         (parseOperationRest):
2604         (parseOptionalOrRequiredArgument):
2605         (parseExceptionField):
2606         (parseInterfaceOld):
2607         (parseExceptionOld):
2608         (parseAttributeRestOld):
2609         (applyExtendedAttributeList):
2610         * bindings/scripts/IDLStructure.pm: Removed.
2611
2612 2012-11-19  Alexei Filippov  <alph@chromium.org>
2613
2614         Web Inspector: refine time and bytes output formatting
2615         https://bugs.webkit.org/show_bug.cgi?id=102265
2616
2617         Reviewed by Yury Semikhatsky.
2618
2619         Add a space between number and unit, otherwise it's hard to read things like 88B.
2620         Reduce a number of decimal digits in KB and MB formats. 1023.45KB seems to be too detailed.
2621
2622         * English.lproj/localizedStrings.js:
2623         * inspector/front-end/CookiesTable.js:
2624         (WebInspector.CookiesTable.prototype._createGridNode):
2625         * inspector/front-end/UIUtils.js:
2626         (Number.secondsToString):
2627         (Number.bytesToString):
2628
2629 2012-11-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
2630
2631         Web Inspector: Timeline: DomContentLoaded event labeled incorrectly
2632         https://bugs.webkit.org/show_bug.cgi?id=102383
2633
2634         Reviewed by Yury Semikhatsky.
2635
2636         Fixed string presentation of event.
2637
2638         * inspector/front-end/TimelinePresentationModel.js: Fixed string.
2639
2640 2012-11-19  Kentaro Hara  <haraken@chromium.org>
2641
2642         Unreviewed, rolling out r135114.
2643         http://trac.webkit.org/changeset/135114
2644         https://bugs.webkit.org/show_bug.cgi?id=102642
2645
2646         it broke Qt build
2647
2648         * CMakeLists.txt:
2649         * DerivedSources.make:
2650         * DerivedSources.pri:
2651         * GNUmakefile.am:
2652         * WebCore.gyp/WebCore.gyp:
2653         * WebCore.vcproj/MigrateScripts:
2654         * WebCore.vcproj/WebCore.vcproj:
2655         * WebCore.xcodeproj/project.pbxproj:
2656         * bindings/scripts/IDLParser.pm:
2657         (Parse):
2658         (parseInterface):
2659         (parseException):
2660         (parseConst):
2661         (parseAttributeRest):
2662         (parseOperationRest):
2663         (parseOptionalOrRequiredArgument):
2664         (parseExceptionField):
2665         (parseInterfaceOld):
2666         (parseExceptionOld):
2667         (parseAttributeRestOld):
2668         (applyExtendedAttributeList):
2669         * bindings/scripts/IDLStructure.pm: Added.
2670
2671 2012-11-19  Vsevolod Vlasov  <vsevik@chromium.org>
2672
2673         Unreviewed inspector closure compilation fix.
2674
2675         * inspector/front-end/ObjectPropertiesSection.js:
2676         * inspector/front-end/externs.js:
2677
2678 2012-11-18  Ilya Tikhonovsky  <loislo@chromium.org>
2679
2680         webaudio: clean-up. Replace AudioContext::m_document member with ContextDestructionObserver::scriptExecutionContext().
2681         https://bugs.webkit.org/show_bug.cgi?id=102649
2682
2683         Reviewed by Adam Barth.
2684
2685         AudioContext uses m_document only as a pointer to ScriptExecutionContext.
2686         It could be safely replaced with ContextDestructionObserver::m_scriptExecutionContext.
2687         The lifetime of m_scriptExecutionContext is slightly different but it could be adjusted by m_isStopScheduled flag.
2688
2689         No new tests as there is no new functionality.
2690
2691         * Modules/webaudio/AudioBufferSourceNode.cpp:
2692         (WebCore::AudioBufferSourceNode::looping):
2693         (WebCore::AudioBufferSourceNode::setLooping):
2694         * Modules/webaudio/AudioContext.cpp:
2695         (WebCore::AudioContext::AudioContext):
2696         (WebCore::AudioContext::stop):
2697         (WebCore::AudioContext::fireCompletionEvent):
2698         (WebCore::AudioContext::reportMemoryUsage):
2699         * Modules/webaudio/AudioContext.h:
2700         (WebCore::AudioContext::scriptExecutionContext):
2701         (AudioContext):
2702         * Modules/webaudio/ScriptProcessorNode.cpp:
2703         (WebCore::ScriptProcessorNode::fireProcessEvent):
2704         (WebCore::ScriptProcessorNode::scriptExecutionContext):
2705
2706 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2707
2708         [V8] Remove unused variables from CodeGeneratorV8.pm
2709         https://bugs.webkit.org/show_bug.cgi?id=102648
2710
2711         Reviewed by Adam Barth.
2712
2713         No tests. No change in generated code.
2714
2715         * bindings/scripts/CodeGeneratorV8.pm:
2716         (GenerateInterface):
2717         (GenerateHeader):
2718         (GetInternalFields):
2719         (GenerateNormalAttrGetter):
2720         (GenerateSingleBatchedAttribute):
2721         (GenerateImplementationCustomCall):
2722         (GenerateFunctionCallString):
2723         (CreateCustomSignature):
2724         (GetContextEnableFunction):
2725
2726 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2727
2728         Remove IDLStructure.pm
2729         https://bugs.webkit.org/show_bug.cgi?id=102642
2730
2731         Reviewed by Adam Barth.
2732
2733         Previously IDLStructure.pm was full of regular expressions to
2734         parse IDL files. Now a new IDL parser is implemented, IDLStructure.pm
2735         just contains several data structures for the IDL parser. We can
2736         move them to IDLParser.pm and thus remove IDLStructure.pm.
2737
2738         No tests. No change in generated code.
2739
2740         * CMakeLists.txt:
2741         * DerivedSources.make:
2742         * DerivedSources.pri:
2743         * GNUmakefile.am:
2744         * WebCore.gyp/WebCore.gyp:
2745         * WebCore.vcproj/MigrateScripts:
2746         * WebCore.vcproj/WebCore.vcproj:
2747         * WebCore.xcodeproj/project.pbxproj:
2748         * bindings/scripts/IDLParser.pm:
2749         (Parse):
2750         (parseInterface):
2751         (parseException):
2752         (parseConst):
2753         (parseAttributeRest):
2754         (parseOperationRest):
2755         (parseOptionalOrRequiredArgument):
2756         (parseExceptionField):
2757         (parseInterfaceOld):
2758         (parseExceptionOld):
2759         (parseAttributeRestOld):
2760         (applyExtendedAttributeList):
2761         * bindings/scripts/IDLStructure.pm: Removed.
2762
2763 2012-11-18  Kentaro Hara  <haraken@chromium.org>
2764
2765         [V8] Make more use of $v8Interface in CodeGeneratorV8.pm
2766         https://bugs.webkit.org/show_bug.cgi?id=102639
2767
2768         Reviewed by Adam Barth.
2769
2770         We can replace hard-coded "V8${interfaceName}" with $v8Interface.
2771
2772         No tests. No change in generated code.
2773
2774         * bindings/scripts/CodeGeneratorV8.pm:
2775         (GenerateNormalAttrGetter):
2776         (GenerateNormalAttrSetter):
2777         (GenerateFunctionCallback):
2778         (GenerateNamedConstructorCallback):
2779         (GenerateImplementationIndexer):
2780         (GenerateImplementationNamedPropertyGetter):
2781         (GenerateImplementation):
2782
2783 2012-11-16  Ilya Tikhonovsky  <loislo@chromium.org>
2784
2785         webaudio: leak: AudioContext objects are leaking. They retain 36mb of shared data.
2786         https://bugs.webkit.org/show_bug.cgi?id=102356
2787
2788         Reviewed by Adam Barth.
2789
2790         A clean-up code was moved from uninitialize to clear method.
2791         AudioContext marks itself as hasPendingActivity in method constructCommon and unmarks itself in method clear.
2792         m_isStopScheduled filters out second ActiveDOMObject::stop call.
2793         markForDeletion appends AudioNode pointer to m_nodesToDelete array if there is no active audio thread.
2794         adoptRef was added in createOfflineContext method.
2795
2796         Test: inspector-protocol/nmi-webaudio-leak-test.html
2797
2798         * Modules/webaudio/AudioContext.cpp:
2799         (WebCore::AudioContext::createOfflineContext):
2800         (WebCore::AudioContext::AudioContext):
2801         (WebCore::AudioContext::constructCommon):
2802         (WebCore::AudioContext::~AudioContext):
2803         (WebCore::AudioContext::clear):
2804         (WebCore::AudioContext::uninitialize):
2805         (WebCore::AudioContext::stopDispatch):
2806         (WebCore::AudioContext::stop):
2807         (WebCore::AudioContext::markForDeletion):
2808         (WebCore::AudioContext::scheduleNodeDeletion):
2809         (WebCore::AudioContext::deleteMarkedNodes):
2810         * Modules/webaudio/AudioContext.h:
2811         (AudioContext):
2812         * bindings/v8/custom/V8AudioContextCustom.cpp:
2813         (WebCore::V8AudioContext::constructorCallback):
2814         * inspector/InspectorMemoryAgent.cpp:
2815         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
2816         * platform/PlatformMemoryInstrumentation.cpp:
2817         (WebCore::PlatformMemoryInstrumentation::reportMemoryUsage):
2818         (WebCore):
2819         * platform/PlatformMemoryInstrumentation.h:
2820         (PlatformMemoryInstrumentation):
2821         (WebCore):
2822
2823 2012-11-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2824
2825         min/max/step support for calendar picker on datetime/datetime-local
2826         https://bugs.webkit.org/show_bug.cgi?id=102628
2827
2828         Reviewed by Kent Tamura.
2829
2830         Gray out dates with no allowed values on calendar picker for datetime/datetime-local
2831         when values are limited by min/max/step attributes.
2832
2833         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-with-step.html
2834
2835         * Resources/pagepopups/calendarPicker.js:
2836         (CalendarPicker.prototype._stepMismatch):
2837         Returns true iff there are any allowed values in the given day.
2838
2839 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2840
2841         Remove non-existent directories from the make system
2842         https://bugs.webkit.org/show_bug.cgi?id=102632
2843
2844         Reviewed by Adam Barth.
2845
2846         Remove (non-existent) symbian references from the exclude list in gyp project files.
2847
2848         No new tests as there is no new functionality.
2849
2850         * WebCore.gyp/WebCore.gyp:
2851
2852 2012-11-18  Patrick Gansterer  <paroga@webkit.org>
2853
2854         [WIN] Add a IMLangFontLinkType typedef
2855         https://bugs.webkit.org/show_bug.cgi?id=102584
2856
2857         Reviewed by Brent Fulgham.
2858
2859         Add a central typedef for IMLangFontLink(2) to get rid of a bunch of ifdefs.
2860
2861         * platform/graphics/FontCache.h:
2862         (WebCore):
2863         * platform/graphics/win/FontCacheWin.cpp:
2864         (WebCore::FontCache::getFontLinkInterface):
2865         (WebCore::getCJKCodePageMasks):
2866         (WebCore::createMLangFont):
2867         (WebCore::FontCache::getFontDataForCharacters):
2868         * platform/graphics/win/SimpleFontDataWin.cpp:
2869         (WebCore::SimpleFontData::containsCharacters):
2870         * platform/graphics/wince/FontCacheWinCE.cpp:
2871         (WebCore):
2872         (WebCore::FontCache::getFontLinkInterface):
2873         (WebCore::getCJKCodePageMasks):
2874         (WebCore::FontCache::getFontDataForCharacters):
2875         * platform/graphics/wince/FontPlatformData.cpp:
2876         (WebCore::FontFamilyCodePageInfo::codePages):
2877         (WebCore::FixedSizeFontData::create):
2878         * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
2879         (WebCore::GlyphPage::fill):
2880
2881 2012-11-18  Mike West  <mkwst@chromium.org>
2882
2883         Web Inspector: Remove unused ConsoleMessage constructor.
2884         https://bugs.webkit.org/show_bug.cgi?id=102590
2885
2886         Reviewed by Brent Fulgham.
2887
2888         We currently have a ConsoleMessage constructor that's unused. Let's
2889         kill it.
2890
2891         * inspector/ConsoleMessage.cpp:
2892         * inspector/ConsoleMessage.h:
2893         (ConsoleMessage):
2894             Removing an unused constructor variant.
2895
2896 2012-11-18  Andreas Kling  <akling@apple.com>
2897
2898         StyledElement: Make handling the "style" attribute a litte faster.
2899         <http://webkit.org/b/102623>
2900
2901         Reviewed by Ojan Vafai.
2902
2903         We know that "style" is never a presentation attribute, so avoid the virtual call to isPresentationAttribute()
2904         by hoisting the parseAttribute() logic up into attributeChanged().
2905         Did the same thing with Element::parseAttribute() for consistency.
2906
2907         Knocks ~0.6% of samples off of the DOM/CreateNodes performance test.
2908
2909         * dom/Element.cpp:
2910         (WebCore::Element::attributeChanged):
2911         * dom/Element.h:
2912         (WebCore::Element::parseAttribute):
2913         * dom/StyledElement.cpp:
2914         (WebCore::StyledElement::attributeChanged):
2915         * dom/StyledElement.h:
2916         (StyledElement):
2917
2918 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
2919
2920         [CMake] Consolidate common input files
2921         https://bugs.webkit.org/show_bug.cgi?id=101632
2922
2923         Reviewed by Rob Buis.
2924
2925         Consolidate and sort the list of files, move common source files
2926         into CMakeLists.txt from the port specific files.
2927
2928         No new tests as there is no new functionality.
2929
2930         * CMakeLists.txt:
2931         * PlatformBlackBerry.cmake:
2932         * PlatformEfl.cmake:
2933         * PlatformWinCE.cmake:
2934
2935 2012-11-18  Andreas Kling  <akling@apple.com>
2936
2937         Tighten small SharedBuffers by reserving the exact amount of space needed.
2938         <http://webkit.org/b/102625>
2939
2940         Reviewed by Anders Carlsson.
2941
2942         When adding the first chunk to a small (<4096 bytes) SharedBuffer, reserve the exact
2943         amount of space needed instead of leaving it to Vector<char>::append().
2944
2945         1.86MB progression on Membuster3.
2946
2947         * platform/SharedBuffer.cpp:
2948         (WebCore::SharedBuffer::append):
2949
2950 2012-11-18  Ryosuke Niwa  <rniwa@webkit.org>
2951
2952         Make namedItem return a node list only in HTMLFormControlsCollection and HTMLOptionsCollection
2953         https://bugs.webkit.org/show_bug.cgi?id=101311
2954
2955         Reviewed by Darin Adler.
2956
2957         Introduce two new interfaces HTMLFormControlsCollection and HTMLOptionsCollection to be used by form.elements
2958         and select.options. These two interfaces have the named getter and namedItem that returns a live NodeList when
2959         there are multiple matches. Introducing these two interfaces allow us to make "regular" HTMLCollection's named
2960         getter and namedItem return exactly one node or null as specified in HTML5:
2961         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#collections-0
2962
2963         Unfortunately, HTMLOptionsCollection still has a bug that its named getter and namedItem returns
2964         a static NodeList instead of a live NodeList (DynamicNodeList) at the moment.
2965
2966         Also got rid of Document::objects since it's not exposed in IDL or called anywhere.
2967
2968         Test: fast/dom/html-collections-namedItem.html
2969
2970         * CMakeLists.txt:
2971         * DerivedSources.cpp:
2972         * DerivedSources.make:
2973         * DerivedSources.pri:
2974         * GNUmakefile.list.am:
2975         * Target.pri:
2976         * UseJSC.cmake:
2977         * UseV8.cmake:
2978         * WebCore.gypi:
2979         * WebCore.vcproj/WebCore.vcproj:
2980         * WebCore.xcodeproj/project.pbxproj:
2981         * bindings/js/JSBindingsAllInOne.cpp:
2982         * bindings/js/JSHTMLAllCollectionCustom.cpp:
2983         (WebCore::getNamedItems):
2984         * bindings/js/JSHTMLCollectionCustom.cpp:
2985         (WebCore::JSHTMLCollection::nameGetter): Now returns exactly one node or null.
2986         (WebCore::toJS):
2987         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Added.
2988         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
2989         (WebCore::JSHTMLFormControlsCollection::canGetItemsForName):
2990         (WebCore::JSHTMLFormControlsCollection::nameGetter):
2991         (WebCore::JSHTMLFormControlsCollection::namedItem):
2992         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2993         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
2994         This is a bug. It should be a live NodeList instead.
2995         (WebCore::JSHTMLOptionsCollection::canGetItemsForName):
2996         (WebCore::JSHTMLOptionsCollection::nameGetter):
2997         (WebCore::JSHTMLOptionsCollection::namedItem):
2998         * bindings/js/CodeGeneratorJS.pm: Include JSNode.js for all HTML*Collection interfaces for simplicity.
2999         * bindings/js/CodeGeneratorV8.pm: HTMLOptionsCollection now inherits from HTMLCollection. See
3000         http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#htmloptionscollection
3001         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp: Pass in isolate when we can.
3002         (WebCore::getNamedItems): Added a comment about how we should be returning
3003         a HTMLCollection when there are multiple matches.
3004         (WebCore::getItem):
3005         (WebCore::V8HTMLAllCollection::namedPropertyGetter):
3006         (WebCore::V8HTMLAllCollection::namedItemCallback):
3007         * bindings/v8/custom/V8HTMLCollectionCustom.cpp: Now returns exactly one node or null.
3008         (WebCore::V8HTMLCollection::namedPropertyGetter):
3009         (WebCore::toV8):
3010         * bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp: Added.
3011         (WebCore::getNamedItems): Returns RadioNodeList when there are multiple matches.
3012         (WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
3013         (WebCore::V8HTMLFormControlsCollection::namedItemCallback):
3014         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
3015         (WebCore::getNamedItems): Returns a static NodeList when there are multiple matches.
3016         This is a bug. It should be a live NodeList instead.
3017         (WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
3018         (WebCore::V8HTMLOptionsCollection::namedItemCallback):
3019         * dom/Document.cpp: Removed Document::objects since it was not used anywhere.
3020         * dom/Document.h:
3021         (Document):
3022         * dom/Element.cpp:
3023         (WebCore::ElementRareData::ensureCachedHTMLCollection): form.elements should instantiate
3024         a HTMLFormControlsCollection instead of a HTMLCollection.
3025         * html/CollectionType.h:
3026         * html/HTMLCollection.idl: Removed [Custom] since namedItem is a regular function call now.
3027         * html/HTMLFieldSetElement.cpp:
3028         * html/HTMLFieldSetElement.h:
3029         * html/HTMLFormCollection.cpp: Removed.
3030         * html/HTMLFormCollection.h: Removed.
3031         * html/HTMLFormControlsCollection.cpp: Copied from Source/WebCore/html/HTMLFormCollection.cpp.
3032         (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
3033         (WebCore::HTMLFormControlsCollection::create):
3034         (WebCore::HTMLFormControlsCollection::~HTMLFormControlsCollection):
3035         (WebCore::HTMLFormControlsCollection::formControlElements):
3036         (WebCore::HTMLFormControlsCollection::formImageElements):
3037         (WebCore::HTMLFormControlsCollection::virtualItemAfter):
3038         (WebCore::HTMLFormControlsCollection::namedItem):
3039         (WebCore::HTMLFormControlsCollection::updateNameCache):
3040         * html/HTMLFormControlsCollection.h: Copied from Source/WebCore/html/HTMLFormCollection.h.
3041         (HTMLFormControlsCollection):
3042         * html/HTMLFormControlsCollection.idl: Added.
3043         * html/HTMLFormElement.cpp:
3044         * html/HTMLFormElement.h:
3045         * html/HTMLOptionsCollection.idl:
3046
3047 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3048
3049         [V8] Rename $className to $v8InterfaceName
3050         https://bugs.webkit.org/show_bug.cgi?id=102487
3051
3052         Reviewed by Adam Barth.
3053
3054         In CodeGeneratorV8.pm, $className is always "V8$interfaceName".
3055         We should rename $className to $v8InterfaceName. Also we can
3056         remove GetCallbackClassName().
3057
3058         No tests. No change in behavior.
3059
3060         * bindings/scripts/CodeGeneratorV8.pm:
3061         (GenerateHeader):
3062         (GetHeaderClassInclude):
3063         (GenerateDomainSafeFunctionGetter):
3064         (GenerateDomainSafeFunctionSetter):
3065         (GenerateParametersCheck):
3066         (GenerateImplementation):
3067         (GenerateHeaderContentHeader):
3068         (GenerateImplementationContentHeader):
3069         (GenerateCallbackHeader):
3070         (GenerateCallbackImplementation):
3071         (GenerateToV8Converters):
3072         (GetPassRefPtrType):
3073
3074 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3075
3076         [V8] Remove GetTypeFromSignature() from CodeGeneratorV8.pm
3077         https://bugs.webkit.org/show_bug.cgi?id=102499
3078
3079         Reviewed by Adam Barth.
3080
3081         No tests. No change in behavior.
3082
3083         * bindings/scripts/CodeGeneratorV8.pm:
3084         (GenerateNormalAttrGetter):
3085         (GenerateNormalAttrSetter):
3086         (GenerateParametersCheckExpression):
3087         (GenerateParametersCheck):
3088         (GenerateFunctionCallString):
3089         (GetNativeTypeFromSignature):
3090         (TranslateParameter):
3091         (TypeCanFailConversion):
3092         (JSValueToNative):
3093         (NativeToJSValue):
3094
3095 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3096
3097         Remove GenerateModule() from all code generators
3098         https://bugs.webkit.org/show_bug.cgi?id=102490
3099
3100         Reviewed by Adam Barth.
3101
3102         WebKit IDL files no longer support modules. The Web IDL spec
3103         no longer supports modules. We can remove it from code generators.
3104
3105         No tests. No change in behavior.
3106
3107         * bindings/scripts/CodeGenerator.pm:
3108         (ProcessDocument):
3109         * bindings/scripts/CodeGeneratorCPP.pm:
3110         * bindings/scripts/CodeGeneratorGObject.pm:
3111         * bindings/scripts/CodeGeneratorJS.pm:
3112         * bindings/scripts/CodeGeneratorObjC.pm:
3113         * bindings/scripts/CodeGeneratorV8.pm:
3114
3115 2012-11-18  Kentaro Hara  <haraken@chromium.org>
3116
3117         [V8] Get rid of unused functions and inline redundant functions in CodeGeneratorV8.pm
3118         https://bugs.webkit.org/show_bug.cgi?id=102497
3119
3120         Reviewed by Adam Barth.
3121
3122         No tests. No change in behavior.
3123
3124         * bindings/scripts/CodeGeneratorV8.pm:
3125         (GenerateDomainSafeFunctionGetter):
3126         (GenerateNormalAttrGetter):
3127         (GenerateFunctionCallString):
3128
3129 2012-11-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3130
3131         Unreviewed, rolling out r135074.
3132         http://trac.webkit.org/changeset/135074
3133         https://bugs.webkit.org/show_bug.cgi?id=102619
3134
3135         Made most layout tests crash. (Requested by rakuco on
3136         #webkit).
3137
3138         * PlatformEfl.cmake:
3139         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3140         (WebCore::GraphicsContext3D::create):
3141         (WebCore::GraphicsContext3D::GraphicsContext3D):
3142         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3143         (WebCore::GraphicsContext3D::makeContextCurrent):
3144         (WebCore::GraphicsContext3D::setContextLostCallback):
3145         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3146         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3147         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3148         (WebCore::GraphicsContext3DPrivate::createSurface):
3149         (WebCore::GraphicsContext3DPrivate::setCurrentGLContext):
3150         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
3151         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
3152         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
3153         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
3154         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
3155         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3156         (GraphicsContext3DPrivate):
3157         * platform/graphics/opengl/GLDefs.h: Removed.
3158         * platform/graphics/opengl/GLPlatformContext.cpp: Removed.
3159         * platform/graphics/opengl/GLPlatformContext.h: Removed.
3160         * platform/graphics/opengl/GLPlatformSurface.cpp: Removed.
3161         * platform/graphics/opengl/GLPlatformSurface.h: Removed.
3162         * platform/graphics/surfaces/glx/GLXContext.cpp: Removed.
3163         * platform/graphics/surfaces/glx/GLXContext.h: Removed.
3164         * platform/graphics/surfaces/glx/GLXSurface.cpp: Removed.
3165         * platform/graphics/surfaces/glx/GLXSurface.h: Removed.
3166
3167 2012-11-18  Antti Koivisto  <antti@apple.com>
3168
3169         REGRESSION(r129644): User StyleSheet not applying
3170         https://bugs.webkit.org/show_bug.cgi?id=102110
3171
3172         Reviewed by Andreas Kling.
3173
3174         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
3175         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
3176         
3177         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
3178         It also generally cleans up the code around injected and user stylesheets.
3179
3180         Tests: userscripts/user-script-and-stylesheet.html
3181                userscripts/user-stylesheet-invalidate.html
3182
3183         * css/StyleResolver.cpp:
3184         (WebCore::StyleResolver::StyleResolver):
3185         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
3186         (WebCore::collectCSSOMWrappers):
3187         * css/StyleResolver.h:
3188         (StyleResolver):
3189         * dom/Document.cpp:
3190         (WebCore::Document::setCompatibilityMode):
3191         * dom/DocumentStyleSheetCollection.cpp:
3192         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
3193         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
3194         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
3195         (WebCore):
3196         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
3197         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
3198         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
3199         (WebCore::DocumentStyleSheetCollection::addUserSheet):
3200         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
3201         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
3202         * dom/DocumentStyleSheetCollection.h:
3203         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
3204         (DocumentStyleSheetCollection):
3205         * page/PageGroup.cpp:
3206         (WebCore::PageGroup::addUserStyleSheetToWorld):
3207         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
3208         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
3209         (WebCore::PageGroup::removeAllUserContent):
3210         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
3211         * page/PageGroup.h:
3212         (PageGroup):
3213
3214 2012-11-18  Adam Barth  <abarth@webkit.org>
3215
3216         Unreviewed.
3217
3218         Update run-bindings-tests baselines after
3219         http://trac.webkit.org/changeset/135063
3220
3221         * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
3222         (JSTestActiveDOMObjectOwner):
3223         * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
3224         (JSTestCustomNamedGetterOwner):
3225         * bindings/scripts/test/JS/JSTestEventConstructor.h:
3226         (JSTestEventConstructorOwner):
3227         * bindings/scripts/test/JS/JSTestEventTarget.h:
3228         (JSTestEventTargetOwner):
3229         * bindings/scripts/test/JS/JSTestException.h:
3230         (JSTestExceptionOwner):
3231         * bindings/scripts/test/JS/JSTestInterface.h:
3232         (JSTestInterfaceOwner):
3233         * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
3234         (JSTestMediaQueryListListenerOwner):
3235         * bindings/scripts/test/JS/JSTestNamedConstructor.h:
3236         (JSTestNamedConstructorOwner):
3237         * bindings/scripts/test/JS/JSTestObj.h:
3238         (JSTestObjOwner):
3239         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
3240         (JSTestOverloadedConstructorsOwner):
3241         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
3242         (JSTestSerializedScriptValueInterfaceOwner):
3243
3244 2012-11-18  Simon Fraser  <simon.fraser@apple.com>
3245
3246         Make convertToLayerCoords iterative, rather than recursive
3247         https://bugs.webkit.org/show_bug.cgi?id=102618
3248
3249         Reviewed by Antti Koivisto.
3250
3251         RenderLayer::convertToLayerCoords() is a hot function on profiles.
3252         Change it to be iterative, rather than recursive, so that the
3253         bulk of the function can be inlined.
3254         
3255         Was tested with assertions against the old code during development.
3256
3257         * rendering/RenderLayer.cpp:
3258         (WebCore::accumulateOffsetTowardsAncestor):
3259         (WebCore::RenderLayer::convertToLayerCoords):
3260
3261 2012-11-18  Andreas Kling  <akling@apple.com>
3262
3263         Inline the StyledElement constructor.
3264         <http://webkit.org/b/102615>
3265
3266         Reviewed by Antti Koivisto.
3267
3268         StyledElement sits between Element and HTMLElement in the inheritance chain, and both of those are inline. 
3269         Knocks ~0.4% of samples off of the DOM/CreateNodes performance test.
3270
3271         * dom/StyledElement.cpp:
3272         * dom/StyledElement.h:
3273         (WebCore::StyledElement::StyledElement):
3274
3275 2012-11-18  Andreas Kling  <akling@apple.com>
3276
3277         HTMLMediaElement: Skip unnecessary attribute lookup in parsing of "src" attribute.
3278         <http://webkit.org/b/102614>
3279
3280         Reviewed by Anders Carlsson.
3281
3282         When parsing the "src" attribute, we don't need to look it up with fastHasAttribute()
3283         to know if it's present. If it's not present, 'value' argument will be null.
3284
3285         * html/HTMLMediaElement.cpp:
3286         (WebCore::HTMLMediaElement::parseAttribute):
3287
3288 2012-11-18  Kondapally Kalyan  <kalyan.kondapally@intel.com>
3289
3290         [EFL] Refactor GraphicsContext3DEFL.
3291         https://bugs.webkit.org/show_bug.cgi?id=101291.
3292
3293         Reviewed by Kenneth Rohde Christiansen.
3294
3295         GraphicsContext3DEfl creates GraphicsContext3DPrivate, which acts as its platform Layer.
3296         GraphicsContext3DPrivate needs to handle the following cases:
3297         1) To provide an off-screen buffer for accelerated composition.
3298         2) Render to a current context.
3299         3) To render directly to host window. (currently not supported.)
3300
3301         Before this patch Evas was used to provide us an off-screen context and buffer. GLX was used in
3302         the other supported case. Evas acts as a glue layer to provide us with appropriate
3303         GL bindings (OpenGL functions), GL context and drawable (surface/offscreenbuffer).
3304         However, primitive rendering is handled by TextureMapper and OpenGLShims is used to load the needed GL functions.
3305
3306         It would be for our advantage to be able to take in to use any optimisations/extensions
3307         provided by underlying drivers, specific to a platform (e.g. GLX_MESA_copy_sub_buffer etc.).
3308         This patch introduces an abstraction layer to make it easy to add support for any GL backend (GLX, EGL etc.)
3309         and do any platform specific optimizations as needed without complicating GraphicsContext3DPrivate class.
3310         Two new classes are added with this implementation, GLPlatformContext and GLPlatformSurface.
3311         GraphicsContext3DPrivate would create and own a GLPlatformContext and GLPlatformSurface.
3312
3313         GLPlatformContext encapsulates an OpenGL context hiding any platform specific management.
3314         It uses GL extension ARB_robustness (when available) to detect driver resets.
3315         It defines a simple interface for things that need to be handled by the context. Support
3316         for multi-threaded usage and shared context-group would be added later.
3317
3318         GLPlatformSurface encapsulates an OpenGL drawable hiding any platform specific management.
3319         It defines a simple interface for things that need to be handled by the surface.
3320         It creates an off-screen rendering area. Any GLPlatformContext (compatible with the surface)
3321         can be used to render into this off-screen area.
3322
3323         This patch also adds GLX implementation. To keep the patch to minimum EGL support would be added in another changeset.
3324
3325         * PlatformEfl.cmake:
3326         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
3327         (WebCore::GraphicsContext3D::create):
3328         (WebCore::GraphicsContext3D::GraphicsContext3D):
3329         (WebCore::GraphicsContext3D::~GraphicsContext3D):
3330         (WebCore::GraphicsContext3D::makeContextCurrent):
3331         (WebCore::GraphicsContext3D::setContextLostCallback):
3332         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
3333         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
3334         (GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
3335         (GraphicsContext3DPrivate::releaseResources):
3336         (GraphicsContext3DPrivate::setContextLostCallback):
3337         (GraphicsContext3DPrivate::platformGraphicsContext3D):
3338         (GraphicsContext3DPrivate::makeContextCurrent):
3339         (GraphicsContext3DPrivate::createGraphicsSurfaces):
3340         (GraphicsContext3DPrivate::copyToGraphicsSurface):
3341         (GraphicsContext3DPrivate::graphicsSurfaceToken):
3342         * platform/graphics/efl/GraphicsContext3DPrivate.h:
3343         (GraphicsContext3DPrivate):
3344         * platform/graphics/opengl/GLDefs.h: Added.
3345         (WebCore):
3346         * platform/graphics/opengl/GLPlatformContext.cpp: Added.
3347         (WebCore):
3348         (WebCore::GLPlatformContext::createContext):
3349         (WebCore::GLPlatformContext::createOffScreenContext):
3350         (WebCore::GLPlatformContext::createCurrentContextWrapper):
3351         (WebCore::GLPlatformContext::GLPlatformContext):
3352         (WebCore::GLPlatformContext::~GLPlatformContext):
3353         (WebCore::GLPlatformContext::makeCurrent):
3354         (WebCore::GLPlatformContext::isValid):
3355         (WebCore::GLPlatformContext::releaseCurrent):
3356         (WebCore::GLPlatformContext::handle):
3357         (WebCore::GLPlatformContext::isCurrentContext):
3358         (WebCore::GLPlatformContext::initialize):
3359         (WebCore::GLPlatformContext::getCurrent):
3360         (WebCore::GLPlatformContext::platformMakeCurrent):
3361         (WebCore::GLPlatformContext::platformReleaseCurrent):
3362         (WebCore::GLPlatformContext::destroy):
3363         * platform/graphics/opengl/GLPlatformContext.h: Added.
3364         (WebCore):
3365         (GLPlatformContext):
3366         * platform/graphics/opengl/GLPlatformSurface.cpp: Added.
3367         (WebCore):
3368         (WebCore::GLPlatformSurface::createOffscreenSurface):
3369         (WebCore::GLPlatformSurface::createTransportSurface):
3370         (WebCore::GLPlatformSurface::GLPlatformSurface):
3371         (WebCore::GLPlatformSurface::~GLPlatformSurface):
3372         (WebCore::GLPlatformSurface::handle):
3373         (WebCore::GLPlatformSurface::geometry):
3374         (WebCore::GLPlatformSurface::sharedDisplay):
3375         (WebCore::GLPlatformSurface::configuration):
3376         (WebCore::GLPlatformSurface::swapBuffers):
3377         (WebCore::GLPlatformSurface::copyTexture):
3378         (WebCore::GLPlatformSurface::updateContents):
3379         (WebCore::GLPlatformSurface::setGeometry):
3380         (WebCore::GLPlatformSurface::destroy):
3381         * platform/graphics/opengl/GLPlatformSurface.h: Added.
3382         (WebCore):
3383         (GLPlatformSurface):
3384             GLXOffScreenContext creates an off-screen context. This is used when
3385             renderstyle is RenderOffscreen.
3386             It uses GL extension GLX_ARB_create_context (when available)
3387             to create a context else falls back to use glXCreateNewContext.
3388         * platform/graphics/surfaces/glx/GLXContext.cpp: Added.
3389         (WebCore):
3390         (WebCore::initializeARBExtensions):
3391         (WebCore::GLXOffScreenContext::GLXOffScreenContext):
3392         (WebCore::GLXOffScreenContext::initialize):
3393         (WebCore::GLXOffScreenContext::~GLXOffScreenContext):
3394         (WebCore::GLXOffScreenContext::isCurrentContext):
3395         (WebCore::GLXOffScreenContext::platformMakeCurrent):
3396         (WebCore::GLXOffScreenContext::platformReleaseCurrent):
3397         (WebCore::GLXOffScreenContext::freeResources):
3398         (WebCore::GLXOffScreenContext::destroy):
3399             GLXCurrentContextWrapper acts as a wrapper for current context.
3400             This is used when renderstyle is RenderToCurrentGLContext.
3401         * platform/graphics/surfaces/glx/GLXContext.h: Added.
3402         (WebCore):
3403         (GLXCurrentContextWrapper):
3404         (WebCore::GLXCurrentContextWrapper::GLXCurrentContextWrapper):
3405         (WebCore::GLXCurrentContextWrapper::~GLXCurrentContextWrapper):
3406         (GLXOffScreenContext):
3407         * platform/graphics/surfaces/glx/GLXSurface.cpp: Added.
3408         (WebCore):
3409         (WebCore::GLXSurface::GLXSurface):
3410         (WebCore::GLXSurface::~GLXSurface):
3411         (WebCore::GLXSurface::visualInfo):
3412         (WebCore::GLXSurface::xWindow):
3413         (WebCore::GLXSurface::pBufferConfiguration):
3414         (WebCore::GLXSurface::transportSurfaceConfiguration):
3415         (WebCore::GLXSurface::isXRenderExtensionSupported):
3416             GLXTransportSurface creates Window and uses it as an off-screen surface.
3417             Any GLContext that was created with respect to configuration can be used
3418             to render into this.
3419             This is used when contents of the buffer are to be provided to UI Process
3420             for display.
3421         (WebCore::GLXTransportSurface::GLXTransportSurface):
3422         (WebCore::GLXTransportSurface::~GLXTransportSurface):
3423         (WebCore::GLXTransportSurface::configuration):
3424         (WebCore::GLXTransportSurface::swapBuffers):
3425         (WebCore::GLXTransportSurface::setGeometry):
3426         (WebCore::GLXTransportSurface::initialize):
3427         (WebCore::GLXTransportSurface::destroy):
3428         (WebCore::GLXTransportSurface::freeResources):
3429            GLXPBuffer, Creates a GL surface (PBuffer) used for offscreen rendering.
3430            Any GLContext that was created with respect to configuration can be used
3431            to render into this.
3432         (WebCore::GLXPBuffer::GLXPBuffer):
3433         (WebCore::GLXPBuffer::~GLXPBuffer):
3434         (WebCore::GLXPBuffer::initialize):
3435         (WebCore::GLXPBuffer::configuration):
3436         (WebCore::GLXPBuffer::destroy):
3437         (WebCore::GLXPBuffer::freeResources):
3438         * platform/graphics/surfaces/glx/GLXSurface.h: Added.
3439         (WebCore):
3440             Creates X resources which are shared between surface and context.
3441         (SharedX11Resources):
3442         (WebCore::SharedX11Resources::create):
3443         (WebCore::SharedX11Resources::deref):
3444         (WebCore::SharedX11Resources::getXWindow):
3445         (WebCore::SharedX11Resources::display):
3446         (WebCore::SharedX11Resources::visualInfo):
3447         (WebCore::SharedX11Resources::createConfig):
3448         (WebCore::SharedX11Resources::pBufferContextConfig):
3449         (WebCore::SharedX11Resources::surfaceContextConfig):
3450         (WebCore::SharedX11Resources::isXRenderExtensionSupported):
3451         (WebCore::SharedX11Resources::SharedX11Resources):
3452         (WebCore::SharedX11Resources::~SharedX11Resources):
3453         (GLXSurface):
3454         (GLXTransportSurface):
3455         (GLXPBuffer):
3456
3457 2012-11-18  Andreas Kling  <akling@apple.com>
3458
3459         Element::parseAttribute() should take name & value as separate arguments.
3460         <http://webkit.org/b/102608>
3461
3462         Reviewed by Antti Koivisto.
3463
3464         Update the signature of parseAttribute() to take a QualifiedName/AtomicString combo instead
3465         of an Attribute. This lets us pass avoid refcount churn in Element::attributeChanged() since
3466         creating a temporary Attribute is no longer necessary.
3467
3468         This was surprisingly hot (~1%) on the DOM/CreateNodes performance test.
3469
3470         * bindings/js/ScriptEventListener.cpp:
3471         (WebCore::createAttributeEventListener):
3472         * bindings/js/ScriptEventListener.h:
3473         (WebCore):
3474         * bindings/v8/ScriptEventListener.cpp:
3475         (WebCore::createAttributeEventListener):
3476         * bindings/v8/ScriptEventListener.h:
3477         (WebCore):
3478         * dom/Element.cpp:
3479         (WebCore::Element::attributeChanged):
3480         (WebCore::Element::parseAttribute):
3481         * dom/Element.h:
3482         (Element):
3483         * dom/StyledElement.cpp:
3484         (WebCore::StyledElement::parseAttribute):
3485         * dom/StyledElement.h:
3486         (StyledElement):
3487         * html/HTMLAnchorElement.cpp:
3488         (WebCore::HTMLAnchorElement::parseAttribute):
3489         * html/HTMLAnchorElement.h:
3490         (HTMLAnchorElement):
3491         * html/HTMLAppletElement.cpp:
3492         (WebCore::HTMLAppletElement::parseAttribute):
3493         * html/HTMLAppletElement.h:
3494         (HTMLAppletElement):
3495         * html/HTMLAreaElement.cpp:
3496         (WebCore::HTMLAreaElement::parseAttribute):
3497         * html/HTMLAreaElement.h:
3498         (HTMLAreaElement):
3499         * html/HTMLBaseElement.cpp:
3500         (WebCore::HTMLBaseElement::parseAttribute):
3501         * html/HTMLBaseElement.h:
3502         (HTMLBaseElement):
3503         * html/HTMLBodyElement.cpp:
3504         (WebCore::HTMLBodyElement::parseAttribute):
3505         * html/HTMLBodyElement.h:
3506         (HTMLBodyElement):
3507         * html/HTMLButtonElement.cpp:
3508         (WebCore::HTMLButtonElement::parseAttribute):
3509         * html/HTMLButtonElement.h:
3510         * html/HTMLCanvasElement.cpp:
3511         (WebCore::HTMLCanvasElement::parseAttribute):
3512         * html/HTMLCanvasElement.h:
3513         (HTMLCanvasElement):
3514         * html/HTMLDetailsElement.cpp:
3515         (WebCore::HTMLDetailsElement::parseAttribute):
3516         * html/HTMLDetailsElement.h:
3517         (HTMLDetailsElement):
3518         * html/HTMLElement.cpp:
3519         (WebCore::HTMLElement::parseAttribute):
3520         (WebCore::HTMLElement::dirAttributeChanged):
3521         * html/HTMLElement.h:
3522         (HTMLElement):
3523         * html/HTMLEmbedElement.cpp:
3524         (WebCore::HTMLEmbedElement::parseAttribute):
3525         * html/HTMLEmbedElement.h:
3526         (HTMLEmbedElement):
3527         * html/HTMLFormControlElement.cpp:
3528         (WebCore::HTMLFormControlElement::parseAttribute):
3529         * html/HTMLFormControlElement.h:
3530         (HTMLFormControlElement):
3531         * html/HTMLFormElement.cpp:
3532         (WebCore::HTMLFormElement::parseAttribute):
3533         * html/HTMLFormElement.h:
3534         (HTMLFormElement):
3535         * html/HTMLFrameElement.cpp:
3536         (WebCore::HTMLFrameElement::parseAttribute):
3537         * html/HTMLFrameElement.h:
3538         (HTMLFrameElement):
3539         * html/HTMLFrameElementBase.cpp:
3540         (WebCore::HTMLFrameElementBase::parseAttribute):
3541         * html/HTMLFrameElementBase.h:
3542         (HTMLFrameElementBase):
3543         * html/HTMLFrameSetElement.cpp:
3544         (WebCore::HTMLFrameSetElement::parseAttribute):
3545         * html/HTMLFrameSetElement.h:
3546         (HTMLFrameSetElement):
3547         * html/HTMLIFrameElement.cpp:
3548         (WebCore::HTMLIFrameElement::parseAttribute):
3549         * html/HTMLIFrameElement.h:
3550         (HTMLIFrameElement):
3551         * html/HTMLImageElement.cpp:
3552         (WebCore::HTMLImageElement::parseAttribute):
3553         * html/HTMLImageElement.h:
3554         (HTMLImageElement):
3555         * html/HTMLInputElement.cpp:
3556         (WebCore::HTMLInputElement::parseAttribute):
3557         (WebCore::HTMLInputElement::parseMaxLengthAttribute):
3558         * html/HTMLInputElement.h:
3559         (HTMLInputElement):
3560         * html/HTMLKeygenElement.cpp:
3561         (WebCore::HTMLKeygenElement::parseAttribute):
3562         * html/HTMLKeygenElement.h:
3563         (HTMLKeygenElement):
3564         * html/HTMLLIElement.cpp:
3565         (WebCore::HTMLLIElement::parseAttribute):
3566         * html/HTMLLIElement.h:
3567         (HTMLLIElement):
3568         * html/HTMLLinkElement.cpp:
3569         (WebCore::HTMLLinkElement::parseAttribute):
3570         * html/HTMLLinkElement.h:
3571         (HTMLLinkElement):
3572         * html/HTMLMapElement.cpp:
3573         (WebCore::HTMLMapElement::parseAttribute):
3574         * html/HTMLMapElement.h:
3575         (HTMLMapElement):
3576         * html/HTMLMediaElement.cpp:
3577         (WebCore::HTMLMediaElement::parseAttribute):
3578         * html/HTMLMediaElement.h:
3579         * html/HTMLMetaElement.cpp:
3580         (WebCore::HTMLMetaElement::parseAttribute):
3581         * html/HTMLMetaElement.h:
3582         (HTMLMetaElement):
3583         * html/HTMLMeterElement.cpp:
3584         (WebCore::HTMLMeterElement::parseAttribute):
3585         * html/HTMLMeterElement.h:
3586         (HTMLMeterElement):
3587         * html/HTMLOListElement.cpp:
3588         (WebCore::HTMLOListElement::parseAttribute):
3589         * html/HTMLOListElement.h:
3590         (HTMLOListElement):
3591         * html/HTMLObjectElement.cpp:
3592         (WebCore::HTMLObjectElement::parseAttribute):
3593         * html/HTMLObjectElement.h:
3594         (HTMLObjectElement):
3595         * html/HTMLOptGroupElement.cpp:
3596         (WebCore::HTMLOptGroupElement::parseAttribute):
3597         * html/HTMLOptGroupElement.h:
3598         * html/HTMLOptionElement.cpp:
3599         (WebCore::HTMLOptionElement::parseAttribute):
3600         * html/HTMLOptionElement.h:
3601         (HTMLOptionElement):
3602         * html/HTMLOutputElement.cpp:
3603         (WebCore::HTMLOutputElement::parseAttribute):
3604         * html/HTMLOutputElement.h:
3605         (HTMLOutputElement):
3606         * html/HTMLProgressElement.cpp:
3607         (WebCore::HTMLProgressElement::parseAttribute):
3608         * html/HTMLProgressElement.h:
3609         * html/HTMLScriptElement.cpp:
3610         (WebCore::HTMLScriptElement::parseAttribute):
3611         * html/HTMLScriptElement.h:
3612         (HTMLScriptElement):
3613         * html/HTMLSelectElement.cpp:
3614         (WebCore::HTMLSelectElement::parseAttribute):
3615         (WebCore::HTMLSelectElement::parseMultipleAttribute):
3616         * html/HTMLSelectElement.h:
3617         * html/HTMLStyleElement.cpp:
3618         (WebCore::HTMLStyleElement::parseAttribute):
3619         * html/HTMLStyleElement.h:
3620         (HTMLStyleElement):
3621         * html/HTMLTableCellElement.cpp:
3622         (WebCore::HTMLTableCellElement::parseAttribute):
3623         * html/HTMLTableCellElement.h:
3624         (HTMLTableCellElement):
3625         * html/HTMLTableColElement.cpp:
3626         (WebCore::HTMLTableColElement::parseAttribute):
3627         * html/HTMLTableColElement.h:
3628         (HTMLTableColElement):
3629         * html/HTMLTableElement.cpp:
3630         (WebCore::HTMLTableElement::parseAttribute):
3631         * html/HTMLTableElement.h:
3632         (HTMLTableElement):
3633         * html/HTMLTextAreaElement.cpp:
3634         (WebCore::HTMLTextAreaElement::parseAttribute):
3635         * html/HTMLTextAreaElement.h:
3636         (HTMLTextAreaElement):
3637         * html/HTMLTextFormControlElement.cpp:
3638         (WebCore::HTMLTextFormControlElement::parseAttribute):
3639         * html/HTMLTextFormControlElement.h:
3640         (HTMLTextFormControlElement):
3641         * html/HTMLTrackElement.cpp:
3642         (WebCore::HTMLTrackElement::parseAttribute):
3643         * html/HTMLTrackElement.h:
3644         (HTMLTrackElement):
3645         * html/HTMLVideoElement.cpp:
3646         (WebCore::HTMLVideoElement::parseAttribute):
3647         * html/HTMLVideoElement.h:
3648         (HTMLVideoElement):
3649         * html/shadow/HTMLContentElement.cpp:
3650         (WebCore::HTMLContentElement::parseAttribute):
3651         * html/shadow/HTMLContentElement.h:
3652         (HTMLContentElement):
3653         * mathml/MathMLElement.cpp:
3654         (WebCore::MathMLElement::parseAttribute):
3655         * mathml/MathMLElement.h:
3656         (MathMLElement):
3657         * svg/SVGAElement.cpp:
3658         (WebCore::SVGAElement::parseAttribute):
3659         * svg/SVGAElement.h:
3660         (SVGAElement):
3661         * svg/SVGAnimateMotionElement.cpp:
3662         (WebCore::SVGAnimateMotionElement::parseAttribute):
3663         * svg/SVGAnimateMotionElement.h:
3664         (SVGAnimateMotionElement):
3665         * svg/SVGAnimateTransformElement.cpp:
3666         (WebCore::SVGAnimateTransformElement::parseAttribute):
3667         * svg/SVGAnimateTransformElement.h:
3668         (SVGAnimateTransformElement):
3669         * svg/SVGAnimationElement.cpp:
3670         (WebCore::SVGAnimationElement::parseAttribute):
3671         * svg/SVGAnimationElement.h:
3672         (SVGAnimationElement):
3673         * svg/SVGCircleElement.cpp:
3674         (WebCore::SVGCircleElement::parseAttribute):
3675         * svg/SVGCircleElement.h:
3676         (SVGCircleElement):
3677         * svg/SVGClipPathElement.cpp:
3678         (WebCore::SVGClipPathElement::parseAttribute):
3679         * svg/SVGClipPathElement.h:
3680         (SVGClipPathElement):
3681         * svg/SVGComponentTransferFunctionElement.cpp:
3682         (WebCore::SVGComponentTransferFunctionElement::parseAttribute):
3683         * svg/SVGComponentTransferFunctionElement.h:
3684         (SVGComponentTransferFunctionElement):
3685         * svg/SVGCursorElement.cpp:
3686         (WebCore::SVGCursorElement::parseAttribute):
3687         * svg/SVGCursorElement.h:
3688         (SVGCursorElement):
3689         * svg/SVGElement.cpp:
3690         (WebCore::SVGElement::reportAttributeParsingError):
3691         (WebCore::SVGElement::parseAttribute):
3692         * svg/SVGElement.h:
3693         (SVGElement):
3694         * svg/SVGEllipseElement.cpp:
3695         (WebCore::SVGEllipseElement::parseAttribute):
3696         * svg/SVGEllipseElement.h:
3697         (SVGEllipseElement):
3698         * svg/SVGExternalResourcesRequired.cpp:
3699         (WebCore::SVGExternalResourcesRequired::parseAttribute):
3700         * svg/SVGExternalResourcesRequired.h:
3701         (SVGExternalResourcesRequired):
3702         * svg/SVGFEBlendElement.cpp:
3703         (WebCore::SVGFEBlendElement::parseAttribute):
3704         * svg/SVGFEBlendElement.h:
3705         (SVGFEBlendElement):
3706         * svg/SVGFEColorMatrixElement.cpp:
3707         (WebCore::SVGFEColorMatrixElement::parseAttribute):
3708         * svg/SVGFEColorMatrixElement.h:
3709         (SVGFEColorMatrixElement):
3710         * svg/SVGFEComponentTransferElement.cpp:
3711         (WebCore::SVGFEComponentTransferElement::parseAttribute):
3712         * svg/SVGFEComponentTransferElement.h:
3713         (SVGFEComponentTransferElement):
3714         * svg/SVGFECompositeElement.cpp:
3715         (WebCore::SVGFECompositeElement::parseAttribute):
3716         * svg/SVGFECompositeElement.h:
3717         (SVGFECompositeElement):
3718         * svg/SVGFEConvolveMatrixElement.cpp:
3719         (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
3720         * svg/SVGFEConvolveMatrixElement.h:
3721         (SVGFEConvolveMatrixElement):
3722         * svg/SVGFEDiffuseLightingElement.cpp:
3723         (WebCore::SVGFEDiffuseLightingElement::parseAttribute):
3724         * svg/SVGFEDiffuseLightingElement.h:
3725         (SVGFEDiffuseLightingElement):
3726         * svg/SVGFEDisplacementMapElement.cpp:
3727         (WebCore::SVGFEDisplacementMapElement::parseAttribute):
3728         * svg/SVGFEDisplacementMapElement.h:
3729         (SVGFEDisplacementMapElement):
3730         * svg/SVGFEDropShadowElement.cpp:
3731         (WebCore::SVGFEDropShadowElement::parseAttribute):
3732         * svg/SVGFEDropShadowElement.h:
3733         (SVGFEDropShadowElement):
3734         * svg/SVGFEGaussianBlurElement.cpp:
3735         (WebCore::SVGFEGaussianBlurElement::parseAttribute):
3736         * svg/SVGFEGaussianBlurElement.h:
3737         (SVGFEGaussianBlurElement):
3738         * svg/SVGFEImageElement.cpp:
3739         (WebCore::SVGFEImageElement::parseAttribute):
3740         * svg/SVGFEImageElement.h:
3741         (SVGFEImageElement):
3742         * svg/SVGFELightElement.cpp:
3743         (WebCore::SVGFELightElement::parseAttribute):
3744         * svg/SVGFELightElement.h:
3745         (SVGFELightElement):
3746         * svg/SVGFEMergeNodeElement.cpp:
3747         (WebCore::SVGFEMergeNodeElement::parseAttribute):
3748         * svg/SVGFEMergeNodeElement.h:
3749         (SVGFEMergeNodeElement):
3750         * svg/SVGFEMorphologyElement.cpp:
3751         (WebCore::SVGFEMorphologyElement::parseAttribute):
3752         * svg/SVGFEMorphologyElement.h:
3753         (SVGFEMorphologyElement):
3754         * svg/SVGFEOffsetElement.cpp:
3755         (WebCore::SVGFEOffsetElement::parseAttribute):
3756         * svg/SVGFEOffsetElement.h:
3757         (SVGFEOffsetElement):
3758         * svg/SVGFESpecularLightingElement.cpp:
3759         (WebCore::SVGFESpecularLightingElement::parseAttribute):
3760         * svg/SVGFESpecularLightingElement.h:
3761         (SVGFESpecularLightingElement):
3762         * svg/SVGFETileElement.cpp:
3763         (WebCore::SVGFETileElement::parseAttribute):
3764         * svg/SVGFETileElement.h:
3765         (SVGFETileElement):
3766         * svg/SVGFETurbulenceElement.cpp:
3767         (WebCore::SVGFETurbulenceElement::parseAttribute):
3768         * svg/SVGFETurbulenceElement.h:
3769         (SVGFETurbulenceElement):
3770         * svg/SVGFilterElement.cpp:
3771         (WebCore::SVGFilterElement::parseAttribute):
3772         * svg/SVGFilterElement.h:
3773         (SVGFilterElement):
3774         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3775         (WebCore::SVGFilterPrimitiveStandardAttributes::parseAttribute):
3776         * svg/SVGFilterPrimitiveStandardAttributes.h:
3777         (SVGFilterPrimitiveStandardAttributes):
3778         * svg/SVGFitToViewBox.h:
3779         (WebCore::SVGFitToViewBox::parseAttribute):
3780         * svg/SVGFontFaceElement.cpp:
3781         (WebCore::SVGFontFaceElement::parseAttribute):
3782         * svg/SVGFontFaceElement.h:
3783         (SVGFontFaceElement):
3784         * svg/SVGFontFaceUriElement.cpp:
3785         (WebCore::SVGFontFaceUriElement::parseAttribute):
3786         * svg/SVGFontFaceUriElement.h:
3787         (SVGFontFaceUriElement):
3788         * svg/SVGForeignObjectElement.cpp:
3789         (WebCore::SVGForeignObjectElement::parseAttribute):
3790         * svg/SVGForeignObjectElement.h:
3791         (SVGForeignObjectElement):
3792         * svg/SVGGElement.cpp:
3793         (WebCore::SVGGElement::parseAttribute):
3794         * svg/SVGGElement.h:
3795         (SVGGElement):
3796         * svg/SVGGlyphElement.cpp:
3797         (WebCore::SVGGlyphElement::parseAttribute):
3798         * svg/SVGGlyphElement.h:
3799         (SVGGlyphElement):
3800         * svg/SVGGlyphRefElement.cpp:
3801         (WebCore::SVGGlyphRefElement::parseAttribute):
3802         * svg/SVGGlyphRefElement.h:
3803         * svg/SVGGradientElement.cpp:
3804         (WebCore::SVGGradientElement::parseAttribute):
3805         * svg/SVGGradientElement.h:
3806         * svg/SVGImageElement.cpp:
3807         (WebCore::SVGImageElement::parseAttribute):
3808         * svg/SVGImageElement.h:
3809         (SVGImageElement):
3810         * svg/SVGLangSpace.cpp:
3811         (WebCore::SVGLangSpace::parseAttribute):
3812         * svg/SVGLangSpace.h:
3813         (SVGLangSpace):
3814         * svg/SVGLineElement.cpp:
3815         (WebCore::SVGLineElement::parseAttribute):
3816         * svg/SVGLineElement.h:
3817         (SVGLineElement):
3818         * svg/SVGLinearGradientElement.cpp:
3819         (WebCore::SVGLinearGradientElement::parseAttribute):
3820         * svg/SVGLinearGradientElement.h:
3821         (SVGLinearGradientElement):
3822         * svg/SVGMPathElement.cpp:
3823         (WebCore::SVGMPathElement::parseAttribute):
3824         * svg/SVGMPathElement.h:
3825         (SVGMPathElement):
3826         * svg/SVGMarkerElement.cpp:
3827         (WebCore::SVGMarkerElement::parseAttribute):
3828         * svg/SVGMarkerElement.h:
3829         (SVGMarkerElement):
3830         * svg/SVGMaskElement.cpp:
3831         (WebCore::SVGMaskElement::parseAttribute):
3832         * svg/SVGMaskElement.h:
3833         (SVGMaskElement):
3834         * svg/SVGPathElement.cpp:
3835         (WebCore::SVGPathElement::parseAttribute):
3836         * svg/SVGPathElement.h:
3837         (SVGPathElement):
3838         * svg/SVGPatternElement.cpp:
3839         (WebCore::SVGPatternElement::parseAttribute):
3840         * svg/SVGPatternElement.h:
3841         (SVGPatternElement):
3842         * svg/SVGPolyElement.cpp:
3843         (WebCore::SVGPolyElement::parseAttribute):
3844         * svg/SVGPolyElement.h:
3845         (SVGPolyElement):
3846         * svg/SVGRadialGradientElement.cpp:
3847         (WebCore::SVGRadialGradientElement::parseAttribute):
3848         * svg/SVGRadialGradientElement.h:
3849         (SVGRadialGradientElement):
3850         * svg/SVGRectElement.cpp:
3851         (WebCore::SVGRectElement::parseAttribute):
3852         * svg/SVGRectElement.h:
3853         (SVGRectElement):
3854         * svg/SVGSVGElement.cpp:
3855         (WebCore::SVGSVGElement::parseAttribute):
3856         * svg/SVGSVGElement.h:
3857         (SVGSVGElement):
3858         * svg/SVGScriptElement.cpp:
3859         (WebCore::SVGScriptElement::parseAttribute):
3860         * svg/SVGScriptElement.h:
3861         (SVGScriptElement):
3862         * svg/SVGStopElement.cpp:
3863         (WebCore::SVGStopElement::parseAttribute):
3864         * svg/SVGStopElement.h:
3865         (SVGStopElement):
3866         * svg/SVGStyleElement.cpp:
3867         (WebCore::SVGStyleElement::parseAttribute):
3868         * svg/SVGStyleElement.h:
3869         (SVGStyleElement):
3870         * svg/SVGStyledElement.cpp:
3871         (WebCore::SVGStyledElement::parseAttribute):
3872         * svg/SVGStyledElement.h:
3873         (SVGStyledElement):
3874         * svg/SVGStyledTransformableElement.cpp:
3875         (WebCore::SVGStyledTransformableElement::parseAttribute):
3876         * svg/SVGStyledTransformableElement.h:
3877         (SVGStyledTransformableElement):
3878         * svg/SVGSymbolElement.cpp:
3879         (WebCore::SVGSymbolElement::parseAttribute):
3880         * svg/SVGSymbolElement.h:
3881         (SVGSymbolElement):
3882         * svg/SVGTRefElement.cpp:
3883         (WebCore::SVGTRefElement::parseAttribute):
3884         * svg/SVGTRefElement.h:
3885         (SVGTRefElement):
3886         * svg/SVGTests.cpp:
3887         (WebCore::SVGTests::parseAttribute):
3888         * svg/SVGTests.h:
3889         (SVGTests):
3890         * svg/SVGTextContentElement.cpp:
3891         (WebCore::SVGTextContentElement::parseAttribute):
3892         * svg/SVGTextContentElement.h:
3893         (SVGTextContentElement):
3894         * svg/SVGTextElement.cpp:
3895         (WebCore::SVGTextElement::parseAttribute):
3896         * svg/SVGTextElement.h:
3897         (SVGTextElement):
3898         * svg/SVGTextPathElement.cpp:
3899         (WebCore::SVGTextPathElement::parseAttribute):
3900         * svg/SVGTextPathElement.h:
3901         * svg/SVGTextPositioningElement.cpp:
3902         (WebCore::SVGTextPositioningElement::parseAttribute):
3903         * svg/SVGTextPositioningElement.h:
3904         (SVGTextPositioningElement):
3905         * svg/SVGURIReference.cpp:
3906         (WebCore::SVGURIReference::parseAttribute):
3907         * svg/SVGURIReference.h:
3908         (SVGURIReference):
3909         * svg/SVGUseElement.cpp:
3910         (WebCore::SVGUseElement::parseAttribute):
3911         * svg/SVGUseElement.h:
3912         (SVGUseElement):
3913         * svg/SVGViewElement.cpp:
3914         (WebCore::SVGViewElement::parseAttribute):
3915         * svg/SVGViewElement.h:
3916         (SVGViewElement):
3917         * svg/SVGZoomAndPan.h:
3918         (WebCore::SVGZoomAndPan::parseAttribute):
3919         * svg/animation/SVGSMILElement.cpp:
3920         (WebCore::SVGSMILElement::parseAttribute):
3921         * svg/animation/SVGSMILElement.h:
3922         (SVGSMILElement):
3923
3924 2012-11-18  Andreas Kling  <akling@apple.com>
3925
3926         StyleResolver: No need to compare "cellpadding" attributes when evaluating style sharing candidates.
3927         <http://webkit.org/b/102596>
3928
3929         Reviewed by Antti Koivisto.
3930
3931         Differences in the cellpadding attribute is caught by comparing additionalPresentationAttributeStyle()
3932         later on in canShareStyleWithElement() and we shouldn't waste time on comparing them.
3933
3934         * css/StyleResolver.cpp:
3935         (WebCore::haveIdenticalStyleAffectingAttributes):
3936
3937 2012-11-17  Jon Lee  <jonlee@apple.com>
3938
3939         Simulated mouse events should return an accurate offset
3940         https://bugs.webkit.org/show_bug.cgi?id=102606
3941         <rdar://problem/12725627>
3942
3943         Reviewed by Brady Eidson.
3944
3945         A check to see if the event is simulated prior to calculating the offset has existed for a
3946         long time (since at least r14916). Back then the check was needed because the offset was
3947         incrementally adjusted when the target was assigned (through
3948         MouseRelatedEvent::receivedTarget()).
3949
3950         Since r82225, we started calculating the offset only when needed, and calculating the offset
3951         from scratch rather than incrementally adjusting it. Since we recalculate from scratch,
3952         the isSimulated check is irrelevant, and we should remove it.
3953
3954         Tests are not possible because all uses of simulated mouse events provide no underlying
3955         event, so the offset is never recalculated.
3956
3957         * dom/MouseRelatedEvent.cpp:
3958         (WebCore::MouseRelatedEvent::computeRelativePosition): Remove the m_isSimulated check.
3959
3960 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
3961
3962         Don't say there are dirty overlay scrollbars when they are clipped out
3963         https://bugs.webkit.org/show_bug.cgi?id=102609
3964
3965         Reviewed by Brady Eidson.
3966
3967         Painting overlay scrollbars involves a second painting pass over the entire
3968         RenderLayer subtree for a compositing layer, which can be very expensive.
3969         
3970         Avoid this when possible by detecting when overflow controls are not in
3971         the damage rect.
3972
3973         * rendering/RenderLayer.cpp:
3974         (WebCore::RenderLayer::rectForHorizontalScrollbar): Compute a local rect
3975         for the horizontal scrollbar.
3976         (WebCore::RenderLayer::rectForVerticalScrollbar): Compute a local rect
3977         for the vertical scrollbar.
3978         (WebCore::RenderLayer::positionOverflowControls): Use rectForHorizontalScrollbar()
3979         and rectForVerticalScrollbar().
3980         (WebCore::RenderLayer::overflowControlsIntersectRect): Return true if any
3981         of the present overflow controls intersect the given local rect.
3982         (WebCore::RenderLayer::paintOverflowControls): Bail if the damage rect
3983         doesn't intersect any of the overflow controls.
3984         * rendering/RenderLayer.h:
3985         (RenderLayer):
3986
3987 2012-11-17  Adam Barth  <abarth@webkit.org>
3988
3989         REGRESSION (r133633): ASSERTION FAILED: m_wrapper || !m_jsFunction
3990         https://bugs.webkit.org/show_bug.cgi?id=101428
3991
3992         Reviewed by Geoffrey Garen.
3993
3994         JSNodeOwner has some smarts that wrappers of subclasses of Node need to
3995         call during garbage collection. This patch teaches subclasses of Node
3996         to have their JSMumbleOwner objects inherit from JSNodeOwner.
3997
3998         The immediate benefit of this patch is that we correctly avoid
3999         collecting wrappers for HTMLAudioElements when they are reachable from
4000         the DOM.
4001
4002         * bindings/scripts/CodeGeneratorJS.pm:
4003         (GenerateHeader):
4004         (GenerateImplementation):
4005
4006 2012-11-17  Elliott Sprehn  <esprehn@chromium.org>
4007
4008         Expose JSObject::removeDirect and PrivateName to WebCore
4009         https://bugs.webkit.org/show_bug.cgi?id=102546
4010
4011         Reviewed by Geoffrey Garen.
4012
4013         Add forwarding header for PrivateName, so JSDependentRetained works.
4014
4015         No new tests, just adding headers.
4016
4017         * ForwardingHeaders/runtime/PrivateName.h: Added.
4018
4019 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4020
4021         Reduce the crazy number of parameters to RenderLayer clip-rect functions
4022         https://bugs.webkit.org/show_bug.cgi?id=102604
4023
4024         Reviewed by Dan Bernstein.
4025
4026         Many of the RenderLayer member functions related to clip rect computation
4027         took a long list of similar parameters. Gather these into a struct, ClipRectsContext,
4028         that we pass to these functions
4029         
4030         No functional changes.
4031
4032         * rendering/RenderLayer.cpp:
4033         (WebCore::RenderLayer::paintLayer):
4034         (WebCore::RenderLayer::paintLayerContents):
4035         (WebCore::RenderLayer::hitTestLayer):
4036         (WebCore::RenderLayer::updateClipRects):
4037         (WebCore::RenderLayer::calculateClipRects):
4038         (WebCore::RenderLayer::parentClipRects):
4039         (WebCore::RenderLayer::backgroundClipRect):
4040         (WebCore::RenderLayer::calculateRects):
4041         (WebCore::RenderLayer::childrenClipRect):
4042         (WebCore::RenderLayer::selfClipRect):
4043         (WebCore::RenderLayer::localClipRect):
4044         * rendering/RenderLayer.h:
4045         (WebCore::RenderLayer::ClipRectsContext::ClipRectsContext):
4046         (ClipRectsContext):
4047         (RenderLayer):
4048         (WebCore::RenderLayer::clipRects):
4049         * rendering/RenderLayerBacking.cpp:
4050         (WebCore::RenderLayerBacking::updateCompositedBounds):
4051         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
4052         * rendering/RenderLayerCompositor.cpp:
4053         (WebCore::RenderLayerCompositor::addToOverlapMap):
4054         (WebCore::RenderLayerCompositor::clippedByAncestor):
4055         * rendering/RenderTreeAsText.cpp:
4056         (WebCore::writeLayers):
4057
4058 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4059
4060         Simplify bounds computation for the RenderView's layer
4061         https://bugs.webkit.org/show_bug.cgi?id=102597
4062
4063         Reviewed by Anders Carlsson.
4064
4065         Computing the bounds of the main layer (that of the RenderView) used to do
4066         a full RenderLayer walk, taking the union of the bounds of all the sublayers,
4067         which is very expensive on large pages.
4068         
4069         For the RenderView we can avoid that entirely and just use the RenderView's
4070         document rect. Since page scaling happens as a transform on this layer,
4071         we want the unscaled document rect.
4072
4073         * rendering/RenderLayer.cpp:
4074         (WebCore::RenderLayer::calculateLayerBounds):
4075
4076 2012-11-17  Eric Seidel  <eric@webkit.org>
4077
4078         Add ScriptWrappable to more WebCore classes which are commonly JS-wrapped
4079         https://bugs.webkit.org/show_bug.cgi?id=102601
4080
4081         Reviewed by Adam Barth.
4082
4083         From my investigations all of these classes exist only to be exposed
4084         to the web (via JavaScript) and are not used internally by WebCore.
4085         I beleive all of them always have wrappers.
4086         These were found using this code:
4087         https://bugs.webkit.org/show_bug.cgi?id=102539#c2
4088
4089         Geolocation -- navigator.geolocation
4090         WebKitCSSMatrix -- represent matrixes in JS through various APIs
4091         DOMStringMap, NamedNodeMap, NodeIterator, TreeWalker -- exclusively for the DOM API
4092         Blob, FileList - used by the File, Clipboard and XHR, also exclusively as API
4093         ValidityState -- formControl.validity
4094         CanvasRenderingContext -- canvas.getContext()
4095         DOMApplicationCache -- window.appcache
4096         Screen -- window.screen
4097         DOMMimeTypeArray -- navigator.mimetypes
4098         DOMPlugin -- navigator.plugins[0]
4099         DOMPluginArray -- navigator.plugins
4100
4101         * Modules/geolocation/Geolocation.h:
4102         * css/WebKitCSSMatrix.h:
4103         * dom/DOMStringMap.h:
4104         * dom/NamedNodeMap.h:
4105         * dom/NodeIterator.h:
4106         * dom/TreeWalker.h:
4107         * fileapi/Blob.h:
4108         * fileapi/FileList.h: (had to un-indent to make check-webkit-style happy)
4109         (FileList):
4110         (WebCore::FileList::create):
4111         (WebCore::FileList::length):
4112         (WebCore::FileList::isEmpty):
4113         (WebCore::FileList::clear):
4114         (WebCore::FileList::append):
4115         * html/ValidityState.h:
4116         * html/canvas/CanvasRenderingContext.h:
4117         * loader/appcache/DOMApplicationCache.h:
4118         * page/Screen.h:
4119         * platform/graphics/wince/MediaPlayerProxy.cpp:
4120         (WebCore::WebMediaPlayerProxy::initEngine): This code was wrong, fixed to use internal APIs.
4121         * plugins/DOMMimeTypeArray.h:
4122         * plugins/DOMPlugin.h:
4123         * plugins/DOMPluginArray.h:
4124
4125 2012-11-17  Alexandru Chiculita  <achicu@adobe.com>
4126
4127         [Texmap][CSS Shaders] Reuse the precompiled shader for custom filters in TextureMapperGL
4128         https://bugs.webkit.org/show_bug.cgi?id=101801
4129
4130         Reviewed by Noam Rosenthal.
4131
4132         Added a HashMap in TextureMapperGL to store the precompiled versions of the shaders.
4133         Also added a new API on TextureMapper that receives a notification when the shader
4134         is no longer needed.
4135
4136         No new tests, the code is tested by existing tests.
4137
4138         * platform/graphics/filters/CustomFilterOperation.h:
4139         (WebCore::CustomFilterOperation::setProgram):
4140         (CustomFilterOperation): Made the constructor protected, so that we can overwrite the class in WK2.
4141         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
4142         (WebCore::CustomFilterValidatedProgram::validatedProgramInfo):
4143         (WebCore):
4144         * platform/graphics/filters/CustomFilterValidatedProgram.h:
4145         (CustomFilterValidatedProgram):
4146         * platform/graphics/texmap/TextureMapper.h:
4147         (WebCore):
4148         (TextureMapper):
4149         (WebCore::TextureMapper::removeCachedCustomFilterProgram):
4150         Function to be called by the platform code, when the shader is no longer
4151         needed. This implementation is empty and overridden in TextureMapperGL.
4152         * platform/graphics/texmap/TextureMapperGL.cpp:
4153         (WebCore::TextureMapperGL::removeCachedCustomFilterProgram):
4154         Removes the compiled shader from the cache. This is called from WK2 when the compiled shader
4155         is no longer needed.
4156         (WebCore):
4157         (WebCore::TextureMapperGL::drawUsingCustomFilter): The first time it uses a new
4158         shader it will cache the compiled version until removeCachedCustomFilterProgram is called.
4159         * platform/graphics/texmap/TextureMapperGL.h:
4160         (WebCore):
4161         (TextureMapperGL):
4162
4163 2012-11-17  Brady Eidson  <beidson@apple.com>
4164
4165         Add an integer identifier field to AuthenticationChallengeBase.
4166         https://bugs.webkit.org/show_bug.cgi?id=102593
4167
4168         Reviewed by Darin Adler.
4169
4170         This is to support linking two different challenges that might not compare as equal but that 
4171         represent the same logical authentication challenge.
4172
4173         One example is in an IPC environment where the platform challenge can only exist in one process.
4174
4175         No new tests (Platform support, no effect in tested configs).
4176
4177         * WebCore.exp.in:
4178
4179         * platform/network/AuthenticationChallengeBase.cpp:
4180         (WebCore::AuthenticationChallengeBase::AuthenticationChallengeBase):
4181         * platform/network/AuthenticationChallengeBase.h:
4182         (WebCore::AuthenticationChallengeBase::identifier):
4183
4184         * platform/network/cf/AuthenticationChallenge.h:
4185         * platform/network/mac/AuthenticationMac.mm:
4186         (WebCore::generateUniqueIdentifier):
4187         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4188           constructing a challenge from an NSURLAuthenticationChallenge.
4189
4190         * platform/network/cf/AuthenticationCF.cpp:
4191         (WebCore::generateUniqueIdentifier):
4192         (WebCore::AuthenticationChallenge::AuthenticationChallenge): Generate a new unique identifier whenever
4193           constructing a challenge from a CFURLAuthChallengeRef.
4194
4195         Implement the new constructor form for ports relevant to WebKit2:
4196         * platform/network/qt/AuthenticationChallenge.h:
4197         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4198         * platform/network/soup/AuthenticationChallenge.h:
4199         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4200         * platform/network/win/AuthenticationChallenge.h:
4201         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
4202
4203 2012-11-17  Simon Fraser  <simon.fraser@apple.com>
4204
4205         Dump the tile cache extent in layout tests
4206         https://bugs.webkit.org/show_bug.cgi?id=102600
4207
4208         Reviewed by Anders Carlsson.
4209
4210         When dumping tiled layer stats in layout tests, also dump the extent
4211         of the tile grid. This will allow us to detect issues related
4212         to zooming, which is not possible with the existing tile coverage rect,
4213         which is dumped in layer (not tile) coordinates.
4214
4215         * platform/graphics/TiledBacking.h: Added tileGridExtent().
4216         * platform/graphics/ca/GraphicsLayerCA.cpp:
4217         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump the tile grid extent.
4218         * platform/graphics/ca/mac/TileCache.h: tileCoverageRect() should be OVERRIDE.
4219         * platform/graphics/ca/mac/TileCache.mm:
4220         (WebCore::TileCache::getTileIndexRangeForRect):
4221         (WebCore::TileCache::tileGridExtent): Return a rect with the size of
4222         the grid as top,left width,height.
4223
4224 2012-11-17  Andreas Kling  <akling@apple.com>
4225
4226         Avoid full style recalc when 'style' attribute changes.
4227         <http://webkit.org/b/78718>
4228
4229         Reviewed by Anders Carlsson.
4230
4231         Use setNeedsStyleRecalc(InlineStyleChange) when the 'style' attribute changes
4232         to reduce the amount of work done in recalcStyle().
4233
4234         * dom/StyledElement.cpp:
4235         (WebCore::StyledElement::styleAttributeChanged):
4236
4237 2012-11-17  Li Yin  <li.yin@intel.com>
4238
4239         Remove coneGain and distanceGain attributes from PannerNode.idl
4240         https://bugs.webkit.org/show_bug.cgi?id=102343
4241
4242         Reviewed by Chris Rogers.
4243
4244         Removing .coneGain and .distanceGain as publicly accessible values,
4245         since normally they only need to be calculated internally.
4246
4247         No changes to tests, since these attributes were not tested and are being removed.
4248
4249         * Modules/webaudio/PannerNode.idl:
4250
4251 2012-11-17  Balazs Kelemen  <kbalazs@webkit.org>
4252
4253         [Coordinated Graphics] Resumed animations leave an obsolate GraphicsLayerAnimation behind
4254         https://bugs.webkit.org/show_bug.cgi?id=102530
4255
4256         Reviewed by Noam Rosenthal.
4257
4258         GraphicsLayer::addAnimation is called no only when a new animation is created
4259         but also when resuming a paused animation. If this is a resumed animation we
4260         should remove the obsolate GraphicsLayerAnimation object.
4261
4262         Tested by animations tests.
4263
4264         * platform/graphics/GraphicsLayerAnimation.cpp:
4265         (WebCore::GraphicsLayerAnimations::add):
4266
4267 2012-11-17  Martin Robinson  <mrobinson@igalia.com>
4268
4269         [Soup] CredentialStorage should only be used for HTTP-family requests
4270         https://bugs.webkit.org/show_bug.cgi?id=102582
4271
4272         Reviewed by Gustavo Noronha Silva.
4273
4274         Do not use CredentialStorage when handling non-HTTP family requests. CredentialStorage
4275         only expects to handle requests in the HTTP family.
4276
4277         No new tests. This is covered by existing tests.
4278
4279         * platform/network/ResourceHandle.h:
4280         (ResourceHandle): Add a shouldUseCredentialStorage helper to ResourceHandle. This
4281         helper returns false when firstRequest() is a non-HTTP family request.
4282         * platform/network/soup/ResourceHandleSoup.cpp:
4283         (WebCore::applyAuthenticationToRequest): Use the new helper.
4284         (WebCore::createSoupRequestAndMessageForHandle): Ditto.
4285         (WebCore::ResourceHandle::start): Ditto.
4286         (WebCore::ResourceHandle::shouldUseCredentialStorage): Ditto.
4287         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto.
4288         (WebCore::ResourceHandle::receivedCredential): Ditto.
4289
4290 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4291
4292         Build fix for !USE(ACCELERATED_COMPOSITING) after r135029.
4293
4294         * rendering/RenderLayer.cpp:
4295         (WebCore::RenderLayer::paintOverflowControls):
4296
4297 2012-11-16  Benjamin Poulain  <bpoulain@apple.com>
4298
4299         Improve the performance of rect transform
4300         https://bugs.webkit.org/show_bug.cgi?id=101828
4301
4302         Reviewed by Simon Fraser.
4303
4304         Mapping a rect and a quad by a transform is a common operation because
4305         we use it to recompute the repaint rect, overflow rect, etc.
4306
4307         The way it was done, is by transforming through mapRect()->mapQuad()->4 times mapPoint().
4308         Each of those functions tests isIdentityOrTranslation() which has to read the whole matrix
4309         and perform many comparison.
4310         Because of that, the simple mapping of a rect was loading and checking the matrix 5 times
4311         too many.
4312
4313         This patch just cut the intermediary calls.
4314
4315         On ARM, putting the operation together also has the advantage of loading the matrix
4316         only once in registers and reusing it for every point.
4317
4318         * platform/graphics/transforms/TransformationMatrix.cpp:
4319         (WebCore::TransformationMatrix::mapPoint):
4320         (WebCore::TransformationMatrix::mapRect):
4321         * platform/graphics/transforms/TransformationMatrix.h:
4322         (WebCore):
4323         (WebCore::TransformationMatrix::mapPointImpl): New convenience function to perform the
4324         point project without doing isIdentityOrTranslation().
4325
4326 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4327
4328         Avoid calling the virtual isBlockFlow() in RenderBox::computeRectForRepaint()
4329         https://bugs.webkit.org/show_bug.cgi?id=102581
4330
4331         Reviewed by Dan Bernstein.
4332
4333         isBlockFlow() is a virtual function call, and shows up in profiles of
4334         Facebook pages as called from RenderBox::computeRectForRepaint().
4335         
4336         It's faster to do the hasColumns() bit-check first. Also replace
4337         a call to layer() with the hasLayer() bit-check.        
4338
4339         * rendering/RenderBox.cpp:
4340         (WebCore::RenderBox::computeRectForRepaint):
4341
4342 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
4343
4344         Unreviewed, rolling out r134817.
4345         http://trac.webkit.org/changeset/134817
4346         https://bugs.webkit.org/show_bug.cgi?id=102576
4347
4348         Broke iframes and causing tons of crashes on ClusterFuzz
4349         (Requested by inferno-sec on #webkit).
4350
4351         * dom/ContainerNode.cpp:
4352         (WebCore::willRemoveChildren):
4353         * dom/ContainerNodeAlgorithms.cpp:
4354         (WebCore::ChildFrameDisconnector::collectDescendant):
4355         * dom/ContainerNodeAlgorithms.h:
4356         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
4357         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
4358         (ChildFrameDisconnector):
4359         (WebCore::ChildFrameDisconnector::collectDescendant):
4360         (WebCore::ChildFrameDisconnector::disconnect):
4361         * dom/Node.cpp:
4362         * dom/Node.h:
4363         (Node):
4364         * dom/NodeRareData.h:
4365         (WebCore::NodeRareData::NodeRareData):
4366         (NodeRareData):
4367         * html/HTMLFrameOwnerElement.cpp:
4368         (WebCore::HTMLFrameOwnerElement::setContentFrame):
4369         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
4370
4371 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4372
4373         Fix overlay scrollbar painting in compositing layers
4374         https://bugs.webkit.org/show_bug.cgi?id=102442
4375
4376         Reviewed by Beth Dakin.
4377
4378         There were two issues with overlay scrollbar painting in
4379         compositing layers.
4380         
4381         First, we'd only ever call setContainsDirtyOverlayScrollbars()
4382         on the RenderView's layer, even when encountering an overlay scrollbar
4383         in some descendant compositing layer. This meant that we'd never
4384         run the paintOverlayScrollbars() code for those child compositing
4385         layers, so sometimes scrollbars were missing there.
4386         
4387         Even after fixing that, we would fail to render scrollbars that
4388         were not in the composited RenderLayer itself. This happened because
4389         we called into RenderLayer::paintOverlayScrollbars(), which called
4390         paintLayer() with flags that only said to paint the overlay scrollbars
4391         but not any descendants, so this paint path would not walk child
4392         RenderLayers.
4393         
4394         Also remove the containsScrollableAreaWithOverlayScrollbars() flag on
4395         ScrollView which is no longer used.
4396
4397         * platform/ScrollView.cpp:
4398         (WebCore::ScrollView::ScrollView): Remove containsScrollableAreaWithOverlayScrollbars().
4399         (WebCore::ScrollView::paint): Remove setting of m_containsScrollableAreaWithOverlayScrollbars.
4400         * platform/ScrollView.h:
4401         * rendering/RenderLayer.cpp:
4402         (WebCore::RenderLayer::paintOverflowControls): Call setContainsDirtyOverlayScrollbars()
4403         on the compositing ancestor or the root.
4404         Remove call to setContainsScrollableAreaWithOverlayScrollbars().
4405         (WebCore::RenderLayer::paintOverlayScrollbars): When painting overlay
4406         scrollbars, no need to say we have transparency, and no need to use 
4407         temporary clip rects.
4408         (WebCore::RenderLayer::paintLayer): The PaintLayerPaintingOverlayScrollbars
4409         check here was only needed because the compositing entrypoint to painting
4410         overlay scrollbars went via paintLayer(), which isn't normally used as
4411         a composited painting entry point. Now that we no longer call that, we
4412         don't need this special check.
4413         * rendering/RenderLayerBacking.cpp:
4414         (WebCore::RenderLayerBacking::paintIntoLayer): Jump into overlay scrollbar
4415         painting via paintLayerContents(), not paintOverlayScrollbars(), since
4416         the latter does not traverse sublayers.
4417
4418 2012-11-16  Joshua Bell  <jsbell@chromium.org>
4419
4420         IndexedDB: Assert hit when getting non-existent object store in version change transaction
4421         https://bugs.webkit.org/show_bug.cgi?id=102547
4422
4423         Reviewed by Tony Chang.
4424
4425         Code did not account for the not-found case in "versionchange" transactions, where all
4426         object stores are implicitly in scope.
4427
4428         Test: storage/indexeddb/object-lookups-in-versionchange.html
4429
4430         * Modules/indexeddb/IDBTransaction.cpp:
4431         (WebCore::IDBTransaction::objectStore):
4432
4433 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
4434
4435         Eliminate ancestor tree walk computing outlineBoundsForRepaint() when updating layer positions
4436         https://bugs.webkit.org/show_bug.cgi?id=101874
4437
4438         Reviewed by Dave Hyatt.
4439
4440         RenderLayer::updateLayerPositions() and updateLayerPositionsAfterScroll() spend a
4441         lot of time in computeRepaintRects(), which does two ancestor tree walks, once
4442         for clippedOverflowRectForRepaint(), and one for outlineBoundsForRepaint().
4443
4444         Eliminate the ancestor tree walk in outlineBoundsForRepaint() by maintaining
4445         a RenderGeometryMap as we traverse the layer tree, and then using it to map
4446         the outline bounds to the repaint container. Replace the hokey cached offsetFromRoot
4447         now that the RenderGeometryMap can do a better job.
4448         
4449         The clipped overflow rect cannot be mapped simply, so cannot yet make use of
4450         the geometry map.
4451         
4452         Modify the RenderGeometryMap to support mapping to some repaintContainer ancestor.
4453         Add a RenderObject walk that is necessary to detect flipped writing mode blocks.
4454         
4455         Pass the RenderGeometryMap as an optional parameter to outlineBoundsForRepaint.
4456         
4457         * page/FrameView.cpp:
4458         (WebCore::FrameView::layout): Make a RenderGeometryMap and pass it down
4459         to updateLayerPositions(). For partial layouts, we have to push layers
4460         between the root and the enclosing layer of the layout subtree.
4461         The geometry map used for repainting does not use SnapOffsetForTransforms,
4462         so initialize it explicitly with just the UseTransforms flag.
4463         (WebCore::FrameView::repaintFixedElementsAfterScrolling): Make a RenderGeometryMap
4464         to pass along to updateLayerPositionsAfterScroll().
4465         * rendering/RenderBox.cpp:
4466         (WebCore::RenderBox::outlineBoundsForRepaint): Replace the optional cachedOffsetToRepaintContainer
4467         parameter with an optional RenderGeometryMap, and it use to map the compute rect to
4468         repaintContainer coordinates.
4469         * rendering/RenderBox.h:
4470         * rendering/RenderGeometryMap.cpp:
4471         (WebCore::RenderGeometryMap::RenderGeometryMap): This now has to store the mapping
4472         flags to use, so that its behavior can match that of mapLocalToContainer(). The
4473         pertinent flag is the confusingly named SnapOffsetForTransforms.
4474         (WebCore::RenderGeometryMap::absolutePoint): Call the new mapToContainer() with
4475         a null container.
4476         (WebCore::RenderGeometryMap::absoluteRect): Ditto.
4477         (WebCore::RenderGeometryMap::mapToContainer): Map to the supplied container,
4478         asserting that we found it. Add point- and rect-based mapping methods
4479         akin to the old absoluteRect/absolutePoint.
4480         (WebCore::canMapViaLayer): We need to test for isRenderFlowThread() here too.
4481         (WebCore::RenderGeometryMap::pushMappingsToAncestor): When mapping via
4482         layers, ensure that the RenderView is pushed as the first step.
4483         * rendering/RenderGeometryMap.h:
4484         (RenderGeometryMap):
4485         * rendering/RenderLayer.cpp:
4486         (WebCore::RenderLayer::updateLayerPositionsAfterLayout): New wrapper for updateLayerPositions()
4487         that makes the geometry map.
4488         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): New wrapper for updateLayerPositionsAfterScroll
4489         that makes the geometry map.
4490         (WebCore::RenderLayer::updateLayerPositions): Now takes an optional RenderGeometryMap.
4491         Remove the old offsetFromRoot code. Push and pop layers to/from the geometry map. Use
4492         the geometry map to get the offsetFromRoot as needed by overflow controls. Pass
4493         it to computeRepaintRects().
4494         (WebCore::RenderLayer::computeRepaintRects): Pass the geometry map to outlineBoundsForRepaint().
4495         (WebCore::RenderLayer::updateLayerPositionsAfterScroll): Push and pop to/from the
4496         geometry map, and pass it to computeRepaintRects().
4497         (WebCore::RenderLayer::removeOnlyThisLayer): Remove the offsetFromRootBeforeMove
4498         computation; this could use a geometry map in future if it is shown to be a bottleneck.
4499         * rendering/RenderLayer.h:
4500         (WebCore::RenderLayer::canUseConvertToLayerCoords): It was thought that the isComposited()
4501         was there because the older cached offsetFromRoot logic was sensitive to compositing,
4502         but convertToLayerCoords() is not affected by compositing so this check is not needed,
4503         and actually harmful.
4504         * rendering/RenderLayerCompositor.cpp:
4505         (WebCore::RenderLayerCompositor::OverlapMap::OverlapMap): The geometry map
4506         used for overlap testing should not use SnapOffsetForTransforms, so initialize
4507         it explicitly with just the UseTransforms flag.
4508         * rendering/RenderObject.h:
4509         (WebCore::RenderObject::outlineBoundsForRepaint):
4510         * rendering/svg/RenderSVGModelObject.cpp:
4511         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
4512         * rendering/svg/RenderSVGModelObject.h:
4513         (RenderSVGModelObject):
4514
4515 2012-11-16  Alec Flett  <alecflett@chromium.org>
4516
4517         Add tests for explicit serialization values
4518         https://bugs.webkit.org/show_bug.cgi?id=96818
4519
4520         Reviewed by Adam Barth.
4521
4522         Expose direct access to the serialization/deserialization mechanisms
4523         of SerializedScriptValue to DumpRenderTree.
4524
4525         * testing/Internals.cpp:
4526         (WebCore::Internals::serializeObject):
4527         (WebCore):
4528         (WebCore::Internals::deserializeBuffer):
4529         * testing/Internals.h:
4530         (WebCore):
4531         * testing/Internals.idl:
4532
4533 2012-11-16  Andreas Kling  <akling@apple.com>
4534
4535         Exploit shared attribute data to avoid parsing identical "style" attributes.
4536         <http://webkit.org/b/101163>
4537
4538         Reviewed by Antti Koivisto.
4539
4540         Track the "inline style dirty" state on ElementAttributeData instead of in a Node flag.
4541         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
4542         since the state is no longer per-Element.
4543
4544         * css/StyleResolver.cpp:
4545         (WebCore::isCacheableInMatchedPropertiesCache):
4546
4547             Disable the matched properties cache for styles with non-standard writing-mode.
4548             This is necessary because some CSS properties have different meaning depending on context -
4549             properties handled by CSSProperty::resolveDirectionAwareProperty().
4550
4551             Now that multiple elements may have identical inlineStyle() pointers, this is necessary to
4552             avoid mapping StylePropertySets with direction-aware properties to RenderStyles with differing
4553             writing-modes in the matched properties cache.
4554
4555         * dom/Node.h:
4556         * dom/ElementAttributeData.cpp:
4557         (WebCore::ElementAttributeData::ElementAttributeData):
4558         * dom/ElementAttributeData.h:
4559         (WebCore::ElementAttributeData::ElementAttributeData):
4560         (ElementAttributeData):
4561         * dom/Element.h:
4562         (WebCore::Element::updateInvalidAttributes):
4563         * dom/Element.cpp:
4564         (WebCore::Element::getAttribute):
4565         (WebCore::Element::removeAttribute):
4566         * dom/StyledElement.h:
4567         (WebCore::StyledElement::invalidateStyleAttribute):
4568         * dom/StyledElement.cpp:
4569         (WebCore::StyledElement::updateStyleAttribute):
4570
4571             Move "style attribute dirty" flag to ElementAttributeData.
4572
4573         (WebCore::Element::cloneAttributesFromElement):
4574
4575             Remove ugly optimization to avoid reparsing inline style when cloning elements. This now happens
4576             automagically since cloning nodes just refs the original attribute data.
4577
4578         * dom/StyledElement.cpp:
4579         (WebCore::StyledElement::updateStyleAttribute):
4580         (WebCore::StyledElement::setInlineStyleFromString):
4581         (WebCore::StyledElement::styleAttributeChanged):
4582         (WebCore::StyledElement::inlineStyleChanged):
4583
4584             Avoid reparsing the inline style if the element's attribute data is immutable and already has
4585             a parsed inlineStyle(). Split the set-inline-style-from-string code out of styleAttributeChanged()
4586             to make the code more understandable.
4587
4588 2012-11-16  Simon Fraser  <simon.fraser@apple.com>
4589
4590         Don't update layer positions on scrolling if we're in the middle of layout
4591         https://bugs.webkit.org/show_bug.cgi?id=102556
4592
4593         Reviewed by Dan Bernstein.
4594
4595         RenderLayer::scrollTo() can be called in the middle of layout. When
4596         that happens we should not waste time updating layer positions,
4597         compositing layers, or widget positions, because we'll do those at the
4598         end of layout anyway.
4599         
4600         This prevents us from having inconsistent RenderLayer state, which
4601         hinders future optimizations in this area.
4602
4603         * rendering/RenderLayer.cpp:
4604         (WebCore::RenderLayer::scrollTo):
4605
4606 2012-11-16  Tony Chang  <tony@chromium.org>
4607
4608         Remove ENABLE_CSS_HIERARCHIES since it's no longer in use
4609         https://bugs.webkit.org/show_bug.cgi?id=102554
4610
4611         Reviewed by Andreas Kling.
4612
4613         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=79939#c41 ,
4614         we're going to revist this feature once additional vendor support is
4615         achieved.
4616
4617         No new tests, just removing an unused define.
4618
4619         * Configurations/FeatureDefines.xcconfig:
4620         * GNUmakefile.features.am:
4621
4622 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
4623
4624         [Chromium] Remove cookie-related functions from PlatformSupport
4625         https://bugs.webkit.org/show_bug.cgi?id=99340
4626
4627         Reviewed by Adam Barth.
4628
4629         Move cookie-related functions out of PlatformSupport and implement
4630         new PlatformCookieJar interface via NetworkContext.
4631
4632         * WebCore.gyp/WebCore.gyp:
4633         * WebCore.gypi:
4634         * loader/CookieJar.cpp:
4635         * loader/chromium/CookieJarChromium.cpp: Removed.
4636         * platform/chromium/PlatformSupport.h:
4637         (WebCore):
4638         (PlatformSupport):
4639         * platform/network/NetworkingContext.h:
4640         (WebKit):
4641         (NetworkingContext):
4642         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
4643         (WebCore::setCookiesFromDOM):
4644         (WebCore::cookiesForDOM):
4645         (WebCore::cookieRequestHeaderFieldValue):
4646         (WebCore::cookiesEnabled):
4647         (WebCore::getRawCookies):
4648         (WebCore::deleteCookie):
4649         (WebCore::getHostnamesWithCookies):
4650         (WebCore::deleteCookiesForHostname):
4651         (WebCore::deleteAllCookies):
4652
4653 2012-11-16  Pablo Flouret  <pablof@motorola.com>
4654
4655         [JSC] Don't sanitize window.onerror information on crossorigin-enabled scripts
4656         https://bugs.webkit.org/show_bug.cgi?id=70574
4657
4658         Reviewed by Geoffrey Garen.
4659
4660         For scripts that use CORS (via the crossorigin attribute in this case),
4661         don't sanitize the information passed to the window's onerror handler (i.e.
4662         message, url, and line number). Useful for scripts hosted on CDNs.
4663
4664         Tests: http/tests/security/script-crossorigin-onerror-information.html
4665                http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html
4666
4667         * WebCore.exp.in:
4668         * WebCore.order:
4669
4670         * bindings/js/JSDOMBinding.cpp:
4671         (WebCore::reportException):
4672         * bindings/js/JSDOMBinding.h:
4673         (WebCore):
4674         * bindings/js/ScriptController.cpp:
4675         (WebCore::ScriptController::evaluateInWorld):
4676         * bindings/js/ScriptSourceCode.h:
4677         (WebCore::ScriptSourceCode::ScriptSourceCode):
4678         (WebCore::ScriptSourceCode::cachedScript):
4679         (ScriptSourceCode):
4680         * bindings/js/WorkerScriptController.cpp:
4681         (WebCore::WorkerScriptController::evaluate):
4682             Keep a reference to the cached script in the ScriptSourceCode, so
4683             that it can be passed around and be available when reporting the
4684             exception.
4685
4686         * dom/ScriptExecutionContext.cpp:
4687         (WebCore::ScriptExecutionContext::sanitizeScriptError):
4688         (WebCore::ScriptExecutionContext::reportException):
4689         (WebCore::ScriptExecutionContext::dispatchErrorEvent):
4690         * dom/ScriptExecutionContext.h:
4691         (WebCore):
4692         (ScriptExecutionContext):
4693             Check if the script passes the access control checks, and if so,
4694             don't sanitize the error information.
4695
4696         * html/parser/HTMLPreloadScanner.cpp:
4697         (WebCore::PreloadTask::processAttributes):
4698         (WebCore::PreloadTask::preload):
4699         (PreloadTask):
4700         (WebCore::PreloadTask::crossOriginModeAllowsCookies):
4701             When preloading script elements, check for the crossorigin attribute
4702             and adjust the request's allowCookies value accordingly. Otherwise
4703             when the script is loaded from the cache later on, the cross origin mode
4704             (anonymous/use-credentials) will be effectively ignored.
4705
4706 2012-11-16  Jon Lee  <jonlee@apple.com>
4707
4708         Change visual look of placeholder
4709         https://bugs.webkit.org/show_bug.cgi?id=102149
4710         <rdar://problem/12695566>
4711
4712         Reviewed by Darin Adler.
4713
4714         Move the button to the lower-right corner. Move the theming into
4715         RenderSnapshottedPlugin for now. Eventually we will want to migrate to using the
4716         shadow DOM instead, and the metrics of the button are needed for click passthrough.
4717
4718         * Resources/startButton.png: Added.
4719         * Resources/startButton@2x.png: Added.
4720         * Resources/startButtonPressed.png: Added.
4721         * Resources/startButtonPressed@2x.png: Added.
4722         * WebCore.xcodeproj/project.pbxproj: Add button images.
4723
4724         Maintain variables to track whether the mouse is over the button, and the rect
4725         for the button. If the user clicks in the rect, we render a pressed button.
4726         * rendering/RenderSnapshottedPlugIn.cpp:
4727         (WebCore): Add named constant for bottom and right padding of the button.
4728         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
4729         (WebCore::RenderSnapshottedPlugIn::paintReplaced):
4730         (WebCore::startButtonImage): Returns button image.
4731         (WebCore::startButtonPressedImage): Returns pressed button image.
4732         (WebCore::RenderSnapshottedPlugIn::paintButton): Draw the button image in the
4733         lower right hand corner, but only if we are active or hovered.
4734         (WebCore::RenderSnapshottedPlugIn::repaintButton): Stubbed to call repaint().
4735         (WebCore::RenderSnapshottedPlugIn::handleEvent): Repaint the button if we are
4736         hovering over the plugin rect. With a mouse down event, calculate whether the
4737         mouse position is within the button rect.
4738         (WebCore::RenderSnapshottedPlugIn::layout): Cache the rect representing the button
4739         contents.
4740         * rendering/RenderSnapshottedPlugIn.h:
4741
4742         Remove theming function for now.
4743         * rendering/RenderTheme.h:
4744         (RenderTheme):
4745         * rendering/RenderThemeMacShared.h:
4746         * rendering/RenderThemeMacShared.mm:
4747
4748 2012-11-16  Eric Seidel  <eric@webkit.org>
4749
4750         Deploy ScriptWrappable to more always-wrapped objects
4751         https://bugs.webkit.org/show_bug.cgi?id=102539
4752
4753         Reviewed by Adam Barth.
4754
4755         Add the ScriptWrappable baseclass to:
4756         CSSStyleDeclaration (anttik tells me these should only be used from JS, even though some old Editing code used to use them)
4757         ClientRect (element.getBoundingClientRects)
4758         Event (Not all events end up wrapped, but any which live past dispatch do)
4759         NodeList (this covers Static and Dynamic node list types, like document.all)
4760         HTMLCollection (separate from NodeList, for things like table.rows)
4761         Storage (for window.storage, always wrapped)
4762         XMLHttpRequest (always wrapped, created from JS)
4763
4764         This should be a small memory savings as the inline pointer is only 4-8 bytes
4765         instead of the hashmap entry which would be 8-16.  This may also show up
4766         on benchmarks which repeatedly access these objects (like window.storage).
4767
4768         These were found by adding a couple lines of logging-code to
4769         WebCore::createWrapper when we were in the main world, but took the
4770         HashMap (instead of inline) storage path. I used sort and uniq -c
4771         to find the most-frequently wrapped objects (while surfing
4772         a few common sites) and came up with this list.  There are still a few
4773         more complicated objects (like CSSStyleDeclaration) which may benifit
4774         from inline-wrapper-access and will be covered in a later patch.
4775
4776         * css/CSSStyleDeclaration.h:
4777         * dom/ClientRect.h:
4778         * dom/Event.h:
4779         * dom/NodeList.h:
4780         * html/HTMLCollection.h:
4781         * storage/Storage.h:
4782         * xml/XMLHttpRequest.h:
4783
4784 2012-11-16  Jon Lee  <jonlee@apple.com>
4785
4786         Simulated events instances do not all have the same underlying event
4787         https://bugs.webkit.org/show_bug.cgi?id=102468
4788         <rdar://problem/12716331>
4789
4790         Reviewed by Alexey Proskuryakov.
4791
4792         The PassRefPtr with the underlying event is included as an argument for the mouse
4793         down, up, and click events. But the PassRefPtr loses its underlying pointer after
4794         the first simulated mouse down event because it gets assigned to that event's
4795         private m_underlyingEvent variable. We therefore send NULL to the other events.
4796
4797         The fix is for this and related functions to pass the raw pointer.
4798
4799         A layout test is not possible to put together because the call sites that use simulated
4800         events with an underlying event do not send mouse events, and those that send mouse
4801         events have a NULL underlying event.
4802
4803         * dom/EventDispatcher.cpp:
4804         (WebCore::EventDispatcher::dispatchSimulatedClick): Require passing in the raw pointer.
4805         * dom/EventDispatcher.h:
4806         * dom/Node.cpp:
4807         (WebCore::Node::dispatchSimulatedClick): Ditto.
4808         * dom/Node.h:
4809
4810 2012-11-16  Patrick Gansterer  <paroga@webkit.org>
4811
4812         Build fix for WinCE after r134936.
4813
4814         * platform/network/win/CookieJarWin.cpp:
4815         (WebCore::cookieRequestHeaderFieldValue):
4816
4817 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
4818
4819         Unreviewed, rolling out r134986.
4820         http://trac.webkit.org/changeset/134986
4821         https://bugs.webkit.org/show_bug.cgi?id=102110
4822
4823         Triggered ASSERT in fast/frames/seamless/seamless-inherited-
4824         origin.html.
4825
4826         * css/StyleResolver.cpp:
4827         (WebCore::StyleResolver::StyleResolver):
4828         (WebCore::StyleResolver::addAuthorRulesAndCollectUserRulesFromSheets):
4829         (WebCore::collectCSSOMWrappers):
4830         * css/StyleResolver.h:
4831         (StyleResolver):
4832         * dom/Document.cpp:
4833         (WebCore::Document::setCompatibilityMode):
4834         * dom/DocumentStyleSheetCollection.cpp:
4835         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
4836         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
4837         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
4838         (WebCore):
4839         (WebCore::DocumentStyleSheetCollection::clearPageGroupUserSheets):
4840         (WebCore::DocumentStyleSheetCollection::updatePageGroupUserSheets):
4841         (WebCore::DocumentStyleSheetCollection::addUserSheet):
4842         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
4843         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
4844         * dom/DocumentStyleSheetCollection.h:
4845         (DocumentStyleSheetCollection):
4846         (WebCore::DocumentStyleSheetCollection::documentUserSheets):
4847         * page/PageGroup.cpp:
4848         (WebCore::PageGroup::addUserStyleSheetToWorld):
4849         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
4850         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
4851         (WebCore::PageGroup::removeAllUserContent):
4852         (WebCore::PageGroup::resetUserStyleCacheInAllFrames):
4853         * page/PageGroup.h:
4854         (PageGroup):
4855
4856 2012-11-16  Michael Pruett  <michael@68k.org>
4857
4858         IndexedDB: Propagate DOMRequestState to IndexedDB binding utility functions
4859         https://bugs.webkit.org/show_bug.cgi?id=102430
4860
4861         Reviewed by Adam Barth.
4862
4863         DOMRequestState is currently propagated to some but not all of
4864         the IndexedDB binding utility functions. In order to implement
4865         these functions for JSC, this state must be propagated to all
4866         of the utility functions.
4867
4868         Tests: storage/indexeddb/*
4869
4870         * Modules/indexeddb/IDBCursor.cpp:
4871         (WebCore::IDBCursor::update):
4872         (WebCore::IDBCursor::setValueReady):
4873         * Modules/indexeddb/IDBObjectStore.cpp:
4874         (WebCore::generateIndexKeysForValue):
4875         (WebCore::IDBObjectStore::put):
4876         (WebCore):
4877         * Modules/indexeddb/IDBRequest.cpp:
4878         (WebCore::IDBRequest::onSuccess):
4879         (WebCore::IDBRequest::dispatchEvent):
4880         * Modules/indexeddb/IDBRequest.h:
4881         (WebCore::IDBRequest::requestState):
4882         (IDBRequest):
4883         * bindings/v8/IDBBindingUtilities.cpp:
4884         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
4885         (WebCore::serializeIDBValue):
4886         (WebCore::injectIDBKeyIntoScriptValue):
4887         * bindings/v8/IDBBindingUtilities.h:
4888         (WebCore):
4889
4890 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
4891
4892         Rebaselined run-bindings-tests.
4893         https://bugs.webkit.org/show_bug.cgi?id=102523
4894
4895         Reviewed by Dimitri Glazkov.
4896
4897         Expected results need to be updated after r134931
4898
4899         * bindings/scripts/test/JS/JSTestObj.cpp:
4900         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
4901         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
4902         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
4903         * bindings/scripts/test/V8/V8TestObj.cpp:
4904         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrGetter):
4905         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackAttributeAttrSetter):
4906         (WebCore::TestObjV8Internal::withScriptArgumentsAndCallStackCallback):
4907
4908 2012-11-16  Pratik Solanki  <psolanki@apple.com>
4909
4910         For single element arrays use the pointer into the CFDataRef instead of copying data
4911         https://bugs.webkit.org/show_bug.cgi?id=102306
4912         <rdar://problem/12267471>
4913
4914         Reviewed by Alexey Proskuryakov.
4915
4916         We generally copy the data received from CFNetwork into our own buffers. But if the
4917         CFArrayRef has exactly one CFDataRef inside it, then we can just hold on to the CFDataRef
4918         and access its memory directly and avoid making a copy.
4919
4920         This also moves the creation of PurgeableBuffer from CachedResource to SharedBuffer.
4921         SharedBuffer::createPurgeableBuffer() will avoid creating PurgeableBuffer when the
4922         SharedBuffer is backed by a NSData/CFDataRef and when we want to optimize and directly use
4923         the memory in the data array.
4924
4925         No new tests because no change in functionality.
4926
4927         * loader/ResourceBuffer.cpp:
4928         (WebCore::ResourceBuffer::createPurgeableBuffer): Added.
4929         * loader/ResourceBuffer.h:
4930         * loader/cache/CachedResource.cpp:
4931         (WebCore::CachedResource::makePurgeable):
4932         * platform/SharedBuffer.cpp:
4933         (WebCore::SharedBuffer::createPurgeableBuffer): Added.
4934         (WebCore::SharedBuffer::data):
4935         * platform/SharedBuffer.h:
4936         * platform/cf/SharedBufferCF.cpp:
4937         (WebCore::SharedBuffer::platformData): Use reinterpret_cast instead of C-style cast.
4938         (WebCore::SharedBuffer::maybeTransferPlatformData): Use reinterpret_cast instead of C-style cast.
4939         (WebCore::SharedBuffer::singleDataArrayBuffer): Added.
4940
4941 2012-11-16  Antti Koivisto  <antti@apple.com>
4942
4943         REGRESSION(r129644): User StyleSheet not applying
4944         https://bugs.webkit.org/show_bug.cgi?id=102110
4945
4946         Reviewed by Andreas Kling.
4947
4948         Injected stylesheets added as UserStyleAuthorLevel fail to apply. r129644 implicitly assumed that
4949         such things don't exists but on Chromium addUserStyleSheet() confusingly uses them.
4950         
4951         The patch adds injected author stylesheets to DocumentStyleSheetCollection::activeStyleSheets().
4952         It also generally cleans up the code around injected and user stylesheets.
4953
4954         Tests: userscripts/user-script-and-stylesheet.html
4955                userscripts/user-stylesheet-invalidate.html
4956
4957         * css/StyleResolver.cpp:
4958         (WebCore::StyleResolver::StyleResolver):
4959         (WebCore::StyleResolver::collectRulesFromUserStyleSheets):
4960         (WebCore::collectCSSOMWrappers):
4961         * css/StyleResolver.h:
4962         (StyleResolver):
4963         * dom/Document.cpp:
4964         (WebCore::Document::setCompatibilityMode):
4965         * dom/DocumentStyleSheetCollection.cpp:
4966         (WebCore::DocumentStyleSheetCollection::DocumentStyleSheetCollection):
4967         (WebCore::DocumentStyleSheetCollection::~DocumentStyleSheetCollection):
4968         (WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
4969         (WebCore):
4970         (WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
4971         (WebCore::DocumentStyleSheetCollection::updateInjectedStyleSheetCache):
4972         (WebCore::DocumentStyleSheetCollection::invalidateInjectedStyleSheetCache):
4973         (WebCore::DocumentStyleSheetCollection::addUserSheet):
4974         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
4975         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
4976         * dom/DocumentStyleSheetCollection.h:
4977         (WebCore::DocumentStyleSheetCollection::documentUserStyleSheets):
4978         (DocumentStyleSheetCollection):
4979         * page/PageGroup.cpp:
4980         (WebCore::PageGroup::addUserStyleSheetToWorld):
4981         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
4982         (WebCore::PageGroup::removeUserStyleSheetsFromWorld):
4983         (WebCore::PageGroup::removeAllUserContent):
4984         (WebCore::PageGroup::invalidatedInjectedStyleSheetCacheInAllFrames):
4985         * page/PageGroup.h:
4986         (PageGroup):
4987
4988 2012-11-16  Andreas Kling  <akling@apple.com>
4989
4990         StyleResolver: Only input elements need equal "readonly" attribute for style sharing.
4991         <http://webkit.org/b/102536>
4992
4993         Reviewed by Antti Koivisto.
4994
4995         Move the comparison of the "readonly" attribute into canShareStyleWithControl() since it's only
4996         relevant for sharing style between <input> elements.
4997
4998         Also skip attribute comparisons for form control elements that share the same ElementAttributeData.
4999
5000         * css/StyleResolver.cpp:
5001         (WebCore::StyleResolver::canShareStyleWithControl):
5002         (WebCore::haveIdenticalStyleAffectingAttributes):
5003
5004 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5005
5006         Unreviewed, rolling out r134867.
5007         http://trac.webkit.org/changeset/134867
5008         https://bugs.webkit.org/show_bug.cgi?id=102544
5009
5010         Broke security fuzzier test (heap-buffer-overflow) (Requested
5011         by bfulgham on #webkit).
5012
5013         * platform/audio/Biquad.cpp:
5014         (WebCore::Biquad::process):
5015
5016 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5017
5018         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
5019         https://bugs.webkit.org/show_bug.cgi?id=102382
5020
5021         Reviewed by Adam Barth.
5022
5023         Updating readyState & iceState, and adding iceGatheringState.
5024         Also safeguarding the event timer callback.
5025
5026         Patch covered by existing tests.
5027
5028         * Modules/mediastream/RTCPeerConnection.cpp:
5029         (WebCore::RTCPeerConnection::RTCPeerConnection):
5030         (WebCore::RTCPeerConnection::createOffer):
5031         (WebCore::RTCPeerConnection::createAnswer):
5032         (WebCore::RTCPeerConnection::setLocalDescription):
5033         (WebCore::RTCPeerConnection::localDescription):
5034         (WebCore::RTCPeerConnection::setRemoteDescription):
5035         (WebCore::RTCPeerConnection::remoteDescription):
5036         (WebCore::RTCPeerConnection::updateIce):
5037         (WebCore::RTCPeerConnection::addIceCandidate):
5038         (WebCore::RTCPeerConnection::readyState):
5039         (WebCore::RTCPeerConnection::iceGatheringState):
5040         (WebCore):
5041         (WebCore::RTCPeerConnection::iceState):
5042         (WebCore::RTCPeerConnection::addStream):
5043         (WebCore::RTCPeerConnection::close):
5044         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
5045         (WebCore::RTCPeerConnection::stop):
5046         (WebCore::RTCPeerConnection::changeReadyState):
5047         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
5048         * Modules/mediastream/RTCPeerConnection.h:
5049         (RTCPeerConnection):
5050         * Modules/mediastream/RTCPeerConnection.idl:
5051         * dom/EventNames.h:
5052         (WebCore):
5053         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
5054         (RTCPeerConnectionHandlerClient):
5055         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5056         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
5057         (WebCore):
5058         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5059         (RTCPeerConnectionHandlerChromium):
5060
5061 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5062
5063         Unreviewed, rolling out r134973.
5064         http://trac.webkit.org/changeset/134973
5065         https://bugs.webkit.org/show_bug.cgi?id=99340
5066
5067         Broke compile on at least Mac and Linux.
5068
5069         * WebCore.gyp/WebCore.gyp:
5070         * WebCore.gypi:
5071         * loader/CookieJar.cpp:
5072         * loader/chromium/CookieJarChromium.cpp: Renamed from Source/WebKit/chromium/src/FrameNetworkingContextImpl.cpp.
5073         (WebCore):
5074         (WebCore::setCookies):
5075         (WebCore::cookies):
5076         (WebCore::cookieRequestHeaderFieldValue):
5077         (WebCore::cookiesEnabled):
5078         (WebCore::getRawCookies):
5079         (WebCore::deleteCookie):
5080         (WebCore::getHostnamesWithCookies):
5081         (WebCore::deleteCookiesForHostname):
5082         (WebCore::deleteAllCookies):
5083         * platform/chromium/PlatformSupport.h:
5084         (WebCore):
5085         (PlatformSupport):
5086         * platform/network/NetworkingContext.h:
5087         * platform/network/chromium/CookieJarChromium.cpp: Removed.
5088
5089 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5090
5091         [GTK] [WebKit2] Move GtkAuthenticationDialog to the UIProcess
5092         https://bugs.webkit.org/show_bug.cgi?id=101843
5093
5094         Reviewed by Gustavo Noronha Silva.
5095
5096         Make GtkAuthenticationDialog more general, so that it can be subclassed in 
5097         WebKit2. We cannot use the WebCore authentication-related classes directly there.
5098
5099         No new tests. This patch does not change behavior.
5100
5101         * platform/gtk/GtkAuthenticationDialog.cpp:
5102         (WebCore::GtkAuthenticationDialog::GtkAuthenticationDialog): Remove an unused include and reorder
5103         some field initializers.
5104         (WebCore::GtkAuthenticationDialog::authenticate): Now handle both the okay and cancel case here. This
5105         makes it simpler to subclass.
5106         (WebCore::GtkAuthenticationDialog::authenticationDialogResponseCallback): Handle fetching the username
5107         and password here, so that it can be shared with subclasses.
5108         * platform/gtk/GtkAuthenticationDialog.h: Make some methods virtual and protected so they can be
5109         subclasses.
5110
5111 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5112
5113         [Chromium] Remove cookie-related functions from PlatformSupport
5114         https://bugs.webkit.org/show_bug.cgi?id=99340
5115
5116         Reviewed by Adam Barth.
5117
5118         Move cookie-related functions out of PlatformSupport and implement
5119         new PlatformCookieJar interface via NetworkContext.
5120
5121         * WebCore.gyp/WebCore.gyp:
5122         * WebCore.gypi:
5123         * loader/CookieJar.cpp:
5124         * loader/chromium/CookieJarChromium.cpp: Removed.
5125         * platform/chromium/PlatformSupport.h:
5126         (WebCore):
5127         (PlatformSupport):
5128         * platform/network/NetworkingContext.h:
5129         (WebKit):
5130         (NetworkingContext):
5131         * platform/network/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/loader/chromium/CookieJarChromium.cpp.
5132         (WebCore::setCookiesFromDOM):
5133         (WebCore::cookiesForDOM):
5134         (WebCore::cookieRequestHeaderFieldValue):
5135         (WebCore::cookiesEnabled):
5136         (WebCore::getRawCookies):
5137         (WebCore::deleteCookie):
5138         (WebCore::getHostnamesWithCookies):
5139         (WebCore::deleteCookiesForHostname):
5140         (WebCore::deleteAllCookies):
5141
5142 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5143
5144         Fix assertion bug of build fix r134961
5145         https://bugs.webkit.org/show_bug.cgi?id=102533
5146
5147         Reviewed by Martin Robinson.
5148
5149         Assertion condition should be '!d->m_currentWebChallenge.isNull()'
5150
5151         * platform/network/soup/ResourceHandleSoup.cpp:
5152         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5153
5154 2012-11-16  Tommy Widenflycht  <tommyw@google.com>
5155
5156         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
5157         https://bugs.webkit.org/show_bug.cgi?id=102386
5158
5159         Reviewed by Adam Barth.
5160
5161         Existing tests expanded to cover patch.
5162
5163         * platform/mediastream/RTCDataChannelDescriptor.cpp:
5164         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
5165         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
5166         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
5167         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
5168         (WebCore):
5169         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
5170         (WebKit):
5171         (RTCPeerConnectionHandlerChromium):
5172
5173 2012-11-16  Scott Violet  <sky@chromium.org>
5174
5175         [chromium] Copy linux theme related files to default
5176         https://bugs.webkit.org/show_bug.cgi?id=102403
5177
5178         Reviewed by Tony Chang
5179
5180         Transitional patch that copies linux WebThemeEngine to default directory.
5181
5182         No new tests, refactoring only.
5183
5184         * WebCore.gyp/WebCore.gyp: Update compile rules when use_default_render_theme is set.
5185         * WebCore.gypi: Adds new files.
5186         * platform/chromium/PlatformSupport.h:
5187         * platform/chromium/PlatformThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.cpp.
5188         * platform/chromium/PlatformThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/PlatformThemeChromiumLinux.h.
5189         * platform/chromium/ScrollbarThemeChromiumDefault.cpp: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp.
5190         * platform/chromium/ScrollbarThemeChromiumDefault.h: Copied from Source/WebCore/platform/chromium/ScrollbarThemeChromiumLinux.h.
5191         * rendering/RenderThemeChromiumDefault.cpp: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.cpp.
5192         * rendering/RenderThemeChromiumDefault.h: Copied from Source/WebCore/rendering/RenderThemeChromiumLinux.h.
5193
5194 2012-11-16  Alec Flett  <alecflett@chromium.org>
5195
5196         IndexedDB: add missing 'explicit' and fix backing store release
5197         https://bugs.webkit.org/show_bug.cgi?id=102450
5198
5199         Reviewed by Tony Chang.
5200
5201         A inconsequential regression was introduced in http://trac.webkit.org/changeset/134129
5202         which resulted in objects sticking around a bit longer than
5203         expected. This makes sure the LevelDBTransaction is released
5204         at the moment of commit/rollback rather than when IDBTransactionBackendImpl
5205         is destroyed.
5206
5207         No new tests, this is just internal state that will affect
5208         some future refactoring.
5209
5210         * Modules/indexeddb/IDBBackingStore.h:
5211         (Cursor):
5212         (Transaction):
5213         (WebCore::IDBBackingStore::Transaction::reset):
5214         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
5215         (WebCore::IDBTransactionBackendImpl::abort):
5216         (WebCore::IDBTransactionBackendImpl::commit):
5217
5218 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5219
5220         [Chromium] One last tweak to WebCore.gypi to make Win build not sad.
5221
5222         * WebCore.gypi: Removed one last mention of accessibility/gtk file.
5223
5224 2012-11-16  Robert Flack  <flackr@chromium.org>
5225
5226         Handle gesture events on scrollbars.
5227         https://bugs.webkit.org/show_bug.cgi?id=101516
5228
5229         Reviewed by Antonio Gomes.
5230
5231         Adds a gesture event handler to scrollbars and sends gestures beginning
5232         over a scrollbar to this handler to allow touch scrolling scrollbars.
5233
5234         Test: fast/events/touch/gesture/gesture-scrollbar.html
5235
5236         * page/EventHandler.cpp:
5237         (WebCore::EventHandler::clear):
5238         (WebCore::EventHandler::handleGestureEvent):
5239         (WebCore::EventHandler::isScrollbarHandlingGestures):
5240         (WebCore):
5241         * page/EventHandler.h:
5242         (EventHandler):
5243         * platform/Scrollbar.cpp:
5244         (WebCore::Scrollbar::Scrollbar):
5245         (WebCore):
5246         (WebCore::Scrollbar::gestureEvent):
5247         (WebCore::Scrollbar::mouseMoved):
5248         (WebCore::Scrollbar::mouseUp):
5249         (WebCore::Scrollbar::mouseDown):
5250         * platform/Scrollbar.h:
5251         (WebCore):
5252         (Scrollbar):
5253         * platform/ScrollbarTheme.h:
5254         (WebCore::ScrollbarTheme::hitTest):
5255         * platform/ScrollbarThemeComposite.cpp:
5256         (WebCore::ScrollbarThemeComposite::hitTest):
5257         * platform/ScrollbarThemeComposite.h:
5258         (ScrollbarThemeComposite):
5259         * platform/qt/ScrollbarThemeQStyle.cpp:
5260         (WebCore::ScrollbarThemeQStyle::hitTest):
5261         * platform/qt/ScrollbarThemeQStyle.h:
5262         (ScrollbarThemeQStyle):
5263
5264 2012-11-16  Xianzhu Wang  <wangxianzhu@chromium.org>
5265
5266         [Chromium-Android] Stack overflow in MediaControlsChromiumAndroid.cpp
5267         https://bugs.webkit.org/show_bug.cgi?id=102444
5268
5269         Reviewed by Adam Barth.
5270
5271         No new tests. Have been covered by many existing layout tests.
5272
5273         * html/shadow/MediaControlsChromiumAndroid.cpp:
5274         (WebCore::MediaControls::create): Calls createControls instead of itself.
5275
5276 2012-11-16  Andreas Kling  <akling@apple.com>
5277
5278         StyleResolver: Optimize sharing candidate evaluation for elements with shared attribute data.
5279         <http://webkit.org/b/102507>
5280
5281         Reviewed by Antti Koivisto.
5282
5283         When evaluating two elements as potential style sharing candidate, we have a whole bunch of code
5284         comparing the various attributes that would prevent sharing.
5285
5286         If the two elements both share the same ElementAttributeData, we can skip all those checks
5287         since they are guaranteed to have equal attributes.
5288
5289         Cuts the time spent in canShareStyleWithElement() by 25% on the HTML5 spec at <http://whatwg.org/c>.
5290
5291         * css/StyleResolver.cpp:
5292         (WebCore::haveIdenticalStyleAffectingAttributes):
5293         (WebCore::StyleResolver::canShareStyleWithElement):
5294
5295 2012-11-16  Byungwoo Lee  <bw80.lee@samsung.com>
5296
5297         [EFL][GTK] Build fix after r134955
5298         https://bugs.webkit.org/show_bug.cgi?id=102527
5299
5300         Reviewed by Martin Robinson.
5301
5302         Fix the EFL,GTK debug bulid fails after r134955.
5303
5304         * platform/network/soup/ResourceHandleSoup.cpp:
5305         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
5306
5307 2012-11-15  Alexey Proskuryakov  <ap@apple.com>
5308
5309         Private Browsing is a per-page setting that sets a global value
5310         https://bugs.webkit.org/show_bug.cgi?id=67870
5311
5312         Reviewed by Sam Weinig.
5313
5314         Make ResourceHandle{Mac,CFNet} use context to access storage session.
5315
5316         * WebCore.exp.in: We track less session state in WebCore now, so we need fewer
5317         exports.
5318
5319         * loader/FrameNetworkingContext.h: Added an OVERRIDE.
5320
5321         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled): WebCore
5322         no longer keeps track of a globally enabled private CFNetwork storage session.
5323
5324         * platform/CookiesStrategy.h: Added defaultCookieStorage(). Some cookie jar methods
5325         don't have a NetworkingContext pointer, and have to use whatever a client expects
5326         them to do. Perhaps we should move those methods away from WebCore eventually.
5327
5328         * platform/network/NetworkingContext.h: Added storageSession().
5329
5330         * platform/network/ResourceHandle.h: Removed sttaic methods for dealing with global
5331         sessions.
5332
5333         * platform/network/ResourceHandleInternal.h: Added m_storageSession. We need to
5334         remember it post-creation to do things in willSendRequest. Alternatively, we could
5335         keep a reference to NetworkingContext itself.
5336
5337         * platform/network/cf/CookieJarCFNet.cpp:
5338         (WebCore::setCookiesFromDOM): currentCFHTTPCookieStorage now needs a context,
5339         there is no globally current one any more. Also, we don't really expect cookie
5340         stirage to be 0 when not using NSURLConnection.
5341         (WebCore::cookiesForDOM): Ditto.
5342         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5343         (WebCore::cookiesEnabled): Ditto.
5344         (WebCore::getRawCookies): Ditto.
5345         (WebCore::deleteCookie): Ditto.
5346         (WebCore::getHostnamesWithCookies): Ditto.
5347         (WebCore::deleteCookiesForHostname): Ditto.
5348         (WebCore::deleteAllCookies): Ditto.
5349         * platform/network/cf/CookieStorageCFNet.cpp:
5350         (WebCore::currentCFHTTPCookieStorage): Use a context.
5351         (WebCore::defaultCFHTTPCookieStorage): Except for Windows-only override session,
5352         this is implemented in a strategy.
5353         (WebCore::overridenCookieStorage): Exposed the override for WebKit use on Windows.
5354
5355         * platform/network/cf/CookieStorageCFNet.h: Ditto.
5356
5357         * platform/network/cf/ResourceHandleCFNet.cpp:
5358         (WebCore::willSendRequest): Use storage session from the context, not global one.
5359         (WebCore::makeFinalRequest): Merged this into the only remaining caller. This
5360         function didn't really make any sense on its own.
5361         (WebCore::shouldRelaxThirdPartyCookiePolicy): Factored out of createCFURLConnection
5362         to match Mac.
5363         (WebCore::ResourceHandle::createCFURLConnection): While merging makeFinalRequest()
5364         in, removed some seemingly nonsensical code that was getting and immediately re-applying
5365         cookie storage accept policy.
5366         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5367         (WebCore::ResourceHandle::willSendRequest): Apply the stored session, not global one.
5368         (WebCore::ResourceHandle::storageSession): An accessor for static methods that cannot
5369         access "d".
5370         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession() for use in willSendRequest.
5371         (WebCore::ResourceHandle::willLoadFromCache): Don't call makeFinalRequest here.
5372         It didn't match Mac, and nothing in makeFinalRequest should have affected the result.
5373
5374         * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
5375         This function used to apply current storage session to every request for no apparent
5376         reason.
5377
5378         * platform/network/mac/CookieJarMac.mm:
5379         (WebCore::cookiesForDOM): Changed to pass context to currentCFHTTPCookieStorage.
5380         (WebCore::cookieRequestHeaderFieldValue): Ditto.
5381         (WebCore::setCookiesFromDOM): Ditto.
5382         (WebCore::cookiesEnabled): Ditto.
5383         (WebCore::getRawCookies): Ditto.
5384         (WebCore::deleteCookie): Ditto.
5385         (WebCore::getHostnamesWithCookies): Ditto.
5386         (WebCore::deleteCookiesForHostname): Ditto.
5387         (WebCore::deleteAllCookies): Ditto.
5388         * platform/network/mac/ResourceHandleMac.mm:
5389         (WebCore::shouldRelaxThirdPartyCookiePolicy): There was no need to special case
5390         null currentCFHTTPCookieStorage, WKSI handles that internally. Added a context
5391         argument, so that the function can access current session.
5392         (WebCore::ResourceHandle::createNSURLConnection): Updated for other code changes.
5393         (WebCore::ResourceHandle::start): Store context->storageSession() for use in willSendRequest.
5394         (WebCore::ResourceHandle::willLoadFromCache): Style fix.
5395         (WebCore::ResourceHandle::loadResourceSynchronously): Store context->storageSession()
5396         for use in willSendRequest. 
5397         (WebCore::ResourceHandle::willSendRequest): Use stored session, not global one.
5398
5399 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5400
5401         [Chromium] Land a proper fix for r134939.
5402
5403         * WebCore.gyp/WebCore.gyp: Added exclusion for "atk".
5404         * WebCore.gypi: Put the accessibility/atk directory back into WebCore.gypi.
5405
5406 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5407
5408         [Chromium] Just yank the whole accessibility/atk dir out of WebCore.gypi.
5409
5410 2012-11-16  Dimitri Glazkov  <dglazkov@chromium.org>
5411
5412         [Chromium] Updated WebCore.gypi after r134939.
5413
5414         * WebCore.gypi: Renamed acessibility/gtk to accessibility/atk.
5415
5416 2012-11-16  Martin Robinson  <mrobinson@igalia.com>
5417
5418         [GTK] Move CredentialBackingStore usage from GtkAuthenticationDialog to ResourceHandleSoup
5419         https://bugs.webkit.org/show_bug.cgi?id=101840
5420
5421         Reviewed by Gustavo Noronha Silva.
5422
5423         Make ResourceHandleSoup aware of per-session CredentialStorage and persistent CredentialStorage.
5424         Persistent credential storage interaction is moved from GtkAuthenticationDialog, so that it can
5425         be used whether or not GtkAuthenticationDialog is used or not. We try to properly handle redirects
5426         in the manner that the CFNet backend does.
5427
5428         No new tests. There are tests for this behavior, but they cannot be activated until we finish
5429         plumbing this through to the API layer. Once that patch lands, the tests will be turned on.
5430
5431         * platform/gtk/GtkAuthenticationDialog.cpp: No longer store credentials into the persistent
5432         storage manually, instead rely on ResourceHandleSoup. Also, we no longer get proposed credentials
5433         from the persistent storage here as well. They are pre-loaded by the ResourceHanndle.
5434         * platform/gtk/GtkAuthenticationDialog.h: Remove callbacks and members associated with saving
5435         credentials to the persistent credential store.
5436         * platform/network/ResourceHandle.h:
5437         (ResourceHandle): Add a method which is used to continue asynchronously after looking for
5438         proposed credentials in the persistent credential store.
5439         * platform/network/ResourceHandleInternal.h: Add a member which tracks persistent credentials to be added once we know
5440         an authentication succeeded.
5441         * platform/network/gtk/CredentialBackingStore.cpp:
5442         (CredentialForChallengeAsyncReadyCallbackData): Added this data structure used for asynchronous access
5443         of stored credentials.
5444         (WebCore::credentialForChallengeAsyncReadyCallback): Ditto for this callback.
5445         (WebCore::CredentialBackingStore::credentialForChallenge): Make this method asynchronous.
5446         * platform/network/gtk/CredentialBackingStore.h:
5447         (CredentialBackingStore): Update method signatures for for making credentialForChallenge asynchronous.
5448         * platform/network/soup/AuthenticationChallenge.h:
5449         (WebCore::AuthenticationChallenge::setProposedCredential): Added a setter so that ResourceHandleSoup
5450         can set proposed credentials from the persistent credential store.
5451         * platform/network/soup/ResourceHandleSoup.cpp:
5452         (WebCore::gotHeadersCallback): For GTK+ save any pending credential in the persistent credential storage
5453         if the authentication succeeded.
5454         (WebCore::applyAuthenticationToRequest): Added this method which generically embeds stored credentials
5455         in the request URI. This is the method that Soup uses to override any soup-stored session credential.
5456         (WebCore::restartedCallback): Strip credentials for requests that span a security origin. Handle
5457         authenticating requests from the session store.
5458         (WebCore::createSoupRequestAndMessageForHandle): Make the local request reference mutable.
5459         (WebCore::ResourceHandle::start): Remove some code which is now part of applyAuthenticationToRequest.
5460         Call applyAuthenticationToRequest and clear the user and password members like the CFNet backend does.
5461         (WebCore::getCredentialFromPersistentStoreCallback): Added this callback for getting persistently stored credentials.
5462         (WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge): Split out didReceiveAuthenticationChallenge
5463         into this asynchronous bit.
5464         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): For GTK+ continue handling this situation after
5465         first looking in the persistent credential store.
5466         (WebCore::ResourceHandle::receivedCredential): Store session credentials in the session storage, which is
5467         at the moment a redundant version of the Soup session storage and also prepare any persistent credentials
5468         for storage later (see gotHeadersCallback).
5469
5470 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5471
5472         Update DOMException name: TypeMismatchError
5473         https://bugs.webkit.org/show_bug.cgi?id=102418
5474
5475         Reviewed by Kentaro Hara.
5476
5477         Patch 17 of 25 to update DOMException name to match the spec and Firefox.
5478
5479         Updated existing tests.
5480
5481         * dom/DOMCoreException.cpp:
5482         (WebCore):
5483         * dom/ExceptionCode.h:
5484
5485 2012-11-16  Balazs Kelemen  <kbalazs@webkit.org>
5486
5487         Coordinated Graphics: support the "freeze animations" API
5488         https://bugs.webkit.org/show_bug.cgi?id=100703
5489
5490         Reviewed by Noam Rosenthal.
5491
5492         Typo fix after previous patch.
5493
5494         No new tests, it's just a typo that only takes effect in the browser.
5495
5496         * platform/graphics/GraphicsLayerAnimation.cpp:
5497         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
5498         Initialize members.
5499
5500 2012-11-16  Dan Carney  <dcarney@google.com>
5501
5502         add 7 bit strings capabilities to the v8 binding layer
5503         https://bugs.webkit.org/show_bug.cgi?id=91850
5504
5505         Reviewed by Adam Barth.
5506
5507         This change enables the v8 binding layer to make use of webkit's
5508         8 bit string capabilities. Using 8 bit strings leads to certain
5509         benchmark performance improvemnts as can be seen in
5510         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
5511
5512         No new tests.  Test coverage already extensive.
5513
5514         * bindings/v8/V8PerIsolateData.cpp:
5515         (WebCore::V8PerIsolateData::visitExternalStrings):
5516         * bindings/v8/V8StringResource.cpp:
5517         (StringTraits):
5518         (WebCore::false):
5519         (WebCore):
5520         (WebCore::true):
5521         (WebCore::v8StringToWebCoreString):
5522         * bindings/v8/V8ValueCache.cpp:
5523         (WebCore::makeExternalString):
5524         (WebCore::WebCoreStringResourceBase::toWebCoreStringResourceBase):
5525         (WebCore):
5526         (WebCore::WebCoreStringResourceBase::visitStrings):
5527         * bindings/v8/V8ValueCache.h:
5528         (WebCoreStringResourceBase):
5529         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
5530         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
5531         (WebCore::WebCoreStringResourceBase::atomicString):
5532         (WebCore::WebCoreStringResourceBase::memoryConsumption):
5533         (WebCoreStringResource16):
5534         (WebCore::WebCoreStringResource16::WebCoreStringResource16):
5535         (WebCore):
5536         (WebCoreStringResource8):
5537         (WebCore::WebCoreStringResource8::WebCoreStringResource8):
5538
5539 2012-11-16  Erik Arvidsson  <arv@chromium.org>
5540
5541         Update DOMException name: InvalidAccessError
5542         https://bugs.webkit.org/show_bug.cgi?id=102400
5543
5544         Reviewed by Kentaro Hara.
5545
5546         Patch 15 of 25 to update DOMException name to match the spec and Firefox.
5547
5548         Updated existing tests.
5549
5550         * dom/DOMCoreException.cpp:
5551
5552 2012-11-16  Alexandru Chiculita  <achicu@adobe.com>
5553
5554         [Texmap][CSS Shaders] Make the CustomFilterValidatedProgram maintain the platform compiled program
5555         https://bugs.webkit.org/show_bug.cgi?id=102414
5556
5557         Reviewed by Noam Rosenthal.
5558
5559         Added WebCore classes needed for the WebKit2 implementation of Texture Mapper to keep a reference to the 
5560         platform compiled custom filter. It is just used to maintain the life-time of the objects. WebKit2 injects a
5561         client in TextureMapperPlatformCompiledProgram and receives a callback when the custom filter program is not
5562         used to render any layer on the page. 
5563
5564         Note that CustomFilterValidatedProgram are reused across multiple elements of the same page. Also, the instances
5565         are reused across frames, so animations should reuse the same pre-validated program. In this case, the mechanism is
5566         extended and reused in the platform compositor.
5567         
5568         No new tests, existing tests for CSS Custom Filters already cover this path.
5569
5570         * CMakeLists.txt:
5571         * GNUmakefile.am:
5572         * GNUmakefile.list.am:
5573         * Target.pri:
5574         * WebCore.pri:
5575         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
5576         (WebCore):
5577         * platform/graphics/filters/CustomFilterValidatedProgram.h:
5578         (WebCore):
5579         (CustomFilterValidatedProgram):
5580         * platform/graphics/filters/texmap/CustomFilterValidatedProgramTextureMapper.cpp: Added.
5581         (WebCore):
5582         (WebCore::CustomFilterValidatedProgram::platformCompiledProgram): Platform implementation for creating and deleting the reference.
5583         (WebCore::CustomFilterValidatedProgram::platformInit):
5584         (WebCore::CustomFilterValidatedProgram::platformDestroy):
5585         * platform/graphics/filters/texmap/TextureMapperPlatformCompiledProgram.h: Added.
5586         (WebCore):
5587         (TextureMapperPlatformCompiledProgramClient):
5588         (WebCore::TextureMapperPlatformCompiledProgramClient::ref):
5589         (WebCore::TextureMapperPlatformCompiledProgramClient::deref):
5590         (TextureMapperPlatformCompiledProgram):
5591         Stores a link to a TextureMapperPlatformCompiledProgramClient. It's main purpose is to call unref on the client when
5592         the shader is not needed anymore. WebKit2 can use that to delete the corresponding shader from the compositor side.
5593         (WebCore::TextureMapperPlatformCompiledProgram::create):
5594         (WebCore::TextureMapperPlatformCompiledProgram::setClient): Used by WebKit2 to inject the platform client.
5595         (WebCore::TextureMapperPlatformCompiledProgram::client):
5596         (WebCore::TextureMapperPlatformCompiledProgram::TextureMapperPlatformCompiledProgram):
5597
5598 2012-11-16  Andreas Kling  <akling@apple.com>
5599
5600         Short-circuit Element::hasEquivalentAttributes() if elements share attribute data.
5601         <http://webkit.org/b/102498>
5602
5603         Reviewed by Antti Koivisto.
5604
5605         Add a fast path to hasEquivalentAttributes() that checks if both elements are using
5606         the same ElementAttributeData.
5607
5608         * dom/Element.cpp:
5609         (WebCore::Element::hasEquivalentAttributes):
5610
5611 2012-11-16  Zeno Albisser  <zeno@webkit.org>
5612
5613         [Qt] Adding a null pointer check for currentContext to GraphicsContext3DQt.
5614         https://bugs.webkit.org/show_bug.cgi?id=102360
5615
5616         QOpenGLContext::currentContext() will return null, in case there is
5617         no current context. Therefore currentContext must be null-checked
5618         before it can be reused.
5619         Making a context current on a null-surface on the other hand is
5620         perfectly possible.
5621
5622         Reviewed by Kenneth Rohde Christiansen.
5623
5624         * platform/graphics/qt/GraphicsContext3DQt.cpp:
5625         (WebCore::GraphicsContext3DPrivate::blitMultisampleFramebufferAndRestoreContext):
5626
5627 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
5628
5629         Web Inspector: Workaround to show shortcuts for panels that hasn't been loaded.
5630         https://bugs.webkit.org/show_bug.cgi?id=102488
5631
5632         Reviewed by Vsevolod Vlasov.
5633
5634         Panels are lazily loaded / instantiated.
5635         Panel constructors register keyboard shortcuts.
5636
5637         When user open shortcuts screen all panel should be loaded.
5638         Otherwise some shortcuts will be missing.
5639
5640         * inspector/front-end/ShortcutsScreen.js: Added callback invokation.
5641         * inspector/front-end/inspector.js:
5642         Provided callback that loads all panels.
5643
5644 2012-11-16  Kentaro Hara  <haraken@chromium.org>
5645
5646         [V8] Remove IsSubType() from CodeGeneratorV8.pm
5647         https://bugs.webkit.org/show_bug.cgi?id=102348
5648
5649         Reviewed by Adam Barth.
5650
5651         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
5652
5653         No tests. No change in behavior.
5654
5655         * bindings/scripts/CodeGenerator.pm:
5656         (IsSubType):
5657         * bindings/scripts/CodeGeneratorJS.pm:
5658         (GenerateImplementation):
5659         * bindings/scripts/CodeGeneratorV8.pm:
5660         (GenerateHeader):
5661         (GetInternalFields):
5662         (GenerateNormalAttrGetter):
5663         (GenerateNormalAttrSetter):
5664         (GenerateFunctionCallback):
5665         (GenerateImplementationIndexer):
5666         (GenerateToV8Converters):
5667
5668 2012-11-16  Mario Sanchez Prada  <mario@webkit.org>
5669
5670         [EFL] Share WebKit-Gtk's Accessibility implementation with others WebKit ports.
5671         https://bugs.webkit.org/show_bug.cgi?id=99578
5672
5673         Reviewed by Martin Robinson.
5674
5675         Renamed WebCore/accessibility/gtk to WebCore/accessibility/atk.
5676
5677         * GNUmakefile.am:
5678         * GNUmakefile.list.am:
5679         * accessibility/atk/AXObjectCacheAtk.cpp: Renamed from
5680         Source/WebCore/accessibility/gtk/AXObjectCacheAtk.cpp.
5681         * accessibility/atk/AccessibilityObjectAtk.cpp: Renamed from
5682         Source/WebCore/accessibility/gtk/AccessibilityObjectAtk.cpp.
5683         * accessibility/atk/WebKitAccessibleHyperlink.cpp: Renamed from
5684         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.cpp.
5685         * accessibility/atk/WebKitAccessibleHyperlink.h: Renamed from
5686         Source/WebCore/accessibility/gtk/WebKitAccessibleHyperlink.h.
5687         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp: Renamed
5688         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.cpp.
5689         * accessibility/atk/WebKitAccessibleInterfaceAction.h: Renamed
5690         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceAction.h.
5691         * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
5692         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.cpp.
5693         * accessibility/atk/WebKitAccessibleInterfaceComponent.h: Renamed
5694         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceComponent.h.
5695         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp: Renamed
5696         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.cpp.
5697         * accessibility/atk/WebKitAccessibleInterfaceDocument.h: Renamed
5698         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceDocument.h.
5699         * accessibility/atk/WebKitAccessibleInterfaceEditableText.cpp:
5700         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.cpp.
5701         * accessibility/atk/WebKitAccessibleInterfaceEditableText.h:
5702         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceEditableText.h.
5703         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.cpp:
5704         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.cpp.
5705         * accessibility/atk/WebKitAccessibleInterfaceHyperlinkImpl.h:
5706         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHyperlinkImpl.h.
5707         * accessibility/atk/WebKitAccessibleInterfaceHypertext.cpp:
5708         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.cpp.
5709         * accessibility/atk/WebKitAccessibleInterfaceHypertext.h: Renamed
5710         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceHypertext.h.
5711         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp: Renamed
5712         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.cpp.
5713         * accessibility/atk/WebKitAccessibleInterfaceImage.h: Renamed from
5714         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceImage.h.
5715         * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
5716         Renamed from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.cpp.
5717         * accessibility/atk/WebKitAccessibleInterfaceSelection.h: Renamed
5718         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceSelection.h.
5719         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp: Renamed
5720         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.cpp.
5721         * accessibility/atk/WebKitAccessibleInterfaceTable.h: Renamed from
5722         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceTable.h.
5723         * accessibility/atk/WebKitAccessibleInterfaceText.cpp: Renamed
5724         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.cpp.
5725         * accessibility/atk/WebKitAccessibleInterfaceText.h: Renamed from
5726         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceText.h.
5727         * accessibility/atk/WebKitAccessibleInterfaceValue.cpp: Renamed
5728         from Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.cpp.
5729         * accessibility/atk/WebKitAccessibleInterfaceValue.h: Renamed from
5730         Source/WebCore/accessibility/gtk/WebKitAccessibleInterfaceValue.h.
5731         * accessibility/atk/WebKitAccessibleUtil.cpp: Renamed from
5732         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.cpp.
5733         * accessibility/atk/WebKitAccessibleUtil.h: Renamed from
5734         Source/WebCore/accessibility/gtk/WebKitAccessibleUtil.h.
5735         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Renamed from
5736         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.cpp.
5737         * accessibility/atk/WebKitAccessibleWrapperAtk.h: Renamed from
5738         Source/WebCore/accessibility/gtk/WebKitAccessibleWrapperAtk.h.
5739
5740 2012-11-16  Shinya Kawanaka  <shinyak@chromium.org>
5741
5742         Changing pseudoClass (:indeterminate) should cause distribution
5743         https://bugs.webkit.org/show_bug.cgi?id=101903
5744
5745         Reviewed by Dimitri Glazkov.
5746
5747         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
5748         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
5749
5750         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
5751         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
5752
5753         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
5754                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
5755
5756         * html/HTMLInputElement.cpp:
5757         (WebCore::HTMLInputElement::updateType):
5758         (WebCore::HTMLInputElement::setIndeterminate):
5759         * html/HTMLProgressElement.cpp:
5760         (WebCore::HTMLProgressElement::didElementStateChange):
5761
5762 2012-11-16  Alexis Menard  <alexis@webkit.org>
5763
5764         Factorize the creation of primitive values with a pair into a function.
5765         https://bugs.webkit.org/show_bug.cgi?id=102485
5766
5767         Reviewed by Antti Koivisto.
5768
5769         The pattern is already existing in various call sites inside CSSParser
5770         and more will be added in the future (see bug 102104).
5771
5772         No new tests : It's a refactoring only, the tests should cover it.
5773
5774         * css/CSSParser.cpp:
5775         (WebCore):
5776         (WebCore::createPrimitiveValuePair):
5777         (WebCore::CSSParser::parseValue):
5778         (WebCore::CSSParser::parseFillSize):
5779         (WebCore::CSSParser::parseBorderImageRepeat):
5780         (WebCore::CSSParser::parseBorderRadius):
5781         (WebCore::CSSParser::parseCounter):
5782
5783 2012-11-16  Mark Pilgrim  <pilgrim@chromium.org>
5784
5785         Expand PlatformCookieJar interface to allow for other ports
5786         https://bugs.webkit.org/show_bug.cgi?id=102456
5787
5788         Reviewed by Adam Barth.
5789
5790         Add firstParty and cookieURL arguments to several functions to
5791         prepare for integrating Chromium port into new PlatformCookieJar
5792         interface.
5793
5794         * loader/CookieJar.cpp:
5795         (WebCore::cookiesEnabled):
5796         (WebCore::cookieRequestHeaderFieldValue):
5797         (WebCore::getRawCookies):
5798         * platform/network/PlatformCookieJar.h:
5799         (WebCore):
5800         * platform/network/cf/CookieJarCFNet.cpp:
5801         (WebCore::cookieRequestHeaderFieldValue):
5802         (WebCore::cookiesEnabled):
5803         (WebCore::getRawCookies):
5804         * platform/network/curl/CookieJarCurl.cpp:
5805         (WebCore::cookieRequestHeaderFieldValue):
5806         (WebCore::cookiesEnabled):
5807         (WebCore::getRawCookies):
5808         * platform/network/mac/CookieJarMac.mm:
5809         (WebCore::cookieRequestHeaderFieldValue):
5810         (WebCore::cookiesEnabled):
5811         (WebCore::getRawCookies):
5812         * platform/network/qt/CookieJarQt.cpp:
5813         (WebCore::cookieRequestHeaderFieldValue):
5814         (WebCore::cookiesEnabled):
5815         (WebCore::getRawCookies):
5816         * platform/network/soup/CookieJarSoup.cpp:
5817         (WebCore::cookieRequestHeaderFieldValue):
5818         (WebCore::cookiesEnabled):
5819         (WebCore::getRawCookies):
5820         * platform/network/win/CookieJarWin.cpp:
5821         (WebCore::cookieRequestHeaderFieldValue):
5822         (WebCore::cookiesEnabled):
5823         (WebCore::getRawCookies):
5824
5825 2012-11-16  Julien Chaffraix  <jchaffraix@webkit.org>
5826
5827         RenderGrid should have a function to resolve grid position
5828         https://bugs.webkit.org/show_bug.cgi?id=102441
5829
5830         Reviewed by Ojan Vafai.
5831
5832         The code was doing this conversion implicitly inside RenderGrid::findChildLogicalPosition.
5833         Also note that we also provided a fallback by returning LayoutPoint() (ie the (0, 0) position
5834         on the grid) if we couldn't handle the value. The explicit conversion is needed in order to
5835         support render areas and add a proper grid model to RenderGrid.
5836
5837         No expected change in behavior.
5838
5839         * rendering/RenderGrid.h:
5840         * rendering/RenderGrid.cpp:
5841         (WebCore::RenderGrid::resolveGridPosition):
5842         Added this new function to handle the conversion. We re-use Length but should never see
5843         a lot of the <length> values so I added some ASSERTs to enforce and catch that.
5844
5845         (WebCore::RenderGrid::findChildLogicalPosition):
5846         Simplified the function now that it just use resolveGridPosition.
5847
5848 2012-11-16  Ulan Degenbaev  <ulan@chromium.org>
5849
5850         [V8] Increment the amount of externally allocated memory for the receiving V8 isolate when transferring ArrayBuffer
5851         https://bugs.webkit.org/show_bug.cgi?id=94463
5852
5853         Reviewed by Kentaro Hara.
5854
5855         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer is deserialized and transferred.
5856
5857         Test: ManualTests/typed-array-memory.html
5858
5859         * bindings/v8/SerializedScriptValue.cpp:
5860
5861 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
5862
5863         Unreviewed, rolling out r134694.
5864         http://trac.webkit.org/changeset/134694
5865         https://bugs.webkit.org/show_bug.cgi?id=102481
5866
5867         it made API test crash on EFL port (Requested by gyuyoung on
5868         #webkit).
5869
5870         * platform/efl/RenderThemeEfl.cpp:
5871         (WebCore::fillColorsFromEdjeClass):
5872         (WebCore::RenderThemeEfl::setColorFromThemeClass):
5873         (WebCore::RenderThemeEfl::loadTheme):
5874         (WebCore::RenderThemeEfl::RenderThemeEfl):
5875         * platform/efl/RenderThemeEfl.h:
5876         (RenderThemeEfl):
5877
5878 2012-11-16  Mike West  <mkwst@chromium.org>
5879
5880         Web Inspector: Move call stack generation out of bindings.
5881         https://bugs.webkit.org/show_bug.cgi?id=101331
5882
5883         Reviewed by Yury Semikhatsky.
5884
5885         Currently, we generate stack traces for console messages at each call
5886         site. Bug 100650 has the end goal of moving all stack trace generation
5887         inside of the Inspector in order to ensure that we never send a console
5888         message without a stack trace if it's possible to generate one. This
5889         also ensures that we never generate unused call stacks.
5890
5891         This patch is the first step in that direction, moving stack trace
5892         generation out of the Console bindings, and into either Console or
5893         InspectorConsoleAgent.
5894
5895         No visible change in behavior should result; this refactoring should
5896         continue to pass all existing inspector tests.
5897
5898         * bindings/js/JSConsoleCustom.cpp:
5899         (WebCore::JSConsole::profile):
5900         (WebCore::JSConsole::profileEnd):
5901             Adjust custom JSC Console bindings to drop call stack generation.
5902         * bindings/scripts/CodeGeneratorJS.pm:
5903         (GenerateCallWith):
5904         * bindings/scripts/CodeGeneratorV8.pm:
5905         (GenerateCallWith):
5906             Drop call stack generation from JSC and V8 bindings.
5907         * bindings/scripts/CodeGeneratorGObject.pm:
5908             Skip timeEnd explicitly in these bindings; it used to include
5909             ScriptArguments, which autoskipped it. Now it doesn't, so it needs
5910             to be called out on its own.
5911         * bindings/v8/ScriptCallStackFactory.cpp:
5912         (WebCore::createScriptCallStackForConsole):
5913         (WebCore::createScriptCallStack):
5914         (WebCore):
5915         * bindings/v8/ScriptCallStackFactory.h:
5916         (WebCore):
5917             Add 'createScriptCallStack(ScriptState*, size_t)' to V8's
5918             ScriptCallStackFactory in order to match JCS' implementation.
5919             It simply delegates to 'createScriptCallStackForConsole', which
5920             now also accepts a 'maxStackSize' parameter.
5921         * bindings/v8/custom/V8ConsoleCustom.cpp:
5922         (WebCore::V8Console::traceCallback):
5923         (WebCore::V8Console::assertCallback):
5924         (WebCore::V8Console::profileCallback):
5925         (WebCore::V8Console::profileEndCallback):
5926             Adjust custom V8 bindings to drop call stack generation.
5927         * inspector/InspectorConsoleAgent.cpp:
5928         (WebCore::InspectorConsoleAgent::addMessageToConsole):
5929             With the eventual goal of getting rid of the call stack parameter
5930             entirely, this patch drops it from one version of
5931             'addMessageToConsole' (replacing it with ScriptState*), and creates
5932             a new version that only accepts a call stack. We should be able to
5933             migrate most (all?) external call sites over to the arguments
5934             version in future patches.
5935         (WebCore):
5936         (WebCore::InspectorConsoleAgent::count):
5937             Count takes 'ScriptState*' instead of a call stack, and generates
5938             the stack as needed.
5939         * inspector/InspectorConsoleAgent.h:
5940         (InspectorConsoleAgent):
5941         * inspector/InspectorConsoleInstrumentation.h:
5942         (WebCore::InspectorInstrumentation::addMessageToConsole):
5943         (WebCore):
5944         (WebCore::InspectorInstrumentation::consoleCount):
5945         * inspector/InspectorInstrumentation.cpp:
5946         (WebCore):
5947         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
5948         (WebCore::InspectorInstrumentation::consoleCountImpl):
5949         * inspector/InspectorInstrumentation.h:
5950         (InspectorInstrumentation):
5951             Changes the InspectorInstrumentation pipeline to match the
5952             InspectorConsoleAgent changes.
5953         * page/Console.cpp:
5954         (WebCore::Console::addMessage):
5955             We now (always) generate one frame of a stack trace in order to
5956             populate line numbers and caller URLs. If we need to print the whole
5957             trace here, we generate a full stack.
5958         (WebCore::Console::debug):
5959         (WebCore::Console::error):
5960         (WebCore::Console::info):
5961         (WebCore::Console::log):
5962         (WebCore::Console::warn):
5963         (WebCore::Console::dir):
5964         (WebCore::Console::dirxml):
5965         (WebCore::Console::clear):
5966         (WebCore::Console::trace):
5967         (WebCore::Console::assertCondition):
5968         (WebCore::Console::count):
5969         (WebCore::Console::markTimeline):
5970         (WebCore::Console::timeEnd):
5971         (WebCore::Console::timeStamp):
5972         (WebCore::Console::group):
5973         (WebCore::Console::groupCollapsed):
5974         (WebCore::Console::profile):
5975         (WebCore::Console::profileEnd):
5976             s/ScriptCallStack/ScriptState*/g. Also, printing the stack trace
5977             has been moved out of 'trace' and into 'addMessage'.
5978         * page/Console.h:
5979         (Console):
5980         * page/Console.idl:
5981             Drop the call stack, add the script state.
5982         * workers/WorkerContext.cpp:
5983         (WebCore::WorkerContext::addMessageToWorkerConsole):
5984             Use the new, explicitly call stacked addMessageToConsole. We'll kill
5985             this in a future patch.
5986
5987 2012-11-16  Marja Hölttä  <marja@chromium.org>
5988
5989         Add initiator to CachedResourceRequest.
5990         https://bugs.webkit.org/show_bug.cgi?id=101935
5991
5992         Reviewed by Adam Barth.
5993
5994         Motivation: Chromium needs to know which elements request a
5995         resource (such as an image or a script) (bug 92761). In addition,
5996         for exposing resource timing information (bug 84883) we need to
5997         store the initiator, and this is the first step towards it.
5998
5999         No new tests: No visible change in behavior.
6000
6001         * CMakeLists.txt:
6002         * GNUmakefile.list.am:
6003         * Target.pri:
6004         * WebCore.gypi:
6005         * WebCore.vcproj/WebCore.vcproj:
6006         * WebCore.xcodeproj/project.pbxproj:
6007         * css/CSSCursorImageValue.cpp:
6008         (WebCore::CSSCursorImageValue::cachedImage):
6009         * css/CSSFontFaceSrcValue.cpp:
6010         (WebCore::CSSFontFaceSrcValue::cachedFont):
6011         * css/CSSImageSetValue.cpp:
6012         (WebCore::CSSImageSetValue::cachedImageSet):
6013         * css/CSSImageValue.cpp:
6014         (WebCore::CSSImageValue::cachedImage):
6015         * css/CSSImageValue.h:
6016         (WebCore):
6017         (CSSImageValue):
6018         * css/StyleResolver.cpp:
6019         (WebCore::StyleResolver::loadPendingImage):
6020         * css/StyleRuleImport.cpp:
6021         (WebCore::StyleRuleImport::requestStyleSheet):
6022         * css/WebKitCSSSVGDocumentValue.cpp:
6023         (WebCore::WebKitCSSSVGDocumentValue::load):
6024         * css/WebKitCSSShaderValue.cpp:
6025         (WebCore::WebKitCSSShaderValue::cachedShader):
6026         * dom/ScriptElement.cpp:
6027         (WebCore::ScriptElement::requestScript):
6028         * html/HTMLLinkElement.cpp:
6029         (WebCore::HTMLLinkElement::process):
6030         * html/parser/CSSPreloadScanner.cpp:
6031         (WebCore::CSSPreloadScanner::emitRule):
6032         * html/parser/CSSPreloadScanner.h:
6033         (CSSPreloadScanner):
6034         * html/parser/HTMLPreloadScanner.cpp:
6035         (WebCore::PreloadTask::preload):
6036         * loader/ImageLoader.cpp:
6037         (WebCore::ImageLoader::updateFromElement):
6038         * loader/cache/CachedResourceLoader.cpp:
6039         (WebCore::CachedResourceLoader::requestImage):
6040         (WebCore::CachedResourceLoader::requestResource):
6041         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
6042         (WebCore):
6043         (WebCore::CachedResourceLoader::preload):
6044         * loader/cache/CachedResourceLoader.h:
6045         (WebCore):
6046         (CachedResourceLoader):
6047         * loader/cache/CachedResourceRequest.cpp:
6048         (WebCore::CachedResourceRequest::CachedResourceRequest):
6049         (WebCore):
6050         (WebCore::CachedResourceRequest::~CachedResourceRequest):
6051         (WebCore::CachedResourceRequest::setInitiator):
6052         (WebCore::CachedResourceRequest::initiatorName):
6053         (WebCore::CachedResourceRequest::initiatorDocument):
6054         (WebCore::CachedResourceRequest::initiatorElement):
6055         * loader/cache/CachedResourceRequest.h:
6056         (WebCore):
6057         (WebCore::CachedResourceRequest::setOptions):
6058         (WebCore::CachedResourceRequest::defer):
6059         (WebCore::CachedResourceRequest::setDefer):
6060         (CachedResourceRequest):
6061         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6062         (WebCore):
6063         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
6064         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
6065         (WebCore):
6066         (CachedResourceRequestInitiators):
6067         (WebCore::cachedResourceRequestInitiators):
6068         * loader/icon/IconLoader.cpp:
6069         (WebCore::IconLoader::startLoading):
6070         * platform/ThreadGlobalData.cpp:
6071         (WebCore::ThreadGlobalData::ThreadGlobalData):
6072         * platform/ThreadGlobalData.h:
6073         (WebCore):
6074         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
6075         (ThreadGlobalData):
6076         * svg/SVGFEImageElement.cpp:
6077         (WebCore::SVGFEImageElement::requestImageResource):
6078         * svg/SVGFontFaceUriElement.cpp:
6079         (WebCore::SVGFontFaceUriElement::loadFont):
6080         * svg/SVGUseElement.cpp:
6081         (WebCore::SVGUseElement::svgAttributeChanged):
6082
6083 2012-11-16  Yury Semikhatsky  <yurys@chromium.org>
6084
6085         Web Inspector: don't show an Error when evaluating a watch expression results in an exception
6086         https://bugs.webkit.org/show_bug.cgi?id=102470
6087
6088         Reviewed by Vsevolod Vlasov.
6089
6090         Dim watch expression and show "<not available>" as its value in cases when it evaluates
6091         into an exception.
6092
6093         * English.lproj/localizedStrings.js:
6094         * inspector/front-end/WatchExpressionsSidebarPane.js:
6095         (WebInspector.WatchExpressionTreeElement.prototype.update):
6096         * inspector/front-end/inspector.css:
6097
6098 2012-11-16  Vsevolod Vlasov  <vsevik@chromium.org>
6099
6100         Web Inspector: Rollout 134404 134548 134552 Temporarily rolling out to ease merging.
6101         https://bugs.webkit.org/show_bug.cgi?id=102476
6102
6103         Unreviewed rolling out.
6104
6105         * English.lproj/localizedStrings.js:
6106         * WebCore.gypi:
6107         * WebCore.vcproj/WebCore.vcproj:
6108         * inspector/compile-front-end.py:
6109         * inspector/front-end/AdvancedSearchController.js:
6110         * inspector/front-end/CallStackSidebarPane.js:
6111         (WebInspector.CallStackSidebarPane.prototype.registerShortcuts):
6112         * inspector/front-end/ConsoleView.js:
6113         (WebInspector.ConsoleView.prototype._registerShortcuts):
6114         * inspector/front-end/ElementsPanel.js:
6115         (WebInspector.ElementsPanel):
6116         (WebInspector.ElementsPanel.prototype._registerShortcuts):
6117         * inspector/front-end/ElementsPanelDescriptor.js:
6118         * inspector/front-end/GoToLineDialog.js:
6119         (WebInspector.GoToLineDialog.install):
6120         * inspector/front-end/KeyboardShortcut.js:
6121         (WebInspector.KeyboardShortcut._keyName):
6122         * inspector/front-end/Panel.js:
6123         (WebInspector.Panel.prototype.registerShortcut):
6124         (WebInspector.Panel.prototype.unregisterShortcut):
6125         (WebInspector.PanelDescriptor.prototype.panel):
6126         * inspector/front-end/ScriptsPanel.js:
6127         (WebInspector.ScriptsPanel):
6128         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
6129         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
6130         * inspector/front-end/ScriptsPanelDescriptor.js:
6131         * inspector/front-end/ShortcutsScreen.js:
6132         (WebInspector.ShortcutsScreen):
6133         (WebInspector.ShortcutsSection):
6134         (WebInspector.ShortcutsSection.prototype._renderKey):
6135         * inspector/front-end/StylesSidebarPane.js:
6136         (WebInspector.StylesSidebarPane.prototype.registerShortcuts):
6137         * inspector/front-end/TimelinePanel.js:
6138         (WebInspector.TimelinePanel.prototype._registerShortcuts):
6139         * inspector/front-end/TimelinePanelDescriptor.js: Removed.
6140         * inspector/front-end/WebKit.qrc:
6141         * inspector/front-end/inspector.html:
6142         * inspector/front-end/inspector.js:
6143         (WebInspector._panelDescriptors):
6144         (WebInspector._registerShortcuts):
6145
6146 2012-11-16  Eugene Klyuchnikov  <eustas.bug@gmail.com>
6147
6148         Web Inspector: Memory Timeline Crash
6149         https://bugs.webkit.org/show_bug.cgi?id=102390
6150
6151         Reviewed by Vsevolod Vlasov.
6152
6153         Crash seems to be caused by IPC overflow.
6154         Messages "ParsedScriptSource" are routed to
6155         ResourceScriptMapping.prototype.addScript that process them in time
6156         linear to number of already registered non-anonymous non-inline scripts.
6157
6158         Fixed this with replacing repreated filtering with "on-line" bucketing.
6159
6160         * inspector/front-end/ResourceScriptMapping.js:
6161         (WebInspector.ResourceScriptMapping):
6162         Removed duplicating initialization code.
6163         (WebInspector.ResourceScriptMapping.prototype.addScript):
6164         Added script bucketing by sourceURL/isInline parameters.
6165         (WebInspector.ResourceScriptMapping.prototype._scriptsForSourceURL):
6166         Avoid filterfig.
6167         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
6168         Added outgoing muatable array safeguard.
6169         (WebInspector.ResourceScriptMapping.prototype._reset):
6170         Added type information and added two new maps.
6171
6172 2012-11-16  Helder Correia  <helder.correia@nokia.com>
6173
6174         [CoordGfx] Follow coding style on explicit constructors
6175         https://bugs.webkit.org/show_bug.cgi?id=102451
6176
6177         Reviewed by Noam Rosenthal.
6178
6179         Use the explicit keyword on single argument constructors.
6180
6181         No new tests needed.
6182
6183         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
6184         (GraphicsLayerTextureMapper):
6185         * platform/graphics/texmap/TextureMapper.h:
6186         (TextureMapper):
6187         * platform/graphics/texmap/TextureMapperBackingStore.h:
6188         (WebCore::TextureMapperTile::TextureMapperTile):
6189         * platform/graphics/texmap/TextureMapperGL.cpp:
6190         (WebCore::TextureMapperGLData::SharedGLData::SharedGLData):
6191         (WebCore::TextureMapperGLData::TextureMapperGLData):
6192         * platform/graphics/texmap/TextureMapperGL.h:
6193         (BitmapTextureGL):
6194         * platform/graphics/texmap/TextureMapperShaderManager.h:
6195         (TextureMapperShaderManager):
6196
6197 2012-11-16  Kihong Kwon  <kihong.kwon@samsung.com>
6198
6199         Add DeviceController base-class to remove duplication of DeviceXXXControler
6200         https://bugs.webkit.org/show_bug.cgi?id=96894
6201
6202         Reviewed by Hajime Morita.
6203
6204         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
6205         And soon-to-be-added DeviceMotionController and ProximityController.
6206
6207         Covered by existing tests.
6208
6209         * CMakeLists.txt:
6210         * GNUmakefile.list.am:
6211         * Target.pri:
6212         * WebCore.gypi:
6213         * WebCore.vcproj/WebCore.vcproj:
6214         * WebCore.xcodeproj/project.pbxproj:
6215         * dom/DeviceOrientationClient.h:
6216         * dom/DeviceOrientationController.cpp:
6217         Remove member functions to move to DeviceController.
6218         - addListener(), removeListener(), removeAllListeners(), isActive()
6219         (WebCore::DeviceOrientationController::DeviceOrientationController):
6220         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
6221         (WebCore::DeviceOrientationController::client):
6222         (WebCore::DeviceOrientationController::hasLastData):
6223         (WebCore::DeviceOrientationController::getLastEvent):
6224         (WebCore::DeviceOrientationController::from):
6225         (WebCore):
6226         * dom/DeviceOrientationController.h:
6227         (WebCore):
6228         (WebCore::DeviceOrientationController::~DeviceOrientationController):
6229         (DeviceOrientationController):
6230         * dom/Document.cpp:
6231         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
6232         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
6233         (WebCore::Document::suspendActiveDOMObjects):
6234         (WebCore::Document::resumeActiveDOMObjects):
6235         * loader/EmptyClients.h:
6236         (EmptyDeviceClient):
6237         (WebCore::EmptyDeviceClient::startUpdating):
6238         (WebCore::EmptyDeviceClient::stopUpdating):
6239         (WebCore):
6240         * page/DOMWindow.cpp:
6241         (WebCore::DOMWindow::addEventListener):
6242         (WebCore::DOMWindow::removeEventListener):
6243         (WebCore::DOMWindow::removeAllEventListeners):
6244         * page/DeviceClient.h: Added.
6245         (WebCore):
6246         (DeviceClient):
6247         (WebCore::DeviceClient::~DeviceClient):
6248         * page/DeviceController.cpp: Added.
6249         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
6250         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
6251         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
6252         (WebCore):
6253         (WebCore::DeviceController::DeviceController):
6254         (WebCore::DeviceController::addDeviceEventListener):
6255         (WebCore::DeviceController::removeDeviceEventListener):
6256         (WebCore::DeviceController::removeAllDeviceEventListeners):
6257         (WebCore::DeviceController::dispatchDeviceEvent):
6258         (WebCore::DeviceController::fireDeviceEvent):
6259         * page/DeviceController.h: Added.
6260         (WebCore):
6261         (DeviceController):
6262         (WebCore::DeviceController::~DeviceController):
6263         (WebCore::DeviceController::isActive):
6264         (WebCore::DeviceController::client):
6265         (WebCore::DeviceController::hasLastData):
6266         (WebCore::DeviceController::getLastEvent):
6267
6268 2012-11-16  Alexander Pavlov  <apavlov@chromium.org>
6269
6270         Web Inspector: [Overrides] Device metrics get reset on navigation, yet remain in the Overrides view
6271         https://bugs.webkit.org/show_bug.cgi?id=102467
6272
6273         Reviewed by Pavel Feldman.
6274
6275         Restore the device metrics overrides from the inspector cookie in InspectorPageAgent::restore().
6276         Drive-by: move the script execution and FPS counter display state restoration from enable() into restore(),
6277         so that they will get restored only upon page navigation, not upon any agent enablement.
6278
6279         * inspector/InspectorPageAgent.cpp:
6280         (WebCore::InspectorPageAgent::restore): Restore device metrics overrides, script execution and FPS counter display state.
6281         (WebCore::InspectorPageAgent::enable): Don't restore script execution and FPS counter display state on any enablement.
6282
6283 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6284
6285         Unreviewed, rolling out r134908.
6286         http://trac.webkit.org/changeset/134908
6287         https://bugs.webkit.org/show_bug.cgi?id=102473
6288
6289         Broke the Apple Windows Debug build. (Requested by dydx on
6290         #webkit).
6291
6292         * WebCore.exp.in:
6293         * dom/ViewportArguments.cpp:
6294         (WebCore::computeViewportAttributes):
6295         * dom/ViewportArguments.h:
6296         (WebCore):
6297
6298 2012-11-16  Peter Rybin  <prybin@chromium.org>
6299
6300         Web Inspector: show internal properties in inspector frontend
6301         https://bugs.webkit.org/show_bug.cgi?id=100021
6302
6303         Reviewed by Yury Semikhatsky.
6304
6305         New field 'internalProperties' is parsed and passed via all callbacks to Object Properties section.
6306
6307         Test: inspector/debugger/properties-special.html
6308
6309         * inspector/front-end/ObjectPropertiesSection.js:
6310         (WebInspector.ObjectPropertiesSection.prototype.update.callback):
6311         (WebInspector.ObjectPropertiesSection.prototype.update):
6312         (.callback):
6313         (WebInspector.ObjectPropertyTreeElement.populate):
6314         (.processProperties):
6315         (WebInspector.ArrayGroupingTreeElement._populateAsFragment):
6316         (WebInspector.ArrayGroupingTreeElement._populateNonIndexProperties):
6317         * inspector/front-end/RemoteObject.js:
6318         (WebInspector.RemoteObject.prototype.set else):
6319
6320 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
6321
6322         Web Inspector: metrics, geolocation, orientation overrides do not belong to the settings panel
6323         https://bugs.webkit.org/show_bug.cgi?id=93691
6324
6325         Reviewed by Vsevolod Vlasov.
6326
6327         - The Overrides tab contents have been moved from the Settings dialog into a brand new Overrides drawer view,
6328         both receiving a new, more light-weight design.
6329         - The Cog button now brings up a popup menu with the "Overrides" and "Settings" items.
6330
6331         * WebCore.gypi:
6332         * WebCore.vcproj/WebCore.vcproj:
6333         * inspector/compile-front-end.py:
6334         * inspector/front-end/ContextMenu.js:
6335         (WebInspector.ContextMenu.prototype.showSoftMenu): Display the ContextMenu as a soft menu.
6336         * inspector/front-end/OverridesView.js: Copied from Source/WebCore/inspector/front-end/SettingsScreen.js.
6337         (WebInspector.OverridesView.appendBlockTo):
6338         (WebInspector.OverridesView):
6339         (WebInspector.OverridesView.showInDrawer):
6340         (WebInspector.OverridesView.prototype.get listener):
6341         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.get const):
6342         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textDoubleClicked):
6343         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.textChanged):
6344         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement.set checkboxClicked):
6345         (WebInspector.OverridesView.prototype._createUserAgentSelectRowElement):
6346         (WebInspector.OverridesView.prototype._createInput):
6347         (WebInspector.OverridesView.prototype._onMetricsCheckboxClicked):
6348         (WebInspector.OverridesView.prototype._applyDeviceMetricsUserInput):
6349         (WebInspector.OverridesView.prototype.):
6350         (WebInspector.OverridesView.prototype.set if):
6351         (WebInspector.OverridesView.prototype._createDeviceMetricsElement.swapDimensionsClicked):
6352         (WebInspector.OverridesView.prototype._createDeviceMetricsElement):
6353         (WebInspector.OverridesView.prototype._onGeolocationOverrideCheckboxClicked):
6354         (WebInspector.OverridesView.prototype._applyGeolocationUserInput):
6355         (WebInspector.OverridesView.prototype._setGeolocationPosition):
6356         (WebInspector.OverridesView.prototype._createGeolocationOverrideElement):
6357         (WebInspector.OverridesView.prototype._onDeviceOrientationOverrideCheckboxClicked):
6358         (WebInspector.OverridesView.prototype._applyDeviceOrientationUserInput):
6359         (WebInspector.OverridesView.prototype._setDeviceOrientation):
6360         (WebInspector.OverridesView.prototype._createDeviceOrientationOverrideElement):
6361         * inspector/front-end/ScriptsPanel.js:
6362         (WebInspector.ScriptsPanel): Fix the "DOM Breakpoints" pane move upon the panel creation.
6363         * inspector/front-end/SettingsScreen.js:
6364         (WebInspector.SettingsTab):
6365         (WebInspector.SettingsTab.prototype._appendSection):
6366         (WebInspector.GenericSettingsTab):
6367         (WebInspector.ExperimentsSettingsTab):
6368         (WebInspector.SettingsController): Implement the popup menu upon the button click.
6369         (WebInspector.SettingsController.prototype.showOverrides):
6370         (WebInspector.SettingsController.prototype.showSettings):
6371         (WebInspector.SettingsController.prototype.appendApplicableItems):
6372         (WebInspector.SettingsController.prototype._buttonPressed):
6373         (WebInspector.SettingsController.prototype._onHideSettingsScreen):
6374         (WebInspector.SettingsController.prototype.showSettingsScreen):
6375         * inspector/front-end/ShortcutsScreen.js: Add "Shortcuts" header.
6376         (WebInspector.ShortcutsScreen.prototype.createShortcutsTabView):
6377         * inspector/front-end/SoftContextMenu.js: Enable in all cases, implement the alignToCurrentTarget mode in show().
6378         (WebInspector.SoftContextMenu.prototype.show):
6379         * inspector/front-end/TabbedPane.js: Implement vertical tab layout (skipping the tab width computations).
6380         (WebInspector.TabbedPane.prototype.set verticalTabLayout):
6381         (WebInspector.TabbedPane.prototype._updateWidths):
6382         (WebInspector.TabbedPaneTab.prototype.setWidth):
6383         (WebInspector.TabbedPaneTab.prototype._createTabElement):
6384         * inspector/front-end/WebKit.qrc:
6385         * inspector/front-end/helpScreen.css: Update styles for the new Settings and Overrides look-and-feel.
6386         * inspector/front-end/inspector.css: Drive-by fix small artifacts in the soft menu and drawer view statusbar item label.
6387         (.soft-context-menu-item):
6388         (.drawer-header):
6389         * inspector/front-end/inspector.html:
6390
6391 2012-11-16  Sheriff Bot  <webkit.review.bot@gmail.com>
6392
6393         Unreviewed, rolling out r134865.
6394         http://trac.webkit.org/changeset/134865
6395         https://bugs.webkit.org/show_bug.cgi?id=102466
6396
6397         Broke the Apple Windows Debug build. (Requested by dydx on
6398         #webkit).
6399
6400         * WebCore.exp.in:
6401         * bindings/js/SerializedScriptValue.h:
6402         * testing/Internals.cpp:
6403         * testing/Internals.h:
6404         (WebCore):
6405         * testing/Internals.idl:
6406
6407 2012-11-16  Takashi Sakamoto  <tasak@google.com>
6408
6409         ASSERT_NOT_REACHED() when building a CSSOM wrapper for StyleRuleHost
6410         https://bugs.webkit.org/show_bug.cgi?id=102116
6411
6412         Reviewed by Alexander Pavlov.
6413
6414         Provide a CSSUnknownRule instance as a CSSOM wrapper for StyleRuleHost
6415         rules. Since there is no CSSOM wrapper for @host @-rules and
6416         ASSERT_NOT_REACHED is used when a CSSOM wrapper is requested,
6417         this crash occurs.
6418
6419         Tests: fast/css/at-host-cssom-crash.html
6420                inspector/styles/styles-include-host-rules-crash.html
6421
6422         * css/StyleRule.cpp:
6423         (WebCore::StyleRuleBase::createCSSOMWrapper):
6424         Return a CSSUnknownRule instance for StyleRuleHost rules instead of
6425         calling ASSERT_NOT_REACHED().
6426
6427 2012-11-16  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
6428
6429         Avoid copying of ViewportArguments in computeViewportAttributes function
6430         https://bugs.webkit.org/show_bug.cgi?id=102354
6431
6432         Reviewed by Kenneth Rohde Christiansen.
6433
6434         Since r134749 we do not need copying of ViewportArguments parameter in
6435         computeViewportAttributes() as it is not modified any more.
6436
6437         Tested by existing tests fast/viewport.
6438
6439         * WebCore.exp.in: Updated exported symbols for MAC.
6440         * dom/ViewportArguments.cpp:
6441         (WebCore::computeViewportAttributes):
6442         * dom/ViewportArguments.h:
6443         (WebCore):
6444
6445 2012-11-15  Yury Semikhatsky  <yurys@chromium.org>
6446
6447         Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
6448         https://bugs.webkit.org/show_bug.cgi?id=102384
6449
6450         Reviewed by Pavel Feldman.
6451
6452         * inspector/InspectorMemoryAgent.cpp:
6453         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject): return false
6454         if the check fails.
6455         * inspector/MemoryInstrumentationImpl.h:
6456         (MemoryInstrumentationClientImpl):
6457
6458 2012-11-15  Jer Noble  <jer.noble@apple.com>
6459
6460         Crash at WebCore::PluginData::pluginFileForMimeType const + 38
6461         https://bugs.webkit.org/show_bug.cgi?id=102454
6462
6463         Reviewed by Dan Bernstein.
6464
6465         NULL-check the return value of Page::pluginData().
6466
6467         * loader/SubframeLoader.cpp:
6468         (WebCore::logPluginRequest):
6469
6470 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6471
6472         [Chromium] Unreviewed build fix attempt on win
6473
6474         Include OpenTypeVerticalData.h
6475
6476         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6477         (WebCore):
6478
6479 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6480
6481         Unreviewed, rolling out r134881.
6482         http://trac.webkit.org/changeset/134881
6483         https://bugs.webkit.org/show_bug.cgi?id=102348
6484
6485         http/tests/appcache tests on JSC platforms are broken
6486
6487         * bindings/scripts/CodeGenerator.pm:
6488         (IsStrictSubtype):
6489         * bindings/scripts/CodeGeneratorJS.pm:
6490         (GenerateImplementation):
6491         * bindings/scripts/CodeGeneratorV8.pm:
6492         (GenerateHeader):
6493         (GetInternalFields):
6494         (IsSubType):
6495         (IsNodeSubType):
6496         (GenerateNormalAttrGetter):
6497         (GenerateNormalAttrSetter):
6498         (GenerateFunctionCallback):
6499         (GenerateImplementationIndexer):
6500         (GenerateToV8Converters):
6501
6502 2012-11-15  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
6503
6504         [TexMap][Cairo][Qt] Refactor BitmapTextureGL::updateContents().
6505         https://bugs.webkit.org/show_bug.cgi?id=102420
6506
6507         Reviewed by Gyuyoung Kim.
6508
6509         Moved out texture upload without swizzle to the separate method and changed
6510         drawRepaintCounter to use no-swizzle method. This also fixes blue background
6511         of repaint counters in Qt Minibrowser.
6512         Added condition for sub-image buffer creation to not create it if full image is
6513         uploaded. This should give noticeable improvement for platforms that do not
6514         support sub-image upload to texture.
6515
6516         Covered by existing tests.
6517
6518         * platform/graphics/texmap/TextureMapperGL.cpp:
6519         (WebCore::TextureMapperGL::drawRepaintCounter):
6520         (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
6521         (WebCore):
6522         (WebCore::BitmapTextureGL::updateContents):
6523         * platform/graphics/texmap/TextureMapperGL.h:
6524         (BitmapTextureGL):
6525
6526 2012-11-15  Kent Tamura  <tkent@chromium.org>
6527
6528         A Spin button should release mouse event capturing when a modal dialog opens
6529         https://bugs.webkit.org/show_bug.cgi?id=98007
6530
6531         Reviewed by Hajime Morita.
6532
6533         Description of bug:
6534         If the mouse left button is pressed on a spin button in
6535         input[type=number] and a 'change' event handler opens a modal dialog
6536         such as alert(), a repeating timer doesn't stop and mouse event
6537         capturing isn't released even though the mouse pointer isn't on the spin
6538         button.
6539         A user will see repeating alert dialogs for a document like <input
6540         type=number value=1 onchange="if (this.value==1) {alert(...);
6541         this.value=1;}"> by clicking the up button.
6542
6543         How to solve:
6544         We should notify modal dialog or popup open to a spin button.
6545         This patch introduce PopupOpeningObserver. Chrome notifies it when
6546         any dialogs / popups is opening. SpinButtonElement implements
6547         PopupOpeningObserver and registers/unregisters itself to/from
6548         Chrome.
6549
6550         No new tests. This is a behavior change, but it's very hard to make an
6551         automated test for timer-related behavior.
6552
6553         * page/PopupOpeningObserver.h: Added.
6554         * GNUmakefile.list.am: Add PopupOpeningObserver.h
6555         * Target.pri: Ditto.
6556         * WebCore.gypi: Ditto.
6557         * WebCore.vcproj/WebCore.vcproj: Ditto.
6558         * WebCore.xcodeproj/project.pbxproj: Ditto.
6559
6560         * page/Chrome.cpp:
6561         (WebCore::Chrome::runJavaScriptAlert): Calls notifyPopupOpeningObservers.
6562         (WebCore::Chrome::runJavaScriptConfirm): Ditto.
6563         (WebCore::Chrome::runJavaScriptPrompt): Ditto.
6564         (WebCore::Chrome::createColorChooser): Ditto.
6565         (WebCore::Chrome::openDateTimeChooser):
6566         Added. Calls notifyPopupOpeningObservers before calling
6567         ChromeClient::openDateTimeChooser.
6568         (WebCore::Chrome::runOpenPanel): Calls notifyPopupOpeningObservers.
6569         (WebCore::Chrome::createPopupMenu): Ditto.
6570         (WebCore::Chrome::createSearchPopupMenu): Ditto.
6571         (WebCore::Chrome::registerPopupOpeningObserver): Added.
6572         (WebCore::Chrome::unregisterPopupOpeningObserver): Added.
6573         (WebCore::Chrome::notifyPopupOpeningObservers): Added.
6574         * page/Chrome.h: Added new members and required class/struct declarations.
6575
6576         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
6577         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
6578         Use Chrome::openDateTimeChooser instead of ChromeClient::openDateTimeChooser.
6579         * html/shadow/PickerIndicatorElement.cpp:
6580         (WebCore::PickerIndicatorElement::openPopup): Ditto.
6581
6582         * html/shadow/SpinButtonElement.h:
6583         (SpinButtonElement): Declare willOpenPopup.
6584         * html/shadow/SpinButtonElement.cpp:
6585         (WebCore::SpinButtonElement::defaultEventHandler):
6586         Change the order of timer start and changing the value so that we
6587         can cancel the timer correctly.
6588         Calls Chrome::registerPopupOpeningObserver on starting mouse capturing.
6589         (WebCore::SpinButtonElement::willOpenPopup):
6590         Release mouse event capturing before opening a modal dialog.
6591         (WebCore::SpinButtonElement::releaseCapture):
6592         Calls Chrome::unregisterPopupOpeningObserver.
6593
6594
6595 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
6596
6597         Chaging pseudoClass (:enabled) should cause distribution
6598         https://bugs.webkit.org/show_bug.cgi?id=101900
6599
6600         Reviewed by Dimitri Glazkov.
6601
6602         When element's 'enabled' state is changed, we have to invalidate distribution.
6603
6604         According to the spec, :enabled matches anchor/area/link element having href attribute,
6605         and several form control elements which is not disabled. However, currently :enalbed does not match
6606         anchor/area/link yet. See https://bugs.webkit.org/show_bug.cgi?id=102349
6607
6608         Tests: fast/dom/shadow/pseudoclass-update-enabled-anchor.html
6609                fast/dom/shadow/pseudoclass-update-enabled-area.html
6610                fast/dom/shadow/pseudoclass-update-enabled-button.html
6611                fast/dom/shadow/pseudoclass-update-enabled-fieldset.html
6612                fast/dom/shadow/pseudoclass-update-enabled-input.html
6613                fast/dom/shadow/pseudoclass-update-enabled-optgroup.html
6614                fast/dom/shadow/pseudoclass-update-enabled-option.html
6615                fast/dom/shadow/pseudoclass-update-enabled-select.html
6616                fast/dom/shadow/pseudoclass-update-enabled-textarea.html
6617
6618         * html/HTMLAnchorElement.cpp:
6619         (WebCore::HTMLAnchorElement::parseAttribute):
6620         * html/HTMLFormControlElement.cpp:
6621         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
6622         * html/HTMLOptGroupElement.cpp:
6623         (WebCore::HTMLOptGroupElement::parseAttribute):
6624         * html/HTMLOptionElement.cpp:
6625         (WebCore::HTMLOptionElement::parseAttribute):
6626
6627 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6628
6629         Update DOMException name: ValidationError
6630         https://bugs.webkit.org/show_bug.cgi?id=102416
6631
6632         Reviewed by Kentaro Hara.
6633
6634         Patch 16 of 25 to update DOMException name to match the spec and Firefox.
6635
6636         VALIDATION_ERR is historical and not used in any spec or our code.
6637
6638         * dom/DOMCoreException.cpp:
6639         * dom/ExceptionCode.h:
6640
6641 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6642
6643         [V8] Remove IsSubType() from CodeGeneratorV8.pm
6644         https://bugs.webkit.org/show_bug.cgi?id=102348
6645
6646         Reviewed by Adam Barth.
6647
6648         CodeGenerator.pm has IsStrictSubType(). CodeGeneratorV8.pm should use it.
6649
6650         No tests. No change in behavior.
6651
6652         * bindings/scripts/CodeGenerator.pm:
6653         (IsSubType):
6654         * bindings/scripts/CodeGeneratorJS.pm:
6655         (GenerateImplementation):
6656         * bindings/scripts/CodeGeneratorV8.pm:
6657         (GenerateHeader):
6658         (GetInternalFields):
6659         (GenerateNormalAttrGetter):
6660         (GenerateNormalAttrSetter):
6661         (GenerateFunctionCallback):
6662         (GenerateImplementationIndexer):
6663         (GenerateToV8Converters):
6664
6665 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6666
6667         Update DOMException name: NamespaceError
6668         https://bugs.webkit.org/show_bug.cgi?id=102395
6669
6670         Reviewed by Kentaro Hara.
6671
6672         Patch 14 of 25 to update DOMException name to match the spec and Firefox.
6673
6674         Updated existing tests.
6675
6676         * dom/DOMCoreException.cpp:
6677
6678 2012-11-15  Tien-Ren Chen  <trchen@chromium.org>
6679
6680         Add Settings to disable custom scrollbars on main frame
6681         https://bugs.webkit.org/show_bug.cgi?id=102323
6682
6683         Reviewed by Adam Barth.
6684
6685         Custom scrollbars on main frame don't really work well on touch devices.
6686         Add a setting to inhibit their creation.
6687
6688         No new tests. No change in default layout behavior.
6689
6690         * page/FrameView.cpp:
6691         (WebCore::FrameView::createScrollbar):
6692         * page/Settings.in:
6693
6694 2012-11-15  Rick Byers  <rbyers@chromium.org>
6695
6696         custom CSS cursors ignore hotspot values embedded in CUR files
6697         https://bugs.webkit.org/show_bug.cgi?id=100059
6698
6699         Reviewed by Kenneth Russell.
6700
6701         Add reading the hotspot values to the ICOImageDecoder (for CUR files only),
6702         and plumb it through so that the existing calls to ImageSource::getHotSpot
6703         actually return the hot spot value when there is one.
6704
6705         Tests: fast/events/mouse-cursor.html, fast/events/mouse-cursor-multiframecur.html
6706
6707         * platform/graphics/ImageSource.cpp:
6708         (WebCore::ImageSource::getHotSpot):
6709         * platform/graphics/chromium/DeferredImageDecoder.cpp:
6710         (WebCore::DeferredImageDecoder::hotSpot):
6711         (WebCore::DeferredImageDecoder::hotSpotAtIndex):
6712         * platform/graphics/chromium/DeferredImageDecoder.h:
6713         (DeferredImageDecoder):
6714         * platform/image-decoders/ImageDecoder.h:
6715         (WebCore::ImageDecoder::hotSpot):
6716         (WebCore::ImageDecoder::hotSpotAtIndex):
6717         (ImageDecoder):
6718         * platform/image-decoders/ico/ICOImageDecoder.cpp:
6719         (WebCore::ICOImageDecoder::hotSpot):
6720         (WebCore::ICOImageDecoder::hotSpotAtIndex):
6721         (WebCore::ICOImageDecoder::processDirectory):
6722         (WebCore::ICOImageDecoder::readDirectoryEntry):
6723         * platform/image-decoders/ico/ICOImageDecoder.h:
6724         (ICOImageDecoder):
6725         (IconDirectoryEntry):
6726
6727 2012-11-15  Kenichi Ishibashi  <bashi@chromium.org>
6728
6729         Make OpenTypeVerticalData be ref-counted
6730         https://bugs.webkit.org/show_bug.cgi?id=101971
6731
6732         Reviewed by Tony Chang.
6733
6734         FontCache::purgeInactiveFontData() uses mark & sweep algorithm to remove unused
6735         OpenTypeVerticalData objects. It marks only OpenTypeVerticalData which can be reached
6736         via SimpleFontData in gFontDataCache. However, OpenTypeVerticalData can be referred by
6737         SimpleFontData which resides in CSSFontFaceSource::m_fontDataTable so the algorithm can
6738         delete active OpenTypeVerticalData. To avoid deleting active OpenTypeVerticalData, make
6739         it be ref-counted.
6740
6741         No new tests. No changes in behavior. Checked manually that the use-after-free was fixed.
6742
6743         * platform/graphics/FontCache.cpp:
6744         (WebCore): Use RefPtr instead of OwnPtr for FontVerticalDataCache.
6745         (WebCore::FontCache::getVerticalData): Return PassRefPtr<OpenTypeVerticalData>.
6746         (WebCore::FontCache::purgeInactiveFontData): Follow the change of OwnPtr -> RefPtr.
6747         * platform/graphics/FontCache.h:
6748         * platform/graphics/SimpleFontData.cpp:
6749         (WebCore::SimpleFontData::SimpleFontData):
6750         * platform/graphics/SimpleFontData.h:
6751         Use RefPtr instead of raw const pointer for OpenTypeVerticalData.
6752         (WebCore::SimpleFontData::verticalData):
6753         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
6754         (WebCore::FontPlatformData::verticalData): Return PassRefPtr<OpenTypeVerticalData>.
6755         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
6756         (FontPlatformData):
6757         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
6758         (WebCore::FontPlatformData::verticalData): Ditto.
6759         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.h:
6760         (WebCore):
6761         (FontPlatformData):
6762         * platform/graphics/opentype/OpenTypeVerticalData.h:
6763         (WebCore::OpenTypeVerticalData::create): Added.
6764         (OpenTypeVerticalData):
6765
6766 2012-11-15  Xingnan Wang  <xingnan.wang@intel.com>
6767
6768         Optimize the multiply-add in Biquad.cpp::process
6769         https://bugs.webkit.org/show_bug.cgi?id=75528
6770
6771         Reviewed by Brent Fulgham.
6772
6773         Pipeline the multiply-add with SSE2 intrinsics.
6774         Get ~45% performance improvement for the function.
6775
6776         * platform/audio/Biquad.cpp:
6777         (WebCore::Biquad::process):
6778
6779 2012-11-15  Alec Flett  <alecflett@chromium.org>
6780
6781         Add tests for explicit serialization values
6782         https://bugs.webkit.org/show_bug.cgi?id=96818
6783
6784         Reviewed by Adam Barth.
6785
6786         Expose direct access to the serialization/deserialization mechanisms
6787         of SerializedScriptValue to DumpRenderTree.
6788
6789         * testing/Internals.cpp:
6790         (WebCore::Internals::serializeObject):
6791         (WebCore):
6792         (WebCore::Internals::deserializeBuffer):
6793         * testing/Internals.h:
6794         (WebCore):
6795         * testing/Internals.idl:
6796
6797 2012-11-15  Gustavo Noronha Silva  <gns@gnome.org>
6798
6799         [GTK] Split WebCore/platform into a separate library
6800         https://bugs.webkit.org/show_bug.cgi?id=94435
6801
6802         Reviewed by Martin Robinson.
6803
6804         More people have been reporting problems when linking WebCore because
6805         the command line limit is being exceeded. Splitting WebCore a bit more
6806         is in order.
6807
6808         * GNUmakefile.am: add new libWebCorePlatform convenience library.
6809         * GNUmakefile.list.am: move list of platform/* files to its own variable.
6810
6811 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
6812
6813         Remove unused macro HANDLE_INHERIT_AND_INITIAL_WITH_VALUE in StyleResolver.cpp
6814         https://bugs.webkit.org/show_bug.cgi?id=102036
6815
6816         Reviewed by Darin Adler.
6817
6818         Remove HANDLE_INHERIT_AND_INITIAL_WITH_VALUE macro, as it is not used anywhere.
6819
6820         No tests added because code is unused, and compile is enough to verify that conculsively.
6821
6822         * css/StyleResolver.cpp:
6823
6824 2012-11-15  Erik Arvidsson  <arv@chromium.org>
6825
6826         Update DOMException name: SyntaxError
6827         https://bugs.webkit.org/show_bug.cgi?id=102279
6828
6829         Reviewed by Kentaro Hara.
6830
6831         Patch 12 of 25 to update DOMException name to match the spec and Firefox.
6832
6833         Updated existing tests.
6834
6835         * dom/DOMCoreException.cpp:
6836
6837 2012-11-15  Takashi Sakamoto  <tasak@google.com>
6838
6839         [Win] key event's location does not work on Windows platform.
6840         https://bugs.webkit.org/show_bug.cgi?id=89742
6841
6842         Reviewed by Brent Fulgham.
6843
6844         As WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, and WM_SYSKEYUP doesn't
6845         directly provide a virtual keycode which distinguish between left-hand
6846         and right-hand keys. To obtain a virtual keycode, we have to look at
6847         lparam, i.e. scancode and extended key bit. So if the given virtual
6848         keycode is control, shift, or menu, use MapVirtualKey with scancode and
6849         extended key bit and recreate a virtual keycode which distinguishes
6850         between left-hand and right-hand.
6851
6852         No new tests, because left-hand keys, right-hand keys layout tests
6853         have been already added.
6854
6855         * platform/win/KeyEventWin.cpp:
6856         (WebCore::windowsKeycodeWithLocation):
6857         Use wparam and lparam to recreate a virtual keycode which distinguishes
6858         between left-hand and right-hand if the given wparam (=virtual keycode)
6859         is control, shift, or menu.
6860         (WebCore):
6861         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
6862         Use the newly added function to obtain windows virtual keycode.
6863
6864 2012-11-15  Joe Mason  <jmason@rim.com>
6865
6866         [BlackBerry] Don't assert when notifyAuthReceived is called with a different auth type
6867         https://bugs.webkit.org/show_bug.cgi?id=102436
6868
6869         Reviewed by Rob Buis.
6870
6871         The server type could change if we contact a site taking HTTP auth, through an HTTP proxy
6872         taking auth of its own. First we get a 407 from the proxy, and then when get past the
6873         proxy, we get a 401 from the end site - so notifyAuthReceived gets called again with auth
6874         type Proxy instead of HTTP.
6875
6876         The correct thing to do when that happens is skip the "update the auth type in the
6877         credentials" step, since these are actually new credentials and not just credentials being
6878         reused for a different auth type on the same server.
6879
6880         PR 241637
6881
6882         * platform/network/blackberry/NetworkJob.cpp:
6883         (WebCore::NetworkJob::notifyAuthReceived):
6884
6885 2012-11-15  Stephen Chenney  <schenney@chromium.org>
6886
6887         mpath elements do not clear resource lists before destruction
6888         https://bugs.webkit.org/show_bug.cgi?id=101505
6889
6890         Reviewed by Abhishek Arya.
6891
6892         The destructor for SVGMPathElement should clear its resources before
6893         deletion, so as not to leave hanging pointers in resource lists.
6894
6895         Test: svg/animations/mpath-remove-from-dependents-on-delete-crash.html
6896
6897         * svg/SVGMPathElement.cpp:
6898         (WebCore::SVGMPathElement::~SVGMPathElement): Add destructor that calls clearResourceReferences.
6899         (WebCore):
6900         * svg/SVGMPathElement.h:
6901         (SVGMPathElement): Add destructor.
6902
6903 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6904
6905         Remove CodeGenerator::StripModule
6906         https://bugs.webkit.org/show_bug.cgi?id=102338
6907
6908         Reviewed by Adam Barth.
6909
6910         Now WebKit IDL files have no modules. (The Web IDL spec has no modules.)
6911         We can remove CodeGenerator::StripModule.
6912         This might break some internal builds if the internal builds are still
6913         using modules. Ping haraken@ you observe it.
6914
6915         No tests. No change in behavior.
6916
6917         * bindings/scripts/CodeGenerator.pm:
6918         (ForAllParents):
6919         (AttributeNameForGetterAndSetter):
6920         (IsStrictSubtype):
6921         * bindings/scripts/CodeGeneratorCPP.pm:
6922         (GetClassName):
6923         (GetImplClassName):
6924         (GetParentImplClassName):
6925         (GetParent):
6926         (ConversionNeeded):
6927         (GetCPPTypeGetter):
6928         (AddForwardDeclarationsForType):
6929         (AddIncludesForType):
6930         (GenerateImplementation):
6931         * bindings/scripts/CodeGeneratorGObject.pm:
6932         (GetParentClassName):
6933         (GetParentGObjType):
6934         (GetClassName):
6935         * bindings/scripts/CodeGeneratorJS.pm:
6936         (GetParentClassName):
6937         (AddIncludesForTypeInImpl):
6938         (AddIncludesForTypeInHeader):
6939         (GenerateParametersCheckExpression):
6940         (GenerateImplementation):
6941         (GenerateParametersCheck):
6942         (GetNativeTypeFromSignature):
6943         (JSValueToNative):
6944         (NativeToJSValue):
6945         * bindings/scripts/CodeGeneratorObjC.pm:
6946         (GetClassName):
6947         (GetImplClassName):
6948         (GetParentImplClassName):
6949         (GetParentAndProtocols):
6950         (GetPropertyAttributes):
6951         (ConversionNeeded):
6952         (GetObjCTypeGetter):
6953         (AddForwardDeclarationsForType):
6954         (AddIncludesForType):
6955         (GenerateImplementation):
6956         * bindings/scripts/CodeGeneratorV8.pm:
6957         (AddIncludesForType):
6958         (GenerateHeader):
6959         (IsSubType):
6960         (GenerateSingleBatchedAttribute):
6961         (GenerateImplementation):
6962         (BaseInterfaceName):
6963         (GetTypeFromSignature):
6964         (IsWrapperType):
6965
6966 2012-11-15  Luke Macpherson   <macpherson@chromium.org>
6967
6968         Make assumptions about m_parentStyle consistent within StyleResolver::applyProperty()
6969         https://bugs.webkit.org/show_bug.cgi?id=101696
6970
6971         Reviewed by Tony Chang.
6972
6973         Most of the code in StyleResolver::applyProperty assumes that isInherit implies that m_parentStyle is available.
6974         This patch ASSERTs that this assumption is correct, and removes the few existing checks to maintain consistency.
6975
6976         No new tests / covered by all existing CSS tests.
6977
6978         * css/StyleResolver.cpp:
6979         (WebCore::StyleResolver::applyProperty):
6980
6981 2012-11-15  Kentaro Hara  <haraken@chromium.org>
6982
6983         [V8] Remove redundant $interfaceName from function parameters
6984         https://bugs.webkit.org/show_bug.cgi?id=102334
6985
6986         Reviewed by Adam Barth.
6987
6988         'sub func { my $dataNode = shift; my $interfaceName = shift; }'
6989         is redundant. We can get $interfaceName by $dataNode->name.
6990
6991         No tests. No change in behavior.
6992
6993         * bindings/scripts/CodeGeneratorV8.pm:
6994         (GenerateOpaqueRootForGC):
6995         (GenerateHeader):
6996         (GenerateConstructorGetter):
6997         (GenerateNormalAttrGetter):
6998         (GenerateReplaceableAttrSetter):
6999         (GenerateNormalAttrSetter):
7000         (GenerateOverloadedFunctionCallback):
7001         (GenerateFunctionCallback):
7002         (GenerateOverloadedConstructorCallback):
7003         (GenerateSingleConstructorCallback):
7004         (GenerateConstructorCallback):
7005         (GenerateEventConstructorCallback):
7006         (GenerateTypedArrayConstructorCallback):
7007         (GenerateNamedConstructorCallback):
7008         (GenerateBatchedAttributeData):
7009         (GenerateImplementation):
7010         (GenerateToV8Converters):
7011         (GetNativeTypeForConversions):
7012
7013 2012-11-15  Simon Fraser  <simon.fraser@apple.com>
7014
7015         Ensure that scrollbar layers show debug borders
7016         https://bugs.webkit.org/show_bug.cgi?id=102429
7017
7018         Reviewed by Anders Carlsson.
7019
7020         After r133517, scrollbar layers no longer showed debug borders, which
7021         was very confusing. Fix this by explicitly calling setShowDebugBorder()
7022         on the scrollbar-related layers owned by RenderLayerCompositor
7023         and RenderLayerBacking.
7024         
7025         * rendering/RenderLayerBacking.cpp:
7026         (WebCore::RenderLayerBacking::updateDebugIndicators):
7027         * rendering/RenderLayerCompositor.cpp:
7028         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags):
7029         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
7030
7031 2012-11-15  Andreas Kling  <akling@apple.com>
7032
7033         ASSERTION FAILED: fastAttributeLookupAllowed(name) for 7 layout tests
7034         <http://webkit.org/b/102423>
7035
7036         Reviewed by Anders Carlsson.
7037
7038         Use Element::getAttributeItem() to find out if the element has a given attribute
7039         instead of fastHasAttribute() since that causes assertions for the "style" attribute.
7040
7041         * html/parser/HTMLConstructionSite.cpp:
7042         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7043
7044 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7045
7046         Update DOMException name: DOMStringSizeError
7047         https://bugs.webkit.org/show_bug.cgi?id=102089
7048
7049         Reviewed by Ojan Vafai.
7050
7051         Patch 2 of 25 to update DOMException name to match the spec and Firefox.
7052
7053         DOMSTRING_SIZE_ERR is historical and not used in any spec or in our code.
7054
7055         * dom/DOMCoreException.cpp:
7056         * dom/ExceptionCode.h:
7057
7058 2012-11-15  Joshua Bell  <jsbell@chromium.org>
7059
7060         IndexedDB: Indexing tests are flaky-crashing
7061         https://bugs.webkit.org/show_bug.cgi?id=102283
7062
7063         Reviewed by Tony Chang.
7064
7065         Processing the final task can cause IDBTransactionBackendImpl references to be released
7066         by all holders. Prior to looping over the tasks (or, in an even earlier implementation,
7067         swapping queues) control would fall off the end of the function. The loop termination
7068         check introduced in http://wkrev.com/134529 requires that |this| be kept alive until
7069         the method completes.
7070
7071         Test: storage/indexeddb/transaction-crash-in-tasks.html
7072
7073         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
7074         (WebCore::IDBTransactionBackendImpl::abort): Rename self => protect.
7075         (WebCore::IDBTransactionBackendImpl::commit): Rename self => protect.
7076         (WebCore::IDBTransactionBackendImpl::taskTimerFired): New self-ref.
7077
7078 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7079
7080         MutationObserver wrapper should not be collected while still observing
7081         https://bugs.webkit.org/show_bug.cgi?id=102328
7082
7083         Reviewed by Adam Barth.
7084
7085         Make MutationObserver an ActiveDOMObject so that the wrapper is not
7086         collected while it is still observing the DOM. This is needed because
7087         the wrapper is passed into the callback and expandos on the wrapper
7088         should be preserved.
7089
7090         Test: fast/mutation/observer-wrapper-dropoff.html
7091
7092         * bindings/js/JSMutationObserverCustom.cpp:
7093         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
7094         * bindings/v8/custom/V8MutationObserverCustom.cpp:
7095         (WebCore::V8MutationObserver::constructorCallback):
7096         * dom/MutationObserver.cpp:
7097         (WebCore::MutationObserver::create):
7098         (WebCore::MutationObserver::MutationObserver):
7099         (WebCore::MutationObserver::observationStarted):
7100         (WebCore::MutationObserver::observationEnded):
7101         * dom/MutationObserver.h:
7102         (WebCore):
7103         * dom/MutationObserver.idl:
7104
7105 2012-11-15  Tony Chang  <tony@chromium.org>
7106
7107         Generate Settings from a .in file
7108         https://bugs.webkit.org/show_bug.cgi?id=100393
7109
7110         Reviewed by Adam Barth.
7111
7112         Generate most settings from an .in file to reduce human mistakes and
7113         to make it easier to add/remove new settings.
7114
7115         I only moved settings that are easy to move at this point.  There are many more that
7116         have some minor naming inconsistencies that we can also move to Settings.in, but I'll
7117         do that in a follow up patch.
7118
7119         This doesn't generate SettingInternals.* yet-- we can do that in a follow up patch.
7120
7121         No new tests, this is a refactor.
7122
7123         * CMakeLists.txt:
7124         * DerivedSources.make: Run make_settings.pl.
7125         * DerivedSources.pri: Run make_settings.pl.
7126         * GNUmakefile.am: Run make_settings.pl.
7127         * GNUmakefile.list.am:
7128         * WebCore.exp.in: Remove functions that are now inline in the header.
7129         * WebCore.gyp/WebCore.gyp: Run action_makenames.py, which will run make_settings.pl.
7130         * WebCore.gyp/scripts/action_makenames.py:
7131         (main): Allow make_settings.pl.
7132         * WebCore.order: Remove functions that are now inline in the header.
7133         * html/ValidationMessage.cpp:
7134         (WebCore::ValidationMessage::setMessageDOMAndStartTimer): Fix a typo in "magnification".
7135         * page/Settings.cpp:
7136         (WebCore::Settings::Settings): Replace generated settings with SETTINGS_INITIALIZER_LIST.
7137         * page/Settings.h:
7138         (Settings): Replace generated settings with SETTINGS_GETTERS_AND_SETTERS and SETTINGS_MEMBER_VARIABLES.
7139         * page/Settings.in: Added.
7140         * page/make_settings.pl: Added.
7141         (defaultItemFactory):
7142         (generateCode):
7143         (generateHeader): Use a similar model as make_names.pl.
7144         (printConditionalMacros):
7145         (printGettersAndSetters):
7146         (printMemberVariables):
7147         (printGetterAndSetter):
7148         (printInitializerList):
7149         (printInitializer):
7150
7151 2012-11-15  Alpha Lam  <hclam@chromium.org>
7152
7153         [chromium] Refactoring to move logic of creating lazy decoded SkBitmap into DeferredImageDecoder
7154         https://bugs.webkit.org/show_bug.cgi?id=102019
7155
7156         Reviewed by Stephen White.
7157
7158         Goal of this change is to keep ImageDecodingStore clean and only do
7159         image caching. Logic of creating lazily decoded SkBitmaps is moved into
7160         DeferredImageDecoder.
7161
7162         In particular these two methods are moved:
7163         - ImageDecodingStore::createLazyDecodedSkBitmap
7164         - ImageDecodingStore::resizeLazyDecodedSkBitmap
7165
7166         No new tests. There is no new code (really). It is just moved from
7167         ImageDecodingStore to DeferredImageDecoder.
7168
7169         No change in behavior. Code is tested with:
7170         Unit tests: webkit_unit_tests
7171         Layout test: platform/chromium/virtual/deferred
7172
7173         * platform/graphics/chromium/DeferredImageDecoder.cpp:
7174         (WebCore::DeferredImageDecoder::isLazyDecoded):
7175         (WebCore):
7176         (WebCore::DeferredImageDecoder::resizeLazyDecodedSkBitmap):
7177         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
7178         (WebCore::DeferredImageDecoder::setData):
7179         (WebCore::DeferredImageDecoder::createLazyDecodedSkBitmap):
7180         * platform/graphics/chromium/DeferredImageDecoder.h:
7181         (WebCore):
7182         (DeferredImageDecoder):
7183         * platform/graphics/chromium/ImageDecodingStore.cpp:
7184         * platform/graphics/chromium/ImageDecodingStore.h:
7185         (ImageDecodingStore):
7186         * platform/graphics/chromium/ImageFrameGenerator.cpp:
7187         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
7188         * platform/graphics/chromium/ImageFrameGenerator.h:
7189         (WebCore::ImageFrameGenerator::create):
7190         (ImageFrameGenerator):
7191         * platform/graphics/skia/NativeImageSkia.cpp:
7192         (WebCore::NativeImageSkia::resizedBitmap):
7193
7194 2012-11-15  Roger Fong  <roger_fong@apple.com>
7195
7196         Unreviewed. Build fix for Windows after r134767.
7197
7198         Update vsprops and vcproj files to reflect changes to file locations in r134767.
7199
7200         * WebCore.vcproj/WebCore.vcproj:
7201         * WebCore.vcproj/WebCoreCommon.vsprops:
7202
7203 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7204
7205         Track subframe count to avoid traversing the tree when there's no subframes
7206         https://bugs.webkit.org/show_bug.cgi?id=101821
7207
7208         Reviewed by Ojan Vafai.
7209
7210         Bug 101619 showed a 9-14% improvement from not walking the children during
7211         removeChild looking for frames when there's known to be no frames. The fix
7212         in that bug only avoids this walk when the whole document has no frames, this
7213         patch extends it to skip traversing subtrees that have no iframes by hooking
7214         the frame assignment to walk up the tree and keep track of the count of frames
7215         in the subtree on contentFrame assignment and then decrement it on disconnect.
7216
7217         No new tests, this is just a perf refactor.
7218
7219         * dom/ContainerNode.cpp:
7220         (WebCore::willRemoveChildren):
7221         * dom/ContainerNodeAlgorithms.cpp:
7222         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7223         * dom/ContainerNodeAlgorithms.h:
7224         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
7225         (ChildFrameDisconnector):
7226         (WebCore::ChildFrameDisconnector::collectFrameOwners):
7227           Renamed from collectDescendant() to better reflect what it really does.
7228         (WebCore::ChildFrameDisconnector::disconnectCollectedFrameOwners):
7229           Renamed from disconnect() to better reflect what it really does.
7230         (WebCore::ChildFrameDisconnector::disconnect):
7231           New method that does the collection of frame owners on either the root
7232           or only it's descendants.
7233         * dom/Node.cpp:
7234         (WebCore::Node::connectedSubframeCount):
7235         (WebCore::Node::incrementConnectedSubframeCount):
7236         (WebCore::Node::decrementConnectedSubframeCount):
7237         * dom/Node.h:
7238         * dom/NodeRareData.h:
7239         (WebCore::NodeRareData::NodeRareData):
7240         (WebCore::NodeRareData::connectedSubframeCount):
7241         (WebCore::NodeRareData::incrementConnectedSubframeCount):
7242         (WebCore::NodeRareData::decrementConnectedSubframeCount):
7243         * html/HTMLFrameOwnerElement.cpp:
7244         (WebCore::HTMLFrameOwnerElement::setContentFrame):
7245         (WebCore::HTMLFrameOwnerElement::disconnectContentFrame):
7246
7247 2012-11-15  Alpha Lam  <hclam@chromium.org>
7248
7249         [chromium] WebGL texImage2D fails with deferred image decoding
7250         https://bugs.webkit.org/show_bug.cgi?id=102310
7251
7252         Reviewed by Kenneth Russell.
7253
7254         Skia's implementation of GraphicsContext3D::getImageData() uses ImageSource
7255         to decode an image. When deferred image decoding is enabled this class
7256         generates an ImageFrame marked as incomplete, which WebGL rejects. This results
7257         in failing of texImage2D.
7258
7259         This change uses ImageDecoder directly instead of ImageSource. This skips
7260         the code path of deferred image decoding. This behavior is correct because
7261         GraphicsContext3D wants to decode the image differently with alpha not
7262         premultiplied and color profile applied optionally.
7263
7264         Added a test to prove this change fixed the bug.
7265
7266         Test: fast/images/webgl-teximage2d.html
7267
7268         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
7269         (WebCore::GraphicsContext3D::getImageData):
7270
7271 2012-11-15  Jer Noble  <jer.noble@apple.com>
7272
7273         Further unreviewed build fix. Add explicit static_casts to avoid implicit precision warnings.
7274
7275         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7276         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7277
7278 2012-11-15  Jer Noble  <jer.noble@apple.com>
7279
7280         Unreviewed build fix. Avoid implicit precision and unused parameter warnings.
7281
7282         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
7283         (WebCore::WebCoreAVFResourceLoader::responseReceived):
7284         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource):
7285
7286 2012-11-15  Adam Barth  <abarth@webkit.org>
7287
7288         [V8] We shouldn't call deprecated V8 APIs
7289         https://bugs.webkit.org/show_bug.cgi?id=102407
7290
7291         Reviewed by Eric Seidel.
7292
7293         This patch was written by Sven Panne on the V8 team. He would prefer
7294         that we not call deprecated V8 APIs. This patch updates these call
7295         sites to more modern idioms.
7296
7297         * bindings/scripts/CodeGeneratorV8.pm:
7298         (GenerateConstructorGetter):
7299         (GenerateImplementation):
7300         * bindings/scripts/test/V8/V8TestObj.cpp:
7301         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
7302         * bindings/v8/PageScriptDebugServer.cpp:
7303         (WebCore::PageScriptDebugServer::addListener):
7304         * bindings/v8/ScriptController.cpp:
7305         (WebCore::ScriptController::setContextDebugId):
7306         (WebCore::ScriptController::contextDebugId):
7307         * bindings/v8/ScriptProfiler.cpp:
7308         (WebCore::ScriptProfiler::objectByHeapObjectId):
7309             - This code doesn't seem to do anything anymore.
7310         * bindings/v8/V8DOMConfiguration.h:
7311         (WebCore::V8DOMConfiguration::configureAttribute):
7312         * bindings/v8/V8DOMWindowShell.cpp:
7313         (WebCore::setInjectedScriptContextDebugId):
7314         * bindings/v8/V8DOMWrapper.cpp:
7315         (WebCore::V8DOMWrapper::maybeDOMWrapper):
7316         (WebCore::V8DOMWrapper::isWrapperOfType):
7317         * bindings/v8/V8EventListenerList.h:
7318         (WebCore::V8EventListenerList::doFindWrapper):
7319         (WebCore::V8EventListenerList::findOrCreateWrapper):
7320         * bindings/v8/WorkerContextExecutionProxy.cpp:
7321         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
7322         * bindings/v8/WrapperTypeInfo.h:
7323         (WebCore::WrapperTypeInfo::unwrap):
7324
7325 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7326
7327         Unreviewed, rolling out r134800 and r134805.
7328         http://trac.webkit.org/changeset/134800
7329         http://trac.webkit.org/changeset/134805
7330         https://bugs.webkit.org/show_bug.cgi?id=102417
7331
7332         This patch broke chromium port (Requested by jianli on
7333         #webkit).
7334
7335         * Modules/mediastream/RTCPeerConnection.cpp:
7336         (WebCore::RTCPeerConnection::RTCPeerConnection):
7337         (WebCore::RTCPeerConnection::createOffer):
7338         (WebCore::RTCPeerConnection::createAnswer):
7339         (WebCore::RTCPeerConnection::setLocalDescription):
7340         (WebCore::RTCPeerConnection::localDescription):
7341         (WebCore::RTCPeerConnection::setRemoteDescription):
7342         (WebCore::RTCPeerConnection::remoteDescription):
7343         (WebCore::RTCPeerConnection::updateIce):
7344         (WebCore::RTCPeerConnection::addIceCandidate):
7345         (WebCore::RTCPeerConnection::readyState):
7346         (WebCore::RTCPeerConnection::iceState):
7347         (WebCore::RTCPeerConnection::addStream):
7348         (WebCore::RTCPeerConnection::close):
7349         (WebCore::RTCPeerConnection::stop):
7350         (WebCore::RTCPeerConnection::changeReadyState):
7351         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7352         * Modules/mediastream/RTCPeerConnection.h:
7353         (RTCPeerConnection):
7354         * Modules/mediastream/RTCPeerConnection.idl:
7355         * dom/EventNames.h:
7356         (WebCore):
7357         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7358         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7359         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7360         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7361         (RTCPeerConnectionHandlerClient):
7362         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7363         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7364         (RTCPeerConnectionHandlerChromium):
7365
7366 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7367
7368         Remove Node::aboutToUnload and be more explicit about what it was for
7369         https://bugs.webkit.org/show_bug.cgi?id=102357
7370
7371         Reviewed by Ryosuke Niwa.
7372
7373         Node::aboutToUnload was confusingly named because it was only called on
7374         the focused node, and it really only existed to support notifying the
7375         embedder that inputs should stop being editable on unload. Instead add
7376         a new method to HTMLInputElement that ends editing and call that
7377         explicitly in the FrameLoader so it's clear what this is about.
7378
7379         No new tests, this is just a refactoring.
7380
7381         * dom/Node.h:
7382         * html/HTMLInputElement.cpp:
7383         (WebCore::HTMLInputElement::endEditing):
7384             New method that handles finishing editing.
7385         * html/HTMLInputElement.h:
7386         (HTMLInputElement):
7387         * html/TextFieldInputType.cpp:
7388         (WebCore::TextFieldInputType::handleBlurEvent):
7389             Use the new method to reduce code duplication.
7390         * loader/FrameLoader.cpp:
7391         (WebCore::FrameLoader::stopLoading):
7392             Be explicit about what this check was for.
7393
7394 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7395
7396         [chromium] MediaStream API: Add missing WebRTCPeerConnectionHandlerClient::didAddRemoteDataChannel
7397         https://bugs.webkit.org/show_bug.cgi?id=102386
7398
7399         Reviewed by Adam Barth.
7400
7401         Existing tests expanded to cover patch.
7402
7403         * platform/mediastream/RTCDataChannelDescriptor.cpp:
7404         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
7405         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
7406         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7407         (WebCore::RTCPeerConnectionHandlerChromium::didAddRemoteDataChannel):
7408         (WebCore):
7409         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7410         (WebKit):
7411         (RTCPeerConnectionHandlerChromium):
7412
7413 2012-11-15  Rick Byers  <rbyers@chromium.org>
7414
7415         No tests for changing mouse cursors
7416         https://bugs.webkit.org/show_bug.cgi?id=100550
7417
7418         Reviewed by Brent Fulgham.
7419
7420         Add infrastructure to keep track of the last set mouse cursor,
7421         and then to query it from DumpRenderTree.  Also adds ASSERTs to help ensure
7422         we can reliably detect when an uninitialized Cursor object is used (such as
7423         the one that can be returned from OptionalCursor in the NoCursorChange scenario).
7424
7425         Test: fast/events/mouse-cursor.html
7426
7427         * WebCore.exp.in: Add Cursor copy ctor export
7428         * page/EventHandler.cpp:
7429         (WebCore::OptionalCursor::cursor):
7430         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
7431         * page/EventHandler.h:
7432         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
7433         * platform/Cursor.h:
7434         (WebCore::Cursor::Cursor): Mark uninitialized cursor types as invalid.
7435         (WebCore::Cursor::type): Assert cursor type is valid.
7436         * testing/Internals.cpp:
7437         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
7438         (WebCore):
7439         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
7440         * testing/Internals.h: Declare getCurrentCursorInfo
7441         * testing/Internals.idl: Declare getCurrentCursorInfo
7442
7443 2012-11-13  Jer Noble  <jer.noble@apple.com>
7444
7445         Support loading of blob URLs in AVFoundation.
7446         https://bugs.webkit.org/show_bug.cgi?id=102182
7447
7448         Reviewed by Eric Carlson.
7449
7450         Add support for BLOB (and other non-natively supported schemed) URLs through the AVAssetResourceLoader API.
7451
7452         Test: media/video-src-blob.html
7453
7454         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
7455         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7456         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Only go down the encrypted
7457             media path if the key scheme is skp://.
7458         (WebCore::MediaPlayerPrivateAVFoundationObjC::didCancelLoadingRequest): Added.  Cancel resource loading if
7459             the media engine requests it.
7460         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Use the new, non-deprecated API.
7461         
7462         Use the dispatch_main_queue() as the AVAssetResourceLoadDelegate queue now that <rdar://problem/12362461> is fixed.
7463         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
7464         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
7465         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]):
7466         (-[WebCoreAVFLoaderDelegate resourceLoader:didCancelLoadingRequest:]):
7467
7468         Add a new helper class to manage loading the CachedRawResource and feed the incoming
7469         data to the AVAssetResourceLoader.
7470         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h: Added.
7471         * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm: Added.
7472         (WebCore::WebCoreAVFResourceLoader::create): Simple factory.
7473         (WebCore::WebCoreAVFResourceLoader::WebCoreAVFResourceLoader): Simple constructor.
7474         (WebCore::WebCoreAVFResourceLoader::~WebCoreAVFResourceLoader): Simple destructor.
7475         (WebCore::WebCoreAVFResourceLoader::startLoading): Tell the cachedResourceLoader to schedule loading.
7476         (WebCore::WebCoreAVFResourceLoader::stopLoading): Remove this as a client of the resource.
7477         (WebCore::WebCoreAVFResourceLoader::responseReceived): Fill in the contentInformation field of the 
7478             AVAssetResourceLoadingRequest.
7479         (WebCore::WebCoreAVFResourceLoader::dataReceived): Call fulfillRequestWithResource.
7480         (WebCore::WebCoreAVFResourceLoader::notifyFinished): Tell the AVAssetResourceLoadingRequest that loading
7481             has completed.
7482         (WebCore::WebCoreAVFResourceLoader::fulfillRequestWithResource): Fill in (if possible) the dataRequest
7483             field of the AVAssetResourceLoadingRequest.
7484
7485         Add a MediaPlayerClient method allowing MediaPlayerPrivate subclasses to access the HTMLMediaElement's
7486         document's cachedResourceLoader.
7487         * html/HTMLMediaElement.cpp:
7488         (WebCore::HTMLMediaElement::mediaPlayerCachedResourceLoader):
7489         * html/HTMLMediaElement.h:
7490         * platform/graphics/MediaPlayer.cpp:
7491         (WebCore::MediaPlayer::cachedResourceLoader):
7492         * platform/graphics/MediaPlayer.h:
7493         (WebCore::MediaPlayerClient::mediaPlayerCachedResourceLoader):
7494
7495         Add a convenience method to convert from MIME type -> UTI.
7496         * platform/network/mac/UTIUtilities.h:
7497         * platform/network/mac/UTIUtilities.mm:
7498         (WebCore::UTIFromMIMEType):
7499
7500         Add new files to project.
7501         * WebCore.xcodeproj/project.pbxproj:
7502
7503 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7504
7505         Remove initiallyFitToViewport attribute
7506         https://bugs.webkit.org/show_bug.cgi?id=102392
7507
7508         Reviewed by Noam Rosenthal.
7509
7510         Remove the initiallyFitToViewport which shouldn't have been
7511         added in the first place. We now reset userScalable to auto (-1)
7512         in case it was not explicitly set by the web author.
7513
7514         Same behavior, covered by existing tests.
7515
7516         * dom/ViewportArguments.cpp:
7517         (WebCore::ViewportArguments::resolve):
7518         * dom/ViewportArguments.h:
7519         (ViewportAttributes):
7520
7521 2012-11-15  Tommy Widenflycht  <tommyw@google.com>
7522
7523         MediaStream API: Update RTCPeerConnection states to match the latest editors draft
7524         https://bugs.webkit.org/show_bug.cgi?id=102382
7525
7526         Reviewed by Adam Barth.
7527
7528         Updating readyState & iceState, and adding iceGatheringState.
7529         Also safeguarding the event timer callback.
7530
7531         Patch covered by existing tests.
7532
7533         * Modules/mediastream/RTCPeerConnection.cpp:
7534         (WebCore::RTCPeerConnection::RTCPeerConnection):
7535         (WebCore::RTCPeerConnection::createOffer):
7536         (WebCore::RTCPeerConnection::createAnswer):
7537         (WebCore::RTCPeerConnection::setLocalDescription):
7538         (WebCore::RTCPeerConnection::localDescription):
7539         (WebCore::RTCPeerConnection::setRemoteDescription):
7540         (WebCore::RTCPeerConnection::remoteDescription):
7541         (WebCore::RTCPeerConnection::updateIce):
7542         (WebCore::RTCPeerConnection::addIceCandidate):
7543         (WebCore::RTCPeerConnection::readyState):
7544         (WebCore::RTCPeerConnection::iceGatheringState):
7545         (WebCore):
7546         (WebCore::RTCPeerConnection::iceState):
7547         (WebCore::RTCPeerConnection::addStream):
7548         (WebCore::RTCPeerConnection::close):
7549         (WebCore::RTCPeerConnection::didChangeIceGatheringState):
7550         (WebCore::RTCPeerConnection::stop):
7551         (WebCore::RTCPeerConnection::changeReadyState):
7552         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
7553         * Modules/mediastream/RTCPeerConnection.h:
7554         (RTCPeerConnection):
7555         * Modules/mediastream/RTCPeerConnection.idl:
7556         * dom/EventNames.h:
7557         (WebCore):
7558         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
7559         (RTCPeerConnectionHandlerClient):
7560         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
7561         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEGatheringState):
7562         (WebCore):
7563         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
7564         (RTCPeerConnectionHandlerChromium):
7565
7566 2012-11-15  Sheriff Bot  <webkit.review.bot@gmail.com>
7567
7568         Unreviewed, rolling out r134649 and r134665.
7569         http://trac.webkit.org/changeset/134649
7570         http://trac.webkit.org/changeset/134665
7571         https://bugs.webkit.org/show_bug.cgi?id=102413
7572
7573         Broke a ton of downstream chromium tests (Requested by japhet
7574         on #webkit).
7575
7576         * loader/DocumentLoader.cpp:
7577         (WebCore::DocumentLoader::DocumentLoader):
7578         (WebCore::DocumentLoader::~DocumentLoader):
7579         (WebCore::DocumentLoader::finishedLoading):
7580         (WebCore::DocumentLoader::clearMainResourceLoader):
7581         (WebCore::DocumentLoader::isLoadingInAPISense):
7582         (WebCore::DocumentLoader::documentURL):
7583         (WebCore::DocumentLoader::isLoadingMainResource):
7584         (WebCore::DocumentLoader::startLoadingMainResource):
7585         * loader/DocumentLoader.h:
7586         (DocumentLoader):
7587         * loader/FrameLoader.cpp:
7588         (WebCore::FrameLoader::FrameLoader):
7589         (WebCore::FrameLoader::init):
7590         * loader/FrameLoaderStateMachine.cpp:
7591         (WebCore::FrameLoaderStateMachine::FrameLoaderStateMachine):
7592         * loader/FrameLoaderStateMachine.h:
7593         * loader/MainResourceLoader.cpp:
7594         (WebCore::shouldLoadAsEmptyDocument):
7595         (WebCore):
7596         (WebCore::MainResourceLoader::continueAfterContentPolicy):
7597         (WebCore::MainResourceLoader::didReceiveResponse):
7598         (WebCore::MainResourceLoader::didFinishLoading):
7599         (WebCore::MainResourceLoader::handleEmptyLoad):
7600         (WebCore::MainResourceLoader::loadNow):
7601         (WebCore::MainResourceLoader::load):
7602         * loader/MainResourceLoader.h:
7603         (MainResourceLoader):
7604
7605 2012-11-15  Kentaro Hara  <haraken@chromium.org>
7606
7607         Correct syntax of old-style IDL files
7608         https://bugs.webkit.org/show_bug.cgi?id=102335
7609
7610         Reviewed by Adam Barth.
7611
7612         Recently tasak@ corrected an IDL syntax of almost all IDL files.
7613         We should correct the rest of them.
7614
7615         No tests. No change in behavior.
7616
7617         * html/canvas/OESElementIndexUint.idl:
7618         * page/PerformanceMark.idl:
7619         * page/PerformanceMeasure.idl:
7620
7621 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7622
7623         Remove isHTMLInputElement since it's unused and toInputElement exists 
7624         https://bugs.webkit.org/show_bug.cgi?id=102358
7625
7626         Reviewed by Ojan Vafai.
7627
7628         Remove isHTMLInputElement as no one uses it. Everyone just uses
7629         Node::toInputElement and checks for a 0 return value instead.
7630
7631         toInputElement is also more reliable as there's no requirement that
7632         subclasses of HTMLInputElement have the tag name of inputTag so using
7633         this method in a check could potentially miss future subclasses with
7634         different tag names, though none exist right now.
7635
7636         No new tests, this just deletes dead code.
7637
7638         * html/HTMLInputElement.h:
7639
7640 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7641
7642         Update DOMException name: NotSupportedError
7643         https://bugs.webkit.org/show_bug.cgi?id=102139
7644
7645         Reviewed by Ojan Vafai.
7646
7647         Patch 9 of 25 to update DOMException name to match the spec and Firefox.
7648
7649         Updated existing tests.
7650
7651         * dom/DOMCoreException.cpp:
7652
7653 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7654
7655         Remove isHTMLInputElement since it's unused and toInputElement exists 
7656         https://bugs.webkit.org/show_bug.cgi?id=102358
7657
7658         Reviewed by Ojan Vafai.
7659
7660         Remove isHTMLInputElement as no one uses it. Everyone just uses
7661         Node::toInputElement and checks for a 0 return value instead.
7662
7663         toInputElement is also more reliable as there's no requirement that
7664         subclasses of HTMLInputElement have the tag name of inputTag so using
7665         this method in a check could potentially miss future subclasses with
7666         different tag names, though none exist right now.
7667
7668         No new tests, this just deletes dead code.
7669
7670         * html/HTMLInputElement.h:
7671
7672 2012-11-15  Erik Arvidsson  <arv@chromium.org>
7673
7674         Update DOMException name: NoModificationAllowedError
7675         https://bugs.webkit.org/show_bug.cgi?id=102134
7676
7677         Reviewed by Ojan Vafai.
7678
7679         Patch 7 of 25 to update DOMException name to match the spec and Firefox.
7680
7681         Updated existing tests.
7682
7683         * dom/DOMCoreException.cpp:
7684
7685 2012-11-15  Miguel Garcia  <miguelg@chromium.org>
7686
7687         Remove unnecesary dependencies INPUT_TYPE_COLOR
7688         https://bugs.webkit.org/show_bug.cgi?id=102379
7689
7690         Reviewed by Darin Adler.
7691
7692         Platforms should be able to enable INPUT_TYPE_COLOR without enabling
7693         CALENDAR_PICKER and DATALIST_ELEMENT. Before this patch however there would be
7694         compile errors in such configuration.
7695
7696         No new tests since this is not adding any extra functionality.
7697
7698         * WebCore.gyp/WebCore.gyp:
7699         * html/ColorInputType.cpp:
7700         (WebCore::ColorInputType::shouldShowSuggestions):
7701         * make-file-arrays.py:
7702         (main):
7703
7704 2012-11-15  Eric Carlson  <eric.carlson@apple.com>
7705
7706         Update computed line position algorithm
7707         https://bugs.webkit.org/show_bug.cgi?id=93779
7708
7709         Reviewed by Philippe Normand.
7710
7711         Compute the position of a text track relative to rendered tracks. This is needed to position
7712         cues correctly when there is more than one text track.
7713
7714         Test: media/track/track-cue-container-rendering-position.html
7715
7716         * html/track/TextTrack.cpp:
7717         (WebCore::TextTrack::invalidateTrackIndex): Invalidate both cached track indices.
7718         (WebCore::TextTrack::trackIndexRelativeToRenderedTracks): Return the index of the track relative
7719             to other rendered tracks.
7720         * html/track/TextTrack.h:
7721
7722         * html/track/TextTrackCue.cpp:
7723         (WebCore::TextTrackCue::calculateComputedLinePosition): Use trackIndexRelativeToRenderedTracks()
7724             instead of trackIndex() so cues are positioned correctly.
7725
7726         * html/track/TextTrackList.cpp:
7727         (TextTrackList::getTrackIndex): Change return type from unsigned to int.
7728         (TextTrackList::getTrackIndexRelativeToRenderedTracks): New.
7729         * html/track/TextTrackList.h:
7730
7731 2012-11-15  Dominik Röttsches  <dominik.rottsches@intel.com>
7732
7733         [EFL] Bump Harfbuzz to allow fixing bug 101009 on EFL
7734         https://bugs.webkit.org/show_bug.cgi?id=101323
7735
7736         Reviewed by Martin Robinson.
7737
7738         Removing ifdef since we bumped Harfbuzz dependency. This is the
7739         real fix replacing the previous workaround of having a Chromium
7740         specific ifdef here, since Chromium uses a newer HarfBuzz version
7741         already.
7742
7743         No new tests, covered by css3/flexbox/inline-flex-crash.html
7744         which will not crash anymore even with the ifdef removed.
7745
7746         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
7747         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
7748
7749 2012-11-15  Andreas Kling  <kling@webkit.org>
7750
7751         REGRESSION(r134408): Heap-use-after-free in WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement().
7752         <http://webkit.org/b/102304>
7753
7754         Reviewed by Anders Carlsson.
7755
7756         Test: fast/dom/cloneNode-below-body-attribute-merging.html
7757
7758         * html/parser/HTMLConstructionSite.cpp:
7759         (WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
7760
7761             Use Element::fastHasAttribute() to determine if a given attribute is already present on the element
7762             we're merging attributes into.
7763
7764         * dom/ElementAttributeData.h:
7765         (ElementAttributeData):
7766
7767             Remove a now-unnecessary friend declaration.
7768
7769 2012-11-15  Elliott Sprehn  <esprehn@chromium.org>
7770
7771         Prevent creation of detached frames in ShadowRoot
7772         https://bugs.webkit.org/show_bug.cgi?id=102333
7773
7774         Reviewed by Dimitri Glazkov.
7775
7776         Similar to Bug 94717 you can create a loaded iframe in a detached
7777         subtree using ShadowRoot. To fix this we just need to make
7778         SubframeLoadingDisabler traverse through shadow boundaries.
7779
7780         Test: fast/frames/detached-shadow-frame.html
7781
7782         * html/HTMLFrameOwnerElement.h:
7783         (WebCore::SubframeLoadingDisabler::canLoadFrame):
7784
7785 2012-11-15  Shinya Kawanaka  <shinyak@chromium.org>
7786
7787         Changing pseudoClass (:visited) should cause distribution.
7788         https://bugs.webkit.org/show_bug.cgi?id=101700
7789
7790         Reviewed by Dimitri Glazkov.
7791
7792         When href attribute of an anchor or area element is changed, we have to invalidate distribution.
7793
7794         Since we would like to check a few pseudoClasses at once, we make the argument of
7795         SelectRuleFeatureSet::hasSelectorFor int.
7796
7797         Tests: fast/dom/shadow/pseudoclass-update-visited-anchor.html
7798                fast/dom/shadow/pseudoclass-update-visited-area.html
7799
7800         * dom/ElementShadow.cpp:
7801         (WebCore::invalidateParentDistributionIfNecessary):
7802         * dom/ElementShadow.h:
7803         (WebCore):
7804         * html/HTMLAnchorElement.cpp:
7805         (WebCore::HTMLAnchorElement::parseAttribute):
7806         * html/shadow/SelectRuleFeatureSet.h:
7807         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
7808
7809 2012-11-15  Balazs Kelemen  <kbalazs@webkit.org>
7810
7811         Coordinated Graphics: support the "freeze animations" API
7812         https://bugs.webkit.org/show_bug.cgi?id=100703
7813
7814         Reviewed by Noam Rosenthal.
7815
7816         Make animations resumable in Coordinated Graphics.
7817         Pausing was already implemented.
7818
7819         Tested with animations and transitions tests. No tests to be
7820         unskipped because these tests has been working without this API
7821         as well (although this is the preferred way).
7822
7823         * platform/graphics/GraphicsLayerAnimation.cpp:
7824         (WebCore::GraphicsLayerAnimation::apply):
7825         (WebCore::GraphicsLayerAnimation::computeTotalRunningTime):
7826         Do not consider the time while we was suspended as part of
7827         the total running time.
7828         (WebCore):
7829         (WebCore::GraphicsLayerAnimation::resume):
7830         (WebCore::GraphicsLayerAnimations::suspend):
7831         (WebCore::GraphicsLayerAnimations::resume):
7832         * platform/graphics/GraphicsLayerAnimation.h:
7833         (GraphicsLayerAnimation):
7834         (GraphicsLayerAnimations):
7835
7836 2012-11-15  Gabor Rapcsanyi  <rgabor@webkit.org>
7837
7838         Relocate the ARM NEON SVG filter optimizations
7839         https://bugs.webkit.org/show_bug.cgi?id=102214
7840
7841         Reviewed by Zoltan Herczeg.
7842
7843         Relocate the ARM filter optimizations into platform/graphics/cpu/arm
7844         to keep them together with the others.
7845         From now all graphics optimization for ARM NEON should go here.
7846
7847         * CMakeLists.txt:
7848         * GNUmakefile.am:
7849         * GNUmakefile.list.am:
7850         * Target.pri:
7851         * WebCore.gyp/WebCore.gyp:
7852         * WebCore.gypi:
7853         * WebCore.pri:
7854         * WebCore.xcodeproj/project.pbxproj:
7855         * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEBlendNEON.h.
7856         (WebCore):
7857         (FEBlendUtilitiesNEON):
7858         (WebCore::FEBlendUtilitiesNEON::div255):
7859         (WebCore::FEBlendUtilitiesNEON::normal):
7860         (WebCore::FEBlendUtilitiesNEON::multiply):
7861         (WebCore::FEBlendUtilitiesNEON::screen):
7862         (WebCore::FEBlendUtilitiesNEON::darken):
7863         (WebCore::FEBlendUtilitiesNEON::lighten):
7864         (WebCore::FEBlend::platformApplyNEON):
7865         * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FECompositeArithmeticNEON.h.
7866         (WebCore):
7867         (WebCore::FEComposite::computeArithmeticPixelsNeon):
7868         (WebCore::FEComposite::platformArithmeticNeon):
7869         * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FEGaussianBlurNEON.h.
7870         (WebCore):
7871         (WebCore::boxBlurNEON):
7872         * platform/graphics/cpu/arm/filters/FELightingNEON.cpp: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp.
7873         (WebCore):
7874         (WebCore::feLightingConstantsForNeon):
7875         (WebCore::FELighting::platformApplyNeonWorker):
7876         (WebCore::FELighting::getPowerCoefficients):
7877         * platform/graphics/cpu/arm/filters/FELightingNEON.h: Renamed from Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h.
7878         (WebCore):
7879         (FELightingFloatArgumentsForNeon):
7880         (FELightingPaintingDataForNeon):
7881         (WebCore::FELighting::platformApplyNeon):
7882         * platform/graphics/cpu/arm/filters/NEONHelpers.h: Renamed from Source/WebCore/platform/graphics/filters/arm/NEONHelpers.h.
7883         (WebCore):
7884         (WebCore::loadRGBA8AsFloat):
7885         (WebCore::storeFloatAsRGBA8):
7886
7887 2012-11-15  Mike West  <mkwst@chromium.org>
7888
7889         We should trigger a console warning when we encounter invalid sandbox flags.
7890         https://bugs.webkit.org/show_bug.cgi?id=101956
7891
7892         Reviewed by Adam Barth.
7893
7894         A developer who writes '<iframe sandbox="allowScripts">' probably has
7895         something in mind other than what the browser interprets. In these
7896         situations, we should log a console warning that notes 'allowScripts'
7897         is an invalid sandbox flag ('allow-scripts' is probably what she
7898         meant).
7899
7900         This patch does the simplest thing possible: it throws a warning that
7901         lists the invalid flags encountered for sandbox attributes on iframes,
7902         and for sandbox Content Security Policy directives.
7903
7904         Tests: http/tests/security/contentSecurityPolicy/sandbox-invalid-header.html
7905                http/tests/security/sandboxed-iframe-invalid.html
7906
7907         * dom/SecurityContext.cpp:
7908         (WebCore::SecurityContext::parseSandboxPolicy):
7909         * dom/SecurityContext.h:
7910         (SecurityContext):
7911             Accept a new out parameter, invalidTokensErrorMessage. If invalid
7912             tokens are encountered, build an error message string, and pass it
7913             back to the caller through this parameter.
7914         * html/HTMLIFrameElement.cpp:
7915         (WebCore::HTMLIFrameElement::parseAttribute):
7916         * page/ContentSecurityPolicy.cpp:
7917         (WebCore::CSPDirectiveList::applySandboxPolicy):
7918             When applying a sandbox policy, pass a string into
7919             SecurityContext::parseSandboxPolicy to grab any errors that might
7920             be encountered, and log a warning in that event.
7921         (WebCore::ContentSecurityPolicy::reportInvalidSandboxFlags):
7922         (WebCore):
7923         * page/ContentSecurityPolicy.h:
7924             Adding a new method to report invalid sandbox flags.
7925
7926 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
7927
7928         Rename member vars in ViewportArgument to match css-device-adapt
7929         https://bugs.webkit.org/show_bug.cgi?id=102355
7930
7931         Reviewed by Gyuyoung Kim.
7932
7933         No behavior change, thus no new tests.
7934
7935         * dom/ViewportArguments.cpp:
7936         (WebCore::ViewportArguments::resolve):
7937         (WebCore::setViewportFeature):
7938         * dom/ViewportArguments.h:
7939         (WebCore::ViewportArguments::ViewportArguments):
7940         (ViewportArguments):
7941         (WebCore::ViewportArguments::operator==):
7942
7943 2012-11-15  Andrey Adaikin  <aandrey@chromium.org>
7944
7945         Web Inspector: [WebGL] cloneNode for images with revoked Blob URIs fails
7946         https://bugs.webkit.org/show_bug.cgi?id=102366
7947
7948         Reviewed by Vsevolod Vlasov.
7949
7950         * inspector/InjectedScriptCanvasModuleSource.js:
7951         (.):
7952
7953 2012-11-15  Mark Rowe  <mrowe@apple.com>
7954
7955         Build fix.
7956
7957         Disable deprecation warnings in a few places that need it.
7958
7959         * platform/graphics/ca/mac/TileCache.mm:
7960         (WebCore::TileCache::drawRepaintCounter):
7961         * platform/graphics/mac/FontMac.mm:
7962         (WebCore::showGlyphsWithAdvances):
7963         * platform/graphics/mac/WebLayer.mm:
7964         (drawLayerContents):
7965
7966 2012-11-15  Kent Tamura  <tkent@chromium.org>
7967
7968         Support stand-alone month names in calendar picker
7969         https://bugs.webkit.org/show_bug.cgi?id=102196
7970
7971         Reviewed by Kentaro Hara.
7972
7973         We have showed non stand-alone month names in any locales. However
7974         we should show stand-alone month names in some locales such as
7975         Russian.
7976
7977         This patch introduce PagePopupController::formatMonth. It is
7978         exposed to page-popups, and format year-month pairs in the same
7979         way as input[type=month].
7980
7981         No new tests. Affects platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html.
7982
7983         * Resources/pagepopups/calendarPicker.js:
7984         (Month.prototype.toLocaleString):
7985         Calls pagePopupController.formatMonth except Japanese locale.
7986         (handleArgumentsTimeout):
7987         Remove unnecessary default monthLabels.
7988         * page/PagePopupController.cpp:
7989         (WebCore::PagePopupController::formatMonth): Added.
7990         * page/PagePopupController.h:
7991         (PagePopupController): Declare formatMonth.
7992         * page/PagePopupController.idl: Add formatMonth.
7993
7994 2012-11-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
7995
7996         Web Inspector: Fix new JS compiler warnings.
7997         https://bugs.webkit.org/show_bug.cgi?id=102341
7998
7999         Reviewed by Yury Semikhatsky.
8000
8001         New version of compiler finds new inconsistencies.
8002
8003         * inspector/front-end/DOMAgent.js: Replaced 2 simiar cases with loop.
8004         * inspector/front-end/DOMBreakpointsSidebarPane.js:
8005         Declared instance property on WebInspector.
8006         * inspector/front-end/Script.js: Normalized parameter notation.
8007
8008 2012-11-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8009
8010         Unreviewed build fix.
8011
8012         * dom/ViewportArguments.cpp:
8013         (WebCore::convertToUserSpace): Add static
8014
8015 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
8016
8017         Refactor ViewportArguments to only use CSS units
8018         https://bugs.webkit.org/show_bug.cgi?id=102287
8019
8020         Reviewed by Noam Rosenthal.
8021
8022         Refactor the ViewportArgument code to use a member method for
8023         resolving the viewport. This new method only uses arguments in
8024         CSS units.
8025
8026         This is preparation for adding the CSS Device Adaptation support.
8027
8028         Tested by existing tests fast/viewport.
8029
8030         * dom/ViewportArguments.cpp:
8031         (WebCore::clampLengthValue):
8032         (WebCore::clampScaleValue): New utility functions.
8033         (WebCore::ViewportArguments::resolve):
8034         (WebCore::convertToUserSpace): Added until everyone provides arguments
8035         only in CSS units and not device ones.
8036         (WebCore::computeViewportAttributes):
8037         (WebCore::computeMinimumScaleFactorForContentContained):
8038         (WebCore):
8039         (WebCore::restrictMinimumScaleFactorToViewportSize):
8040         * dom/ViewportArguments.h:
8041         (ViewportArguments):
8042
8043 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org> 
8044
8045         Changing pseudoClass (:disabled) should cause distribution.
8046         https://bugs.webkit.org/show_bug.cgi?id=101901
8047
8048         Reviewed by Hajime Morita.
8049
8050         We have to invalidate distribution when pseudo-class (:disabled) is changed.
8051
8052         According to the HTML5 spec, :disabled will match button, input, select, textarea, optgroup,
8053         option, command, li, and fieldset. However, command is not implemented yet, we skip li and command. li might
8054         have 'disabled' state, but we need a command element to make it 'disabled' state.
8055
8056         Tests: fast/dom/shadow/pseudoclass-update-disabled-button.html
8057                fast/dom/shadow/pseudoclass-update-disabled-fieldset.html
8058                fast/dom/shadow/pseudoclass-update-disabled-input.html
8059                fast/dom/shadow/pseudoclass-update-disabled-optgroup.html
8060                fast/dom/shadow/pseudoclass-update-disabled-option.html
8061                fast/dom/shadow/pseudoclass-update-disabled-select.html
8062                fast/dom/shadow/pseudoclass-update-disabled-textarea.html
8063
8064         * html/HTMLFormControlElement.cpp:
8065         (WebCore::HTMLFormControlElement::disabledAttributeChanged):
8066         * html/HTMLOptGroupElement.cpp:
8067         (WebCore::HTMLOptGroupElement::parseAttribute):
8068         * html/HTMLOptionElement.cpp:
8069         (WebCore::HTMLOptionElement::parseAttribute):
8070
8071 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
8072
8073         Unreviewed, rolling out r134691, r134703, r134715, r134716,
8074         and r134733.
8075         http://trac.webkit.org/changeset/134691
8076         http://trac.webkit.org/changeset/134703
8077         http://trac.webkit.org/changeset/134715
8078         http://trac.webkit.org/changeset/134716
8079         http://trac.webkit.org/changeset/134733
8080         https://bugs.webkit.org/show_bug.cgi?id=102342
8081
8082         "Broke the Apple Windows Debug and GTK builds." (Requested by
8083         dydx on #webkit).
8084
8085         * WebCore.exp.in:
8086         * bindings/js/SerializedScriptValue.h:
8087         * testing/Internals.cpp:
8088         * testing/Internals.h:
8089         (WebCore):
8090         * testing/Internals.idl:
8091
8092 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
8093
8094         Not reviewed: fixing inspector tests under Qt.
8095
8096         * inspector/front-end/TestController.js:
8097         * inspector/front-end/utilities.js:
8098         (.):
8099
8100 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8101
8102         Unreviewed. Rebaselined run-bindings-tests.
8103
8104         * bindings/scripts/test/V8/V8TestNode.h:
8105         (WebCore::toV8Fast):
8106
8107 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
8108
8109         Don't use temporary clip rects when hit testing
8110         https://bugs.webkit.org/show_bug.cgi?id=102329
8111
8112         Reviewed by Beth Dakin.
8113
8114         We now cache clip rects separately for painting, hit testing etc. Hit testing
8115         clip rects are always shrunk to exclude scrollbars (so that hit testing on
8116         the scrollbars works), so we no longer every need to use temporary clip rects
8117         during hit testing.
8118
8119         Added an assertion that the scrollbar relevancy when we computed the clip rects
8120         is the same as that when using them.
8121         
8122         * rendering/RenderLayer.cpp:
8123         (WebCore::RenderLayer::hitTestLayer):
8124         (WebCore::RenderLayer::updateClipRects):
8125         * rendering/RenderLayer.h:
8126         (WebCore::ClipRectsCache::ClipRectsCache):
8127         (ClipRectsCache):
8128
8129 2012-11-14  Dirk Schulze  <krit@webkit.org>
8130
8131         Support animation of basic shape 'polygon'
8132         https://bugs.webkit.org/show_bug.cgi?id=102080
8133
8134         Reviewed by Daniel Bates.
8135
8136         The basic shapes 'circle', 'rectangle' and 'ellipse' are animatable with the committed
8137         patch http://trac.webkit.org/changeset/134352.
8138         This is a follow-up patch to make 'polygon' animatable as well, as long as the number
8139         of vertices between start and end polygon is the same.
8140
8141         Added polygon animation test to existing test:
8142             fast/exclusions/shape-inside/shape-inside-animation.html
8143             css3/masking/clip-path-animation.html
8144
8145         * page/animation/CSSPropertyAnimation.cpp: Forgot to add copyright with last commits.
8146         * rendering/style/BasicShapes.cpp:
8147         (WebCore::BasicShape::canBlend): Polygons are allowed now.
8148         (WebCore::BasicShapePolygon::blend): Interpolate polygon shapes.
8149
8150 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8151
8152         Unreviewed. Fix code generator warnings.
8153
8154         * bindings/scripts/CodeGeneratorV8.pm:
8155         (GenerateFunctionCallback):
8156         (GenerateImplementation):
8157
8158 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8159
8160         Changing pseudoClass (:checked) should cause distribution.
8161         https://bugs.webkit.org/show_bug.cgi?id=101902
8162
8163         Reviewed by Dimitri Glazkov.
8164
8165         When the 'checked' state is changed, we have to invalidate distribution.
8166
8167         According to the HTML5 spec, :checked should match a checked input[type="checkbox"],
8168         a checked input[type="radio"], a selected option, and commands. However, we don't have a command element yet.
8169
8170         Tests: fast/dom/shadow/pseudoclass-update-checked-input.html
8171                fast/dom/shadow/pseudoclass-update-checked-option.html
8172
8173         * html/HTMLInputElement.cpp:
8174         (WebCore::HTMLInputElement::setChecked):
8175         * html/HTMLOptionElement.cpp:
8176         (WebCore::HTMLOptionElement::setSelectedState):
8177
8178 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8179
8180         [V8] Kill $implClassName from CodeGeneratorV8.pm
8181         https://bugs.webkit.org/show_bug.cgi?id=102312
8182
8183         Reviewed by Adam Barth.
8184
8185         $implClassName and $interfaceName are the same.
8186         Sometimes we are passing both $implClassName and $interfaceName to
8187         subroutines. We can kill $implClassName.
8188
8189         No tests. No change in behavior.
8190
8191         * bindings/scripts/CodeGeneratorV8.pm:
8192         (GenerateOpaqueRootForGC):
8193         (GenerateHeader):
8194         (GenerateDomainSafeFunctionGetter):
8195         (GenerateDomainSafeFunctionSetter):
8196         (GenerateConstructorGetter):
8197         (GenerateNormalAttrGetter):
8198         (GenerateReplaceableAttrSetter):
8199         (GenerateNormalAttrSetter):
8200         (GenerateEventListenerCallback):
8201         (GenerateOverloadedFunctionCallback):
8202         (GenerateFunctionCallback):
8203         (GenerateParametersCheck):
8204         (GenerateOverloadedConstructorCallback):
8205         (GenerateSingleConstructorCallback):
8206         (GenerateConstructorCallback):
8207         (GenerateEventConstructorCallback):
8208         (GenerateTypedArrayConstructorCallback):
8209         (GenerateNamedConstructorCallback):
8210         (GenerateImplementation):
8211         (GenerateFunctionCallString):
8212
8213 2012-11-14  Adam Barth  <abarth@webkit.org>
8214
8215         [V8] We can shave one instruction off toV8Fast
8216         https://bugs.webkit.org/show_bug.cgi?id=102297
8217
8218         Reviewed by Kentaro Hara.
8219
8220         There's no reason to store info.Holder in a local variable. Calling
8221         Holder() is essentially free because it's inlined to an offset read.
8222
8223         I doubt this patch moves the performance needle in any measurable way,
8224         but it makes the code slightly prettier.
8225
8226         * bindings/scripts/CodeGeneratorV8.pm:
8227         (GenerateHeader):
8228         * bindings/scripts/test/V8/V8TestNode.h:
8229         (WebCore::toV8Fast):
8230
8231 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8232
8233         [V8] Get rid of a redundant branch in JSValueToNative()
8234         https://bugs.webkit.org/show_bug.cgi?id=102311
8235
8236         Reviewed by Adam Barth.
8237
8238         No tests. No change in behavior.
8239
8240         * bindings/scripts/CodeGeneratorV8.pm:
8241         (JSValueToNative):
8242         (NativeToJSValue):
8243
8244 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
8245
8246         Changing pseudoClass (:link) should cause distribution
8247         https://bugs.webkit.org/show_bug.cgi?id=101698
8248
8249         Reviewed by Hajime Morita.
8250
8251         CSSSelector :link matches anchor element with href attribute. When href attribute of an anchor element is changed,
8252         we have to invalidate distribution.
8253
8254         According to the HTML spec, :link matches a link element having href attribute, currently we have not implemented it yet.
8255
8256         Tests: fast/dom/shadow/pseudoclass-update-link-anchor.html
8257                fast/dom/shadow/pseudoclass-update-link-area.html
8258
8259         * html/HTMLAnchorElement.cpp:
8260         (WebCore::HTMLAnchorElement::parseAttribute):
8261
8262 2012-11-14  Kentaro Hara  <haraken@chromium.org>
8263
8264         Remove unused functions from CodeGenerator.pm
8265         https://bugs.webkit.org/show_bug.cgi?id=102316
8266
8267         Reviewed by Adam Barth.
8268
8269         No tests. No change in behavior.
8270
8271         * bindings/scripts/CodeGenerator.pm:
8272         (GenerateCompileTimeCheckForEnumsIfNeeded):
8273
8274 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
8275
8276         [BlackBerry] Update BB10 form theme.
8277         https://bugs.webkit.org/show_bug.cgi?id=100760
8278
8279         Reviewed by Rob Buis.
8280
8281         RIM PR 225755
8282         Internally Reviewed by Eli Fidler.
8283         Update checkbox, radio and menulist button style. Adjust border width
8284         and line height.
8285
8286         * platform/blackberry/RenderThemeBlackBerry.cpp:
8287         (WebCore::RenderThemeBlackBerry::adjustMenuListButtonStyle):
8288         * platform/blackberry/RenderThemeBlackBerry.h:
8289         (RenderThemeBlackBerry):
8290
8291 2012-11-14  Erik Arvidsson  <arv@chromium.org>
8292
8293         Update DOMException name: InvalidModificationError
8294         https://bugs.webkit.org/show_bug.cgi?id=102281
8295
8296         Reviewed by Kentaro Hara.
8297
8298         Patch 13 of 25 to update DOMException name to match the spec and Firefox.
8299
8300         DOMExcecption INVALID_MODIFICATION_ERR is not used in our code.
8301
8302         * dom/DOMCoreException.cpp:
8303
8304 2012-11-14  Adam Barth  <abarth@webkit.org>
8305
8306         document variable in Document::axObjectCache is actually the topDocument
8307         https://bugs.webkit.org/show_bug.cgi?id=101966
8308
8309         Reviewed by Chris Fleizach.
8310
8311         Name change requested by Darin Adler.
8312
8313         * dom/Document.cpp:
8314         (WebCore::Document::axObjectCache):
8315
8316 2012-11-14  Joseph Pecoraro  <pecoraro@apple.com>
8317
8318         [CF]: XMLHttpRequest "timeout" events firing as "error" events
8319         https://bugs.webkit.org/show_bug.cgi?id=102271
8320
8321         Reviewed by David Kilzer.
8322
8323         Initialize the tiemout flag if the error results from a timeout
8324         in the USE(CFNETWORK) cases.
8325
8326         No new tests. This is covered by http/tests/xmlhttprequest/timeout
8327         tests on ports that USE(CFNETWORK).
8328
8329         * platform/network/cf/ResourceErrorCF.cpp:
8330         (WebCore::ResourceError::ResourceError):
8331         * platform/network/mac/ResourceErrorMac.mm:
8332         (WebCore::ResourceError::ResourceError):
8333
8334 2012-11-14  Nico Weber  <thakis@chromium.org>
8335
8336         [chromium/mac] Fix drawing of buttons, checkboxes, radio boxes, and steppers when the page is scaled
8337         https://bugs.webkit.org/show_bug.cgi?id=102282
8338
8339         Reviewed by James Robinson.
8340
8341         Chromium uses skia, and skia state is synced with CG context state at
8342         LocalCurrentGraphicsContext construction time. So delay that
8343         construction after context transforms have happened.
8344         (This regressed in http://trac.webkit.org/changeset/125830)
8345
8346         Covered by the new pixel test fast/forms/zoomed-controls.html. I
8347         couldn't find an existing test for this.
8348
8349         * platform/mac/ThemeMac.mm:
8350         (WebCore::paintCheckbox):
8351         (WebCore::paintRadio):
8352         (WebCore::paintButton):
8353
8354 2012-11-14  Mark Lam  <mark.lam@apple.com>
8355
8356         Change JSEventListener::m_jsFunction to be a weak ref.
8357         https://bugs.webkit.org/show_bug.cgi?id=101989.
8358
8359         Reviewed by Geoffrey Garen.
8360
8361         No new tests.
8362
8363         * ForwardingHeaders/heap/SlotVisitor.h: Added.
8364         * bindings/js/JSDOMBinding.h: Added #include <heap/SlotVisitor.h>
8365         * bindings/js/JSEventListener.cpp:
8366         (WebCore::JSEventListener::JSEventListener):
8367         (WebCore::JSEventListener::visitJSFunction):
8368         (WebCore::JSEventListener::operator==):
8369          - Removed the m_wrapper checks in operator==() because they are not
8370            needed. There is no longer any threat of m_jsFunction pointing to
8371            recycled memory. The use of weak refs will ensure that m_jsFunction
8372            is either still holding on to its old memory exclusively, or is 0'ed
8373            out when the GC collects it.
8374         * bindings/js/JSEventListener.h:
8375         (JSEventListener):
8376         (WebCore::JSEventListener::jsFunction):
8377
8378 2012-11-14  Dan Carney  <dcarney@google.com>
8379
8380         [V8] Rename dispatchWrap
8381         https://bugs.webkit.org/show_bug.cgi?id=102240
8382
8383         Reviewed by Adam Barth.
8384
8385         Mostly a rename:
8386         dispatchWrap->wrap
8387         wrapSlow->createWrapper
8388         dispatchWrapCustom->wrap
8389
8390         No new tests. No change in functionality.
8391
8392         * bindings/scripts/CodeGeneratorV8.pm:
8393         (GenerateHeader):
8394         (GenerateNormalAttrGetter):
8395         (GenerateImplementation):
8396         (GenerateToV8Converters):
8397         * bindings/scripts/IDLAttributes.txt:
8398         * bindings/scripts/test/V8/V8Float64Array.cpp:
8399         (WebCore::wrap):
8400         (WebCore::V8Float64Array::createWrapper):
8401         * bindings/scripts/test/V8/V8Float64Array.h:
8402         (V8Float64Array):
8403         (WebCore):
8404         (WebCore::toV8Object):
8405         (WebCore::toV8):
8406         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
8407         (WebCore::V8TestActiveDOMObject::createWrapper):
8408         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
8409         (V8TestActiveDOMObject):
8410         (WebCore::wrap):
8411         (WebCore::toV8Object):
8412         (WebCore::toV8):
8413         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
8414         (WebCore::V8TestCustomNamedGetter::createWrapper):
8415         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
8416         (V8TestCustomNamedGetter):
8417         (WebCore::wrap):
8418         (WebCore::toV8Object):
8419         (WebCore::toV8):
8420         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
8421         (WebCore::V8TestEventConstructor::createWrapper):
8422         * bindings/scripts/test/V8/V8TestEventConstructor.h:
8423         (V8TestEventConstructor):
8424         (WebCore::wrap):
8425         (WebCore::toV8Object):
8426         (WebCore::toV8):
8427         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
8428         (WebCore::V8TestEventTarget::createWrapper):
8429         * bindings/scripts/test/V8/V8TestEventTarget.h:
8430         (V8TestEventTarget):
8431         (WebCore::wrap):
8432         (WebCore::toV8Object):
8433         (WebCore::toV8):
8434         * bindings/scripts/test/V8/V8TestException.cpp:
8435         (WebCore::V8TestException::createWrapper):
8436         * bindings/scripts/test/V8/V8TestException.h:
8437         (V8TestException):
8438         (WebCore::wrap):
8439         (WebCore::toV8Object):
8440         (WebCore::toV8):
8441         * bindings/scripts/test/V8/V8TestInterface.cpp:
8442         (WebCore::V8TestInterface::createWrapper):
8443         * bindings/scripts/test/V8/V8TestInterface.h:
8444         (V8TestInterface):
8445         (WebCore::wrap):
8446         (WebCore::toV8Object):
8447         (WebCore::toV8):
8448         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
8449         (WebCore::V8TestMediaQueryListListener::createWrapper):
8450         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
8451         (V8TestMediaQueryListListener):
8452         (WebCore::wrap):
8453         (WebCore::toV8Object):
8454         (WebCore::toV8):
8455         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
8456         (WebCore::V8TestNamedConstructor::createWrapper):
8457         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
8458         (V8TestNamedConstructor):
8459         (WebCore::wrap):
8460         (WebCore::toV8Object):
8461         (WebCore::toV8):
8462         * bindings/scripts/test/V8/V8TestNode.cpp:
8463         (WebCore::V8TestNode::createWrapper):
8464         * bindings/scripts/test/V8/V8TestNode.h:
8465         (V8TestNode):
8466         (WebCore::wrap):
8467         (WebCore::toV8Object):
8468         (WebCore::toV8):
8469         (WebCore::toV8Fast):
8470         * bindings/scripts/test/V8/V8TestObj.cpp:
8471         (WebCore::V8TestObj::createWrapper):
8472         * bindings/scripts/test/V8/V8TestObj.h:
8473         (V8TestObj):
8474         (WebCore::wrap):
8475         (WebCore::toV8Object):
8476         (WebCore::toV8):
8477         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
8478         (WebCore::V8TestOverloadedConstructors::createWrapper):
8479         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
8480         (V8TestOverloadedConstructors):
8481         (WebCore::wrap):
8482         (WebCore::toV8Object):
8483         (WebCore::toV8):
8484         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
8485         (WebCore::V8TestSerializedScriptValueInterface::createWrapper):
8486         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
8487         (V8TestSerializedScriptValueInterface):
8488         (WebCore::wrap):
8489         (WebCore::toV8Object):
8490         (WebCore::toV8):
8491         * bindings/v8/custom/V8BlobCustom.cpp:
8492         (WebCore::wrap):
8493         * bindings/v8/custom/V8CSSRuleCustom.cpp:
8494         (WebCore::wrap):
8495         * bindings/v8/custom/V8CSSValueCustom.cpp:
8496         (WebCore::wrap):
8497         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
8498         (WebCore::wrap):
8499         * bindings/v8/custom/V8DataViewCustom.cpp:
8500         (WebCore::wrap):
8501         * bindings/v8/custom/V8DocumentCustom.cpp:
8502         (WebCore::wrap):
8503         * bindings/v8/custom/V8ElementCustom.cpp:
8504         (WebCore):
8505         (WebCore::wrap):
8506         * bindings/v8/custom/V8EntryCustom.cpp:
8507         (WebCore::wrap):
8508         * bindings/v8/custom/V8EntrySyncCustom.cpp:
8509         (WebCore::wrap):
8510         * bindings/v8/custom/V8EventCustom.cpp:
8511         (WebCore):
8512         (WebCore::wrap):
8513         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
8514         (WebCore::wrap):
8515         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
8516         (WebCore::wrap):
8517         * bindings/v8/custom/V8HTMLElementCustom.cpp:
8518         (WebCore::wrap):
8519         * bindings/v8/custom/V8ImageDataCustom.cpp:
8520         (WebCore::wrap):
8521         * bindings/v8/custom/V8NodeCustom.cpp:
8522         (WebCore::wrap):
8523         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
8524         (WebCore::wrap):
8525         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
8526         (WebCore::wrap):
8527         * bindings/v8/custom/V8SVGElementCustom.cpp:
8528         (WebCore::wrap):
8529         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
8530         (WebCore::wrap):
8531         * bindings/v8/custom/V8StyleSheetCustom.cpp:
8532         (WebCore::wrap):
8533         * dom/make_names.pl:
8534         (printWrapperFunctions):
8535         (printWrapperFactoryCppFile):
8536
8537 2012-11-14  Ryuan Choi  <ryuan.choi@gmail.com>
8538
8539         [EFL] Refactor theme to choose whether to support foreground color of selection
8540         https://bugs.webkit.org/show_bug.cgi?id=102037
8541
8542         Reviewed by Gyuyoung Kim.
8543
8544         RenderThemeEfl can change foreground color of selection using theme file.
8545         But it can not disable supports of foreground color to keep the text color
8546         which is selected.
8547
8548         This patch refactors color classes of theme file from active/inactive classes
8549         to foreground/background classes so that RenderThemeEfl checks whether
8550         theme file supports foreground color class.
8551
8552         * platform/efl/RenderThemeEfl.cpp:
8553         (WebCore::fillColorsFromEdjeClass):
8554         (WebCore::RenderThemeEfl::setColorFromThemeClass):
8555         (WebCore::RenderThemeEfl::loadTheme):
8556         (WebCore::RenderThemeEfl::RenderThemeEfl):
8557         (WebCore::RenderThemeEfl::supportsSelectionForegroundColors):
8558         (WebCore):
8559         * platform/efl/RenderThemeEfl.h:
8560         (RenderThemeEfl):
8561
8562 2012-11-14  Tony Chang  <tony@chromium.org>
8563
8564         Convert m_selectorVector back to a stack allocated m_reusableSelectorVector
8565         https://bugs.webkit.org/show_bug.cgi?id=102295
8566
8567         Reviewed by Andreas Kling.
8568
8569         Revert r125252 because we're not going to go forward with implementing CSS hierarchies at this time.
8570
8571         No new tests because there should be no change in behavior.
8572
8573         * css/CSSGrammar.y.in:
8574         * css/CSSParser.cpp:
8575         (WebCore::CSSParser::CSSParser):
8576         (WebCore::CSSParser::parseValue):
8577         (WebCore::CSSParser::parseColor):
8578         (WebCore::CSSParser::parseDeclaration):
8579         (WebCore):
8580         (WebCore::filterProperties):
8581         (WebCore::CSSParser::createStylePropertySet):
8582         (WebCore::CSSParser::addProperty):
8583         (WebCore::CSSParser::rollbackLastProperties):
8584         (WebCore::CSSParser::clearProperties):
8585         (WebCore::CSSParser::parse4Values):
8586         (WebCore::CSSParser::parseFlowThread):
8587         (WebCore::CSSParser::addTextDecorationProperty):
8588         (WebCore::CSSParser::createFloatingSelectorVector):
8589         (WebCore::CSSParser::sinkFloatingSelectorVector):
8590         (WebCore::CSSParser::createStyleRule):
8591         (WebCore::CSSParser::createFontFaceRule):
8592         (WebCore::CSSParser::createPageRule):
8593         (WebCore::CSSParser::setReusableRegionSelectorVector):
8594         (WebCore::CSSParser::startDeclarationsForMarginBox):
8595         (WebCore::CSSParser::endDeclarationsForMarginBox):
8596         (WebCore::CSSParser::deleteFontFaceOnlyValues):
8597         * css/CSSParser.h:
8598         (WebCore::CSSParser::hasProperties):
8599         (WebCore::CSSParser::reusableSelectorVector):
8600         (CSSParser):
8601         (WebCore::CSSParser::reusableRegionSelectorVector):
8602         * css/CSSParserValues.cpp:
8603         (WebCore::CSSParserSelector::adoptSelectorVector):
8604         * css/CSSParserValues.h:
8605         (CSSParserSelector):
8606         * css/CSSSelectorList.cpp:
8607         (WebCore::CSSSelectorList::adoptSelectorVector):
8608         * css/CSSSelectorList.h:
8609         (CSSSelectorList):
8610         * css/SVGCSSParser.cpp:
8611         (WebCore::CSSParser::parseSVGValue):
8612         * css/StyleRule.cpp:
8613         (WebCore::StyleRuleRegion::StyleRuleRegion):
8614         * css/StyleRule.h:
8615         (WebCore::StyleRule::parserAdoptSelectorVector):
8616         (WebCore::StyleRulePage::parserAdoptSelectorVector):
8617         (WebCore::StyleRuleRegion::create):
8618         (StyleRuleRegion):
8619
8620 2012-11-14  Alec Flett  <alecflett@chromium.org>
8621
8622         Add tests for explicit serialization values
8623         https://bugs.webkit.org/show_bug.cgi?id=96818
8624
8625         Reviewed by Adam Barth.
8626
8627         Expose direct access to the serialization/deserialization mechanisms
8628         of SerializedScriptValue to DumpRenderTree.
8629
8630         * testing/Internals.cpp:
8631         (WebCore::Internals::serializeObject):
8632         (WebCore):
8633         (WebCore::Internals::deserializeBuffer):
8634         * testing/Internals.h:
8635         (WebCore):
8636         * testing/Internals.idl:
8637
8638 2012-11-14  Michael Pruett  <michael@68k.org>
8639
8640         IndexedDB: Add clear() method to JSC ScriptValue
8641         https://bugs.webkit.org/show_bug.cgi?id=102288
8642
8643         Reviewed by Kentaro Hara.
8644
8645         IndexedDB uses the ScriptValue::clear() method, which existed
8646         previously only in the V8 implementation of ScriptValue. This
8647         change is necessary to implement IndexedDB for JSC.
8648
8649         Tests: storage/indexeddb/*
8650
8651         * bindings/js/ScriptValue.h:
8652         (WebCore::ScriptValue::clear):
8653         (ScriptValue):
8654
8655 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8656
8657         IndexedDB: Indexing tests are flaky-crashing
8658         https://bugs.webkit.org/show_bug.cgi?id=102283
8659
8660         Reviewed by Tony Chang.
8661
8662         Don't commit the transaction if there are outstanding pre-emptive events
8663         from indexing operations.
8664
8665         Speculative fix for the flakiness.
8666
8667         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
8668         (WebCore::IDBTransactionBackendImpl::taskEventTimerFired):
8669
8670 2012-11-14  Tony Chang  <tony@chromium.org>
8671
8672         Crash in flexbox when removing absolutely positioned children
8673         https://bugs.webkit.org/show_bug.cgi?id=100465
8674
8675         Reviewed by Ojan Vafai.
8676
8677         We use m_numberOfChildrenOnFirstLine when computing baseline alignment.
8678         This value gets set during flexbox layout. When we remove an absolutely
8679         positioned child, we don't relayout and this value would get stale.
8680
8681         Change m_numberOfChildrenOnFirstLine to m_numberOfInFlowChildrenOnFirstLine
8682         so the value doesn't get stale when we remove absolutely positioned children.
8683         Also change the loop in firstLineBoxBaseline to bail if we run off the end of
8684         the iterator.
8685
8686         Test: css3/flexbox/crash-removing-out-of-flow-child.html
8687
8688         * rendering/RenderFlexibleBox.cpp:
8689         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
8690         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
8691         (WebCore::RenderFlexibleBox::layoutBlock):
8692         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems):
8693         (WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
8694         * rendering/RenderFlexibleBox.h:
8695
8696 2012-11-14  Joshua Bell  <jsbell@chromium.org>
8697
8698         IndexedDB: Remove magic numbers in record comparator, handle missing case
8699         https://bugs.webkit.org/show_bug.cgi?id=102255
8700
8701         Reviewed by Tony Chang.
8702
8703         For some ranges of metadata entries, a simple type byte comparison is sufficient
8704         for the backing store comparator. In two places those ranges used magic numbers,
8705         one of which was incorrect - which could lead to failed reads/writes.
8706
8707         Test: webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.ComparisonTest'
8708
8709         * Modules/indexeddb/IDBLevelDBCoding.cpp:
8710         (IDBLevelDBCoding):
8711         (WebCore::IDBLevelDBCoding::compare):
8712         * Modules/indexeddb/IDBLevelDBCoding.h:
8713
8714 2012-11-14  Dirk Schulze  <krit@webkit.org>
8715
8716         Cleanup BasicShape blending check
8717         https://bugs.webkit.org/show_bug.cgi?id=102289
8718
8719         Reviewed by Daniel Bates.
8720
8721         CSSPropertyAnimation had the same code for varifying that two BasicShape objects can be blended 
8722         twice. Refactor the code and add a canBlend method in BasicShape that combines both checks. This
8723         is a preparation for follow-up patches.
8724
8725         Pure refactoring without behavior change, no new tests.
8726
8727         * page/animation/CSSPropertyAnimation.cpp:
8728         (WebCore::blendFunc): Call new canBlend method for blending verification.
8729         * rendering/style/BasicShapes.cpp:
8730         (WebCore::BasicShape::canBlend): Check if two BasicShape objects can be blended.
8731         (WebCore):
8732         * rendering/style/BasicShapes.h:
8733
8734 2012-11-14  Dirk Schulze  <krit@webkit.org>
8735
8736         [CSS Exclusions] Basic shapes on 'shape-inside' should be animatable
8737         https://bugs.webkit.org/show_bug.cgi?id=102123
8738
8739         Reviewed by Antti Koivisto.
8740
8741         The '-webkit-shape-inside' propery takes a BasicShape as input like
8742         '-webkit-clip-path'. Follow up on http://trac.webkit.org/changeset/134352 and
8743         make '-webkit-shape-inside' animatable as well.
8744
8745         Test: fast/exclusions/shape-inside/shape-inside-animation.html
8746
8747         * page/animation/CSSPropertyAnimation.cpp:
8748         (WebCore::blendFunc): Blend fuction for exclusion shapes. The property takes another
8749             input then '-webkit-clip-path'.
8750         (WebCore):
8751         (PropertyWrapperBasicShape): Add wrapper for BasicShape object. Can be reused by
8752             '-webkit-shape-ourside' as well.
8753         (WebCore::PropertyWrapperBasicShape::PropertyWrapperBasicShape):
8754         (WebCore::CSSPropertyAnimation::ensurePropertyMap):
8755
8756 2012-11-14  Helder Correia  <helder.correia@nokia.com>
8757
8758         [TexMap][Cairo] Accelerated compositing debug visuals
8759         https://bugs.webkit.org/show_bug.cgi?id=101883
8760
8761         Reviewed by Kenneth Rohde Christiansen.
8762
8763         No new tests, just introducing a debug feature.
8764
8765         Add a Cairo implementation to complement the patch from bug 90116
8766         (http://trac.webkit.org/changeset/122275).
8767
8768         For this feature to be enabled, the environment variable
8769         WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS must be set to 1. Once enabled,
8770         both repaint counters and tile borders will be painted.
8771
8772         A Cairo-specific drawRepaintCounter() implementation was added to
8773         TextureMapperGL. A cairo_surface_t is used as scratch buffer to paint
8774         the counters. It is then uploaded to a BitmapTexture acquired
8775         from the pool and finally draw by TextureMapper. The actual compositing
8776         happens inside LayerBackingStore::paintToTextureMapper(). Each
8777         LayerBackingStoreTile has a repaint counter which gets incremented in
8778         LayerBackingStore::updateTile().
8779
8780         * platform/graphics/texmap/TextureMapperGL.cpp:
8781         (WebCore::TextureMapperGL::drawRepaintCounter):
8782
8783 2012-11-14  Michael Pruett  <michael@68k.org>
8784
8785         IndexedDB: Add JSNoStaticTables to IndexedDB interfaces
8786         https://bugs.webkit.org/show_bug.cgi?id=102268
8787
8788         Reviewed by Geoffrey Garen.
8789
8790         Add JSNoStaticTables attribute to IndexedDB interface
8791         definitions. This attribute must be specified in interfaces
8792         which can be accessed from workers.
8793
8794         Tests: storage/indexeddb/*
8795
8796         * Modules/indexeddb/IDBAny.idl:
8797         * Modules/indexeddb/IDBCursor.idl:
8798         * Modules/indexeddb/IDBCursorWithValue.idl:
8799         * Modules/indexeddb/IDBDatabase.idl:
8800         * Modules/indexeddb/IDBDatabaseException.idl:
8801         * Modules/indexeddb/IDBFactory.idl:
8802         * Modules/indexeddb/IDBIndex.idl:
8803         * Modules/indexeddb/IDBKey.idl:
8804         * Modules/indexeddb/IDBKeyRange.idl:
8805         * Modules/indexeddb/IDBObjectStore.idl:
8806         * Modules/indexeddb/IDBOpenDBRequest.idl:
8807         * Modules/indexeddb/IDBRequest.idl:
8808         * Modules/indexeddb/IDBTransaction.idl:
8809         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
8810         * Modules/indexeddb/IDBVersionChangeEvent.idl:
8811         * Modules/indexeddb/IDBVersionChangeRequest.idl:
8812         * dom/DOMStringList.idl:
8813
8814 2012-11-14  Michael Pruett  <michael@68k.org>
8815
8816         IndexedDB: Replace int64 with int64_t
8817         https://bugs.webkit.org/show_bug.cgi?id=102270
8818
8819         Reviewed by Tony Chang.
8820
8821         Cleaning up coding inconsistencies, no change in behavior.
8822
8823         Tests: storage/indexeddb/*
8824
8825         * Modules/indexeddb/IDBDatabase.cpp:
8826         (WebCore::IDBDatabase::deleteObjectStore):
8827         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
8828         (WebCore::IDBObjectStoreBackendImpl::putInternal):
8829
8830 2012-11-14  Viatcheslav Ostapenko  <v.ostapenko@samsung.com>
8831
8832         [EFL][WK2] White flicker when scrolling big pages with dark background on slower hardware.
8833         https://bugs.webkit.org/show_bug.cgi?id=102000
8834
8835         Reviewed by Noam Rosenthal.
8836
8837         Add helper functions to clear viewport before painting. Those functions
8838         used by EFL Webkit2 port to set view background to match page background
8839         in order to reduce visibility of flicker during scrolling/scaling/repainting
8840         where page tiles are not ready.
8841
8842         * platform/graphics/texmap/TextureMapper.h:
8843         * platform/graphics/texmap/TextureMapperGL.cpp:
8844         (WebCore::TextureMapperGL::drawSolidColor):
8845         (WebCore):
8846         * platform/graphics/texmap/TextureMapperGL.h:
8847         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
8848         (WebCore::TextureMapperImageBuffer::drawSolidColor):
8849         (WebCore):
8850         * platform/graphics/texmap/TextureMapperImageBuffer.h:
8851
8852 2012-11-14  Mark Lam  <mark.lam@apple.com>
8853
8854         Fixed regressions due to adding JSEventListener::m_wrapper null checks.
8855         https://bugs.webkit.org/show_bug.cgi?id=102183.
8856
8857         Reviewed by Geoffrey Garen.
8858
8859         Fixed JSEventListener::operator==() to work within the contract that
8860         when m_wrapper is 0, m_jsFunction is also expected to be 0. Also fixed
8861         some typos in comments.
8862
8863         No new tests.
8864
8865         * bindings/js/JSEventListener.cpp:
8866         (WebCore::JSEventListener::visitJSFunction):
8867         (WebCore::JSEventListener::operator==):
8868         * bindings/js/JSEventListener.h:
8869         (WebCore::JSEventListener::jsFunction):
8870
8871 2012-11-14  Nate Chapin  <japhet@chromium.org>
8872
8873         Fix chromium asserts from r134649.
8874
8875         Rubber-stamped by Adam Barth.
8876
8877         MainResourceLoader was calling releaseResources() twice when cancelled
8878         within MainResourceLoader::load(), so check reachedTerminalState() before
8879         calling releaseResources() there.
8880
8881         * loader/MainResourceLoader.cpp:
8882         (WebCore::MainResourceLoader::load):
8883
8884 2012-11-14  Andreas Kling  <kling@webkit.org>
8885
8886         Only resolve presentation attribute style once per shared ElementAttributeData.
8887         <http://webkit.org/b/100990>
8888
8889         Reviewed by Antti Koivisto.
8890
8891         Track the "presentation attribute style dirty" state on ElementAttributeData instead of in a Node flag.
8892         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
8893         since the state is no longer per-Element.
8894
8895         I've left the presentation attribute cache in there for now, since it still covers the case where
8896         two elements have the same presentation attributes but different non-presentation attributes.
8897         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
8898
8899         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
8900         * dom/StyledElement.h:
8901         (WebCore::StyledElement::presentationAttributeStyle):
8902         (WebCore::ElementAttributeData::ElementAttributeData):
8903         * dom/ElementAttributeData.h:
8904         (WebCore::ElementAttributeData::ElementAttributeData):
8905         (ElementAttributeData):
8906         * dom/Node.h:
8907
8908             Move presentation attribute style dirty flag from Node to ElementAttributeData.
8909
8910         * dom/ElementAttributeData.cpp:
8911         (SameSizeAsElementAttributeData):
8912
8913             Add a compile-time object size assertion for ElementAttributeData.
8914
8915         * dom/StyledElement.cpp:
8916         (WebCore::StyledElement::attributeChanged):
8917
8918             Don't mark the presentation attribute style dirty if the element is using an immutable (implies
8919             shared) ElementAttributeData and another element has already generated the StylePropertySet.
8920             The element itself is still marked for style recalc like before, this just avoids the process
8921             of converting the attributes to CSS properties.
8922
8923 2012-11-14  Scott Violet  <sky@chromium.org>
8924
8925         [Chromium] Refactor theme font lookup into a factory
8926         https://bugs.webkit.org/show_bug.cgi?id=101949
8927
8928         Reviewed by Tony Chang.
8929
8930         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
8931
8932         No new tests. Refactoring only.
8933
8934         * WebCore.gyp/WebCore.gyp:
8935         * WebCore.gypi:
8936         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
8937         (WebCore):
8938         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
8939         * rendering/RenderThemeChromiumFontProvider.h: Added.
8940         (WTF):
8941         (WebCore):
8942         (RenderThemeChromiumFontProvider): This is the font related methods.
8943         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
8944         (WebCore):
8945         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
8946         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
8947         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
8948         (WebCore):
8949         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
8950         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
8951         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
8952         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
8953         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
8954         * rendering/RenderThemeChromiumSkia.cpp:
8955         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
8956         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
8957         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
8958         * rendering/RenderThemeChromiumSkia.h:
8959         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
8960         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
8961         (WebCore):
8962         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
8963         (RenderThemeChromiumWin):
8964
8965 2012-11-14  Erik Arvidsson  <arv@chromium.org>
8966
8967         Update DOMException name: InUseAttributeError
8968         https://bugs.webkit.org/show_bug.cgi?id=102141
8969
8970         Reviewed by Ojan Vafai.
8971
8972         Patch 10 of 25 to update DOMException name to match the spec and Firefox.
8973
8974         The name for this is not in the spec but the case was selected to match
8975         Firefox. http://mxr.mozilla.org/mozilla-central/source/dom/base/domerr.msg#18
8976
8977         INUSE_ATTRIBUTE_ERR is historical and not used in any spec or any of our tests.
8978
8979         * dom/DOMCoreException.cpp:
8980         * dom/ExceptionCode.h:
8981
8982 2012-11-14  Lynn Neir  <lynn.neir@skype.net>
8983
8984         [WinCairo] Incorrect line-height for styled menulist (select tag)
8985         in windows theme.
8986         https://bugs.webkit.org/show_bug.cgi?id=79435
8987
8988         Reviewed by Brent Fulgham
8989
8990         Applied same fix as in RenderThemeSafari::adjustMenuListButtonStyle
8991         to Windows theme to fix issue.
8992
8993         Tests: fast/forms/menulist-restrict-line-height.html
8994                fast/forms/control-restrict-line-height.html
8995                fast/forms/basic-selects.html
8996
8997         * rendering/RenderThemeWin.cpp:
8998         (WebCore::RenderThemeWin::adjustMenuListButtonStyle): Set line
8999         height to the correct initial height.
9000
9001 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9002
9003         Update DOMException name: WrongDocumentError
9004         https://bugs.webkit.org/show_bug.cgi?id=102096
9005
9006         Reviewed by Ojan Vafai.
9007
9008         Patch 4 of 25 to update DOMException name to match the spec and Firefox.
9009
9010         Updated existing tests.
9011
9012         * dom/DOMCoreException.cpp:
9013
9014 2012-11-14  Nate Chapin  <japhet@chromium.org>
9015
9016         Move empty loading to DocumentLoader, simplify FrameLoader::init()
9017         https://bugs.webkit.org/show_bug.cgi?id=101512
9018
9019         Reviewed by Adam Barth.
9020
9021         No new tests, though several outputs changed because we no longer send resource
9022             load callbacks for empty loads.
9023
9024         * loader/DocumentLoader.cpp:
9025         (WebCore::DocumentLoader::startLoadingMainResource): Handle empty main resource
9026             loads directly here.
9027         * loader/DocumentLoader.h:
9028         * loader/FrameLoader.cpp:
9029         (WebCore::FrameLoader::FrameLoader): Initialize some variables whose values
9030             were previously being reset in init(). Given that the FrameLoader is in
9031             an inconsistent state before init() is called anyway, there doesn't seem
9032             to be a disadvantage to just initializing them to their post-init() values.
9033         (WebCore::FrameLoader::init): Just call startLoadingMainResource(), instead of
9034             doing a bunch of direct calls to functions FrameLoader shouldn't know about.
9035         * loader/FrameLoaderStateMachine.cpp:
9036         * loader/FrameLoaderStateMachine.h:
9037         * loader/MainResourceLoader.cpp: Throughout, remove the concept of an empty load.
9038         (WebCore::MainResourceLoader::loadNow): This only returned true when an empty
9039             load got deferred, which won't happen now. Return void and always treat
9040             as returning false.
9041         * loader/MainResourceLoader.h:
9042
9043 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9044
9045         Update DOMException name: InvalidStateError
9046         https://bugs.webkit.org/show_bug.cgi?id=102241
9047
9048         Reviewed by Ojan Vafai.
9049
9050         Patch 11 of 25 to update DOMException name to match the spec and Firefox.
9051
9052         Updated existing tests.
9053
9054         * dom/DOMCoreException.cpp:
9055
9056 2012-11-14  Joshua Bell  <jsbell@chromium.org>
9057
9058         Rename NATIVE_TYPE_ERR to TypeError
9059         https://bugs.webkit.org/show_bug.cgi?id=102114
9060
9061         Reviewed by Kentaro Hara.
9062
9063         Defines names (mostly) matching WebIDL exception types for use by dom (etc) code.
9064         V8 binding code had colliding enum members, which required prefixing.
9065
9066         No new tests - just internal renames.
9067
9068         * Modules/indexeddb/IDBCursor.cpp: s/NATIVE_TYPE_ERR/TypeError/g
9069         (WebCore::IDBCursor::advance):
9070         (WebCore::IDBCursor::stringToDirection):
9071         (WebCore::IDBCursor::directionToString):
9072         * Modules/indexeddb/IDBDatabase.cpp: Ditto.
9073         (WebCore::IDBDatabase::setVersion):
9074         * Modules/indexeddb/IDBFactory.cpp: Ditto.
9075         (WebCore::IDBFactory::open):
9076         (WebCore::IDBFactory::openInternal):
9077         (WebCore::IDBFactory::deleteDatabase):
9078         * Modules/indexeddb/IDBObjectStore.cpp: Ditto.
9079         (WebCore::IDBObjectStore::createIndex):
9080         * Modules/indexeddb/IDBTransaction.cpp: Ditto.
9081         (WebCore::IDBTransaction::stringToMode):
9082         (WebCore::IDBTransaction::modeToString):
9083         * bindings/js/JSDOMBinding.cpp: Ditto.
9084         (WebCore::setDOMException):
9085         * bindings/v8/DateExtension.cpp: Prefix ErrorType enum/members w/ V8/v8.
9086         (WebCore::DateExtension::OnSleepDetected):
9087         * bindings/v8/NPV8Object.cpp: Ditto.
9088         (_NPN_SetException):
9089         * bindings/v8/V8Binding.cpp: Ditto.
9090         (WebCore::throwError):
9091         (WebCore::handleMaxRecursionDepthExceeded):
9092         * bindings/v8/V8Binding.h: Ditto.
9093         (WebCore):
9094         * bindings/v8/V8NPObject.cpp: Ditto.
9095         (WebCore::npObjectInvokeImpl):
9096         (WebCore::npObjectGetProperty):
9097         (WebCore::npObjectSetProperty):
9098         (WebCore::npObjectPropertyEnumerator):
9099         * bindings/v8/V8ThrowException.cpp: Rename ALL the errors!
9100         (WebCore::V8ThrowException::setDOMException):
9101         (WebCore::V8ThrowException::throwError):
9102         (WebCore::V8ThrowException::throwTypeError):
9103         (WebCore::V8ThrowException::throwNotEnoughArgumentsError):
9104         * bindings/v8/V8ThrowException.h:
9105         (V8ThrowException):
9106         * bindings/v8/WorkerContextExecutionProxy.cpp: Prefixing (continued)
9107         (WebCore::WorkerContextExecutionProxy::evaluate):
9108         * bindings/v8/custom/V8ArrayBufferCustom.cpp: Ditto.
9109         (WebCore::V8ArrayBuffer::constructorCallback):
9110         * bindings/v8/custom/V8ArrayBufferViewCustom.h: Ditto.
9111         (WebCore::constructWebGLArrayWithArrayBufferArgument):
9112         (WebCore::constructWebGLArray):
9113         (WebCore::setWebGLArrayHelper):
9114         * bindings/v8/custom/V8AudioContextCustom.cpp: Ditto.
9115         (WebCore::V8AudioContext::constructorCallback):
9116         * bindings/v8/custom/V8BlobCustom.cpp: Ditto.
9117         (WebCore::V8Blob::constructorCallback):
9118         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
9119         (WebCore::V8Clipboard::clearDataCallback):
9120         (WebCore::V8Clipboard::setDragImageCallback):
9121         * bindings/v8/custom/V8DOMFormDataCustom.cpp: Ditto.
9122         (WebCore::V8DOMFormData::appendCallback):
9123         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Ditto.
9124         (WebCore::V8SQLResultSetRowList::itemCallback):
9125         * dom/ExceptionCode.h: Add WebIDL exception types.
9126
9127 2012-11-14  Tiancheng Jiang  <tijiang@rim.com>
9128
9129         [BlackBerry] Style BB10 time input field font.
9130         https://bugs.webkit.org/show_bug.cgi?id=102260.
9131
9132         Reviewed by Rob Buis.
9133
9134         RIM PR 243355
9135         Adjust time input field font using BB10 system default font.
9136
9137         * css/themeBlackBerry.css:
9138         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
9139
9140 2012-11-14  Li Yin  <li.yin@intel.com>
9141
9142         createDelay should raise exception when the maxDelayTime parameter is incorrect.
9143         https://bugs.webkit.org/show_bug.cgi?id=102173
9144
9145         Reviewed by Chris Rogers.
9146
9147         Spec: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html
9148         The specified value must be greater than zero and less than three minutes or a
9149         NOT_SUPPORTED_ERR exception will be thrown.
9150
9151         Tests: webaudio/delaynode-maxdelaylimit.html
9152
9153         * Modules/webaudio/AudioContext.cpp:
9154         (WebCore::AudioContext::createDelay):
9155         * Modules/webaudio/AudioContext.h:
9156         (AudioContext):
9157         * Modules/webaudio/AudioContext.idl: Add raising exception for createDelay.
9158         * Modules/webaudio/DelayNode.cpp:
9159         (WebCore):
9160         (WebCore::DelayNode::DelayNode):
9161         * Modules/webaudio/DelayNode.h:
9162         (WebCore::DelayNode::create):
9163         (DelayNode):
9164
9165 2012-11-14  Simon Fraser  <simon.fraser@apple.com>
9166
9167         Don't pass a paintingRoot when painting from RenderLayerBacking
9168         https://bugs.webkit.org/show_bug.cgi?id=102256
9169
9170         Reviewed by David Hyatt.
9171
9172         The 'paintingRoot' parameter to the RenderLayer paint functions
9173         is used when painting just a subtree (e.g. when painting dragged
9174         selections). There is no need to pass it when a RenderLayerBacking
9175         paints its contents or overlay scrollbars.
9176         
9177         Passing it requires an expensive isDescendant() check, so passing
9178         null is more efficient.
9179         
9180         * rendering/RenderLayer.h:
9181         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
9182         * rendering/RenderLayerBacking.cpp:
9183         (WebCore::RenderLayerBacking::paintIntoLayer):
9184         (WebCore::RenderLayerBacking::paintContents):
9185         * rendering/RenderLayerBacking.h:
9186         (RenderLayerBacking):
9187
9188 2012-11-14  Alec Flett  <alecflett@chromium.org>
9189
9190         Add DOMRequestState to maintain world/ScriptExecutionContext state
9191         https://bugs.webkit.org/show_bug.cgi?id=102102
9192
9193         Reviewed by Adam Barth.
9194
9195         Introduce DOMRequestState, and convert IndexedDB over.
9196
9197         No new tests, this is an abstraction layer for existing code.
9198
9199         * Modules/indexeddb/IDBRequest.cpp:
9200         (WebCore::IDBRequest::IDBRequest):
9201         (WebCore::IDBRequest::onSuccess):
9202         (WebCore::IDBRequest::dispatchEvent):
9203         * Modules/indexeddb/IDBRequest.h:
9204         (IDBRequest):
9205         * WebCore.gypi:
9206         * bindings/v8/DOMRequestState.h: Added.
9207         (WebCore):
9208         (DOMRequestState):
9209         (WebCore::DOMRequestState::DOMRequestState):
9210         (Scope):
9211         (WebCore::DOMRequestState::Scope::Scope):
9212         (WebCore::DOMRequestState::scope):
9213
9214 2012-11-14  Justin Novosad  <junov@google.com>
9215
9216         Boxes with rounded corners and thin borders are too slow to draw
9217         https://bugs.webkit.org/show_bug.cgi?id=101974
9218
9219         Reviewed by Simon Fraser.
9220
9221         With the current implementation RenderBox::
9222         determineBackgroundBleedAvoidance() uses the slow path
9223         BackgroundBleedUseTransparencyLayer for some very common use cases,
9224         notably for drawing rectangles with rounded corners that have thin
9225         borders. This is because the BackgroundBleedShrinkBackground
9226         strategy requires a border at least two pixels wide on all sides. This
9227         patch introduce drawing strategy BackgroundBleedBackgroundOverBorder.
9228         This approach consists in drawing the border first, with an inset inner
9229         edge (for anti-aliased compositing to work well).  This approach only
9230         works with opaque solid edges and opaque single-layer backgrounds.
9231         By using this approach rather than BackgroundBleedUseTransparencyLayer,
9232         we save two clipPath, one save and one saveLayer on the
9233         GraphicsContext. This patch gets good coverage from existing layout
9234         tests. One additional test was added to exercise mitring, thick edges
9235         and anti-aliasing edge cases under the new painting algorithm.
9236
9237         Test: fast/borders/border-radius-wide-border-05.html
9238
9239         * rendering/RenderBox.cpp:
9240         (WebCore::RenderBox::determineBackgroundBleedAvoidance):
9241         Added selection criteria for BackgroundOverBorder
9242         (WebCore::RenderBox::paintBoxDecorations):
9243         Added a preliminary paintBorder pass for BackgroundOverBorder
9244         (WebCore::RenderBox::paintBackground):
9245         Insetting the background to to innerBorder when bleedAvoidance is
9246         BackgroundOverBorder.  This why BackgroundOverBorder only works for
9247         Opaque solid edges.
9248         (WebCore):
9249         (WebCore::RenderBox::backgroundIsSingleOpaqueLayer):
9250         Utility method use by determineBackgroundBleedAvoidance to test the
9251         background's eligibility for BackgroundOverBorder bleed avoidance
9252         strategy.  The reason the background must be a single layer is to avoid
9253         color bleeding from layer compositing along anti-aliased edges
9254         * rendering/RenderBox.h:
9255         (RenderBox):
9256         * rendering/RenderBoxModelObject.cpp:
9257         (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
9258         (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
9259         Added support for BackgroundOverBorder by applying a one pixel inset.
9260         (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
9261         Set the background rect to the inner border for BackgroundOverBorder
9262         (WebCore):
9263         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
9264         Added support for BackgroundOverBorder by using 
9265         backgroundRoundedRectAdjustedForBleedAvoidance
9266         (WebCore::RenderBoxModelObject::paintBorderSides):
9267         Added support for BackgroundOverBorder by applying per-side inset
9268         adjustments.
9269         (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
9270         (WebCore::RenderBoxModelObject::paintBorder):
9271         Added support for BackgroundOverBorder by using an adjusted inner
9272         border, but not if sides are painted individually.
9273         * rendering/RenderBoxModelObject.h:
9274         (RenderBoxModelObject):
9275
9276 2012-11-14  Hideki Yoshida  <yoshida-hxa@necst.nec.co.jp>
9277
9278         [WinCairo] Fix cairo_t* memory leak in GraphicsContext::platformInit
9279         https://bugs.webkit.org/show_bug.cgi?id=76219
9280
9281         Reviewed by Brent Fulgham.
9282
9283         This patch is to fix a memory leak problem which occurs
9284         in every rendering process on Wincairo port.
9285         By applying this patch, the memory allocated in cairo 
9286         library will be released by calling cairo_destroy.
9287
9288         * platform/graphics/win/GraphicsContextCairoWin.cpp:
9289         (WebCore::GraphicsContext::platformInit):
9290
9291 2012-11-14  Sami Kyostila  <skyostil@chromium.org>
9292
9293         Optimize painting of composited scrolling layers
9294         https://bugs.webkit.org/show_bug.cgi?id=96087
9295
9296         Reviewed by Simon Fraser.
9297
9298         Don't completely repaint accelerated scrolling layers when the scroll offset
9299         changes.
9300
9301         Test: compositing/overflow/scrolling-without-painting.html
9302
9303         * platform/graphics/GraphicsLayer.cpp:
9304         (WebCore::GraphicsLayer::setOffsetFromRenderer):
9305         * platform/graphics/GraphicsLayer.h:
9306         (GraphicsLayer):
9307         * rendering/RenderLayerBacking.cpp:
9308         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
9309
9310 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9311
9312         Web Inspector: keep track of mutation observers and disconnect them upon upload
9313         https://bugs.webkit.org/show_bug.cgi?id=102239
9314
9315         Reviewed by Vsevolod Vlasov.
9316
9317         Otherwise we hit memory leaks.
9318
9319         * inspector/front-end/DefaultTextEditor.js:
9320         (WebInspector.DefaultTextEditor.prototype.wasShown):
9321         (WebInspector.DefaultTextEditor.prototype.willHide):
9322         (WebInspector.TextEditorMainPanel.prototype._wasShown):
9323         (WebInspector.TextEditorMainPanel.prototype._willHide):
9324         (WebInspector.TextEditorMainPanel.prototype._attachMutationObserver):
9325         (WebInspector.TextEditorMainPanel.prototype._detachMutationObserver):
9326         * inspector/front-end/utilities.js:
9327
9328 2012-11-14  Sergio Villar Senin  <svillar@igalia.com>
9329
9330         [Qt] Use a node image if there is no drag image set for Drag&Drop
9331         https://bugs.webkit.org/show_bug.cgi?id=102124
9332
9333         Reviewed by Simon Hausmann.
9334
9335         Use the nodeImage provided by the frame if there is no dragImage in
9336         the clipboard for the current drag&drop operation.
9337
9338         * platform/qt/ClipboardQt.cpp:
9339         (WebCore::ClipboardQt::createDragImage):
9340
9341 2012-11-14  Max Vujovic  <mvujovic@adobe.com>
9342
9343         Call to enclosingFilterLayer() in RenderObject::containerForRepaint() is expensive
9344         https://bugs.webkit.org/show_bug.cgi?id=101846
9345
9346         Reviewed by Simon Fraser.
9347
9348         If software-rendered CSS Filters have not been used in the document, avoid doing the second
9349         tree walk in RenderObject::containerForRepaint, which determines the RenderObject's
9350         enclosing filter layer.
9351
9352         No new tests. We now avoid a filters related code path for a performance improvement when
9353         we're not using filters.
9354
9355         * page/FrameView.cpp:
9356         (WebCore::FrameView::FrameView):
9357         * page/FrameView.h:
9358         (FrameView):
9359         (WebCore::FrameView::setHasSoftwareFilters):
9360         (WebCore::FrameView::hasSoftwareFilters):
9361         * rendering/RenderLayer.cpp:
9362         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer):
9363         * rendering/RenderObject.cpp:
9364         (WebCore::RenderObject::containerForRepaint):
9365
9366 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9367
9368         Update DOMException name: NotFoundError
9369         https://bugs.webkit.org/show_bug.cgi?id=102137
9370
9371         Reviewed by Ojan Vafai.
9372
9373         Patch 8 of 25 to update DOMException name to match the spec and Firefox.
9374
9375         Updated existing tests.
9376
9377         * dom/DOMCoreException.cpp:
9378
9379 2012-11-14  Otto Derek Cheung  <otcheung@rim.com>
9380
9381         [BlackBerry] Updating BB Cookie database to use WAL
9382         https://bugs.webkit.org/show_bug.cgi?id=102237
9383
9384         Reviewed by Rob Buis.
9385
9386         The cookie database is accessed by one process only and should be updated to
9387         use the WAL journal mode for better I/O performance.
9388
9389         PR 236553
9390
9391         cookieCollection.db-wal is created after the conversion to WAL.
9392         Tested cookie persistence by logging on to random sites and restarting the browser and
9393         check if it automatically logs in.
9394         Also tested using Opera's cookie persistence test.
9395
9396         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
9397         (WebCore::CookieDatabaseBackingStore::invokeOpen):
9398
9399 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9400
9401         Update DOMException name: IndexSizeError
9402         https://bugs.webkit.org/show_bug.cgi?id=102087
9403
9404         Reviewed by Ojan Vafai.
9405
9406         This is the first in a series of updates to DOMException name to match
9407         the spec and Firefox.
9408
9409         Patch 1 of 25
9410
9411         Updated existing tests.
9412
9413         * dom/DOMCoreException.cpp:
9414         (WebCore):
9415
9416 2012-11-14  Gabor Rapcsanyi  <rgabor@webkit.org>
9417
9418         Fix [-Wmissing-braces] warnings in graphics/cpu/arm/GraphicsContext3DNEON.h
9419         https://bugs.webkit.org/show_bug.cgi?id=102205
9420
9421         Reviewed by Csaba Osztrogonác.
9422
9423         Fixing some warnings in GraphicsContext3DNEON.h which have been caused by missing braces.
9424
9425         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
9426         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
9427         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
9428         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
9429
9430 2012-11-14  Erik Arvidsson  <arv@chromium.org>
9431
9432         Update DOMException name: NoDataAllowedError
9433         https://bugs.webkit.org/show_bug.cgi?id=102132
9434
9435         Reviewed by Darin Adler.
9436
9437         Patch 6 of 25 to update DOMException name to match the spec and Firefox.
9438
9439         NO_DATA_ALLOWED_ERR is historical and not used in any spec or in our code.
9440
9441         * dom/DOMCoreException.cpp:
9442         (WebCore):
9443         * dom/ExceptionCode.h:
9444
9445 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9446
9447         Web Inspector: "Reveal in Element Panel" doesn't work if Elements panel hasn't been opened
9448         https://bugs.webkit.org/show_bug.cgi?id=102219
9449
9450         Reviewed by Alexander Pavlov.
9451
9452         Force elements module load upon context menu invocation.
9453
9454         * inspector/front-end/ElementsTreeOutline.js:
9455         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement):
9456         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
9457
9458 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9459
9460         Unreviewed, rolling out r134523.
9461         http://trac.webkit.org/changeset/134523
9462         https://bugs.webkit.org/show_bug.cgi?id=102218
9463
9464         brake chrome windows build, as it references a non existing
9465         header js/DOMRequestState.h (Requested by jochen__ on
9466         #webkit).
9467
9468         * Modules/indexeddb/IDBCursor.cpp:
9469         (WebCore::IDBCursor::setValueReady):
9470         * Modules/indexeddb/IDBCursor.h:
9471         (IDBCursor):
9472         * Modules/indexeddb/IDBRequest.cpp:
9473         (WebCore::IDBRequest::IDBRequest):
9474         (WebCore::IDBRequest::onSuccess):
9475         (WebCore::IDBRequest::stop):
9476         (WebCore::IDBRequest::dispatchEvent):
9477         * Modules/indexeddb/IDBRequest.h:
9478         (IDBRequest):
9479         * WebCore.gypi:
9480         * bindings/v8/DOMRequestState.h: Removed.
9481         * bindings/v8/IDBBindingUtilities.cpp:
9482         (WebCore::deserializeIDBValue):
9483         (WebCore::idbKeyToScriptValue):
9484         * bindings/v8/IDBBindingUtilities.h:
9485         (WebCore):
9486
9487 2012-11-14  Anton Obzhirov  <a.obzhirov@samsung.com>
9488
9489         Add platform implementation of remote web inspector server for GTK port.
9490         https://bugs.webkit.org/show_bug.cgi?id=88094 
9491
9492         Reviewed by Gustavo Noronha Silva.
9493
9494         Extra SocketStreamHandle constructor is added to accept existing GSocketConnection.
9495         Needed to pass remote inspector server socket connection. The change is tested with 
9496         inspector server API tests.
9497
9498         * platform/network/soup/SocketStreamHandle.h:
9499         (WebCore::SocketStreamHandle::create):
9500         (SocketStreamHandle):
9501         * platform/network/soup/SocketStreamHandleSoup.cpp:
9502         (WebCore::SocketStreamHandle::SocketStreamHandle):
9503         (WebCore):
9504         (WebCore::SocketStreamHandle::connected):
9505         (WebCore::SocketStreamHandle::platformSend):
9506         (WebCore::SocketStreamHandle::platformClose):
9507
9508 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9509
9510         Web Inspector: context menu on ObjectPropertyTreeElement's values is masked by the section.
9511         https://bugs.webkit.org/show_bug.cgi?id=102212
9512
9513         Reviewed by Vsevolod Vlasov.
9514
9515         * inspector/front-end/ObjectPropertiesSection.js:
9516         (WebInspector.ObjectPropertiesSection.prototype.enableContextMenu):
9517
9518 2012-11-09  Ilya Tikhonovsky  <loislo@chromium.org>
9519
9520         Web Inspector: NMI add instrumentation for WebAudo related stuff.
9521         They use about 16Mb for shared data on pages with webaudio.
9522         As example Angry Birds app.
9523         https://bugs.webkit.org/show_bug.cgi?id=101729
9524
9525         Reviewed by Yury Semikhatsky.
9526
9527         Plain vanilla instrumentation for audio and webaudio classes.
9528         AudioContext is a kind of ActiveDOMObject. I found that these objects
9529         are accessible through ScriptExecutuionContext and ScriptExecutionContext
9530         is an ancestor of Document. Document class was instrumented earler.
9531         I instrumented ActiveDOMObject, ScriptExecutionContext and other ancestors
9532         and now AudioContext and other ActiveDOMObjects are reacheable from Document.
9533
9534         Test: inspector-protocol/nmi-webaudio.html
9535
9536         * Modules/webaudio/AudioContext.cpp:
9537         (WebCore::AudioContext::reportMemoryUsage):
9538         (WebCore):
9539         * Modules/webaudio/AudioContext.h:
9540         (AudioContext):
9541         * Modules/webaudio/AudioNode.cpp:
9542         (WebCore::AudioNode::reportMemoryUsage):
9543         (WebCore):
9544         * Modules/webaudio/AudioNode.h:
9545         (AudioNode):
9546         * dom/ActiveDOMObject.cpp:
9547         (WebCore::ActiveDOMObject::reportMemoryUsage):
9548         (WebCore):
9549         * dom/ActiveDOMObject.h:
9550         (ActiveDOMObject):
9551         * dom/Document.cpp:
9552         (WebCore::Document::reportMemoryUsage):
9553         * dom/ScriptExecutionContext.cpp:
9554         (WebCore::ScriptExecutionContext::reportMemoryUsage):
9555         (WebCore):
9556         * dom/ScriptExecutionContext.h:
9557         (ScriptExecutionContext):
9558         * dom/SecurityContext.cpp:
9559         (WebCore::SecurityContext::reportMemoryUsage):
9560         (WebCore):
9561         * dom/SecurityContext.h:
9562         (SecurityContext):
9563         * dom/WebCoreMemoryInstrumentation.cpp:
9564         (WebCore):
9565         * dom/WebCoreMemoryInstrumentation.h:
9566         (WebCoreMemoryTypes):
9567         * platform/audio/AudioArray.h:
9568         (AudioArray):
9569         (WebCore::AudioArray::reportMemoryUsage):
9570         * platform/audio/FFTFrame.cpp:
9571         (WebCore::FFTFrame::reportMemoryUsage):
9572         (WebCore):
9573         * platform/audio/FFTFrame.h:
9574         (FFTFrame):
9575         * platform/audio/HRTFDatabase.cpp:
9576         (WebCore::HRTFDatabase::reportMemoryUsage):
9577         (WebCore):
9578         * platform/audio/HRTFDatabase.h:
9579         (HRTFDatabase):
9580         * platform/audio/HRTFDatabaseLoader.cpp:
9581         (WebCore::HRTFDatabaseLoader::reportMemoryUsage):
9582         (WebCore):
9583         * platform/audio/HRTFDatabaseLoader.h:
9584         (HRTFDatabaseLoader):
9585         * platform/audio/HRTFElevation.cpp:
9586         (WebCore::HRTFElevation::reportMemoryUsage):
9587         (WebCore):
9588         * platform/audio/HRTFElevation.h:
9589         (HRTFElevation):
9590         * platform/audio/HRTFKernel.cpp:
9591         (WebCore::HRTFKernel::reportMemoryUsage):
9592         (WebCore):
9593         * platform/audio/HRTFKernel.h:
9594         (HRTFKernel):
9595
9596 2012-11-14  Eugene Klyuchnikov  <eustas.bug@gmail.com>
9597
9598         Web Inspector: Settings screen: close button overlays view title on mac.
9599         https://bugs.webkit.org/show_bug.cgi?id=102198
9600
9601         Reviewed by Pavel Feldman.
9602
9603         Added margin-left for mac. Adjusted title height and vertical positioning.
9604
9605         * inspector/front-end/helpScreen.css:
9606         (.help-window-caption): Adjusted title height.
9607         (.help-window-title): Adjusted title vertical positioning. 
9608         (body.platform-mac .help-window-main .help-window-title): Fixed margin.
9609
9610 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
9611
9612         Web Inspector: use last selection as complementary signal when applying DOM changes to the text model.
9613         https://bugs.webkit.org/show_bug.cgi?id=101905
9614
9615         Reviewed by Vsevolod Vlasov.
9616
9617         Currently we use heuristics for detecting damaged model range upon DOM mutation.
9618         This change adds signals from the last selection and keyboard events in order to
9619         further improve the heuristics quality.
9620
9621         * inspector/front-end/DefaultTextEditor.js:
9622         (WebInspector.DefaultTextEditor):
9623         (WebInspector.DefaultTextEditor.EditInfo):
9624         (WebInspector.DefaultTextEditor.prototype._handleTextInput):
9625         (WebInspector.DefaultTextEditor.prototype._handleKeyDown):
9626         (WebInspector.DefaultTextEditor.prototype.lastSelection):
9627         (WebInspector.DefaultTextEditor.prototype.wasShown):
9628         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
9629         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnSelection):
9630         (WebInspector.TextEditorMainPanel.prototype._guessEditRangeBasedOnDiff):
9631         (WebInspector.TextEditorMainPanel.prototype._closingBlockOffset):
9632         (WebInspector.TextEditorMainPanel.prototype._handleSelectionChange):
9633         * inspector/front-end/TextEditorModel.js:
9634         (WebInspector.TextRange.prototype.compareTo):
9635         (WebInspector.TextRange.prototype.shift):
9636         (WebInspector.TextEditorModel.endsWithBracketRegex.):
9637
9638 2012-11-14  Dan Carney  <dcarney@google.com>
9639
9640         [V8] use toV8Fast in all relevant Node getters
9641         https://bugs.webkit.org/show_bug.cgi?id=100851
9642
9643         Reviewed by Kentaro Hara.
9644
9645         The toV8Fast function for Node objects is now called in all getters
9646         instead of toV8.
9647
9648         No new tests. Test coverage extensive.
9649
9650         * bindings/scripts/CodeGeneratorV8.pm:
9651         (GenerateHeader):
9652         (GenerateNormalAttrGetter):
9653         (IsDOMNodeType):
9654         * bindings/scripts/test/V8/V8TestNode.h:
9655         (WebCore::toV8Fast):
9656
9657 2012-11-14  Kenneth Rohde Christiansen  <kenneth@webkit.org>
9658
9659         Clean up use of adjustWindowRect
9660         https://bugs.webkit.org/show_bug.cgi?id=102072
9661
9662         Reviewed by Gyuyoung Kim.
9663
9664         Tested by fast/dom/Window/open-window-min-size.html
9665
9666         * loader/FrameLoader.cpp:
9667         (WebCore::createWindow):
9668
9669             Validate the window size here so that it is not just done for
9670             .open, but also for .showModalDialog. This is compatible with
9671             other browsers such as IE and Firefox (though IE > 6, enforces
9672             a minimum width of 250 instead of 100 as Firefox and us.)
9673
9674         * page/DOMWindow.cpp:
9675         (WebCore):
9676         (WebCore::DOMWindow::adjustWindowRect):
9677
9678             Make it a static method which only takes page. It was never
9679             called from anywhere without a valid page, so the page check
9680             has been turned into an assert, and two of the arguments have
9681             been removed as they can be accessed via the page.
9682
9683         (WebCore::DOMWindow::moveBy):
9684         (WebCore::DOMWindow::moveTo):
9685         (WebCore::DOMWindow::resizeBy):
9686         (WebCore::DOMWindow::resizeTo):
9687
9688             Update use of adjustWindowRect.
9689
9690         (WebCore::DOMWindow::open):
9691
9692             Avoid modifying the WindowFeatures as the WebCore::createWindow
9693             validates and adjusts the arguments.
9694
9695         * page/DOMWindow.h:
9696         (DOMWindow):
9697
9698 2012-11-14  Takashi Sakamoto  <tasak@google.com>
9699
9700         Crash when replacing parts of text inputs with content: url(...)
9701         https://bugs.webkit.org/show_bug.cgi?id=101133
9702
9703         Reviewed by Kent Tamura.
9704
9705         Disable directly setting content of elements in an input element's
9706         shadow dom tree, because the setting breaks input element's behavior.
9707
9708         Tests: fast/forms/number/number-content-url-crash.html
9709                fast/forms/search/search-content-url-crash.html
9710
9711         * css/html.css:
9712         (input::-webkit-textfield-decoration-container):
9713         Use important to disable overriding an input element's content
9714         property.
9715         * html/TextFieldInputType.cpp:
9716         (WebCore::TextFieldInputType::attach):
9717         Added ASSERTION. No content should be applied to
9718         input::-webkit-textfield-decoration-container.
9719
9720 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9721
9722         Unreviewed. Rebaselined run-bindings-tests results.
9723
9724         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
9725         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
9726         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
9727         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
9728         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
9729         (WebCore::V8TestOverloadedConstructors::wrapSlow):
9730
9731 2012-11-14  Anton Muhin  <antonm@chromium.org>
9732
9733         Provide return types for custom WebGLRenderingContext methods
9734         https://bugs.webkit.org/show_bug.cgi?id=100777
9735
9736         Reviewed by Kenneth Russell.
9737
9738         No new tests as doesn't change generated code.
9739
9740         * html/canvas/WebGLRenderingContext.idl:
9741
9742 2012-11-14  Kent Tamura  <tkent@chromium.org>
9743
9744         Support for localization tests of calendar picker
9745         https://bugs.webkit.org/show_bug.cgi?id=102181
9746
9747         Reviewed by Kentaro Hara.
9748
9749         Introduce DateTimeChooserParameters::locale to inform locale to
9750         DateTimeChooser implementations. However we pass defaultLanguage
9751         unless tests calls internals.settings.
9752         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
9753
9754         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
9755
9756         * html/HTMLInputElement.cpp:
9757         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9758         Set DateTimeChooserParameters::locale up.
9759         * platform/DateTimeChooser.h:
9760         (DateTimeChooserParameters): Add 'locale' member.
9761
9762 2012-11-14  Pavel Feldman  <pfeldman@chromium.org>
9763
9764         Web Inspector: highlight is not updating as one edits CSS properties
9765         https://bugs.webkit.org/show_bug.cgi?id=102191
9766
9767         Reviewed by Alexander Pavlov.
9768
9769         We should update highlight upon layout / style recalculation.
9770
9771         * inspector/InspectorInstrumentation.cpp:
9772         (WebCore):
9773         (WebCore::InspectorInstrumentation::didRecalculateStyleImpl):
9774         * inspector/InspectorPageAgent.cpp:
9775         (WebCore::InspectorPageAgent::InspectorPageAgent):
9776         (WebCore::InspectorPageAgent::enable):
9777         (WebCore::InspectorPageAgent::disable):
9778         (WebCore::InspectorPageAgent::domContentEventFired):
9779         (WebCore::InspectorPageAgent::didPaint):
9780         (WebCore::InspectorPageAgent::didLayout):
9781         (WebCore::InspectorPageAgent::didScroll):
9782         (WebCore):
9783         (WebCore::InspectorPageAgent::didRecalculateStyle):
9784         * inspector/InspectorPageAgent.h:
9785
9786 2012-11-14  Sheriff Bot  <webkit.review.bot@gmail.com>
9787
9788         Unreviewed, rolling out r134566.
9789         http://trac.webkit.org/changeset/134566
9790         https://bugs.webkit.org/show_bug.cgi?id=102197
9791
9792         "it broke Chromium Android Release build" (Requested by
9793         haraken on #webkit).
9794
9795         * html/HTMLInputElement.cpp:
9796         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9797         * platform/DateTimeChooser.h:
9798         (DateTimeChooserParameters):
9799
9800 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
9801
9802         Web Inspector: No content available for requests made from flash
9803         https://bugs.webkit.org/show_bug.cgi?id=101560
9804
9805         Reviewed by Pavel Feldman.
9806
9807         Network request data is now saved to inspector cache in following cases:
9808          - Error status code;
9809          - No cached resource available;
9810          - Cached resource has ShouldNotBufferData option set.
9811         Drive-by: refactored didReceiveResponse logic to be clearer.
9812
9813         * inspector/InspectorResourceAgent.cpp:
9814         (WebCore::InspectorResourceAgent::didReceiveResponse):
9815         (WebCore::InspectorResourceAgent::didReceiveData):
9816         * loader/cache/CachedResource.h:
9817         (WebCore::CachedResource::shouldBufferData):
9818
9819 2012-11-14  Shinya Kawanaka  <shinyak@chromium.org>
9820
9821         Changing pseudoClass (:target) should cause distribution
9822         https://bugs.webkit.org/show_bug.cgi?id=101699
9823
9824         Reviewed by Hajime Morita.
9825
9826         When cssTarget element is changed, we might have to invalidate distribution. We check its necessity
9827         by consulting with SelectRuleFeatureSet.
9828
9829         We also implement invalidateParentDistributionIfNecessary for all collected features in this patch.
9830
9831         Test: fast/dom/shadow/pseudoclass-update-target.html
9832
9833         * dom/Document.cpp:
9834         (WebCore::Document::setCSSTarget):
9835         * dom/ElementShadow.cpp:
9836         (WebCore::invalidateParentDistributionIfNecessary):
9837         (WebCore):
9838         * dom/ElementShadow.h:
9839         (WebCore):
9840         * html/shadow/SelectRuleFeatureSet.h:
9841         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
9842         (SelectRuleFeatureSet):
9843
9844 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9845
9846         [V8] DOM wrapper objects should be collected in minor GC cycles
9847         https://bugs.webkit.org/show_bug.cgi?id=98725
9848
9849         Reviewed by Adam Barth.
9850
9851         Previously minor GC cycles cannot collect DOM Nodes. All DOM Nodes
9852         have to survive two minor GC cycles, be promoted to the old space
9853         and wait for a heavy major GC cycle.
9854
9855         This patch enables V8 to collect DOM Nodes in minor GC cycles.
9856         For real world applications, I confirmed that minor GC cycles
9857         reclaims a substantial amount of memory (24 MB for Facebook,
9858         235 MB for Google Calendar) with acceptable overhead (~10 ms
9859         per minor GC cycle). No performance regression in Dromaeo
9860         DOM tests.
9861
9862         A design document: https://docs.google.com/a/google.com/document/d/16DeHrzkm3cO9XCPT1aK3Y5qgUxXB3RFmueqQWYmN2rI/edit
9863         Performance results: https://docs.google.com/a/google.com/document/d/1h0-EsHu7T0sSMuZm5eE0r1e8sCAzY3weLvsDUpOSngE/edit
9864         A slide: https://docs.google.com/a/google.com/presentation/d/1uifwVYGNYTZDoGLyCb7sXa7g49mWNMW2gaWvMN5NLk8/edit#slide=id.p
9865
9866         * bindings/v8/IntrusiveDOMWrapperMap.h:
9867         (WebCore::IntrusiveDOMWrapperMap::set):
9868         * bindings/v8/V8DOMWindowShell.cpp:
9869         (WebCore::initializeV8IfNeeded):
9870         * bindings/v8/V8GCController.cpp:
9871         (WebCore):
9872         (WebCore::gcTree):
9873         (WebCore::V8GCController::newWrapperBorn):
9874         (WebCore::V8GCController::gcPrologue):
9875         (WebCore::V8GCController::minorGCPrologue):
9876         (WebCore::V8GCController::majorGCPrologue):
9877         (WebCore::V8GCController::gcEpilogue):
9878         (WebCore::V8GCController::minorGCEpilogue):
9879         (WebCore::V8GCController::majorGCEpilogue):
9880         * bindings/v8/V8GCController.h:
9881         (WebCore):
9882         (V8GCController):
9883         * bindings/v8/WorkerContextExecutionProxy.cpp:
9884         (WebCore::WorkerContextExecutionProxy::initIsolate):
9885         * dom/Element.cpp:
9886         (WebCore::Element::focus):
9887         * dom/Node.h:
9888         (WebCore::Node::inEden):
9889         (WebCore::Node::setEden):
9890         (Node):
9891
9892 2012-11-14  Kentaro Hara  <haraken@chromium.org>
9893
9894         [V8] Replace setDOMWrapper() + setJSWrapperForDOMObject() with createDOMWrapper()
9895         https://bugs.webkit.org/show_bug.cgi?id=101917
9896
9897         Reviewed by Adam Barth.
9898
9899         setJSWrapperForDOMObject() is always coupled with setDOMWrapper().
9900         We can replace setDOMWrapper() + setJSWrapperForDOMObject() with
9901         createDOMWrapper(). (c.f. CREATE_DOM_WRAPPER() in JSC)
9902
9903         No tests. No change in behavior.
9904
9905         * bindings/scripts/CodeGeneratorV8.pm:
9906         (GenerateConstructorCallback):
9907         (GenerateEventConstructorCallback):
9908         (GenerateNamedConstructorCallback):
9909         (GenerateToV8Converters):
9910         * bindings/v8/V8DOMWindowShell.cpp:
9911         (WebCore::V8DOMWindowShell::installDOMWindow):
9912         * bindings/v8/V8DOMWrapper.cpp:
9913         (WebCore::V8DOMWrapper::instantiateV8Object):
9914         * bindings/v8/V8DOMWrapper.h:
9915         (V8DOMWrapper):
9916         (WebCore::V8DOMWrapper::createDOMWrapper):
9917         * bindings/v8/WorkerContextExecutionProxy.cpp:
9918         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
9919         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
9920         (WebCore::V8ArrayBuffer::constructorCallback):
9921         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
9922         (WebCore::wrapArrayBufferView):
9923         (WebCore::constructWebGLArray):
9924         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
9925         (WebCore::V8DOMFormData::constructorCallback):
9926         * bindings/v8/custom/V8DataViewCustom.cpp:
9927         (WebCore::V8DataView::constructorCallback):
9928         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
9929         (WebCore::v8HTMLImageElementConstructorCallback):
9930         * bindings/v8/custom/V8IntentConstructor.cpp:
9931         (WebCore::V8Intent::constructorCallback):
9932         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
9933         (WebCore::V8MessageChannel::constructorCallback):
9934         * bindings/v8/custom/V8MutationObserverCustom.cpp:
9935         (WebCore::V8MutationObserver::constructorCallback):
9936         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
9937         (WebCore::V8WebKitPoint::constructorCallback):
9938         * bindings/v8/custom/V8WebSocketCustom.cpp:
9939         (WebCore::V8WebSocket::constructorCallback):
9940         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
9941         (WebCore::V8XMLHttpRequest::constructorCallback):
9942
9943 2012-11-14  Kent Tamura  <tkent@chromium.org>
9944
9945         Support for localization tests of calendar picker
9946         https://bugs.webkit.org/show_bug.cgi?id=102181
9947
9948         Reviewed by Kentaro Hara.
9949
9950         Introduce DateTimeChooserParameters::locale to inform locale to
9951         DateTimeChooser implementations. However we pass defaultLanguage
9952         unless tests calls internals.settings.
9953         setLangAttributeAwareFormControlUIEnabled(true) explicitly.
9954
9955         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-appearance-ru.html
9956
9957         * html/HTMLInputElement.cpp:
9958         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
9959         Set DateTimeChooserParameters::locale up.
9960         * platform/DateTimeChooser.h:
9961         (DateTimeChooserParameters): Add 'locale' member.
9962
9963 2012-11-14  Alexei Filippov  <alph@chromium.org>
9964
9965         Web Inspector: Show total memory in the NMI snapshot header
9966         https://bugs.webkit.org/show_bug.cgi?id=101922
9967
9968         Reviewed by Pavel Feldman.
9969
9970         * inspector/front-end/NativeMemorySnapshotView.js:
9971         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked.didReceiveMemorySnapshot):
9972         (WebInspector.NativeMemoryProfileType.prototype.buttonClicked):
9973
9974 2012-11-14  Jan Keromnes  <janx@linux.com>
9975
9976         Web Inspector: CodeMirrorTextEditor fails to scroll breakpoint into view after the first time
9977         https://bugs.webkit.org/show_bug.cgi?id=102142
9978
9979         Reviewed by Pavel Feldman.
9980
9981         Calling revealLine in highlightLine like in DefaultTextEditor does the trick.
9982
9983         * inspector/front-end/CodeMirrorTextEditor.js:
9984         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
9985
9986 2012-11-13  Kent Tamura  <tkent@chromium.org>
9987
9988         Use menulist-button instead of menulist for date/time input types
9989         https://bugs.webkit.org/show_bug.cgi?id=101886
9990
9991         Reviewed by Hajime Morita.
9992
9993         Both of Chromium-Android and iOS use -webkit-appearance:menulist-button,
9994         not menulist. We had better apply common one by default.
9995
9996         No new tests. Covered by fast/forms/*/*-appearance-*.html.
9997
9998         * css/html.css:
9999         (input[type="date"]): Switch menulist-button from menulist.
10000         (input[type="datetime"]): Ditto.
10001         (input[type="datetime-local"]): Ditto.
10002         (input[type="month"]): Ditto.
10003         (input[type="time"]): Ditto.
10004         (input[type="week"]): Ditto.
10005         (input::-webkit-date-and-time-value):
10006         Add top, right, bottom margins. The right margin is important when
10007         dir=rtl is specified.
10008         whitespace:pre is needed to align baseline in a case of empty values.
10009         * css/themeChromiumAndroid.css:
10010         Remove redundant style declaration.
10011         * css/themeWin.css:
10012         Remove padding adjustment for date/time input types. It is for
10013         textfields.
10014
10015 2012-11-13  Vincent Scheib  <scheib@chromium.org>
10016
10017         Remove RuntimeEnabledFeatures::isPointerLockEnabled.
10018         https://bugs.webkit.org/show_bug.cgi?id=102107
10019
10020         Reviewed by Adam Barth.
10021
10022         The runtime flag is always true now that the feature is enabled by default in Chromium.
10023
10024         * bindings/generic/RuntimeEnabledFeatures.cpp:
10025         (WebCore):
10026         * bindings/generic/RuntimeEnabledFeatures.h:
10027         (RuntimeEnabledFeatures):
10028         * dom/Document.idl:
10029         * dom/Element.idl:
10030         * dom/MouseEvent.idl:
10031
10032 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10033
10034         Web Inspector: JsDoc-annotate KeyboardShortcuts
10035         https://bugs.webkit.org/show_bug.cgi?id=101301
10036
10037         Reviewed by Pavel Feldman.
10038
10039         JsDoc-annotate KeyboardShortcuts to improve readability.
10040
10041         * inspector/front-end/AdvancedSearchController.js: Fix parameter type.
10042         * inspector/front-end/KeyboardShortcut.js: Add annotations.
10043         * inspector/front-end/Panel.js: Make event parameter typed.
10044         * inspector/front-end/inspector.js: Ditto.
10045
10046 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10047
10048         Web Inspector: Extract common interface for StatusBarButton and StatusBarCombo
10049         https://bugs.webkit.org/show_bug.cgi?id=101907
10050
10051         Reviewed by Pavel Feldman.
10052
10053         Status bar control element should have common interface for
10054         easier management.
10055         In this patch getter/setter for StatusBarButton "disabled" are replaced
10056         with regular functions "enabled"/"setEnabled"; added "setEnabled"
10057         to StatusBarCombo; added new base class StatusBarItem with
10058         method "setEnabled" and member "element".
10059
10060         * inspector/front-end/CPUProfileView.js: Adopted refactoring.
10061         * inspector/front-end/DockController.js: Ditto.
10062         * inspector/front-end/ScriptsPanel.js: Ditto.
10063         * inspector/front-end/TimelinePanel.js: Ditto.
10064         * inspector/front-end/inspector.js: Ditto.
10065         * inspector/front-end/StatusBarButton.js:
10066         (WebInspector.StatusBarItem): Added.
10067         (WebInspector.StatusBarButton): Replaced getter/setter with
10068         regular functions.
10069         (WebInspector.StatusBarComboBox.prototype.setEnabled): Added.
10070
10071 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
10072
10073         Web Inspector: Console: update tab/shift-tab shortcut description.
10074         https://bugs.webkit.org/show_bug.cgi?id=102175
10075
10076         Reviewed by Pavel Feldman.
10077
10078         For "Tab / Shift-Tab" it said "Next/previous suggestion".
10079         Actually, shift-tab to do nothing, and tab auto-completes common prefix.
10080
10081         * English.lproj/localizedStrings.js: Replaced string.
10082         * inspector/front-end/ConsoleView.js: Updated shortcut registration.
10083
10084 2012-11-13  Dana Jansens  <danakj@chromium.org>
10085
10086         [chromium] Pass showDebugBorders directly to WebLayerTreeSettings, don't use the GraphicsLayer border width setting.
10087         https://bugs.webkit.org/show_bug.cgi?id=102130
10088
10089         Reviewed by James Robinson.
10090
10091         The current method of setting debug borders on GraphicsLayers requires
10092         every GraphicsLayerClient to set the value on the layer(s) it
10093         represents. This skips the NonCompositedContentHost as well as any
10094         other clients other than RenderLayerBacking - including layers from the
10095         inspector.
10096
10097         Instead, pass the debug border setting directly to the
10098         WebLayerTreeSettings where the compositor can use the flag to enable
10099         borders on all layers globally.
10100
10101         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
10102         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
10103         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
10104         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
10105         (WebCore::GraphicsLayerChromium::setupContentsLayer):
10106         * platform/graphics/chromium/GraphicsLayerChromium.h:
10107         (GraphicsLayerChromium):
10108
10109 2012-11-13  Kunihiko Sakamoto  <ksakamoto@chromium.org>
10110
10111         Enable calendar picker for input types datetime/datetime-local
10112         https://bugs.webkit.org/show_bug.cgi?id=101889
10113
10114         Reviewed by Kent Tamura.
10115
10116         This adds calendar picker to <input type=datetime> and <input type=datetime-local>.
10117         When a user choose a date from calendar picker, year/month/day fields of the input
10118         element are updated and hour/minute/second fields are unchanged.
10119
10120         Tests: platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime-local.html
10121                platform/chromium/fast/forms/calendar-picker/calendar-picker-datetime.html
10122
10123         * Resources/pagepopups/calendarPicker.js: Day.parse accepts datetime string (just drops time part).
10124         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
10125         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue):
10126         If the given value is not valid for the element, try to parse it as a date string.
10127         * html/DateTimeInputType.cpp:
10128         (WebCore::DateTimeInputType::formatDateTimeFieldsState): DateTimeFieldsState::month() returns 1-12, not 0-11.
10129         * html/DateTimeLocalInputType.cpp:
10130         (WebCore::DateTimeLocalInputType::formatDateTimeFieldsState): Ditto.
10131         * html/shadow/DateTimeEditElement.cpp:
10132         (WebCore::DateTimeEditElement::setOnlyYearMonthDay): Added.
10133         (WebCore):
10134         * html/shadow/DateTimeEditElement.h:
10135         (DateTimeEditElement):
10136         * rendering/RenderThemeChromiumCommon.cpp:
10137         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker): Return true for datetime and datetimelocal too.
10138
10139 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10140
10141         Unreviewed, rolling out r134524.
10142         http://trac.webkit.org/changeset/134524
10143         https://bugs.webkit.org/show_bug.cgi?id=102177
10144
10145         "Chromiium build broken" (Requested by haraken on #webkit).
10146
10147         * WebCore.gyp/WebCore.gyp:
10148         * WebCore.gypi:
10149         * rendering/RenderThemeChromiumFontProvider.cpp: Removed.
10150         * rendering/RenderThemeChromiumFontProvider.h: Removed.
10151         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Removed.
10152         * rendering/RenderThemeChromiumFontProviderWin.cpp: Removed.
10153         * rendering/RenderThemeChromiumSkia.cpp:
10154         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
10155         (WebCore::RenderThemeChromiumSkia::systemFont):
10156         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize):
10157         * rendering/RenderThemeChromiumSkia.h:
10158         (RenderThemeChromiumSkia):
10159         * rendering/RenderThemeChromiumWin.cpp:
10160         (WebCore):
10161         (WebCore::getNonClientMetrics):
10162         (WebCore::systemFontSize):
10163         (WebCore::pointsToPixels):
10164         (WebCore::RenderThemeChromiumWin::systemFont):
10165         (WebCore::RenderThemeChromiumWin::setDefaultFontSize):
10166         * rendering/RenderThemeChromiumWin.h:
10167         (RenderThemeChromiumWin):
10168
10169 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10170
10171         Fix compile warning [-Wsign-compare]
10172         https://bugs.webkit.org/show_bug.cgi?id=101458
10173
10174         Reviewed by Alexey Proskuryakov.
10175
10176         Currently, lossy check has been done by comparing file size(posix signed integral value) with conversioned(standard c++ unsigned integral value).
10177         However, it leads -Wsign-compare compile warning.
10178         Therefore, this patch assigns the file size to the biggest possible unsigned variable, then does the lossy check.
10179
10180         * platform/posix/SharedBufferPOSIX.cpp:
10181         (WebCore::SharedBuffer::createWithContentsOfFile):
10182
10183 2012-11-13  Keishi Hattori  <keishi@webkit.org>
10184
10185         Enable datalist UI for input types week and month
10186         https://bugs.webkit.org/show_bug.cgi?id=102041
10187
10188         Reviewed by Kent Tamura.
10189
10190         Enabling datalist UI for input types week and month.
10191
10192         No new tests. Tests will be added later in Bug 102039 and Bug 102040.
10193
10194         * rendering/RenderThemeChromiumCommon.cpp:
10195         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add month and week to the list.
10196
10197 2012-11-13  Eberhard Graether  <egraether@google.com>
10198
10199         checkbox to toggle FPS counter in the inspector's settings
10200         https://bugs.webkit.org/show_bug.cgi?id=99660
10201
10202         Reviewed by Pavel Feldman.
10203
10204         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
10205
10206         No new tests.
10207
10208         * English.lproj/localizedStrings.js:
10209         * inspector/Inspector.json:
10210         * inspector/InspectorClient.h:
10211         (WebCore::InspectorClient::canShowFPSCounter):
10212         (WebCore::InspectorClient::setShowFPSCounter):
10213         (InspectorClient):
10214         * inspector/InspectorPageAgent.cpp:
10215         (PageAgentState):
10216         (WebCore::InspectorPageAgent::enable):
10217         (WebCore::InspectorPageAgent::disable):
10218         (WebCore::InspectorPageAgent::canShowFPSCounter):
10219         (WebCore):
10220         (WebCore::InspectorPageAgent::setShowFPSCounter):
10221         * inspector/InspectorPageAgent.h:
10222         * inspector/front-end/Settings.js:
10223         * inspector/front-end/SettingsScreen.js:
10224         (WebInspector.GenericSettingsTab):
10225         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
10226         * inspector/front-end/inspector.js:
10227         (WebInspector.doLoadedDone):
10228
10229 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
10230
10231         Collect necessary features for SelectRuleFeatureSet
10232         https://bugs.webkit.org/show_bug.cgi?id=102160
10233
10234         Reviewed by Dimitri Glazkov.
10235
10236         When pseudo class is changed, we might have to invalidate distribution. To determine whether we should invalidate
10237         distribution, we would like to collect RuleFeature from select attributes.
10238
10239         According to ShadowDOM spec, we have to collect the following pseudo classes: checked, enabled, disabled,
10240         indeterminate, link, target, and visited. We collect them in this patch.
10241
10242         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
10243
10244         * html/shadow/SelectRuleFeatureSet.cpp:
10245         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Uses int as bitset so that we can use bit operator.
10246         (WebCore::SelectRuleFeatureSet::add):
10247         (WebCore::SelectRuleFeatureSet::clear):
10248         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector): Collects necessary features from CSSSelector.
10249         * html/shadow/SelectRuleFeatureSet.h:
10250         (WebCore::SelectRuleFeatureSet::hasSelectorForChecked):
10251         (WebCore::SelectRuleFeatureSet::hasSelectorForEnabled):
10252         (WebCore::SelectRuleFeatureSet::hasSelectorForDisabled):
10253         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
10254         (WebCore::SelectRuleFeatureSet::hasSelectorForLink):
10255         (WebCore::SelectRuleFeatureSet::hasSelectorForTarget):
10256         (WebCore::SelectRuleFeatureSet::hasSelectorForVisited):
10257         (SelectRuleFeatureSet):
10258         (WebCore::SelectRuleFeatureSet::setSelectRuleFeature):
10259         (WebCore::SelectRuleFeatureSet::hasSelectorFor):
10260         * testing/Internals.cpp:
10261         (WebCore::Internals::hasSelectorForPseudoClassInShadow):
10262         (WebCore):
10263         * testing/Internals.h:
10264         (Internals):
10265         * testing/Internals.idl:
10266
10267 2012-11-13  Andreas Kling  <kling@webkit.org>
10268
10269         Move inline style logic from ElementAttributeData to StyledElement.
10270         <http://webkit.org/b/102120>
10271
10272         Reviewed by Antti Koivisto.
10273
10274         Move all the logic dealing with element inline style from ElementAttributeData to StyledElement.
10275         No difference in behavior, just making ElementAttributeData dumber.
10276
10277         * css/StylePropertySet.cpp:
10278         * css/StylePropertySet.h:
10279         (WebCore::StylePropertySet::hasCSSOMWrapper):
10280         (WebCore::StylePropertySet::cssStyleDeclaration):
10281
10282             Added as complements to ensureCSSStyleDeclaration() for the case where we don't want
10283             to instantiate a CSSOM wrapper unnecessarily.
10284
10285         * dom/StyledElement.h:
10286         (WebCore::StyledElement::inlineStyle):
10287         * dom/ElementAttributeData.cpp:
10288         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
10289         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
10290         (WebCore::ElementAttributeData::reportMemoryUsage):
10291         * dom/ElementAttributeData.h:
10292         (WebCore::ElementAttributeData::inlineStyle):
10293         (ElementAttributeData):
10294
10295             Renamed m_inlineStyleDecl to m_inlineStyle. Finally.
10296
10297         * dom/StyledElement.cpp:
10298         (WebCore::StyledElement::~StyledElement):
10299
10300             Detach the CSSOM wrapper from the inline style if there is one.
10301
10302         (WebCore::StyledElement::ensureMutableInlineStyle):
10303         (WebCore::StyledElement::style):
10304
10305             Renamed ensureInlineStyle() to ensureMutableInlineStyle() since that's what it
10306             actually does. Update call sites accordingly.
10307
10308         (WebCore::StyledElement::inlineStyleCSSOMWrapper):
10309
10310             Added helper to get the CSSOM wrapper for the element's inline style if there is one.
10311
10312         (WebCore::StyledElement::styleAttributeChanged):
10313
10314             Do the work to parse/update/replace the inline style attribute here instead of
10315             in an ElementAttributeData method.
10316
10317         (WebCore::StyledElement::setInlineStyleProperty):
10318         (WebCore::StyledElement::removeInlineStyleProperty):
10319         (WebCore::StyledElement::removeAllInlineStyleProperties):
10320         * editing/ApplyStyleCommand.cpp:
10321         (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
10322         (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
10323         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
10324         * editing/ReplaceSelectionCommand.cpp:
10325         (WebCore::ReplaceSelectionCommand::handleStyleSpans):
10326         * html/canvas/CanvasStyle.cpp:
10327         (WebCore::currentColor):
10328
10329             s/ensureInlineStyle/ensureMutableInlineStyle/
10330
10331 2012-11-13  Li Yin  <li.yin@intel.com>
10332
10333         fast/forms/file/input-file-write-files.html should cover correct setting value
10334         https://bugs.webkit.org/show_bug.cgi?id=100085
10335
10336         Reviewed by Kentaro Hara.
10337
10338         Fix the GObject and Objective C bindings comparibility issue. Preserving existing
10339         behavior for those may be important in idl.
10340
10341         No new tests, because fast/forms/file/input-file-value.html has covered it.
10342
10343         * html/HTMLInputElement.idl:
10344
10345 2012-11-13  KyungTae Kim  <ktf.kim@samsung.com>
10346
10347         [EFL] Fix build warning in NetworkStateNotifierEfl.cpp
10348         https://bugs.webkit.org/show_bug.cgi?id=102061
10349
10350         Reviewed by Gyuyoung Kim.
10351
10352         The second argument for NLMSG_OK needs to be unsigned to avoid the -Wsign-compare warning.
10353
10354         * platform/network/efl/NetworkStateNotifierEfl.cpp:
10355         (WebCore::readSocketCallback):
10356
10357 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
10358
10359         Don't mark scrolling contents as dirty if RenderLayerBacking is going away
10360         https://bugs.webkit.org/show_bug.cgi?id=101947
10361
10362         Reviewed by Simon Fraser.
10363
10364         When a scrolling contents graphics layer is created or destroyed, the
10365         associated graphics layer is marked as needing display because some of
10366         the painted content may have migrated between the primary graphics layer
10367         and the scrolling layer.
10368
10369         This causes a problem when the RenderLayerBacking is being destroyed,
10370         because setNeedsDisplay() needs to check from the compositor whether to
10371         track repaints or not. If the RenderLayerBacking is being destroyed, the
10372         value returned by compositor() is garbage and this causes a crash.
10373
10374         This patch fixes the problem by making RenderLayer::compositor() return a null
10375         pointer when the renderer no longer has a view.
10376
10377         Covered by existing layout tests in compositing/overflow/.
10378
10379         * rendering/RenderLayer.cpp:
10380         (WebCore::RenderLayer::compositor):
10381
10382 2012-11-13  Erik Arvidsson  <arv@chromium.org>
10383
10384         Update DOMException name: InvalidCharacterError
10385         https://bugs.webkit.org/show_bug.cgi?id=102128
10386
10387         Reviewed by Darin Adler.
10388
10389         Patch 5 of 25 to update DOMException name to match the spec and Firefox.
10390
10391         Updated existing tests.
10392
10393         * dom/DOMCoreException.cpp:
10394
10395 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10396
10397         IndexedDB: Run multiple tasks per transaction tick
10398         https://bugs.webkit.org/show_bug.cgi?id=97738
10399
10400         Reviewed by Tony Chang.
10401
10402         Process multiple tasks from the pending queue(s) when the timer fires. The
10403         task may initiate new tasks that change which queue is active (e.g. indexing
10404         operations) so the loop must re-check each tick which queue to use.
10405
10406         In DumpRenderTree, time to make 20k puts/20k gets dropped from 3.2s to 2.0s (-37%);
10407         in Chromium's content_shell, the time dropped from 8.1s to 4.6s (-42%).
10408
10409         No new tests - just perf improvements, covered by (nearly) all existing IDB tests.
10410
10411         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
10412         (WebCore::IDBTransactionBackendImpl::abort): Use takeFirst() to clean up code.
10413         (WebCore::IDBTransactionBackendImpl::taskTimerFired): Process as many tasks as are available.
10414
10415 2012-11-13  Elliott Sprehn  <esprehn@chromium.org>
10416
10417         Disable frame loading instead of throwing exceptions on subtree modifications in ChildFrameDisconnector
10418         https://bugs.webkit.org/show_bug.cgi?id=102012
10419
10420         Reviewed by Ojan Vafai.
10421
10422         Previously if you modified the subtree that was being removed from a
10423         removeChild from inside an unload handler on an <iframe> inside the
10424         subtree you'd get an exception which is wrong. Instead we just need to
10425         disable all frame loading there.
10426
10427         This works because either the subtree will be removed and the frame never
10428         loading doesn't matter, or some section of the subtree that contains the
10429         frame will be moved to another part of the document which will cause the
10430         frame to load when it's inserted there.
10431
10432         I also added a check for <object> elements. It doesn't seem this is actually
10433         reachable in the existing code, but I'm not entirely sure since the frame
10434         loading and object/plugin handling is very confusing.
10435
10436         A better fix could be to repeatedly walk the subtree until all frames
10437         were disconnected or some iteration limit was hit and then force all leftover
10438         subframes to disconnect without firing unload handlers but this is such an
10439         edge case I don't think the complexity is necessary.
10440
10441         Test: fast/frames/modifications-in-subtree-unload.html
10442
10443         * dom/ContainerNodeAlgorithms.h:
10444         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
10445         (WebCore::ChildFrameDisconnector::~ChildFrameDisconnector):
10446         (ChildFrameDisconnector):
10447         (WebCore::ChildFrameDisconnector::disconnect):
10448         * dom/Node.cpp:
10449         (WebCore::checkAcceptChild): Removed exception.
10450         * html/HTMLFrameElementBase.cpp:
10451         (WebCore::HTMLFrameElementBase::didNotifySubtreeInsertions): Check canLoadFrame().
10452         * html/HTMLFrameOwnerElement.h:
10453         (SubframeLoadingDisabler):
10454         (WebCore::SubframeLoadingDisabler::SubframeLoadingDisabler):
10455         (WebCore::SubframeLoadingDisabler::~SubframeLoadingDisabler):
10456         (WebCore::SubframeLoadingDisabler::canLoadFrame):
10457           Returns true if frames can be loaded in the subtree.
10458         (WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):
10459         * html/HTMLObjectElement.cpp:
10460         (WebCore::HTMLObjectElement::updateWidget):
10461           Check canLoadFrame(). I think this case is impossible, but it's better
10462           to be safe than sorry later.
10463
10464 2012-11-13  Joshua Bell  <jsbell@chromium.org>
10465
10466         [V8] Add missing ENABLE(SVG) test in header
10467         https://bugs.webkit.org/show_bug.cgi?id=102143
10468
10469         Reviewed by Kentaro Hara.
10470
10471         Need to wrap the #include of a header that's only conditionally generated.
10472
10473         Fixes build error if compiling e.g. w/ GYP_DEFINES="enable_svg=0"
10474
10475         * bindings/v8/custom/V8ElementCustom.cpp:
10476
10477 2012-11-13  Jon Lee  <jonlee@apple.com>
10478
10479         Automatically run small plugins
10480         https://bugs.webkit.org/show_bug.cgi?id=102148
10481         <rdar://problem/12695560>
10482
10483         Reviewed by Darin Adler.
10484
10485         * rendering/RenderEmbeddedObject.h: Promote layout() to protected.
10486         * rendering/RenderSnapshottedPlugIn.cpp: Add constants for threshold size for plugins that will auto-start.
10487         (WebCore::RenderSnapshottedPlugIn::layout): After layout, obtain the width and height of the element.
10488         If either dimension is 0, or the overall size of the plugin is smaller that the threshold size, move the
10489         display state to Playing. Assuming we will always layout before first paint, changing the state here
10490         should be safe.
10491         * rendering/RenderSnapshottedPlugIn.h:
10492
10493 2012-11-13  Kenneth Russell  <kbr@google.com>
10494
10495         Notify embedder of lost contexts and allow overriding of WebGL support
10496         https://bugs.webkit.org/show_bug.cgi?id=101826
10497
10498         Reviewed by Adam Barth.
10499
10500         Add hooks notifying the embedder when OpenGL contexts are lost and
10501         allowing overriding of WebGL support on a per-frame basis.
10502
10503         No tests yet; don't know how to test this solely within WebKit.
10504         Currently developing tests in the Chromium port exercising the
10505         notifications end-to-end. Once those are in place, I'm prepared to
10506         investigate adding tests for all ports.
10507
10508         * html/canvas/WebGLRenderingContext.cpp:
10509         (WebCore):
10510         (WebCore::WebGLRenderingContext::create):
10511           Check whether embedder vetoes creation of new WebGL contexts.
10512         (WebCore::WebGLRenderingContext::loseContextImpl):
10513           Notify embedder that context was lost.
10514         (WebCore::WebGLRenderingContext::maybeRestoreContext):
10515           Check whether embedder vetoes restoration of existing WebGL contexts.
10516         * loader/FrameLoaderClient.h:
10517         (FrameLoaderClient):
10518         (WebCore::FrameLoaderClient::allowWebGL):
10519         (WebCore::FrameLoaderClient::didLoseWebGLContext):
10520           Hooks notifying embedder of lost contexts and asking permission to run WebGL.
10521
10522 2012-11-13  Scott Violet  <sky@chromium.org>
10523
10524         [Chromium] Refactor theme font lookup into a factory
10525         https://bugs.webkit.org/show_bug.cgi?id=101949
10526
10527         Reviewed by Tony Chang.
10528
10529         This will ultimately allow us to use what is currently in RenderThemeChromiumLinux on windows.
10530
10531         No new tests. Refactoring only.
10532
10533         * WebCore.gyp/WebCore.gyp:
10534         * WebCore.gypi:
10535         * rendering/RenderThemeChromiumFontProvider.cpp: Added.
10536         (WebCore):
10537         (WebCore::RenderThemeChromiumFontProvider::defaultGUIFont): Moved into RenderThemeFontProvider.
10538         * rendering/RenderThemeChromiumFontProvider.h: Added.
10539         (WTF):
10540         (WebCore):
10541         (RenderThemeChromiumFontProvider): This is the font related methods.
10542         * rendering/RenderThemeChromiumFontProviderLinux.cpp: Added.
10543         (WebCore):
10544         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): What was in RenderThemeChromiumSkia::setDefaultFontSize.
10545         (WebCore::RenderThemeChromiumFontProvider::systemFont): What was in RenderThemeChromiumSkia::systemFont.
10546         * rendering/RenderThemeChromiumFontProviderWin.cpp: Added.
10547         (WebCore):
10548         (WebCore::pointsToPixels): Moved from RenderThemeChromiumWin.
10549         (WebCore::getNonClientMetrics): Moved from RenderThemeChromiumWin.
10550         (WebCore::systemFontSize): Moved from RenderThemeChromiumWin.
10551         (WebCore::RenderThemeChromiumFontProvider::systemFont): Moved from RenderThemeChromiumWin.
10552         (WebCore::RenderThemeChromiumFontProvider::setDefaultFontSize): Moved from RenderThemeChromiumWin.
10553         * rendering/RenderThemeChromiumSkia.cpp:
10554         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia): Moved into RenderThemeFontProvider.
10555         (WebCore::RenderThemeChromiumSkia::systemFont): Calls to RenderThemeChromiumFontProvider.
10556         (WebCore::RenderThemeChromiumSkia::setDefaultFontSize): Calls to RenderThemeChromiumFontProvider.
10557         * rendering/RenderThemeChromiumSkia.h:
10558         (RenderThemeChromiumSkia): Moves defaultFontSize into RenderThemeChromiumFontProvider.
10559         * rendering/RenderThemeChromiumWin.cpp: Moves font code into RenderThemeFontProviderWin.
10560         (WebCore):
10561         * rendering/RenderThemeChromiumWin.h: Removed overriden methods now handled by RenderThemeChromiumSkia.
10562         (RenderThemeChromiumWin):
10563
10564 2012-11-13  Alec Flett  <alecflett@chromium.org>
10565
10566         Add DOMRequestState to maintain world/ScriptExecutionContext state
10567         https://bugs.webkit.org/show_bug.cgi?id=102102
10568
10569         Reviewed by Adam Barth.
10570
10571         Introduce DOMRequestState, and convert IndexedDB over.
10572
10573         No new tests, this is an abstraction layer for existing code.
10574
10575         * Modules/indexeddb/IDBRequest.cpp:
10576         (WebCore::IDBRequest::IDBRequest):
10577         (WebCore::IDBRequest::onSuccess):
10578         (WebCore::IDBRequest::dispatchEvent):
10579         * Modules/indexeddb/IDBRequest.h:
10580         (IDBRequest):
10581         * WebCore.gypi:
10582         * bindings/v8/DOMRequestState.h: Added.
10583         (WebCore):
10584         (DOMRequestState):
10585         (WebCore::DOMRequestState::DOMRequestState):
10586         (Scope):
10587         (WebCore::DOMRequestState::Scope::Scope):
10588         (WebCore::DOMRequestState::scope):
10589
10590 2012-11-13  Robert Sesek  <rsesek@chromium.org>
10591
10592         Sever Chromium's dependence on WebKitSystemInterface media control drawing functions in RenderThemeMac
10593         https://bugs.webkit.org/show_bug.cgi?id=101634
10594
10595         Reviewed by Adam Barth.
10596
10597         This splits out the common methods between RenderThemeMac and RenderThemeChromiumMac
10598         into RenderThemeMacShared.
10599
10600         No new tests, just refactoring.
10601
10602         * WebCore.gyp/WebCore.gyp: Remove RenderThemeMac.mm from platform/ sources list, since it's part of rendering/
10603         * WebCore.gypi: Add RenderThemeMacShared.{h,mm}
10604         * WebCore.xcodeproj/project.pbxproj: Add RenderThemeMacShared.{h,mm}
10605         * rendering/RenderThemeChromiumMac.h:
10606         * rendering/RenderThemeChromiumMac.mm:
10607         (WebCore::RenderThemeChromiumMac::popupInternalPaddingLeft):
10608         (WebCore::RenderThemeChromiumMac::popupInternalPaddingRight):
10609         (WebCore::RenderThemeChromiumMac::extraDefaultStyleSheet):
10610         * rendering/RenderThemeMac.h:
10611         (RenderThemeMac):
10612         * rendering/RenderThemeMac.mm:
10613         (WebCore):
10614         (WebCore::RenderTheme::themeForPage):
10615         (WebCore::RenderThemeMac::create):
10616         (WebCore::RenderThemeMac::RenderThemeMac):
10617         (WebCore::RenderThemeMac::~RenderThemeMac):
10618         (WebCore::RenderThemeMac::documentViewFor):
10619         (WebCore::mediaControllerTheme):
10620         (WebCore::RenderThemeMac::paintMediaSliderTrack):
10621         (WebCore::RenderThemeMac::paintMediaRewindButton):
10622         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
10623         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
10624         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
10625         (WebCore::RenderThemeMac::extraMediaControlsStyleSheet):
10626         (WebCore::RenderThemeMac::extraFullScreenStyleSheet):
10627         * rendering/RenderThemeMacShared.h: Copied from Source/WebCore/rendering/RenderThemeMac.h.
10628         (WebCore):
10629         (RenderThemeMacShared):
10630         (WebCore::RenderThemeMacShared::supportsControlTints):
10631         (WebCore::RenderThemeMacShared::scrollbarControlSizeForPart):
10632         (WebCore::RenderThemeMacShared::supportsSelectionForegroundColors):
10633         (WebCore::RenderThemeMacShared::supportsClosedCaptioning):
10634         (WebCore::RenderThemeMacShared::updateActiveState):
10635         * rendering/RenderThemeMacShared.mm: Copied from Source/WebCore/rendering/RenderThemeMac.mm.
10636         (-[WebCoreRenderThemeNotificationObserver initWithTheme:WebCore::]):
10637         (-[WebCoreRenderThemeNotificationObserver systemColorsDidChange:]):
10638         (-[WebCoreTextFieldCell _coreUIDrawOptionsWithFrame:inView:includeFocus:]):
10639         (WebCore):
10640         (WebCore::RenderThemeMacShared::RenderThemeMacShared):
10641         (WebCore::RenderThemeMacShared::~RenderThemeMacShared):
10642         (WebCore::RenderThemeMacShared::platformActiveSelectionBackgroundColor):
10643         (WebCore::RenderThemeMacShared::platformInactiveSelectionBackgroundColor):
10644         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionBackgroundColor):
10645         (WebCore::RenderThemeMacShared::platformActiveListBoxSelectionForegroundColor):
10646         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionForegroundColor):
10647         (WebCore::RenderThemeMacShared::platformFocusRingColor):
10648         (WebCore::RenderThemeMacShared::platformInactiveListBoxSelectionBackgroundColor):
10649         (WebCore::toFontWeight):
10650         (WebCore::RenderThemeMacShared::systemFont):
10651         (WebCore::convertNSColorToColor):
10652         (WebCore::menuBackgroundColor):
10653         (WebCore::RenderThemeMacShared::platformColorsDidChange):
10654         (WebCore::RenderThemeMacShared::systemColor):
10655         (WebCore::RenderThemeMacShared::usesTestModeFocusRingColor):
10656         (WebCore::RenderThemeMacShared::isControlStyled):
10657         (WebCore::RenderThemeMacShared::adjustRepaintRect):
10658         (WebCore::RenderThemeMacShared::inflateRect):
10659         (WebCore::RenderThemeMacShared::convertToPaintingRect):
10660         (WebCore::RenderThemeMacShared::updateCheckedState):
10661         (WebCore::RenderThemeMacShared::updateEnabledState):
10662         (WebCore::RenderThemeMacShared::updateFocusedState):
10663         (WebCore::RenderThemeMacShared::updatePressedState):
10664         (WebCore::RenderThemeMacShared::controlSupportsTints):
10665         (WebCore::RenderThemeMacShared::controlSizeForFont):
10666         (WebCore::RenderThemeMacShared::setControlSize):
10667         (WebCore::RenderThemeMacShared::sizeForFont):
10668         (WebCore::RenderThemeMacShared::sizeForSystemFont):
10669         (WebCore::RenderThemeMacShared::setSizeFromFont):
10670         (WebCore::RenderThemeMacShared::setFontFromControlSize):
10671         (WebCore::RenderThemeMacShared::controlSizeForSystemFont):
10672         (WebCore::RenderThemeMacShared::paintTextField):
10673         (WebCore::RenderThemeMacShared::adjustTextFieldStyle):
10674         (WebCore::RenderThemeMacShared::paintCapsLockIndicator):
10675         (WebCore::RenderThemeMacShared::paintTextArea):
10676         (WebCore::RenderThemeMacShared::adjustTextAreaStyle):
10677         (WebCore::RenderThemeMacShared::popupButtonMargins):
10678         (WebCore::RenderThemeMacShared::popupButtonSizes):
10679         (WebCore::RenderThemeMacShared::popupButtonPadding):
10680         (WebCore::RenderThemeMacShared::paintMenuList):
10681         (WebCore::RenderThemeMacShared::meterSizeForBounds):
10682         (WebCore::RenderThemeMacShared::paintMeter):
10683         (WebCore::RenderThemeMacShared::supportsMeter):
10684         (WebCore::RenderThemeMacShared::levelIndicatorStyleFor):
10685         (WebCore::RenderThemeMacShared::levelIndicatorFor):
10686         (WebCore::RenderThemeMacShared::progressBarSizes):
10687         (WebCore::RenderThemeMacShared::progressBarMargins):
10688         (WebCore::RenderThemeMacShared::minimumProgressBarHeight):
10689         (WebCore::RenderThemeMacShared::animationRepeatIntervalForProgressBar):
10690         (WebCore::RenderThemeMacShared::animationDurationForProgressBar):
10691         (WebCore::RenderThemeMacShared::adjustProgressBarStyle):
10692         (WebCore::RenderThemeMacShared::paintProgressBar):
10693         (WebCore::TopGradientInterpolate):
10694         (WebCore::BottomGradientInterpolate):
10695         (WebCore::MainGradientInterpolate):
10696         (WebCore::TrackGradientInterpolate):
10697         (WebCore::RenderThemeMacShared::paintMenuListButtonGradients):
10698         (WebCore::RenderThemeMacShared::paintMenuListButton):
10699         (WebCore::menuListButtonSizes):
10700         (WebCore::RenderThemeMacShared::adjustMenuListStyle):
10701         (WebCore::RenderThemeMacShared::popupInternalPaddingLeft):
10702         (WebCore::RenderThemeMacShared::popupInternalPaddingRight):
10703         (WebCore::RenderThemeMacShared::popupInternalPaddingTop):
10704         (WebCore::RenderThemeMacShared::popupInternalPaddingBottom):
10705         (WebCore::RenderThemeMacShared::adjustMenuListButtonStyle):
10706         (WebCore::RenderThemeMacShared::setPopupButtonCellState):
10707         (WebCore::RenderThemeMacShared::menuListSizes):
10708         (WebCore::RenderThemeMacShared::minimumMenuListSize):
10709         (WebCore::RenderThemeMacShared::adjustSliderTrackStyle):
10710         (WebCore::RenderThemeMacShared::paintSliderTrack):
10711         (WebCore::RenderThemeMacShared::adjustSliderThumbStyle):
10712         (WebCore::RenderThemeMacShared::paintSliderThumb):
10713         (WebCore::RenderThemeMacShared::paintSearchField):
10714         (WebCore::RenderThemeMacShared::setSearchCellState):
10715         (WebCore::RenderThemeMacShared::searchFieldSizes):
10716         (WebCore::RenderThemeMacShared::setSearchFieldSize):
10717         (WebCore::RenderThemeMacShared::adjustSearchFieldStyle):
10718         (WebCore::RenderThemeMacShared::paintSearchFieldCancelButton):
10719         (WebCore::RenderThemeMacShared::cancelButtonSizes):
10720         (WebCore::RenderThemeMacShared::adjustSearchFieldCancelButtonStyle):
10721         (WebCore::RenderThemeMacShared::resultsButtonSizes):
10722         (WebCore::RenderThemeMacShared::adjustSearchFieldDecorationStyle):
10723         (WebCore::RenderThemeMacShared::paintSearchFieldDecoration):
10724         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsDecorationStyle):
10725         (WebCore::RenderThemeMacShared::paintSearchFieldResultsDecoration):
10726         (WebCore::RenderThemeMacShared::adjustSearchFieldResultsButtonStyle):
10727         (WebCore::RenderThemeMacShared::paintSearchFieldResultsButton):
10728         (WebCore::RenderThemeMacShared::sliderTickSize):
10729         (WebCore::RenderThemeMacShared::sliderTickOffsetFromTrackCenter):
10730         (WebCore::RenderThemeMacShared::adjustSliderThumbSize):
10731         (WebCore::RenderThemeMacShared::shouldShowPlaceholderWhenFocused):
10732         (WebCore::RenderThemeMacShared::popupButton):
10733         (WebCore::RenderThemeMacShared::search):
10734         (WebCore::RenderThemeMacShared::searchMenuTemplate):
10735         (WebCore::RenderThemeMacShared::sliderThumbHorizontal):
10736         (WebCore::RenderThemeMacShared::sliderThumbVertical):
10737         (WebCore::RenderThemeMacShared::textField):
10738         (WebCore::RenderThemeMacShared::fileListNameForWidth):
10739         (WebCore::RenderThemeMacShared::paintPlugInSnapshotOverlay):
10740
10741 2012-11-13  Tab Atkins  <jackalmage@gmail.com>
10742
10743         CSS @charset parsing is too loose, doesn't match other browsers
10744         https://bugs.webkit.org/show_bug.cgi?id=101527
10745
10746         Reviewed by Alexey Proskuryakov.
10747
10748         Per <https://www.w3.org/Bugs/Public/show_bug.cgi?id=19882#attach_1244>,
10749         IE and FF have changed to be strict about @charset parsing,
10750         as the CSS 2.1 spec requires.
10751         Since @charset use is very uncommon anyway,
10752         we should match the new behavior and the spec for platform consistency.
10753
10754         Test: fast/encoding/css-charset-evil/css-charset-evil.html
10755
10756         * loader/TextResourceDecoder.cpp:
10757         (WebCore::bytesEqual):
10758         (WebCore::TextResourceDecoder::checkForCSSCharset):
10759
10760 2012-11-13  Kenichi Ishibashi  <bashi@chromium.org>
10761
10762         [WebSocket] send() and close() should not throw an exception for an unpaired surrogate but use the replacement character
10763         https://bugs.webkit.org/show_bug.cgi?id=101569
10764
10765         Reviewed by Alexey Proskuryakov.
10766
10767         Replace unpaired surrogates with replacing character (U+FFFD) when
10768         encoding text messages and close reasons. This change is aimed at
10769         following the changes on the WebSocket API specification.
10770
10771         Test: http/tests/websocket/tests/hybi/close-reason-too-long.html
10772
10773         * Modules/websockets/WebSocket.cpp:
10774         (WebCore::WebSocket::close):
10775         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10776         text message. Remove invalid utf-8 check.
10777         * Modules/websockets/WebSocketChannel.cpp:
10778         (WebCore::WebSocketChannel::send):
10779         Use String::StrictConversionReplacingUnpairedSurrogatesWithFFFD mode to encode
10780         close reason. Remove invalid utf-8 check.
10781
10782 2012-11-13  Christophe Dumez  <christophe.dumez@intel.com>
10783
10784         Make HTMLLegendElement.form behave according to specification
10785         https://bugs.webkit.org/show_bug.cgi?id=101044
10786
10787         Reviewed by Kent Tamura.
10788
10789         According to the HTML5 specification (http://dev.w3.org/html5/spec/single-page.html#dom-legend-form),
10790         The form IDL attribute's behavior depends on whether the legend element is in a fieldset element or
10791         not. If the legend has a fieldset element as its parent, then the form IDL attribute must return the
10792         same value as the form IDL attribute on that fieldset element. Otherwise, it must return null.
10793
10794         This patch makes WebKit behaves according to specification (and Firefox). Previously, legend.form was
10795         not returning null if the element was not inside a fieldset. Also, legend.form did not necessarily
10796         return the same value as the parent fieldset's form attribute.
10797
10798         Test: fast/forms/legend/legend-form.html
10799
10800         * html/HTMLLegendElement.cpp:
10801         (WebCore):
10802         (WebCore::HTMLLegendElement::virtualForm):
10803         * html/HTMLLegendElement.h:
10804         (HTMLLegendElement):
10805
10806 2012-11-13  Mark Lam  <mark.lam@apple.com>
10807
10808         Make an assertion in JSEventListener::jsFunction() more useful.
10809         https://bugs.webkit.org/show_bug.cgi?id=101985.
10810
10811         Reviewed by Geoffrey Garen.
10812
10813         The assertion was weakened in r134495. This strengthens it again.
10814
10815         No new tests.
10816
10817         * bindings/js/JSEventListener.h:
10818         (WebCore::JSEventListener::jsFunction):
10819
10820 2012-11-13  Dean Jackson  <dino@apple.com>
10821
10822         Support list of tracks in caption media controls
10823         https://bugs.webkit.org/show_bug.cgi?id=101669
10824
10825         Reviewed by Eric Carlson.
10826
10827         Attempt four of commit. The first two times caused build failures on Chromium. The third time
10828         crashed the Windows test bot. It's also been rebased since r134488.
10829
10830         Add some new elements to the media control shadow DOM that display the list of available
10831         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
10832         where it is given a very basic design. At the moment only the list of available tracks
10833         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
10834
10835         No new tests - this doesn't expose any testable surface.
10836
10837         * css/mediaControls.css: Added default rules that hide the new elements.
10838         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
10839         * html/shadow/MediaControlElements.cpp:
10840         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
10841         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
10842         (WebCore::MediaControlClosedCaptionsContainerElement::create):
10843         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
10844         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
10845         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
10846         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
10847         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
10848         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
10849         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
10850         * html/shadow/MediaControlElements.h:
10851         (MediaControlElement):
10852         (MediaControlToggleClosedCaptionsButtonElement):
10853         (MediaControlClosedCaptionsContainerElement):
10854         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
10855         * html/shadow/MediaControlsApple.cpp:
10856         (WebCore::MediaControlsApple::MediaControlsApple):
10857         (WebCore::MediaControlsApple::create): New track container and list elements created.
10858         (WebCore::MediaControlsApple::setMediaController): Hook up the new elements to the controller..
10859         (WebCore::MediaControlsApple::hide):
10860         (WebCore::MediaControlsApple::makeTransparent):
10861         (WebCore::MediaControlsApple::reset):
10862         (WebCore::MediaControlsApple::reportedError):
10863         (WebCore::MediaControlsApple::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
10864         (WebCore):
10865         * html/shadow/MediaControlsApple.h:
10866         (MediaControlsApple):
10867         * html/shadow/MediaControlsChromium.cpp:
10868         (WebCore::MediaControlsChromium::initializeControls): Pass in the controls as a parameter.
10869         * html/shadow/MediaControls.h:
10870         (MediaControls):
10871         * platform/Language.cpp:
10872         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
10873         * platform/Language.h:
10874         (WebCore):
10875         * rendering/RenderMediaControls.cpp:
10876         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
10877         * rendering/RenderMediaControlsChromium.cpp:
10878         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
10879
10880 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
10881
10882         Unreviewed, rolling out r134377.
10883         http://trac.webkit.org/changeset/134377
10884         https://bugs.webkit.org/show_bug.cgi?id=101133
10885
10886         Caused a mysterious Android Clang build failure, needs
10887         investigation before landing again.
10888
10889         * css/html.css:
10890         (input::-webkit-textfield-decoration-container):
10891         * html/TextFieldInputType.cpp:
10892         (WebCore::TextFieldInputType::attach):
10893
10894 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
10895
10896         Unreviewed, rolling out r134482.
10897         http://trac.webkit.org/changeset/134482
10898         https://bugs.webkit.org/show_bug.cgi?id=102140
10899
10900         The patch causes fast/regions/moved-content-node-crash.html to
10901         crash in Debug mode due to ASSERTION. (Requested by abucur on
10902         #webkit).
10903
10904         * rendering/InlineFlowBox.cpp:
10905         (SameSizeAsInlineFlowBox):
10906         * rendering/InlineFlowBox.h:
10907         (WebCore::InlineFlowBox::InlineFlowBox):
10908         (InlineFlowBox):
10909         * rendering/RenderBlock.cpp:
10910         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
10911         * rendering/RenderBlockLineLayout.cpp:
10912         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
10913         (WebCore::RenderBlock::linkToEndLineIfNeeded):
10914         (WebCore::RenderBlock::determineStartPosition):
10915         * rendering/RootInlineBox.cpp:
10916         (WebCore::RootInlineBox::RootInlineBox):
10917         * rendering/RootInlineBox.h:
10918         (WebCore):
10919         (WebCore::RootInlineBox::paginationStrut):
10920         (WebCore::RootInlineBox::setPaginationStrut):
10921         (WebCore::RootInlineBox::isFirstAfterPageBreak):
10922         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
10923         (WebCore::RootInlineBox::paginatedLineWidth):
10924         (WebCore::RootInlineBox::setPaginatedLineWidth):
10925         (RootInlineBox):
10926
10927 2012-11-13  Xianzhu Wang  <wangxianzhu@chromium.org>
10928
10929         Missing NodeRenderStyle.h include in WebCore/html/TextFieldInputType.cpp
10930         https://bugs.webkit.org/show_bug.cgi?id=102108
10931
10932         Reviewed by Adam Barth.
10933
10934         No new tests. Fix clang build break.
10935
10936         * html/TextFieldInputType.cpp: Added #include "NodeRenderStyle.h"
10937
10938 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
10939
10940         AX: MathML types need to be semantically identified in AX tree
10941         https://bugs.webkit.org/show_bug.cgi?id=101263
10942
10943         Reviewed by Beth Dakin.
10944
10945         Semantically identify various MathML elements within the AX tree. This will allow
10946         screen readers to identify math types so that equations can be output more accurately.
10947
10948         Test: platform/mac/accessibility/mathml-elements.html
10949
10950         * accessibility/AccessibilityObject.h:
10951         (AccessibilityObject):
10952         (WebCore::AccessibilityObject::isMathElement):
10953         (WebCore::AccessibilityObject::isMathFraction):
10954         (WebCore::AccessibilityObject::isMathFenced):
10955         (WebCore::AccessibilityObject::isMathSubscriptSuperscript):
10956         (WebCore::AccessibilityObject::isMathRow):
10957         (WebCore::AccessibilityObject::isMathUnderOver):
10958         (WebCore::AccessibilityObject::isMathRoot):
10959         (WebCore::AccessibilityObject::isMathSquareRoot):
10960         (WebCore::AccessibilityObject::isMathText):
10961         (WebCore::AccessibilityObject::isMathNumber):
10962         (WebCore::AccessibilityObject::isMathOperator):
10963         (WebCore::AccessibilityObject::isMathFenceOperator):
10964         (WebCore::AccessibilityObject::isMathSeparatorOperator):
10965         (WebCore::AccessibilityObject::isMathIdentifier):
10966         (WebCore::AccessibilityObject::isMathTable):
10967         (WebCore::AccessibilityObject::isMathTableRow):
10968         (WebCore::AccessibilityObject::isMathTableCell):
10969         (WebCore::AccessibilityObject::mathRadicandObject):
10970         (WebCore::AccessibilityObject::mathRootIndexObject):
10971         (WebCore::AccessibilityObject::mathUnderObject):
10972         (WebCore::AccessibilityObject::mathOverObject):
10973         (WebCore::AccessibilityObject::mathNumeratorObject):
10974         (WebCore::AccessibilityObject::mathDenominatorObject):
10975         (WebCore::AccessibilityObject::mathBaseObject):
10976         (WebCore::AccessibilityObject::mathSubscriptObject):
10977         (WebCore::AccessibilityObject::mathSuperscriptObject):
10978         (WebCore::AccessibilityObject::mathFencedOpenString):
10979         (WebCore::AccessibilityObject::mathFencedCloseString):
10980         * accessibility/AccessibilityRenderObject.cpp:
10981         (WebCore::startOfContinuations):
10982             Handle a case where a MathML render element is created with the node of their parent (which could lead to an assert).
10983         (WebCore::AccessibilityRenderObject::textUnderElement):
10984             Handle the cases for RenderMathMLOperators which use the node of their parent, which confuses the normal textUnderElement() routine.
10985         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
10986             Handle ignored cases for math elements
10987         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
10988         (WebCore::AccessibilityRenderObject::isMathElement):
10989         (WebCore::AccessibilityRenderObject::isMathFraction):
10990         (WebCore::AccessibilityRenderObject::isMathFenced):
10991         (WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript):
10992         (WebCore::AccessibilityRenderObject::isMathRow):
10993         (WebCore::AccessibilityRenderObject::isMathUnderOver):
10994         (WebCore::AccessibilityRenderObject::isMathSquareRoot):
10995         (WebCore::AccessibilityRenderObject::isMathRoot):
10996         (WebCore::AccessibilityRenderObject::isMathOperator):
10997         (WebCore::AccessibilityRenderObject::isMathFenceOperator):
10998         (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
10999         (WebCore::AccessibilityRenderObject::isMathText):
11000         (WebCore::AccessibilityRenderObject::isMathNumber):
11001         (WebCore::AccessibilityRenderObject::isMathIdentifier):
11002         (WebCore::AccessibilityRenderObject::isMathTable):
11003         (WebCore::AccessibilityRenderObject::isMathTableRow):
11004         (WebCore::AccessibilityRenderObject::isMathTableCell):
11005         (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
11006             Make sure anonymouse blocks are ignored within math tree; make sure non-element type objects are ignored (like <mstyle>).
11007         (WebCore::AccessibilityRenderObject::mathRadicandObject):
11008         (WebCore::AccessibilityRenderObject::mathRootIndexObject):
11009         (WebCore::AccessibilityRenderObject::mathNumeratorObject):
11010         (WebCore::AccessibilityRenderObject::mathDenominatorObject):
11011         (WebCore::AccessibilityRenderObject::mathUnderObject):
11012         (WebCore::AccessibilityRenderObject::mathOverObject):
11013         (WebCore::AccessibilityRenderObject::mathBaseObject):
11014         (WebCore::AccessibilityRenderObject::mathSubscriptObject):
11015         (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
11016         (WebCore::AccessibilityRenderObject::mathFencedOpenString):
11017         (WebCore::AccessibilityRenderObject::mathFencedCloseString):
11018         * accessibility/AccessibilityRenderObject.h:
11019         (AccessibilityRenderObject):
11020         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11021         (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
11022         (createAccessibilityRoleMap):
11023         (-[WebAccessibilityObjectWrapper subrole]):
11024         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
11025         * rendering/mathml/RenderMathMLBlock.cpp:
11026         (WebCore::RenderMathMLBlock::RenderMathMLBlock):
11027         * rendering/mathml/RenderMathMLBlock.h:
11028         (WebCore::RenderMathMLBlock::isRenderMathMLFenced):
11029         (WebCore::RenderMathMLBlock::isRenderMathMLFraction):
11030         (WebCore::RenderMathMLBlock::isRenderMathMLRoot):
11031         (WebCore::RenderMathMLBlock::isRenderMathMLSquareRoot):
11032         (WebCore::RenderMathMLBlock::isRenderMathMLSubSup):
11033         (WebCore::RenderMathMLBlock::isRenderMathMLUnderOver):
11034         (WebCore::RenderMathMLBlock::setIgnoreInAccessibilityTree):
11035         (WebCore::RenderMathMLBlock::ignoreInAccessibilityTree):
11036             Add ability to identify anonymous render blocks as items that AX should ignore.
11037         (RenderMathMLBlock):
11038         * rendering/mathml/RenderMathMLFenced.cpp:
11039         (WebCore::RenderMathMLFenced::createMathMLOperator):
11040             Identify which kind of math operator is being created on the fly (Fence or Separator)
11041         (WebCore::RenderMathMLFenced::makeFences):
11042         (WebCore::RenderMathMLFenced::addChild):
11043         * rendering/mathml/RenderMathMLFenced.h:
11044         (WebCore::RenderMathMLFenced::isRenderMathMLFenced):
11045         (RenderMathMLFenced):
11046         * rendering/mathml/RenderMathMLFraction.h:
11047         (WebCore::RenderMathMLFraction::isRenderMathMLFraction):
11048         * rendering/mathml/RenderMathMLOperator.cpp:
11049         (WebCore::RenderMathMLOperator::RenderMathMLOperator):
11050         (WebCore::RenderMathMLOperator::updateFromElement):
11051         (WebCore::RenderMathMLOperator::createGlyph):
11052              Mark anonymous render blocks as AX ignored.
11053         * rendering/mathml/RenderMathMLOperator.h:
11054         (WebCore::RenderMathMLOperator::setOperatorType):
11055         (WebCore::RenderMathMLOperator::operatorType):
11056         (RenderMathMLOperator):
11057         * rendering/mathml/RenderMathMLRoot.h:
11058         (WebCore::RenderMathMLRoot::isRenderMathMLRoot):
11059         * rendering/mathml/RenderMathMLSquareRoot.h:
11060         (WebCore::RenderMathMLSquareRoot::isRenderMathMLSquareRoot):
11061         * rendering/mathml/RenderMathMLSubSup.h:
11062         (WebCore::RenderMathMLSubSup::isRenderMathMLSubSup):
11063         * rendering/mathml/RenderMathMLUnderOver.h:
11064         (WebCore::RenderMathMLUnderOver::isRenderMathMLUnderOver):
11065         
11066 2012-11-13  Mark Lam  <mark.lam@apple.com>
11067
11068         JSEventListener should not access m_jsFunction when its wrapper is gone.
11069         https://bugs.webkit.org/show_bug.cgi?id=101985.
11070
11071         Reviewed by Geoffrey Garen.
11072
11073         Added a few null checks for m_wrapper before we do anything with m_jsFunction.
11074
11075         No new tests.
11076
11077         * bindings/js/JSEventListener.cpp:
11078         (WebCore::JSEventListener::initializeJSFunction):
11079         - Removed a now invalid assertion. m_wrapper is expected to have a
11080           valid non-zero value when jsFunction is valid. However, in the case
11081           of JSLazyEventListener (which extends JSEventListener), m_wrapper is
11082           initially 0 when m_jsFunction has not been realized yet. When
11083           JSLazyEventListener::initializeJSFunction() realizes m_jsFunction,
11084           it will set m_wrapper to an appropriate wrapper object.
11085
11086           For this reason, JSEventListener::jsFunction() cannot do the null
11087           check on m_wrapper until after the call to initializeJSFunction.
11088
11089           This, in turns, means that in the case of the non-lazy
11090           JSEventListener, initializeJSFunction() will also be called, and
11091           if the GC has collected the m_wrapper but the JSEventListener has
11092           not been removed yet, it is possible to see a null m_wrapper while
11093           m_jsFunction contains a non-zero stale value.
11094
11095           Hence, this assertion of (m_wrapper || !m_jsFunction) in
11096           JSEventListener::initializeJSFunction() is not always true and
11097           should be removed.
11098
11099         (WebCore::JSEventListener::visitJSFunction):
11100         (WebCore::JSEventListener::operator==):
11101         * bindings/js/JSEventListener.h:
11102         (WebCore::JSEventListener::jsFunction):
11103
11104 2012-11-13  Adam Barth  <abarth@webkit.org>
11105
11106         [V8] instantiateV8Object should encapulate the tricky creationContext logic
11107         https://bugs.webkit.org/show_bug.cgi?id=102117
11108
11109         Reviewed by Eric Seidel.
11110
11111         The logic around creationContext is tricky. Rather than putting the
11112         logic in the code generator, we can centralize the logic in
11113         instantiateV8Object.
11114
11115         This patch shouldn't have any behavior change.
11116
11117         * bindings/scripts/CodeGeneratorV8.pm:
11118         (GenerateToV8Converters):
11119         * bindings/v8/V8DOMWrapper.cpp:
11120         (V8WrapperInstantiationScope):
11121         (WebCore::V8WrapperInstantiationScope::V8WrapperInstantiationScope):
11122         (WebCore::V8WrapperInstantiationScope::~V8WrapperInstantiationScope):
11123         (WebCore::V8WrapperInstantiationScope::context):
11124         (WebCore):
11125         (WebCore::V8DOMWrapper::instantiateV8Object):
11126         * bindings/v8/V8DOMWrapper.h:
11127         (V8DOMWrapper):
11128
11129 2012-11-13  Silvia Pfeiffer  <silviapf@chromium.org>
11130
11131         Clean up the inheritance tree under the MediaControls Class.
11132         https://bugs.webkit.org/show_bug.cgi?id=88871
11133
11134         Reviewed by Eric Carlson.
11135
11136         This patch removes code duplication between the Chromium and Safari
11137         media controls shadow DOMs.
11138         This is achieved by pulling common functions that are identical (or
11139         almost identical) between the different platforms into the base class.
11140         The derived classes are renamed based on their platform:
11141         - MediaControlRootElement                to MediaControlsApple.
11142         - MediaControlRootElementChromium        to MediaControlsChromium.
11143         - MediaControlRootElementChromiumAndroid to MediaControlsChromiumAndroid.
11144         MediaControls is now no longer an abstract base class, but its "create"
11145         function is only implemented in the port-specific header file, so it's
11146         on purpose incomplete in the MediaControls.cpp file.
11147
11148         No new tests because this is refactoring work only.
11149
11150         * CMakeLists.txt:
11151           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11152         * GNUmakefile.list.am:
11153           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11154         * Target.pri:
11155           Rename MediaControlRootElement.cpp to MediaControlsApple.cpp .
11156         * WebCore.gypi:
11157           Rename MediaControlRootElement[Chromium[Android]].[cpp,h] to MediaControls[Apple,Chromium[Android]].[cpp,h] .
11158         * WebCore.order:
11159           Rename MediaControlRootElement symbols to MediaControlsApple symbols.
11160         * WebCore.vcproj/WebCore.vcproj:
11161           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11162         * WebCore.xcodeproj/project.pbxproj:
11163           Rename MediaControlRootElement.[cpp,h] to MediaControlsApple.[cpp,h] .
11164         * html/shadow/MediaControlElements.cpp:
11165         (WebCore::MediaControlTimelineElement::defaultEventHandler):
11166           Remove dependency on MediaControlRootElement.h (base class MediaControls.h is still there).
11167           Rename updateTimeDisplay() to updateCurrentTimeDisplay().
11168         * html/shadow/MediaControls.cpp:
11169         (WebCore::MediaControls::MediaControls):
11170           Added initialization for media elements that all platform controls share.
11171         (WebCore):
11172           Removed include files that are already included in header file.
11173         (WebCore::MediaControls::setMediaController):
11174           Added controller assignment for media elements that all platform controls share.
11175         (WebCore::MediaControls::reset):
11176           Added resets for media elements that all platform controls share.
11177         (WebCore::MediaControls::reportedError):
11178           Added error handling for media elements that all platform controls share.
11179         (WebCore::MediaControls::loadedMetadata):
11180           Added default action for loadedMetadata event.
11181         (WebCore::MediaControls::show):
11182         (WebCore::MediaControls::hide):
11183         (WebCore::MediaControls::makeOpaque):
11184         (WebCore::MediaControls::makeTransparent):
11185         (WebCore::MediaControls::shouldHideControls):
11186         (WebCore::MediaControls::bufferingProgressed):
11187         (WebCore::MediaControls::playbackStarted):
11188         (WebCore::MediaControls::playbackProgressed):
11189         (WebCore::MediaControls::playbackStopped):
11190         (WebCore::MediaControls::updateCurrentTimeDisplay):
11191         (WebCore::MediaControls::showVolumeSlider):
11192         (WebCore::MediaControls::changedMute):
11193         (WebCore::MediaControls::changedVolume):
11194         (WebCore::MediaControls::changedClosedCaptionsVisibility):
11195         (WebCore::MediaControls::enteredFullscreen):
11196         (WebCore::MediaControls::exitedFullscreen):
11197         (WebCore::MediaControls::defaultEventHandler):
11198         (WebCore::MediaControls::hideFullscreenControlsTimerFired):
11199         (WebCore::MediaControls::startHideFullscreenControlsTimer):
11200         (WebCore::MediaControls::stopHideFullscreenControlsTimer):
11201         (WebCore::MediaControls::shadowPseudoId):
11202         (WebCore::MediaControls::containsRelatedTarget):
11203         (WebCore::MediaControls::createTextTrackDisplay):
11204         (WebCore::MediaControls::showTextTrackDisplay):
11205         (WebCore::MediaControls::hideTextTrackDisplay):
11206         (WebCore::MediaControls::updateTextTrackDisplay):
11207           Added default actions for all these media controls member functions.
11208         * html/shadow/MediaControls.h:
11209         (WebCore):
11210           Added include files and forward class declarations that all media controls share.
11211         (MediaControls):
11212           Make all pure virtual functions that have default implementations just virtual.
11213         (WebCore::MediaControls::updateStatusDisplay):
11214           Add an empty virtual updateStatusDisplay function which is used by media elements.
11215         * html/shadow/MediaControlsApple.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.cpp.
11216           Reduced Apple-specific media control functions by relying on default implementations in the base class.
11217         * html/shadow/MediaControlsApple.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElement.h.
11218           Reduced Apple-specific media control elements by relying on some elements in the base class.
11219         * html/shadow/MediaControlsChromium.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp.
11220           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11221         * html/shadow/MediaControlsChromium.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromium.h.
11222           Reduced Chromium-specific media control functions by relying on default implementations in the base class.
11223         * html/shadow/MediaControlsChromiumAndroid.cpp: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.cpp.
11224           Renamed class name and base class name.
11225         * html/shadow/MediaControlsChromiumAndroid.h: Renamed from Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.h.
11226           Renamed class name and base class name.
11227         * rendering/RenderTheme.h:
11228         (WebCore::RenderTheme::timeWithoutMouseMovementBeforeHidingControls):
11229           Moved timeWithoutMouseMovementBeforeHidingControls variable from all classes to a theme-specific function.
11230
11231 2012-11-13  Benjamin Poulain  <benjamin@webkit.org>
11232
11233         CSSParser::setStyleSheet() should be inline
11234         https://bugs.webkit.org/show_bug.cgi?id=101829
11235
11236         Reviewed by Andreas Kling.
11237
11238         * css/CSSParser.cpp:
11239         * css/CSSParser.h:
11240         (WebCore::CSSParser::setStyleSheet):
11241         CSSParser::setStyleSheet() just assign a pointer, it does not even
11242         change a ref-count. The function should probably be in the header.
11243
11244 2012-11-13  Andrei Bucur  <abucur@adobe.com>
11245
11246         [CSS Regions] Add Region info for RootLineBoxes and pack the pagination data
11247         https://bugs.webkit.org/show_bug.cgi?id=101332
11248
11249         Reviewed by David Hyatt.
11250
11251         Currently the pagination information for lines is spread between the RootInlineBox and InlineFlowBox classes, consuming memory even though
11252         the boxes were not the result of an pagination layout. To overcome this, a new struct (LineFragmentationData) is created that wraps all the data,
11253         including a new member, the containing Region for the line.
11254         The containing Region is used to detect if a line changed the Region where it resides. This will be helpful especially when implementing region
11255         styling for layout properties (e.g. the font-size property https://bugs.webkit.org/show_bug.cgi?id=95559 ).
11256         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
11257         the task of updating the containing Region to the block.
11258
11259         Tests: No new tests because there is no functional change.
11260
11261         * rendering/InlineFlowBox.cpp:
11262         (SameSizeAsInlineFlowBox):
11263         * rendering/InlineFlowBox.h:
11264         (WebCore::InlineFlowBox::InlineFlowBox):
11265         (InlineFlowBox):
11266         * rendering/RenderBlock.cpp:
11267         (WebCore::RenderBlock::lineWidthForPaginatedLineChanged):
11268         * rendering/RenderBlockLineLayout.cpp:
11269         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
11270         (WebCore::RenderBlock::linkToEndLineIfNeeded):
11271         (WebCore::RenderBlock::determineStartPosition):
11272         * rendering/RootInlineBox.cpp:
11273         (WebCore::RootInlineBox::RootInlineBox):
11274         (WebCore::RootInlineBox::setContainingRegion):
11275         (WebCore):
11276         * rendering/RootInlineBox.h:
11277         (WebCore):
11278         (WebCore::RootInlineBox::paginationStrut):
11279         (WebCore::RootInlineBox::setPaginationStrut):
11280         (WebCore::RootInlineBox::isFirstAfterPageBreak):
11281         (WebCore::RootInlineBox::setIsFirstAfterPageBreak):
11282         (WebCore::RootInlineBox::paginatedLineWidth):
11283         (WebCore::RootInlineBox::setPaginatedLineWidth):
11284         (RootInlineBox):
11285         (WebCore::RootInlineBox::containingRegion):
11286         (WebCore::RootInlineBox::ensureLineFragmentationData):
11287         (LineFragmentationData):
11288         (WebCore::RootInlineBox::LineFragmentationData::LineFragmentationData):
11289
11290 2012-11-13  Milian Wolff  <milian.wolff@kdab.com>
11291
11292         [Qt] QNX build fails due to signature change in gl2.h header (glShaderSource)
11293         https://bugs.webkit.org/show_bug.cgi?id=98038
11294
11295         Reviewed by Simon Hausmann.
11296
11297         Cast the function to the expected type, just like it is done on non-Qt/OpenGL2 ES platforms.
11298
11299         * platform/graphics/OpenGLShims.cpp:
11300         (WebCore):
11301
11302 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11303
11304         WebKit exposes ARIA rowheader role as AXUnknown when not contained in table/grid
11305         https://bugs.webkit.org/show_bug.cgi?id=101616
11306
11307         Reviewed by Beth Dakin.
11308
11309         If the rowheader role is exposed because the element is not within a table, the mac platform
11310         should map that to a generic group.
11311
11312         Test: platform/mac/accessibility/rowheader-outside-table-role.html
11313
11314         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11315         (createAccessibilityRoleMap):
11316
11317 2012-11-13  Stephen White  <senorblanco@chromium.org>
11318
11319         [Chromium] Fix SkImageFilter DAG path to pass all css3/filters tests
11320         https://bugs.webkit.org/show_bug.cgi?id=101952
11321
11322         Reviewed by James Robinson.
11323
11324         With these changes, all of the css3/filters tests pass when the
11325         if-test in GraphicsLayerChromium::setFilters() is forced true (for
11326         now, it remains true only if there's a reference filter in the chain).
11327
11328         Covered by the css3/filters tests (when the switch is thrown in
11329         GraphicsLayerChromium::setFilters()).
11330
11331         * WebCore.gypi:
11332         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
11333         Drop to software rendering if there's a custom filter in the chain.
11334         This is the same as the WebFilterOperations path is doing.
11335         * platform/graphics/filters/skia/DropShadowImageFilter.cpp: Added.
11336         * platform/graphics/filters/skia/DropShadowImageFilter.h: Added.
11337         New implementation of drop-shadow filter; equivalent to
11338         the path in cc/render_surface_filters.cc.
11339         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp:
11340         Fix the sepia and grayscale filters (value was inverted).
11341
11342 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11343
11344         Unreviewed, rolling out r134442.
11345         http://trac.webkit.org/changeset/134442
11346         https://bugs.webkit.org/show_bug.cgi?id=102111
11347
11348         Does not compile on apple-mac (Requested by abarth on
11349         #webkit).
11350
11351         * CMakeLists.txt:
11352         * GNUmakefile.list.am:
11353         * Target.pri:
11354         * WebCore.gypi:
11355         * WebCore.vcproj/WebCore.vcproj:
11356         * WebCore.xcodeproj/project.pbxproj:
11357         * css/CSSCursorImageValue.cpp:
11358         (WebCore::CSSCursorImageValue::cachedImage):
11359         * css/CSSFontFaceSrcValue.cpp:
11360         (WebCore::CSSFontFaceSrcValue::cachedFont):
11361         * css/CSSImageSetValue.cpp:
11362         (WebCore::CSSImageSetValue::cachedImageSet):
11363         * css/CSSImageValue.cpp:
11364         (WebCore::CSSImageValue::cachedImage):
11365         * css/CSSImageValue.h:
11366         (WebCore):
11367         (CSSImageValue):
11368         * css/StyleResolver.cpp:
11369         (WebCore::StyleResolver::loadPendingImage):
11370         * css/StyleRuleImport.cpp:
11371         (WebCore::StyleRuleImport::requestStyleSheet):
11372         * css/WebKitCSSSVGDocumentValue.cpp:
11373         (WebCore::WebKitCSSSVGDocumentValue::load):
11374         * css/WebKitCSSShaderValue.cpp:
11375         (WebCore::WebKitCSSShaderValue::cachedShader):
11376         * dom/ScriptElement.cpp:
11377         (WebCore::ScriptElement::requestScript):
11378         * html/HTMLLinkElement.cpp:
11379         (WebCore::HTMLLinkElement::process):
11380         * html/parser/CSSPreloadScanner.cpp:
11381         (WebCore::CSSPreloadScanner::emitRule):
11382         * html/parser/CSSPreloadScanner.h:
11383         (CSSPreloadScanner):
11384         * html/parser/HTMLPreloadScanner.cpp:
11385         (WebCore::PreloadTask::preload):
11386         * loader/ImageLoader.cpp:
11387         (WebCore::ImageLoader::updateFromElement):
11388         * loader/cache/CachedResourceLoader.cpp:
11389         (WebCore::CachedResourceLoader::requestImage):
11390         (WebCore::CachedResourceLoader::requestResource):
11391         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11392         (WebCore):
11393         (WebCore::CachedResourceLoader::preload):
11394         * loader/cache/CachedResourceLoader.h:
11395         (WebCore):
11396         (CachedResourceLoader):
11397         * loader/cache/CachedResourceRequest.cpp:
11398         (WebCore::CachedResourceRequest::CachedResourceRequest):
11399         * loader/cache/CachedResourceRequest.h:
11400         (CachedResourceRequest):
11401         (WebCore::CachedResourceRequest::defer):
11402         (WebCore::CachedResourceRequest::setDefer):
11403         * loader/cache/CachedResourceRequestInitiators.cpp: Removed.
11404         * loader/cache/CachedResourceRequestInitiators.h: Removed.
11405         * loader/icon/IconLoader.cpp:
11406         (WebCore::IconLoader::startLoading):
11407         * platform/ThreadGlobalData.cpp:
11408         (WebCore::ThreadGlobalData::ThreadGlobalData):
11409         * platform/ThreadGlobalData.h:
11410         (ThreadGlobalData):
11411         * svg/SVGFEImageElement.cpp:
11412         (WebCore::SVGFEImageElement::requestImageResource):
11413         * svg/SVGFontFaceUriElement.cpp:
11414         (WebCore::SVGFontFaceUriElement::loadFont):
11415         * svg/SVGUseElement.cpp:
11416         (WebCore::SVGUseElement::svgAttributeChanged):
11417
11418 2012-11-13  Chris Fleizach  <cfleizach@apple.com>
11419
11420         AX: file upload input text value is not exposed through accessibility
11421         https://bugs.webkit.org/show_bug.cgi?id=100583
11422
11423         Reviewed by Beth Dakin.
11424
11425         This is a hard problem to solve on the Mac because there are three pieces of information
11426              1) The type of button 2) The text on the button 3) The text for the value.
11427         I think the best compromise is to label this as a file upload button type in the role description, 
11428         and then expose the file path text as the AXTitle. 
11429         This will give the more relevant information and should be clear what is happening.
11430
11431         Test: platform/mac/accessibility/file-upload-button-subrole.html
11432
11433         * English.lproj/Localizable.strings:
11434         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
11435         (-[WebAccessibilityObjectWrapper subrole]):
11436         (-[WebAccessibilityObjectWrapper roleDescription]):
11437         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
11438         * platform/LocalizedStrings.cpp:
11439         (WebCore::AXFileUploadButtonText):
11440         * platform/LocalizedStrings.h:
11441
11442 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11443
11444         Unreviewed, rolling out r133944.
11445         http://trac.webkit.org/changeset/133944
11446         https://bugs.webkit.org/show_bug.cgi?id=102118
11447
11448         Only JS bindings support NATIVE_TYPE_ERR (Requested by arv on
11449         #webkit).
11450
11451         * bindings/scripts/CodeGeneratorV8.pm:
11452         (GenerateFunctionCallback):
11453         (GenerateParametersCheck):
11454         (GenerateSingleConstructorCallback):
11455         (GenerateNamedConstructorCallback):
11456         (TypeCanFailConversion):
11457         * dom/Element.cpp:
11458         (WebCore::Element::setAttributeNode):
11459         (WebCore::Element::removeAttributeNode):
11460         * dom/Element.idl:
11461
11462 2012-11-13  Adam Barth  <abarth@webkit.org>
11463
11464         Unreviewed.
11465
11466         Update run-bindings-tests results.
11467
11468         * bindings/scripts/test/V8/V8Float64Array.cpp:
11469         (WebCore::V8Float64Array::dispatchWrapCustom):
11470         (WebCore::V8Float64Array::wrapSlow):
11471         * bindings/scripts/test/V8/V8Float64Array.h:
11472         (WebCore::V8Float64Array::toNative):
11473         (V8Float64Array):
11474         (WebCore):
11475         (WebCore::dispatchWrap):
11476         (WebCore::toV8Object):
11477         (WebCore::toV8):
11478         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
11479         (WebCore::V8TestActiveDOMObject::wrapSlow):
11480         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
11481         (WebCore::V8TestActiveDOMObject::toNative):
11482         (V8TestActiveDOMObject):
11483         (WebCore):
11484         (WebCore::dispatchWrap):
11485         (WebCore::toV8Object):
11486         (WebCore::toV8):
11487         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
11488         (WebCore::V8TestCustomNamedGetter::wrapSlow):
11489         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
11490         (WebCore::V8TestCustomNamedGetter::toNative):
11491         (V8TestCustomNamedGetter):
11492         (WebCore):
11493         (WebCore::dispatchWrap):
11494         (WebCore::toV8Object):
11495         (WebCore::toV8):
11496         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
11497         (WebCore::V8TestEventConstructor::wrapSlow):
11498         * bindings/scripts/test/V8/V8TestEventConstructor.h:
11499         (WebCore::V8TestEventConstructor::toNative):
11500         (V8TestEventConstructor):
11501         (WebCore):
11502         (WebCore::dispatchWrap):
11503         (WebCore::toV8Object):
11504         (WebCore::toV8):
11505         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
11506         (WebCore::V8TestEventTarget::wrapSlow):
11507         * bindings/scripts/test/V8/V8TestEventTarget.h:
11508         (WebCore::V8TestEventTarget::toNative):
11509         (V8TestEventTarget):
11510         (WebCore):
11511         (WebCore::dispatchWrap):
11512         (WebCore::toV8Object):
11513         (WebCore::toV8):
11514         * bindings/scripts/test/V8/V8TestException.cpp:
11515         (WebCore::V8TestException::wrapSlow):
11516         * bindings/scripts/test/V8/V8TestException.h:
11517         (WebCore::V8TestException::toNative):
11518         (V8TestException):
11519         (WebCore):
11520         (WebCore::dispatchWrap):
11521         (WebCore::toV8Object):
11522         (WebCore::toV8):
11523         * bindings/scripts/test/V8/V8TestInterface.cpp:
11524         (WebCore::V8TestInterface::wrapSlow):
11525         * bindings/scripts/test/V8/V8TestInterface.h:
11526         (WebCore::V8TestInterface::toNative):
11527         (V8TestInterface):
11528         (WebCore):
11529         (WebCore::dispatchWrap):
11530         (WebCore::toV8Object):
11531         (WebCore::toV8):
11532         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
11533         (WebCore::V8TestMediaQueryListListener::wrapSlow):
11534         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
11535         (WebCore::V8TestMediaQueryListListener::toNative):
11536         (V8TestMediaQueryListListener):
11537         (WebCore):
11538         (WebCore::dispatchWrap):
11539         (WebCore::toV8Object):
11540         (WebCore::toV8):
11541         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
11542         (WebCore::V8TestNamedConstructor::wrapSlow):
11543         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
11544         (WebCore::V8TestNamedConstructor::toNative):
11545         (V8TestNamedConstructor):
11546         (WebCore):
11547         (WebCore::dispatchWrap):
11548         (WebCore::toV8Object):
11549         (WebCore::toV8):
11550         * bindings/scripts/test/V8/V8TestNode.cpp:
11551         (WebCore::V8TestNode::wrapSlow):
11552         * bindings/scripts/test/V8/V8TestNode.h:
11553         (WebCore::V8TestNode::toNative):
11554         (V8TestNode):
11555         (WebCore):
11556         (WebCore::dispatchWrap):
11557         (WebCore::toV8Object):
11558         (WebCore::toV8):
11559         (WebCore::toV8Fast):
11560         * bindings/scripts/test/V8/V8TestObj.cpp:
11561         (WebCore::V8TestObj::wrapSlow):
11562         * bindings/scripts/test/V8/V8TestObj.h:
11563         (WebCore::V8TestObj::toNative):
11564         (V8TestObj):
11565         (WebCore):
11566         (WebCore::dispatchWrap):
11567         (WebCore::toV8Object):
11568         (WebCore::toV8):
11569         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
11570         (WebCore::V8TestOverloadedConstructors::wrapSlow):
11571         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
11572         (WebCore::V8TestOverloadedConstructors::toNative):
11573         (V8TestOverloadedConstructors):
11574         (WebCore):
11575         (WebCore::dispatchWrap):
11576         (WebCore::toV8Object):
11577         (WebCore::toV8):
11578         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
11579         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
11580         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
11581         (WebCore::V8TestSerializedScriptValueInterface::toNative):
11582         (V8TestSerializedScriptValueInterface):
11583         (WebCore):
11584         (WebCore::dispatchWrap):
11585         (WebCore::toV8Object):
11586         (WebCore::toV8):
11587
11588 2012-11-13  Adam Barth  <abarth@webkit.org>
11589
11590         Unreviewed.
11591
11592         Speculative build fix for Qt.
11593
11594         * dom/make_names.pl:
11595         (printWrapperFactoryCppFile):
11596
11597 2012-11-13  Sami Kyostila  <skyostil@chromium.org>
11598
11599         Allow painting outside overflow clip in accelerated scrolling layers
11600         https://bugs.webkit.org/show_bug.cgi?id=100524
11601
11602         Reviewed by Simon Fraser.
11603
11604         In preparation for avoiding repaints when scrolling child layers, make it
11605         possible to paint outside the overflow clip.
11606
11607         Test: compositing/overflow/updating-scrolling-content.html
11608
11609         * rendering/LayoutState.h:
11610         (LayoutState):
11611         * rendering/RenderBlock.cpp:
11612         (WebCore::RenderBlock::paint):
11613         * rendering/RenderBox.cpp:
11614         (WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint):
11615         * rendering/RenderLayer.cpp:
11616         (WebCore::RenderLayer::repaintBlockSelectionGaps):
11617
11618 2012-11-13  Patrick Gansterer  <paroga@webkit.org>
11619
11620         Port SimpleFontDataWin.cpp to WinCE
11621         https://bugs.webkit.org/show_bug.cgi?id=97889
11622
11623         Reviewed by Brent Fulgham.
11624
11625         Add #if !OS(WINCE) around some parts of the code, so it can be used by the WinCE port too in a next step.
11626         Also cleaned up the include headers.
11627
11628         * platform/graphics/win/SimpleFontDataWin.cpp:
11629         (WebCore::SimpleFontData::initGDIFont):
11630         (WebCore::SimpleFontData::platformDestroy):
11631         (WebCore::SimpleFontData::boundsForGDIGlyph):
11632         (WebCore):
11633         (WebCore::SimpleFontData::widthForGDIGlyph):
11634
11635 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
11636
11637         Web Inspector: [Chromium] move spectrum.css into the standalone css files group.
11638
11639         Not reviewed: moved css file in gypi.
11640
11641         * WebCore.gypi:
11642
11643 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11644
11645         Unreviewed, rolling out r134434.
11646         http://trac.webkit.org/changeset/134434
11647         https://bugs.webkit.org/show_bug.cgi?id=102072
11648
11649         The test that was added asserts in loader.
11650
11651         * loader/FrameLoader.cpp:
11652         (WebCore::createWindow):
11653         * page/DOMWindow.cpp:
11654         (WebCore):
11655         (WebCore::DOMWindow::adjustWindowRect):
11656         (WebCore::DOMWindow::moveBy):
11657         (WebCore::DOMWindow::moveTo):
11658         (WebCore::DOMWindow::resizeBy):
11659         (WebCore::DOMWindow::resizeTo):
11660         (WebCore::DOMWindow::open):
11661         (WebCore::DOMWindow::showModalDialog):
11662         * page/DOMWindow.h:
11663         (DOMWindow):
11664
11665 2012-11-13  Dan Carney  <dcarney@google.com>
11666
11667         [V8] More efficient wrapper dispatch
11668         https://bugs.webkit.org/show_bug.cgi?id=102082
11669
11670         Reviewed by Adam Barth.
11671
11672         Dispatching a call to V8Whatever::wrap involved a chain
11673         of calls, each of which checked its wrapper cache.
11674         This refactor gives calls only 2 choices of functions to call:
11675         toV8 and toV8Object instead of wrap. wrap has been renamed to
11676         dispatchWrap and no longer contains cache checks.
11677         Additionally, classes which require a custom toV8 function
11678         have had all wrapping and caching calls removed, as they could
11679         not have been accessed.
11680
11681         No new tests. Sufficiently covered.
11682
11683         * Modules/indexeddb/IDBAny.idl:
11684         * Modules/indexeddb/IDBKey.idl:
11685         * WebCore.gypi:
11686         * bindings/scripts/CodeGeneratorV8.pm:
11687         (GenerateHeader):
11688         (GenerateNormalAttrGetter):
11689         (GenerateImplementation):
11690         (GenerateToV8Converters):
11691         * bindings/scripts/IDLAttributes.txt:
11692         * bindings/v8/SerializedScriptValue.cpp:
11693         * bindings/v8/custom/V8BlobCustom.cpp:
11694         (WebCore::V8Blob::dispatchWrapCustom):
11695         * bindings/v8/custom/V8CSSRuleCustom.cpp:
11696         (WebCore::V8CSSRule::dispatchWrapCustom):
11697         * bindings/v8/custom/V8CSSValueCustom.cpp:
11698         (WebCore::V8CSSValue::dispatchWrapCustom):
11699         * bindings/v8/custom/V8CanvasRenderingContextCustom.cpp:
11700         (WebCore::V8CanvasRenderingContext::dispatchWrapCustom):
11701         * bindings/v8/custom/V8DataViewCustom.cpp:
11702         (WebCore):
11703         (WebCore::V8DataView::dispatchWrapCustom):
11704         * bindings/v8/custom/V8DocumentCustom.cpp:
11705         (WebCore::V8Document::dispatchWrapCustom):
11706         * bindings/v8/custom/V8ElementCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8PerformanceEntryCustom.cpp.
11707         (WebCore):
11708         (WebCore::V8Element::dispatchWrapCustom):
11709         * bindings/v8/custom/V8EntryCustom.cpp:
11710         (WebCore::V8Entry::dispatchWrapCustom):
11711         * bindings/v8/custom/V8EntrySyncCustom.cpp:
11712         (WebCore::V8EntrySync::dispatchWrapCustom):
11713         * bindings/v8/custom/V8EventCustom.cpp:
11714         (WebCore):
11715         (WebCore::V8Event::dispatchWrapCustom):
11716         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
11717         (WebCore::V8HTMLCollection::dispatchWrapCustom):
11718         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
11719         (WebCore::V8HTMLDocument::dispatchWrapCustom):
11720         * bindings/v8/custom/V8HTMLElementCustom.cpp:
11721         (WebCore::V8HTMLElement::dispatchWrapCustom):
11722         * bindings/v8/custom/V8ImageDataCustom.cpp:
11723         (WebCore::V8ImageData::dispatchWrapCustom):
11724         * bindings/v8/custom/V8NodeCustom.cpp:
11725         (WebCore::V8Node::dispatchWrapCustom):
11726         * bindings/v8/custom/V8PerformanceEntryCustom.cpp:
11727         (WebCore::V8PerformanceEntry::dispatchWrapCustom):
11728         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
11729         (WebCore::V8SVGDocument::dispatchWrapCustom):
11730         * bindings/v8/custom/V8SVGElementCustom.cpp:
11731         (WebCore::V8SVGElement::dispatchWrapCustom):
11732         * bindings/v8/custom/V8SVGPathSegCustom.cpp:
11733         (WebCore::V8SVGPathSeg::dispatchWrapCustom):
11734         * bindings/v8/custom/V8StyleSheetCustom.cpp:
11735         (WebCore::V8StyleSheet::dispatchWrapCustom):
11736         * dom/Element.idl:
11737         * dom/make_names.pl:
11738         (printWrapperFunctions):
11739         (printWrapperFactoryCppFile):
11740         (printWrapperFactoryHeaderFile):
11741         * html/MicroDataItemValue.idl:
11742         * inspector/ScriptProfile.idl:
11743         * inspector/ScriptProfileNode.idl:
11744         * page/DOMWindow.idl:
11745         * workers/WorkerContext.idl:
11746
11747 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
11748
11749         Unreviewed, rolling out r134367.
11750         http://trac.webkit.org/changeset/134367
11751         https://bugs.webkit.org/show_bug.cgi?id=100738
11752
11753         Speculative rollout, could have cause Dromaeo setAttribute
11754         perf regression.
11755
11756         * dom/Element.cpp:
11757         (WebCore::Element::attributeChanged):
11758         (WebCore::checkNeedsStyleInvalidationForClassChange):
11759         (WebCore::Element::classAttributeChanged):
11760
11761 2012-11-13  Marja Hölttä  <marja@chromium.org>
11762
11763         Add initiator to CachedResourceRequest.
11764         https://bugs.webkit.org/show_bug.cgi?id=101935
11765
11766         Reviewed by Adam Barth.
11767
11768         Motivation: Chromium needs to know which elements request a
11769         resource (such as an image or a script) (bug 92761). In addition,
11770         for exposing resource timing information (bug 84883) we need to
11771         store the initiator, and this is the first step towards it.
11772
11773         No new tests: No visible change in behavior.
11774
11775         * CMakeLists.txt:
11776         * GNUmakefile.list.am:
11777         * Target.pri:
11778         * WebCore.gypi:
11779         * WebCore.vcproj/WebCore.vcproj:
11780         * WebCore.xcodeproj/project.pbxproj:
11781         * css/CSSCrossfadeValue.cpp:
11782         (WebCore::cachedImageForCSSValue):
11783         * css/CSSCursorImageValue.cpp:
11784         (WebCore::CSSCursorImageValue::cachedImage):
11785         * css/CSSFontFaceSrcValue.cpp:
11786         (WebCore::CSSFontFaceSrcValue::cachedFont):
11787         * css/CSSImageSetValue.cpp:
11788         (WebCore::CSSImageSetValue::cachedImageSet):
11789         * css/CSSImageValue.cpp:
11790         (WebCore::CSSImageValue::cachedImage):
11791         * css/CSSImageValue.h:
11792         (WebCore):
11793         (CSSImageValue):
11794         * css/StyleResolver.cpp:
11795         (WebCore::StyleResolver::loadPendingImage):
11796         * css/StyleRuleImport.cpp:
11797         (WebCore::StyleRuleImport::requestStyleSheet):
11798         * css/WebKitCSSSVGDocumentValue.cpp:
11799         (WebCore::WebKitCSSSVGDocumentValue::load):
11800         * css/WebKitCSSShaderValue.cpp:
11801         (WebCore::WebKitCSSShaderValue::cachedShader):
11802         * dom/ScriptElement.cpp:
11803         (WebCore::ScriptElement::requestScript):
11804         * html/HTMLLinkElement.cpp:
11805         (WebCore::HTMLLinkElement::process):
11806         * html/parser/CSSPreloadScanner.cpp:
11807         (WebCore::CSSPreloadScanner::emitRule):
11808         * html/parser/CSSPreloadScanner.h:
11809         (CSSPreloadScanner):
11810         * html/parser/HTMLPreloadScanner.cpp:
11811         (WebCore::PreloadTask::preload):
11812         * loader/ImageLoader.cpp:
11813         (WebCore::ImageLoader::updateFromElement):
11814         * loader/cache/CachedResourceLoader.cpp:
11815         (WebCore::CachedResourceLoader::requestImage):
11816         (WebCore::CachedResourceLoader::requestResource):
11817         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
11818         (WebCore):
11819         (WebCore::CachedResourceLoader::preload):
11820         * loader/cache/CachedResourceLoader.h:
11821         (WebCore):
11822         (CachedResourceLoader):
11823         * loader/cache/CachedResourceRequest.cpp:
11824         (WebCore::CachedResourceRequest::CachedResourceRequest):
11825         (WebCore):
11826         (WebCore::CachedResourceRequest::~CachedResourceRequest):
11827         (WebCore::CachedResourceRequest::setInitiator):
11828         (WebCore::CachedResourceRequest::initiatorName):
11829         (WebCore::CachedResourceRequest::initiatorDocument):
11830         (WebCore::CachedResourceRequest::initiatorElement):
11831         * loader/cache/CachedResourceRequest.h:
11832         (WebCore):
11833         (WebCore::CachedResourceRequest::setOptions):
11834         (WebCore::CachedResourceRequest::defer):
11835         (WebCore::CachedResourceRequest::setDefer):
11836         (CachedResourceRequest):
11837         * loader/cache/CachedResourceRequestInitiators.cpp: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11838         (WebCore):
11839         (WebCore::CachedResourceRequestInitiators::CachedResourceRequestInitiators):
11840         * loader/cache/CachedResourceRequestInitiators.h: Copied from Source/WebCore/loader/cache/CachedResourceRequest.cpp.
11841         (WebCore):
11842         (CachedResourceRequestInitiators):
11843         (WebCore::cachedResourceRequestInitiators):
11844         * loader/icon/IconLoader.cpp:
11845         (WebCore::IconLoader::startLoading):
11846         * platform/ThreadGlobalData.cpp:
11847         (WebCore::ThreadGlobalData::ThreadGlobalData):
11848         * platform/ThreadGlobalData.h:
11849         (WebCore):
11850         (WebCore::ThreadGlobalData::cachedResourceRequestInitiators):
11851         (ThreadGlobalData):
11852         * svg/SVGFEImageElement.cpp:
11853         (WebCore::SVGFEImageElement::requestImageResource):
11854         * svg/SVGFontFaceUriElement.cpp:
11855         (WebCore::SVGFontFaceUriElement::loadFont):
11856         * svg/SVGUseElement.cpp:
11857         (WebCore::SVGUseElement::svgAttributeChanged):
11858
11859 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
11860
11861         Unreviewed, rolling out r134345.
11862         http://trac.webkit.org/changeset/134345
11863         https://bugs.webkit.org/show_bug.cgi?id=102106
11864
11865         Incomplete support for NATIVE_TYPE_ERR in objc and other
11866         bindings (Requested by jsbell on #webkit).
11867
11868         * Modules/mediastream/MediaConstraintsImpl.cpp:
11869         (WebCore::MediaConstraintsImpl::create):
11870         * Modules/mediastream/MediaStreamTrackList.cpp:
11871         (WebCore::MediaStreamTrackList::add):
11872         (WebCore::MediaStreamTrackList::remove):
11873         * Modules/mediastream/RTCDataChannel.cpp:
11874         (WebCore::RTCDataChannel::setBinaryType):
11875         * Modules/mediastream/RTCIceCandidate.cpp:
11876         (WebCore::RTCIceCandidate::create):
11877         * Modules/mediastream/RTCPeerConnection.cpp:
11878         (WebCore::RTCPeerConnection::parseConfiguration):
11879         (WebCore::RTCPeerConnection::createOffer):
11880         (WebCore::RTCPeerConnection::createAnswer):
11881         (WebCore::RTCPeerConnection::setLocalDescription):
11882         (WebCore::RTCPeerConnection::setRemoteDescription):
11883         (WebCore::RTCPeerConnection::addIceCandidate):
11884         (WebCore::RTCPeerConnection::addStream):
11885         (WebCore::RTCPeerConnection::removeStream):
11886         * Modules/mediastream/RTCSessionDescription.cpp:
11887         (WebCore::RTCSessionDescription::create):
11888         (WebCore::RTCSessionDescription::setType):
11889         * bindings/js/CallbackFunction.cpp:
11890         (WebCore::checkFunctionOnlyCallback):
11891         * bindings/js/JSCustomXPathNSResolver.cpp:
11892         (WebCore::JSCustomXPathNSResolver::create):
11893         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
11894         (WebCore::JSHTMLOptionsCollection::add):
11895         * bindings/js/JSHTMLSelectElementCustom.cpp:
11896         (WebCore::selectIndexSetter):
11897         * bindings/js/JSMutationObserverCustom.cpp:
11898         (WebCore::JSMutationObserverConstructor::constructJSMutationObserver):
11899         * bindings/js/JSSQLResultSetRowListCustom.cpp:
11900         (WebCore::JSSQLResultSetRowList::item):
11901         * bindings/js/JSSQLTransactionCustom.cpp:
11902         (WebCore::JSSQLTransaction::executeSql):
11903         * bindings/js/JSSQLTransactionSyncCustom.cpp:
11904         (WebCore::JSSQLTransactionSync::executeSql):
11905         * bindings/scripts/CodeGeneratorJS.pm:
11906         (GenerateParametersCheck):
11907         * bindings/scripts/CodeGeneratorObjC.pm:
11908         (GenerateImplementation):
11909         * bindings/scripts/CodeGeneratorV8.pm:
11910         (GenerateFunctionCallString):
11911         * bindings/v8/V8Callback.h:
11912         (WebCore::createFunctionOnlyCallback):
11913         * bindings/v8/V8Collection.cpp:
11914         (WebCore::toOptionsCollectionSetter):
11915         * bindings/v8/custom/V8DocumentCustom.cpp:
11916         (WebCore::V8Document::evaluateCallback):
11917         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
11918         (WebCore::V8HTMLOptionsCollection::addCallback):
11919         * bindings/v8/custom/V8MutationObserverCustom.cpp:
11920         (WebCore::V8MutationObserver::constructorCallback):
11921         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
11922         (WebCore::V8SQLTransaction::executeSqlCallback):
11923         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
11924         (WebCore::V8SQLTransactionSync::executeSqlCallback):
11925         * dom/DOMCoreException.idl:
11926         * html/HTMLElement.cpp:
11927         (WebCore::HTMLElement::insertAdjacentElement):
11928         * html/HTMLMediaElement.cpp:
11929         (WebCore::HTMLMediaElement::webkitAddKey):
11930         * html/HTMLOptionsCollection.cpp:
11931         (WebCore::HTMLOptionsCollection::add):
11932         * html/canvas/CanvasRenderingContext2D.cpp:
11933         (WebCore::CanvasRenderingContext2D::drawImage):
11934         (WebCore::CanvasRenderingContext2D::createPattern):
11935         (WebCore::CanvasRenderingContext2D::putImageData):
11936         (WebCore::CanvasRenderingContext2D::webkitPutImageDataHD):
11937         * page/Crypto.cpp:
11938         (WebCore::Crypto::getRandomValues):
11939         * page/DOMSelection.cpp:
11940         (WebCore::DOMSelection::extend):
11941         * svg/properties/SVGTransformListPropertyTearOff.h:
11942         (WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
11943
11944 2012-11-13  Erik Arvidsson  <arv@chromium.org>
11945
11946         Update DOMException name: HierarchyRequestError
11947         https://bugs.webkit.org/show_bug.cgi?id=102092
11948
11949         Reviewed by Ojan Vafai.
11950
11951         Patch 3 of 25 to update DOMException name to match the spec and Firefox.
11952
11953         Updated existing tests.
11954
11955         * dom/DOMCoreException.cpp:
11956
11957 2012-11-13  Kenneth Rohde Christiansen  <kenneth@webkit.org>
11958
11959         Clean up use of adjustWindowRect
11960         https://bugs.webkit.org/show_bug.cgi?id=102072
11961
11962         Reviewed by Alexis Menard.
11963
11964         Tested by fast/dom/Window/open-window-min-size.html
11965
11966         * loader/FrameLoader.cpp:
11967         (WebCore::createWindow):
11968
11969             Validate the window size here so that it is not just done for
11970             .open, but also for .showModalDialog. This is compatible with
11971             other browsers such as IE and Firefox (though IE > 6, enforces
11972             a minimum width of 250 instead of 100 as Firefox and us.)
11973
11974         * page/DOMWindow.cpp:
11975         (WebCore):
11976         (WebCore::DOMWindow::adjustWindowRect):
11977
11978             Make it a static method which only takes page. It was never
11979             called from anywhere without a valid page, so the page check
11980             has been turned into an assert, and two of the arguments have
11981             been removed as they can be accessed via the page.
11982
11983         (WebCore::DOMWindow::moveBy):
11984         (WebCore::DOMWindow::moveTo):
11985         (WebCore::DOMWindow::resizeBy):
11986         (WebCore::DOMWindow::resizeTo):
11987
11988             Update use of adjustWindowRect.
11989
11990         (WebCore::DOMWindow::open):
11991
11992             Avoid modifying the WindowFeatures as the WebCore::createWindow
11993             validates and adjusts the arguments.
11994
11995         * page/DOMWindow.h:
11996         (DOMWindow):
11997
11998 2012-11-13  Bem Jones-Bey  <bjonesbe@adobe.com>
11999
12000         [CSS Exclusions] Update wrap-margin/padding to shape-margin/padding
12001         https://bugs.webkit.org/show_bug.cgi?id=97736
12002
12003         Reviewed by Andreas Kling.
12004
12005         Rename properties to match updated spec.
12006
12007         Tests: fast/exclusions/shape-margin-parsing.html
12008                fast/exclusions/shape-padding-parsing.html
12009
12010         * css/CSSComputedStyleDeclaration.cpp:
12011         (WebCore):
12012         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
12013         * css/CSSParser.cpp:
12014         (WebCore::isSimpleLengthPropertyID):
12015         (WebCore::CSSParser::parseValue):
12016         * css/CSSProperty.cpp:
12017         (WebCore::CSSProperty::isInheritedProperty):
12018         * css/CSSPropertyNames.in:
12019         * css/StyleBuilder.cpp:
12020         (WebCore::StyleBuilder::StyleBuilder):
12021         * css/StylePropertySet.cpp:
12022         (WebCore::StylePropertySet::asText):
12023         * css/StylePropertyShorthand.cpp:
12024         (WebCore::webkitWrapShorthand):
12025         * css/StyleResolver.cpp:
12026         (WebCore::StyleResolver::applyProperty):
12027         * rendering/style/RenderStyle.cpp:
12028         (WebCore::RenderStyle::diff):
12029         * rendering/style/RenderStyle.h:
12030         * rendering/style/StyleRareNonInheritedData.cpp:
12031         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
12032         (WebCore::StyleRareNonInheritedData::operator==):
12033         * rendering/style/StyleRareNonInheritedData.h:
12034         (StyleRareNonInheritedData):
12035
12036 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12037
12038         Unreviewed, rolling out r134418.
12039         http://trac.webkit.org/changeset/134418
12040         https://bugs.webkit.org/show_bug.cgi?id=101903
12041
12042         The newly added test is crashing on cr-win.
12043
12044         * dom/ElementShadow.cpp:
12045         * dom/ElementShadow.h:
12046         * html/HTMLInputElement.cpp:
12047         (WebCore::HTMLInputElement::updateType):
12048         (WebCore::HTMLInputElement::setIndeterminate):
12049         * html/HTMLProgressElement.cpp:
12050         (WebCore::HTMLProgressElement::didElementStateChange):
12051         * html/shadow/SelectRuleFeatureSet.cpp:
12052         (WebCore::SelectRuleFeatureSet::add):
12053         (WebCore::SelectRuleFeatureSet::clear):
12054         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12055         * html/shadow/SelectRuleFeatureSet.h:
12056         (SelectRuleFeatureSet):
12057
12058 2012-11-13  Dimitri Glazkov  <dglazkov@chromium.org>
12059
12060         Unreviewed, rolling out r134391.
12061         http://trac.webkit.org/changeset/134391
12062         https://bugs.webkit.org/show_bug.cgi?id=99660
12063
12064         Speculative rollout, trying to fix browser_tests failure.
12065
12066         * English.lproj/localizedStrings.js:
12067         * inspector/Inspector.json:
12068         * inspector/InspectorClient.h:
12069         * inspector/InspectorPageAgent.cpp:
12070         (PageAgentState):
12071         (WebCore::InspectorPageAgent::enable):
12072         (WebCore::InspectorPageAgent::disable):
12073         * inspector/InspectorPageAgent.h:
12074         * inspector/front-end/Settings.js:
12075         * inspector/front-end/SettingsScreen.js:
12076         (WebInspector.GenericSettingsTab):
12077         * inspector/front-end/inspector.js:
12078         (WebInspector.doLoadedDone):
12079
12080 2012-11-13  Sheriff Bot  <webkit.review.bot@gmail.com>
12081
12082         Unreviewed, rolling out r134205.
12083         http://trac.webkit.org/changeset/134205
12084         https://bugs.webkit.org/show_bug.cgi?id=102093
12085
12086         Broke webkit-flow-inlines-dynamic.html on several ports
12087         (Requested by mihnea on #webkit).
12088
12089         * css/StyleResolver.cpp:
12090         (WebCore::StyleResolver::isValidRegionStyleProperty):
12091         * rendering/InlineBox.cpp:
12092         * rendering/InlineBox.h:
12093         (WebCore):
12094         (InlineBox):
12095         * rendering/InlineFlowBox.cpp:
12096         (WebCore::InlineFlowBox::addToLine):
12097         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
12098         * rendering/RenderRegion.cpp:
12099         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
12100         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
12101         (WebCore::RenderRegion::computeStyleInRegion):
12102         (WebCore::RenderRegion::computeChildrenStyleInRegion):
12103         (WebCore::RenderRegion::setObjectStyleInRegion):
12104         (WebCore::RenderRegion::clearObjectStyleInRegion):
12105         * rendering/RenderRegion.h:
12106         (RenderRegion):
12107         (ObjectRegionStyleInfo):
12108
12109 2012-11-13  Andreas Kling  <kling@webkit.org>
12110
12111         Remove the non-const overload of ElementAttributeData::inlineStyle().
12112
12113         Rubber-stamped by Anders Koivisto.
12114
12115         No call sites actually needed a mutable StylePropertySet* from inlineStyle() anyway.
12116
12117         * dom/ElementAttributeData.h:
12118
12119 2012-11-13  Keishi Hattori  <keishi@webkit.org>
12120
12121         [Chromium] Enable input type month/week
12122         https://bugs.webkit.org/show_bug.cgi?id=102042
12123
12124         Reviewed by Kent Tamura.
12125
12126         Enable input type month/week for Chromium.
12127
12128         No new tests. Tests will be added later in Bug 102045 and Bug 102046.
12129
12130         * bindings/generic/RuntimeEnabledFeatures.cpp:
12131         (WebCore):
12132
12133 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12134
12135         [Refactoring] Remove shadowPseudoId() and use setPseudo() in <meter> ElementShadow.
12136         https://bugs.webkit.org/show_bug.cgi?id=101906
12137
12138         Reviewed by Dimitri Glazkov.
12139
12140         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
12141         setPseudo()/pseudo() instead.
12142
12143         No new tests, covered by existing tests.
12144
12145         * html/HTMLMeterElement.cpp:
12146         (WebCore::HTMLMeterElement::didElementStateChange): Since shadowPseudoId() was returning pseudo id without setting
12147         it anywhere, we have to set it into pseudo attribute here.
12148         (WebCore::HTMLMeterElement::createShadowSubtree): ditto.
12149         * html/shadow/MeterShadowElement.cpp:
12150         (WebCore::MeterInnerElement::MeterInnerElement):
12151         (WebCore::MeterValueElement::valuePseudoId):
12152         * html/shadow/MeterShadowElement.h:
12153         (MeterInnerElement):
12154         (WebCore::MeterBarElement::MeterBarElement):
12155         (MeterBarElement):
12156         (WebCore::MeterValueElement::MeterValueElement):
12157         (WebCore::MeterValueElement::updatePseudo):
12158         (MeterValueElement):
12159
12160 2012-11-13  Shinya Kawanaka  <shinyak@chromium.org>
12161
12162         Changing pseudoClass (:indeterminate) should cause distribution
12163         https://bugs.webkit.org/show_bug.cgi?id=101903
12164
12165         Reviewed by Dimitri Glazkov.
12166
12167         <progress> and <input type="checkbox"> have 'indeterminate' state. When their state is changed, we have to
12168         invalidate distribution if necessary. To check it, we collect a feature that :invalidate is used in select attributes.
12169
12170         For <input>, we also have to see 'type' is changed. According to the spec, :indeterminate should match only
12171         progress element or <input type="checkbox">. So changing 'type' might also change :indeterminate state.
12172
12173         Tests: fast/dom/shadow/pseudoclass-update-indeterminate-input.html
12174                fast/dom/shadow/pseudoclass-update-indeterminate-progress.html
12175
12176         * dom/ElementShadow.cpp:
12177         (WebCore::invalidateParentDistributionIfNecessary): Since we will add a lot of pseudoClass check later, we would like to
12178         have this kind of helper method. We will add various pseudoClass check (see Bug 101697), we reuse CSSSelector::PseudoType
12179         here.
12180         (WebCore):
12181         * dom/ElementShadow.h:
12182         (WebCore):
12183         * html/HTMLInputElement.cpp:
12184         (WebCore::HTMLInputElement::updateType): Invalidate parent distribution anyway, since it changes various internal states.
12185         (WebCore::HTMLInputElement::setIndeterminate): Invalidate parent distribution if necessary.
12186         * html/HTMLProgressElement.cpp:
12187         (WebCore::HTMLProgressElement::didElementStateChange):
12188         * html/shadow/SelectRuleFeatureSet.cpp:
12189         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet): Adds m_usesIndeterminate feature.
12190         (WebCore::SelectRuleFeatureSet::add):
12191         (WebCore::SelectRuleFeatureSet::clear):
12192         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
12193         * html/shadow/SelectRuleFeatureSet.h:
12194         (WebCore::SelectRuleFeatureSet::hasSelectorForIndeterminate):
12195         (SelectRuleFeatureSet):
12196
12197 2012-11-13  Andreas Kling  <kling@webkit.org>
12198
12199         Exploit ElementAttributeData sharing in Node.cloneNode.
12200         <http://webkit.org/b/101374>
12201
12202         Reviewed by Anders Carlsson.
12203
12204         Instead of blindly creating a new ElementAttributeData for Node.cloneNode, let's be clever!
12205         If the source data is immutable, simply ref it from the new node at virtually no cost.
12206
12207         If the source data is mutable, convert it to immutable data so it can be shared between both nodes.
12208         Since the typical use-case for Node.cloneNode is to create-once/clone-many, this saves both time
12209         and memory in the long run.
12210
12211         ~8% speed-up on PerformanceTests/DOM/CloneNodes on my MBP.
12212
12213         * dom/Element.cpp:
12214         (WebCore::Element::cloneAttributesFromElement):
12215
12216             Move attribute data cloning logic from ElementAttributeData to Element.
12217
12218         * dom/ElementAttributeData.cpp:
12219         (WebCore::ImmutableElementAttributeData::~ImmutableElementAttributeData):
12220         (WebCore::ImmutableElementAttributeData::ImmutableElementAttributeData):
12221         (WebCore::ElementAttributeData::ElementAttributeData):
12222         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
12223         (WebCore::ElementAttributeData::makeMutableCopy):
12224         (WebCore::ElementAttributeData::makeImmutableCopy):
12225         * dom/ElementAttributeData.h:
12226         (ElementAttributeData):
12227         (ImmutableElementAttributeData):
12228         (MutableElementAttributeData):
12229
12230             Add facilities for converting a mutable ElementAttributeData to an immutable one.
12231             Share some code in the common base class constructor.
12232
12233 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12234
12235         Unreviewed. Build fix of V8 bindings.
12236
12237         * bindings/v8/V8DOMWrapper.cpp:
12238         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12239
12240 2012-11-13  Andrey Adaikin  <aandrey@chromium.org>
12241
12242         Web Inspector: [Canvas] UI: make the Grid save scrolling position, show wait spinner icon
12243         https://bugs.webkit.org/show_bug.cgi?id=102071
12244
12245         Reviewed by Pavel Feldman.
12246
12247         * inspector/front-end/CanvasProfileView.js:
12248         (WebInspector.CanvasProfileView):
12249         (WebInspector.CanvasProfileView.prototype.dispose):
12250         (WebInspector.CanvasProfileView.prototype.elementsToRestoreScrollPositionsFor):
12251         (WebInspector.CanvasProfileView.prototype._enableWaitIcon):
12252         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
12253         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
12254         (WebInspector.CanvasProfileView.prototype._didReceiveTraceLog):
12255         (WebInspector.CanvasProfileView.prototype._createCallNode):
12256         * inspector/front-end/canvasProfiler.css:
12257         (#canvas-replay-image.wait):
12258
12259 2012-11-13  Eugene Klyuchnikov  <eustas.bug@gmail.com>
12260
12261         Web Inspector: Settings screen: some panel shortcuts are missing
12262         https://bugs.webkit.org/show_bug.cgi?id=101026
12263
12264         Reviewed by Pavel Feldman.
12265
12266         Panels, that have not been loaded by the time shortcuts view was
12267         initialized, had no chance to register shortcuts.
12268
12269         Solution: move shortcut registration (for shortcuts screen) to panel
12270         descriptors.
12271
12272         More changes: add JsDoc annotations to ShortcutScreen and change "key"
12273         parameter type for raw string to key descriptor object.
12274
12275         * WebCore.gypi: Added TimelinePanelDescriptor.js file.
12276         * WebCore.vcproj/WebCore.vcproj: Ditto.
12277         * inspector/compile-front-end.py: Ditto.
12278         * inspector/front-end/WebKit.qrc: Ditto.
12279         * inspector/front-end/inspector.html: Ditto.
12280         * inspector/front-end/AdvancedSearchController.js: Add JsDoc annotation.
12281         * inspector/front-end/GoToLineDialog.js: Ditto.
12282         * inspector/front-end/CallStackSidebarPane.js: Removed shortcut-screen
12283         shortcuts registration.
12284         * inspector/front-end/ElementsPanel.js: Ditto.
12285         * inspector/front-end/ScriptsPanel.js: Ditto.
12286         * inspector/front-end/StylesSidebarPane.js: Ditto.
12287         * inspector/front-end/TimelinePanel.js: Ditto.
12288         * inspector/front-end/ConsoleView.js: Changes order of lines to increase
12289         readability.
12290         * inspector/front-end/ElementsPanelDescriptor.js: Add shortcut-screen
12291         shortcuts registration and key descriptor constants.
12292         * inspector/front-end/ScriptsPanelDescriptor.js: Ditto.
12293         * inspector/front-end/TimelinePanelDescriptor.js: Ditto.
12294         * inspector/front-end/Panel.js: Removed unused "uregisterShortcut"; made
12295         "registerShortcuts" method accept array of key descriptors.
12296         (WebInspector.PanelDescriptor.prototype.registerShortcuts): Added.
12297         * inspector/front-end/ShortcutsScreen.js: Added JsDoc; changed parameter
12298         type from string to key descriptor.
12299         * inspector/front-end/inspector.js: Register shortcuts using
12300         panel descriptors.
12301         (WebInspector._panelDescriptors): Removed duplicate line.
12302
12303 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12304
12305         Optimize RGB565 and RGBA5551 packing/unpacking functions with NEON intrinsics
12306         https://bugs.webkit.org/show_bug.cgi?id=102060
12307
12308         Reviewed by Zoltan Herczeg.
12309
12310         Adding more NEONized packing functions to GraphicsContext3DNEON.h.
12311         These functions are three times faster with this intrinsics optimizations.
12312
12313         * platform/graphics/GraphicsContext3D.cpp:
12314         (WebCore):
12315         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h:
12316         (WebCore::ARM::unpackOneRowOfRGBA5551ToRGBA8NEON):
12317         (ARM):
12318         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort5551NEON):
12319         (WebCore::ARM::unpackOneRowOfRGB565ToRGBA8NEON):
12320         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort565NEON):
12321
12322 2012-11-13  Csaba Osztrogonác  <ossy@webkit.org>
12323
12324         [Qt] Enable Mutation observer
12325         https://bugs.webkit.org/show_bug.cgi?id=102066
12326
12327         Reviewed by Pavel Feldman.
12328
12329         * DerivedSources.pri: Add missing IDL files.
12330
12331 2012-11-13  Kentaro Hara  <haraken@chromium.org>
12332
12333         [V8] Make isValidDOMObject() static
12334         https://bugs.webkit.org/show_bug.cgi?id=101914
12335
12336         Reviewed by Adam Barth.
12337
12338         isValidDOMObject() is used by DOMWrapper.cpp only.
12339
12340         No tests. No change in behavior.
12341
12342         * bindings/v8/V8DOMWrapper.cpp:
12343         (WebCore::isValidDOMObject):
12344         (WebCore):
12345         (WebCore::V8DOMWrapper::maybeDOMWrapper):
12346         * bindings/v8/V8DOMWrapper.h:
12347         (V8DOMWrapper):
12348
12349 2012-11-13  Mihnea Ovidenie  <mihnea@adobe.com>
12350
12351         [CSSRegions] Incorrect computed height for content with region-break-before
12352         https://bugs.webkit.org/show_bug.cgi?id=101862
12353
12354         Reviewed by Julien Chaffraix.
12355
12356         When processing the region breaks for auto-height regions, we skipped the case
12357         when the region-break-before occurred in the first region in the chain which was
12358         an auto-height region. Because of that, the region computed height was not 0
12359         as it was supposed to be, but rather LayoutUnit::max() / 2.
12360
12361         Test: fast/regions/autoheight-breakbefore-wrongheight.html
12362
12363         * rendering/RenderFlowThread.cpp:
12364         (WebCore::RenderFlowThread::addForcedRegionBreak):
12365         Make sure we process also the case when the region-break occurs at offset 0 in the flow thread
12366         and the first region in chain is an auto-height region.
12367         * rendering/RenderRegion.cpp:
12368         (WebCore::RenderRegion::updateLogicalHeight):
12369         Add an assert to make sure that the computed height for auto-height regions is always less than LayoutUnit::max() / 2.
12370
12371 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12372
12373         Memory instrumentation: remove reportMemoryUsage method from ImageObserver
12374         https://bugs.webkit.org/show_bug.cgi?id=102058
12375
12376         Reviewed by Pavel Feldman.
12377
12378         * bindings/v8/V8PerIsolateData.cpp:
12379         (WebCore::V8PerIsolateData::reportMemoryUsage): drive-by fix, no need to report
12380         each element of the vector as generic vector instrumentation will take care of it.
12381         * platform/graphics/Image.cpp: the client is reported as weak pointer to make sure
12382         we don't count its by the pointer to the base class which may differ from the actual
12383         object address.
12384         (WebCore::Image::reportMemoryUsage):
12385         * platform/graphics/ImageObserver.h: removed reportMemoryUsage method from the interface.
12386         (ImageObserver):
12387
12388 2012-11-13  Eberhard Graether  <egraether@google.com>
12389
12390         checkbox to toggle FPS counter in the inspector's settings
12391         https://bugs.webkit.org/show_bug.cgi?id=99660
12392
12393         Reviewed by Pavel Feldman.
12394
12395         Added a checkbox to the inspector's settings to toggle a FPS counter. The checkbox appears when InspectorClient::canShowFPSCounter() returns true.
12396
12397         No new tests.
12398
12399         * English.lproj/localizedStrings.js:
12400         * inspector/Inspector.json:
12401         * inspector/InspectorClient.h:
12402         (WebCore::InspectorClient::canShowFPSCounter):
12403         (WebCore::InspectorClient::setShowFPSCounter):
12404         (InspectorClient):
12405         * inspector/InspectorPageAgent.cpp:
12406         (PageAgentState):
12407         (WebCore::InspectorPageAgent::enable):
12408         (WebCore::InspectorPageAgent::disable):
12409         (WebCore::InspectorPageAgent::canShowFPSCounter):
12410         (WebCore):
12411         (WebCore::InspectorPageAgent::setShowFPSCounter):
12412         * inspector/InspectorPageAgent.h:
12413         * inspector/front-end/Settings.js:
12414         * inspector/front-end/SettingsScreen.js:
12415         (WebInspector.GenericSettingsTab):
12416         (WebInspector.GenericSettingsTab.prototype.get _showFPSCounterChanged):
12417         * inspector/front-end/inspector.js:
12418         (WebInspector.doLoadedDone):
12419
12420 2012-11-12  Kent Tamura  <tkent@chromium.org>
12421
12422         Unable to set valid time value to input[type=time] with user interaction in some cases
12423         https://bugs.webkit.org/show_bug.cgi?id=102048
12424
12425         Reviewed by Kentaro Hara.
12426
12427         The implementations of shouldMillisecondFieldReadOnly,
12428         shouldMinuteFieldReadOnly, and shouldSecondFieldReadOnly were
12429         incorrect. We need to check if a part of the minimum value matches to
12430         the corresponding part of the current value.
12431
12432         Also, we had better check hour field editability.
12433
12434         Test: fast/forms/time-multiple-fields/time-multiple-fields-readonly-subfield.html
12435
12436         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
12437         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField):
12438         Fix a problem that hh:mm:00.sss didn't create a seconds field.
12439         * html/shadow/DateTimeEditElement.cpp:
12440         (DateTimeEditBuilder): Add shouldHourFieldReadOnly declaration.
12441         (WebCore::DateTimeEditBuilder::visitField):
12442         Add shouldHourFieldReadOnly check to Hour11/Hour12/Hour23/Hour24/Period fields.
12443         (WebCore::DateTimeEditBuilder::shouldHourFieldReadOnly):
12444         Added. An hour field should be read-only if the step value is a multiple
12445         of a day and the hour part of the minimum value matches to the hour part
12446         of the value.
12447         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
12448         A millisecond field should be read-only if the step value is a multiple
12449         of one second and the millisecond part of the minimum value matches to
12450         the millisecond part of the value.
12451         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly):
12452         A minute field should be read-only if the step value is a multiple of
12453         one hour and the minute part of the minimum value matches to the minute
12454         part of the value.
12455         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly):
12456         A second field should be read-only if the step value is a multiple of
12457         one minute and the second part of the minimum value matches to the second
12458         part of the value.
12459         * platform/Decimal.cpp:
12460         (WebCore::Decimal::remainder):
12461         Fix a bug in case that the fractional part of quotient is >= 0.5. Also
12462         make this matches to C99, C++11, ECMAScript behavior.
12463
12464 2012-11-13  Yury Semikhatsky  <yurys@chromium.org>
12465
12466         Memory instrumentation: MemoryBlock name should not include full path to the block
12467         https://bugs.webkit.org/show_bug.cgi?id=102055
12468
12469         Reviewed by Pavel Feldman.
12470
12471         * inspector/InspectorMemoryAgent.cpp: pass only last path component as MemoryBlock name
12472         intead of fully qualified name.
12473
12474 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12475
12476         Web Inspector: get rid of enter/exitTextChangeMode in the editor
12477         https://bugs.webkit.org/show_bug.cgi?id=101845
12478
12479         Reviewed by Vsevolod Vlasov.
12480
12481         They seem to do nothing.
12482
12483         * inspector/front-end/DefaultTextEditor.js:
12484         (WebInspector.DefaultTextEditor.prototype._textChanged):
12485         (WebInspector.DefaultTextEditor.prototype.editRange):
12486         (WebInspector.TextEditorMainPanel):
12487         (WebInspector.TextEditorMainPanel.prototype.handleUndoRedo):
12488         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12489         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12490         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12491         * inspector/front-end/TextEditorModel.js:
12492         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12493
12494 2012-11-13  Tommy Widenflycht  <tommyw@google.com>
12495
12496         Remove the custom WebSocket::send for both V8 and JSC
12497         https://bugs.webkit.org/show_bug.cgi?id=101936
12498
12499         Reviewed by Kentaro Hara.
12500
12501         This patch removes the custom WebSocket::send since it isn't needed anymore.
12502
12503         Patch covered by existing tests.
12504
12505         * Modules/websockets/WebSocket.idl:
12506         * UseV8.cmake:
12507         * WebCore.gypi:
12508         * bindings/js/JSWebSocketCustom.cpp:
12509         * bindings/v8/custom/V8WebSocketCustom.cpp: Removed.
12510
12511 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12512
12513         Web Inspector: move indentation logic into TextEditorModel
12514         https://bugs.webkit.org/show_bug.cgi?id=101842
12515
12516         Reviewed by Vsevolod Vlasov.
12517
12518         I'd like to move as much headless logic into the TextEditorModel as possible.
12519         Drive by: removed some dead code, converted getter into function and moved undo
12520         mark state into the model as well.
12521
12522         * inspector/front-end/DefaultTextEditor.js:
12523         (WebInspector.DefaultTextEditor.prototype.editRange):
12524         (WebInspector.DefaultTextEditor.prototype._syncDecorationsForLine):
12525         (WebInspector.TextEditorChunkedPanel.prototype._splitChunkOnALine):
12526         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey.get var):
12527         (WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
12528         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12529         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
12530         (WebInspector.TextEditorMainChunk):
12531         (WebInspector.TextEditorMainChunk.prototype.isDecorated):
12532         (WebInspector.TextEditorMainChunk.prototype.set expanded):
12533         * inspector/front-end/TextEditorModel.js:
12534         (WebInspector.TextEditorModel.endsWithBracketRegex.):
12535
12536 2012-11-13  Hayato Ito  <hayato@chromium.org>
12537
12538         Unreviewed attempt to fix the chromium mac-build after r134348.
12539
12540         * platform/graphics/mac/FontMac.mm:
12541         (WebCore::Font::drawGlyphs):
12542         * platform/mac/WebCoreSystemInterface.h:
12543         * platform/mac/WebCoreSystemInterface.mm:
12544
12545 2012-11-13  Pavel Feldman  <pfeldman@chromium.org>
12546
12547         Web Inspector: migrate text editor to mutation observers
12548         https://bugs.webkit.org/show_bug.cgi?id=101841
12549
12550         Reviewed by Vsevolod Vlasov.
12551
12552         Otherwise, we miss notifications on the removed lines.
12553
12554         * inspector/front-end/DefaultTextEditor.js:
12555         (WebInspector.DefaultTextEditor.prototype.wasShown):
12556         (WebInspector.DefaultTextEditor.prototype.willHide):
12557         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
12558         (WebInspector.TextEditorMainPanel):
12559         (WebInspector.TextEditorMainPanel.prototype._wasShown):
12560         (WebInspector.TextEditorMainPanel.prototype._willHide):
12561         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
12562         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
12563         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
12564         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
12565         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
12566         (WebInspector.TextEditorMainPanel.prototype._paintLine):
12567         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
12568         (WebInspector.TextEditorMainPanel.prototype._handleMutations.else.get if):
12569         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
12570         (WebInspector.TextEditorMainPanel.prototype._collectDirtyLines):
12571         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
12572         * inspector/front-end/externs.js:
12573         (WebKitMutation):
12574         (WebKitMutationObserver.prototype.observe):
12575         (WebKitMutationObserver.prototype.disconnect):
12576         * inspector/front-end/textEditor.css:
12577         (.debug-fadeout):
12578         (@-webkit-keyframes debug-fadeout):
12579         (to):
12580
12581 2012-11-13  Gabor Rapcsanyi  <rgabor@webkit.org>
12582
12583         Optimize RGBA4444ToRGBA8 packing/unpacking functions with NEON intrinsics in GraphicsContext3D
12584         https://bugs.webkit.org/show_bug.cgi?id=101473
12585
12586         Reviewed by Zoltan Herczeg.
12587
12588         With NEON intrinsics the packing/unpacking functions can be optimized well.
12589         This particular function is about 3 times faster with ARM NEON. On top level tests
12590         the speed up was 1.18x.
12591
12592         * CMakeLists.txt:
12593         * GNUmakefile.am:
12594         * GNUmakefile.list.am:
12595         * Target.pri:
12596         * WebCore.gyp/WebCore.gyp:
12597         * WebCore.gypi:
12598         * WebCore.pri:
12599         * WebCore.xcodeproj/project.pbxproj:
12600         * platform/graphics/GraphicsContext3D.cpp:
12601         (WebCore):
12602         * platform/graphics/cpu/arm/GraphicsContext3DNEON.h: Added.
12603         (WebCore):
12604         (ARM):
12605         (WebCore::ARM::unpackOneRowOfRGBA4444ToRGBA8NEON):
12606         (WebCore::ARM::packOneRowOfRGBA8ToUnsignedShort4444NEON):
12607
12608 2012-11-13  Takashi Sakamoto  <tasak@google.com>
12609
12610         Crash when replacing parts of text inputs with content: url(...)
12611         https://bugs.webkit.org/show_bug.cgi?id=101133
12612
12613         Reviewed by Kent Tamura.
12614
12615         Disable directly setting content of elements in an input element's
12616         shadow dom tree, because the setting breaks input element's behavior.
12617
12618         Tests: fast/forms/number/number-content-url-crash.html
12619                fast/forms/search/search-content-url-crash.html
12620
12621         * css/html.css:
12622         (input::-webkit-textfield-decoration-container):
12623         Use important to disable overriding an input element's content
12624         property.
12625         * html/TextFieldInputType.cpp:
12626         (WebCore::TextFieldInputType::attach):
12627         Added ASSERTION. No content should be applied to
12628         input::-webkit-textfield-decoration-container.
12629
12630 2012-11-12  Huang Dongsung  <luxtella@company100.net>
12631
12632         [Qt] REGRESSION(134142): overscaled tiles in pixel test results and MiniBrowser
12633         https://bugs.webkit.org/show_bug.cgi?id=101918
12634
12635         Reviewed by Noam Rosenthal.
12636
12637         Remove TiledBackingStore::rect(), because it is not used anymore.
12638
12639         * platform/graphics/TiledBackingStore.h:
12640         (TiledBackingStore):
12641
12642 2012-11-12  Adam Barth  <abarth@webkit.org>
12643
12644         [V8] We should be able to recover the V8DOMWindowShell more quickly
12645         https://bugs.webkit.org/show_bug.cgi?id=102020
12646
12647         Reviewed by Kentaro Hara.
12648
12649         For isolated worlds, we used to store the V8DOMWindowShell as an
12650         internal field of the inner DOM window. This patch moves the pointer to
12651         an internal field of the v8::Context, which saves us the work of
12652         looking up the inner DOM window.
12653
12654         Unfortunately, we cannot store the V8DOMWindowShell in V8PerContextData
12655         because the V8DOMWindowShell outlives the V8PerContextData. (We destroy
12656         the V8PerContextData when we detach the V8DOMWindowShell from the
12657         frame.)
12658
12659         * bindings/scripts/CodeGeneratorV8.pm:
12660         (GetInternalFields):
12661         * bindings/v8/V8DOMWindowShell.cpp:
12662         (WebCore::V8DOMWindowShell::initializeIfNeeded):
12663         * bindings/v8/V8DOMWindowShell.h:
12664         (WebCore::V8DOMWindowShell::getEntered):
12665         * bindings/v8/V8PerContextData.h:
12666
12667 2012-11-12  Kentaro Hara  <haraken@chromium.org>
12668
12669         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
12670         https://bugs.webkit.org/show_bug.cgi?id=101054
12671
12672         Reviewed by Adam Barth.
12673
12674         I'm investigating a Chromium crash bug:
12675         http://code.google.com/p/chromium/issues/detail?id=155942
12676
12677         I've not yet identified the root cause (because I can't reproduce
12678         the crash), but it looks like we are storing NULL pointers to
12679         V8 internal fields. Just in case, we can add an ASSERT() to
12680         guarantee that NULL pointers are never stored. (Also I'm hoping
12681         that this ASSERT() will give me more debug information.)
12682
12683         No tests. No change in behavior.
12684
12685         * bindings/v8/V8DOMWrapper.h:
12686         (WebCore::V8DOMWrapper::setDOMWrapper):
12687
12688 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
12689
12690         Changing id, className, or attribute should invalidate distribution
12691         https://bugs.webkit.org/show_bug.cgi?id=100738
12692
12693         Reviewed by Dimitri Glazkov.
12694
12695         When id, className, or attribute is changed, we might have to invalidate distribution.
12696         However, we don't want to do useless invalidation. So we consult with the RuleFeatureSet of ElementShadow,
12697         and invalidate distribution only if necessary.
12698
12699         When className is changed, we can share a lot of code between invalidating distribution and invalidating style.
12700         So we made checkNeedsStyleInvalidationForClassChange a template method, and share it.
12701
12702         Also we've measured how this patch makes changing attribute slow. By converting checkNeedsStyleInvalidationForClassChange
12703         to template, actually this improves the performance of changing attribute code. I've measured each code 3 times.
12704
12705         DOM/ModifyAttribute.html
12706         Before this patch:
12707                 median  stdev  min      max    [ms]
12708           1st   115.62   0.67  114.75   117.00
12709           2nd   115.08   1.13  113.25   117.58
12710           3rd   114.75   1.16  113.42   117.83
12711
12712         After this patch:
12713                 median  stdev  min      max    [ms]
12714           1st   102.55   0.95  101.25   104.50
12715           2nd   103.10   0.86  102.20   100.95
12716           3rd   103.30   1.05  102.10   106.65
12717
12718         Tests: fast/dom/shadow/distribution-attribute-modified.html
12719                fast/dom/shadow/distribution-className-modified.html
12720                fast/dom/shadow/distribution-id-modified.html
12721                fast/dom/shadow/reprojection-attribute-modified.html
12722                fast/dom/shadow/reprojection-className-modified.html
12723                fast/dom/shadow/reprojection-id-modified.html
12724
12725         * dom/Element.cpp:
12726         (WebCore::Element::attributeChanged):
12727         (WebCore::HasSelectorForClassStyleFunctor::HasSelectorForClassStyleFunctor):
12728         (HasSelectorForClassStyleFunctor):
12729         (WebCore::HasSelectorForClassStyleFunctor::operator()): Returns true if StyleResolver::hasSelectorForClass returns true.
12730         (WebCore):
12731         (WebCore::HasSelectorForClassDistributionFunctor::HasSelectorForClassDistributionFunctor):
12732         (HasSelectorForClassDistributionFunctor):
12733         (WebCore::HasSelectorForClassDistributionFunctor::operator()): Returns true if ElementShadow::hasSelectorForClass returns true.
12734         (WebCore::checkFunctorForClassChange):
12735         (WebCore::checkNeedsStyleInvalidationForClassChange): Extacted the implementation to checkFunctorForClassChange.
12736         (WebCore::checkNeedsDistributionInvalidationForClassChange):
12737         (WebCore::Element::classAttributeChanged):
12738
12739 2012-11-12  Joe Mason  <jmason@rim.com>
12740
12741         [BlackBerry] NetworkJob should not check if data is received with HEAD
12742         https://bugs.webkit.org/show_bug.cgi?id=102034
12743
12744         Reviewed by George Staikos.
12745
12746         Internal PR: 241391
12747
12748         Make HEAD requests call didFinish instead of didFail on a 404 response, even though they
12749         have no data.
12750
12751         Tests: ManualTests/blackberry/head-xhr-nonexistant-file.html
12752
12753         * platform/network/blackberry/NetworkJob.cpp:
12754         (WebCore::NetworkJob::NetworkJob):
12755         (WebCore::NetworkJob::initialize):
12756         (WebCore::NetworkJob::shouldNotifyClientFailed):
12757         * platform/network/blackberry/NetworkJob.h:
12758         (NetworkJob):
12759
12760 2012-11-12  Adam Barth  <abarth@webkit.org>
12761
12762         [V8] V8DOMWrapper::instantiateV8Object shouldn't use deprecatedDocument
12763         https://bugs.webkit.org/show_bug.cgi?id=102015
12764
12765         Reviewed by Kentaro Hara.
12766
12767         Previously, Nodes had a special path through
12768         V8DOMWrapper::instantiateV8Object using deprecatedDocument so that we
12769         could find the V8PerContextData quickly. Now that we can get the
12770         V8PerContextData from the v8::Context quickly, we can move Nodes to the
12771         general case. The net consequence is that creation of all DOM objects
12772         should be as fast as Nodes are.
12773
12774         * bindings/scripts/CodeGeneratorV8.pm:
12775         (GenerateToV8Converters):
12776         * bindings/scripts/test/V8/V8Float64Array.cpp:
12777         (WebCore::V8Float64Array::wrapSlow):
12778         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
12779         (WebCore::V8TestActiveDOMObject::wrapSlow):
12780         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
12781         (WebCore::V8TestCustomNamedGetter::wrapSlow):
12782         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
12783         (WebCore::V8TestEventConstructor::wrapSlow):
12784         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
12785         (WebCore::V8TestEventTarget::wrapSlow):
12786         * bindings/scripts/test/V8/V8TestException.cpp:
12787         (WebCore::V8TestException::wrapSlow):
12788         * bindings/scripts/test/V8/V8TestInterface.cpp:
12789         (WebCore::V8TestInterface::wrapSlow):
12790         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
12791         (WebCore::V8TestMediaQueryListListener::wrapSlow):
12792         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
12793         (WebCore::V8TestNamedConstructor::wrapSlow):
12794         * bindings/scripts/test/V8/V8TestNode.cpp:
12795         (WebCore::V8TestNode::wrapSlow):
12796         * bindings/scripts/test/V8/V8TestObj.cpp:
12797         (WebCore::V8TestObj::wrapSlow):
12798         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
12799         (WebCore::V8TestOverloadedConstructors::wrapSlow):
12800         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
12801         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
12802         * bindings/v8/V8Binding.cpp:
12803         * bindings/v8/V8Binding.h:
12804         (WebCore):
12805         * bindings/v8/V8DOMWrapper.cpp:
12806         (WebCore::V8DOMWrapper::instantiateV8Object):
12807         * bindings/v8/V8DOMWrapper.h:
12808         (V8DOMWrapper):
12809
12810 2012-11-12  KyungTae Kim  <ktf.kim@samsung.com>
12811
12812         Some CSS properties are not handled on StyleResolver::applyProperty
12813         https://bugs.webkit.org/show_bug.cgi?id=102027
12814
12815         Reviewed by Gyuyoung Kim.
12816
12817         The CSSPropertyMaxZoom, CSSPropertyMinZoom, CSSPropertyOrientation and CSSPropertyUserZoom
12818         need to be handled on StyleResolver::applyProperty.
12819
12820         * css/StyleResolver.cpp:
12821         (WebCore::StyleResolver::applyProperty):
12822
12823 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12824
12825         Avoid calling calculateLayerBounds() and convertToLayerCoords() more than once per layer paint
12826         https://bugs.webkit.org/show_bug.cgi?id=102031
12827
12828         Reviewed by Beth Dakin.
12829
12830         RenderLayer::paintLayerContents() and callees could end up calling convertToLayerCoords()
12831         and calculateLayerBounds() multiple times for painting a single layer.
12832         
12833         Keep track of whether we've computed the root-relative bounds and do it on demand.
12834         Compute the offset relative to rootLayer once, and pass it around as an optional parameter
12835         to functions that need it.
12836
12837         * rendering/RenderLayer.cpp:
12838         (WebCore::RenderLayer::paintLayerContents):
12839         (WebCore::RenderLayer::hitTestLayer):
12840         (WebCore::RenderLayer::calculateRects):
12841         (WebCore::RenderLayer::intersectsDamageRect):
12842         (WebCore::RenderLayer::boundingBox):
12843         (WebCore::RenderLayer::calculateLayerBounds):
12844         * rendering/RenderLayer.h:
12845         * rendering/RenderLayerCompositor.cpp:
12846         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12847
12848 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
12849
12850         Change calculateLayerBounds() from a static function to a member function
12851         https://bugs.webkit.org/show_bug.cgi?id=102022
12852
12853         Reviewed by Beth Dakin.
12854
12855         calculateLayerBounds() has grown into a substantial function after
12856         starting live as a little utility function, so make it a member function
12857         of RenderLayer, and adjust callers accordingly.
12858
12859         * rendering/RenderLayer.cpp:
12860         (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
12861         (WebCore::RenderLayer::paintLayerContents):
12862         (WebCore::RenderLayer::calculateLayerBounds):
12863         * rendering/RenderLayer.h:
12864         * rendering/RenderLayerCompositor.cpp:
12865         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
12866
12867 2012-11-12  Alexei Filippov  <alph@chromium.org>
12868
12869         Web Inspector: Add an option to switch display of "Other" memory on/off in NMI
12870         https://bugs.webkit.org/show_bug.cgi?id=101601
12871
12872         Reviewed by Yury Semikhatsky.
12873
12874         * English.lproj/localizedStrings.js:
12875         * inspector/front-end/NativeMemorySnapshotView.js:
12876         * inspector/front-end/Settings.js:
12877         * inspector/front-end/SettingsScreen.js:
12878         (WebInspector.GenericSettingsTab):
12879
12880 2012-11-10  Dirk Schulze  <krit@webkit.org>
12881
12882         BasicShapes 'circle', 'rectangle', 'ellipse' should be animatable with themselves
12883         https://bugs.webkit.org/show_bug.cgi?id=101854
12884
12885         Reviewed by Andreas Kling.
12886
12887         The basic shapes BasicShapeCircle, BasicShapeEllipse and BasicShapeRectangle should
12888         blend with themselves. This patch introduces simple interpolation of BasicShapes for
12889         the -webkit-clip-path property.
12890
12891         Test: css3/masking/clip-path-animation.html
12892
12893         * page/animation/CSSPropertyAnimation.cpp:
12894         (WebCore::blendFunc): Added a new function that blends between two BasicShape objects.
12895             It skips blending on <clipPath> references, polygons and if the shapes are not of
12896             the same type.
12897         (WebCore):
12898         (PropertyWrapperClipPath): Added new wrapper for ClipPathShapes.
12899         (WebCore::PropertyWrapperClipPath::PropertyWrapperClipPath): Ditto.
12900         (WebCore::CSSPropertyAnimation::ensurePropertyMap): Add -webkit-clip-path to animatable
12901             properties.
12902         * rendering/style/BasicShapes.cpp:
12903             The blending is done by each shape itself. This is similar to FilterOperations or
12904             TransformOperations.
12905         (WebCore::BasicShapeRectangle::blend):
12906         (WebCore):
12907         (WebCore::BasicShapeCircle::blend):
12908         (WebCore::BasicShapeEllipse::blend):
12909         (WebCore::BasicShapePolygon::blend):
12910         * rendering/style/BasicShapes.h:
12911             Added new blending functions to header.
12912         (BasicShape):
12913         (BasicShapeRectangle):
12914         (BasicShapeCircle):
12915         (BasicShapeEllipse):
12916         (BasicShapePolygon):
12917
12918 2012-11-12  Adam Barth  <abarth@webkit.org>
12919
12920         [V8] We should be able to get V8PerContextData from a v8::Context more quickly
12921         https://bugs.webkit.org/show_bug.cgi?id=102008
12922
12923         Reviewed by Ojan Vafai.
12924
12925         This patch uses the new v8::Context::GetAlignedPointerFromEmbedderData
12926         API to get the V8PerContextData associated with a v8::Context much more
12927         quickly. We no longer need to use a hidden property on the inner global
12928         object. This patch will enable future optimizations.
12929
12930         * bindings/v8/V8HiddenPropertyName.h:
12931         (WebCore):
12932         * bindings/v8/V8PerContextData.cpp:
12933         (WebCore::V8PerContextData::dispose):
12934         (WebCore::V8PerContextData::init):
12935         * bindings/v8/V8PerContextData.h:
12936         (WebCore::V8PerContextData::from):
12937
12938 2012-11-12  Elliott Sprehn  <esprehn@chromium.org>
12939
12940         Make Frames and HTMLFrameOwnerElement less friendly
12941         https://bugs.webkit.org/show_bug.cgi?id=102003
12942
12943         Reviewed by Ojan Vafai.
12944
12945         Frame used to assign HTMLFrameOwnerElement's m_contentFrame directly
12946         this patch makes it go through a method to allow future hooks when frames
12947         are associated with owners.
12948
12949         No new tests, this is just a refactor.
12950
12951         * html/HTMLFrameOwnerElement.cpp:
12952         (WebCore::HTMLFrameOwnerElement::setContentFrame):
12953         * html/HTMLFrameOwnerElement.h:
12954         (HTMLFrameOwnerElement):
12955         (WebCore::HTMLFrameOwnerElement::clearContentFrame):
12956         * page/Frame.cpp:
12957         (WebCore::Frame::Frame): Use new methods.
12958
12959 2012-11-12  Beth Dakin  <bdakin@apple.com>
12960
12961         Zoomed-in scrolling is very slow when deviceScaleFactor > 1
12962         https://bugs.webkit.org/show_bug.cgi?id=101787
12963
12964         Reviewed by Simon Fraser.
12965
12966         This patch adds a new member to the GraphicsContextState that tracks 
12967         whether or not fonts should be subpixel-quantized. We want to default 
12968         to sibpixel-quantizing, but we'll turn it off if we're scrolling 
12969         content that cannot be scrolled on the scrolling thread.
12970
12971         State has a new bool shouldSubpixelQuantizeFonts. It defaults to true 
12972         since normally we do want to quantize.
12973         * platform/graphics/GraphicsContext.cpp:
12974         (WebCore::GraphicsContext::setShouldSubpixelQuantizeFonts):
12975         (WebCore::GraphicsContext::shouldSubpixelQuantizeFonts):
12976         * platform/graphics/GraphicsContext.h:
12977         (WebCore::GraphicsContextState::GraphicsContextState):
12978         (GraphicsContextState):
12979         (GraphicsContext):
12980
12981         wkSetCGFontRenderingMode now takes a BOOL parameter which indicates 
12982         whether or not it should try to subpixel-quantize the fonts.
12983         * platform/graphics/mac/FontMac.mm:
12984         (WebCore::Font::drawGlyphs):
12985         * platform/mac/WebCoreSystemInterface.h:
12986         * platform/mac/WebCoreSystemInterface.mm:
12987
12988         Disable subpixel-quantization for overflow areas, subframes, and 
12989         content that is scrolling on the main thread.
12990         * rendering/RenderLayer.cpp:
12991         (WebCore::RenderLayer::paintLayerContents):
12992
12993 2012-11-12  Timothy Hatcher  <timothy@apple.com>
12994
12995         Expose InspectorFrontendClientLocal::setAttachedWindow as public.
12996
12997         This allows external actions to update the docked state in the frontend.
12998
12999         https://bugs.webkit.org/show_bug.cgi?id=102023
13000
13001         Reviewed by Anders Carlsson.
13002
13003         * inspector/InspectorFrontendClientLocal.h:
13004         Moved InspectorFrontendClientLocal::setAttachedWindow to public section.
13005
13006 2012-11-12  Erik Arvidsson  <arv@chromium.org>
13007
13008         Replace DOMException TYPE_MISMATCH_ERR with TypeError
13009         https://bugs.webkit.org/show_bug.cgi?id=101604
13010
13011         Reviewed by Adam Barth.
13012
13013         DOMException.TYPE_MISMATCH_ERR is deprecated in favor of using TypeError.
13014
13015         We have historically used TYPE_MISMATCH_ERR as a blanket DOMException code when
13016         the spec mandates TypeError being thrown.
13017
13018         Updated existing tests.
13019
13020         * Modules/mediastream/MediaConstraintsImpl.cpp:
13021         * Modules/mediastream/MediaStreamTrackList.cpp:
13022         * Modules/mediastream/PeerConnection00.cpp:
13023         * Modules/mediastream/RTCDataChannel.cpp:
13024         * Modules/mediastream/RTCIceCandidate.cpp:
13025         * Modules/mediastream/RTCPeerConnection.cpp:
13026         * Modules/mediastream/RTCSessionDescription.cpp:
13027         * Modules/mediastream/SessionDescription.cpp:
13028         * bindings/js/CallbackFunction.cpp:
13029         * bindings/js/JSCustomXPathNSResolver.cpp:
13030         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13031         * bindings/js/JSHTMLSelectElementCustom.cpp:
13032         * bindings/js/JSMutationObserverCustom.cpp:
13033         * bindings/js/JSSQLResultSetRowListCustom.cpp:
13034         * bindings/js/JSSQLTransactionCustom.cpp:
13035         * bindings/js/JSSQLTransactionSyncCustom.cpp:
13036         * bindings/scripts/CodeGeneratorJS.pm:
13037         * bindings/scripts/CodeGeneratorObjC.pm:
13038         * bindings/scripts/CodeGeneratorV8.pm:
13039         * bindings/v8/V8Callback.h:
13040         * bindings/v8/V8Collection.cpp:
13041         * bindings/v8/custom/V8DocumentCustom.cpp:
13042         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13043         * bindings/v8/custom/V8MutationObserverCustom.cpp:
13044         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
13045         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
13046         * dom/DOMCoreException.idl:
13047         * html/HTMLElement.cpp:
13048         * html/HTMLMediaElement.cpp:
13049         * html/HTMLOptionsCollection.cpp:
13050         * html/canvas/CanvasRenderingContext2D.cpp:
13051         * page/Crypto.cpp:
13052         * page/DOMSelection.cpp:
13053         * svg/properties/SVGTransformListPropertyTearOff.h:
13054
13055 2012-11-12  Joshua Bell  <jsbell@chromium.org>
13056
13057         IndexedDB: Use sequence<> instead of DOMString[] in IDL
13058         https://bugs.webkit.org/show_bug.cgi?id=100539
13059
13060         Reviewed by Adam Barth.
13061
13062         In the binding layer, DOMString[] is implemented as an alias for DOMStringList.
13063         WebIDL usage is tending towards sequence<DOMString> anyway for inputs, so switch
13064         to that. Note webkit.org/b/100537 which requires sequence<String> instead.
13065
13066         Covered by storage/indexeddb/transaction-basics.html and objectstore-basics.html
13067
13068         * Modules/indexeddb/IDBDatabase.cpp:
13069         (WebCore::IDBDatabase::transaction): DOMStringList -> Vector<String>
13070         * Modules/indexeddb/IDBDatabase.h:
13071         (WebCore::IDBDatabase::transaction):
13072         (IDBDatabase):
13073         * Modules/indexeddb/IDBDatabase.idl: DOMString[] -> sequence<String>
13074         * Modules/indexeddb/IDBObjectStore.cpp: Move trivial impls to header.
13075         * Modules/indexeddb/IDBObjectStore.h:
13076         (WebCore::IDBObjectStore::createIndex):
13077         * Modules/indexeddb/IDBObjectStore.idl: DOMString[] -> sequence<String>
13078
13079 2012-11-12  Anders Carlsson  <andersca@apple.com>
13080
13081         Remove Leopard only gradient code
13082         https://bugs.webkit.org/show_bug.cgi?id=102033
13083
13084         Reviewed by Dan Bernstein.
13085
13086         USE_CG_SHADING was only ever true on Leopard, so we can remove it now.
13087
13088         * platform/graphics/Gradient.h:
13089         * platform/graphics/cg/GradientCG.cpp:
13090         (WebCore::Gradient::platformDestroy):
13091         (WebCore::Gradient::platformGradient):
13092         (WebCore::Gradient::paint):
13093
13094 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13095
13096         [BlackBerry] Update BB10 form theme.
13097         https://bugs.webkit.org/show_bug.cgi?id=100760
13098
13099         Reviewed by Rob Buis.
13100
13101         RIM PR 237003
13102         Internally Reviewed by Eli Fidler.
13103         Since we nolonger use small font for form controls, adjust paddingDivisor
13104         ratio to decrease the padding value.
13105
13106         * platform/blackberry/RenderThemeBlackBerry.cpp:
13107         (WebCore):
13108
13109 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13110
13111         Fix filter dirty rect regression from r134311
13112         https://bugs.webkit.org/show_bug.cgi?id=102002
13113
13114         Reviewed by Beth Dakin.
13115
13116         When rendering with filters, the code can inflate the root-relative
13117         paintDirtyRect in RenderLayer::paintLayerContents(), and my cleanup
13118         broke this behavior.
13119     
13120         Fix by making a local copy of LayerPaintingInfo, updating its paintDirtyRect,
13121         and using it for the rest of the function.
13122
13123         * rendering/RenderLayer.cpp:
13124         (WebCore::RenderLayer::paintLayerContents):
13125
13126 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13127
13128         [V8] V8Event::valueAccessorGetter() in custom binding is not used
13129         https://bugs.webkit.org/show_bug.cgi?id=101893
13130
13131         Reviewed by Adam Barth.
13132
13133         No tests. No change in behavior.
13134
13135         * bindings/v8/custom/V8EventCustom.cpp:
13136
13137 2012-11-12  Roger Fong  <roger_fong@apple.com>
13138
13139         Web Inspector: Fix docking behaviour on Windows.
13140         https://bugs.webkit.org/show_bug.cgi?id=101978
13141
13142         Reviewed by Brian Weinstein.
13143
13144         There are a number of problems with docking behaviour on Windows.
13145         For starters, it does not ever constrain the inspector's size properly while docked.
13146         It also does not properly set the whether or not the inspector can be docked/undocked.
13147         This patch fixes both issues.
13148
13149         * inspector/InspectorFrontendClientLocal.cpp:
13150         (WebCore::InspectorFrontendClientLocal::frontendLoaded):
13151         Switch order of calling bringToFront and setDockingUnavailable.
13152
13153 2012-11-12  Adam Barth  <abarth@webkit.org>
13154
13155         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
13156         https://bugs.webkit.org/show_bug.cgi?id=101519
13157
13158         Reviewed by Ojan Vafai.
13159
13160         There should be no change in behavior.  The new API is slightly faster
13161         than the old API (and apparently works correctly internally in V8).
13162
13163         * bindings/scripts/CodeGeneratorV8.pm:
13164         (GenerateHeader):
13165         * bindings/scripts/test/V8/V8Float64Array.h:
13166         (WebCore::V8Float64Array::toNative):
13167         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
13168         (WebCore::V8TestActiveDOMObject::toNative):
13169         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
13170         (WebCore::V8TestCustomNamedGetter::toNative):
13171         * bindings/scripts/test/V8/V8TestEventConstructor.h:
13172         (WebCore::V8TestEventConstructor::toNative):
13173         * bindings/scripts/test/V8/V8TestEventTarget.h:
13174         (WebCore::V8TestEventTarget::toNative):
13175         * bindings/scripts/test/V8/V8TestException.h:
13176         (WebCore::V8TestException::toNative):
13177         * bindings/scripts/test/V8/V8TestInterface.h:
13178         (WebCore::V8TestInterface::toNative):
13179         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
13180         (WebCore::V8TestMediaQueryListListener::toNative):
13181         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
13182         (WebCore::V8TestNamedConstructor::toNative):
13183         * bindings/scripts/test/V8/V8TestNode.h:
13184         (WebCore::V8TestNode::toNative):
13185         * bindings/scripts/test/V8/V8TestObj.h:
13186         (WebCore::V8TestObj::toNative):
13187         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
13188         (WebCore::V8TestSerializedScriptValueInterface::toNative):
13189         * bindings/v8/NPV8Object.cpp:
13190         (WebCore::v8ObjectToNPObject):
13191         (WebCore::npCreateV8ScriptObject):
13192         * bindings/v8/V8Collection.h:
13193         (WebCore::toNativeCollection):
13194         * bindings/v8/V8DOMWindowShell.cpp:
13195         (WebCore::setIsolatedWorldField):
13196         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
13197         * bindings/v8/V8DOMWrapper.cpp:
13198         (WebCore::V8DOMWrapper::isWrapperOfType):
13199         * bindings/v8/V8DOMWrapper.h:
13200         (WebCore::V8DOMWrapper::setDOMWrapper):
13201         (WebCore::V8DOMWrapper::clearDOMWrapper):
13202         * bindings/v8/WrapperTypeInfo.h:
13203         (WebCore::toNative):
13204         (WebCore::toWrapperTypeInfo):
13205
13206 2012-11-12  Andreas Kling  <kling@webkit.org>
13207
13208         Rename AttributeStyle => PresentationAttributeStyle across WebCore.
13209         <http://webkit.org/b/101975>
13210
13211         Rubber-stamped by Antti Koivisto.
13212
13213         The completely separate concepts of "attribute style" and "style attribute" were a bit too
13214         easy to confuse in variable and method names. Reconfigure our terminology to call it
13215         "presentation attribute style" instead of "attribute style".
13216
13217         * css/StyleResolver.cpp:
13218         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
13219         (WebCore::StyleResolver::matchAllRules):
13220         (WebCore::StyleResolver::canShareStyleWithElement):
13221         * dom/Attr.cpp:
13222         (WebCore::Attr::style):
13223         * dom/ElementAttributeData.cpp:
13224         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
13225         (WebCore::ElementAttributeData::reportMemoryUsage):
13226         * dom/ElementAttributeData.h:
13227         (WebCore::ElementAttributeData::presentationAttributeStyle):
13228         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
13229         (ElementAttributeData):
13230         * dom/Node.h:
13231         (WebCore::Node::attributeStyleDirty):
13232         (WebCore::Node::setPresentationAttributeStyleDirty):
13233         (WebCore::Node::clearPresentationAttributeStyleDirty):
13234         * dom/StyledElement.cpp:
13235         (WebCore::StyledElement::attributeChanged):
13236         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
13237         (WebCore::StyledElement::addPropertyToPresentationAttributeStyle):
13238         * dom/StyledElement.h:
13239         (WebCore::StyledElement::additionalPresentationAttributeStyle):
13240         (StyledElement):
13241         (WebCore::StyledElement::collectStyleForPresentationAttribute):
13242         (WebCore::StyledElement::presentationAttributeStyle):
13243         * html/HTMLBRElement.cpp:
13244         (WebCore::HTMLBRElement::collectStyleForPresentationAttribute):
13245         * html/HTMLBRElement.h:
13246         (HTMLBRElement):
13247         * html/HTMLBodyElement.cpp:
13248         (WebCore::HTMLBodyElement::collectStyleForPresentationAttribute):
13249         * html/HTMLBodyElement.h:
13250         (HTMLBodyElement):
13251         * html/HTMLDivElement.cpp:
13252         (WebCore::HTMLDivElement::collectStyleForPresentationAttribute):
13253         * html/HTMLDivElement.h:
13254         (HTMLDivElement):
13255         * html/HTMLElement.cpp:
13256         (WebCore::HTMLElement::applyBorderAttributeToStyle):
13257         (WebCore::HTMLElement::mapLanguageAttributeToLocale):
13258         (WebCore::HTMLElement::collectStyleForPresentationAttribute):
13259         (WebCore::HTMLElement::applyAlignmentAttributeToStyle):
13260         (WebCore::HTMLElement::addHTMLLengthToStyle):
13261         * html/HTMLElement.h:
13262         (HTMLElement):
13263         * html/HTMLEmbedElement.cpp:
13264         (WebCore::HTMLEmbedElement::collectStyleForPresentationAttribute):
13265         * html/HTMLEmbedElement.h:
13266         (HTMLEmbedElement):
13267         * html/HTMLFontElement.cpp:
13268         (WebCore::HTMLFontElement::collectStyleForPresentationAttribute):
13269         * html/HTMLFontElement.h:
13270         (HTMLFontElement):
13271         * html/HTMLFrameSetElement.cpp:
13272         (WebCore::HTMLFrameSetElement::collectStyleForPresentationAttribute):
13273         * html/HTMLFrameSetElement.h:
13274         (HTMLFrameSetElement):
13275         * html/HTMLHRElement.cpp:
13276         (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
13277         * html/HTMLHRElement.h:
13278         (HTMLHRElement):
13279         * html/HTMLIFrameElement.cpp:
13280         (WebCore::HTMLIFrameElement::collectStyleForPresentationAttribute):
13281         * html/HTMLIFrameElement.h:
13282         (HTMLIFrameElement):
13283         * html/HTMLImageElement.cpp:
13284         (WebCore::HTMLImageElement::collectStyleForPresentationAttribute):
13285         * html/HTMLImageElement.h:
13286         (HTMLImageElement):
13287         * html/HTMLInputElement.cpp:
13288         (WebCore::HTMLInputElement::collectStyleForPresentationAttribute):
13289         * html/HTMLInputElement.h:
13290         (HTMLInputElement):
13291         * html/HTMLLIElement.cpp:
13292         (WebCore::HTMLLIElement::collectStyleForPresentationAttribute):
13293         * html/HTMLLIElement.h:
13294         (HTMLLIElement):
13295         * html/HTMLMarqueeElement.cpp:
13296         (WebCore::HTMLMarqueeElement::collectStyleForPresentationAttribute):
13297         * html/HTMLMarqueeElement.h:
13298         (HTMLMarqueeElement):
13299         * html/HTMLOListElement.cpp:
13300         (WebCore::HTMLOListElement::collectStyleForPresentationAttribute):
13301         * html/HTMLOListElement.h:
13302         (HTMLOListElement):
13303         * html/HTMLObjectElement.cpp:
13304         (WebCore::HTMLObjectElement::collectStyleForPresentationAttribute):
13305         * html/HTMLObjectElement.h:
13306         (HTMLObjectElement):
13307         * html/HTMLParagraphElement.cpp:
13308         (WebCore::HTMLParagraphElement::collectStyleForPresentationAttribute):
13309         * html/HTMLParagraphElement.h:
13310         (HTMLParagraphElement):
13311         * html/HTMLPlugInElement.cpp:
13312         (WebCore::HTMLPlugInElement::collectStyleForPresentationAttribute):
13313         * html/HTMLPlugInElement.h:
13314         (HTMLPlugInElement):
13315         * html/HTMLPreElement.cpp:
13316         (WebCore::HTMLPreElement::collectStyleForPresentationAttribute):
13317         * html/HTMLPreElement.h:
13318         (HTMLPreElement):
13319         * html/HTMLTableCaptionElement.cpp:
13320         (WebCore::HTMLTableCaptionElement::collectStyleForPresentationAttribute):
13321         * html/HTMLTableCaptionElement.h:
13322         (HTMLTableCaptionElement):
13323         * html/HTMLTableCellElement.cpp:
13324         (WebCore::HTMLTableCellElement::collectStyleForPresentationAttribute):
13325         (WebCore::HTMLTableCellElement::additionalPresentationAttributeStyle):
13326         * html/HTMLTableCellElement.h:
13327         (HTMLTableCellElement):
13328         * html/HTMLTableColElement.cpp:
13329         (WebCore::HTMLTableColElement::collectStyleForPresentationAttribute):
13330         (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle):
13331         * html/HTMLTableColElement.h:
13332         (HTMLTableColElement):
13333         * html/HTMLTableElement.cpp:
13334         (WebCore::HTMLTableElement::collectStyleForPresentationAttribute):
13335         (WebCore::HTMLTableElement::additionalPresentationAttributeStyle):
13336         * html/HTMLTableElement.h:
13337         (HTMLTableElement):
13338         * html/HTMLTablePartElement.cpp:
13339         (WebCore::HTMLTablePartElement::collectStyleForPresentationAttribute):
13340         * html/HTMLTablePartElement.h:
13341         (HTMLTablePartElement):
13342         * html/HTMLTableSectionElement.cpp:
13343         (WebCore::HTMLTableSectionElement::additionalPresentationAttributeStyle):
13344         * html/HTMLTableSectionElement.h:
13345         (HTMLTableSectionElement):
13346         * html/HTMLTextAreaElement.cpp:
13347         (WebCore::HTMLTextAreaElement::collectStyleForPresentationAttribute):
13348         * html/HTMLTextAreaElement.h:
13349         (HTMLTextAreaElement):
13350         * html/HTMLUListElement.cpp:
13351         (WebCore::HTMLUListElement::collectStyleForPresentationAttribute):
13352         * html/HTMLUListElement.h:
13353         (HTMLUListElement):
13354         * html/HTMLVideoElement.cpp:
13355         (WebCore::HTMLVideoElement::collectStyleForPresentationAttribute):
13356         * html/HTMLVideoElement.h:
13357         (HTMLVideoElement):
13358         * inspector/InspectorCSSAgent.cpp:
13359         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
13360         * mathml/MathMLElement.cpp:
13361         (WebCore::MathMLElement::collectStyleForPresentationAttribute):
13362         * mathml/MathMLElement.h:
13363         (MathMLElement):
13364         * svg/SVGImageElement.cpp:
13365         (WebCore::SVGImageElement::collectStyleForPresentationAttribute):
13366         * svg/SVGImageElement.h:
13367         (SVGImageElement):
13368         * svg/SVGStyledElement.cpp:
13369         (WebCore::SVGStyledElement::collectStyleForPresentationAttribute):
13370         * svg/SVGStyledElement.h:
13371         (SVGStyledElement):
13372         * svg/SVGTextContentElement.cpp:
13373         (WebCore::SVGTextContentElement::collectStyleForPresentationAttribute):
13374         * svg/SVGTextContentElement.h:
13375         (SVGTextContentElement):
13376
13377 2012-11-12  Adam Barth  <abarth@webkit.org>
13378
13379         [V8] Many things crash when switching to V8's new aligned pointer API
13380         https://bugs.webkit.org/show_bug.cgi?id=101994
13381
13382         Reviewed by Eric Seidel.
13383
13384         When using the aligned pointer API, we need to make sure to initialize
13385         every internal field that we later read because the new API has better
13386         error checks than the old API. This patch explicitly initializes the
13387         enteredIsolatedWorldIndex internal field to zero for main worlds,
13388         fixing the LayoutTest crashes from our previous attempt to move the
13389         aligned pointer API.
13390
13391         * bindings/v8/V8DOMWindowShell.cpp:
13392         (WebCore::V8DOMWindowShell::initializeIfNeeded):
13393
13394 2012-11-12  Simon Fraser  <simon.fraser@apple.com>
13395
13396         Reduce the crazy number of parameters to RenderLayer painting member functions
13397         https://bugs.webkit.org/show_bug.cgi?id=101895
13398
13399         Reviewed by Beth Dakin.
13400
13401         The various RenderLayer::paintLayer* functions took a lot of arguments, most
13402         of which were passed down directly to descendants.
13403         
13404         Gather these arguments into a LayerPaintingInfo struct.
13405
13406         * rendering/RenderLayer.cpp:
13407         (WebCore::RenderLayer::paint): Create a LayerPaintingInfo struct to pass
13408         to descendant paint calls.
13409         (WebCore::RenderLayer::paintOverlayScrollbars): Ditto.
13410         (WebCore::RenderLayer::paintLayer): When painting transformed layers, we
13411         make a new LayerPaintingInfo because the root layer is shifted.
13412         (WebCore::RenderLayer::paintLayerContentsAndReflection):
13413         (WebCore::RenderLayer::paintLayerContents):
13414         (WebCore::RenderLayer::paintList):
13415         (WebCore::RenderLayer::paintPaginatedChildLayer):
13416         (WebCore::RenderLayer::paintChildLayerIntoColumns): Create a new LayerPaintingInfo
13417         struct for column painting.
13418         * rendering/RenderLayer.h:
13419         (WebCore::RenderLayer::LayerPaintingInfo::LayerPaintingInfo):
13420         (LayerPaintingInfo):
13421         * rendering/RenderLayerBacking.cpp:
13422         (WebCore::RenderLayerBacking::paintIntoLayer): Build a LayerPaintingInfo
13423         to enter layer painting.
13424         * rendering/RenderReplica.cpp:
13425         (WebCore::RenderReplica::paint): Ditto.
13426
13427 2012-11-12  Brady Eidson  <beidson@apple.com>
13428
13429         NetworkProcess: Use an accurate shouldContentSniff value when creating ResourceHandles
13430         https://bugs.webkit.org/show_bug.cgi?id=101872
13431
13432         Reviewed by Alexey Proskuryakov.
13433
13434         Expose shouldSniffContent to pass it along to the NetworkProcess.
13435
13436         * loader/ResourceLoader.h:
13437         (WebCore::ResourceLoader::shouldSniffContent):
13438
13439 2012-11-12  Christophe Dumez  <christophe.dumez@intel.com>
13440
13441         Fix memory leak in createSurfaceForBackingStore()
13442         https://bugs.webkit.org/show_bug.cgi?id=101941
13443
13444         Reviewed by Kenneth Rohde Christiansen.
13445
13446         Fix memory leak in createSurfaceForBackingStore(),
13447         the RefPtr<cairo_surface_t> should be released
13448         when returned since we pass ownership to the
13449         caller.
13450
13451         No new tests, no behavior change for layout tests.
13452
13453         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13454         (WebCore::createSurfaceForBackingStore):
13455
13456 2012-11-12  Joe Mason  <jmason@rim.com>
13457
13458         [BlackBerry] Update to new proxyInfo API
13459         https://bugs.webkit.org/show_bug.cgi?id=101945
13460
13461         Reviewed by George Staikos.
13462
13463         Internal PR: 234680
13464         Reviewed internally by: Leo Yang
13465
13466         The proxyAddress, proxyUsername and proxyPassword methods in BlackBerry::Platform::Settings
13467         have been replaced with a single, more efficient proxyInfo method.
13468
13469         No new tests because this is an API update with no behaviour change.
13470
13471         * platform/network/blackberry/NetworkJob.cpp:
13472         (WebCore::NetworkJob::sendRequestWithCredentials):
13473         (WebCore::NetworkJob::storeCredentials):
13474
13475 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13476
13477         Unreviewed, rolling out r126157.
13478         http://trac.webkit.org/changeset/126157
13479         https://bugs.webkit.org/show_bug.cgi?id=101954
13480
13481         This patch caused (untestable) regression of the volume
13482         property on Mac, Win, and Blackberry ports. (Requested by
13483         jernoble on #webkit).
13484
13485         * platform/graphics/MediaPlayer.cpp:
13486         (WebCore::MediaPlayer::loadWithNextMediaEngine):
13487         (WebCore::MediaPlayer::setVolume):
13488         (WebCore::MediaPlayer::setMuted):
13489         (WebCore::MediaPlayer::setPreservesPitch):
13490         (WebCore::MediaPlayer::setSize):
13491         (WebCore::MediaPlayer::setVisible):
13492         (WebCore::MediaPlayer::setPreload):
13493
13494 2012-11-12  Arpita Bahuguna  <arpitabahuguna@gmail.com>
13495
13496         Specified width CSS tables should not include border and padding as part of that width.
13497         https://bugs.webkit.org/show_bug.cgi?id=77028
13498
13499         Reviewed by Julien Chaffraix.
13500
13501         CSS table width should not include border and padding even though HTML
13502         tables size as though their width includes border/padding.
13503
13504         This is applicable for all CSS tables with specified widths.
13505
13506         The change would also make our rendering of CSS tables with specified
13507         width similar to that of Opera, IE and FF.
13508
13509         Test: fast/table/css-table-width-with-border-padding.html
13510
13511         * rendering/RenderTable.cpp:
13512         (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
13513         Added check for all (positive) specified widths for CSS tables to
13514         consider border and padding outside of the specified width.
13515
13516 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13517
13518         Move resolving blob references to FormData.
13519         https://bugs.webkit.org/show_bug.cgi?id=101754
13520
13521         Reviewed by Simon Hausmann.
13522
13523         Resolving Blob-references to a set of just File and Data is done similar by several platforms.
13524         This patch adds a generic implementation in FormData and uses that from CFNetwork, Qt and
13525         BlackBerry network implementation.
13526
13527         * platform/network/FormData.cpp:
13528         (WebCore::appendBlobResolved):
13529         (WebCore::FormData::resolveBlobReferences):
13530         * platform/network/FormData.h:
13531         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
13532         (WebCore::ResourceRequest::initializePlatformRequest):
13533         * platform/network/cf/FormDataStreamCFNet.cpp:
13534         (WebCore::setHTTPBody):
13535         * platform/network/qt/QNetworkReplyHandler.cpp:
13536         (WebCore::FormDataIODevice::prepareFormElements):
13537
13538 2012-11-12  Zeno Albisser  <zeno@webkit.org>
13539
13540         GraphicsSurfaceGLX does not handle transparency correctly.
13541         https://bugs.webkit.org/show_bug.cgi?id=101943
13542
13543         GraphicsSurfacGLX must consistently use RGBA texture format.
13544         glXCreateWindow must be called after creating the XWindow
13545         that serves as a temporary offscreen texture storage, in order
13546         to allow for transparency.
13547         When creating the offscreen XWindow we must make sure,
13548         that we use a framebuffer configuration that supports
13549         an alpha mask.
13550
13551         Reviewed by Noam Rosenthal.
13552
13553         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
13554         (WebCore):
13555         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
13556         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
13557         (WebCore::GraphicsSurfacePrivate::createSurface):
13558         (GraphicsSurfacePrivate):
13559         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
13560
13561 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13562
13563         Unreviewed, rolling out r134225.
13564         http://trac.webkit.org/changeset/134225
13565         https://bugs.webkit.org/show_bug.cgi?id=101948
13566
13567         Appears to have broken the EFL and GTK builds (Requested by
13568         abarth on #webkit).
13569
13570         * bindings/js/JSHTMLElementCustom.cpp:
13571         (WebCore):
13572         (WebCore::JSHTMLElement::itemValue):
13573         (WebCore::JSHTMLElement::setItemValue):
13574         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13575         (WebCore):
13576         (WebCore::V8HTMLElement::itemValueAccessorGetter):
13577         (WebCore::V8HTMLElement::itemValueAccessorSetter):
13578         * html/HTMLElement.idl:
13579
13580 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13581
13582         hitTestResultAtPoint does two hit-tests if called on non main frame
13583         https://bugs.webkit.org/show_bug.cgi?id=101915
13584
13585         Reviewed by Antonio Gomes.
13586
13587         Always redirect hitTestResultAtPoint to the main-frame. This used to being
13588         done on every result that hit anything, which caused running the expensive 
13589         hit-tests multiple times in almost all cases.
13590
13591         * page/EventHandler.cpp:
13592         (WebCore::EventHandler::hitTestResultAtPoint):
13593
13594 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13595
13596         [V8][JSC] ScriptProfileNode::callUID needs not to be [Custom]
13597         https://bugs.webkit.org/show_bug.cgi?id=101892
13598
13599         Reviewed by Adam Barth.
13600
13601         We can remove [Custom] from callUID in ScriptProfileNode.idl.
13602
13603         No tests. No change in behavior.
13604
13605         * GNUmakefile.list.am:
13606         * Target.pri:
13607         * UseJSC.cmake:
13608         * WebCore.gypi:
13609         * WebCore.vcproj/WebCore.vcproj:
13610         * WebCore.xcodeproj/project.pbxproj:
13611         * bindings/js/JSBindingsAllInOne.cpp:
13612         * bindings/js/JSScriptProfileNodeCustom.cpp: Removed.
13613         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
13614         * inspector/ScriptProfileNode.idl:
13615
13616 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13617
13618         [V8] Performance::memory getter needs not to be [Custom]
13619         https://bugs.webkit.org/show_bug.cgi?id=101890
13620
13621         Reviewed by Adam Barth.
13622
13623         No tests. No change in behavior.
13624
13625         * UseV8.cmake:
13626         * WebCore.gypi:
13627         * bindings/v8/custom/V8PerformanceCustom.cpp: Removed.
13628         * page/Performance.idl:
13629
13630 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13631
13632         [V8][JSC] HTMLOptionsCollection::length needs not to be [Custom]
13633         https://bugs.webkit.org/show_bug.cgi?id=101888
13634
13635         Reviewed by Adam Barth.
13636
13637         We can remove [Custom] from getter. It is possible to remove [Custom]
13638         from setter, but it changes the current behavior.
13639         (I think the current implementation of the setter is wrong.
13640         I'll fix it in another patch.)
13641
13642         No tests. No change in behavior.
13643
13644         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
13645         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
13646         * html/HTMLOptionsCollection.idl:
13647
13648 2012-11-12  Yael Aharon  <yael.aharon@intel.com>
13649
13650         [EFL][WK2][AC] Black screen when applications use software backend.
13651         https://bugs.webkit.org/show_bug.cgi?id=101659
13652
13653         Reviewed by Kenneth Rohde Christiansen.
13654
13655         Add a utility method to create a cairo_surface_t from a given Evas_Object_Image.
13656
13657         No new tests. Will be covered when running existing tests without enabling openGL.
13658
13659         * platform/graphics/efl/CairoUtilitiesEfl.cpp:
13660         (WebCore::createSurfaceForImage):
13661         (WebCore):
13662         * platform/graphics/efl/CairoUtilitiesEfl.h:
13663         (WebCore):
13664
13665 2012-11-12  Carlos Garcia Campos  <cgarcia@igalia.com>
13666
13667         Unreviewed. Fix make distcheck.
13668
13669         * GNUmakefile.am: Remove editing from IDL_PATH since it doesn't
13670         contain idl files anymore.
13671         * GNUmakefile.list.am: Add missing header files.
13672
13673 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
13674
13675         MediaStream API: Make sure that MediaConstraints only has optional and mandatory at the top level
13676         https://bugs.webkit.org/show_bug.cgi?id=101733
13677
13678         Reviewed by Jochen Eisinger.
13679
13680         This patch adds better verification to MediaConstraintsImpl.
13681
13682         Existing tests expanded to cover this change.
13683
13684         * Modules/mediastream/MediaConstraintsImpl.cpp:
13685         (WebCore::MediaConstraintsImpl::initialize):
13686
13687 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13688
13689         Unreviewed, rolling out r134223.
13690         http://trac.webkit.org/changeset/134223
13691         https://bugs.webkit.org/show_bug.cgi?id=101939
13692
13693         Breaks inspector tests (Requested by pfeldman on #webkit).
13694
13695         * inspector/front-end/DefaultTextEditor.js:
13696         (WebInspector.TextEditorChunkedPanel.prototype._repaintAll):
13697         (WebInspector.TextEditorMainPanel):
13698         (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange):
13699         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
13700         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
13701         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
13702         (WebInspector.TextEditorMainPanel.prototype._paintLineChunks):
13703         (WebInspector.TextEditorMainPanel.prototype._paintLine):
13704         (WebInspector.TextEditorMainPanel.prototype._insertSpanBefore):
13705         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
13706         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
13707         * inspector/front-end/externs.js:
13708         * inspector/front-end/textEditor.css:
13709
13710 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
13711
13712         [Qt] Support ResourceRequest's setTimeoutInterval
13713         https://bugs.webkit.org/show_bug.cgi?id=101731
13714
13715         Reviewed by Simon Hausmann.
13716
13717         Establish a timeout and return the correct error when it is triggered.
13718
13719         Tested by existing http/tests/xmlhttprequest/timeout tests.
13720
13721         * platform/network/ResourceRequestBase.cpp:
13722         * platform/network/qt/QNetworkReplyHandler.cpp:
13723         (WebCore::QNetworkReplyHandler::release):
13724         (WebCore::QNetworkReplyHandler::finish):
13725         (WebCore::QNetworkReplyHandler::timeout):
13726         (WebCore::QNetworkReplyHandler::timerEvent):
13727         (WebCore::QNetworkReplyHandler::start):
13728         * platform/network/qt/QNetworkReplyHandler.h:
13729         (QNetworkReplyHandler):
13730
13731 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
13732
13733         Unreviewed, rolling out r134224.
13734         http://trac.webkit.org/changeset/134224
13735         https://bugs.webkit.org/show_bug.cgi?id=101937
13736
13737         asserting on bawts (Requested by kling on #webkit).
13738
13739         * rendering/style/RenderStyle.cpp:
13740         (WebCore::RenderStyle::diff):
13741         (WebCore::RenderStyle::setColor):
13742         (WebCore::RenderStyle::setVisitedLinkColor):
13743         * rendering/style/RenderStyle.h:
13744         * rendering/style/StyleBackgroundData.cpp:
13745         (WebCore::StyleBackgroundData::StyleBackgroundData):
13746         * rendering/style/StyleBackgroundData.h:
13747         (WebCore::StyleBackgroundData::color):
13748         (StyleBackgroundData):
13749         * rendering/style/StyleInheritedData.cpp:
13750         (WebCore::StyleInheritedData::StyleInheritedData):
13751         * rendering/style/StyleInheritedData.h:
13752         (StyleInheritedData):
13753         * rendering/style/StyleMultiColData.cpp:
13754         (WebCore::StyleMultiColData::StyleMultiColData):
13755         * rendering/style/StyleMultiColData.h:
13756         (StyleMultiColData):
13757         * rendering/style/StyleRareInheritedData.cpp:
13758         (SameSizeAsStyleRareInheritedData):
13759         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
13760         (WebCore::StyleRareInheritedData::operator==):
13761         * rendering/style/StyleRareInheritedData.h:
13762         (WebCore):
13763         (StyleRareInheritedData):
13764         * rendering/style/StyleRareNonInheritedData.cpp:
13765         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
13766         (WebCore::StyleRareNonInheritedData::operator==):
13767         * rendering/style/StyleRareNonInheritedData.h:
13768         (StyleRareNonInheritedData):
13769
13770 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13771
13772         [BlackBerry] Update BB10 form theme.
13773         https://bugs.webkit.org/show_bug.cgi?id=100760
13774
13775         Reviewed by Rob Buis.
13776
13777         RIM PR 236993
13778         Internally Reviewed by Jeff Rogers.
13779         Use slide and paint method on slider range and media controls.
13780
13781         * platform/blackberry/RenderThemeBlackBerry.cpp:
13782         (WebCore):
13783         (WebCore::drawThreeSliceHorizontal):
13784         (WebCore::drawThreeSliceVertical):
13785         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13786         (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
13787         (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
13788         (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):
13789         * platform/blackberry/RenderThemeBlackBerry.h:
13790         (RenderThemeBlackBerry):
13791
13792 2012-11-12  Kent Tamura  <tkent@chromium.org>
13793
13794         Refactoring: set read-only values on layout in DateTimeEditElement
13795         https://bugs.webkit.org/show_bug.cgi?id=101916
13796
13797         Reviewed by Kentaro Hara.
13798
13799         We have always updated read-only values when we set an empty value or
13800         DateTimeFieldsState. It has wasted CPU time because such read-only
13801         values are never updated after layout() essentially. So, we set
13802         read-only values in DateTimeEditBuilder used by layout(), and remove
13803         dateForReadOnlyField arguments of setEmptyValue and
13804         setValueAsDateTimeFieldsState.
13805
13806         No new tests. This should not make behavior changes.
13807
13808         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
13809         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
13810         We removed dateForReadOnlyField argument because read-only values are
13811         already set in DateTimeFieldElement::layout().
13812         * html/shadow/DateTimeEditElement.cpp:
13813         (WebCore::DateTimeEditBuilder::visitField):
13814         Set a value to a read-only minute/second/millisecond field while
13815         building UI elements.
13816         Also, changed variable types for millisecond and second fields to
13817         RefPtr<DateTimeNumericFieldElement> because we'd like to call
13818         setValueAsDate, which is private in DateTimeMillisecondFieldElement and
13819         DateTimeSecondFieldElement
13820         (WebCore::DateTimeEditElement::setValueAsDateTimeFieldsState):
13821         We removed dateForReadOnlyField argument because read-only values are
13822         already set in DateTimeFieldElement::layout().
13823         (WebCore::DateTimeEditElement::setEmptyValue): Ditto.
13824         * html/shadow/DateTimeEditElement.h:
13825         (DateTimeEditElement):
13826         Removed dateForReadOnlyField argument for setValueAsDateTimeFieldsState.
13827
13828         * html/shadow/DateTimeFieldElement.cpp:
13829         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):
13830         We removed dateForReadOnlyField argument because read-only values are
13831         already set in DateTimeFieldElement::layout().
13832         * html/shadow/DateTimeFieldElement.h:
13833         (DateTimeFieldElement): Ditto.
13834
13835         * html/shadow/DateTimeFieldElements.cpp: Ditto.
13836         * html/shadow/DateTimeFieldElements.h: Ditto.
13837         * html/shadow/DateTimeNumericFieldElement.cpp:
13838         (WebCore::DateTimeNumericFieldElement::setEmptyValue):
13839         It should do nothing if it is read-only because a read-only value was
13840         already set just after construction.
13841         * html/shadow/DateTimeNumericFieldElement.h:
13842         (DateTimeNumericFieldElement):
13843         Removed dateForReadOnlyField argument of setEmptyValue.
13844         * html/shadow/DateTimeSymbolicFieldElement.cpp:
13845         (WebCore::DateTimeSymbolicFieldElement::setEmptyValue): Ditto.
13846         * html/shadow/DateTimeSymbolicFieldElement.h:
13847         (DateTimeSymbolicFieldElement): Ditto.
13848
13849 2012-11-12  Tiancheng Jiang  <tijiang@rim.com>
13850
13851         [BlackBerry] Update BB10 form theme.
13852         https://bugs.webkit.org/show_bug.cgi?id=100760
13853
13854         Reviewed by Rob Buis.
13855
13856         RIM PR 236993
13857         Internally Reviewed by Jeff Rogers.
13858         Enable GL slider.
13859
13860         * platform/blackberry/RenderThemeBlackBerry.cpp:
13861         (WebCore::drawThreeSlice):
13862         (WebCore):
13863         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
13864         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
13865
13866 2012-11-12  Kentaro Hara  <haraken@chromium.org>
13867
13868         [V8][JSC] HTMLElement::itemValue() needs not to be custom
13869         https://bugs.webkit.org/show_bug.cgi?id=101882
13870
13871         Reviewed by Adam Barth.
13872
13873         We can remove a [Custom] IDL attribute.
13874
13875         No tests. No change in behavior.
13876
13877         * bindings/js/JSHTMLElementCustom.cpp:
13878         * bindings/v8/custom/V8HTMLElementCustom.cpp:
13879         * html/HTMLElement.idl:
13880
13881 2012-11-12  Andreas Kling  <kling@webkit.org>
13882
13883         RenderStyle: Pack Color members tighter in substructures.
13884         <http://webkit.org/b/101860>
13885
13886         Reviewed by Antti Koivisto.
13887
13888         For RenderStyle substructures (StyleInheritedData, et al.), unfold all WebCore::Color
13889         members into RGBA32/bool variables OR just an RGBA32 if the color can never be invalid.
13890
13891         Memory saved per instance:
13892
13893             - StyleMultiColData:          4 bytes
13894             - StyleBackgroundData:        8 bytes
13895             - StyleInheritedData:         8 bytes
13896             - StyleRareInheritedData:    24 bytes
13897             - StyleRareNonInheritedData: 24 bytes
13898
13899         323kB progression on Membuster3.
13900
13901         * rendering/style/RenderStyle.cpp:
13902         (WebCore::RenderStyle::diff):
13903         (WebCore::RenderStyle::setColor):
13904         (WebCore::RenderStyle::setVisitedLinkColor):
13905         (WebCore::RenderStyle::setVisitedLinkColumnRuleColor):
13906         (WebCore::RenderStyle::setBackgroundColor):
13907         * rendering/style/RenderStyle.h:
13908         * rendering/style/StyleBackgroundData.cpp:
13909         (WebCore::StyleBackgroundData::StyleBackgroundData):
13910         * rendering/style/StyleBackgroundData.h:
13911         (WebCore::StyleBackgroundData::color):
13912         (StyleBackgroundData):
13913         * rendering/style/StyleInheritedData.cpp:
13914         (WebCore::StyleInheritedData::StyleInheritedData):
13915         * rendering/style/StyleInheritedData.h:
13916         (StyleInheritedData):
13917         * rendering/style/StyleMultiColData.cpp:
13918         (WebCore::StyleMultiColData::StyleMultiColData):
13919         (WebCore::StyleMultiColData::setVisitedLinkColumnRuleColor):
13920         * rendering/style/StyleMultiColData.h:
13921         (StyleMultiColData):
13922         (WebCore::StyleMultiColData::visitedLinkColumnRuleColor):
13923         * rendering/style/StyleRareInheritedData.cpp:
13924         (SameSizeAsStyleRareInheritedData):
13925         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
13926         (WebCore::StyleRareInheritedData::operator==):
13927         (WebCore::StyleRareInheritedData::setTextStrokeColor):
13928         (WebCore::StyleRareInheritedData::setTextFillColor):
13929         (WebCore::StyleRareInheritedData::setTextEmphasisColor):
13930         (WebCore::StyleRareInheritedData::setVisitedLinkTextStrokeColor):
13931         (WebCore::StyleRareInheritedData::setVisitedLinkTextFillColor):
13932         (WebCore::StyleRareInheritedData::setVisitedLinkTextEmphasisColor):
13933         * rendering/style/StyleRareInheritedData.h:
13934         (StyleRareInheritedData):
13935         (WebCore::StyleRareInheritedData::textStrokeColor):
13936         (WebCore::StyleRareInheritedData::textFillColor):
13937         (WebCore::StyleRareInheritedData::textEmphasisColor):
13938         (WebCore::StyleRareInheritedData::visitedLinkTextStrokeColor):
13939         (WebCore::StyleRareInheritedData::visitedLinkTextFillColor):
13940         (WebCore::StyleRareInheritedData::visitedLinkTextEmphasisColor):
13941         * rendering/style/StyleRareNonInheritedData.cpp:
13942         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
13943         (WebCore::StyleRareNonInheritedData::operator==):
13944         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderLeftColor):
13945         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderRightColor):
13946         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderTopColor):
13947         (WebCore::StyleRareNonInheritedData::setVisitedLinkBorderBottomColor):
13948         (WebCore::StyleRareNonInheritedData::setVisitedLinkOutlineColor):
13949         (WebCore::StyleRareNonInheritedData::setVisitedLinkBackgroundColor):
13950         * rendering/style/StyleRareNonInheritedData.h:
13951         (WebCore::StyleRareNonInheritedData::visitedLinkBackgroundColor):
13952         (WebCore::StyleRareNonInheritedData::visitedLinkOutlineColor):
13953         (WebCore::StyleRareNonInheritedData::visitedLinkBorderLeftColor):
13954         (WebCore::StyleRareNonInheritedData::visitedLinkBorderRightColor):
13955         (WebCore::StyleRareNonInheritedData::visitedLinkBorderTopColor):
13956         (WebCore::StyleRareNonInheritedData::visitedLinkBorderBottomColor):
13957         (StyleRareNonInheritedData):
13958
13959 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
13960
13961         Web Inspector: migrate text editor to mutation observers
13962         https://bugs.webkit.org/show_bug.cgi?id=101841
13963
13964         Reviewed by Vsevolod Vlasov.
13965
13966         Otherwise, we miss notifications on the removed lines.
13967
13968         * inspector/front-end/DefaultTextEditor.js:
13969         (WebInspector.TextEditorMainPanel):
13970         (WebInspector.TextEditorMainPanel.prototype.beginDomUpdates):
13971         (WebInspector.TextEditorMainPanel.prototype.endDomUpdates):
13972         (WebInspector.TextEditorMainPanel.prototype._handleMutations):
13973         (WebInspector.TextEditorMainPanel.prototype._handleMutation):
13974         * inspector/front-end/externs.js:
13975         (WebKitMutation):
13976         (WebKitMutationObserver.prototype.observe):
13977         (WebKitMutationObserver.prototype.disconnect):
13978
13979 2012-11-12  Allan Sandfeld Jensen  <sandfeld@kde.org>
13980
13981         [Qt] Flash-plugin starts with wrong width
13982         https://bugs.webkit.org/show_bug.cgi?id=101836
13983
13984         Reviewed by Simon Hausmann.
13985
13986         Defer the setWindow call, so that the one time it is called it will have its final size.
13987
13988         * plugins/PluginPackage.cpp:
13989         (WebCore::PluginPackage::determineQuirks):
13990
13991 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
13992
13993         Remove the V8 custom code for WebSockets constructor
13994         https://bugs.webkit.org/show_bug.cgi?id=100801
13995
13996         Reviewed by Kentaro Hara.
13997
13998         This patch does the following:
13999
14000         1) Modifies the V8 code generator to support overloaded constructors,
14001            the JS generator is fixed to work as before. Proper support for JS will come later.
14002
14003         2) Modifies WebSocket.h/.cpp for the new constructors.
14004
14005         Tested by running WebSockets layout tests.
14006
14007         * Modules/websockets/WebSocket.cpp:
14008         (WebCore::WebSocket::create):
14009         (WebCore):
14010         * Modules/websockets/WebSocket.h:
14011         (WebSocket):
14012         * Modules/websockets/WebSocket.idl:
14013         * bindings/scripts/CodeGeneratorJS.pm:
14014         (GenerateConstructorDefinition):
14015         * bindings/scripts/CodeGeneratorV8.pm:
14016         (GenerateHeader):
14017         (GenerateOverloadedConstructorCallback):
14018         (GenerateSingleConstructorCallback):
14019         (GenerateConstructorCallback):
14020         (GenerateImplementation):
14021         * bindings/scripts/IDLParser.pm:
14022         (copyAttributes):
14023         (parseExtendedAttributeList):
14024         (parseExtendedAttributes):
14025         (applyExtendedAttributeList):
14026         * bindings/scripts/IDLStructure.pm:
14027         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.cpp: Added.
14028         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate::WebDOMTestOverloadedConstructorsPrivate):
14029         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructorsPrivate):
14030         (WebDOMTestOverloadedConstructors::WebDOMTestOverloadedConstructors):
14031         (WebDOMTestOverloadedConstructors::operator=):
14032         (WebDOMTestOverloadedConstructors::impl):
14033         (WebDOMTestOverloadedConstructors::~WebDOMTestOverloadedConstructors):
14034         (toWebCore):
14035         (toWebKit):
14036         * bindings/scripts/test/CPP/WebDOMTestOverloadedConstructors.h: Added.
14037         (WebCore):
14038         (WebDOMTestOverloadedConstructors):
14039         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp: Added.
14040         (WebKit):
14041         (WebKit::kit):
14042         (WebKit::core):
14043         (WebKit::wrapTestOverloadedConstructors):
14044         (webkit_dom_test_overloaded_constructors_finalize):
14045         (webkit_dom_test_overloaded_constructors_set_property):
14046         (webkit_dom_test_overloaded_constructors_get_property):
14047         (webkit_dom_test_overloaded_constructors_constructed):
14048         (webkit_dom_test_overloaded_constructors_class_init):
14049         (webkit_dom_test_overloaded_constructors_init):
14050         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h: Added.
14051         (_WebKitDOMTestOverloadedConstructors):
14052         (_WebKitDOMTestOverloadedConstructorsClass):
14053         * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructorsPrivate.h: Added.
14054         (WebKit):
14055         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: Added.
14056         (WebCore):
14057         (WebCore::JSTestOverloadedConstructorsConstructor::JSTestOverloadedConstructorsConstructor):
14058         (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
14059         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertySlot):
14060         (WebCore::JSTestOverloadedConstructorsConstructor::getOwnPropertyDescriptor):
14061         (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors):
14062         (WebCore::JSTestOverloadedConstructorsConstructor::getConstructData):
14063         (WebCore::JSTestOverloadedConstructorsPrototype::self):
14064         (WebCore::JSTestOverloadedConstructors::JSTestOverloadedConstructors):
14065         (WebCore::JSTestOverloadedConstructors::finishCreation):
14066         (WebCore::JSTestOverloadedConstructors::createPrototype):
14067         (WebCore::JSTestOverloadedConstructors::destroy):
14068         (WebCore::JSTestOverloadedConstructors::~JSTestOverloadedConstructors):
14069         (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot):
14070         (WebCore::JSTestOverloadedConstructors::getOwnPropertyDescriptor):
14071         (WebCore::jsTestOverloadedConstructorsConstructor):
14072         (WebCore::JSTestOverloadedConstructors::getConstructor):
14073         (WebCore::isObservable):
14074         (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):
14075         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
14076         (WebCore::toJS):
14077         (WebCore::toTestOverloadedConstructors):
14078         * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: Added.
14079         (WebCore):
14080         (JSTestOverloadedConstructors):
14081         (WebCore::JSTestOverloadedConstructors::create):
14082         (WebCore::JSTestOverloadedConstructors::createStructure):
14083         (WebCore::JSTestOverloadedConstructors::impl):
14084         (WebCore::JSTestOverloadedConstructors::releaseImpl):
14085         (WebCore::JSTestOverloadedConstructors::releaseImplIfNotNull):
14086         (JSTestOverloadedConstructorsOwner):
14087         (WebCore::wrapperOwner):
14088         (WebCore::wrapperContext):
14089         (JSTestOverloadedConstructorsPrototype):
14090         (WebCore::JSTestOverloadedConstructorsPrototype::create):
14091         (WebCore::JSTestOverloadedConstructorsPrototype::createStructure):
14092         (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
14093         (JSTestOverloadedConstructorsConstructor):
14094         (WebCore::JSTestOverloadedConstructorsConstructor::create):
14095         (WebCore::JSTestOverloadedConstructorsConstructor::createStructure):
14096         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h: Added.
14097         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm: Added.
14098         (-[DOMTestOverloadedConstructors dealloc]):
14099         (-[DOMTestOverloadedConstructors finalize]):
14100         (core):
14101         (kit):
14102         * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h: Added.
14103         (WebCore):
14104         * bindings/scripts/test/TestOverloadedConstructors.idl: Copied from Source/WebCore/bindings/scripts/test/TestSerializedScriptValueInterface.idl.
14105         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
14106         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp: Added.
14107         (WebCore):
14108         (TestOverloadedConstructorsV8Internal):
14109         (WebCore::TestOverloadedConstructorsV8Internal::V8_USE):
14110         (WebCore::V8TestOverloadedConstructors::constructor1Callback):
14111         (WebCore::V8TestOverloadedConstructors::constructor2Callback):
14112         (WebCore::V8TestOverloadedConstructors::constructor3Callback):
14113         (WebCore::V8TestOverloadedConstructors::constructor4Callback):
14114         (WebCore::V8TestOverloadedConstructors::constructorCallback):
14115         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
14116         (WebCore::V8TestOverloadedConstructors::GetRawTemplate):
14117         (WebCore::V8TestOverloadedConstructors::GetTemplate):
14118         (WebCore::V8TestOverloadedConstructors::HasInstance):
14119         (WebCore::V8TestOverloadedConstructors::wrapSlow):
14120         (WebCore::V8TestOverloadedConstructors::derefObject):
14121         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h: Added.
14122         (WebCore):
14123         (V8TestOverloadedConstructors):
14124         (WebCore::V8TestOverloadedConstructors::toNative):
14125         (WebCore::V8TestOverloadedConstructors::installPerContextProperties):
14126         (WebCore::V8TestOverloadedConstructors::installPerContextPrototypeProperties):
14127         (WebCore::V8TestOverloadedConstructors::wrap):
14128         (WebCore::toV8):
14129         * bindings/v8/custom/V8WebSocketCustom.cpp:
14130
14131 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14132
14133         [Refactoring] Create SelectRuleFeatureSet for collecting RuleFeatureSet for select attribute
14134         https://bugs.webkit.org/show_bug.cgi?id=101891
14135
14136         Reviewed by Hajime Morita.
14137
14138         We would like to have another class for RuleFeatureSet to collect 'select' attribute features,
14139         since it will have more features than the original RuleFeatureSet has.
14140
14141         Also, some methods of ElementShadow are removed and we provide a method to get SelectRuleFeatureSet itself.
14142
14143         No new tests, no change in behavior.
14144
14145         * CMakeLists.txt:
14146         * GNUmakefile.list.am:
14147         * Target.pri:
14148         * WebCore.gypi:
14149         * WebCore.vcproj/WebCore.vcproj:
14150         * WebCore.xcodeproj/project.pbxproj:
14151         * dom/ElementShadow.h:
14152         (ElementShadow):
14153         (WebCore::ElementShadow::selectRuleFeatureSet):
14154         (WebCore):
14155         * html/shadow/SelectRuleFeatureSet.cpp: Added.
14156         (WebCore):
14157         (WebCore::SelectRuleFeatureSet::SelectRuleFeatureSet):
14158         (WebCore::SelectRuleFeatureSet::add):
14159         (WebCore::SelectRuleFeatureSet::clear):
14160         (WebCore::SelectRuleFeatureSet::collectFeaturesFromSelector):
14161         * html/shadow/SelectRuleFeatureSet.h: Added.
14162         (WebCore):
14163         (SelectRuleFeatureSet):
14164         (WebCore::SelectRuleFeatureSet::hasSelectorForId):
14165         (WebCore::SelectRuleFeatureSet::hasSelectorForClass):
14166         (WebCore::SelectRuleFeatureSet::hasSelectorForAttribute):
14167         * testing/Internals.cpp:
14168         (WebCore::Internals::hasSelectorForIdInShadow):
14169         (WebCore::Internals::hasSelectorForClassInShadow):
14170         (WebCore::Internals::hasSelectorForAttributeInShadow):
14171
14172 2012-11-13  Keishi Hattori  <keishi@webkit.org>
14173
14174         Build fix for Chromium Android (caused by r134216)
14175
14176         Unreviewed.
14177
14178         No new tests.
14179
14180         * platform/text/PlatformLocale.cpp:
14181         (WebCore::Locale::formatDateTime):
14182
14183 2012-11-12  Keishi Hattori  <keishi@webkit.org>
14184
14185         Add support for week/month to Locale::formatDateTime()
14186         https://bugs.webkit.org/show_bug.cgi?id=101878
14187
14188         Reviewed by Kent Tamura.
14189
14190         Adding support for week/month to Locale::formatDateTime() in preparation for datalist support for <input type=week/month>.
14191
14192         Added Chromium tests LocaleMacTest.formatWeek and LocaleMacTest.formatMonth.
14193
14194         * platform/text/PlatformLocale.cpp:
14195         (WebCore::DateTimeStringBuilder::visitField):
14196         (WebCore::Locale::formatDateTime): Support week and month types.
14197
14198 2012-11-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>
14199
14200         [Qt] Can not load MHTML documents
14201         https://bugs.webkit.org/show_bug.cgi?id=101765
14202
14203         Reviewed by Simon Hausmann.
14204
14205         Recognize common MHTML extensions so that we can recognize MHTML tests on the file-system.
14206
14207         Tested by existing mhtml/ tests.
14208
14209         * platform/qt/MIMETypeRegistryQt.cpp:
14210         (WebCore):
14211
14212 2012-11-12  Andreas Kling  <akling@apple.com>
14213
14214         Tighten vector in ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray().
14215         <http://webkit.org/b/101850>
14216
14217         Reviewed by Antti Koivisto.
14218
14219         Reserve the exact amount of space needed for m_responseContentDispositionEncodingFallbackArray.
14220         222kB progression on Membuster3.
14221
14222         * platform/network/ResourceRequestBase.cpp:
14223         (WebCore::ResourceRequestBase::setResponseContentDispositionEncodingFallbackArray):
14224
14225 2012-11-12  Tommy Widenflycht  <tommyw@google.com>
14226
14227         MediaStream API: Schedule the RTCDataChannel events to be triggered at idle state
14228         https://bugs.webkit.org/show_bug.cgi?id=101751
14229
14230         Reviewed by Adam Barth.
14231
14232         This patch queues the events until the JS interpreter is in an idle state.
14233
14234         Existing tests cover this patch.
14235
14236         * Modules/mediastream/RTCDataChannel.cpp:
14237         (WebCore::RTCDataChannel::RTCDataChannel):
14238         (WebCore::RTCDataChannel::readyStateChanged):
14239         (WebCore::RTCDataChannel::dataArrived):
14240         (WebCore::RTCDataChannel::error):
14241         (WebCore::RTCDataChannel::scheduleDispatchEvent):
14242         (WebCore):
14243         (WebCore::RTCDataChannel::scheduledEventTimerFired):
14244         * Modules/mediastream/RTCDataChannel.h:
14245         (RTCDataChannel):
14246         * platform/chromium/support/WebRTCDataChannel.cpp:
14247         (WebKit::WebRTCDataChannel::setBufferedAmount):
14248         (WebKit::WebRTCDataChannel::readyStateChanged):
14249         (WebKit::WebRTCDataChannel::dataArrived):
14250         (WebKit::WebRTCDataChannel::error):
14251
14252 2012-11-12  Kunihiko Sakamoto  <ksakamoto@chromium.org>
14253
14254         Remove HTMLInputElement dependency from PickerIndicatorElement
14255         https://bugs.webkit.org/show_bug.cgi?id=101913
14256
14257         Reviewed by Kent Tamura.
14258
14259         Introduced PickerIndicatorOwner interface that replaces the role of hostInput() in
14260         PickerIndicatorElement. It makes easier to add interactions between picker indicator
14261         and its owner without having to add functions to HTMLInputElement.
14262
14263         No new tests. This is just a refactor.
14264
14265         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
14266         (WebCore::BaseMultipleFieldsDateAndTimeInputType::isPickerIndicatorOwnerDisabledOrReadOnly): Added.
14267         (WebCore):
14268         (WebCore::BaseMultipleFieldsDateAndTimeInputType::pickerIndicatorChooseValue): Added.
14269         (WebCore::BaseMultipleFieldsDateAndTimeInputType::setupDateTimeChooserParameters): Added.
14270         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
14271         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
14272         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
14273         * html/BaseMultipleFieldsDateAndTimeInputType.h:
14274         (WebCore):
14275         (BaseMultipleFieldsDateAndTimeInputType): Implements PickerIndicatorOwner.
14276         * html/shadow/PickerIndicatorElement.cpp: Replaced all the use of hostInput() by using PickerIndicatorOwner.
14277         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
14278         (WebCore::PickerIndicatorElement::create):
14279         (WebCore::PickerIndicatorElement::defaultEventHandler):
14280         (WebCore::PickerIndicatorElement::willRespondToMouseClickEvents):
14281         (WebCore::PickerIndicatorElement::didChooseValue):
14282         (WebCore::PickerIndicatorElement::openPopup):
14283         * html/shadow/PickerIndicatorElement.h:
14284         (PickerIndicatorElement): Added a PickerIndicatorOwner member.
14285         (PickerIndicatorOwner): An interface class for communicating picker indicator and its owner.
14286         (WebCore::PickerIndicatorElement::PickerIndicatorOwner::~PickerIndicatorOwner):
14287         (WebCore::PickerIndicatorElement::removePickerIndicatorOwner):
14288
14289 2012-11-12  Mihnea Ovidenie  <mihnea@adobe.com>
14290
14291         [CSSRegions]Add support for text-shadow in region styling
14292         https://bugs.webkit.org/show_bug.cgi?id=94472
14293
14294         Reviewed by David Hyatt.
14295
14296         Original patch by Andrei Onea.
14297         Add support for text-shadow in region styling (@-webkit-region rule).
14298         In addition to the previously supported region styling properties (background-color and color),
14299         text-shadow requires the computation of an element style in region at layout time.
14300
14301         This patch adds a new method on RenderRegion - ensureRegionStyleForObject - that
14302         can be used to retrieve the object style in region (if already cached) or to compute it
14303         on the spot. When computing the object style in region, we need to compute the style in region
14304         also for the object ancestor, up to the content nodes.
14305
14306         This patch also refactors the way styles in region are computed and stored, because
14307         we can compute the style in region not only at paint time, but also at layout time.
14308
14309         Test: fast/regions/region-style-text-shadow.html
14310
14311         * css/StyleResolver.cpp:
14312         (WebCore::StyleResolver::isValidRegionStyleProperty):
14313         Allow text-shadow to be used in region styling.
14314         * rendering/InlineBox.cpp:
14315         (WebCore::InlineBox::styleInRegion):
14316         Retrieve the region style for an InlineBox's renderer, given its RenderRegion.
14317         Compute the style in region if not computed yet.
14318         (WebCore::InlineBox::regionDuringLayout):
14319         Retrieve the region in which an InlineBox is being flowed.
14320         * rendering/InlineBox.h:
14321         * rendering/InlineFlowBox.cpp: Take region styling into account.
14322         (WebCore::InlineFlowBox::addToLine):
14323         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
14324         * rendering/RenderRegion.cpp:
14325         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
14326         (WebCore::canCacheObjectStyleInRegion):
14327         Test if we can cache the computed style in region.
14328         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
14329         (WebCore::RenderRegion::computeStyleInRegion):
14330         (WebCore::RenderRegion::setChildrenStyleInRegion):
14331         (WebCore::setObjectHasBoxDecorationsFlag):
14332         (WebCore::RenderRegion::setObjectStyleInRegion):
14333         (WebCore::RenderRegion::clearObjectStyleInRegion):
14334         (WebCore::RenderRegion::ensureRegionStyleForObject):
14335         * rendering/RenderRegion.h:
14336
14337 2012-11-12  Sheriff Bot  <webkit.review.bot@gmail.com>
14338
14339         Unreviewed, rolling out r134154.
14340         http://trac.webkit.org/changeset/134154
14341         https://bugs.webkit.org/show_bug.cgi?id=101919
14342
14343         Causes plenty of crashes on GTK and Apple Win builders
14344         (Requested by zdobersek on #webkit).
14345
14346         * css/mediaControls.css:
14347         * css/mediaControlsQuickTime.css:
14348         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
14349         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
14350         * html/shadow/MediaControlElements.cpp:
14351         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
14352         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
14353         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
14354         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
14355         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
14356         * html/shadow/MediaControlElements.h:
14357         (MediaControlElement):
14358         (MediaControlToggleClosedCaptionsButtonElement):
14359         * html/shadow/MediaControlRootElement.cpp:
14360         (WebCore::MediaControlRootElement::MediaControlRootElement):
14361         (WebCore::MediaControlRootElement::create):
14362         (WebCore::MediaControlRootElement::setMediaController):
14363         (WebCore::MediaControlRootElement::hide):
14364         (WebCore::MediaControlRootElement::makeTransparent):
14365         (WebCore::MediaControlRootElement::reset):
14366         (WebCore::MediaControlRootElement::reportedError):
14367         * html/shadow/MediaControlRootElement.h:
14368         (WebCore):
14369         (MediaControlRootElement):
14370         * html/shadow/MediaControlRootElementChromium.cpp:
14371         (WebCore::MediaControlRootElementChromium::initializeControls):
14372         * html/shadow/MediaControls.h:
14373         (MediaControls):
14374         * platform/Language.cpp:
14375         (WebCore):
14376         * platform/Language.h:
14377         (WebCore):
14378         * rendering/RenderMediaControls.cpp:
14379         (WebCore::RenderMediaControls::paintMediaControlsPart):
14380         * rendering/RenderMediaControlsChromium.cpp:
14381         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
14382
14383 2012-11-12  Mike West  <mkwst@chromium.org>
14384
14385         'for (x in y)' requires 'var' declaration in ConsoleMessage.js
14386         https://bugs.webkit.org/show_bug.cgi?id=101908
14387
14388         Reviewed by Pavel Feldman.
14389
14390         r134166 should have included a 'var' declaration in its 'for (x in y)'
14391         loop. This patch adds the missing 'var' in order to prevent leakage into
14392         the global context.
14393
14394         * inspector/front-end/ConsoleMessage.js:
14395         (WebInspector.ConsoleMessageImpl.prototype.append):
14396         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14397
14398 2012-11-12  Zeno Albisser  <zeno@webkit.org>
14399
14400         [Qt] MiniBrowser should not strongly depend on QtTestSupport.
14401         https://bugs.webkit.org/show_bug.cgi?id=101775
14402
14403         Introducing HAVE(QTTESTSUPPORT) to allow building
14404         MiniBrowser without QtTestSupport.
14405         This is necessary when using a production build.
14406
14407         Reviewed by Tor Arne Vestbø.
14408
14409         * Target.pri:
14410         * platform/qt/QtTestSupport.h:
14411
14412 2012-11-12  Pavel Feldman  <pfeldman@chromium.org>
14413
14414         Web Inspector: wasShown is called twice when show() is called from within wasShown
14415         https://bugs.webkit.org/show_bug.cgi?id=101858
14416
14417         Reviewed by Vsevolod Vlasov.
14418
14419         When we attach views lazily from within wasShown, the views were getting wasShown notification twice.
14420         We now mute one of them.
14421
14422         * inspector/front-end/View.js:
14423         (WebInspector.View):
14424         (WebInspector.View.prototype._inNotification):
14425         (WebInspector.View.prototype._parentIsShowing):
14426         (WebInspector.View.prototype._callOnVisibleChildren):
14427         (WebInspector.View.prototype._processWasShown):
14428         (WebInspector.View.prototype._processWillHide):
14429         (WebInspector.View.prototype._processOnResize):
14430         (WebInspector.View.prototype._notify):
14431         (WebInspector.View.prototype.show):
14432
14433 2012-11-12  Ryosuke Niwa  <rniwa@webkit.org>
14434
14435         Build fix after r134191. Turns out that FrameView::performPostLayoutTasks calls FrameSelection::updateAppearance
14436         in the middle of a layout. So we can't have assertions in recomputeCaretRect and updateAppearance.
14437
14438         Furthermore, we can't update layout in updateAppearance. So do that in its call sites.
14439
14440         * editing/FrameSelection.cpp:
14441         (WebCore::FrameSelection::setSelection):
14442         (WebCore::FrameSelection::recomputeCaretRect):
14443         (WebCore::FrameSelection::updateAppearance):
14444         (WebCore::FrameSelection::setCaretVisibility):
14445
14446 2012-11-12  Shinya Kawanaka  <shinyak@chromium.org>
14447
14448         Don't update style when attaching in HTMLMeterElement
14449         https://bugs.webkit.org/show_bug.cgi?id=101714
14450
14451         Reviewed by Hajime Morita.
14452
14453         HTMLMeterElement was updating style when it's being attached. However, updating style when attaching
14454         can cause style-update prevention. The similar thing has already happened in Bug 100507.
14455
14456         Since we have already set the default value in creating ShadowDOM subtree, we don't need to update style actually.
14457
14458         Test: fast/dom/HTMLMeterElement/meter-bar-set-value.html
14459
14460         * html/HTMLMeterElement.cpp:
14461         * html/HTMLMeterElement.h:
14462         (HTMLMeterElement): Removed attach(). We don't need it.
14463
14464 2012-11-09  Ryosuke Niwa  <rniwa@webkit.org>
14465
14466         Multiple Layout Tests (e.g. fast/repaint/japanese-rl-selection-clear.html) is failing after r133840.
14467         https://bugs.webkit.org/show_bug.cgi?id=101547
14468
14469         Reviewed by Simon Fraser.
14470
14471         I overlooked the fact when the selection is null, we still have to invalidate the caret rect that
14472         previously existed. Revert the optimization added in r133840 to skip caret invalidation when new
14473         selection is null, and add a special method to be called by FrameLoader prior to destruction instead.
14474         This will let us avoid doing an extra layout upon destruction and not regress repaint tests.
14475
14476         Covered by existing tests.
14477
14478         * editing/FrameSelection.cpp:
14479         (WebCore::FrameSelection::setSelection): Added DoNotUpdateAppearance option.
14480         (WebCore::FrameSelection::prepareForDestruction): Added.
14481         (WebCore::FrameSelection::updateAppearance): Reverted the flawed optimization added in r133840.
14482         Also, don't update style before updating selection unless text caret is disabled since we always
14483         update the layout (including style) when text caret is enabled.
14484         * editing/FrameSelection.h:
14485         (FrameSelection):
14486         * loader/FrameLoader.cpp:
14487         (WebCore::FrameLoader::clear): Call prepareForDestruction instead of clear to avoid a layout.
14488
14489 2012-11-11  Dongwoo Joshua Im  <dw.im@samsung.com>
14490
14491         [CSS3] Parsing the property, text-align-last.
14492         https://bugs.webkit.org/show_bug.cgi?id=99439
14493
14494         Reviewed by Julien Chaffraix.
14495
14496         This patch implements the parsing side of the "text-align-last" property specified
14497         in CSS3 working draft, with "-webkit-" prefix, under ENABLE_CSS3_TEXT flag.
14498         Specification link : http://www.w3.org/TR/css3-text/#text-align-last
14499
14500         Tests: fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last-inherited.html
14501                fast/css3-text/css3-text-align-last/getComputedStyle/getComputedStyle-text-align-last.html
14502
14503         * css/CSSComputedStyleDeclaration.cpp:
14504         (WebCore):
14505         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Get the value of the text-align-last property.
14506         * css/CSSParser.cpp:
14507         (WebCore::CSSParser::parseValue): Parse the value, and check whether it is a proper value which text-align-last can have.
14508         * css/CSSPrimitiveValueMappings.h:
14509         (WebCore):
14510         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
14511         (WebCore::CSSPrimitiveValue::operator ETextAlignLast):
14512         * css/CSSProperty.cpp:
14513         (WebCore::CSSProperty::isInheritedProperty):
14514         * css/CSSPropertyNames.in: Add '-webkit-text-align-last' property.
14515         * css/StyleBuilder.cpp:
14516         (WebCore::StyleBuilder::StyleBuilder):
14517         * css/StylePropertySet.cpp:
14518         (WebCore):
14519         * css/StyleResolver.cpp:
14520         (WebCore::StyleResolver::applyProperty):
14521         * rendering/style/RenderStyle.h:
14522         * rendering/style/RenderStyleConstants.h:
14523         * rendering/style/StyleRareInheritedData.cpp:
14524         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
14525         (WebCore::StyleRareInheritedData::operator==):
14526         * rendering/style/StyleRareInheritedData.h:
14527         (StyleRareInheritedData): Add m_textAlignLast.
14528
14529 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14530
14531         [Refactoring] Remove shadowPseudoId() and use setPseudo() in HTMLKeygenElement
14532         https://bugs.webkit.org/show_bug.cgi?id=101881
14533
14534         Reviewed by Kent Tamura.
14535
14536         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from HTMLKeygenElement and use
14537         setPseudo()/pseudo() instead.
14538
14539         No new tests, simple refacotring.
14540
14541         * html/HTMLKeygenElement.cpp:
14542         (WebCore::KeygenSelectElement::KeygenSelectElement):
14543         (KeygenSelectElement):
14544
14545 2012-11-11  Adam Barth  <abarth@webkit.org>
14546
14547         Many DOMWindowProperties would benefit from being ScriptWrappable
14548         https://bugs.webkit.org/show_bug.cgi?id=101887
14549
14550         Reviewed by Kentaro Hara.
14551
14552         These object are only ever created at the behest of script, which means
14553         making them ScriptWrappable is a win.
14554
14555         * page/BarInfo.h:
14556         * page/Console.h:
14557         * page/Crypto.h:
14558         * page/History.h:
14559         * page/Location.h:
14560         * page/Navigator.h:
14561         * page/Performance.h:
14562
14563 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14564
14565         [V8] HTMLDocument::all() needs not to be custom
14566         https://bugs.webkit.org/show_bug.cgi?id=101875
14567
14568         Reviewed by Adam Barth.
14569
14570         We can easily remove the custom getter from V8 because the
14571         custom setter sets .all by ForceSet(). On the other hand,
14572         it is non-trivial to remove the custom getter from JSC
14573         because the custom setter sets .all by putDirect()
14574         and the custom getter wants to get it by getDirect().
14575
14576         No tests. No change in behavior.
14577
14578         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
14579         * html/HTMLDocument.idl:
14580
14581 2012-11-11  Kentaro Hara  <haraken@chromium.org>
14582
14583         [V8] V8Console::memoryAttrGetter() needs not to be custom
14584         https://bugs.webkit.org/show_bug.cgi?id=101873
14585
14586         Reviewed by Adam Barth.
14587
14588         No tests. No change in behavior.
14589
14590         * bindings/v8/custom/V8ConsoleCustom.cpp:
14591         (WebCore):
14592         * page/Console.idl:
14593
14594 2012-11-11  Shinya Kawanaka  <shinyak@chromium.org>
14595
14596         [Shadow] ElementShadow should have RuleFeatureSet for select attribute selectors.
14597         https://bugs.webkit.org/show_bug.cgi?id=101180
14598
14599         Reviewed by Dimitri Glazkov.
14600
14601         This is a preparation patch for Bug 100451.
14602
14603         We preserve RuleFeatureSet collected from select attributes in ShadowDOM.
14604         When an element attribute is changed, we might have to invalidate content distribution,
14605         however it's high cost operation. So we would like to check RuleFeatureSet used in
14606         select attributes to determine we really need to invalidate distribution.
14607
14608         Like StyleResolver, ElementShadow has several rule features. When nested ShadowDOM is used,
14609         first we collect features in nested ShadowDOM, and merge it to the parent ShadowDOM.
14610         For the performance reason, we have a flag to check whether we need to collect features again.
14611
14612         Test: fast/dom/shadow/shadow-select-attribute-featureset.html
14613
14614         * WebCore.exp.in:
14615         * dom/ElementShadow.cpp:
14616         (WebCore::ElementShadow::ElementShadow):
14617         (WebCore::ElementShadow::setShouldCollectSelectFeatureSet): Enable a flag to collect feature set of descendant
14618         nodes (and their ShadowDOM).
14619         (WebCore):
14620         (WebCore::ElementShadow::ensureSelectFeatureSetCollected):
14621         (WebCore::ElementShadow::collectSelectFeatureSetFrom): Collect RuleFeatureSet from all descendant Nodes and their
14622         ShadowDOM. We need to collect id, class, and attribute names.
14623         * dom/ElementShadow.h:
14624         (WebCore::ElementShadow::shouldCollectSelectFeatureSet):
14625         (ElementShadow):
14626         (WebCore::ElementShadow::hasSelectorForId):
14627         (WebCore):
14628         (WebCore::ElementShadow::hasSelectorForClass):
14629         (WebCore::ElementShadow::hasSelectorForAttribute):
14630         * html/shadow/HTMLContentElement.cpp:
14631         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, enable a flag to recollect features.
14632         (WebCore::HTMLContentElement::insertedInto): We have to recollect features when HTMLContentElement is moved.
14633         (WebCore::HTMLContentElement::removedFrom): ditto.
14634         * html/shadow/HTMLContentElement.h:
14635         (WebCore::toHTMLContentElement):
14636         (WebCore):
14637         * testing/Internals.cpp:
14638         (WebCore::Internals::hasSelectorForIdInShadow):
14639         (WebCore):
14640         (WebCore::Internals::hasSelectorForClassInShadow):
14641         (WebCore::Internals::hasSelectorForAttributeInShadow):
14642         * testing/Internals.h:
14643         (Internals):
14644         * testing/Internals.idl:
14645
14646 2012-11-11  Sheriff Bot  <webkit.review.bot@gmail.com>
14647
14648         Unreviewed, rolling out r134144.
14649         http://trac.webkit.org/changeset/134144
14650         https://bugs.webkit.org/show_bug.cgi?id=101876
14651
14652         seems to break win 7 chromium browser test (Requested by
14653         hayato on #webkit).
14654
14655         * WebCore.exp.in:
14656         * page/EventHandler.cpp:
14657         (WebCore):
14658         (WebCore::EventHandler::handleMouseMoveEvent):
14659         * page/EventHandler.h:
14660         (EventHandler):
14661         * testing/Internals.cpp:
14662         * testing/Internals.h:
14663         * testing/Internals.idl:
14664
14665 2012-11-11  Kent Tamura  <tkent@chromium.org>
14666
14667         Internals: MockPagePopup should not update DOM structure during detach()
14668         https://bugs.webkit.org/show_bug.cgi?id=101710
14669
14670         Reviewed by Hajime Morita.
14671
14672         PickerIndicatorElement::detach calls
14673         MockPagePopupDriver::closePagePopup, MockPagePopup::~MockPagePopup,
14674         which remove the mock iframe from the tree. But updating the tree during
14675         detach() is dangerous.
14676
14677         MockPagePopupDriver::closePagePopup calls MockpagePopup::closeLater, it
14678         requests to call 'close' asynchronously, and 'close' removes the mock
14679         iframe. We need to change MockPagePopup so that it is ref-couted and has
14680         a timer.
14681
14682         No new tests. This is a change for the test harness.
14683
14684         * testing/MockPagePopupDriver.cpp:
14685         (MockPagePopup): Make this ref-counted, add closeLater, add close, and
14686         add m_closeTimer.
14687         (WebCore::MockPagePopup::MockPagePopup): Initialize the timer.
14688         (WebCore::MockPagePopup::create): PassOwnPtr -> PassRefPtr
14689         (WebCore::MockPagePopup::closeLater):
14690         - Add one reference to avoid destruction by m_mockPagePopup.clear() in
14691           closePagePopup.
14692         - Notify didClosePopup here because the client expects didClosePopup is
14693           called synchronously.
14694         - Invoke the timer to call 'close'
14695         (WebCore::MockPagePopup::close):
14696         Just remove one reference. This means calling the desructor.
14697         (WebCore::MockPagePopup::~MockPagePopup):
14698         Move didClosePopup call to caloseLater.
14699         (WebCore::MockPagePopupDriver::closePagePopup):
14700         Request to close PagePopup.
14701         Clear PagePopupClient in m_pagePopupController because this object is
14702         necessary until MockPagePopup is closed, but it should not have a
14703         reference to the PagePopupClient.
14704         * testing/MockPagePopupDriver.h:
14705         (MockPagePopupDriver): Make MockPagePopup ref-counted.
14706
14707 2012-11-11  Adam Barth  <abarth@webkit.org>
14708
14709         axObjectCache code is more complicated than necessary
14710         https://bugs.webkit.org/show_bug.cgi?id=101820
14711
14712         Reviewed by Darin Adler.
14713
14714         This code should use OwnPtr rather than manually calling new/delete.
14715         Also, instead of using a "double check" pattern, we can just access the
14716         private fields on the top document directly.
14717
14718         * dom/Document.cpp:
14719         (WebCore::Document::Document):
14720         (WebCore::Document::clearAXObjectCache):
14721         (WebCore::Document::axObjectCacheExists):
14722         (WebCore):
14723         (WebCore::Document::axObjectCache):
14724         * dom/Document.h:
14725         (Document):
14726
14727 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14728
14729         Save one call to containerForRepaint() when updating layer positions
14730         https://bugs.webkit.org/show_bug.cgi?id=101856
14731
14732         Reviewed by Dan Bernstein.
14733
14734          RenderLayer::updateLayerPositions() has already computed the repaint container,
14735          but calls computeRepaintRects() which computes it again. Computing the repaint
14736          container involves a walk back up the layer tree, so calling it during a tree
14737          traversal is costly.
14738          
14739          Fix by passing the repaint container down into computeRepaintRects().
14740
14741         * rendering/RenderLayer.cpp:
14742         (WebCore::RenderLayer::updateLayerPositions):
14743         (WebCore::RenderLayer::computeRepaintRects):
14744         (WebCore::RenderLayer::computeRepaintRectsIncludingDescendants):
14745         (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
14746         (WebCore::RenderLayer::setHasVisibleContent):
14747         * rendering/RenderLayer.h:
14748         (RenderLayer):
14749
14750 2012-11-11  Kenichi Ishibashi  <bashi@chromium.org>
14751
14752         WTFString::utf8() should have a mode of conversion to use replacement character
14753         https://bugs.webkit.org/show_bug.cgi?id=101678
14754
14755         Reviewed by Alexey Proskuryakov.
14756
14757         Follow the change on String::utf8()
14758
14759         No new tests. No changes in behavior.
14760
14761         * Modules/websockets/WebSocket.cpp:
14762         (WebCore::WebSocket::close): Pass String::StrictConversion instead of true to String::utf8().
14763         * Modules/websockets/WebSocketChannel.cpp:
14764         (WebCore::WebSocketChannel::send): Ditto.
14765         * html/MediaFragmentURIParser.cpp:
14766         (WebCore::MediaFragmentURIParser::parseFragments): Ditto.
14767         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
14768         (WebCore::MediaPlayerPrivate::notifyChallengeResult): Ditto.
14769         * platform/network/blackberry/rss/RSSFilterStream.cpp:
14770         (WebCore::RSSFilterStream::convertContentToHtml): Ditto.
14771         * platform/network/blackberry/rss/RSSGenerator.cpp:
14772         (WebCore::RSSGenerator::generateHtml): Ditto.
14773
14774 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14775
14776         Coalesce main thread scroll position updates
14777         https://bugs.webkit.org/show_bug.cgi?id=101855
14778
14779         Reviewed by Anders Carlsson.
14780
14781         When using threaded scrolling, the dispatched updateMainFrameScrollPosition() calls 
14782         from ScrollingTree would pile up on the main thread, and we'd handle several per
14783         runloop cycle when scrolling fast. This causes extra work especially on pages
14784         with position:fixed elements which must update RenderLayers on scrolling.
14785         
14786         Fix by using a zero-delay timer in ScrollingCoordinator to coalesce these
14787         scrolling updates to one per runloop.
14788
14789         * page/scrolling/ScrollingCoordinator.cpp:
14790         (WebCore::ScrollingCoordinator::ScrollingCoordinator): Initialized data members
14791         for the scheduled scroll position update.
14792         (WebCore::ScrollingCoordinator::scheduleUpdateMainFrameScrollPosition): If 
14793         the timer is active and the parameters match, just update the target scroll
14794         position and return. If the params don't match, dispatch the scheduled update,
14795         and then the new one. Otherwise, prime the timer.
14796         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionTimerFired): Call
14797         the existing updateMainFrameScrollPosition() with the saved values.
14798         * page/scrolling/ScrollingCoordinator.h:
14799         * page/scrolling/ScrollingTree.cpp:
14800         (WebCore::ScrollingTree::updateMainFrameScrollPosition): Call scheduleUpdateMainFrameScrollPosition()
14801         rather than updateMainFrameScrollPosition().
14802         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14803         (WebCore::ScrollingCoordinatorMac::syncChildPositions): Fixed a bug that caused fixed
14804         position elements to jiggle with the patch; we should be calling syncPosition() (which just
14805         sets the position data, without touching CA layers).
14806
14807 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14808
14809         Remove ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition()
14810         https://bugs.webkit.org/show_bug.cgi?id=101514
14811
14812         Reviewed by Tim Horton.
14813
14814         ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition() is very similar to
14815         ScrollingCoordinator::updateMainFrameScrollPosition(). In order to eliminate updateMainFrameScrollPositionAndScrollLayerPosition(),
14816         we just need to plumb through a flag that says that updateMainFrameScrollPosition() should
14817         set the layer position (rather than just doing a 'sync').
14818
14819         * page/scrolling/ScrollingCoordinator.cpp:
14820         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
14821         * page/scrolling/ScrollingCoordinator.h:
14822         * page/scrolling/ScrollingTree.cpp:
14823         (WebCore::ScrollingTree::updateMainFrameScrollPosition):
14824         * page/scrolling/ScrollingTree.h:
14825         * page/scrolling/mac/ScrollingCoordinatorMac.h:
14826         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
14827         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
14828         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
14829
14830 2012-11-10  Sheriff Bot  <webkit.review.bot@gmail.com>
14831
14832         Unreviewed, rolling out r134069.
14833         http://trac.webkit.org/changeset/134069
14834         https://bugs.webkit.org/show_bug.cgi?id=101852
14835
14836         "It is a wrong way to fix the problem. See discussions in bug
14837         96614" (Requested by 1JTAAPQFJ on #webkit).
14838
14839         * bindings/js/JSDictionary.cpp:
14840         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
14841
14842 2012-11-10  Mike West  <mkwst@chromium.org>
14843
14844         Web Inspector: Multiple '%c' formatting options should all have effect.
14845         https://bugs.webkit.org/show_bug.cgi?id=101495
14846
14847         Reviewed by Pavel Feldman.
14848
14849         This patch supports multiple '%c' formatting blocks in console messages.
14850         'console.log("%cblue! %cgreen!", "color: blue;", "color: green;")' will
14851         do exactly what you expect: "blue!" will be blue, and "green!" will be
14852         green.
14853
14854         The implementation moves the styles off the message's parent 'span', and
14855         onto new 'span' elements that wrap the various textual bits of the
14856         message.
14857
14858         * inspector/front-end/ConsoleMessage.js:
14859         (WebInspector.ConsoleMessageImpl.prototype.):
14860         (WebInspector.ConsoleMessageImpl.prototype.append):
14861         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
14862
14863 2012-11-10  Mike West  <mkwst@chromium.org>
14864
14865         Including <CoreText/CoreText.h> breaks the chromium/mac build.
14866         https://bugs.webkit.org/show_bug.cgi?id=101851
14867
14868         Reviewed by Dan Bernstein.
14869
14870         r134146 introduced inclusion of 'CoreText/CoreText.h' in
14871         SimpleFontDataCoreText.cpp, which broke the chromium/mac build. Grepping
14872         around, it looks like this needs to be modified to include
14873         'ApplicationServices/ApplicationServices.h'.
14874
14875         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
14876             Drop 'CoreText.h' in favor of 'ApplicationServices.h'.
14877         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
14878             Drop the platform-specific '#if' logic; just include 'ApplicationServices.h'.
14879
14880 2012-11-10  Andreas Kling  <kling@webkit.org>
14881
14882         Don't detach from shared ElementAttributeData when overwriting attribute with identical value.
14883         <http://webkit.org/b/101849>
14884
14885         Reviewed by Anders Carlsson.
14886
14887         Defer the mutableAttributeData() call in Element::setAttributeInternal() until the last
14888         possible moment, to avoid unnecessarily detaching and cloning from attribute data.
14889
14890         120 kB progression on Membuster3.
14891
14892         * dom/Element.cpp:
14893         (WebCore::Element::setAttributeInternal):
14894         (WebCore::Element::addAttributeInternal):
14895
14896 2012-11-10  Simon Fraser  <simon.fraser@apple.com>
14897
14898         Some minor optimizations in RenderLayer
14899         https://bugs.webkit.org/show_bug.cgi?id=101847
14900
14901         Reviewed by Anders Carlsson.
14902
14903         Some minor performance improvements in RenderLayer code.
14904
14905         * rendering/RenderLayer.cpp:
14906         (WebCore::RenderLayer::updateLayerPosition): isRenderInline() is a virtual call,
14907         so prefix it with an isInline() check which tests a bit on RenderObject.
14908         (WebCore::RenderLayer::localBoundingBox): Ditto.
14909         (WebCore::RenderLayer::calculateLayerBounds): Pull layer->renderer()
14910         into a local variable.
14911
14912 2012-11-10  Anders Carlsson  <andersca@apple.com>
14913
14914         Document::m_fullScreenElementStack should be a Vector
14915         https://bugs.webkit.org/show_bug.cgi?id=101844
14916
14917         Reviewed by Andreas Kling.
14918
14919         m_fullScreenElementStack is currently a Deque where elements are being prepended
14920         and removed from the beginning in LIFO order, so it can be replaced with a Vector.
14921
14922         * dom/Document.cpp:
14923         (WebCore::Document::requestFullScreenForElement):
14924         (WebCore::Document::webkitCancelFullScreen):
14925         (WebCore::Document::popFullscreenElementStack):
14926         (WebCore::Document::pushFullscreenElementStack):
14927         * dom/Document.h:
14928         (WebCore::Document::webkitFullscreenElement):
14929         (Document):
14930
14931 2012-11-10  Adam Barth  <abarth@webkit.org>
14932
14933         [V8] Clean up header includes and ifdefs in V8GCController
14934         https://bugs.webkit.org/show_bug.cgi?id=101691
14935
14936         Reviewed by Kentaro Hara.
14937
14938         This file doesn't need to include all these headers anymore.
14939
14940         * bindings/v8/V8GCController.cpp:
14941         (WebCore::workingSetEstimateMBMutex):
14942         (WebCore::V8GCController::majorGCEpilogue):
14943         (WebCore::V8GCController::checkMemoryUsage):
14944
14945 2012-11-10  Joseph Pecoraro  <pecoraro@apple.com>
14946
14947         [Mac] Guard WebCore PageVisibility Symbol Export
14948         https://bugs.webkit.org/show_bug.cgi?id=101817
14949
14950         Reviewed by Andreas Kling.
14951
14952         Guard the export with the same ENABLE guards around its definition
14953         and implementation.
14954
14955         * WebCore.exp.in:
14956
14957 2012-11-10  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
14958
14959         [css] text-decoration:none no longer valid
14960         https://bugs.webkit.org/show_bug.cgi?id=101529
14961
14962         Reviewed by Ojan Vafai.
14963
14964         This patch fixes an issue where the 'none' value was parsed as explicitly
14965         'initial' value. However true in a sense that the initial value for the
14966         'text-decoration' property is 'none', the value itself could not be parsed as
14967         'initial'.
14968
14969         The getComputedStyle layout tests for 'text-decoration' and
14970         '-webkit-text-decoration-line' CSS properties are updated with the correct
14971         results.
14972
14973         * css/CSSParser.cpp:
14974         (WebCore::CSSParser::parseTextDecoration): When parsed, 'none' value
14975         gets its own identifier value instead of explicit initial.
14976
14977 2012-11-09  Dean Jackson  <dino@apple.com>
14978
14979         Support list of tracks in caption media controls
14980         https://bugs.webkit.org/show_bug.cgi?id=101669
14981
14982         Reviewed by Eric Carlson.
14983
14984         Attempt three of commit. The first two times caused build failures on Chromium.
14985
14986         Add some new elements to the media control shadow DOM that display the list of available
14987         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
14988         where it is given a very basic design. At the moment only the list of available tracks
14989         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
14990
14991         No new tests - this doesn't expose any testable surface.
14992
14993         * css/mediaControls.css: Added default rules that hide the new elements.
14994         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
14995         * html/shadow/MediaControlElements.cpp:
14996         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
14997         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
14998         (WebCore::MediaControlClosedCaptionsContainerElement::create):
14999         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15000         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15001         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15002         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15003         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15004         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15005         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15006         * html/shadow/MediaControlElements.h:
15007         (MediaControlElement):
15008         (MediaControlToggleClosedCaptionsButtonElement):
15009         (MediaControlClosedCaptionsContainerElement):
15010         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15011         * html/shadow/MediaControlRootElement.cpp:
15012         (WebCore::MediaControlRootElement::MediaControlRootElement):
15013         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15014         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15015         (WebCore::MediaControlRootElement::hide):
15016         (WebCore::MediaControlRootElement::makeTransparent):
15017         (WebCore::MediaControlRootElement::reset):
15018         (WebCore::MediaControlRootElement::reportedError):
15019         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15020         (WebCore):
15021         * html/shadow/MediaControlRootElement.h:
15022         (WebCore):
15023         (MediaControlRootElement):
15024         * html/shadow/MediaControlRootElementChromium.cpp:
15025         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15026         * html/shadow/MediaControls.h:
15027         (MediaControls):
15028         * platform/Language.cpp:
15029         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15030         * platform/Language.h:
15031         (WebCore):
15032         * rendering/RenderMediaControls.cpp:
15033         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15034         * rendering/RenderMediaControlsChromium.cpp:
15035         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15036
15037 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15038
15039         Unreviewed, rolling out r134152.
15040         http://trac.webkit.org/changeset/134152
15041         https://bugs.webkit.org/show_bug.cgi?id=101831
15042
15043         broke chromium again (Requested by dino_ on #webkit).
15044
15045         * css/mediaControls.css:
15046         * css/mediaControlsQuickTime.css:
15047         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15048         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15049         * html/shadow/MediaControlElements.cpp:
15050         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15051         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15052         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15053         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15054         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15055         * html/shadow/MediaControlElements.h:
15056         (MediaControlElement):
15057         (MediaControlToggleClosedCaptionsButtonElement):
15058         * html/shadow/MediaControlRootElement.cpp:
15059         (WebCore::MediaControlRootElement::MediaControlRootElement):
15060         (WebCore::MediaControlRootElement::create):
15061         (WebCore::MediaControlRootElement::setMediaController):
15062         (WebCore::MediaControlRootElement::hide):
15063         (WebCore::MediaControlRootElement::makeTransparent):
15064         (WebCore::MediaControlRootElement::reset):
15065         (WebCore::MediaControlRootElement::reportedError):
15066         * html/shadow/MediaControlRootElement.h:
15067         (WebCore):
15068         (MediaControlRootElement):
15069         * html/shadow/MediaControlRootElementChromium.cpp:
15070         (WebCore::MediaControlRootElementChromium::initializeControls):
15071         * html/shadow/MediaControls.h:
15072         (MediaControls):
15073         * platform/Language.cpp:
15074         (WebCore):
15075         * platform/Language.h:
15076         (WebCore):
15077         * rendering/RenderMediaControls.cpp:
15078         (WebCore::RenderMediaControls::paintMediaControlsPart):
15079         * rendering/RenderMediaControlsChromium.cpp:
15080         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
15081
15082 2012-11-09  Dean Jackson  <dino@apple.com>
15083
15084         Support list of tracks in caption media controls
15085         https://bugs.webkit.org/show_bug.cgi?id=101669
15086
15087         Reviewed by Eric Carlson.
15088
15089         Attempt two of commit. The first time caused a build failure on Chromium.
15090
15091         Add some new elements to the media control shadow DOM that display the list of available
15092         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15093         where it is given a very basic design. At the moment only the list of available tracks
15094         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15095
15096         No new tests - this doesn't expose any testable surface.
15097
15098         * css/mediaControls.css: Added default rules that hide the new elements.
15099         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15100         * html/shadow/MediaControlElements.cpp:
15101         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15102         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15103         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15104         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15105         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15106         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15107         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15108         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15109         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15110         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15111         * html/shadow/MediaControlElements.h:
15112         (MediaControlElement):
15113         (MediaControlToggleClosedCaptionsButtonElement):
15114         (MediaControlClosedCaptionsContainerElement):
15115         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15116         * html/shadow/MediaControlRootElement.cpp:
15117         (WebCore::MediaControlRootElement::MediaControlRootElement):
15118         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15119         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15120         (WebCore::MediaControlRootElement::hide):
15121         (WebCore::MediaControlRootElement::makeTransparent):
15122         (WebCore::MediaControlRootElement::reset):
15123         (WebCore::MediaControlRootElement::reportedError):
15124         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15125         (WebCore):
15126         * html/shadow/MediaControlRootElement.h:
15127         (WebCore):
15128         (MediaControlRootElement):
15129         * html/shadow/MediaControlRootElementChromium.cpp:
15130         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15131         * html/shadow/MediaControls.h:
15132         (MediaControls):
15133         * platform/Language.cpp:
15134         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15135         * platform/Language.h:
15136         (WebCore):
15137         * rendering/RenderMediaControls.cpp:
15138         (WebCore::RenderMediaControls::paintMediaControlsPart): New enum values into switch.
15139         * rendering/RenderMediaControlsChromium.cpp:
15140         (WebCore::RenderMediaControlsChromium::paintMediaControlsPart): New enum values into switch.
15141
15142 2012-11-09  Ojan Vafai  <ojan@chromium.org>
15143
15144         Should only fire a single set of mouse events and update hover state once when scrolling is done
15145         https://bugs.webkit.org/show_bug.cgi?id=99940
15146
15147         Reviewed by Levi Weintraub.
15148
15149         -Use a DeferrableOneShotTimer instead of a Timer. By resetting when the
15150         timer is fired, we ensure the actual goal of not firing fake mouse events
15151         until the scroll is completed. This is the core part of this change.
15152         -Change our mouse event throttling to keep a running average of how long
15153         mouse events take and adjust throttling appropriately.
15154         Test: fast/scrolling/fake-mouse-event-throttling.html
15155         -Maintain a minimum throttle of 100ms.
15156
15157         * page/EventHandler.cpp:
15158         (WebCore):
15159         (WebCore::RunningAverageDurationTracker::RunningAverageDurationTracker):
15160         (WebCore::RunningAverageDurationTracker::~RunningAverageDurationTracker):
15161         Keep track of a running average instead of max. This lets us adjust throttling
15162         dynamically without punishing a page for having a single mouse event handler
15163         that takes disproportionately long.
15164         (RunningAverageDurationTracker):
15165         (WebCore::EventHandler::EventHandler):
15166         (WebCore::EventHandler::clear):
15167         (WebCore::EventHandler::mouseMoved):
15168         (WebCore::EventHandler::handleMouseMoveEvent):
15169         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
15170         (WebCore::EventHandler::fakeMouseMoveEventTimerFired):
15171         * page/EventHandler.h:
15172         (EventHandler):
15173         * platform/Timer.h:
15174         (WebCore::DeferrableOneShotTimer::setDelay):
15175         (WebCore::DeferrableOneShotTimer::delay):
15176         Add a way of adjusting the timer delay.
15177
15178 2012-11-09  Rick Byers  <rbyers@chromium.org>
15179
15180         Move chromium to USE(LAZY_NATIVE_CURSOR)
15181         https://bugs.webkit.org/show_bug.cgi?id=101501
15182
15183         Reviewed by Adam Barth.
15184
15185         This simplifies cursor handling in chromium and unifies it with other
15186         ports for easier code sharing and testing by moving to the
15187         USE_LAZY_CURSOR model and eliminating PlatformCursor entirely.
15188
15189         PlatformCursor adds no value in chromium since the sandboxing model
15190         requires the cursor information be marshalled to the browser process
15191         before being turned into a real OS cursor.
15192
15193         Test: fast/events/mouse-cursor.html
15194
15195         * WebCore.gypi:
15196         * platform/Cursor.h:
15197         (WebCore):
15198         * platform/chromium/CursorChromium.cpp:
15199         (WebCore::Cursor::Cursor):
15200         (WebCore::Cursor::operator=):
15201         (WebCore::Cursor::~Cursor):
15202         (WebCore::Cursor::ensurePlatformCursor):
15203         * platform/chromium/PlatformCursor.h: Removed.
15204
15205 2012-11-09  Noam Rosenthal  <noam.rosenthal@nokia.com>
15206
15207         Allow ports to decide whether an image should be directly composited
15208         https://bugs.webkit.org/show_bug.cgi?id=101827
15209
15210         Reviewed by Simon Fraser.
15211
15212         Tested by compositing/tiling/huge-layer-img.html.
15213
15214         * platform/graphics/GraphicsLayer.h:
15215         (WebCore::GraphicsLayer::shouldDirectlyCompositeImage):
15216             Allow the GraphicsLayer implementation to decide if the image can be composited.
15217
15218         * rendering/RenderLayerBacking.cpp:
15219         (WebCore::RenderLayerBacking::isDirectlyCompositedImage):
15220             Take onto account the new shouldDirectlyCompositeImage check.
15221
15222 2012-11-09  Dan Bernstein  <mitz@apple.com>
15223
15224         SimpleFontData::getCFStringAttributes sets some attributes to their default values, but shouldn’t
15225         https://bugs.webkit.org/show_bug.cgi?id=101799
15226
15227         Reviewed by Alexey Proskuryakov.
15228
15229         In some configurations, setting kCTLigatureAttributeName to its default value of 1 yields
15230         different behavior from not setting it at all. We can get the correct behavior and greatly
15231         simplify the code by not setting attributes to their default values.
15232
15233         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
15234         Removed redundant #import directives and changed the remaining ones to #include.
15235         (WebCore::SimpleFontData::getCFStringAttributes): Changed to use a mutable dictionary and
15236         only add attributes that have non-default values.
15237
15238 2012-11-09  Rick Byers  <rbyers@chromium.org>
15239
15240         No tests for changing mouse cursors
15241         https://bugs.webkit.org/show_bug.cgi?id=100550
15242
15243         Reviewed by Adam Barth.
15244
15245         Add infrastructure to keep track of the last set mouse cursor,
15246         and then to query it from DumpRenderTree.
15247
15248         Test: fast/events/mouse-cursor.html
15249
15250         * WebCore.exp.in: Add Cursor copy ctor export
15251         * page/EventHandler.cpp:
15252         (WebCore::EventHandler::handleMouseMoveEvent): Keep track of last set mouse cursor
15253         * page/EventHandler.h:
15254         (WebCore::EventHandler::currentMouseCursor): New getter for last set mouse cursor
15255         * testing/Internals.cpp:
15256         (WebCore::cursorTypeToString): Helper to convert cursor type to enum
15257         (WebCore):
15258         (WebCore::Internals::getCurrentCursorInfo): New function to return a string describing the last set mouse cursor
15259         * testing/Internals.h: Declare getCurrentCursorInfo
15260         * testing/Internals.idl: Declare getCurrentCursorInfo
15261
15262 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15263
15264         Coordinated Graphics: Amend CoordinatedBackingStore::paintToTextureMapper to fit its own semantic.
15265         https://bugs.webkit.org/show_bug.cgi?id=101701
15266
15267         Reviewed by Noam Rosenthal.
15268
15269         Add TiledBackingStore::rect() because CoordinatedTile needs to know
15270         m_rect of TiledBackingStore.
15271
15272         * platform/graphics/TiledBackingStore.h:
15273         (WebCore::TiledBackingStore::rect):
15274
15275 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15276
15277         Unreviewed, rolling out r134139.
15278         http://trac.webkit.org/changeset/134139
15279         https://bugs.webkit.org/show_bug.cgi?id=101823
15280
15281         breaks chromium (android) build (Requested by thorton on
15282         #webkit).
15283
15284         * css/mediaControls.css:
15285         * css/mediaControlsQuickTime.css:
15286         (audio::-webkit-media-controls-toggle-closed-captions-button, video::-webkit-media-controls-toggle-closed-captions-button):
15287         (audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
15288         * html/shadow/MediaControlElements.cpp:
15289         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15290         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
15291         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15292         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15293         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15294         * html/shadow/MediaControlElements.h:
15295         (MediaControlElement):
15296         (MediaControlToggleClosedCaptionsButtonElement):
15297         * html/shadow/MediaControlRootElement.cpp:
15298         (WebCore::MediaControlRootElement::MediaControlRootElement):
15299         (WebCore::MediaControlRootElement::create):
15300         (WebCore::MediaControlRootElement::setMediaController):
15301         (WebCore::MediaControlRootElement::hide):
15302         (WebCore::MediaControlRootElement::makeTransparent):
15303         (WebCore::MediaControlRootElement::reset):
15304         (WebCore::MediaControlRootElement::reportedError):
15305         * html/shadow/MediaControlRootElement.h:
15306         (WebCore):
15307         (MediaControlRootElement):
15308         * html/shadow/MediaControlRootElementChromium.cpp:
15309         (WebCore::MediaControlRootElementChromium::initializeControls):
15310         * html/shadow/MediaControls.h:
15311         (MediaControls):
15312         * platform/Language.cpp:
15313         (WebCore):
15314         * platform/Language.h:
15315         (WebCore):
15316
15317 2012-11-09  Huang Dongsung  <luxtella@company100.net>
15318
15319         [TexMap] Initialize m_compositedNativeImagePtr in GraphicsLayerTextureMapper.
15320         https://bugs.webkit.org/show_bug.cgi?id=101675
15321
15322         Reviewed by Noam Rosenthal.
15323
15324         Fix a potential bug in GraphicsLayerTextureMapper. If the member's uninitialized
15325         value equals image->nativeImageForCurrentFrame() by change, we can encounter
15326         undefined behavior.
15327
15328         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
15329         (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
15330         (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
15331
15332 2012-11-09  Dean Jackson  <dino@apple.com>
15333
15334         Support list of tracks in caption media controls
15335         https://bugs.webkit.org/show_bug.cgi?id=101669
15336
15337         Reviewed by Eric Carlson.
15338
15339         Add some new elements to the media control shadow DOM that display the list of available
15340         tracks on an audio/video element. The UI is hidden by default everywhere but on Mac,
15341         where it is given a very basic design. At the moment only the list of available tracks
15342         are displayed; The followup bug will make the UI active: https://bugs.webkit.org/show_bug.cgi?id=101670
15343
15344         No new tests - this doesn't expose any testable surface.
15345
15346         * css/mediaControls.css: Added default rules that hide the new elements.
15347         * css/mediaControlsQuickTime.css: Specific rules that give a basic rendering of the new track list.
15348         * html/shadow/MediaControlElements.cpp:
15349         (WebCore::MediaControlElement::isShowing): Tests for the visibility of a control.
15350         (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
15351         (WebCore::MediaControlClosedCaptionsContainerElement::create):
15352         (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId):
15353         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
15354         (WebCore::MediaControlToggleClosedCaptionsButtonElement::create): Now takes a reference to the media controls as a parameter.
15355         (WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
15356         (WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
15357         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
15358         (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): New element for holding a list of tracks to display.
15359         * html/shadow/MediaControlElements.h:
15360         (MediaControlElement):
15361         (MediaControlToggleClosedCaptionsButtonElement):
15362         (MediaControlClosedCaptionsContainerElement):
15363         (MediaControlClosedCaptionsTrackListElement): Examines the media element to build a shadow DOM that lists all the tracks available.
15364         * html/shadow/MediaControlRootElement.cpp:
15365         (WebCore::MediaControlRootElement::MediaControlRootElement):
15366         (WebCore::MediaControlRootElement::create): New track container and list elements created.
15367         (WebCore::MediaControlRootElement::setMediaController): Hook up the new elements to the controller..
15368         (WebCore::MediaControlRootElement::hide):
15369         (WebCore::MediaControlRootElement::makeTransparent):
15370         (WebCore::MediaControlRootElement::reset):
15371         (WebCore::MediaControlRootElement::reportedError):
15372         (WebCore::MediaControlRootElement::toggleClosedCaptionTrackList): Shows or hides the popup with the list of tracks.
15373         (WebCore):
15374         * html/shadow/MediaControlRootElement.h:
15375         (WebCore):
15376         (MediaControlRootElement):
15377         * html/shadow/MediaControlRootElementChromium.cpp:
15378         (WebCore::MediaControlRootElementChromium::initializeControls): Pass in the controls as a parameter.
15379         * html/shadow/MediaControls.h:
15380         (MediaControls):
15381         * platform/Language.cpp:
15382         (WebCore::displayNameForLanguageLocale): New function to return a human-readable name for a locale, given the identifier input.
15383         * platform/Language.h:
15384         (WebCore):
15385
15386 2012-11-09  Noel Gordon  <noel.gordon@gmail.com>
15387
15388         [chromium] Should pass fast/images/paletted-png-with-color-profile.html
15389         https://bugs.webkit.org/show_bug.cgi?id=101551
15390
15391         Reviewed by Adam Barth.
15392
15393         Support decoding color PALETTE images that have an ICC color profile.
15394
15395         Covered by fast/images/png-suite/test.html and many other fast/image tests.
15396
15397         * platform/image-decoders/png/PNGImageDecoder.cpp:
15398         (WebCore::PNGImageDecoder::headerAvailable): Move the color profile code after the
15399         transparency (tRNS) reader. Allow color PNG images: RGB, RGBA, PALLETE to be color
15400         corrected. Use the transparency count from the tRNS reader to detect the expansion
15401         of RGB and PALLETE image pixels to RGBA.
15402
15403 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15404
15405         Correct hit-test point scaling for document.elementFromPoint
15406         https://bugs.webkit.org/show_bug.cgi?id=101798
15407
15408         Reviewed by Adam Barth.
15409
15410         The hit-test point come from user JavaScript is in the document coordinate.
15411         Convert to the frame coordinate with correct scale factor for hit test.
15412
15413         Test: fast/dom/elementFromPoint-scaled-scrolled.html
15414
15415         * dom/Document.cpp:
15416         (WebCore::nodeFromPoint):
15417
15418 2012-11-09  Alec Flett  <alecflett@chromium.org>
15419
15420         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15421         https://bugs.webkit.org/show_bug.cgi?id=101415
15422
15423         Reviewed by Tony Chang.
15424
15425         Combine abstract interface IDBBackingStore with its only
15426         implementation, IDBLevelDBBackingStore, to reduce code
15427         complexity. The legacy structure existed to support a SQLLite
15428         IDBBackingStore, but it is no longer worth the complexity to
15429         support this abstraction.
15430
15431         Changes include:
15432         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15433
15434         2) Merge together IDBBackingStore's inner classes: Cursor,
15435         Transaction, and ObjectStoreRecordIdentfier with their respective
15436         subclasses in IDBLevelDBBackingStore.
15437
15438         3) Simplifying the inner Transaction class to not be refcounted or
15439         virtualized, to allow it to be a simple concrete member of its
15440         owner, IDBTransactionBackendImpl.
15441
15442         No new tests as this is purely a refactor.
15443
15444         * Modules/indexeddb/IDBBackingStore.cpp:
15445         (WebCore::recordInternalError):
15446         (WebCore::setUpMetadata):
15447         (WebCore::IDBBackingStore::IDBBackingStore):
15448         (WebCore):
15449         (WebCore::IDBBackingStore::~IDBBackingStore):
15450         (WebCore::IDBBackingStore::open):
15451         (WebCore::IDBBackingStore::getDatabaseNames):
15452         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15453         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15454         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15455         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15456         (WebCore::deleteRange):
15457         (WebCore::IDBBackingStore::deleteDatabase):
15458         (WebCore::IDBBackingStore::getObjectStores):
15459         (WebCore::setMaxObjectStoreId):
15460         (WebCore::IDBBackingStore::createObjectStore):
15461         (WebCore::IDBBackingStore::deleteObjectStore):
15462         (WebCore::IDBBackingStore::getRecord):
15463         (WebCore::IDBBackingStore::putRecord):
15464         (WebCore::IDBBackingStore::clearObjectStore):
15465         (WebCore::IDBBackingStore::deleteRecord):
15466         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15467         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15468         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15469         (WebCore::IDBBackingStore::getIndexes):
15470         (WebCore::setMaxIndexId):
15471         (WebCore::IDBBackingStore::createIndex):
15472         (WebCore::IDBBackingStore::deleteIndex):
15473         (WebCore::IDBBackingStore::putIndexDataForRecord):
15474         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15475         (WebCore::IDBBackingStore::findKeyInIndex):
15476         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15477         (WebCore::IDBBackingStore::keyExistsInIndex):
15478         (WebCore::IDBBackingStore::Cursor::Cursor):
15479         (WebCore::IDBBackingStore::Cursor::firstSeek):
15480         (WebCore::IDBBackingStore::Cursor::advance):
15481         (WebCore::IDBBackingStore::Cursor::continueFunction):
15482         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15483         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15484         (WebCore::ObjectStoreKeyCursorImpl::create):
15485         (ObjectStoreKeyCursorImpl):
15486         (WebCore::ObjectStoreKeyCursorImpl::value):
15487         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15488         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15489         (WebCore::ObjectStoreCursorImpl::create):
15490         (ObjectStoreCursorImpl):
15491         (WebCore::ObjectStoreCursorImpl::value):
15492         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15493         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15494         (WebCore::IndexKeyCursorImpl::create):
15495         (IndexKeyCursorImpl):
15496         (WebCore::IndexKeyCursorImpl::value):
15497         (WebCore::IndexKeyCursorImpl::primaryKey):
15498         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15499         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15500         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15501         (WebCore::IndexCursorImpl::create):
15502         (IndexCursorImpl):
15503         (WebCore::IndexCursorImpl::value):
15504         (WebCore::IndexCursorImpl::primaryKey):
15505         (WebCore::IndexCursorImpl::recordIdentifier):
15506         (WebCore::IndexCursorImpl::IndexCursorImpl):
15507         (WebCore::IndexCursorImpl::loadCurrentRow):
15508         (WebCore::objectStoreCursorOptions):
15509         (WebCore::indexCursorOptions):
15510         (WebCore::IDBBackingStore::openObjectStoreCursor):
15511         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15512         (WebCore::IDBBackingStore::openIndexKeyCursor):
15513         (WebCore::IDBBackingStore::openIndexCursor):
15514         (WebCore::IDBBackingStore::Transaction::Transaction):
15515         (WebCore::IDBBackingStore::Transaction::begin):
15516         (WebCore::IDBBackingStore::Transaction::commit):
15517         (WebCore::IDBBackingStore::Transaction::rollback):
15518         * Modules/indexeddb/IDBBackingStore.h:
15519         (WebCore):
15520         (IDBBackingStore):
15521         (RecordIdentifier):
15522         (WebCore::IDBBackingStore::RecordIdentifier::create):
15523         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15524         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15525         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15526         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15527         (WebCore::IDBBackingStore::RecordIdentifier::version):
15528         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15529         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15530         (Transaction):
15531         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15532         (CursorOptions):
15533         (Cursor):
15534         (WebCore::IDBBackingStore::Cursor::Cursor):
15535         (WebCore::IDBBackingStore::Cursor::key):
15536         (WebCore::IDBBackingStore::Cursor::primaryKey):
15537         (WebCore::IDBBackingStore::Cursor::~Cursor):
15538         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15539         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15540         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15541         (WebCore::IDBIndexBackendImpl::countInternal):
15542         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15543         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15544         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15545         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15546         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15547         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15548         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15549         (WebCore::IDBTransactionBackendImpl::abort):
15550         (WebCore::IDBTransactionBackendImpl::commit):
15551         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15552         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15553         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15554         * WebCore.xcodeproj/project.pbxproj:
15555
15556 2012-11-09  Tien-Ren Chen  <trchen@chromium.org>
15557
15558         Correct scroll adjustment for touchEvent.clientX/clientY
15559         https://bugs.webkit.org/show_bug.cgi?id=101800
15560
15561         Reviewed by Adam Barth.
15562
15563         FrameView::scrollX/scrollY returns scroll offset in (scaled) frame coordinate.
15564         Convert to document coordinate before passing to JavaScript.
15565
15566         Test: fast/events/touch/touch-scaled-scrolled.html
15567
15568         * dom/Touch.cpp:
15569         (WebCore::contentsX):
15570         (WebCore::contentsY):
15571
15572 2012-11-09  Alexandru Chiculita  <achicu@adobe.com>
15573
15574         [Texmap][CSS Shaders] Enable CSS Shaders in TextureMapperGL
15575         https://bugs.webkit.org/show_bug.cgi?id=98990
15576
15577         Reviewed by Noam Rosenthal.
15578
15579         Added code that draws the Custom Filter in the TextureMapperGL. Also added 
15580         required code to make a depth buffer for a BitmapTextureGL.
15581
15582         Note that the code is not optimized yet, so it will always recompile the shader.
15583
15584         Test: css3/filters/custom/composited/custom-filter-blend-modes.html
15585
15586         * platform/graphics/texmap/TextureMapperGL.cpp:
15587         (WebCore::BitmapTextureGL::BitmapTextureGL):
15588         (WebCore::getPassesRequiredForFilter):
15589         (WebCore):
15590         (WebCore::TextureMapperGL::drawUsingCustomFilter):
15591         (WebCore::BitmapTextureGL::applyFilters):
15592         (WebCore::BitmapTextureGL::initializeDepthBuffer):
15593         (WebCore::BitmapTextureGL::~BitmapTextureGL):
15594         * platform/graphics/texmap/TextureMapperGL.h:
15595         (BitmapTextureGL):
15596
15597 2012-11-09  Sadrul Habib Chowdhury  <sadrul@chromium.org>
15598
15599         CustomEvent: Allow taking in a serialized value during initialization.
15600         https://bugs.webkit.org/show_bug.cgi?id=101348
15601
15602         Reviewed by Adam Barth.
15603
15604         If a CustomEvent is initialized using a serialized value, then for each access
15605         to |detail|, the value is deserialized first. This way, each world gets a different
15606         deserialization.
15607
15608         * UseV8.cmake:
15609         * WebCore.gypi:
15610         * bindings/v8/V8HiddenPropertyName.h:
15611         (WebCore):
15612         * bindings/v8/custom/V8CustomEventCustom.cpp: Copied from Source/WebCore/bindings/v8/V8HiddenPropertyName.h.
15613         (WebCore):
15614         (WebCore::V8CustomEvent::detailAccessorGetter):
15615         * dom/CustomEvent.cpp:
15616         (WebCore::CustomEvent::initCustomEvent):
15617         (WebCore):
15618         * dom/CustomEvent.h:
15619         (CustomEvent):
15620         (WebCore::CustomEvent::serializedScriptValue):
15621         * dom/CustomEvent.idl:
15622
15623 2012-11-09  Brady Eidson  <beidson@apple.com>
15624
15625         Implement WebResourceBuffer::isEmpty()
15626         https://bugs.webkit.org/show_bug.cgi?id=101805
15627
15628         Reviewed by Alexey Proskuryakov.
15629
15630         This is required to make the existing subresource loading in NetworkProcess work correctly,
15631         as there's an isEmpty() check in the WebProcess that decides whether or not to actually deliver 
15632         the data to the ResourceLoader.
15633
15634         No new tests (No change in behavior in any configuration we test.)
15635
15636         * loader/ResourceBuffer.h: Make isEmpty() virtual.
15637
15638 2012-11-09  Michael Saboff  <msaboff@apple.com>
15639
15640         HTML Attributes names and values should be created as 8 bit string where possible
15641         https://bugs.webkit.org/show_bug.cgi?id=101781
15642
15643         Reviewed by Filip Pizlo.
15644
15645         Given that almost all attribute names and values are lower case ASCII, we should try to
15646         create 8 bit strings to process them.  Creating an AtomicString already tries to make
15647         an 8 bit string, so that didn't need to change.
15648
15649         No new tests, functionality covered by existing tests.
15650
15651         * html/HTMLViewSourceDocument.cpp:
15652         (WebCore::HTMLViewSourceDocument::processTagToken):
15653         * html/parser/HTMLMetaCharsetParser.cpp:
15654         (WebCore::HTMLMetaCharsetParser::processMeta):
15655         * html/parser/HTMLPreloadScanner.cpp:
15656         (WebCore::PreloadTask::processAttributes):
15657
15658 2012-11-09  Dana Jansens  <danakj@chromium.org>
15659
15660         [chromium] Define WEBKIT_IMPLEMENTATION everywhere inside WebCore
15661         https://bugs.webkit.org/show_bug.cgi?id=101795
15662
15663         Reviewed by James Robinson.
15664
15665         * WebCore.gyp/WebCore.gyp:
15666
15667 2012-11-09  Sheriff Bot  <webkit.review.bot@gmail.com>
15668
15669         Unreviewed, rolling out r134101.
15670         http://trac.webkit.org/changeset/134101
15671         https://bugs.webkit.org/show_bug.cgi?id=101790
15672
15673         IDBDatabaseBackendTest.BackingStoreRetention failing
15674         (Requested by jsbell|gardener on #webkit).
15675
15676         * GNUmakefile.list.am:
15677         * Modules/indexeddb/IDBBackingStore.cpp:
15678         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
15679         (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
15680         (WebCore::IDBLevelDBBackingStore::open):
15681         (WebCore::IDBLevelDBBackingStore::getDatabaseNames):
15682         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
15683         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
15684         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
15685         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
15686         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
15687         (WebCore::IDBLevelDBBackingStore::getObjectStores):
15688         (WebCore::IDBLevelDBBackingStore::createObjectStore):
15689         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
15690         (WebCore::IDBLevelDBBackingStore::getRecord):
15691         (WebCore):
15692         (WebCore::IDBLevelDBBackingStore::putRecord):
15693         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
15694         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
15695         (WebCore::IDBLevelDBBackingStore::deleteRecord):
15696         (WebCore::IDBLevelDBBackingStore::getKeyGeneratorCurrentNumber):
15697         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15698         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
15699         (WebCore::IDBLevelDBBackingStore::getIndexes):
15700         (WebCore::IDBLevelDBBackingStore::createIndex):
15701         (WebCore::IDBLevelDBBackingStore::deleteIndex):
15702         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
15703         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
15704         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
15705         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
15706         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
15707         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
15708         (WebCore::IDBLevelDBBackingStore::openObjectStoreKeyCursor):
15709         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
15710         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
15711         (WebCore::IDBLevelDBBackingStore::createTransaction):
15712         (WebCore::IDBLevelDBBackingStore::Transaction::create):
15713         (WebCore::IDBLevelDBBackingStore::Transaction::Transaction):
15714         (WebCore::IDBLevelDBBackingStore::Transaction::begin):
15715         (WebCore::IDBLevelDBBackingStore::Transaction::commit):
15716         (WebCore::IDBLevelDBBackingStore::Transaction::rollback):
15717         (WebCore::IDBLevelDBBackingStore::backingStoreExists):
15718         * Modules/indexeddb/IDBBackingStore.h:
15719         (WebCore):
15720         (WebCore::IDBBackingStore::~IDBBackingStore):
15721         (IDBBackingStore):
15722         (RecordIdentifier):
15723         (WebCore::IDBBackingStore::Cursor::~Cursor):
15724         (WebCore::IDBBackingStore::Transaction::~Transaction):
15725         (Transaction):
15726         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15727         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15728         * Modules/indexeddb/IDBLevelDBBackingStore.h: Copied from Source/WebCore/Modules/indexeddb/IDBBackingStore.h.
15729         (WebCore):
15730         (IDBLevelDBBackingStore):
15731         (Transaction):
15732         (WebCore::IDBLevelDBBackingStore::Transaction::levelDBTransactionFrom):
15733         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15734         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15735         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15736         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15737         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15738         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15739         (WebCore::IDBTransactionBackendImpl::abort):
15740         (WebCore::IDBTransactionBackendImpl::commit):
15741         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15742         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15743         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15744         * WebCore.xcodeproj/project.pbxproj:
15745
15746 2012-11-09  Erik Arvidsson  <arv@chromium.org>
15747
15748         REGRESSION (r125239): classList contains() doesn't work after element was moved from strict mode document to quirks mode document
15749         https://bugs.webkit.org/show_bug.cgi?id=101627
15750
15751         Reviewed by Alexey Proskuryakov.
15752
15753         We used to only create m_classNamesForQuirksMode in the constructor or when the class attribute
15754         was changed. If an element is moved from a standards document to a quirks mode document the
15755         m_classNamesForQuirksMode would not be up to date which lead to wrong results.
15756
15757         Now we alway check if m_classNamesForQuirksMode is up to date (in quirks mode only).
15758
15759         Test: fast/dom/Element/class-list-move-between-document-with-different-quirks-mode.html
15760
15761         * html/ClassList.cpp:
15762         (WebCore::ClassList::classNames): Create the m_classNamesForQuirksMode lazily as needed so that
15763                                           it is up to date.
15764         * html/ClassList.h:
15765
15766 2012-11-09  Alec Flett  <alecflett@chromium.org>
15767
15768         IndexedDB: Combine IDBBackingStore and IDBLevelDBBackingStore
15769         https://bugs.webkit.org/show_bug.cgi?id=101415
15770
15771         Reviewed by Tony Chang.
15772
15773         Combine abstract interface IDBBackingStore with its only
15774         implementation, IDBLevelDBBackingStore, to reduce code
15775         complexity. The legacy structure existed to support a SQLLite
15776         IDBBackingStore, but it is no longer worth the complexity to
15777         support this abstraction.
15778
15779         Changes include:
15780         1) Merging IDBLevelDBBackingStore into IDBBackingStore.
15781
15782         2) Merge together IDBBackingStore's inner classes: Cursor,
15783         Transaction, and ObjectStoreRecordIdentfier with their respective
15784         subclasses in IDBLevelDBBackingStore.
15785
15786         3) Simplifying the inner Transaction class to not be refcounted or
15787         virtualized, to allow it to be a simple concrete member of its
15788         owner, IDBTransactionBackendImpl.
15789
15790         No new tests as this is purely a refactor.
15791
15792         * Modules/indexeddb/IDBBackingStore.cpp:
15793         (WebCore::recordInternalError):
15794         (WebCore::setUpMetadata):
15795         (WebCore::IDBBackingStore::IDBBackingStore):
15796         (WebCore):
15797         (WebCore::IDBBackingStore::~IDBBackingStore):
15798         (WebCore::IDBBackingStore::open):
15799         (WebCore::IDBBackingStore::getDatabaseNames):
15800         (WebCore::IDBBackingStore::getIDBDatabaseMetaData):
15801         (WebCore::IDBBackingStore::createIDBDatabaseMetaData):
15802         (WebCore::IDBBackingStore::updateIDBDatabaseIntVersion):
15803         (WebCore::IDBBackingStore::updateIDBDatabaseMetaData):
15804         (WebCore::deleteRange):
15805         (WebCore::IDBBackingStore::deleteDatabase):
15806         (WebCore::IDBBackingStore::getObjectStores):
15807         (WebCore::setMaxObjectStoreId):
15808         (WebCore::IDBBackingStore::createObjectStore):
15809         (WebCore::IDBBackingStore::deleteObjectStore):
15810         (WebCore::IDBBackingStore::getRecord):
15811         (WebCore::IDBBackingStore::putRecord):
15812         (WebCore::IDBBackingStore::clearObjectStore):
15813         (WebCore::IDBBackingStore::deleteRecord):
15814         (WebCore::IDBBackingStore::getKeyGeneratorCurrentNumber):
15815         (WebCore::IDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
15816         (WebCore::IDBBackingStore::keyExistsInObjectStore):
15817         (WebCore::IDBBackingStore::getIndexes):
15818         (WebCore::setMaxIndexId):
15819         (WebCore::IDBBackingStore::createIndex):
15820         (WebCore::IDBBackingStore::deleteIndex):
15821         (WebCore::IDBBackingStore::putIndexDataForRecord):
15822         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
15823         (WebCore::IDBBackingStore::findKeyInIndex):
15824         (WebCore::IDBBackingStore::getPrimaryKeyViaIndex):
15825         (WebCore::IDBBackingStore::keyExistsInIndex):
15826         (WebCore::IDBBackingStore::Cursor::Cursor):
15827         (WebCore::IDBBackingStore::Cursor::firstSeek):
15828         (WebCore::IDBBackingStore::Cursor::advance):
15829         (WebCore::IDBBackingStore::Cursor::continueFunction):
15830         (WebCore::IDBBackingStore::Cursor::haveEnteredRange):
15831         (WebCore::IDBBackingStore::Cursor::isPastBounds):
15832         (WebCore::ObjectStoreKeyCursorImpl::create):
15833         (ObjectStoreKeyCursorImpl):
15834         (WebCore::ObjectStoreKeyCursorImpl::value):
15835         (WebCore::ObjectStoreKeyCursorImpl::ObjectStoreKeyCursorImpl):
15836         (WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
15837         (WebCore::ObjectStoreCursorImpl::create):
15838         (ObjectStoreCursorImpl):
15839         (WebCore::ObjectStoreCursorImpl::value):
15840         (WebCore::ObjectStoreCursorImpl::ObjectStoreCursorImpl):
15841         (WebCore::ObjectStoreCursorImpl::loadCurrentRow):
15842         (WebCore::IndexKeyCursorImpl::create):
15843         (IndexKeyCursorImpl):
15844         (WebCore::IndexKeyCursorImpl::value):
15845         (WebCore::IndexKeyCursorImpl::primaryKey):
15846         (WebCore::IndexKeyCursorImpl::recordIdentifier):
15847         (WebCore::IndexKeyCursorImpl::IndexKeyCursorImpl):
15848         (WebCore::IndexKeyCursorImpl::loadCurrentRow):
15849         (WebCore::IndexCursorImpl::create):
15850         (IndexCursorImpl):
15851         (WebCore::IndexCursorImpl::value):
15852         (WebCore::IndexCursorImpl::primaryKey):
15853         (WebCore::IndexCursorImpl::recordIdentifier):
15854         (WebCore::IndexCursorImpl::IndexCursorImpl):
15855         (WebCore::IndexCursorImpl::loadCurrentRow):
15856         (WebCore::objectStoreCursorOptions):
15857         (WebCore::indexCursorOptions):
15858         (WebCore::IDBBackingStore::openObjectStoreCursor):
15859         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
15860         (WebCore::IDBBackingStore::openIndexKeyCursor):
15861         (WebCore::IDBBackingStore::openIndexCursor):
15862         (WebCore::IDBBackingStore::Transaction::Transaction):
15863         (WebCore::IDBBackingStore::Transaction::begin):
15864         (WebCore::IDBBackingStore::Transaction::commit):
15865         (WebCore::IDBBackingStore::Transaction::rollback):
15866         * Modules/indexeddb/IDBBackingStore.h:
15867         (WebCore):
15868         (IDBBackingStore):
15869         (RecordIdentifier):
15870         (WebCore::IDBBackingStore::RecordIdentifier::create):
15871         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
15872         (WebCore::IDBBackingStore::RecordIdentifier::isValid):
15873         (WebCore::IDBBackingStore::RecordIdentifier::primaryKey):
15874         (WebCore::IDBBackingStore::RecordIdentifier::setPrimaryKey):
15875         (WebCore::IDBBackingStore::RecordIdentifier::version):
15876         (WebCore::IDBBackingStore::RecordIdentifier::setVersion):
15877         (WebCore::IDBBackingStore::RecordIdentifier::RecordIdentifier):
15878         (Transaction):
15879         (WebCore::IDBBackingStore::Transaction::levelDBTransactionFrom):
15880         (CursorOptions):
15881         (Cursor):
15882         (WebCore::IDBBackingStore::Cursor::Cursor):
15883         (WebCore::IDBBackingStore::Cursor::key):
15884         (WebCore::IDBBackingStore::Cursor::primaryKey):
15885         (WebCore::IDBBackingStore::Cursor::~Cursor):
15886         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
15887         (WebCore::IDBFactoryBackendImpl::openBackingStore):
15888         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
15889         (WebCore::IDBIndexBackendImpl::countInternal):
15890         * Modules/indexeddb/IDBLevelDBBackingStore.h: Removed.
15891         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
15892         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
15893         (WebCore::IDBObjectStoreBackendImpl::putInternal):
15894         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
15895         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
15896         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
15897         (WebCore::IDBTransactionBackendImpl::abort):
15898         (WebCore::IDBTransactionBackendImpl::commit):
15899         (WebCore::IDBTransactionBackendImpl::taskTimerFired):
15900         * Modules/indexeddb/IDBTransactionBackendImpl.h:
15901         (WebCore::IDBTransactionBackendImpl::backingStoreTransaction):
15902         * WebCore.xcodeproj/project.pbxproj:
15903
15904 2012-10-28  Timothy Hatcher  <timothy@apple.com>
15905
15906         Make -webkit-canvas in CSS use the full backing store instead
15907         of always 1x when rendering.
15908
15909         https://bugs.webkit.org/show_bug.cgi?id=100611
15910
15911         Reviewed by Dean Jackson.
15912
15913         Test: fast/canvas/canvas-as-image-hidpi.html
15914
15915         * html/HTMLCanvasElement.cpp:
15916         (WebCore::HTMLCanvasElement::makePresentationCopy): Pass Unscaled to copyImage.
15917         (WebCore::HTMLCanvasElement::copiedImage): Ditto.
15918         * platform/graphics/ImageBuffer.h:
15919         * platform/graphics/cg/ImageBufferCG.cpp:
15920         (WebCore::ImageBuffer::copyImage): Added Scale parameter and use copyNativeImage for Unscaled.
15921         * platform/graphics/cairo/ImageBufferCairo.cpp:
15922         (WebCore::ImageBuffer::copyImage): Added unnamed ScaleBehavior parameter.
15923         * platform/graphics/qt/ImageBufferQt.cpp:
15924         (WebCore::ImageBuffer::copyImage): Ditto.
15925         * platform/graphics/skia/ImageBufferSkia.cpp:
15926         (WebCore::ImageBuffer::copyImage): Ditto.
15927         * platform/graphics/wince/ImageBufferWinCE.cpp:
15928         (WebCore::ImageBuffer::copyImage): Ditto.
15929         * platform/graphics/wx/ImageBufferWx.cpp:
15930         (WebCore::ImageBuffer::copyImage): Ditto.
15931
15932 2012-10-28  Timothy Hatcher  <timothy@apple.com>
15933
15934         Reset the canvas backing store pixel ratio when the buffer resizes.
15935
15936         The backing store was not being recreated using the current page pixel ratio
15937         when a resize occurred.
15938
15939         https://bugs.webkit.org/show_bug.cgi?id=100608
15940
15941         Reviewed by Darin Adler.
15942
15943         Test: fast/canvas/canvas-resize-reset-pixelRatio.html
15944
15945         * html/HTMLCanvasElement.cpp:
15946         (WebCore::HTMLCanvasElement::HTMLCanvasElement): Use targetDeviceScaleFactor.
15947         (WebCore::HTMLCanvasElement::reset): Do a clear only if the pixel ratios also
15948         match. Store the new pixel ratio in m_deviceScaleFactor.
15949         (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Added.
15950         * html/HTMLCanvasElement.h:
15951         (WebCore::HTMLCanvasElement::setSize): Return early only if the sizes and
15952         pixel ratios match.
15953
15954 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
15955
15956         RemoveFormat command doesn't remove background color
15957         https://bugs.webkit.org/show_bug.cgi?id=101682
15958
15959         Reviewed by Tony Chang.
15960
15961         Fixed the bug by removing all non-transparent background-color properties.
15962
15963         Test: editing/execCommand/remove-format-background-color.html
15964
15965         * editing/RemoveFormatCommand.cpp:
15966         (WebCore::RemoveFormatCommand::doApply):
15967
15968 2012-11-09  Alec Flett  <alecflett@chromium.org>
15969
15970         IndexedDB: switch frontend to use int64_t-based references
15971         https://bugs.webkit.org/show_bug.cgi?id=100426
15972
15973         Reviewed by Tony Chang.
15974
15975         Remove String-based objectStore/index references, obsoleted by
15976         https://bugs.webkit.org/show_bug.cgi?id=100425.
15977
15978         No new tests as this is the second half of a refactor.
15979
15980         * Modules/indexeddb/IDBCallbacks.h:
15981         * Modules/indexeddb/IDBDatabase.cpp:
15982         (WebCore::IDBDatabase::deleteObjectStore):
15983         (WebCore::IDBDatabase::transaction):
15984         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
15985         (WebCore::IDBDatabaseBackendImpl::setVersion):
15986         (WebCore::IDBDatabaseBackendImpl::transaction):
15987         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
15988         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
15989         (IDBDatabaseBackendImpl):
15990         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
15991         (IDBDatabaseBackendInterface):
15992         * Modules/indexeddb/IDBMetadata.h:
15993         (WebCore::IDBObjectStoreMetadata::findIndex):
15994         (IDBObjectStoreMetadata):
15995         (WebCore::IDBObjectStoreMetadata::containsIndex):
15996         * Modules/indexeddb/IDBObjectStore.cpp:
15997         (WebCore::IDBObjectStore::put):
15998         (WebCore):
15999         (WebCore::IDBObjectStore::index):
16000         (WebCore::IDBObjectStore::deleteIndex):
16001         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16002         (WebCore::IDBObjectStoreBackendImpl::put):
16003         (WebCore):
16004         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
16005         (IDBObjectStoreBackendImpl):
16006         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
16007         * inspector/Inspector-1.0.json:
16008         * inspector/Inspector.json:
16009         * inspector/InspectorIndexedDBAgent.cpp:
16010         (WebCore):
16011         (WebCore::InspectorIndexedDBAgent::requestData):
16012         * inspector/InspectorIndexedDBAgent.h:
16013         (InspectorIndexedDBAgent):
16014
16015 2012-11-09  Mario Sanchez Prada  <mario@webkit.org>
16016
16017         [GTK] Isolate the GTK/Gail/Pango specific code in accessibility/gtk
16018         https://bugs.webkit.org/show_bug.cgi?id=101727
16019
16020         Reviewed by Chris Fleizach.
16021
16022         Added conditional compilation checks for GTK+ specific
16023         accessibility code, to pave the way for sharing this
16024         implementation with other ports (e.g WebKitEFL).
16025
16026         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
16027         (webkitAccessibleTextGetTextAfterOffset): Added conditional
16028         compilation checks, only implementing it in GTK so far.
16029         (webkitAccessibleTextGetTextAtOffset): Ditto.
16030         (webkitAccessibleTextGetTextBeforeOffset): Ditto.
16031         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
16032         (atkParentOfRootObject): Added conditional compilation checks,
16033         only implementing in GTK the part of getting the accessible object
16034         for the root object.
16035         (webkitAccessibleGetParent): Updated comments.
16036         (webkitAccessibleGetNChildren): Ditto.
16037         (webkitAccessibleRefChild): Ditto.
16038         (webkitAccessibleGetIndexInParent): Ditto.
16039         (webkitAccessibleGetAttributes): Only set the 'toolkit' attribute
16040         for GTK. Other ports might be interested in this too.
16041         (setAtkStateSetFromCoreObject): Updated comments.
16042
16043 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16044
16045         MediaStream API: Don't trigger any object deletion during RTCPeerConnection::stop
16046         https://bugs.webkit.org/show_bug.cgi?id=101586
16047
16048         Reviewed by Adam Barth.
16049
16050         Stop calling stop on the RTCPeerConnectionHandler, and don't delete it, when
16051         ActiveDOMObject::stop is called on RTCPeerConnection. Due to the async nature of the new
16052         API some WebCore objects might be cleaned away which is not allowed at this stage.
16053
16054         This behaviour is not possible to test unfortunately in webkit.
16055
16056         * Modules/mediastream/RTCPeerConnection.cpp:
16057         (WebCore::RTCPeerConnection::stop):
16058
16059 2012-11-09  Joshua Bell  <jsbell@chromium.org>
16060
16061         [Chromium] Unreviewed gardening. Fix chromium-win builds following r134082
16062
16063         * WebCore.gypi:
16064
16065 2012-11-09  Dan Carney  <dcarney@google.com>
16066
16067         [V8] Remove ScriptController::windowShell()
16068         https://bugs.webkit.org/show_bug.cgi?id=100235
16069
16070         Reviewed by Adam Barth.
16071
16072         Refactored windowShell(DOMWrapperWorld*) and
16073         existingWindowShell(DOMWrapperWorld*) to be like JSC.
16074
16075         No new tests. No change in functionality.
16076
16077         * bindings/scripts/CodeGeneratorV8.pm:
16078         (GenerateToV8Converters):
16079         * bindings/v8/DOMWrapperWorld.cpp:
16080         (WebCore::isolatedWorldMap):
16081         (WebCore::DOMWrapperWorld::getAllWorlds):
16082         (WebCore):
16083         * bindings/v8/DOMWrapperWorld.h:
16084         (DOMWrapperWorld):
16085         * bindings/v8/PageScriptDebugServer.cpp:
16086         (WebCore::PageScriptDebugServer::addListener):
16087         * bindings/v8/ScriptController.cpp:
16088         (WebCore::ScriptController::~ScriptController):
16089         (WebCore::ScriptController::clearForOutOfMemory):
16090         (WebCore):
16091         (WebCore::ScriptController::clearForClose):
16092         (WebCore::ScriptController::updateSecurityOrigin):
16093         (WebCore::ScriptController::initializeMainWorld): Returns true if the main world was initialized.
16094         (WebCore::existingWindowShellWorkaroundWorld):
16095         (WebCore::ScriptController::existingWindowShell):
16096         (WebCore::ScriptController::windowShell):
16097         (WebCore::ScriptController::evaluateInIsolatedWorld):
16098         (WebCore::ScriptController::currentWorldContext):
16099         (WebCore::ScriptController::mainWorldContext):
16100         (WebCore::ScriptController::haveInterpreter):
16101         (WebCore::ScriptController::enableEval):
16102         (WebCore::ScriptController::disableEval):
16103         (WebCore::ScriptController::clearWindowShell):
16104         (WebCore::ScriptController::setContextDebugId):
16105         (WebCore::ScriptController::updateDocument):
16106         (WebCore::ScriptController::namedItemAdded):
16107         (WebCore::ScriptController::namedItemRemoved):
16108         * bindings/v8/ScriptController.h:
16109         (ScriptController):
16110         (WebCore::ScriptController::getAllWorlds):
16111         * bindings/v8/V8Binding.cpp:
16112         (WebCore::perContextDataForCurrentWorld):
16113         (WebCore::handleOutOfMemory):
16114         * bindings/v8/V8DOMWindowShell.cpp:
16115         (WebCore::V8DOMWindowShell::initializeIfNeeded):
16116         (WebCore::V8DOMWindowShell::updateDocument):
16117         (WebCore::V8DOMWindowShell::namedItemAdded):
16118         (WebCore::V8DOMWindowShell::namedItemRemoved):
16119         * bindings/v8/V8DOMWindowShell.h:
16120         (WebCore::V8DOMWindowShell::isContextInitialized):
16121         (WebCore::V8DOMWindowShell::isGlobalInitialized):
16122         * bindings/v8/custom/V8DocumentCustom.cpp:
16123         (WebCore::toV8):
16124         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
16125         (WebCore::toV8):
16126         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
16127         (WebCore::toV8):
16128
16129 2012-11-09  Adam Barth  <abarth@webkit.org>
16130
16131         [V8] Remove a level of indirection in DOMDataStore
16132         https://bugs.webkit.org/show_bug.cgi?id=101690
16133
16134         Reviewed by Kentaro Hara.
16135
16136         There is no longer any reason for the DOMDataStore to hold the wrapper
16137         map via a pointer. It can just hold the wrapper map directly, saving a
16138         level of indirection. I doubt this has any measurable performance gain.
16139
16140         * bindings/v8/DOMDataStore.cpp:
16141         (WebCore::DOMDataStore::DOMDataStore):
16142         (WebCore::DOMDataStore::~DOMDataStore):
16143         (WebCore::DOMDataStore::reportMemoryUsage):
16144         * bindings/v8/DOMDataStore.h:
16145         (WebCore::DOMDataStore::get):
16146         (WebCore::DOMDataStore::set):
16147         (DOMDataStore):
16148
16149 2012-11-09  Mihnea Ovidenie  <mihnea@adobe.com>
16150
16151         [CSSRegions] Region styling properties are not filtered correctly
16152         https://bugs.webkit.org/show_bug.cgi?id=101768
16153
16154         Reviewed by Andreas Kling.
16155
16156         Region styling allows only a handful of css properties. There is a mechanism in place,
16157         in StyleResolver::isValidRegionStyleProperty that filters the supported region style properties.
16158         In order to be effective, this mechanism relies on RuleData::m_isInRegionRule being set correctly.
16159         This patch makes sure that the flag RuleData::m_isInRegionRule is set properly in RuleData constructor.
16160
16161         Test: fast/regions/region-style-not-supported-properties.html
16162
16163         * css/RuleSet.cpp:
16164         (WebCore::RuleData::RuleData):
16165
16166 2012-11-09  Tommy Widenflycht  <tommyw@google.com>
16167
16168         MediaStream API: Deleting all files relating to the deprecated PeerConnection00
16169         https://bugs.webkit.org/show_bug.cgi?id=101730
16170
16171         Reviewed by Adam Barth.
16172
16173         Since RTCPeerConenction has superseeded PeerConnection00 this patch removes all
16174         files relating to the old API.
16175
16176         No testing needed, the remaining tests makes sure that nothing else breaks.
16177
16178         * CMakeLists.txt:
16179         * GNUmakefile.list.am:
16180         * Modules/mediastream/DOMWindowMediaStream.idl:
16181         * Modules/mediastream/IceCallback.h: Removed.
16182         * Modules/mediastream/IceCallback.idl: Removed.
16183         * Modules/mediastream/IceCandidate.cpp: Removed.
16184         * Modules/mediastream/IceCandidate.h: Removed.
16185         * Modules/mediastream/IceCandidate.idl: Removed.
16186         * Modules/mediastream/PeerConnection00.cpp: Removed.
16187         * Modules/mediastream/PeerConnection00.h: Removed.
16188         * Modules/mediastream/PeerConnection00.idl: Removed.
16189         * Modules/mediastream/SessionDescription.cpp: Removed.
16190         * Modules/mediastream/SessionDescription.h: Removed.
16191         * Modules/mediastream/SessionDescription.idl: Removed.
16192         * WebCore.gypi:
16193         * bindings/generic/RuntimeEnabledFeatures.cpp:
16194         (WebCore):
16195         * bindings/generic/RuntimeEnabledFeatures.h:
16196         (RuntimeEnabledFeatures):
16197         * dom/EventTargetFactory.in:
16198         * platform/chromium/support/WebICECandidateDescriptor.cpp: Removed.
16199         * platform/chromium/support/WebICEOptions.cpp: Removed.
16200         * platform/chromium/support/WebMediaHints.cpp: Removed.
16201         * platform/mediastream/IceCandidateDescriptor.cpp: Removed.
16202         * platform/mediastream/IceCandidateDescriptor.h: Removed.
16203         * platform/mediastream/IceOptions.cpp: Removed.
16204         * platform/mediastream/IceOptions.h: Removed.
16205         * platform/mediastream/MediaHints.cpp: Removed.
16206         * platform/mediastream/MediaHints.h: Removed.
16207         * platform/mediastream/MediaStreamCenter.h:
16208         (WebCore):
16209         (MediaStreamCenter):
16210         * platform/mediastream/PeerConnection00Handler.cpp: Removed.
16211         * platform/mediastream/PeerConnection00Handler.h: Removed.
16212         * platform/mediastream/PeerConnection00HandlerClient.h: Removed.
16213         * platform/mediastream/SessionDescriptionDescriptor.cpp: Removed.
16214         * platform/mediastream/SessionDescriptionDescriptor.h: Removed.
16215         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp:
16216         * platform/mediastream/blackberry/MediaStreamCenterBlackBerry.h:
16217         (WebCore):
16218         (MediaStreamCenterBlackBerry):
16219         * platform/mediastream/chromium/MediaStreamCenterChromium.cpp:
16220         * platform/mediastream/chromium/MediaStreamCenterChromium.h:
16221         (WebCore):
16222         (MediaStreamCenterChromium):
16223         * platform/mediastream/chromium/PeerConnection00Handler.cpp: Removed.
16224         * platform/mediastream/chromium/PeerConnection00HandlerInternal.cpp: Removed.
16225         * platform/mediastream/chromium/PeerConnection00HandlerInternal.h: Removed.
16226         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp:
16227         * platform/mediastream/gstreamer/MediaStreamCenterGStreamer.h:
16228         (WebCore):
16229         (MediaStreamCenterGStreamer):
16230
16231 2012-11-09  Jer Noble  <jer.noble@apple.com>
16232
16233         Plugin diagnostic logging should send plugin file basename instead of MIME type.
16234         https://bugs.webkit.org/show_bug.cgi?id=101679
16235
16236         Reviewed by Eric Carlson.
16237
16238         Log the basename of the plugin file rather than the mime type so as to more
16239         accurately log which plugin was used to handle the request.
16240
16241         * loader/SubframeLoader.cpp:
16242         (WebCore::logPluginRequest): Log the plugin 'file' field, if present.
16243         * plugins/PluginData.cpp:
16244         (WebCore::PluginData::pluginInfoForMimeType): Factored out from pluginNameForMimeType.
16245         (WebCore::PluginData::pluginNameForMimeType): Use pluginInfoForMimeType to retrieve name field.
16246         (WebCore::PluginData::pluginFileForMimeType): Use pluginInfoForMimeType to retrieve file field.
16247         * plugins/PluginData.h:
16248
16249 2012-11-09  Alexey Proskuryakov  <ap@apple.com>
16250
16251         CookieJar uses Document class, which is a layering violation
16252         https://bugs.webkit.org/show_bug.cgi?id=101621
16253
16254         Reviewed by Brady Eidson.
16255
16256         Split CookieJar in two parts, one that takes a Document, and another that is a pure
16257         platform one, using NetworkingContext to access the correct platform storage.
16258
16259         * GNUmakefile.list.am:
16260         * PlatformBlackBerry.cmake:
16261         * Target.pri:
16262         * WebCore.gypi:
16263         * WebCore.gyp/WebCore.gyp:
16264         * WebCore.vcproj/WebCore.vcproj:
16265         * WebCore.xcodeproj/project.pbxproj:
16266         Updated.
16267
16268         * loader/CookieJar.cpp: Added.
16269         (WebCore::networkingContext):
16270         (WebCore::cookies):
16271         (WebCore::setCookies):
16272         (WebCore::cookiesEnabled):
16273         (WebCore::cookieRequestHeaderFieldValue):
16274         (WebCore::getRawCookies):
16275         (WebCore::deleteCookie):
16276         (WebCore::getHostnamesWithCookies):
16277         (WebCore::deleteCookiesForHostname):
16278         (WebCore::deleteAllCookies):
16279         * loader/CookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16280         This is an adaptor for pure platform implementations. Clients continue to use the
16281         old interface unchanged.
16282
16283         * platform/blackberry/CookieJarBlackBerry.cpp: Removed.
16284         * loader/blackberry/CookieJarBlackBerry.cpp: Copied from Source/WebCore/platform/blackberry/CookieJarBlackBerry.cpp.
16285         * platform/network/chromium/CookieJarChromium.cpp: Removed.
16286         * loader/chromium/CookieJarChromium.cpp: Copied from Source/WebCore/platform/network/chromium/CookieJarChromium.cpp.
16287         These platforms do not have a pure platform implementation yet, so they just keep
16288         to use original implementations. Since the code is not in platform/ any more, the
16289         violation is resolved for Chromium and Blackberry, too.
16290
16291         * platform/CookieJar.h: Removed.
16292         * platform/network/PlatformCookieJar.h: Copied from Source/WebCore/platform/CookieJar.h.
16293         The platform interface is now more uniform - all functions take a NetworkingContext
16294         instead of hardcoding which cookie storage to use in some cases.
16295         Renamed functions that are only useful for document.cookie implementation to look
16296         less generic.
16297
16298         * platform/mac/CookieJar.mm: Removed.
16299         * platform/network/mac/CookieJarMac.mm: Copied from Source/WebCore/platform/mac/CookieJar.mm.
16300         (WebCore::cookiesForDOM): This now takes a context instead of Document, and also
16301         takes a firstParty URL (unused on Mac, but used on some other platforms).
16302         (WebCore::cookieRequestHeaderFieldValue): Get cookie storage from context (and
16303         use shared one if context is null).
16304         (WebCore::setCookiesFromDOM): Ditto.
16305         (WebCore::cookiesEnabled): Ditto.
16306         (WebCore::getRawCookies): Ditto.
16307         (WebCore::deleteCookie): Ditto.
16308         (WebCore::getHostnamesWithCookies): Ditto. This used to only support default storage,
16309         but its cleaner to have a uniform interface.
16310         (WebCore::deleteCookiesForHostname): Ditto.
16311         (WebCore::deleteAllCookies): Ditto.
16312
16313         * platform/network/cf/CookieJarCFNet.cpp:
16314         Same changes as on Mac.
16315
16316         * platform/network/curl/CookieJarCurl.cpp:
16317         Updated for new interface. Implementation is largely a dummy one.
16318
16319         * platform/qt/CookieJarQt.h: Removed.
16320         * platform/network/qt/CookieJarQt.h: Copied from Source/WebCore/platform/qt/CookieJarQt.h.
16321         Moved to a common location, most cookie files were in network/ already.
16322
16323         * platform/qt/CookieJarQt.cpp: Removed.
16324         * platform/network/qt/CookieJarQt.cpp: Copied from Source/WebCore/platform/qt/CookieJarQt.cpp.
16325         (WebCore::setCookiesFromDOM): Use context's or shared cooke jar as appropriate.
16326         (WebCore::cookiesForDOM): Ditto.
16327         (WebCore::cookieRequestHeaderFieldValue): Ditto.
16328         (WebCore::cookiesEnabled): Ditto.
16329         (WebCore::getRawCookies): Ditto.
16330         (WebCore::deleteCookie): Ditto.
16331         (WebCore::getHostnamesWithCookies): Back-end implementation can only handle shared
16332         jar here, assert that argument does not request another one.
16333         (WebCore::deleteCookiesForHostname): Ditto.
16334         (WebCore::deleteAllCookies): Ditto.
16335
16336         * platform/network/soup/CookieJarSoup.cpp:
16337         (WebCore::cookieJarForContext):
16338         (WebCore::setCookiesFromDOM):
16339         (WebCore::cookiesForContext):
16340         (WebCore::cookiesForDOM):
16341         (WebCore::cookieRequestHeaderFieldValue):
16342         (WebCore::cookiesEnabled):
16343         (WebCore::getRawCookies):
16344         (WebCore::deleteCookie):
16345         (WebCore::getHostnamesWithCookies):
16346         (WebCore::deleteCookiesForHostname):
16347         (WebCore::deleteAllCookies):
16348         Updated for new function signatures, and use the same cross-platform logic for
16349         choosing a cookie jar.
16350
16351         * platform/network/soup/CookieJarSoup.h: Don't include unnecessary CooieJar.h.
16352         
16353         * platform/network/win/CookieJarWin.cpp:
16354         (WebCore::setCookiesFromDOM):
16355         (WebCore::cookiesForDOM):
16356         (WebCore::cookieRequestHeaderFieldValue):
16357         (WebCore::cookiesEnabled):
16358         (WebCore::getRawCookies):
16359         (WebCore::deleteCookie):
16360         (WebCore::getHostnamesWithCookies):
16361         (WebCore::deleteCookiesForHostname):
16362         (WebCore::deleteAllCookies):
16363         Updated for new function signatures.
16364
16365 2012-11-09  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
16366
16367         [css] Text decoration's "blink" not valid when CSS3_TEXT is enabled
16368         https://bugs.webkit.org/show_bug.cgi?id=101750
16369
16370         Reviewed by Ojan Vafai.
16371
16372         This patch fixes an issue regarding "blink" value, which is valid for CSS 2.1
16373         "text-decoration" property, but recently have its parser function modified by
16374         the addition of CSS3 "-webkit-text-decoration-line" property.
16375
16376         The 'fast/css/getComputedStyle/getComputedStyle-text-decoration.html'
16377         layout test is updated with all possible value combinations.
16378
16379         * css/CSSParser.cpp:
16380         (WebCore::CSSParser::parseTextDecoration): Added 'blink' value to list
16381         if accepted.
16382
16383 2012-11-09  Xan Lopez  <xlopez@igalia.com>
16384
16385         [GTK] Do not use 'ls' to list IDL files in EXTRA_DIST
16386         https://bugs.webkit.org/show_bug.cgi?id=101581
16387
16388         Reviewed by Martin Robinson.
16389
16390         Use normal GNU Make wildcards instead of 'ls' to list files in
16391         EXTRA_DIST, it's safer and more straightforward.
16392
16393         * GNUmakefile.am: ditto.
16394
16395 2012-11-09  Charles Wei  <charles.wei@torchmobile.com.cn>
16396
16397         Need to clear exception in JSDictionary that might have been caused by previous operation.
16398         https://bugs.webkit.org/show_bug.cgi?id=96614
16399
16400         Reviewed by George Staikos.
16401
16402         IndexedDB IDBDatabase::createObjectStore supports both String type of KeyPath and
16403         String Array type of KeyPath. It will first try to get the keyPath as a String Array,
16404         if fails, it will try to get KeyPath as a String, from the Dictionary. The first get
16405         will leave the internal ExecState of Dictionary in exception state. We need to clear
16406         the exception state before the 2nd query, otherwise the second query will also fail.
16407
16408         No new tests. The existing test case LayoutTests/storage/indexeddb/tutorial.html should
16409         now work with this patch.
16410         * bindings/js/JSDictionary.cpp:
16411         (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
16412
16413 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16414
16415         Month/week picker should submit month/week string
16416         https://bugs.webkit.org/show_bug.cgi?id=101744
16417
16418         Reviewed by Kent Tamura.
16419
16420         Month/week picker should submit month/week string and not yyyy-mm-dd.
16421
16422         No new tests. Test will be added in Bug 101555 and Bug 101556.
16423
16424         * Resources/pagepopups/calendarPicker.js:
16425         (DaysTable.prototype._handleDayClick):
16426
16427 2012-11-07  Pavel Feldman  <pfeldman@chromium.org>
16428
16429         Web Inspector: wrong output for empty object {}
16430         https://bugs.webkit.org/show_bug.cgi?id=101356
16431
16432         Reviewed by Vsevolod Vlasov.
16433
16434         Changed preview formatting to iterate over enumerable properties only + visit the prototypes.
16435
16436         * inspector/InjectedScriptSource.js:
16437         (.):
16438         * inspector/front-end/ConsoleMessage.js:
16439         (WebInspector.ConsoleMessageImpl.prototype._appendObjectPreview):
16440
16441 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16442
16443         Fix annotations in page popup files
16444         https://bugs.webkit.org/show_bug.cgi?id=101736
16445
16446         Reviewed by Kent Tamura.
16447
16448         Add @constructor where needed. Replacing /* with /** for annotations.
16449
16450         No new tests. No behavior change.
16451
16452         * Resources/pagepopups/calendarPicker.js:
16453         * Resources/pagepopups/pickerCommon.js:
16454         * Resources/pagepopups/suggestionPicker.js:
16455
16456 2012-11-09  Huang Dongsung  <luxtella@company100.net>
16457
16458         Coordinated Graphics: Remove a backing store of GraphicsLayer when the layer is far from the viewport.
16459         https://bugs.webkit.org/show_bug.cgi?id=101656
16460
16461         Reviewed by Kenneth Rohde Christiansen.
16462
16463         TiledBackingStore computes cover and keep rects to create, keep or remove tiles
16464         smartly, but currently TiledBackingStore expects a contents rect is big enough
16465         to cover the visibleRect. However, when CoordinatedGraphicsLayer uses TBS, it
16466         is usually wrong expectation.
16467
16468         We must compute cover and keep rects using the visibleRect, instead of
16469         the rect intersecting the visibleRect with m_rect, because TBS can be
16470         used as a backing store of GraphicsLayer and the visible rect usually
16471         does not intersect with m_rect.
16472         In the below case, the intersecting rect is an empty.
16473
16474          +---------------+
16475          |               |
16476          |   m_rect      |
16477          |       +-------|-----------------------+
16478          |       | HERE  |  cover or keep        |
16479          +---------------+      rect             |
16480                  |         +---------+           |
16481                  |         | visible |           |
16482                  |         |  rect   |           |
16483                  |         +---------+           |
16484                  |                               |
16485                  |                               |
16486                  +-------------------------------+
16487
16488         We must create or keep the tiles in the HERE region. Currently in the
16489         case, we do not create or keep tiles on the HERE region. Moreover, in
16490         the case, we early return, which means we don't remove any tiles. It
16491         causes to waste heap and video memory.
16492
16493         This patch changes TiledBackingStore to manage tiles smartly for
16494         Coordinated Graphics.
16495
16496         Changing cache policy is not testable in layout tests.
16497
16498         * platform/graphics/TiledBackingStore.cpp:
16499         (WebCore::TiledBackingStore::visibleRect):
16500         (WebCore::TiledBackingStore::visibleAreaIsCovered):
16501         (WebCore::TiledBackingStore::createTiles):
16502         (WebCore::TiledBackingStore::adjustForContentsRect):
16503         (WebCore::TiledBackingStore::removeAllNonVisibleTiles):
16504         * platform/graphics/TiledBackingStore.h:
16505         (TiledBackingStore):
16506
16507 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16508
16509         Fix undefined variable in Week constructor for calendar picker
16510         https://bugs.webkit.org/show_bug.cgi?id=101734
16511
16512         Reviewed by Kent Tamura.
16513
16514         Closer compiler found an undefined variable in the Week constructor.
16515
16516         No new tests. This code isn't used.
16517
16518         * Resources/pagepopups/calendarPicker.js:
16519         (Week): Used wrong variable name.
16520
16521 2012-11-09  Pavel Feldman  <pfeldman@chromium.org>
16522
16523         Web Inspector: render canvas log as a grid.
16524         https://bugs.webkit.org/show_bug.cgi?id=101732
16525
16526         Reviewed by Vsevolod Vlasov.
16527
16528         * English.lproj/localizedStrings.js:
16529         * inspector/front-end/CanvasProfileView.js:
16530         (WebInspector.CanvasProfileView):
16531         (WebInspector.CanvasProfileView.prototype._onSelectTraceLog):
16532         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
16533         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
16534         (WebInspector.CanvasProfileHeader.prototype.traceLogId):
16535         (WebInspector.CanvasLogGrid):
16536         (WebInspector.CanvasLogGrid.prototype._didReceiveTraceLog):
16537         (WebInspector.CanvasLogGrid.prototype._createCallNode):
16538         * inspector/front-end/DataGrid.js:
16539         (WebInspector.DataGridNode.prototype.createCell):
16540         * inspector/front-end/canvasProfiler.css:
16541         (#canvas-replay-image-container):
16542
16543 2012-11-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
16544
16545         Regression(r107593) Crash in ContextMenuController::addInspectElementItem()
16546         https://bugs.webkit.org/show_bug.cgi?id=101595
16547
16548         Reviewed by Simon Hausmann.
16549
16550         If the contextMenu is a null pointer treat it as empty, appendItem will later
16551         create it if necessary.
16552
16553         * page/ContextMenuController.cpp:
16554         (WebCore::ContextMenuController::addInspectElementItem):
16555
16556 2012-11-09  Christophe Dumez  <christophe.dumez@intel.com>
16557
16558         [EFL][WK2] Add support for custom cursors
16559         https://bugs.webkit.org/show_bug.cgi?id=101723
16560
16561         Reviewed by Kenneth Rohde Christiansen.
16562
16563         Add getEvasObject() virtual method to Image class and
16564         provide implementation for BitmapImage.
16565
16566         No new tests, no behavior change.
16567
16568         * platform/efl/CursorEfl.cpp:
16569         (WebCore::cursorString):
16570         * platform/graphics/BitmapImage.h:
16571         (BitmapImage):
16572         * platform/graphics/Image.h:
16573         (Image):
16574         (WebCore::Image::getEvasObject):
16575         * platform/graphics/efl/ImageEfl.cpp:
16576         (WebCore::BitmapImage::getEvasObject):
16577         (WebCore):
16578
16579 2012-11-09  Adam Barth  <abarth@webkit.org>
16580
16581         IndexedDB should use mostly ScriptWrappable DOM objects
16582         https://bugs.webkit.org/show_bug.cgi?id=101694
16583
16584         Reviewed by Kentaro Hara.
16585
16586         These object always have JavaScript wrappers, so we should store the
16587         wrappers inline to use less memory and be faster.
16588
16589         * Modules/indexeddb/IDBAny.h:
16590         * Modules/indexeddb/IDBCursor.h:
16591         * Modules/indexeddb/IDBDatabase.h:
16592         * Modules/indexeddb/IDBFactory.h:
16593         * Modules/indexeddb/IDBIndex.h:
16594         * Modules/indexeddb/IDBKey.h:
16595         * Modules/indexeddb/IDBKeyRange.h:
16596         * Modules/indexeddb/IDBObjectStore.h:
16597         * Modules/indexeddb/IDBRequest.h:
16598         * Modules/indexeddb/IDBTransaction.h:
16599
16600 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16601
16602         Web Inspector: Add meaningful error message when request content was evicted from inspector cache.
16603         https://bugs.webkit.org/show_bug.cgi?id=101578
16604
16605         Reviewed by Yury Semikhatsky.
16606
16607         Added specific error message when request content was evicted from inspector cache.
16608         Replaced purge with evict in fields/methods names.
16609
16610         * inspector/InspectorResourceAgent.cpp:
16611         (WebCore::InspectorResourceAgent::getResponseBody):
16612         * inspector/NetworkResourcesData.cpp:
16613         (WebCore::NetworkResourcesData::ResourceData::ResourceData):
16614         (WebCore::NetworkResourcesData::ResourceData::evictContent):
16615         (WebCore::NetworkResourcesData::setResourceContent):
16616         (WebCore::NetworkResourcesData::maybeAddResourceData):
16617         (WebCore::NetworkResourcesData::maybeDecodeDataToContent):
16618         (WebCore::NetworkResourcesData::ensureNoDataForRequestId):
16619         (WebCore::NetworkResourcesData::ensureFreeSpace):
16620         * inspector/NetworkResourcesData.h:
16621         (WebCore::NetworkResourcesData::ResourceData::isContentEvicted):
16622         (ResourceData):
16623
16624 2012-11-09  Kent Tamura  <tkent@chromium.org>
16625
16626         Don't use RenderTextControlSingleLine for date/time input types without the multiple-fields UI
16627         https://bugs.webkit.org/show_bug.cgi?id=101722
16628
16629         Reviewed by Hajime Morita.
16630
16631         Because the date/time input types are not textfields, we should not use
16632         RenderTextControlSingleLine, and don't need to create shadow trees for
16633         RenderTextControlSingleLine.
16634
16635         No new tests. Covered by fast/forms/*/*-appearance-*.html.
16636
16637         * css/html.css:
16638         (input[type="date"]):
16639         It has menulist appeanrace by default, and should be a flexible box to
16640         center the inner text. 10em width is almost same as the default width of
16641         text fields.
16642         (input[type="datetime"]): Ditto.
16643         (input[type="datetime-local"]): Ditto.
16644         (input[type="month"]): Ditto.
16645         (input[type="time"]): Ditto.
16646         (input[type="week"]): Ditto.
16647         (input::-webkit-date-and-time-value):
16648         Added. A style for the inner text block.
16649         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
16650         (WebCore::BaseChooserOnlyDateAndTimeInputType::createRenderer):
16651         Don't create RenderTextControlSingleLine.
16652         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateInnerTextValue):
16653         Skip TextFieldInputType::updateInnerTextValue.
16654         (WebCore::BaseChooserOnlyDateAndTimeInputType::forwardEvent):
16655         Skip TextFieldInputType::forwardEvent.
16656         (WebCore::BaseChooserOnlyDateAndTimeInputType::createShadowSubtree):
16657         Just add one element to the shadow root.
16658         (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
16659         Sets a localized value to the inner text block.
16660         (WebCore::BaseChooserOnlyDateAndTimeInputType::setValue):
16661         Calls updateAppearance if the value is updated.
16662         * html/BaseChooserOnlyDateAndTimeInputType.h:
16663         (BaseChooserOnlyDateAndTimeInputType): Declare updateAppearance,
16664         createRenderer, updateInnerTextValue, forwardEvent, createShadowSubtree,
16665         and setValue.
16666         * html/BaseDateAndTimeInputType.h:
16667         (WebCore): Add a FIXME comment.
16668         (BaseDateAndTimeInputType):
16669         Make visibleValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16670         * html/TextFieldInputType.h:
16671         (TextFieldInputType):
16672         Make setValue protected. It is used by BaseChooserOnlyDateAndTimeInputType.
16673
16674 2012-11-09  Vsevolod Vlasov  <vsevik@chromium.org>
16675
16676         Web Inspector: Clarify meaning of different urls in protocol.
16677         https://bugs.webkit.org/show_bug.cgi?id=101582
16678
16679         Reviewed by Yury Semikhatsky.
16680
16681         * inspector/Inspector.json:
16682
16683 2012-11-09  Keishi Hattori  <keishi@webkit.org>
16684
16685         Month picker should select the current month when navigating while keeping selection position.
16686         https://bugs.webkit.org/show_bug.cgi?id=101724
16687
16688         Reviewed by Kent Tamura.
16689
16690         Month picker needs to behave differently because selection won't be in the same position when changing current month.
16691
16692         No new tests. Test will be added in Bug 101556.
16693
16694         * Resources/pagepopups/calendarPicker.js:
16695         (DaysTable.prototype.navigateToMonth): Date/Week picker should keep selection position for first selected date node.
16696         (DaysTable.prototype._startMoveInAnimation): Moving shared code to separate function.
16697         (MonthPickerDaysTable.prototype.navigateToMonth): Month picker should just select the month.
16698
16699 2012-11-09  Alexei Filippov  <alph@chromium.org>
16700
16701         Web Inspector: Fix heap snapshots counted several times by NMI
16702         https://bugs.webkit.org/show_bug.cgi?id=101085
16703
16704         The fix moves snapshots size counting to V8PerIsolateData class. As long
16705         as it has one instance per isolate its reportMemoryUsage should be
16706         called once per isolate.
16707
16708         Reviewed by Yury Semikhatsky.
16709
16710         * bindings/v8/V8PerIsolateData.cpp:
16711         (WebCore::V8PerIsolateData::reportMemoryUsage):
16712         * inspector/InspectorProfilerAgent.cpp:
16713         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
16714
16715 2012-11-08  Pavel Feldman  <pfeldman@chromium.org>
16716
16717         Web Inspector: split SplitView into SplitView and SidebarView
16718         https://bugs.webkit.org/show_bug.cgi?id=101612
16719
16720         Reviewed by Vsevolod Vlasov.
16721
16722         Currently, SplitView is rather a sidebar view. I'm extracting the reusable split component from it.
16723
16724         * WebCore.gypi:
16725         * WebCore.vcproj/WebCore.vcproj:
16726         * inspector/compile-front-end.py:
16727         * inspector/front-end/AuditsPanel.js:
16728         (WebInspector.AuditsPanel):
16729         * inspector/front-end/CSSNamedFlowCollectionsView.js:
16730         (WebInspector.CSSNamedFlowCollectionsView):
16731         (WebInspector.CSSNamedFlowCollectionsView.prototype.wasShown):
16732         * inspector/front-end/ElementsPanel.js:
16733         * inspector/front-end/FileSystemView.js:
16734         (WebInspector.FileSystemView):
16735         * inspector/front-end/MemoryStatistics.js:
16736         (WebInspector.CounterUI):
16737         (WebInspector.MemoryStatistics.prototype.setTopPosition):
16738         (WebInspector.MemoryStatistics.prototype.setSidebarWidth):
16739         (WebInspector.MemoryStatistics.prototype.visible):
16740         (WebInspector.MemoryStatistics.prototype.show):
16741         (WebInspector.MemoryStatistics.prototype.hide):
16742         * inspector/front-end/NavigatorOverlayController.js:
16743         (WebInspector.NavigatorOverlayController.prototype.set _pinNavigator):
16744         (WebInspector.NavigatorOverlayController.prototype.set showNavigatorOverlay):
16745         (WebInspector.NavigatorOverlayController.prototype.hideNavigatorOverlay):
16746         (WebInspector.NavigatorOverlayController.prototype._innerHideNavigatorOverlay):
16747         * inspector/front-end/NetworkPanel.js:
16748         * inspector/front-end/Panel.js:
16749         (WebInspector.Panel.prototype.createSidebarView):
16750         (WebInspector.Panel.prototype.createSidebarViewWithTree):
16751         * inspector/front-end/ProfilesPanel.js:
16752         (WebInspector.ProfilesPanel):
16753         * inspector/front-end/ResourcesPanel.js:
16754         * inspector/front-end/ScriptsPanel.js:
16755         (WebInspector.ScriptsPanel):
16756         * inspector/front-end/SidebarView.js: Added.
16757         (WebInspector.SidebarView):
16758         (WebInspector.SidebarView.prototype._hasLeftSidebar):
16759         (WebInspector.SidebarView.prototype.get mainElement):
16760         (WebInspector.SidebarView.prototype.get sidebarElement):
16761         (WebInspector.SidebarView.prototype._innerSetSidebarPosition):
16762         (WebInspector.SidebarView.prototype.setMinimalSidebarWidth):
16763         (WebInspector.SidebarView.prototype.setMinimalMainWidthPercent):
16764         (WebInspector.SidebarView.prototype.setSidebarWidth):
16765         (WebInspector.SidebarView.prototype.sidebarWidth):
16766         (WebInspector.SidebarView.prototype.onResize):
16767         (WebInspector.SidebarView.prototype.applyConstraints):
16768         (WebInspector.SidebarView.prototype.hideMainElement):
16769         (WebInspector.SidebarView.prototype.showMainElement):
16770         (WebInspector.SidebarView.prototype.hideSidebarElement):
16771         (WebInspector.SidebarView.prototype.showSidebarElement):
16772         (WebInspector.SidebarView.prototype.elementsToRestoreScrollPositionsFor):
16773         * inspector/front-end/SplitView.js:
16774         (WebInspector.SplitView):
16775         (WebInspector.SplitView.prototype.firstElement):
16776         (WebInspector.SplitView.prototype.secondElement):
16777         (WebInspector.SplitView.prototype.setChangeFirstOnResize):
16778         (WebInspector.SplitView.prototype.resizerElement):
16779         (WebInspector.SplitView.prototype.showOnlyFirst):
16780         (WebInspector.SplitView.prototype.showOnlySecond):
16781         (WebInspector.SplitView.prototype._showOnly):
16782         (WebInspector.SplitView.prototype._removeAllLayoutProperties):
16783         (WebInspector.SplitView.prototype.showBoth):
16784         (WebInspector.SplitView.prototype.setResizable):
16785         (WebInspector.SplitView.prototype.setSplitOffset):
16786         (WebInspector.SplitView.prototype.splitOffset):
16787         (WebInspector.SplitView.prototype._innerSetSplitOffset):
16788         (WebInspector.SplitView.prototype._startResizerDragging):
16789         * inspector/front-end/TimelinePanel.js:
16790         * inspector/front-end/WebKit.qrc:
16791         * inspector/front-end/inspector.html:
16792         * inspector/front-end/splitView.css:
16793
16794 2012-11-09  Andrey Lushnikov  <lushnikov@google.com>
16795
16796         Web Inspector: Ctrl+A in the network panel should select resource content, not the entire panel
16797         https://bugs.webkit.org/show_bug.cgi?id=101591
16798
16799         Reviewed by Vsevolod Vlasov.
16800
16801         Intercept Ctrl+A event in DefaultTextEditor to select resource content
16802
16803         * inspector/front-end/DefaultTextEditor.js:
16804         (WebInspector.DefaultTextEditor.prototype._registerShortcuts): Added Ctrl+A
16805         (WebInspector.DefaultTextEditor.prototype._handleKeyDown): Intercept Ctrl+A even for readonly fields
16806         (WebInspector.TextEditorMainPanel.prototype.handleSelectAll):
16807         * inspector/front-end/KeyboardShortcut.js: Added SelectAll constant for Ctrl+A combination
16808
16809 2012-11-09  Dan Carney  <dcarney@google.com>
16810
16811         [V8] Main world should have one DOMDataStore
16812         https://bugs.webkit.org/show_bug.cgi?id=101470
16813
16814         Reviewed by Kentaro Hara.
16815
16816         The main world DOMWrapperWorld held onto a DOMDataStore that should
16817         never be used, as there is a static one optimized for speed in
16818         DOMDataStore.
16819
16820         No new tests. No change in functionality.
16821
16822         * bindings/v8/DOMDataStore.cpp:
16823         (WebCore::DOMDataStore::current):
16824         * bindings/v8/DOMWrapperWorld.h:
16825         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
16826         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
16827         * bindings/v8/V8DOMWrapper.h:
16828         (WebCore::V8DOMWrapper::getCachedWrapper):
16829
16830 2012-11-09  Alexei Filippov  <alph@chromium.org>
16831
16832         Web Inspector: Navigating around NMI snapshot grid with keys breaks the grid
16833         https://bugs.webkit.org/show_bug.cgi?id=101611
16834
16835         Reviewed by Yury Semikhatsky.
16836
16837         Keys navigation cause populate message sent to the node. The node should
16838         not react on populate messages but the first one.
16839
16840         * inspector/front-end/NativeMemorySnapshotView.js:
16841
16842 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
16843
16844         Web Inspector: Timeline: "Send Request" events are shown out of order.
16845         https://bugs.webkit.org/show_bug.cgi?id=101544
16846
16847         Reviewed by Yury Semikhatsky.
16848
16849         Solution: replace obsolete out-of-order record pushing with frontend
16850         record reparenting.
16851
16852         * inspector/InspectorTimelineAgent.cpp:
16853         (WebCore::InspectorTimelineAgent::willSendResourceRequest): Replaced
16854         direct record pushing with standard appendRecord invokation.
16855         * inspector/front-end/TimelinePresentationModel.js:
16856         (WebInspector.TimelinePresentationModel.prototype._findParentRecord):
16857         Made "Send Request" records top-level if gluing is on.
16858
16859 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
16860
16861         Unreviewed, rolling out r134010.
16862         http://trac.webkit.org/changeset/134010
16863         https://bugs.webkit.org/show_bug.cgi?id=101716
16864
16865         Broke the chromium windows build. (Requested by noel_ on
16866         #webkit).
16867
16868         * Modules/indexeddb/IDBAny.cpp:
16869         * Modules/indexeddb/IDBCallbacks.h:
16870         * Modules/indexeddb/IDBDatabase.cpp:
16871         (WebCore::IDBDatabase::createObjectStore):
16872         (WebCore::IDBDatabase::deleteObjectStore):
16873         (WebCore::IDBDatabase::transaction):
16874         * Modules/indexeddb/IDBDatabase.h:
16875         (IDBDatabase):
16876         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
16877         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
16878         (WebCore):
16879         (WebCore::IDBDatabaseBackendImpl::setVersion):
16880         (WebCore::IDBDatabaseBackendImpl::transaction):
16881         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
16882         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
16883         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
16884         (IDBDatabaseBackendImpl):
16885         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
16886         (WebCore):
16887         (IDBDatabaseBackendInterface):
16888         * Modules/indexeddb/IDBMetadata.h:
16889         (WebCore::IDBObjectStoreMetadata::containsIndex):
16890         (WebCore::IDBDatabaseMetadata::findObjectStore):
16891         (IDBDatabaseMetadata):
16892         (WebCore::IDBDatabaseMetadata::containsObjectStore):
16893         * Modules/indexeddb/IDBObjectStore.cpp:
16894         (WebCore::IDBObjectStore::put):
16895         (WebCore):
16896         (WebCore::IDBObjectStore::createIndex):
16897         (WebCore::IDBObjectStore::index):
16898         (WebCore::IDBObjectStore::deleteIndex):
16899         * Modules/indexeddb/IDBObjectStore.h:
16900         (WebCore::IDBObjectStore::openCursor):
16901         (IDBObjectStore):
16902         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
16903         (WebCore::IDBObjectStoreBackendImpl::put):
16904         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
16905         (WebCore):
16906         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
16907         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
16908         (WebCore::IDBObjectStoreBackendImpl::index):
16909         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
16910         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
16911         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
16912         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
16913         (IDBObjectStoreBackendImpl):
16914         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
16915         (WebCore):
16916         * Modules/indexeddb/IDBTransaction.cpp:
16917         (WebCore::IDBTransaction::objectStore):
16918         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
16919         (WebCore::IDBTransactionBackendImpl::objectStore):
16920         (WebCore):
16921         * Modules/indexeddb/IDBTransactionBackendImpl.h:
16922         (IDBTransactionBackendImpl):
16923         * Modules/indexeddb/IDBTransactionBackendInterface.h:
16924
16925 2012-11-08  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
16926
16927         [EFL] Add a method to the TextCheckerEnchant class to check whether any dictionary is loaded
16928         https://bugs.webkit.org/show_bug.cgi?id=101570
16929
16930         Reviewed by Gustavo Noronha Silva.
16931
16932         Expose a new method to check whether a vector of loaded languages is empty.
16933         WK2-EFL needs it to set the default language (if the client didn't set any) when
16934         spelling setting is being enabled. This change makes it more convenient to check
16935         whether the dictionaries vector is empty.
16936
16937         No new tests, no behavior change.
16938
16939         * platform/text/enchant/TextCheckerEnchant.cpp:
16940         (TextCheckerEnchant::checkSpellingOfString):
16941         (TextCheckerEnchant::getGuessesForWord):
16942         (TextCheckerEnchant::loadedSpellCheckingLanguages):
16943         A newly exposed method is used internally too.
16944
16945         * platform/text/enchant/TextCheckerEnchant.h:
16946         (WebCore::TextCheckerEnchant::hasDictionary):
16947         Add an inline hasDictionary() method.
16948
16949 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
16950
16951         [Refactoring] Remove shadowPseudoId() and use pseudo() instead in TextTrackCue
16952         https://bugs.webkit.org/show_bug.cgi?id=101702
16953
16954         Reviewed by Hajime Morita.
16955
16956         We're migrating shadowPseudoId() to pseudo(). We remove shadowPseudoId() from TextTrackCue and use
16957         setPseudo()/pseudo() instead.
16958
16959         No new tests, simple refactoring.
16960
16961         * html/track/TextTrackCue.cpp:
16962         (WebCore::TextTrackCueBox::TextTrackCueBox):
16963         * html/track/TextTrackCue.h:
16964         (TextTrackCueBox):
16965
16966 2012-11-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
16967
16968         table not aligned in center column and seems shrunk because of float:right (table-layout: fixed and width: 100%)
16969         https://bugs.webkit.org/show_bug.cgi?id=18153
16970
16971         Reviewed by Beth Dakin.
16972
16973         Preferred logical width is computed incorrectly for fixed layout tables
16974         with 100% percent width, in standards mode.
16975
16976         According to our fixed table layout algorithm (CSS2 specification - 17.5.2.1)
16977         the ultimate width of the table is the greater of the value of the
16978         'width' property for the table elements and the sum of the column
16979         widths.
16980
16981         For our specific scenario we have a fixed layout table with 100% width
16982         consisting of columns with fixed widths, the sum of which is less than
16983         the specified width of the table (i.e. 100% of the containing block).
16984         Even then the applied width is the cummulative of the width of the
16985         columns.
16986
16987         This happens because of the quirks mode check added in
16988         FixedTableLayout::computePreferredLogicalWidths(), which prohibits the
16989         setting of maxWidth to our fixed layout table with percent width, and
16990         which perhaps is not required anymore.
16991
16992         Test: fast/table/fixed-table-layout/table-with-percent-width.html
16993
16994         * rendering/FixedTableLayout.cpp:
16995         (WebCore::FixedTableLayout::computePreferredLogicalWidths):
16996         Removed the quirks mode check.
16997
16998 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
16999
17000         Unreviewed, rolling out r134004.
17001         http://trac.webkit.org/changeset/134004
17002         https://bugs.webkit.org/show_bug.cgi?id=101713
17003
17004         multiple crashes (Requested by hayato on #webkit).
17005
17006         * rendering/RenderThemeMac.mm:
17007         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17008         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17009         (WebCore::RenderThemeMac::paintMediaMuteButton):
17010         (WebCore::RenderThemeMac::paintMediaPlayButton):
17011         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17012         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17013         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17014         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17015         (WebCore::RenderThemeMac::paintMediaRewindButton):
17016         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17017         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17018         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17019         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17020         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17021         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17022         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17023         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17024         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17025         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17026
17027 2012-11-08  Jan Keromnes  <janx@linux.com>
17028
17029         Web Inspector: stop using cursorCoords in CodeMirrorTextEditor
17030         https://bugs.webkit.org/show_bug.cgi?id=101607
17031
17032         Reviewed by Vsevolod Vlasov.
17033
17034         API changes completing migration to v3.
17035
17036         * inspector/front-end/CodeMirrorTextEditor.js:
17037         (WebInspector.CodeMirrorTextEditor):
17038         (WebInspector.CodeMirrorTextEditor.prototype.revealLine):
17039         (WebInspector.CodeMirrorTextEditor.prototype.selection):
17040
17041 2012-11-08  Alexei Filippov  <alph@chromium.org>
17042
17043         Web Inspector: make "Other" bar color darker in NMI snapshot.
17044         https://bugs.webkit.org/show_bug.cgi?id=101602
17045
17046         Reviewed by Vsevolod Vlasov.
17047
17048         * inspector/front-end/NativeMemorySnapshotView.js:
17049         (WebInspector.MemoryBlockViewProperties._initialize):
17050
17051 2012-11-08  Alec Flett  <alecflett@chromium.org>
17052
17053         IndexedDB: switch frontend to use int64_t-based references
17054         https://bugs.webkit.org/show_bug.cgi?id=100426
17055
17056         Reviewed by Tony Chang.
17057
17058         Remove String-based objectStore/index references, obsoleted by
17059         https://bugs.webkit.org/show_bug.cgi?id=100425.
17060
17061         No new tests as this is the second half of a refactor.
17062
17063         * Modules/indexeddb/IDBCallbacks.h:
17064         * Modules/indexeddb/IDBDatabase.cpp:
17065         (WebCore::IDBDatabase::deleteObjectStore):
17066         (WebCore::IDBDatabase::transaction):
17067         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17068         (WebCore::IDBDatabaseBackendImpl::setVersion):
17069         (WebCore::IDBDatabaseBackendImpl::transaction):
17070         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17071         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17072         (IDBDatabaseBackendImpl):
17073         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17074         (IDBDatabaseBackendInterface):
17075         * Modules/indexeddb/IDBMetadata.h:
17076         (WebCore::IDBObjectStoreMetadata::findIndex):
17077         (IDBObjectStoreMetadata):
17078         (WebCore::IDBObjectStoreMetadata::containsIndex):
17079         * Modules/indexeddb/IDBObjectStore.cpp:
17080         (WebCore::IDBObjectStore::put):
17081         (WebCore):
17082         (WebCore::IDBObjectStore::index):
17083         (WebCore::IDBObjectStore::deleteIndex):
17084         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17085         (WebCore::IDBObjectStoreBackendImpl::put):
17086         (WebCore):
17087         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17088         (IDBObjectStoreBackendImpl):
17089         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17090         * inspector/Inspector-1.0.json:
17091         * inspector/Inspector.json:
17092         * inspector/InspectorIndexedDBAgent.cpp:
17093         (WebCore):
17094         (WebCore::InspectorIndexedDBAgent::requestData):
17095         * inspector/InspectorIndexedDBAgent.h:
17096         (InspectorIndexedDBAgent):
17097
17098 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17099
17100         [Refactoring] Expose collectFeaturesFromSelector from RuleSet.cpp
17101         https://bugs.webkit.org/show_bug.cgi?id=101692
17102
17103         Reviewed by Dimitri Glazkov.
17104
17105         We expose collectFeaturesFromSelector in RuleSet.cpp to use it for collecting ShadowDOM select attribute features.
17106
17107         No new tests, simple refactoring.
17108
17109         * css/RuleFeature.cpp:
17110         (WebCore::RuleFeatureSet::collectFeaturesFromSelector): Moved from RuleSet.cpp.
17111         (WebCore):
17112         * css/RuleFeature.h:
17113         (WebCore):
17114         (RuleFeatureSet):
17115         * css/RuleSet.cpp:
17116         (WebCore::collectFeaturesFromRuleData):
17117
17118 2012-11-08  Robert Sesek  <rsesek@chromium.org>
17119
17120         Guard calls to WebKitSystemInterface media control drawing functions in RenderThemeMac with PLATFORM(MAC)
17121         https://bugs.webkit.org/show_bug.cgi?id=101634
17122
17123         Reviewed by Adam Barth.
17124
17125         No new tests, just disabling unused code in Chromium port.
17126
17127         * rendering/RenderThemeMac.mm:
17128         (WebCore::RenderThemeMac::adjustMediaSliderThumbSize):
17129         (WebCore::RenderThemeMac::paintMediaFullscreenButton):
17130         (WebCore::RenderThemeMac::paintMediaMuteButton):
17131         (WebCore::RenderThemeMac::paintMediaPlayButton):
17132         (WebCore::RenderThemeMac::paintMediaSeekBackButton):
17133         (WebCore::RenderThemeMac::paintMediaSeekForwardButton):
17134         (WebCore::RenderThemeMac::paintMediaSliderTrack):
17135         (WebCore::RenderThemeMac::paintMediaSliderThumb):
17136         (WebCore::RenderThemeMac::paintMediaRewindButton):
17137         (WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
17138         (WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
17139         (WebCore::RenderThemeMac::paintMediaControlsBackground):
17140         (WebCore::RenderThemeMac::paintMediaCurrentTime):
17141         (WebCore::RenderThemeMac::paintMediaTimeRemaining):
17142         (WebCore::RenderThemeMac::paintMediaVolumeSliderContainer):
17143         (WebCore::RenderThemeMac::paintMediaVolumeSliderTrack):
17144         (WebCore::RenderThemeMac::paintMediaVolumeSliderThumb):
17145         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderTrack):
17146         (WebCore::RenderThemeMac::paintMediaFullScreenVolumeSliderThumb):
17147
17148 2012-11-08  Keishi Hattori  <keishi@webkit.org>
17149
17150         Enable calendar picker for input types week/month
17151         https://bugs.webkit.org/show_bug.cgi?id=101553
17152
17153         Reviewed by Kent Tamura.
17154
17155         Enabling calendar picker for <input type=week/month>
17156
17157         No new tests. Tests will be added later in Bug 101556 and Bug 101555.
17158
17159         * rendering/RenderThemeChromiumCommon.cpp:
17160         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
17161
17162 2012-11-08  Robin Cao  <robin.cao@torchmobile.com.cn>
17163
17164         [BlackBerry] Change the default return value of MediaPlayerPrivate::hasSingleSecurityOrigin
17165         https://bugs.webkit.org/show_bug.cgi?id=101681
17166
17167         Reviewed by George Staikos.
17168
17169         Since the platform player in BlackBerry disallows resources that come from different origins,
17170         so it's safe to directly returns true here.
17171
17172         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
17173         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
17174
17175 2012-11-08  Mark Lam  <mark.lam@apple.com>
17176
17177         Renamed ...InlineMethods.h files to ...Inlines.h.
17178         https://bugs.webkit.org/show_bug.cgi?id=101145.
17179
17180         Reviewed by Geoffrey Garen.
17181
17182         This is only a refactoring effort to rename the files. There are no
17183         functionality changes.
17184
17185         No new tests.
17186
17187         * GNUmakefile.list.am:
17188         * Target.pri:
17189         * WebCore.gypi:
17190         * WebCore.vcproj/WebCore.vcproj:
17191         * WebCore.xcodeproj/project.pbxproj:
17192         * html/parser/HTMLEntityParser.cpp:
17193         * html/parser/HTMLTokenizer.cpp:
17194         * html/track/WebVTTTokenizer.cpp:
17195         * xml/parser/CharacterReferenceParserInlineMethods.h: Removed.
17196         * xml/parser/CharacterReferenceParserInlines.h: Copied from Source/WebCore/xml/parser/CharacterReferenceParserInlineMethods.h.
17197         * xml/parser/MarkupTokenizerInlineMethods.h: Removed.
17198         * xml/parser/MarkupTokenizerInlines.h: Copied from Source/WebCore/xml/parser/MarkupTokenizerInlineMethods.h.
17199         * xml/parser/XMLCharacterReferenceParser.cpp:
17200         * xml/parser/XMLTokenizer.cpp:
17201
17202 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17203
17204         Unreviewed, rolling out r133984.
17205         http://trac.webkit.org/changeset/133984
17206         https://bugs.webkit.org/show_bug.cgi?id=101684
17207
17208         windows build error. (Requested by hayato on #webkit).
17209
17210         * Modules/indexeddb/IDBCallbacks.h:
17211         * Modules/indexeddb/IDBDatabase.cpp:
17212         (WebCore::IDBDatabase::createObjectStore):
17213         (WebCore::IDBDatabase::deleteObjectStore):
17214         (WebCore::IDBDatabase::transaction):
17215         * Modules/indexeddb/IDBDatabase.h:
17216         (IDBDatabase):
17217         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17218         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
17219         (WebCore):
17220         (WebCore::IDBDatabaseBackendImpl::setVersion):
17221         (WebCore::IDBDatabaseBackendImpl::transaction):
17222         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17223         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17224         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
17225         (IDBDatabaseBackendImpl):
17226         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17227         (IDBDatabaseBackendInterface):
17228         * Modules/indexeddb/IDBMetadata.h:
17229         (WebCore::IDBObjectStoreMetadata::containsIndex):
17230         (WebCore::IDBDatabaseMetadata::findObjectStore):
17231         (IDBDatabaseMetadata):
17232         (WebCore::IDBDatabaseMetadata::containsObjectStore):
17233         * Modules/indexeddb/IDBObjectStore.cpp:
17234         (WebCore::IDBObjectStore::put):
17235         (WebCore):
17236         (WebCore::IDBObjectStore::createIndex):
17237         (WebCore::IDBObjectStore::index):
17238         (WebCore::IDBObjectStore::deleteIndex):
17239         * Modules/indexeddb/IDBObjectStore.h:
17240         (WebCore::IDBObjectStore::openCursor):
17241         (IDBObjectStore):
17242         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17243         (WebCore::IDBObjectStoreBackendImpl::put):
17244         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
17245         (WebCore):
17246         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
17247         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
17248         (WebCore::IDBObjectStoreBackendImpl::index):
17249         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
17250         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
17251         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
17252         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17253         (IDBObjectStoreBackendImpl):
17254         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17255         * Modules/indexeddb/IDBTransaction.cpp:
17256         (WebCore::IDBTransaction::objectStore):
17257         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
17258         (WebCore::IDBTransactionBackendImpl::objectStore):
17259         (WebCore):
17260         * Modules/indexeddb/IDBTransactionBackendImpl.h:
17261         (IDBTransactionBackendImpl):
17262         * Modules/indexeddb/IDBTransactionBackendInterface.h:
17263
17264 2012-11-08  Shinya Kawanaka  <shinyak@chromium.org>
17265
17266         HTMLContentElement should preserve parsed CSSSelectorList
17267         https://bugs.webkit.org/show_bug.cgi?id=101543
17268
17269         Reviewed by Dimitri Glazkov.
17270
17271         We would like to preserve CSSSelectorList for select attribute of HTMLContentElement.
17272
17273         Before, we parsed and validated select attribute every time distribution happens. If we preserve the parsed
17274         CSSSelectorList, we can reduce distribution time.
17275
17276         This is also a prepration patch for Bug 101180. It also needs the parsed CSSSelectorList. We don't want to
17277         parse and validate it again.
17278
17279         No new tests, covered by exising tests.
17280
17281         * html/shadow/ContentSelectorQuery.cpp:
17282         (WebCore::ContentSelectorQuery::ContentSelectorQuery): We don't parse select attribute here anymore.
17283         if it's already parsed.
17284         (WebCore::ContentSelectorQuery::matches):
17285         * html/shadow/ContentSelectorQuery.h:
17286         (ContentSelectorQuery):
17287         * html/shadow/HTMLContentElement.cpp:
17288         (WebCore::HTMLContentElement::HTMLContentElement):
17289         (WebCore::HTMLContentElement::isSelectValid):
17290         (WebCore::HTMLContentElement::ensureSelectParsed): If we don't have parsed the current select attribute,
17291         we parse and validate it.
17292         (WebCore::HTMLContentElement::parseAttribute): When select attribute is changed, we have to have a flag enabled
17293         to parse select attrite again.
17294         (WebCore::validateSubSelector): Moved from ContentSelectorQuery.
17295         (WebCore):
17296         (WebCore::validateSelector): Moved from ContentSelectorQuery.
17297         (WebCore::HTMLContentElement::validateSelect):
17298         * html/shadow/HTMLContentElement.h:
17299         (HTMLContentElement):
17300         (WebCore::HTMLContentElement::setSelect):
17301         (WebCore):
17302         (WebCore::HTMLContentElement::selectorList):
17303         * html/shadow/HTMLShadowElement.cpp:
17304         (WebCore::HTMLShadowElement::emptySelectorList):
17305         (WebCore):
17306         * html/shadow/HTMLShadowElement.h:
17307         (HTMLShadowElement):
17308         (WebCore::HTMLShadowElement::selectorList):
17309         * html/shadow/InsertionPoint.h:
17310         (InsertionPoint):
17311
17312 2012-11-08  Alec Flett  <alecflett@chromium.org>
17313
17314         IndexedDB: switch frontend to use int64_t-based references
17315         https://bugs.webkit.org/show_bug.cgi?id=100426
17316
17317         Reviewed by Tony Chang.
17318
17319         Remove String-based objectStore/index references, obsoleted by
17320         https://bugs.webkit.org/show_bug.cgi?id=100425.
17321
17322         No new tests as this is the second half of a refactor.
17323
17324         * Modules/indexeddb/IDBCallbacks.h:
17325         * Modules/indexeddb/IDBDatabase.cpp:
17326         (WebCore::IDBDatabase::deleteObjectStore):
17327         (WebCore::IDBDatabase::transaction):
17328         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
17329         (WebCore::IDBDatabaseBackendImpl::setVersion):
17330         (WebCore::IDBDatabaseBackendImpl::transaction):
17331         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
17332         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
17333         (IDBDatabaseBackendImpl):
17334         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
17335         (IDBDatabaseBackendInterface):
17336         * Modules/indexeddb/IDBMetadata.h:
17337         (WebCore::IDBObjectStoreMetadata::findIndex):
17338         (IDBObjectStoreMetadata):
17339         (WebCore::IDBObjectStoreMetadata::containsIndex):
17340         * Modules/indexeddb/IDBObjectStore.cpp:
17341         (WebCore::IDBObjectStore::put):
17342         (WebCore):
17343         (WebCore::IDBObjectStore::index):
17344         (WebCore::IDBObjectStore::deleteIndex):
17345         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
17346         (WebCore::IDBObjectStoreBackendImpl::put):
17347         (WebCore):
17348         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
17349         (IDBObjectStoreBackendImpl):
17350         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
17351         * inspector/Inspector-1.0.json:
17352         * inspector/Inspector.json:
17353         * inspector/InspectorIndexedDBAgent.cpp:
17354         (WebCore):
17355         (WebCore::InspectorIndexedDBAgent::requestData):
17356         * inspector/InspectorIndexedDBAgent.h:
17357         (InspectorIndexedDBAgent):
17358
17359 2012-11-08  Kenichi Ishibashi  <bashi@chromium.org>
17360
17361         [Chromium] Arabic digits should appear left-to-right
17362         https://bugs.webkit.org/show_bug.cgi?id=101440
17363
17364         Reviewed by Tony Chang.
17365
17366         Call hb_buffer_set_direction() to set direction when drawing glyphs or
17367         direction should be overridden. Leave direction setting to HarfBuzz when
17368         WebKit is calculating widths because the direction is LTR by default while
17369         calculating widths.  Set script before shaping so that HarfBuzz can estimate
17370         appropriate direction.
17371
17372         Test: fast/text/international/arabic-digits.html
17373
17374         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
17375         (WebCore::HarfBuzzShaper::HarfBuzzRun::HarfBuzzRun):
17376         Add m_script. This holds the script of the run.
17377         (WebCore::HarfBuzzShaper::shape):
17378         Tell shapeHarfBuzzRuns() to set direction when drawing glyphs or
17379         direction should be overridden.
17380         (WebCore::HarfBuzzShaper::collectHarfBuzzRuns):
17381         Set script of HarfBuzzRuns.
17382         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
17383         Add an argument that indicates it should set direction.
17384         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
17385         (WebCore::HarfBuzzShaper::HarfBuzzRun::create):
17386         (WebCore::HarfBuzzShaper::HarfBuzzRun::rtl):
17387         (WebCore::HarfBuzzShaper::HarfBuzzRun::script):
17388         (HarfBuzzRun):
17389         (HarfBuzzShaper):
17390
17391 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17392
17393         [TexMap] Remove contentsLayer() in GraphicsLayerTextureMapper.
17394         https://bugs.webkit.org/show_bug.cgi?id=101658
17395
17396         Reviewed by Noam Rosenthal.
17397
17398         GraphicsLayerTextureMapper::contentsLayer() is duplicated to
17399         GraphicsLayer::platformLayer(), so we remove it.
17400
17401         No new tests, this is just a refactor.
17402
17403         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
17404         (WebCore::GraphicsLayerTextureMapper::platformLayer):
17405         * platform/graphics/texmap/TextureMapperLayer.cpp:
17406         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
17407
17408 2012-11-08  Benjamin Poulain  <benjamin@webkit.org>
17409
17410         Improve the use of AtomicString with literals
17411         https://bugs.webkit.org/show_bug.cgi?id=101298
17412
17413         Reviewed by Darin Adler.
17414
17415         Fix a bunch of cases of AtomicString with literals:
17416         -Do not create temporary AtomicString to perform a comparison, that is very wasteful.
17417         -Use the ConstructFromLiteral constructor whenever it makes sense.
17418         -Make "x-frame-options" static instead of creating it for each response.
17419         -Use ASCIILiteral() instead of AtomicString() in EventHandler, the function takes a String,
17420          not an AtomicString.
17421
17422         * Modules/battery/BatteryController.cpp:
17423         (WebCore::BatteryController::supplementName):
17424         * Modules/battery/NavigatorBattery.cpp:
17425         (WebCore::NavigatorBattery::from):
17426         * Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp:
17427         (WebCore::DraggedIsolatedFileSystem::supplementName):
17428         * Modules/gamepad/NavigatorGamepad.cpp:
17429         (WebCore::NavigatorGamepad::from):
17430         * Modules/geolocation/GeolocationController.cpp:
17431         (WebCore::GeolocationController::supplementName):
17432         * Modules/geolocation/NavigatorGeolocation.cpp:
17433         (WebCore::NavigatorGeolocation::from):
17434         * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
17435         (WebCore::DOMWindowIndexedDatabase::from):
17436         * Modules/indexeddb/IDBCursor.cpp:
17437         (WebCore::IDBCursor::directionNext):
17438         (WebCore::IDBCursor::directionNextUnique):
17439         (WebCore::IDBCursor::directionPrev):
17440         (WebCore::IDBCursor::directionPrevUnique):
17441         * Modules/indexeddb/IDBRequest.cpp:
17442         (WebCore::IDBRequest::readyState):
17443         * Modules/indexeddb/IDBTransaction.cpp:
17444         (WebCore::IDBTransaction::modeReadOnly):
17445         (WebCore::IDBTransaction::modeReadWrite):
17446         (WebCore::IDBTransaction::modeVersionChange):
17447         (WebCore::IDBTransaction::modeReadOnlyLegacy):
17448         (WebCore::IDBTransaction::modeReadWriteLegacy):
17449         * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
17450         (WebCore::PageGroupIndexedDatabase::from):
17451         * Modules/intents/DOMWindowIntents.cpp:
17452         (WebCore::DOMWindowIntents::from):
17453         * Modules/mediastream/UserMediaController.cpp:
17454         (WebCore::UserMediaController::supplementName):
17455         * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
17456         (WebCore::NavigatorContentUtils::supplementName):
17457         * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp:
17458         (WebCore::NavigatorNetworkInfoConnection::from):
17459         * Modules/networkinfo/NetworkInfoController.cpp:
17460         (WebCore::NetworkInfoController::supplementName):
17461         * Modules/notifications/DOMWindowNotifications.cpp:
17462         (WebCore::DOMWindowNotifications::from):
17463         * Modules/notifications/NotificationController.cpp:
17464         (WebCore::NotificationController::supplementName):
17465         * Modules/quota/DOMWindowQuota.cpp:
17466         (WebCore::DOMWindowQuota::from):
17467         * Modules/speech/SpeechRecognitionController.cpp:
17468         (WebCore::SpeechRecognitionController::supplementName):
17469         * Modules/vibration/Vibration.cpp:
17470         (WebCore::Vibration::supplementName):
17471         * accessibility/AccessibilityObject.cpp:
17472         (WebCore::AccessibilityObject::invalidStatus):
17473         * accessibility/AccessibilityRenderObject.cpp:
17474         (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
17475         (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
17476         * bindings/v8/custom/V8DOMWindowCustom.cpp:
17477         (WebCore::V8DOMWindow::namedSecurityCheck):
17478         * bindings/v8/custom/V8NodeListCustom.cpp:
17479         (WebCore::V8NodeList::namedPropertyGetter):
17480         * dom/ContextFeatures.cpp:
17481         (WebCore::ContextFeatures::supplementName):
17482         * dom/DeviceMotionController.cpp:
17483         (WebCore::DeviceMotionController::supplementName):
17484         * dom/DeviceOrientationController.cpp:
17485         (WebCore::DeviceOrientationController::supplementName):
17486         * dom/Element.cpp:
17487         (WebCore::Element::webkitRegionOverset):
17488         * dom/MutationRecord.cpp:
17489         * html/FileInputType.cpp:
17490         (WebCore::UploadButtonElement::shadowPseudoId):
17491         * html/FormController.cpp:
17492         (WebCore::SavedFormState::getReferencedFilePaths):
17493         (WebCore::FormKeyGenerator::formKey):
17494         * html/HTMLButtonElement.cpp:
17495         (WebCore::HTMLButtonElement::formControlType):
17496         * html/HTMLDetailsElement.cpp:
17497         (WebCore::summaryQuerySelector):
17498         * html/HTMLFieldSetElement.cpp:
17499         (WebCore::HTMLFieldSetElement::formControlType):
17500         * html/HTMLKeygenElement.cpp:
17501         (WebCore::KeygenSelectElement::shadowPseudoId):
17502         (WebCore::HTMLKeygenElement::formControlType):
17503         * html/HTMLOptGroupElement.cpp:
17504         (WebCore::HTMLOptGroupElement::formControlType):
17505         * html/HTMLOutputElement.cpp:
17506         (WebCore::HTMLOutputElement::formControlType):
17507         * html/HTMLSelectElement.cpp:
17508         (WebCore::HTMLSelectElement::formControlType):
17509         * html/HTMLTextAreaElement.cpp:
17510         (WebCore::HTMLTextAreaElement::formControlType):
17511         * html/HTMLTextFormControlElement.cpp:
17512         (WebCore::directionString):
17513         * html/shadow/DateTimeEditElement.cpp:
17514         (WebCore::DateTimeEditElement::DateTimeEditElement):
17515         * html/shadow/DateTimeFieldElements.cpp:
17516         (WebCore::DateTimeAMPMFieldElement::create):
17517         (WebCore::DateTimeDayFieldElement::create):
17518         (WebCore::DateTimeHourFieldElement::create):
17519         (WebCore::DateTimeMillisecondFieldElement::create):
17520         (WebCore::DateTimeMinuteFieldElement::create):
17521         (WebCore::DateTimeMonthFieldElement::create):
17522         (WebCore::DateTimeSecondFieldElement::create):
17523         (WebCore::DateTimeSymbolicMonthFieldElement::create):
17524         (WebCore::DateTimeWeekFieldElement::create):
17525         (WebCore::DateTimeYearFieldElement::create):
17526         * html/shadow/DetailsMarkerControl.cpp:
17527         (WebCore::DetailsMarkerControl::shadowPseudoId):
17528         * html/shadow/ImageInnerElement.cpp:
17529         (WebCore::ImageInnerElement::shadowPseudoId):
17530         * html/shadow/MediaControlElements.cpp:
17531         (WebCore::MediaControlPanelElement::shadowPseudoId):
17532         (WebCore::MediaControlTimelineContainerElement::shadowPseudoId):
17533         (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId):
17534         (WebCore::MediaControlStatusDisplayElement::shadowPseudoId):
17535         (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId):
17536         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId):
17537         (WebCore::MediaControlPlayButtonElement::shadowPseudoId):
17538         (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId):
17539         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId):
17540         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId):
17541         (WebCore::MediaControlRewindButtonElement::shadowPseudoId):
17542         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId):
17543         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId):
17544         (WebCore::MediaControlTimelineElement::shadowPseudoId):
17545         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId):
17546         (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId):
17547         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId):
17548         (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId):
17549         (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId):
17550         (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId):
17551         (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId):
17552         (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId):
17553         * html/shadow/MediaControlRootElement.cpp:
17554         (WebCore::MediaControlRootElement::shadowPseudoId):
17555         * html/shadow/MediaControlRootElementChromium.cpp:
17556         (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId):
17557         (WebCore::MediaControlRootElementChromium::shadowPseudoId):
17558         * html/shadow/MediaControlRootElementChromiumAndroid.cpp:
17559         (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId):
17560         * html/shadow/MeterShadowElement.cpp:
17561         (WebCore::MeterInnerElement::shadowPseudoId):
17562         (WebCore::MeterBarElement::shadowPseudoId):
17563         (WebCore::MeterValueElement::shadowPseudoId):
17564         * html/shadow/ProgressShadowElement.cpp:
17565         (WebCore::ProgressInnerElement::shadowPseudoId):
17566         (WebCore::ProgressBarElement::shadowPseudoId):
17567         (WebCore::ProgressValueElement::shadowPseudoId):
17568         * html/shadow/SliderThumbElement.cpp:
17569         (WebCore::sliderThumbShadowPseudoId):
17570         (WebCore::mediaSliderThumbShadowPseudoId):
17571         (WebCore::SliderContainerElement::shadowPseudoId):
17572         * html/shadow/SpinButtonElement.cpp:
17573         (WebCore::SpinButtonElement::shadowPseudoId):
17574         * html/shadow/TextControlInnerElements.cpp:
17575         (WebCore::SearchFieldResultsButtonElement::shadowPseudoId):
17576         (WebCore::SearchFieldCancelButtonElement::shadowPseudoId):
17577         (WebCore::InputFieldSpeechButtonElement::shadowPseudoId):
17578         * html/track/TextTrackCue.cpp:
17579         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId):
17580         * loader/CrossOriginAccessControl.cpp:
17581         (WebCore::passesAccessControlCheck):
17582         * loader/MainResourceLoader.cpp:
17583         (WebCore::MainResourceLoader::didReceiveResponse):
17584         * loader/PrerendererClient.cpp:
17585         (WebCore::PrerendererClient::supplementName):
17586         * loader/cache/CachedResource.cpp:
17587         (WebCore::CachedResource::updateResponseAfterRevalidation):
17588         * page/DOMWindowPagePopup.cpp:
17589         (WebCore::DOMWindowPagePopup::supplementName):
17590         * page/EventHandler.cpp:
17591         (WebCore::EventHandler::handlePasteGlobalSelection):
17592         (WebCore::focusDirectionForKey):
17593         * page/SpeechInput.cpp:
17594         (WebCore::SpeechInput::supplementName):
17595         * page/animation/CompositeAnimation.cpp:
17596         (WebCore::CompositeAnimation::updateKeyframeAnimations):
17597         * platform/graphics/FontCache.cpp:
17598         (WebCore::alternateFamilyName):
17599         * platform/graphics/MediaPlayer.cpp:
17600         (WebCore::applicationOctetStream):
17601         (WebCore::textPlain):
17602         (WebCore::codecs):
17603         * platform/graphics/chromium/FontCacheAndroid.cpp:
17604         (WebCore::FontCache::getLastResortFallbackFont):
17605         * platform/graphics/filters/SourceAlpha.cpp:
17606         (WebCore::SourceAlpha::effectName):
17607         * platform/graphics/filters/SourceGraphic.cpp:
17608         (WebCore::SourceGraphic::effectName):
17609         * platform/graphics/mac/FontCacheMac.mm:
17610         (WebCore::FontCache::getSimilarFontPlatformData):
17611         (WebCore::FontCache::getLastResortFallbackFont):
17612         * platform/graphics/skia/FontCacheSkia.cpp:
17613         (WebCore::FontCache::getLastResortFallbackFont):
17614         * platform/graphics/win/FontCacheWin.cpp:
17615         (WebCore::FontCache::getLastResortFallbackFont):
17616         * platform/graphics/wx/FontCacheWx.cpp:
17617         (WebCore::FontCache::getSimilarFontPlatformData):
17618         * platform/network/ResourceResponseBase.cpp:
17619         (WebCore::ResourceResponseBase::setHTTPHeaderField):
17620         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
17621         (WebCore::ResourceResponseBase::hasCacheValidatorFields):
17622         (WebCore::ResourceResponseBase::date):
17623         (WebCore::ResourceResponseBase::age):
17624         (WebCore::ResourceResponseBase::expires):
17625         (WebCore::ResourceResponseBase::lastModified):
17626         (WebCore::ResourceResponseBase::isAttachment):
17627         * rendering/RenderTextControlMultiLine.cpp:
17628         (WebCore::RenderTextControlMultiLine::getAvgCharWidth):
17629         * rendering/RenderTextControlSingleLine.cpp:
17630         (WebCore::RenderTextControlSingleLine::getAvgCharWidth):
17631         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
17632         * svg/SVGAnimateColorElement.cpp:
17633         (WebCore::attributeValueIsCurrentColor):
17634         * svg/SVGAnimateMotionElement.cpp:
17635         (WebCore::SVGAnimateMotionElement::rotateMode):
17636         * svg/SVGAnimationElement.cpp:
17637         (WebCore::SVGAnimationElement::setCalcMode):
17638         (WebCore::SVGAnimationElement::setAttributeType):
17639         (WebCore::SVGAnimationElement::isAdditive):
17640         (WebCore::SVGAnimationElement::isAccumulated):
17641         (WebCore::inheritsFromProperty):
17642         * svg/SVGFEConvolveMatrixElement.cpp:
17643         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthXIdentifier):
17644         (WebCore::SVGFEConvolveMatrixElement::kernelUnitLengthYIdentifier):
17645         (WebCore::SVGFEConvolveMatrixElement::orderXIdentifier):
17646         (WebCore::SVGFEConvolveMatrixElement::orderYIdentifier):
17647         * svg/SVGFEDiffuseLightingElement.cpp:
17648         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthXIdentifier):
17649         (WebCore::SVGFEDiffuseLightingElement::kernelUnitLengthYIdentifier):
17650         * svg/SVGFEDropShadowElement.cpp:
17651         (WebCore::SVGFEDropShadowElement::stdDeviationXIdentifier):
17652         (WebCore::SVGFEDropShadowElement::stdDeviationYIdentifier):
17653         * svg/SVGFEGaussianBlurElement.cpp:
17654         (WebCore::SVGFEGaussianBlurElement::stdDeviationXIdentifier):
17655         (WebCore::SVGFEGaussianBlurElement::stdDeviationYIdentifier):
17656         * svg/SVGFEMorphologyElement.cpp:
17657         (WebCore::SVGFEMorphologyElement::radiusXIdentifier):
17658         (WebCore::SVGFEMorphologyElement::radiusYIdentifier):
17659         * svg/SVGFESpecularLightingElement.cpp:
17660         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthXIdentifier):
17661         (WebCore::SVGFESpecularLightingElement::kernelUnitLengthYIdentifier):
17662         * svg/SVGFETurbulenceElement.cpp:
17663         (WebCore::SVGFETurbulenceElement::baseFrequencyXIdentifier):
17664         (WebCore::SVGFETurbulenceElement::baseFrequencyYIdentifier):
17665         * svg/SVGFilterElement.cpp:
17666         (WebCore::SVGFilterElement::filterResXIdentifier):
17667         (WebCore::SVGFilterElement::filterResYIdentifier):
17668         * svg/SVGLangSpace.cpp:
17669         (WebCore::SVGLangSpace::xmlspace):
17670         (WebCore::SVGLangSpace::addSupportedAttributes):
17671         * svg/SVGMarkerElement.cpp:
17672         (WebCore::SVGMarkerElement::orientTypeIdentifier):
17673         (WebCore::SVGMarkerElement::orientAngleIdentifier):
17674         (WebCore::SVGMarkerElement::synchronizeOrientType):
17675         * svg/SVGSVGElement.cpp:
17676         (WebCore::SVGSVGElement::contentScriptType):
17677         (WebCore::SVGSVGElement::contentStyleType):
17678         * svg/SVGStyleElement.cpp:
17679         (WebCore::SVGStyleElement::type):
17680         (WebCore::SVGStyleElement::media):
17681         * svg/SVGTextContentElement.cpp:
17682         (WebCore::SVGTextContentElement::collectStyleForAttribute):
17683         * svg/SVGViewSpec.cpp:
17684         (WebCore::SVGViewSpec::viewBoxIdentifier):
17685         (WebCore::SVGViewSpec::preserveAspectRatioIdentifier):
17686         (WebCore::SVGViewSpec::transformIdentifier):
17687         * svg/animation/SVGSMILElement.cpp:
17688         (WebCore::SVGSMILElement::parseClockValue):
17689         (WebCore::SVGSMILElement::restart):
17690         (WebCore::SVGSMILElement::fill):
17691         (WebCore::SVGSMILElement::repeatCount):
17692         * testing/InternalSettings.cpp:
17693         (WebCore::InternalSettings::from):
17694         * xml/parser/XMLTreeBuilder.cpp:
17695         (WebCore::XMLTreeBuilder::processDOCTYPE):
17696         (WebCore::XMLTreeBuilder::processXMLEntity):
17697
17698 2012-11-08  Beth Dakin  <bdakin@apple.com>
17699
17700         https://bugs.webkit.org/show_bug.cgi?id=101644
17701         Fixed header on Facebook news feed becomes detached from top of 
17702         viewport after rubber band scrolling
17703         -and corresponding-
17704         <rdar://problem/12651944>
17705
17706         Reviewed by Simon Fraser.
17707
17708         There is code to handle this for non-threaded scrolling on FrameView. 
17709         This patch moves most of that code into a convenience function on 
17710         ScrollingCoordinator.
17711
17712         Have FrameView::scrollOffsetForFixedPosition() call 
17713         WebCore::scrollOffsetForFixedPosition() with all the right 
17714         parameters.
17715         * page/FrameView.cpp:
17716         (WebCore::FrameView::scrollOffsetForFixedPosition):
17717
17718         Here's where all the math happens.
17719         * page/scrolling/ScrollingCoordinator.cpp:
17720         (WebCore::fixedPositionScrollOffset):
17721         (WebCore::scrollOffsetForFixedPosition):
17722
17723         The viewportRect in these three places needs to have the 
17724         adjusted-for-fixed offset.
17725         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
17726         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
17727         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
17728         * rendering/RenderLayerCompositor.cpp:
17729         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
17730
17731 2012-11-08  Alpha Lam  <hclam@chromium.org>
17732
17733         [chromium] Deferred image decoding fails with image orientation
17734         https://bugs.webkit.org/show_bug.cgi?id=101648
17735
17736         Reviewed by Stephen White.
17737
17738         When an image is deferred save the orientation state. Once this state
17739         is cached it can be used to reply future queries since this state is
17740         static.
17741
17742         No new tests but platform/chromium/virtual/deferred/fast/images/image-orientation.html is passing now.
17743
17744         * platform/graphics/chromium/DeferredImageDecoder.cpp:
17745         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
17746         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
17747         (WebCore::DeferredImageDecoder::orientation):
17748         * platform/graphics/chromium/DeferredImageDecoder.h:
17749         (DeferredImageDecoder):
17750
17751 2012-11-08  Andreas Kling  <kling@webkit.org>
17752
17753         DocumentLoader: Shrink-to-fit the ResourceResponse vector after loading completes.
17754         <http://webkit.org/b/101657>
17755
17756         Reviewed by Anders Carlsson.
17757
17758         Shrink DocumentLoader::m_responses to exact size when we stop adding responses to it,
17759         as we know it won't grow after that.
17760
17761         520kB progression on Membuster3.
17762
17763         * loader/DocumentLoader.cpp:
17764         (WebCore::DocumentLoader::stopRecordingResponses):
17765
17766 2012-11-08  Hans Muller  <hmuller@adobe.com>
17767
17768         [CSS Exclusions] Polygon with horizontal bottom edges returns incorrect segments
17769         https://bugs.webkit.org/show_bug.cgi?id=100874
17770
17771         Reviewed by Dirk Schulze.
17772
17773         Revised the way that computeXIntersections() handles intersections with horizotal polygon edges.
17774         Deciding if a vertex intersection corresponds to a polygon "edge crossing", i.e. a change from inside
17775         to outside or outside to inside, now depends on which side of the horizontal line the function's
17776         y parameter corresponds to. If the y corresponds to the top of the line, then isaMinY the parameter
17777         is true, and an intersection with a horizontal edge is only considered to be an edge crossing if
17778         if the inside of the polygon is just below the horizontal edge.  When isMinY is false then the inside
17779         of the polygon must be just above the horizontal edge.
17780
17781         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-003.html
17782                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-004.html
17783
17784         * rendering/ExclusionPolygon.cpp:
17785         (WebCore::getVertexIntersectionVertices): Corrected two cases where the next/previous vertex was determined incorrectly.
17786         (WebCore::ExclusionPolygon::computeXIntersections): Added a bool isMinY parameter which specifies if the y parameter corresponds to the top or bottom a horizontal line.
17787         (WebCore::ExclusionPolygon::getExcludedIntervals): Added the new computeXIntersections() parameter.
17788         (WebCore::ExclusionPolygon::getIncludedIntervals): Ditto.
17789         * rendering/ExclusionPolygon.h:
17790         (WebCore::ExclusionPolygonEdge::previousEdge): Corrected the previousEdge() function.
17791
17792 2012-11-08  Otto Derek Cheung  <otcheung@rim.com>
17793
17794         [BlackBerry] Disable cookies on file://
17795         https://bugs.webkit.org/show_bug.cgi?id=101646
17796
17797         Reviewed by Rob Buis.
17798
17799         Disabling cookies on file and local in the browser app.
17800
17801         PR 239779
17802
17803         Tested by trying to set and retrieve cookies on WI while browsing
17804         files on the file scheme.
17805
17806         * platform/blackberry/CookieManager.cpp:
17807         (WebCore):
17808         (WebCore::shouldIgnoreScheme):
17809         (WebCore::CookieManager::getRawCookies):
17810         (WebCore::CookieManager::checkAndTreatCookie):
17811
17812 2012-11-08  Joshua Bell  <jsbell@chromium.org>
17813
17814         Expose snapshots in platform/leveldb wrapper API
17815         https://bugs.webkit.org/show_bug.cgi?id=100786
17816
17817         Reviewed by Tony Chang.
17818
17819         Expose leveldb "snapshots" in the LevelDB API. A snapshot lets you observe the database
17820         as it was when the snapshot was taken. This can be used to implement parallel transactions,
17821         e.g. where a read transaction won't see updates made by a later write transaction.
17822
17823         Tests: webkit_unit_tests --gtest_filter='LevelDBDatabaseTest.Transaction*'
17824
17825         * platform/leveldb/LevelDBDatabase.cpp:
17826         (WebCore::LevelDBSnapshot::LevelDBSnapshot): New (but for now internal-only) wrapper type.
17827         (WebCore):
17828         (WebCore::LevelDBSnapshot::~LevelDBSnapshot): Release the leveldb::Snapshot.
17829         (WebCore::LevelDBDatabase::get): Optional snapshot argument, for use by transactions.
17830         (WebCore::LevelDBDatabase::createIterator): Ditto.
17831         * platform/leveldb/LevelDBDatabase.h:
17832         (leveldb):
17833         (WebCore):
17834         (LevelDBSnapshot):
17835         (LevelDBDatabase):
17836         * platform/leveldb/LevelDBTransaction.cpp:
17837         (WebCore::LevelDBTransaction::LevelDBTransaction): Initialize a snapshot.
17838         (WebCore::LevelDBTransaction::get):
17839         (WebCore::LevelDBTransaction::TransactionIterator::TransactionIterator):
17840         * platform/leveldb/LevelDBTransaction.h:
17841         (LevelDBTransaction):
17842
17843 2012-11-08  Brady Eidson  <beidson@apple.com>
17844
17845         Have NetworkProcess do the actual loading of subresources.
17846         https://bugs.webkit.org/show_bug.cgi?id=101640
17847
17848         Reviewed by Alexey Proskuryakov.
17849
17850         No new tests (No change in behavior in any configuration we test.)
17851
17852         * WebCore.exp.in:
17853         * loader/ResourceBuffer.h: Virtualize a few methods for ports to override.
17854
17855 2012-11-08  Huang Dongsung  <luxtella@company100.net>
17856
17857         Coordinated Graphics: Remove an invisible TiledBackingStore of CoordinatedGraphicsLayer.
17858         https://bugs.webkit.org/show_bug.cgi?id=101424
17859
17860         Reviewed by Noam Rosenthal.
17861
17862         This patch adds ASSERT to TextureMapperLayer while fixing this bug in
17863         WebKit2.
17864
17865         * platform/graphics/texmap/TextureMapperLayer.cpp:
17866         (WebCore::TextureMapperLayer::paintSelf):
17867
17868 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
17869
17870         Unreviewed, rolling out r133945.
17871         http://trac.webkit.org/changeset/133945
17872         https://bugs.webkit.org/show_bug.cgi?id=101645
17873
17874         Numerous layout and unit test failures (Requested by
17875         jsbell|gardener on #webkit).
17876
17877         * bindings/scripts/CodeGeneratorV8.pm:
17878         (GenerateHeader):
17879         * bindings/scripts/test/V8/V8Float64Array.h:
17880         (WebCore::V8Float64Array::toNative):
17881         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
17882         (WebCore::V8TestActiveDOMObject::toNative):
17883         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
17884         (WebCore::V8TestCustomNamedGetter::toNative):
17885         * bindings/scripts/test/V8/V8TestEventConstructor.h:
17886         (WebCore::V8TestEventConstructor::toNative):
17887         * bindings/scripts/test/V8/V8TestEventTarget.h:
17888         (WebCore::V8TestEventTarget::toNative):
17889         * bindings/scripts/test/V8/V8TestException.h:
17890         (WebCore::V8TestException::toNative):
17891         * bindings/scripts/test/V8/V8TestInterface.h:
17892         (WebCore::V8TestInterface::toNative):
17893         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
17894         (WebCore::V8TestMediaQueryListListener::toNative):
17895         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
17896         (WebCore::V8TestNamedConstructor::toNative):
17897         * bindings/scripts/test/V8/V8TestNode.h:
17898         (WebCore::V8TestNode::toNative):
17899         * bindings/scripts/test/V8/V8TestObj.h:
17900         (WebCore::V8TestObj::toNative):
17901         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
17902         (WebCore::V8TestSerializedScriptValueInterface::toNative):
17903         * bindings/v8/NPV8Object.cpp:
17904         (WebCore::v8ObjectToNPObject):
17905         (WebCore::npCreateV8ScriptObject):
17906         * bindings/v8/V8Collection.h:
17907         (WebCore::toNativeCollection):
17908         * bindings/v8/V8DOMWindowShell.cpp:
17909         (WebCore::setIsolatedWorldField):
17910         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
17911         * bindings/v8/V8DOMWrapper.cpp:
17912         (WebCore::V8DOMWrapper::isWrapperOfType):
17913         * bindings/v8/V8DOMWrapper.h:
17914         (WebCore::V8DOMWrapper::setDOMWrapper):
17915         (WebCore::V8DOMWrapper::clearDOMWrapper):
17916         * bindings/v8/WrapperTypeInfo.h:
17917         (WebCore::toNative):
17918         (WebCore::toWrapperTypeInfo):
17919
17920 2012-11-01  Filip Pizlo  <fpizlo@apple.com>
17921
17922         JSC should infer when indexed storage contains only integers or doubles
17923         https://bugs.webkit.org/show_bug.cgi?id=98606
17924
17925         Reviewed by Oliver Hunt.
17926
17927         Just refactoring WebCore to pass 0 for the ArrayAllocationProfile*.
17928
17929         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
17930         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
17931         * bindings/js/JSClipboardCustom.cpp:
17932         (WebCore::JSClipboard::types):
17933         * bindings/js/JSDOMBinding.cpp:
17934         (WebCore::jsArray):
17935         * bindings/js/JSDOMBinding.h:
17936         (WebCore::jsArray):
17937         * bindings/js/JSInjectedScriptHostCustom.cpp:
17938         (WebCore::getJSListenerFunctions):
17939         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
17940         (WebCore::JSJavaScriptCallFrame::scopeChain):
17941         * bindings/js/JSMessageEventCustom.cpp:
17942         (WebCore::JSMessageEvent::ports):
17943         * bindings/js/JSMutationCallbackCustom.cpp:
17944         (WebCore::JSMutationCallback::handleEvent):
17945         * bindings/js/JSWebGLRenderingContextCustom.cpp:
17946         (WebCore::toJS):
17947         (WebCore::JSWebGLRenderingContext::getAttachedShaders):
17948         (WebCore::JSWebGLRenderingContext::getSupportedExtensions):
17949         * bindings/js/SerializedScriptValue.cpp:
17950         (WebCore::CloneDeserializer::deserialize):
17951
17952 2012-11-08  Tiancheng Jiang  <tijiang@rim.com>
17953
17954         [BlackBerry] Update BB10 date input form.
17955         https://bugs.webkit.org/show_bug.cgi?id=101075
17956
17957         Reviewed by Rob Buis.
17958
17959         RIM PR 234531
17960         Internally Reviewed by Mike Fenton.
17961         Change date input appearance to button and hide caret when click on them.
17962
17963         * css/themeBlackBerry.css:
17964         (input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="month"]):
17965
17966 2012-11-08  Adam Barth  <abarth@webkit.org>
17967
17968         [V8] Update callers to use the aligned pointer API rather than the deprecated unaligned pointer API
17969         https://bugs.webkit.org/show_bug.cgi?id=101519
17970
17971         Reviewed by Ojan Vafai.
17972
17973         There should be no change in behavior.  The new API is slightly faster
17974         than the old API (and apparently works correctly internally in V8).
17975
17976         * bindings/scripts/CodeGeneratorV8.pm:
17977         (GenerateHeader):
17978         * bindings/scripts/test/V8/V8Float64Array.h:
17979         (WebCore::V8Float64Array::toNative):
17980         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
17981         (WebCore::V8TestActiveDOMObject::toNative):
17982         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
17983         (WebCore::V8TestCustomNamedGetter::toNative):
17984         * bindings/scripts/test/V8/V8TestEventConstructor.h:
17985         (WebCore::V8TestEventConstructor::toNative):
17986         * bindings/scripts/test/V8/V8TestEventTarget.h:
17987         (WebCore::V8TestEventTarget::toNative):
17988         * bindings/scripts/test/V8/V8TestException.h:
17989         (WebCore::V8TestException::toNative):
17990         * bindings/scripts/test/V8/V8TestInterface.h:
17991         (WebCore::V8TestInterface::toNative):
17992         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
17993         (WebCore::V8TestMediaQueryListListener::toNative):
17994         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
17995         (WebCore::V8TestNamedConstructor::toNative):
17996         * bindings/scripts/test/V8/V8TestNode.h:
17997         (WebCore::V8TestNode::toNative):
17998         * bindings/scripts/test/V8/V8TestObj.h:
17999         (WebCore::V8TestObj::toNative):
18000         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
18001         (WebCore::V8TestSerializedScriptValueInterface::toNative):
18002         * bindings/v8/NPV8Object.cpp:
18003         (WebCore::v8ObjectToNPObject):
18004         (WebCore::npCreateV8ScriptObject):
18005         * bindings/v8/V8Collection.h:
18006         (WebCore::toNativeCollection):
18007         * bindings/v8/V8DOMWindowShell.cpp:
18008         (WebCore::setIsolatedWorldField):
18009         (WebCore::V8DOMWindowShell::enteredIsolatedWorldContext):
18010         * bindings/v8/V8DOMWrapper.cpp:
18011         (WebCore::V8DOMWrapper::isWrapperOfType):
18012         * bindings/v8/V8DOMWrapper.h:
18013         (WebCore::V8DOMWrapper::setDOMWrapper):
18014         (WebCore::V8DOMWrapper::clearDOMWrapper):
18015         * bindings/v8/WrapperTypeInfo.h:
18016         (WebCore::toNative):
18017         (WebCore::toWrapperTypeInfo):
18018
18019 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18020
18021         setAttributeNode and friends should not have optional argument
18022         https://bugs.webkit.org/show_bug.cgi?id=101631
18023
18024         Reviewed by Ojan Vafai.
18025
18026         http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-887236154
18027
18028         Fix getAttributeNode, getAttributeNodeNS and removeAttributeNode to make the Attr
18029         argument mandatory.
18030
18031         These used to throw DOMExceptions when an invalid type was passed instead of
18032         TypeError which is also a spec violation.
18033
18034         Updated existing tests.
18035
18036         * bindings/scripts/CodeGeneratorV8.pm:
18037         * dom/Element.cpp:
18038         * dom/Element.idl:
18039
18040 2012-11-08  Joshua Bell  <jsbell@chromium.org>
18041
18042         IndexedDB: Remove unused error handling clauses when writing to transaction
18043         https://bugs.webkit.org/show_bug.cgi?id=100700
18044
18045         Reviewed by Tony Chang.
18046
18047         Transactions are written into in-memory data structures. This can only fail if allocation
18048         fails, so "success" results are always returned. Change the return types to void, and delete
18049         all of the unreachable error handling code.
18050
18051         No new tests - just refactoring/dead code removal.
18052
18053         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
18054         (WebCore::putBool): Only write to transactions.
18055         (WebCore):
18056         (WebCore::putInt): Ditto.
18057         (WebCore::putVarInt): Ditto.
18058         (WebCore::putString): Ditto.
18059         (WebCore::putIDBKeyPath): Ditto.
18060         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
18061         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
18062         (WebCore::deleteRange): Writes only to transaction, so can't fail.
18063         (WebCore::setMaxObjectStoreId):
18064         (WebCore::IDBLevelDBBackingStore::createObjectStore):
18065         (WebCore::getNewVersionNumber):
18066         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
18067         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
18068         (WebCore::setMaxIndexId):
18069         (WebCore::IDBLevelDBBackingStore::createIndex):
18070         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18071         * platform/leveldb/LevelDBTransaction.cpp:
18072         (WebCore::LevelDBTransaction::set): Return type is void.
18073         (WebCore::LevelDBTransaction::put): Ditto.
18074         (WebCore::LevelDBTransaction::remove): Ditto.
18075         * platform/leveldb/LevelDBTransaction.h:
18076         (LevelDBTransaction):
18077
18078 2012-11-08  Ryosuke Niwa  <rniwa@webkit.org>
18079
18080         On Chromium, click-after-nested-block.html, focus_editable_html.html, and autoscroll.html
18081         hit assertion added in r133840
18082         https://bugs.webkit.org/show_bug.cgi?id=101576
18083
18084         Reviewed by Abhishek Arya.
18085
18086         Update layout before invalidating caret rect as needed.
18087         Existing tests cover this.
18088
18089         * editing/FrameSelection.cpp:
18090         (WebCore::FrameSelection::setCaretVisibility): Merged clearCaretRectIfNeeded.
18091         * editing/FrameSelection.h:
18092
18093 2012-11-08  Elliott Sprehn  <esprehn@chromium.org>
18094
18095         Skip frame owner disconnect when there's no frames
18096         https://bugs.webkit.org/show_bug.cgi?id=101619
18097
18098         Reviewed by Ojan Vafai.
18099
18100         Even when there's no subframes in the document we traverse down every
18101         subtree on Node removal looking for frames to disconnect. This patch
18102         checks document()->frame()->tree()->firstChild() to skip this traversal
18103         if there's no subframes.
18104
18105         No new tests, this just short circuits code for speed.
18106
18107         * dom/ContainerNodeAlgorithms.h:
18108         (WebCore::ChildFrameDisconnector::ChildFrameDisconnector):
18109
18110 2012-11-08  Erik Arvidsson  <arv@chromium.org>
18111
18112         Wrong error type is thrown for type errors in callbacks
18113         https://bugs.webkit.org/show_bug.cgi?id=101502
18114
18115         Reviewed by Adam Barth.
18116
18117         We should be throwing a TypeError and not a DOMException with code TYPE_MISMATCH_ERR.
18118
18119         http://www.w3.org/TR/WebIDL/#es-callback-function
18120
18121         Updated existing tests.
18122
18123         * bindings/scripts/CodeGeneratorJS.pm:
18124         * bindings/scripts/CodeGeneratorV8.pm:
18125         * bindings/scripts/test/JS/JSTestObj.cpp:
18126         * bindings/scripts/test/V8/V8TestObj.cpp:
18127
18128 2012-11-08  Andreas Kling  <kling@webkit.org>
18129
18130         4.68MB below RenderStyle::filter() on Membuster3.
18131         <http://webkit.org/b/101624>
18132         <rdar://problem/12663822>
18133
18134         Reviewed by Darin Adler.
18135
18136         Rename the non-const RenderStyle::filter() to mutableFilter() since using it causes us to detach
18137         from the rare non-inherited data (copy-on-write.)
18138         Most call sites were calling filter() on a RenderStyle* which was causing the bloat.
18139
18140         4.68MB progression on Membuster3.
18141
18142         * css/StyleResolver.cpp:
18143         (WebCore::StyleResolver::loadPendingSVGDocuments):
18144         (WebCore::StyleResolver::loadPendingShaders):
18145         * rendering/style/RenderStyle.h:
18146
18147 2012-11-08  Alexey Proskuryakov  <ap@apple.com>
18148
18149         Create loader/blackberry directory, because svn-apply cannot apply a patch that
18150         creates a directory and moves a file into it.
18151
18152         * loader/blackberry: Added.
18153
18154 2012-11-08  Geoffrey Garen  <ggaren@apple.com>
18155
18156         Mac build fix: Mark WidthCache.h 'private' so WebKit can use it.
18157
18158         Not reviewed.
18159
18160         * WebCore.xcodeproj/project.pbxproj:
18161
18162 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
18163
18164         Optimized kerning and ligatures using caching
18165         https://bugs.webkit.org/show_bug.cgi?id=101269
18166
18167         Reviewed by Dan Bernstein.
18168
18169         Consider three kinds of text layout, and the value of caching for each:
18170
18171             (1) 1 layout of 100% unique words: small negative value.
18172
18173             (2) 1 layout of English prose: medium positive value.
18174
18175             (3) Many layouts of anything: extra-extra-large positive value.
18176
18177         Since we can't distinguish betwen these workflows a priori, we use statistical
18178         sampling. To minimize cost in (1) and maximize benefit in (2) and (3), we treat
18179         each cache access as a statistical sample, and use the cache in proportion to
18180         the observed probability of duplicate text measurement.
18181
18182         Benchmark results:
18183             plt3: 1% faster
18184             chapter-reflow-once-random: No change [*]
18185             chapter-reflow-once: 23% faster
18186             chapter-reflow-twice: 52% faster
18187             chapter-reflow-thrice: 68% faster
18188             chapter-reflow: 263% faster
18189             line-layout: 270% faster
18190
18191             [*] This is a stress test designed to make everything go wrong for
18192             caching. It does not represent real world content.
18193
18194         * GNUmakefile.list.am:
18195         * Target.pri:
18196         * WebCore.vcproj/WebCore.vcproj:
18197         * WebCore.xcodeproj/project.pbxproj:
18198         * platform/graphics/WidthCache.h: Added.
18199
18200         (WidthCache): Added a class that caches common word widths. This cache
18201         could cache more things or more cases in future -- but for now it seems
18202         to cover the common cases.
18203
18204         (SmallStringKey): Early profiling showed that allocating an AtomicString
18205         or String measurably added to the cost of the cache, so I added a custom
18206         string key that can be stored directly inside the table by value --
18207         empirically answering an age-old question with which Apple WebKit engineers
18208         seem to be obsessed.
18209
18210         (WebCore::WidthCache::SmallStringKey::capacity):
18211         (WebCore::WidthCache::SmallStringKey::SmallStringKey):
18212         (WebCore::WidthCache::SmallStringKey::characters):
18213         (WebCore::WidthCache::SmallStringKey::length):
18214         (WebCore::WidthCache::SmallStringKey::hash):
18215         (WebCore::WidthCache::SmallStringKey::isHashTableDeletedValue):
18216         (WebCore::WidthCache::SmallStringKey::isHashTableEmptyValue):
18217         (WebCore::WidthCache::SmallStringKeyHash::hash):
18218         (WebCore::WidthCache::SmallStringKeyHash::equal):
18219         (SmallStringKeyHash):
18220         (SmallStringKeyHashTraits):
18221         (WebCore::WidthCache::SmallStringKeyHashTraits::isEmptyValue): Ditto.
18222
18223         (WebCore::WidthCache::WidthCache):
18224         (WebCore::WidthCache::add): Separate out the "don't use the cache" case
18225         so the compiler can inline it separate, hopefully further reducing cases
18226         of (1).
18227
18228         (WebCore::WidthCache::addSlowCase): There's a little subtlety to the
18229         sampling policy here. Lots of different approaches are possible, and I
18230         just picked a simple one that seemed to work based on benchmarking. I'll
18231         point out some interesting sublteties I'm aware of here:
18232
18233             (*) Since we start at the min sampling rate, a font used for 20 words
18234             or fewer never allocates a cache. Anecdotally, some fonts seem to
18235             be used this way.
18236
18237             (*) When the sampling rate is x / y, sampling all x words in a row
18238             seems smart because some words may occur more commonly in relation to
18239             each other (such as 'each' and 'other'), and repeat workloads will
18240             lay out the same words in order. Intuitively, these are both reasons
18241             this policy may ramp up more effectively under load.
18242
18243             (*) I opted for linear back-off instead of, say, exponential back-off
18244             because we're not trying to back off to infinity -- just to our min
18245             sampling rate. Since we don't expect the cache to hit for every word,
18246             my guess is that exponential back-off would be too aggressive.
18247
18248             (*) Our "eviction" policy has an IQ of 1. I expect this is sufficient
18249             because it would be surprising to see a million unique words all used
18250             in the same document. (I would not like to play a Letterpress game
18251             against such a document.)
18252
18253         (WebCore::WidthCache::clear): Needed because a font can change, in which
18254         case we need to ditch its cache.
18255
18256         (WebCore::operator==): Needed for hashing.
18257
18258 2012-11-08  Andrey Kosyakov  <caseq@chromium.org>
18259
18260         Web Inspector: show statistics over selected frame range in Timeline's Frame mode
18261         https://bugs.webkit.org/show_bug.cgi?id=101593
18262
18263         Reviewed by Pavel Feldman.
18264
18265         - change status bar records counter wording to "N of M frames|records shown" depending on mode;
18266         - append average frame length and & stddev in frame mode;
18267         - expand the above to a popover that includes frame count, range duration and min/avg/max/stddev on frame length;
18268         - show frame bars & dividers iff selection range includes < 30 frames (drive-by)
18269
18270         * English.lproj/localizedStrings.js:
18271         * inspector/front-end/TimelineFrameController.js:
18272         (WebInspector.FrameStatistics):
18273         * inspector/front-end/TimelineModel.js:
18274         (WebInspector.TimelineModel.aggregateTimeByCategory):
18275         * inspector/front-end/TimelinePanel.js:
18276         (WebInspector.TimelinePanel.prototype.get statusBarItems):
18277         (WebInspector.TimelinePanel.prototype._createStatusBarItems.getAnchor):
18278         (WebInspector.TimelinePanel.prototype._createStatusBarItems):
18279         (WebInspector.TimelinePanel.prototype._updateRecordsCounter):
18280         (WebInspector.TimelinePanel.prototype._updateFrameStatistics):
18281         (WebInspector.TimelinePanel.prototype._showFrameStatistics):
18282         (WebInspector.TimelinePanel.prototype._updateFrameBars):
18283         (WebInspector.TimelinePanel.prototype._overviewModeChanged.set if):
18284         (WebInspector.TimelinePanel.prototype._overviewModeChanged):
18285         (WebInspector.TimelinePanel.prototype._refresh):
18286         * inspector/front-end/TimelinePresentationModel.js:
18287         (WebInspector.TimelinePresentationModel.prototype.):
18288         (WebInspector.TimelinePresentationModel.prototype.compareEndTime):
18289         (WebInspector.TimelinePresentationModel.prototype.filteredFrames):
18290         (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
18291         * inspector/front-end/timelinePanel.css:
18292         (.timeline-records-stats, .storage-application-cache-status, .storage-application-cache-connectivity):
18293         (.timeline-records-stats):
18294         (.timeline-frames-stats):
18295
18296 2012-11-08  Jakob Petsovits  <jpetsovits@rim.com>
18297
18298         [BlackBerry] Rework the API to use document coordinates
18299         https://bugs.webkit.org/show_bug.cgi?id=101608
18300         RIM PR 173292
18301
18302         Reviewed by Adam Treat.
18303
18304         Provide a better API for WebPage to relay.
18305         See Source/WebKit/blackberry/ChangeLog for details.
18306
18307         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
18308         (WebCore::MediaPlayerPrivate::getWindowScreenRect):
18309         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
18310         (Platform):
18311         (BlackBerry):
18312         (MediaPlayerPrivate):
18313
18314 2012-11-08  Sheriff Bot  <webkit.review.bot@gmail.com>
18315
18316         Unreviewed, rolling out r133892.
18317         http://trac.webkit.org/changeset/133892
18318         https://bugs.webkit.org/show_bug.cgi?id=101617
18319
18320         Compile failures on mac, android, linux (Requested by
18321         jsbell|gardener on #webkit).
18322
18323         * bindings/v8/DOMDataStore.cpp:
18324         (WebCore::DOMDataStore::current):
18325         * bindings/v8/DOMWrapperWorld.h:
18326         (WebCore::DOMWrapperWorld::domDataStore):
18327         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18328         * bindings/v8/V8DOMWrapper.h:
18329         (WebCore::V8DOMWrapper::getCachedWrapper):
18330
18331 2012-11-08  Andrey Adaikin  <aandrey@chromium.org>
18332
18333         Web Inspector: [Canvas] UI iterations: image on the top, auto replay
18334         https://bugs.webkit.org/show_bug.cgi?id=101584
18335
18336         Reviewed by Pavel Feldman.
18337
18338         * inspector/front-end/CanvasProfileView.js:
18339         (WebInspector.CanvasProfileView):
18340         (WebInspector.CanvasProfileView.prototype._showTraceLog):
18341         (WebInspector.CanvasProfileView.prototype._onTraceLogItemClick):
18342         (WebInspector.CanvasProfileView.prototype._replayTraceLog.didReplayTraceLog):
18343         (WebInspector.CanvasProfileView.prototype._replayTraceLog):
18344         * inspector/front-end/canvasProfiler.css:
18345         (.canvas-trace-log):
18346         (#canvas-replay-image-container):
18347         (#canvas-replay-image):
18348
18349 2012-11-08  Wei Fanzhe  <whyer1@gmail.com>
18350
18351         While absolute positioning is put before the first flexitem, flexitems will move to a new line.
18352         https://bugs.webkit.org/show_bug.cgi?id=101294
18353
18354         Reviewed by Ojan Vafai.
18355
18356         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.  
18357
18358         * rendering/RenderFlexibleBox.cpp:
18359         (WebCore::RenderFlexibleBox::computeNextFlexLine):
18360
18361 2012-11-08  Dimitri Glazkov  <dglazkov@chromium.org>
18362
18363         Unreviewed, rolling out r133429.
18364         http://trac.webkit.org/changeset/133429
18365         https://bugs.webkit.org/show_bug.cgi?id=101173
18366
18367         Speculative roll out, investigating perf regression.
18368
18369         * dom/ContextFeatures.cpp:
18370         * dom/ContextFeatures.h:
18371         * dom/Position.cpp:
18372         (WebCore::Position::Position):
18373         (WebCore::Position::findParent):
18374         * dom/TreeScope.cpp:
18375         (WebCore::TreeScope::getSelection):
18376         * html/HTMLTagNames.in:
18377         * html/shadow/HTMLContentElement.cpp:
18378         (WebCore::HTMLContentElement::contentTagName):
18379         * page/DOMWindow.idl:
18380
18381 2012-11-07  Emil A Eklund  <eae@chromium.org>
18382
18383         Fix enclosingLayoutRect calls in InlineFlowBox.h
18384         https://bugs.webkit.org/show_bug.cgi?id=101497
18385
18386         Reviewed by Levi Weintraub.
18387
18388         InlineFlowBox.h used to include LayoutTypesInlineMethods.h which
18389         overrid enclosingLayoutRect to call closingIntRect. When we
18390         removed the LayoutTypes abstraction we switched these to
18391         enclosingIntRect to preserve the behavior.
18392         This patch changes these back to enclosingLayoutRect which is
18393         the desired behavior.
18394
18395         Covered by existing tests.
18396
18397         * rendering/InlineFlowBox.h:
18398         (WebCore::InlineFlowBox::layoutOverflowRect):
18399         (WebCore::InlineFlowBox::visualOverflowRect):
18400
18401 2012-11-08  Philip Rogers  <pdr@google.com>
18402
18403         Remove unnecessary save/restore in SVGTextRunRenderingContext
18404         https://bugs.webkit.org/show_bug.cgi?id=101546
18405
18406         Reviewed by Andreas Kling.
18407
18408         This patch removes an unnecessary context save/restore SVGTextRunRenderingContext by
18409         refactoring the code to save off the stroke thickness.
18410
18411         No new tests as this is heavily covered by existing tests.
18412
18413         * rendering/svg/SVGTextRunRenderingContext.cpp:
18414         (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
18415
18416 2012-11-08  Carlos Garcia Campos  <cgarcia@igalia.com>
18417
18418         [GTK] Clean up includes in GObject DOM bindings code
18419         https://bugs.webkit.org/show_bug.cgi?id=101077
18420
18421         Reviewed by Kentaro Hara.
18422
18423         Remove some headers included multiple times for the same file and
18424         fix consistency in the includes style.
18425
18426         * bindings/gobject/DOMObjectCache.cpp:
18427         * bindings/gobject/GObjectEventListener.cpp:
18428         * bindings/gobject/GObjectEventListener.h:
18429         * bindings/gobject/WebKitDOMBinding.cpp:
18430         * bindings/gobject/WebKitDOMBinding.h:
18431         * bindings/gobject/WebKitDOMEventTarget.cpp:
18432         * bindings/gobject/WebKitDOMEventTarget.h:
18433         * bindings/gobject/WebKitDOMEventTargetPrivate.h:
18434         (WebKit):
18435         * bindings/gobject/WebKitDOMObject.cpp:
18436         * bindings/gobject/WebKitDOMObject.h:
18437         * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
18438         * bindings/gobject/WebKitHTMLElementWrapperFactory.h:
18439         * bindings/scripts/CodeGeneratorGObject.pm:
18440         (GenerateHeader):
18441         (GenerateFunction):
18442         (Generate):
18443         (WriteData):
18444         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
18445         * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
18446         * bindings/scripts/test/GObject/WebKitDOMFloat64ArrayPrivate.h:
18447         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
18448         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
18449         * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObjectPrivate.h:
18450         * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
18451         * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
18452         * bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
18453         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
18454         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
18455         * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetterPrivate.h:
18456         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
18457         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
18458         * bindings/scripts/test/GObject/WebKitDOMTestEventConstructorPrivate.h:
18459         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
18460         * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
18461         * bindings/scripts/test/GObject/WebKitDOMTestEventTargetPrivate.h:
18462         * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
18463         * bindings/scripts/test/GObject/WebKitDOMTestException.h:
18464         * bindings/scripts/test/GObject/WebKitDOMTestExceptionPrivate.h:
18465         * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
18466         * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
18467         * bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
18468         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
18469         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
18470         * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListenerPrivate.h:
18471         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
18472         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
18473         * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructorPrivate.h:
18474         * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
18475         * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
18476         * bindings/scripts/test/GObject/WebKitDOMTestNodePrivate.h:
18477         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
18478         * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
18479         * bindings/scripts/test/GObject/WebKitDOMTestObjPrivate.h:
18480         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
18481         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
18482         * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterfacePrivate.h:
18483
18484 2012-11-08  Dan Carney  <dcarney@google.com>
18485
18486         [V8] Main world should have one DOMDataStore
18487         https://bugs.webkit.org/show_bug.cgi?id=101470
18488
18489         Reviewed by Kentaro Hara.
18490
18491         The main world DOMWrapperWorld held onto a DOMDataStore that should
18492         never be used, as there is a static one optimized for speed in
18493         DOMDataStore.
18494
18495         No new tests. No change in functionality.
18496
18497         * bindings/v8/DOMDataStore.cpp:
18498         (WebCore::DOMDataStore::current):
18499         * bindings/v8/DOMWrapperWorld.h:
18500         (WebCore::DOMWrapperWorld::isolatedWorldDomDataStore):
18501         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
18502         * bindings/v8/V8DOMWrapper.h:
18503         (WebCore::V8DOMWrapper::getCachedWrapper):
18504
18505 2012-11-08  Laszlo Gombos  <l.gombos@samsung.com>
18506
18507         [EFL] Remove non-variable options from the build system
18508         https://bugs.webkit.org/show_bug.cgi?id=101506
18509
18510         Reviewed by Kenneth Rohde Christiansen.
18511
18512         Remove WTF_USE_ICU_UNICODE, WTF_USE_CAIRO and WTF_USE_FREETYPE cmake variables
18513         as these are always set to const 1 and not really configurable.
18514
18515         Remove duplicate platform/graphics/cairo include path from
18516         PlatformEfl.cmake.
18517
18518         No new tests as there is no new functionality.
18519
18520         * PlatformEfl.cmake:
18521
18522 2012-11-08  KyungTae Kim  <ktf.kim@samsung.com>
18523
18524         Unused parameters on GraphicsLayerUpdater.cpp
18525         https://bugs.webkit.org/show_bug.cgi?id=101577
18526
18527         Reviewed by Kentaro Hara.
18528
18529         The parameter 'displayID' is not used when !USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR)
18530         Use UNUSED_PARAM macro for removing -Wunused-parameter warnings
18531
18532         * platform/graphics/GraphicsLayerUpdater.cpp:
18533         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
18534         (WebCore::GraphicsLayerUpdater::screenDidChange):
18535
18536 2012-11-08  Alexander Pavlov  <apavlov@chromium.org>
18537
18538         Web Inspector: Add option to disable rulers (Elements panel)
18539         https://bugs.webkit.org/show_bug.cgi?id=101554
18540
18541         Reviewed by Pavel Feldman.
18542
18543         A new setting, showMetricsRulers, has been introduced (off by default, so users need to opt in to see the rulers).
18544         The setting value is passed into InspectorDOMAgent, down to the InspectorOverlayPage, which affects the drawGrid() and
18545         drawRulers() calls. As a side effect, the issue when the rulers were painted for elements having no renderers has been fixed.
18546
18547         No new tests, a UI change.
18548
18549         * English.lproj/localizedStrings.js: Add "Show rulers" string.
18550         * inspector/InspectorDOMAgent.cpp:
18551         (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject): Copy over the showRulers value.
18552         * inspector/InspectorOverlay.cpp:
18553         (WebCore::buildObjectForHighlight): Copy over the showRulers value.
18554         * inspector/InspectorOverlay.h:
18555         (HighlightConfig): Add |bool showRulers|.
18556         (WebCore::Highlight::Highlight): Initialize fields.
18557         (Highlight): Add |bool showRulers|.
18558         (WebCore::Highlight::setDataFromConfig):
18559         * inspector/InspectorOverlayPage.html:
18560         * inspector/front-end/DOMAgent.js: Make use of WebInspector.settings.showMetricsRulers when building the highlight DTO.
18561         * inspector/front-end/Settings.js: Add showMetricsRulers.
18562         * inspector/front-end/SettingsScreen.js:
18563         (WebInspector.GenericSettingsTab): Add "Show rulers" checkbox in the Elements panel section.
18564
18565 2012-11-08  Alexander Shalamov  <alexander.shalamov@intel.com>
18566
18567         Warn in the inspector console when using dpi and dpcm units outside of media="print"
18568         https://bugs.webkit.org/show_bug.cgi?id=100865
18569
18570         Reviewed by Kenneth Rohde Christiansen.
18571
18572         Added function that prints warning to inspector console whenever dpi or dpcm CSS units
18573         are used for screen media.
18574
18575         Test: fast/media/mq-resolution-dpi-dpcm-warning.html
18576
18577         * css/CSSStyleSheet.cpp:
18578         (WebCore::CSSStyleSheet::setMediaQueries):
18579         * css/MediaList.cpp:
18580         (WebCore):
18581         (WebCore::addResolutionWarningMessageToConsole):
18582         (WebCore::reportMediaQueryWarningIfNeeded):
18583         * css/MediaList.h:
18584         (WebCore):
18585         * css/MediaQueryMatcher.cpp:
18586         (WebCore::MediaQueryMatcher::matchMedia):
18587         * css/StyleSheetContents.cpp:
18588         (WebCore::StyleSheetContents::parserAppendRule):
18589
18590 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18591
18592         Web Inspector: Console: "time" and "timeEnd" should have same number of required arguments
18593         https://bugs.webkit.org/show_bug.cgi?id=101451
18594
18595         Reviewed by Yury Semikhatsky.
18596
18597         Solution: make console.time "title" parameter mandatory.
18598
18599         * page/Console.idl: Changed parameter specification.
18600
18601 2012-11-08  Vsevolod Vlasov  <vsevik@chromium.org>
18602
18603         Unreviewed fixed inspector frontend compilation
18604
18605         * inspector/front-end/DataGrid.js:
18606
18607 2012-11-08  Zeno Albisser  <zeno@webkit.org>
18608
18609         GraphicsSurfaceGLX needs to query the drawable for YInversion.
18610         https://bugs.webkit.org/show_bug.cgi?id=101472
18611
18612         After r133049 the WebGL content is now displayed upside down
18613         for the Qt port. We cannot just apply a generic rule, that
18614         the content needs to be flipped upside down.
18615         Instead we have to query GLX to tell us, if the drawable's
18616         framebuffer is y-inverted.
18617
18618         Reviewed by Kenneth Rohde Christiansen.
18619
18620         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
18621         (WebCore::GraphicsSurfacePrivate::textureIsYInverted):
18622         (GraphicsSurfacePrivate):
18623         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
18624
18625 2012-11-08  Mike West  <mkwst@chromium.org>
18626
18627         Warn when parsing an invalid X-Frame-Options header.
18628         https://bugs.webkit.org/show_bug.cgi?id=101447
18629
18630         Reviewed by Adam Barth.
18631
18632         An 'X-Frame-Options' header that contains an invalid option (that is,
18633         neither 'DENY' nor 'SAMEORIGIN') is ignored. This patch adds a console
18634         warning to notify developers that they've made a mistake.
18635
18636         Test: http/tests/security/XFrameOptions/x-frame-options-invalid.html
18637
18638         * dom/Document.cpp:
18639         (WebCore::Document::processHttpEquiv):
18640             Move the request identifier generation out of the failure block in
18641             order to pass it into 'shouldInterruptLoadForXFrameOptions'. This
18642             ensures that the console message is properly tied to a request.
18643         * loader/FrameLoader.cpp:
18644         (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
18645         * loader/FrameLoader.h:
18646         (FrameLoader):
18647             'shouldInterruptLoadForXFrameOptions' now accepts a request
18648             identifier as a parameter, and generates a console message if the
18649             load is blocked.
18650         * loader/MainResourceLoader.cpp:
18651         (WebCore::MainResourceLoader::didReceiveResponse):
18652             Pass the request identifier into 'shouldInterruptLoadForXFrameOptions'.
18653
18654 2012-11-08  Eugene Klyuchnikov  <eustas.bug@gmail.com>
18655
18656         Web Inspector: Timeline: Improve time/timeEnd appearance.
18657         https://bugs.webkit.org/show_bug.cgi?id=100936
18658
18659         Reviewed by Yury Semikhatsky.
18660
18661         Changes:
18662         - time/timeEnd records should be top level records only in "glue" mode
18663         - time/timeEnd records should display "message" in record list / popover
18664         - glued records add aggregated statistics to root record
18665         - glued records do not reduce their origin self time
18666
18667         Test: inspector/timeline/timeline-time.html
18668
18669         * English.lproj/localizedStrings.js: Added "Message" string.
18670         * inspector/front-end/TimelinePresentationModel.js:
18671         (WebInspector.TimelinePresentationModel.Record): Added "origin" field.
18672
18673 2012-11-08  Yury Semikhatsky  <yurys@chromium.org>
18674
18675         Web Inspector: move front-end methods called from native part to InspectorFrontendAPI
18676         https://bugs.webkit.org/show_bug.cgi?id=101463
18677
18678         Reviewed by Vsevolod Vlasov.
18679
18680         Moved Web Inspector methods called from native code to InspectorFrontendAPI.
18681
18682         * inspector/InspectorClient.cpp:
18683         (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
18684         * inspector/InspectorFrontendHost.cpp:
18685         (WebCore::FrontendMenuProvider::create):
18686         (WebCore::FrontendMenuProvider::disconnect):
18687         (WebCore::FrontendMenuProvider::FrontendMenuProvider):
18688         (WebCore::FrontendMenuProvider::contextMenuItemSelected):
18689         (WebCore::FrontendMenuProvider::contextMenuCleared):
18690         (FrontendMenuProvider):
18691         (WebCore::InspectorFrontendHost::showContextMenu):
18692         * inspector/front-end/InspectorFrontendAPI.js:
18693         (InspectorFrontendAPI.loadCompleted):
18694         (InspectorFrontendAPI.contextMenuItemSelected):
18695         (InspectorFrontendAPI.contextMenuCleared):
18696         (InspectorFrontendAPI.dispatchMessageAsync):
18697         (InspectorFrontendAPI.dispatchMessage):
18698         * inspector/front-end/inspector.js:
18699
18700 2012-11-08  Kunihiko Sakamoto  <ksakamoto@chromium.org>
18701
18702         User can change a disabled select (drop down box)
18703         https://bugs.webkit.org/show_bug.cgi?id=100932
18704
18705         Reviewed by Kent Tamura.
18706
18707         <select> should not handle events if it's disabled.
18708
18709         Test: fast/forms/select/select-disabled.html
18710
18711         * html/HTMLSelectElement.cpp:
18712         (WebCore::HTMLSelectElement::defaultEventHandler):
18713
18714 2012-11-08  Alec Flett  <alecflett@chromium.org>
18715
18716         IndexedDB: Rename methods and remove dead code from IDBBackingStore
18717         https://bugs.webkit.org/show_bug.cgi?id=101488
18718
18719         Reviewed by Ojan Vafai.
18720
18721         In preparation for merging IDBBackingStore and IDBLevelDBBackingStore:
18722
18723         1) rename ObjectStoreRecordIdentifier to RecordIdentifier
18724         2) remove IDBBackingStore::forEachRecord and friends
18725         3) remove IDBBackingStore::Cursor::close, since it was an empty method.
18726
18727         No new tests as this is purely code cleanup.
18728
18729         * Modules/indexeddb/IDBBackingStore.cpp:
18730         (WebCore::IDBLevelDBBackingStore::getRecord):
18731         (WebCore):
18732         (WebCore::IDBLevelDBBackingStore::putRecord):
18733         (WebCore::IDBLevelDBBackingStore::createInvalidRecordIdentifier):
18734         (WebCore::IDBLevelDBBackingStore::deleteRecord):
18735         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
18736         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
18737         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
18738         * Modules/indexeddb/IDBBackingStore.h:
18739         (WebCore::IDBBackingStore::RecordIdentifier::~RecordIdentifier):
18740         (IDBBackingStore):
18741         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
18742         (WebCore::IDBCursorBackendImpl::close):
18743         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
18744         (WebCore::IDBIndexBackendImpl::countInternal):
18745         (WebCore::IDBIndexBackendImpl::getInternal):
18746         (WebCore::IDBIndexBackendImpl::getKeyInternal):
18747         * Modules/indexeddb/IDBLevelDBBackingStore.h:
18748         (IDBLevelDBBackingStore):
18749         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
18750         (WebCore::IDBObjectStoreBackendImpl::getInternal):
18751         (WebCore):
18752         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
18753         (WebCore::IDBObjectStoreBackendImpl::putInternal):
18754         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
18755         (WebCore::IDBObjectStoreBackendImpl::countInternal):
18756
18757 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18758
18759         Web Inspector: console error after inspecting IndexedDB
18760         https://bugs.webkit.org/show_bug.cgi?id=101481
18761
18762         Reviewed by Pavel Feldman.
18763
18764         Added objectId nullity check to RemoteOBject::release.
18765         Drive-by added release for entry key and primaryKey.
18766
18767         * inspector/front-end/IndexedDBViews.js:
18768         (WebInspector.IDBDataView.prototype.clear):
18769         * inspector/front-end/RemoteObject.js:
18770         (WebInspector.RemoteObject.prototype.release):
18771
18772 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18773
18774         Web Inspector: Migrate inspector IndexedDB support to frontend API.
18775         https://bugs.webkit.org/show_bug.cgi?id=101457
18776
18777         Reviewed by Pavel Feldman.
18778
18779         Migrated IndexedDB support to web facing IndexedDB API.
18780
18781         * inspector/Inspector.json:
18782         * inspector/InspectorIndexedDBAgent.cpp:
18783         (WebCore):
18784         (WebCore::assertIDBFactory):
18785         (WebCore::InspectorIndexedDBAgent::requestDatabaseNamesForFrame):
18786         (WebCore::InspectorIndexedDBAgent::requestDatabase):
18787         (WebCore::InspectorIndexedDBAgent::requestData):
18788         * inspector/front-end/IndexedDBModel.js:
18789         (WebInspector.IndexedDBModel.prototype.innerCallback):
18790         (WebInspector.IndexedDBModel.prototype._requestData):
18791         * inspector/front-end/IndexedDBViews.js:
18792         (WebInspector.IDBDataView.prototype._updateData.callback):
18793         (WebInspector.IDBDataView.prototype._updateData):
18794         (WebInspector.IDBDataGridNode):
18795         (WebInspector.IDBDataGridNode.prototype.createCell):
18796
18797 2012-08-20  Taiju Tsuiki  <tzik@chromium.org>
18798
18799         Web Inspector: Drop dimmed crumb handling
18800         https://bugs.webkit.org/show_bug.cgi?id=94457
18801
18802         Reviewed by Vsevolod Vlasov.
18803
18804         No new tests. Existing inspector test should work.
18805
18806         * inspector/front-end/ElementsPanel.js:
18807         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
18808         (WebInspector.ElementsPanel.prototype.updateBreadcrumbSizes):
18809         * inspector/front-end/breadcrumbList.css:
18810
18811 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
18812
18813         Web Inspector: Infinite loop in DataGrid::autoSizeColumn
18814         https://bugs.webkit.org/show_bug.cgi?id=101363
18815
18816         Reviewed by Pavel Feldman.
18817
18818         Test: inspector/datagrid-autosize.html
18819
18820         * inspector/front-end/DataGrid.js:
18821         (WebInspector.DataGrid.prototype._autoSizeWidths):
18822         (WebInspector.DataGrid.prototype.autoSizeColumns):
18823
18824 2012-11-07  Keishi Hattori  <keishi@webkit.org>
18825
18826         Implement week picking to calendar picker
18827         https://bugs.webkit.org/show_bug.cgi?id=101449
18828
18829         Reviewed by Kent Tamura.
18830
18831         This adds week picker mode to CalendarPicker.
18832
18833         No new tests. Tests will be added later when this feature is enabled in DRT.
18834
18835         * Resources/pagepopups/calendarPicker.css:
18836         (.month-mode .day):
18837         (.week-mode .available.day-selected.monday): Rounded corners around week selection.
18838         (.week-mode .available.day-selected.sunday): Ditto.
18839         (.week-mode .unavailable.day-selected):
18840         (.week-mode .unavailable.day-selected.monday):
18841         (.week-mode .unavailable.day-selected.sunday):
18842         (.week-mode .week-column.unavailable.day-selected):
18843         (.week-column): Hide week column unless in week mode.
18844         (.week-mode .week-column):
18845         * Resources/pagepopups/calendarPicker.js:
18846         (parseDateString): Support week string.
18847         (Week):
18848         (Week.parse): Parses "yyyy-Www" string.
18849         (Week.createFromDate): Creates Week containing datetime.
18850         (Week.createFromToday): Creates Week containing today.
18851         (Week.weekOneStartDateForYear): Returns the start date for the first week of year.
18852         (Week.numberOfWeeksInYear): Returns the number of weeks in year.
18853         (Week._numberOfWeeksSinceDate): Returns number of weeks since a date.
18854         (Week.prototype.equals): Returns true if the Weeks are the same.
18855         (Week.prototype.previous): Returns the previous Week.
18856         (Week.prototype.next): Returns the next Week.
18857         (Week.prototype.startDate): Returns start datetime of Week.
18858         (Week.prototype.endDate): Returns end datetime of Week.
18859         (Week.prototype.valueOf): Returns the milliseconds since epoch.
18860         (Week.prototype.toString): Returns ISO week string.
18861         (CalendarPicker): Add week picker mode.
18862         (CalendarPicker.prototype.showMonth): Use NavigationBehaviour instead of bools.
18863         (YearMonthController.prototype.attachTo): Fix bug.
18864         (YearMonthController.prototype.moveRelatively): Use new showMonth.
18865         (DaysTable.prototype.attachTo): Add week number column.
18866         (DaysTable.prototype._renderMonth): Render week numbers.
18867         (DaysTable.prototype.navigateToMonth): Render week numbers.
18868         (DaysTable.prototype.selectRange):
18869         (DaysTable.prototype._selectRangeAtPosition): Week number nodes have an positionX of -1.
18870         (DaysTable.prototype._maybeSetPreviousMonth):
18871         (DaysTable.prototype._maybeSetNextMonth):
18872         (MonthPickerDaysTable.prototype.selectRange):
18873         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange):
18874         (MonthPickerDaysTable.prototype._handleKey):
18875         (WeekPickerDaysTable): Added.
18876         (WeekPickerDaysTable.prototype._markRangeAsSelected): Marks week as selected.
18877         (WeekPickerDaysTable.prototype.selectRange): Selects week.
18878         (WeekPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects week and navigate to show entire selection.
18879         (WeekPickerDaysTable.prototype._rangeForNode): Returns Week for node.
18880         (WeekPickerDaysTable.prototype._handleKey):
18881
18882 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
18883
18884         Unreviewed, rolling out r133841.
18885         http://trac.webkit.org/changeset/133841
18886         https://bugs.webkit.org/show_bug.cgi?id=101542
18887
18888         Reverted patches were innocent (Requested by shinyak on
18889         #webkit).
18890
18891         * WebCore.exp.in:
18892         * dom/Element.cpp:
18893         (WebCore::Element::shadowPseudoId):
18894         * dom/Element.h:
18895         (Element):
18896         * dom/ElementRareData.cpp:
18897         (WebCore::ElementRareData::reportMemoryUsage):
18898         * dom/ElementRareData.h:
18899         (ElementRareData):
18900         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
18901         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
18902         * html/ColorInputType.cpp:
18903         (WebCore::ColorInputType::createShadowSubtree):
18904         * html/HTMLTextAreaElement.cpp:
18905         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
18906         * html/RangeInputType.cpp:
18907         (WebCore::RangeInputType::createShadowSubtree):
18908         * html/TextFieldInputType.cpp:
18909         (WebCore::TextFieldInputType::createShadowSubtree):
18910         (WebCore::TextFieldInputType::updatePlaceholderText):
18911         * html/ValidationMessage.cpp:
18912         (WebCore::ValidationMessage::buildBubbleTree):
18913         * html/shadow/DateTimeEditElement.cpp:
18914         (WebCore::DateTimeEditBuilder::visitLiteral):
18915         (WebCore::DateTimeEditElement::DateTimeEditElement):
18916         * html/shadow/DateTimeFieldElement.cpp:
18917         (WebCore::DateTimeFieldElement::initialize):
18918         * html/shadow/DateTimeFieldElement.h:
18919         (DateTimeFieldElement):
18920         * html/shadow/PickerIndicatorElement.cpp:
18921         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
18922         * html/track/TextTrackCue.cpp:
18923         (WebCore::TextTrackCueBox::TextTrackCueBox):
18924         (WebCore::TextTrackCue::updateDisplayTree):
18925         * testing/Internals.cpp:
18926         (WebCore::Internals::setShadowPseudoId):
18927
18928 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
18929
18930         Fix EFL build, which has accelerated compositing disabled, by making
18931         repaintViewRectangle() const.
18932
18933         * rendering/RenderView.cpp:
18934         (WebCore::RenderView::repaintViewRectangle):
18935         * rendering/RenderView.h:
18936         (RenderView):
18937
18938 2012-11-07  Simon Fraser  <simon.fraser@apple.com>
18939
18940         constify ALL the repaint containers
18941         https://bugs.webkit.org/show_bug.cgi?id=101541
18942
18943         Reviewed by Beth Dakin.
18944
18945         Make all the RenderLayerModelObject* repaintContainer arguments const, since
18946         these member functions should have no need to mutate this object.
18947
18948         * WebCore.exp.in:
18949         * rendering/RenderBR.h:
18950         * rendering/RenderBlock.cpp:
18951         (WebCore::RenderBlock::selectionGapRectsForRepaint):
18952         (WebCore::RenderBlock::rectWithOutlineForRepaint):
18953         * rendering/RenderBlock.h:
18954         * rendering/RenderBox.cpp:
18955         (WebCore::RenderBox::outlineBoundsForRepaint):
18956         (WebCore::RenderBox::mapLocalToContainer):
18957         (WebCore::RenderBox::clippedOverflowRectForRepaint):
18958         (WebCore::RenderBox::computeRectForRepaint):
18959         * rendering/RenderBox.h:
18960         * rendering/RenderFlowThread.cpp:
18961         (WebCore::RenderFlowThread::repaintRectangleInRegions): Need to use a const_iterator.
18962         * rendering/RenderFlowThread.h:
18963         * rendering/RenderInline.cpp:
18964         (WebCore::RenderInline::clippedOverflowRectForRepaint):
18965         (WebCore::RenderInline::rectWithOutlineForRepaint):
18966         (WebCore::RenderInline::computeRectForRepaint):
18967         (WebCore::RenderInline::mapLocalToContainer):
18968         * rendering/RenderInline.h:
18969         * rendering/RenderListMarker.cpp:
18970         (WebCore::RenderListMarker::selectionRectForRepaint):
18971         * rendering/RenderListMarker.h:
18972         * rendering/RenderObject.cpp:
18973         (WebCore::RenderObject::repaintUsingContainer):
18974         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
18975         (WebCore::RenderObject::rectWithOutlineForRepaint):
18976         (WebCore::RenderObject::clippedOverflowRectForRepaint):
18977         (WebCore::RenderObject::computeRectForRepaint):
18978         (WebCore::RenderObject::computeFloatRectForRepaint):
18979         (WebCore::RenderObject::mapLocalToContainer):
18980         (WebCore::RenderObject::localToContainerQuad):
18981         (WebCore::RenderObject::localToContainerPoint):
18982         * rendering/RenderObject.h:
18983         (WebCore::RenderObject::selectionRectForRepaint):
18984         (WebCore::RenderObject::outlineBoundsForRepaint):
18985         * rendering/RenderReplaced.cpp:
18986         (WebCore::RenderReplaced::selectionRectForRepaint):
18987         (WebCore::RenderReplaced::clippedOverflowRectForRepaint):
18988         * rendering/RenderReplaced.h:
18989         * rendering/RenderTableCell.cpp:
18990         (WebCore::RenderTableCell::clippedOverflowRectForRepaint):
18991         (WebCore::RenderTableCell::computeRectForRepaint):
18992         * rendering/RenderTableCell.h:
18993         * rendering/RenderTableCol.cpp:
18994         (WebCore::RenderTableCol::clippedOverflowRectForRepaint):
18995         * rendering/RenderTableCol.h:
18996         * rendering/RenderTableRow.cpp:
18997         (WebCore::RenderTableRow::clippedOverflowRectForRepaint):
18998         * rendering/RenderTableRow.h:
18999         * rendering/RenderText.cpp:
19000         (WebCore::RenderText::clippedOverflowRectForRepaint):
19001         (WebCore::RenderText::selectionRectForRepaint):
19002         * rendering/RenderText.h:
19003         * rendering/RenderView.cpp:
19004         (WebCore::RenderView::mapLocalToContainer):
19005         (WebCore::RenderView::computeRectForRepaint):
19006         * rendering/RenderView.h:
19007         * rendering/svg/RenderSVGForeignObject.cpp:
19008         (WebCore::RenderSVGForeignObject::clippedOverflowRectForRepaint):
19009         (WebCore::RenderSVGForeignObject::computeFloatRectForRepaint):
19010         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
19011         * rendering/svg/RenderSVGForeignObject.h:
19012         * rendering/svg/RenderSVGGradientStop.h:
19013         * rendering/svg/RenderSVGHiddenContainer.h:
19014         * rendering/svg/RenderSVGInline.cpp:
19015         (WebCore::RenderSVGInline::clippedOverflowRectForRepaint):
19016         (WebCore::RenderSVGInline::computeFloatRectForRepaint):
19017         (WebCore::RenderSVGInline::mapLocalToContainer):
19018         * rendering/svg/RenderSVGInline.h:
19019         * rendering/svg/RenderSVGModelObject.cpp:
19020         (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
19021         (WebCore::RenderSVGModelObject::computeFloatRectForRepaint):
19022         (WebCore::RenderSVGModelObject::mapLocalToContainer):
19023         (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
19024         * rendering/svg/RenderSVGModelObject.h:
19025         * rendering/svg/RenderSVGRoot.cpp:
19026         (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
19027         (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
19028         (WebCore::RenderSVGRoot::mapLocalToContainer):
19029         * rendering/svg/RenderSVGRoot.h:
19030         * rendering/svg/RenderSVGText.cpp:
19031         (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
19032         (WebCore::RenderSVGText::computeRectForRepaint):
19033         (WebCore::RenderSVGText::computeFloatRectForRepaint):
19034         (WebCore::RenderSVGText::mapLocalToContainer):
19035         * rendering/svg/RenderSVGText.h:
19036         * rendering/svg/SVGRenderSupport.cpp:
19037         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint):
19038         (WebCore::SVGRenderSupport::computeFloatRectForRepaint):
19039         (WebCore::SVGRenderSupport::mapLocalToContainer):
19040         * rendering/svg/SVGRenderSupport.h:
19041         (SVGRenderSupport):
19042
19043 2012-11-07  Kent Tamura  <tkent@chromium.org>
19044
19045         [Chromium-win] Refactor date/time format conversion code in LocaleWin
19046         https://bugs.webkit.org/show_bug.cgi?id=101329
19047
19048         Reviewed by Kentaro Hara.
19049
19050         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
19051         similar jobs with different code. We can merge them into one function.
19052
19053         As for the date format conversion, we have tokenized a format string and
19054         stored token objects into a vector. We skip token object generation and
19055         generate a LDML-compliant pattern string during parsing.
19056
19057         No new tests. This should make no behavior changes and
19058         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
19059
19060         * platform/text/win/LocaleWin.cpp:
19061         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
19062         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
19063         convertWindowsTimeFormatToLDML.
19064         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
19065         (WebCore::convertWindowsDateTimeFormat):
19066         Renamed from parseDateFormat, and supports time format symbols.
19067         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
19068         (WebCore::LocaleWin::monthFormat): Ditto.
19069         (WebCore::LocaleWin::timeFormat): Ditto.
19070         (WebCore::LocaleWin::shortTimeFormat): Ditto.
19071         * platform/text/win/LocaleWin.h:
19072         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
19073
19074 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
19075
19076         Unreviewed, rolling out r133428 and r133749
19077         https://bugs.webkit.org/show_bug.cgi?id=101533
19078
19079         These patches might cause memory regression.
19080
19081         * WebCore.exp.in:
19082         * dom/Element.cpp:
19083         (WebCore::Element::shadowPseudoId):
19084         (WebCore):
19085         (WebCore::Element::setShadowPseudoId):
19086         * dom/Element.h:
19087         (Element):
19088         * dom/ElementRareData.cpp:
19089         (WebCore::ElementRareData::reportMemoryUsage):
19090         * dom/ElementRareData.h:
19091         (ElementRareData):
19092         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
19093         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
19094         * html/ColorInputType.cpp:
19095         (WebCore::ColorInputType::createShadowSubtree):
19096         * html/HTMLTextAreaElement.cpp:
19097         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
19098         * html/RangeInputType.cpp:
19099         (WebCore::RangeInputType::createShadowSubtree):
19100         * html/TextFieldInputType.cpp:
19101         (WebCore::TextFieldInputType::createShadowSubtree):
19102         (WebCore::TextFieldInputType::updatePlaceholderText):
19103         * html/ValidationMessage.cpp:
19104         (WebCore::ValidationMessage::buildBubbleTree):
19105         * html/shadow/DateTimeEditElement.cpp:
19106         (WebCore::DateTimeEditBuilder::visitLiteral):
19107         (WebCore::DateTimeEditElement::DateTimeEditElement):
19108         * html/shadow/DateTimeFieldElement.cpp:
19109         (WebCore::DateTimeFieldElement::initialize):
19110         * html/shadow/DateTimeFieldElement.h:
19111         (DateTimeFieldElement):
19112         * html/shadow/PickerIndicatorElement.cpp:
19113         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
19114         * html/track/TextTrackCue.cpp:
19115         (WebCore::TextTrackCueBox::TextTrackCueBox):
19116         (WebCore::TextTrackCue::updateDisplayTree):
19117         * testing/Internals.cpp:
19118         (WebCore::Internals::setShadowPseudoId):
19119
19120 2012-11-07  Ryosuke Niwa  <rniwa@webkit.org>
19121
19122         Crash in WebCore::RenderLayer::normalFlowList
19123         https://bugs.webkit.org/show_bug.cgi?id=101528
19124
19125         Reviewed by Simon Fraser.
19126
19127         Make sure the layout is up to date before re-computing the caret rect.
19128         Avoid doing the layout when the selection is cleared since we can always stop
19129         the blink timer in that case.
19130
19131         Unfortunately, we haven't found any reproduction of this crash yet.
19132
19133         * editing/FrameSelection.cpp:
19134         (WebCore::isNonOrphanedCaret):
19135         (WebCore::FrameSelection::localCaretRect):
19136         (WebCore::FrameSelection::updateAppearance):
19137
19138 2012-11-07  Adam Barth  <abarth@webkit.org>
19139
19140         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19141         https://bugs.webkit.org/show_bug.cgi?id=101110
19142
19143         Reviewed by Kentaro Hara.
19144
19145         Hopefully the memory issues with this patch have been resolved by
19146         fixing bug 101525. This patch re-lands this patch again, hopefully for
19147         the last time.
19148
19149         * bindings/v8/DOMDataStore.cpp:
19150         (WebCore::DOMDataStore::weakCallback):
19151         * bindings/v8/DOMDataStore.h:
19152         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19153         (WebCore::DOMDataStore::getWrapperFromObject):
19154         (WebCore::DOMDataStore::setWrapperInObject):
19155
19156 2012-11-07  KyungTae Kim  <ktf.kim@samsung.com>
19157
19158         Seam occurred between pieces of ShadowBlur on floating point zoom
19159         https://bugs.webkit.org/show_bug.cgi?id=101435
19160
19161         Reviewed by Simon Fraser.
19162
19163         When paint Shadow that doesn't have blurred edge on floating point zoom,
19164         pixel seam (pixel cracks) occurred between pieces of the ShadowBlur because of unaligned clip rect.
19165         So, enlarge the clipping area 1 pixel so that the fill does not bleed (due to antialiasing)
19166         even if the unaligned clip rect occurred.
19167
19168
19169         * platform/graphics/ShadowBlur.cpp:
19170         (WebCore::ShadowBlur::calculateLayerBoundingRect):
19171
19172 2012-11-07  Tim Horton  <timothy_horton@apple.com>
19173
19174         Repaint issues with -webkit-svg-shadow used on a container
19175         https://bugs.webkit.org/show_bug.cgi?id=65643
19176         <rdar://problem/7600532>
19177
19178         Reviewed by Simon Fraser.
19179
19180         SVG renderer repaint rects are currently expanded only by the shadow of
19181         the renderer itself; however, the area they need to repaint can be larger
19182         than that, if their parents also have shadows. We need to take into account
19183         parent's shadows (respecting transforms, as well).
19184
19185         clippedOverflowRectForRepaint already recurses upwards through the render tree,
19186         and ends up with a rect in layout coordinates, so we manually apply the shadow
19187         at each step (repaintRectInLocalCoordinatesExcludingSVGShadow was added to allow
19188         us to get the raw repaint rect without the shadow baked-in).
19189
19190         repaintRectInLocalCoordinates now includes shadows from all parents.
19191
19192         Also, RenderSVGRoot was clipping repaint rects to the viewport before applying
19193         shadows, so offscreen elements with on-screen shadows (applied by the root) would not paint the shadows.
19194         We can just swap the order of these things to correct this.
19195
19196         Tests: svg/css/parent-shadow-offscreen.svg, svg/css/root-shadow-offscreen.svg, svg/repaint/repaint-webkit-svg-shadow.svg
19197
19198         * rendering/RenderObject.cpp:
19199         (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.
19200         (WebCore::RenderObject::styleDidChange): Mark the child being added as having an SVG shadow if its new style has a shadow.
19201         * rendering/svg/RenderSVGImage.cpp:
19202         (WebCore::RenderSVGImage::layout): Cache the repaint rect before intersecting it with the shadow.
19203         * rendering/svg/RenderSVGImage.h:
19204         (WebCore::RenderSVGImage::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19205         * rendering/svg/RenderSVGModelObject.cpp:
19206         (WebCore::RenderSVGModelObject::RenderSVGModelObject): Renderers do not have a shadow by default.
19207         * rendering/svg/RenderSVGModelObject.h:
19208         (WebCore::RenderSVGModelObject::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19209         (WebCore::RenderSVGModelObject::hasSVGShadow): Return whether or not the renderer has a shadow.
19210         (WebCore::RenderSVGModelObject::setHasSVGShadow): Set whether or not the renderer has a shadow.
19211         * rendering/svg/RenderSVGRoot.cpp:
19212         (WebCore::RenderSVGRoot::RenderSVGRoot):
19213         (WebCore::RenderSVGRoot::computeFloatRectForRepaint): Apply the shadow before clipping to the viewport, so we draw shadows for elements outside the viewport.
19214         (WebCore::RenderSVGRoot::updateCachedBoundaries): Cache the repaint rect before intersecting it with the shadow.
19215         * rendering/svg/RenderSVGRoot.h:
19216         (WebCore::RenderSVGRoot::hasSVGShadow): Return whether or not the renderer has a shadow.
19217         (WebCore::RenderSVGRoot::setHasSVGShadow): Set whether or not the renderer has a shadow.
19218         (WebCore::RenderSVGRoot::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19219         * rendering/svg/RenderSVGShape.cpp:
19220         (WebCore::RenderSVGShape::updateRepaintBoundingBox): Cache the repaint rect before intersecting it with the shadow.
19221         * rendering/svg/RenderSVGShape.h:
19222         (WebCore::RenderSVGShape::repaintRectInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19223         * rendering/svg/SVGRenderSupport.cpp:
19224         (WebCore::SVGRenderSupport::repaintRectForRendererInLocalCoordinatesExcludingSVGShadow): Return the cached repaint rect for the renderer without the shadow included.
19225         (WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): Apply shadows as we walk through our parents, instead of only applying the renderer's own shadow.
19226         (WebCore::SVGRenderSupport::rendererHasSVGShadow): Return whether or not the renderer has a shadow.
19227         (WebCore::SVGRenderSupport::setRendererHasSVGShadow): Set whether or not the renderer has a shadow.
19228         (WebCore::SVGRenderSupport::intersectRepaintRectWithShadows): Walk through the element's parents, adding shadows to the repaint rect as we go, eventually
19229         transforming the repaint rect back into local coordinates.
19230         (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Don't add shadows by default, just other resources, so that we can cache repaint rects with and without shadows.
19231         * rendering/svg/SVGRenderSupport.h:
19232
19233 2012-11-07  Anders Carlsson  <andersca@apple.com>
19234
19235         Add RemoteGraphicsLayer class
19236         https://bugs.webkit.org/show_bug.cgi?id=101535
19237
19238         Reviewed by Simon Fraser.
19239
19240         * WebCore.exp.in:
19241         Export GraphicsLayer symbols required by WebKit2.
19242
19243         * WebCore.xcodeproj/project.pbxproj:
19244         Make GraphicsLayerFactory.h a private header.
19245
19246 2012-11-07  Adam Barth  <abarth@webkit.org>
19247
19248         [V8] Don't leak <img> elements in content scripts
19249         https://bugs.webkit.org/show_bug.cgi?id=101525
19250
19251         Reviewed by Ojan Vafai.
19252
19253         I found the leak that was causing a problem for bug 101110. We weren't
19254         filling in the derefObjectFunction for HTMLImageElements (and
19255         potentially some other types of elements). That manifests today as a
19256         memory leak in content scripts (which use the derefObjectFunction for
19257         nodes) and caused a memory leak after bug 101110 because we started
19258         using the derefObjectFunction in the main world as well.
19259
19260         This patch adds ASSERTs so that we won't make this mistake in the future.
19261
19262         * bindings/scripts/CodeGeneratorV8.pm:
19263         (GenerateNamedConstructorCallback):
19264         * bindings/v8/DOMDataStore.cpp:
19265         (WebCore::DOMDataStore::weakCallback):
19266         * bindings/v8/DOMWrapperMap.h:
19267         (WebCore::DOMWrapperMap::defaultWeakCallback):
19268         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
19269         (WebCore):
19270
19271 2012-11-07  Alec Flett  <alecflett@chromium.org>
19272
19273         IndexedDB: Prepare for IDBBackingStore merge by renaming IDBLevelDBBackingStore.cpp
19274         https://bugs.webkit.org/show_bug.cgi?id=101486
19275
19276         Reviewed by Ojan Vafai.
19277
19278         Rename IDBLevelDBBackingStore.cpp to IDBBackingStore.cpp in
19279         preparation for merging these classes. This will make the merge
19280         diffs sane. See https://bugs.webkit.org/show_bug.cgi?id=101415
19281         for the final goal.
19282
19283         No new tests, this is is just a rename and minor style fix.
19284
19285         * CMakeLists.txt:
19286         * GNUmakefile.list.am:
19287         * Modules/indexeddb/IDBBackingStore.cpp: Renamed from Source/WebCore/Modules/indexeddb/IDBLevelDBBackingStore.cpp.
19288         * WebCore.gypi:
19289         * WebCore.xcodeproj/project.pbxproj:
19290
19291 2012-11-07  Adam Barth  <abarth@webkit.org>
19292
19293         [V8] Prepare DOMDataStore to be able to store ScriptWrappable wrappers inline
19294         https://bugs.webkit.org/show_bug.cgi?id=101523
19295
19296         Unreviewed. Technically this patch hasn't been reviewed, but it is part
19297         of a patch that was reviewed by Kentaro Hara.
19298
19299         Sadly, my patch for bug 101110 triggered the regression again. This
19300         patch is a smaller incremental step towards the patch in bug 101110. It
19301         doesn't make that much sense on its own, but it will help me isolate
19302         the source of the regression.
19303
19304         * bindings/v8/DOMDataStore.h:
19305         (WebCore::DOMDataStore::get):
19306         (DOMDataStore):
19307         (WebCore::DOMDataStore::set):
19308         (WebCore::DOMDataStore::wrapperIsStoredInObject):
19309         (WebCore::DOMDataStore::getWrapperFromObject):
19310         (WebCore::DOMDataStore::setWrapperInObject):
19311
19312 2012-11-05  Ryosuke Niwa  <rniwa@webkit.org>
19313
19314         SimplifyMarkupCommand takes a disproportionally long time to run when there are many nodes to remove
19315         https://bugs.webkit.org/show_bug.cgi?id=101144
19316
19317         Reviewed by Enrica Casucci.
19318
19319         The bug was caused by attach() happening between each node removal. Since the command was trying
19320         to remove millions of node in some cases, attach()ing render objects for each node being reinserted
19321         imposed a huge runtime cost.
19322
19323         Fixed the bug by using lazy attach when removing nodes and avoiding calls to isContentEditable.
19324         Also remove all ancestors at once when they are direct child/parent of each other so that we don't
19325         remove an ancestor and then insert its child back only to remove it again in the next iteration.
19326
19327         No new tests since it doesn't change the asymptotic performance, and adding a new performance test for
19328         this specific case is not the worth the increase in the bot cycle time. I'll note that the email
19329         attached in the original radar bug (<rdar://problem/12179712>) took 100 seconds to open now only takes
19330         7 seconds to open on my MacPro.
19331
19332         * editing/AppendNodeCommand.cpp:
19333         (WebCore::AppendNodeCommand::doApply): Takes a flag indicating whether we should assume nodes are editable
19334         without calling isContentEditable or not.
19335         * editing/ApplyStyleCommand.cpp:
19336         (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Update the style as later code requires render
19337         object.
19338         * editing/CompositeEditCommand.cpp:
19339         (WebCore::CompositeEditCommand::insertNodeBefore): Passes a flag to the command.
19340         (WebCore::CompositeEditCommand::removeNode): Ditto.
19341         (WebCore::CompositeEditCommand::removeNodePreservingChildren): Ditto.
19342         * editing/CompositeEditCommand.h:
19343         (CompositeEditCommand):
19344         * editing/DeleteSelectionCommand.cpp:
19345         (WebCore::DeleteSelectionCommand::removeNode): Takes a flag indicating whether we should assume nodes are
19346         editable without calling isContentEditable or not.
19347         * editing/DeleteSelectionCommand.h:
19348         (DeleteSelectionCommand):
19349         * editing/EditCommand.h:
19350         * editing/InsertIntoTextNodeCommand.cpp:
19351         (WebCore::InsertIntoTextNodeCommand::doApply): Update the layout when password echo is enabled since
19352         we need to have render objects for echoing.
19353         * editing/InsertNodeBeforeCommand.cpp:
19354         (WebCore::InsertNodeBeforeCommand::InsertNodeBeforeCommand): Ditto.
19355         (WebCore::InsertNodeBeforeCommand::doApply): Ditto; also always use lazy attach.
19356         (WebCore::InsertNodeBeforeCommand::doUnapply):
19357         * editing/InsertNodeBeforeCommand.h:
19358         (WebCore::InsertNodeBeforeCommand::create):
19359         (InsertNodeBeforeCommand):
19360         * editing/RemoveNodeCommand.cpp:
19361         (WebCore::RemoveNodeCommand::RemoveNodeCommand): Ditto about the flag.
19362         (WebCore::RemoveNodeCommand::doApply):
19363         * editing/RemoveNodeCommand.h:
19364         (WebCore::RemoveNodeCommand::create):
19365         (RemoveNodeCommand):
19366         * editing/RemoveNodePreservingChildrenCommand.cpp:
19367         (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand): Ditto.
19368         (WebCore::RemoveNodePreservingChildrenCommand::doApply):
19369         * editing/RemoveNodePreservingChildrenCommand.h:
19370         (WebCore::RemoveNodePreservingChildrenCommand::create):
19371         (RemoveNodePreservingChildrenCommand):
19372         * editing/SimplifyMarkupCommand.cpp:
19373         (WebCore::SimplifyMarkupCommand::doApply):
19374         (WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove): Added to optimize removals of multiple
19375         ancestors.
19376         * editing/SimplifyMarkupCommand.h:
19377         (SimplifyMarkupCommand):
19378
19379 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
19380
19381         Unreviewed, rolling out r133810.
19382         http://trac.webkit.org/changeset/133810
19383         https://bugs.webkit.org/show_bug.cgi?id=101520
19384
19385         This patch made ws_single_peak_r regress by 15% (Requested by
19386         abarth on #webkit).
19387
19388         * bindings/v8/DOMDataStore.cpp:
19389         (WebCore::DOMDataStore::weakCallback):
19390         * bindings/v8/DOMDataStore.h:
19391         (WebCore::DOMDataStore::get):
19392         (WebCore::DOMDataStore::set):
19393         (DOMDataStore):
19394
19395 2012-11-07  Elliott Sprehn  <esprehn@chromium.org>
19396
19397         Clean up confused use of Document::renderer and renderView
19398         https://bugs.webkit.org/show_bug.cgi?id=101484
19399
19400         Reviewed by Ojan Vafai.
19401
19402         Document::renderer and Document::renderView are the same thing, but it seems
19403         people don't always realize it and check if document()->renderer() is a RenderView.
19404
19405         This patch cleans up usage of document()->renderer() and document()->renderView() and
19406         simplifies the code that was written without realizing they were the same thing.
19407
19408         No new tests, this is just a refactor.
19409
19410         * accessibility/AccessibilityRenderObject.cpp:
19411         (WebCore::AccessibilityRenderObject::visiblePositionForPoint): Lots of simplification.
19412         * dom/Element.cpp:
19413         (WebCore::Element::screenRect):
19414         (WebCore::Element::unregisterNamedFlowContentNode): Remove unneeded conditional.
19415         * editing/FrameSelection.cpp: Remove verbose casts.
19416         (WebCore::clearRenderViewSelection):
19417         (WebCore::FrameSelection::recomputeCaretRect):
19418         (WebCore::CaretBase::invalidateCaretRect):
19419         (WebCore::FrameSelection::focusedOrActiveStateChanged):
19420         * page/Frame.cpp:
19421         (WebCore::Frame::contentRenderer): Vastly simplified.
19422         * page/PrintContext.cpp: Remove verbose casts.
19423         (WebCore::PrintContext::computePageRects):
19424         (WebCore::PrintContext::computePageRectsWithPageSizeInternal):
19425         * page/wince/FrameWinCE.cpp:
19426         (WebCore::computePageRectsForFrame): Remove unreachable code.
19427         * rendering/RenderObject.cpp:
19428         (WebCore::RenderObject::maximalOutlineSize): Remove verbose cast.
19429
19430 2012-11-07  Adam Barth  <abarth@webkit.org>
19431
19432         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
19433         https://bugs.webkit.org/show_bug.cgi?id=101110
19434
19435         Reviewed by Kentaro Hara.
19436
19437         This patch generalizes our support for storing wrappers in DOM objects
19438         to be usable for more than just nodes. After this patch, any object
19439         with a ScriptWrappable base class will have its wrapper stored inline
19440         in the object in the main world.
19441
19442         * bindings/v8/DOMDataStore.cpp:
19443         (WebCore::DOMDataStore::weakCallback):
19444         * bindings/v8/DOMDataStore.h:
19445         (WebCore::DOMDataStore::get):
19446         (WebCore::DOMDataStore::set):
19447
19448 2012-11-07  Tiancheng Jiang  <tijiang@rim.com>
19449
19450         [BlackBerry] Update BB10 form theme.
19451         https://bugs.webkit.org/show_bug.cgi?id=100760
19452
19453         Reviewed by Rob Buis.
19454
19455         RIM PR 236997
19456         Internally Reviewed by Jakob Petsovits.
19457
19458         Set font family to fix DRT test fast/forms/input-type-text-min-width.html
19459
19460         * platform/blackberry/RenderThemeBlackBerry.cpp:
19461         (WebCore::RenderThemeBlackBerry::defaultGUIFont):
19462         (WebCore):
19463         (WebCore::RenderThemeBlackBerry::systemFont):
19464
19465 2012-11-07  Beth Dakin  <bdakin@apple.com>
19466
19467         https://bugs.webkit.org/show_bug.cgi?id=101303
19468         Fixed position elements that are out of view still end up forcing 
19469         non-threaded scrolling
19470         -and corresponding-
19471         <rdar://problem/12642222>
19472
19473         Reviewed by Simon Fraser.
19474
19475         Re-name hasNonLayerFixedObjects() to 
19476         hasVisibleSlowRepaintFixedObjects() and make it virtual. 
19477         * page/scrolling/ScrollingCoordinator.cpp:
19478         (WebCore::ScrollingCoordinator::hasVisibleSlowRepaintFixedObjects):
19479         (WebCore::ScrollingCoordinator::mainThreadScrollingReasons):
19480         * page/scrolling/ScrollingCoordinator.h:
19481         (ScrollingCoordinator):
19482
19483         Override hasVisibleSlowRepaintFixedObjects() to always return false. 
19484         We don't want to bother with the extra computation in the 
19485         ScrollingCoordinator implementation, though other ports might still 
19486         want it.
19487         * page/scrolling/mac/ScrollingCoordinatorMac.h:
19488         (WebCore::ScrollingCoordinatorMac::hasVisibleSlowRepaintFixedObjects):
19489         (ScrollingCoordinatorMac):
19490
19491         Make this function const so that we can call it from 
19492         requiresCompositingForPosition().
19493         * rendering/RenderLayerCompositor.cpp:
19494         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
19495
19496         Actually be thorough here and check if the fixed object has any 
19497         descendants that are visible in the view. If it does, then we do 
19498         want to composite the fixed object.
19499         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
19500         * rendering/RenderLayerCompositor.h:
19501
19502 2012-11-07  Roger Fong  <roger_fong@apple.com>
19503
19504         Unreviewed. Style fix following r133262.
19505
19506         * html/HTMLMediaElement.cpp:
19507         (WebCore::HTMLMediaElement::clearMediaPlayer):
19508         * html/HTMLMediaElement.h:
19509         (HTMLMediaElement):
19510
19511 2012-11-07  Adam Barth  <abarth@webkit.org>
19512
19513         [V8] DOMWrapperMap doesn't need to use virtual functions
19514         https://bugs.webkit.org/show_bug.cgi?id=101494
19515
19516         Reviewed by Kentaro Hara.
19517
19518         DOMWrapperMap has only one subclass. There's no reason to use virtual functions.
19519
19520         * bindings/v8/DOMDataStore.cpp:
19521         (WebCore::DOMDataStore::DOMDataStore):
19522         * bindings/v8/DOMWrapperMap.h:
19523         (WebCore::DOMWrapperMap::DOMWrapperMap):
19524         (WebCore::DOMWrapperMap::get):
19525         (WebCore::DOMWrapperMap::set):
19526         (WebCore::DOMWrapperMap::clear):
19527         (WebCore::DOMWrapperMap::reportMemoryUsage):
19528         (WebCore::DOMWrapperMap::remove):
19529         (WebCore::DOMWrapperMap::defaultWeakCallback):
19530         * bindings/v8/V8NPObject.cpp:
19531         (WebCore::staticNPObjectMap):
19532
19533 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19534
19535         [CSS Shaders] Remove the dependency on CustomFilterValidatedProgram from CustomFilterRenderer
19536         https://bugs.webkit.org/show_bug.cgi?id=101071
19537
19538         Reviewed by Dean Jackson.
19539
19540         I've removed the need to get a CustomFilterValidatedProgram from FilterEffectRenderer. It was only
19541         used to delay the compilation of the shader until it was really needed. Instead, the FilterEffectRenderer
19542         will directly get the compiled shader in the constructor. The callers that still want to avoid 
19543         compiling the shader until it is really needed can use the setCompiledProgram to inject the shader
19544         at a later time, before painting.
19545
19546         No new tests, the change is covered by the css3/filters/custom/ tests.
19547
19548         * platform/graphics/filters/CustomFilterConstants.h:
19549         * platform/graphics/filters/CustomFilterProgramInfo.h:
19550         * platform/graphics/filters/CustomFilterRenderer.cpp:
19551         (WebCore::CustomFilterRenderer::create):
19552         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
19553         (WebCore::CustomFilterRenderer::premultipliedAlpha):
19554         (WebCore::CustomFilterRenderer::setCompiledProgram):
19555         (WebCore):
19556         (WebCore::CustomFilterRenderer::prepareForDrawing):
19557         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
19558         * platform/graphics/filters/CustomFilterRenderer.h:
19559         (WebCore):
19560         (CustomFilterRenderer):
19561         (WebCore::CustomFilterRenderer::compiledProgram):
19562         * platform/graphics/filters/FECustomFilter.cpp:
19563         (WebCore::FECustomFilter::FECustomFilter):
19564         (WebCore::FECustomFilter::prepareForDrawing):
19565         * platform/graphics/filters/FECustomFilter.h:
19566         (FECustomFilter):
19567
19568 2012-11-07  Adam Barth  <abarth@webkit.org>
19569
19570         [V8] IntrusiveDOMWrapperMap is no longer needed and can be deleted
19571         https://bugs.webkit.org/show_bug.cgi?id=101493
19572
19573         Reviewed by Kentaro Hara.
19574
19575         This patch is another incremental step towards landing the patch in bug
19576         101110. In this patch, we delete IntrusiveDOMWrapperMap, which is no
19577         longer needed.
19578
19579         * WebCore.gypi:
19580         * bindings/v8/DOMDataStore.cpp:
19581         (WebCore::DOMDataStore::DOMDataStore):
19582         (WebCore::DOMDataStore::~DOMDataStore):
19583         (WebCore::DOMDataStore::reportMemoryUsage):
19584         (WebCore::DOMDataStore::weakCallback):
19585         (WebCore):
19586         * bindings/v8/DOMDataStore.h:
19587         (WebCore::DOMDataStore::get):
19588         (WebCore::DOMDataStore::set):
19589         (DOMDataStore):
19590         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
19591         * bindings/v8/V8GCController.cpp:
19592
19593 2012-11-07  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
19594
19595         [AC] glXChooseFBConfig() and glXGetVisualFromFBConfig() return values are leaking in GraphicsSurface
19596         https://bugs.webkit.org/show_bug.cgi?id=101475
19597
19598         Reviewed by Kenneth Rohde Christiansen.
19599
19600         Free the memory returned by glXChooseFBConfig and glXGetVisualFromFBConfig
19601         using XFree to avoid memory leaks.
19602
19603         No tests. No change in behavior.
19604
19605         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
19606         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
19607         (WebCore::GraphicsSurfacePrivate::createSurface):
19608
19609 2012-11-07  Fady Samuel  <fsamuel@chromium.org>
19610
19611         Autoresize should work even if turned on while the page is loading.
19612         https://bugs.webkit.org/show_bug.cgi?id=101380
19613
19614         Reviewed by David Levin.
19615
19616         Autoresize does not work in cases where it is turned on while loading.
19617         This patch addresses this by allowing autoSize to complete if it's turned on
19618         while loading and doing a final pass after loading.
19619
19620         * loader/FrameLoader.cpp:
19621         (WebCore::FrameLoader::checkCompleted):
19622         Adjust to call renamed function.
19623         * page/FrameView.cpp:
19624         (WebCore::FrameView::handleLoadCompleted):
19625         Rename function to encompass its expanded responsibilities (which include doing the final auto size after the load is completed).
19626         (WebCore::FrameView::autoSizeIfEnabled):
19627         Allow the size to shrink if autosize is adjusted while the page is loading.
19628         * page/FrameView.h:
19629         (FrameView):
19630         Renamed 'checkFlushDeferredRepaintsAfterLoadComplete' to 'handleLoadComplete'
19631
19632 2012-11-07  Philip Rogers  <pdr@google.com>
19633
19634         Skip SVG repaint tracking when parent container transforms
19635         https://bugs.webkit.org/show_bug.cgi?id=101177
19636
19637         Reviewed by Eric Seidel.
19638
19639         This patch skips child repaint rect checks when a parent container is transformed, leading
19640         to a 75% increase on the RoboHornet SVG benchmark:
19641             http://www.robohornet.org/#et=svg  (average of 2 runs)
19642             Before patch: 161.6ms
19643             After patch: 38.5ms
19644
19645         SVG transforms are relative to the local container which makes calculating an absolute
19646         repaint rect expensive because it requires multiplying the local repaint rect by each
19647         parent container's local transform. See SVGRenderSupport::computeFloatRectForRepaint
19648         as an example of this calculation.
19649
19650         This patch takes advantage of SVG's container rules: when a parent container's transform
19651         changes, all children must be repainted (there is no absolute positioning in SVG).
19652         SVGRenderSupport::checkForSVGRepaintDuringLayout has been added which checks for whether
19653         the parent transform changed before doing child repaint checks. A similar optimization is
19654         used in HTML (see RenderObject::checkForRepaintDuringLayout) where no repaint checking
19655         is done when the view is fully repainted.
19656
19657         This code is tested in existing tests.
19658
19659         * rendering/svg/RenderSVGContainer.cpp:
19660         (WebCore::RenderSVGContainer::layout):
19661         * rendering/svg/RenderSVGForeignObject.cpp:
19662         (WebCore::RenderSVGForeignObject::layout):
19663         * rendering/svg/RenderSVGImage.cpp:
19664         (WebCore::RenderSVGImage::layout):
19665         * rendering/svg/RenderSVGShape.cpp:
19666         (WebCore::RenderSVGShape::layout):
19667         * rendering/svg/RenderSVGText.cpp:
19668         (WebCore::RenderSVGText::layout):
19669         * rendering/svg/SVGRenderSupport.cpp:
19670         (WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
19671         (WebCore):
19672         * rendering/svg/SVGRenderSupport.h:
19673         (SVGRenderSupport):
19674
19675 2012-11-07  Chris Fleizach  <cfleizach@apple.com>
19676
19677         AX: Textfields don't get focus when navigated to from 'show all tabs' button
19678         https://bugs.webkit.org/show_bug.cgi?id=101369
19679
19680         Reviewed by Darin Adler.
19681
19682         When focus leaves a webpage, the webpage does not normally clear its focused node. When focus
19683         returns (through tab, or mouse click), then focus will be cleared and restored.
19684
19685         However, when focus is returned through accessibility means, focus is not cleared first, which
19686         means subsequent focus actions do nothing.
19687
19688         This fix will check if the focused node is the same as the node being focused, and if so, clear the focus first.
19689
19690         Making a layout test for this is not possible because it requires setting focus to something in the chrome, and then
19691         moving focus back to the webpage.
19692       
19693         * accessibility/AccessibilityRenderObject.cpp:
19694         (WebCore::AccessibilityRenderObject::setFocused):
19695
19696 2012-11-07  Adam Barth  <abarth@webkit.org>
19697
19698         [V8] We should hide the DOMWrapperMaps inside DOMDataStore
19699         https://bugs.webkit.org/show_bug.cgi?id=101430
19700
19701         Reviewed by Kentaro Hara.
19702
19703         This is yet another incremental step towards landing the patch in bug
19704         101110. In this patch, we hide the existence of DOMWrapperMaps inside
19705         DOMDataStore. In the process, we can remove V8DOMMap.cpp.
19706
19707         * UseV8.cmake:
19708         * WebCore.gypi:
19709         * bindings/v8/DOMDataStore.h:
19710         (WebCore::DOMDataStore::set):
19711         * bindings/v8/DOMWrapperWorld.h:
19712         * bindings/v8/ScriptProfiler.cpp:
19713         * bindings/v8/SerializedScriptValue.cpp:
19714         (WebCore::neuterBinding):
19715         * bindings/v8/V8DOMMap.cpp: Removed.
19716         * bindings/v8/V8DOMMap.h: Removed.
19717         * bindings/v8/V8DOMWindowShell.cpp:
19718         * bindings/v8/V8DOMWrapper.h:
19719         (WebCore::V8DOMWrapper::getCachedWrapper):
19720         (WebCore::V8DOMWrapper::setWrapperClass):
19721         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
19722         * bindings/v8/V8NPObject.cpp:
19723         * bindings/v8/WorkerContextExecutionProxy.cpp:
19724         * bindings/v8/WorkerScriptController.cpp:
19725
19726 2012-11-07  Varun Jain  <varunjain@chromium.org>
19727
19728         Add new gesture type, LongTap, which is basically the completion of a GestureLongPress
19729         https://bugs.webkit.org/show_bug.cgi?id=101385
19730
19731         Reviewed by Adam Barth.
19732
19733         Test: Only creating the new enum. No functionality change, hence no tests required.
19734
19735         * platform/PlatformEvent.h:
19736
19737 2012-11-05  Emil A Eklund  <eae@chromium.org>
19738
19739         Remove LayoutTypes abstraction
19740         https://bugs.webkit.org/show_bug.cgi?id=93050
19741
19742         Reviewed by Levi Weintraub.
19743
19744         Remove LayoutTypes abstraction and rename FractionalLayout* to
19745         Layout* now that all platforms use the FractionalLayout version
19746         (albeit with different fractions).
19747
19748         No new tests, no change in functionality.
19749
19750         * CMakeLists.txt:
19751         * GNUmakefile.list.am:
19752         * Target.pri:
19753         * WebCore.exp.in:
19754         * WebCore.gypi:
19755         * WebCore.vcproj/WebCore.vcproj:
19756         * WebCore.xcodeproj/project.pbxproj:
19757         * accessibility/AccessibilityNodeObject.cpp:
19758         * accessibility/AccessibilityNodeObject.h:
19759         * accessibility/AccessibilityObject.h:
19760         * accessibility/AccessibilityRenderObject.h:
19761         * css/LengthFunctions.cpp:
19762         * css/LengthFunctions.h:
19763         * dom/Document.h:
19764         * dom/DocumentMarkerController.h:
19765         * dom/ElementRareData.h:
19766         * dom/MouseRelatedEvent.h:
19767         * dom/Node.h:
19768         * dom/Touch.h:
19769         * editing/FrameSelection.cpp:
19770         * editing/FrameSelection.h:
19771         * editing/RenderedPosition.h:
19772         * html/HTMLAreaElement.h:
19773         * inspector/InspectorOverlay.h:
19774         * inspector/InspectorTimelineAgent.h:
19775         * inspector/TimelineRecordFactory.cpp:
19776         * inspector/TimelineRecordFactory.h:
19777         * loader/cache/CachedImage.h:
19778         * page/FocusController.h:
19779         * page/FrameView.h:
19780         * page/Page.h:
19781         * page/SpatialNavigation.cpp:
19782         * page/SpatialNavigation.h:
19783         * platform/FractionalLayoutUnit.h: Removed.
19784         * platform/LayoutUnit.h: Copied from Source/WebCore/platform/FractionalLayoutUnit.h.
19785         * platform/Length.h:
19786         * platform/PopupMenuClient.h:
19787         * platform/animation/AnimationUtilities.h:
19788         * platform/graphics/FloatPoint.cpp:
19789         * platform/graphics/FloatPoint.h:
19790         * platform/graphics/FloatRect.cpp:
19791         * platform/graphics/FloatRect.h:
19792         * platform/graphics/FloatSize.cpp:
19793         * platform/graphics/FloatSize.h:
19794         * platform/graphics/FractionalLayoutBoxExtent.cpp: Removed.
19795         * platform/graphics/FractionalLayoutBoxExtent.h: Removed.
19796         * platform/graphics/FractionalLayoutPoint.h: Removed.
19797         * platform/graphics/FractionalLayoutRect.cpp: Removed.
19798         * platform/graphics/FractionalLayoutRect.h: Removed.
19799         * platform/graphics/FractionalLayoutSize.h: Removed.
19800         * platform/graphics/GraphicsLayer.cpp:
19801         * platform/graphics/GraphicsLayerAnimation.cpp:
19802         * platform/graphics/IntRect.cpp:
19803         * platform/graphics/IntRect.h:
19804         * platform/graphics/LayoutBoxExtent.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.cpp.
19805         * platform/graphics/LayoutBoxExtent.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutBoxExtent.h.
19806         * platform/graphics/LayoutPoint.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutPoint.h.
19807         * platform/graphics/LayoutRect.cpp: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.cpp.
19808         * platform/graphics/LayoutRect.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutRect.h.
19809         * platform/graphics/LayoutSize.h: Copied from Source/WebCore/platform/graphics/FractionalLayoutSize.h.
19810         * platform/graphics/MediaPlayer.h:
19811         * platform/graphics/filters/CustomFilterOperation.h:
19812         * platform/graphics/filters/CustomFilterParameterList.h:
19813         * platform/graphics/filters/FilterOperation.h:
19814         * platform/graphics/filters/FilterOperations.h:
19815         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
19816         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
19817         * platform/graphics/qt/FractionalLayoutPointQt.cpp: Removed.
19818         * platform/graphics/qt/FractionalLayoutRectQt.cpp: Removed.
19819         * platform/graphics/qt/FractionalLayoutSizeQt.cpp: Removed.
19820         * platform/graphics/qt/LayoutPointQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutPointQt.cpp.
19821         * platform/graphics/qt/LayoutRectQt.cpp: Added.
19822         * platform/graphics/qt/LayoutSizeQt.cpp: Copied from Source/WebCore/platform/graphics/qt/FractionalLayoutSizeQt.cpp.
19823         * platform/graphics/transforms/TransformOperations.h:
19824         * platform/graphics/transforms/TransformState.h:
19825         * platform/graphics/transforms/TransformationMatrix.cpp:
19826         * platform/graphics/transforms/TransformationMatrix.h:
19827         * rendering/AutoTableLayout.h:
19828         * rendering/ColumnInfo.h:
19829         * rendering/ExclusionShapeInsideInfo.h:
19830         * rendering/FilterEffectRenderer.h:
19831         * rendering/FixedTableLayout.h:
19832         * rendering/GapRects.h:
19833         * rendering/HitTestResult.h:
19834         * rendering/HitTestingTransformState.cpp:
19835         * rendering/HitTestingTransformState.h:
19836         * rendering/InlineFlowBox.cpp:
19837         * rendering/LayoutRepainter.cpp:
19838         * rendering/LayoutRepainter.h:
19839         * rendering/LayoutState.h:
19840         * rendering/LayoutTypes.h:
19841         * rendering/LayoutTypesInlineMethods.h:
19842         * rendering/PaintInfo.h:
19843         * rendering/RenderBlock.cpp:
19844         * rendering/RenderBlock.h:
19845         * rendering/RenderBlockLineLayout.cpp:
19846         * rendering/RenderBox.cpp:
19847         * rendering/RenderBox.h:
19848         * rendering/RenderBoxModelObject.cpp:
19849         * rendering/RenderBoxModelObject.h:
19850         * rendering/RenderDeprecatedFlexibleBox.cpp:
19851         * rendering/RenderFieldset.cpp:
19852         * rendering/RenderFlexibleBox.cpp:
19853         * rendering/RenderFlowThread.cpp:
19854         * rendering/RenderGeometryMap.h:
19855         * rendering/RenderImageResource.h:
19856         * rendering/RenderInline.cpp:
19857         * rendering/RenderLayer.cpp:
19858         * rendering/RenderLayerFilterInfo.h:
19859         * rendering/RenderLineBoxList.cpp:
19860         * rendering/RenderListMarker.cpp:
19861         * rendering/RenderMarquee.cpp:
19862         * rendering/RenderMenuList.h:
19863         * rendering/RenderMultiColumnBlock.cpp:
19864         * rendering/RenderMultiColumnSet.cpp:
19865         * rendering/RenderNamedFlowThread.cpp:
19866         * rendering/RenderObject.cpp:
19867         * rendering/RenderObject.h:
19868         * rendering/RenderOverflow.h:
19869         * rendering/RenderRegion.cpp:
19870         * rendering/RenderReplaced.cpp:
19871         * rendering/RenderTable.cpp:
19872         * rendering/RenderTable.h:
19873         * rendering/RenderText.cpp:
19874         * rendering/RenderThemeChromiumCommon.cpp:
19875         * rendering/RenderThemeChromiumCommon.h:
19876         * rendering/RenderTreeAsText.cpp:
19877         * rendering/RenderTreeAsText.h:
19878         * rendering/RenderView.h:
19879         * rendering/style/NinePieceImage.h:
19880         * rendering/style/RenderStyle.h:
19881         * rendering/style/ShadowData.cpp:
19882         * rendering/style/ShadowData.h:
19883         * rendering/style/StyleCachedImageSet.h:
19884         * rendering/style/StyleImage.h:
19885         * rendering/svg/SVGRenderSupport.h:
19886
19887 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19888
19889         CoordinatedGraphicsArgumentCoders should use ValidatedCustomFitlerOperation instead
19890         https://bugs.webkit.org/show_bug.cgi?id=100905
19891
19892         Reviewed by Noam Rosenthal.
19893
19894         Added getters for the validated shaders, so that platform code could extract them.
19895
19896         No new tests, just added two getters.
19897
19898         * platform/graphics/filters/CustomFilterValidatedProgram.h:
19899         (WebCore::CustomFilterValidatedProgram::validatedVertexShader):
19900         (WebCore::CustomFilterValidatedProgram::validatedFragmentShader):
19901         (CustomFilterValidatedProgram):
19902
19903 2012-11-07  Joshua Bell  <jsbell@chromium.org>
19904
19905         IndexedDB: Assertion failure with open() within upgradeneeded
19906         https://bugs.webkit.org/show_bug.cgi?id=96947
19907
19908         Reviewed by Dimitri Glazkov.
19909
19910         Postpone creation of the "pending second half open" until the version change
19911         transaction has started.
19912
19913         Test: storage/indexeddb/unblocked-version-changes.html
19914
19915         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
19916         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
19917         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
19918         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
19919         (IDBDatabaseBackendImpl):
19920         * Modules/indexeddb/IDBDatabaseCallbacks.h:
19921
19922 2012-11-07  Alexandru Chiculita  <achicu@adobe.com>
19923
19924         [CSS Shaders] Add CustomFilterMeshBoxType to ValidatedCustomFilterOperation
19925         https://bugs.webkit.org/show_bug.cgi?id=100890
19926
19927         Reviewed by Dean Jackson.
19928
19929         Added the CustomFilterMeshBoxType parameter to the ValidatedCustomFilterOperation.
19930
19931         No new tests, this parameter is not used in the implementation yet.
19932
19933         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
19934         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
19935         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
19936         (WebCore::ValidatedCustomFilterOperation::create):
19937         (WebCore::ValidatedCustomFilterOperation::meshBoxType):
19938         (WebCore::ValidatedCustomFilterOperation::operator==):
19939         (ValidatedCustomFilterOperation):
19940         * rendering/FilterEffectRenderer.cpp:
19941         (WebCore::createCustomFilterEffect):
19942         * rendering/RenderLayer.cpp:
19943         (WebCore::RenderLayer::computeFilterOperations):
19944
19945 2012-11-07  Sergio Villar Senin  <svillar@igalia.com>
19946
19947         [Qt] Implement deleteCookie() for persistent storage
19948         https://bugs.webkit.org/show_bug.cgi?id=101272
19949
19950         Reviewed by Jocelyn Turcotte.
19951
19952         Individual cookies were never persistently cleared as the
19953         deleteCookie() virtual method was not implemented for persistent
19954         storage. That's why cookies were only deleted for the current
19955         session.
19956
19957         * platform/qt/CookieJarQt.cpp:
19958         (WebCore::SharedCookieJarQt::deleteCookie):
19959         (WebCore): added deleteCookie() implementation for persistent
19960         storage.
19961         * platform/qt/CookieJarQt.h:
19962         (SharedCookieJarQt):
19963
19964 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
19965
19966         [Shadow] Style should update when 'pseudo' attribute is dynamically updated
19967         https://bugs.webkit.org/show_bug.cgi?id=100918
19968
19969         Reviewed by Dimitri Glazkov.
19970
19971         When 'pseudo' attribute is changed and its element is in ShadowTree, we enable the styleShouldRecalc flag.
19972
19973         It would be fast if we have a set of pseudo attribute style value in RuleFeatureSet,
19974         but it might consume a lot of memory.
19975
19976         Test: fast/dom/shadow/pseudo-attribute-dynamic.html
19977
19978         * dom/Element.cpp:
19979         (WebCore::Element::attributeChanged):
19980
19981 2012-11-07  Ulan Degenbaev  <ulan@chromium.org>
19982
19983         [V8] WebKit sends unnecessary low memory notification when running memory benchmarks
19984         https://bugs.webkit.org/show_bug.cgi?id=101474
19985
19986         Reviewed by Kentaro Hara.
19987
19988         Do not send low memory notification to V8 when most of memory usage
19989         comes from V8 heap and not DOM objects. In this case V8 can schedule GC
19990         itself more optimally.
19991
19992         * bindings/v8/V8GCController.cpp:
19993         (WebCore::V8GCController::checkMemoryUsage):
19994
19995 2012-11-07  Allan Sandfeld Jensen  <allan.jensen@digia.com>
19996
19997         [Qt] Open link in this window action
19998         https://bugs.webkit.org/show_bug.cgi?id=101226
19999
20000         Reviewed by Simon Hausmann.
20001
20002         Adds the action to the WebCore context-menu controller.
20003
20004         * page/ContextMenuController.cpp:
20005         (WebCore::ContextMenuController::contextMenuItemSelected):
20006         (WebCore::ContextMenuController::checkOrEnableIfNeeded):
20007         * platform/ContextMenuItem.h:
20008         * platform/LocalizedStrings.h:
20009         * platform/qt/LocalizedStringsQt.cpp:
20010         (WebCore::contextMenuItemTagOpenLinkInThisWindow):
20011
20012 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20013
20014         Web Inspector: [Canvas] closure compiler fixes
20015         https://bugs.webkit.org/show_bug.cgi?id=101459
20016
20017         Reviewed by Pavel Feldman.
20018
20019         * inspector/InjectedScriptCanvasModuleSource.js:
20020         (.):
20021
20022 2012-11-07  Sheriff Bot  <webkit.review.bot@gmail.com>
20023
20024         Unreviewed, rolling out r133712.
20025         http://trac.webkit.org/changeset/133712
20026         https://bugs.webkit.org/show_bug.cgi?id=101461
20027
20028         Broke fast/forms/time* tests on chromium-win. (Requested by
20029         mkwst on #webkit).
20030
20031         * platform/text/win/LocaleWin.cpp:
20032         (WebCore::DateFormatToken::DateFormatToken):
20033         (DateFormatToken):
20034         (WebCore):
20035         (WebCore::isEraSymbol):
20036         (WebCore::isYearSymbol):
20037         (WebCore::isMonthSymbol):
20038         (WebCore::isDaySymbol):
20039         (WebCore::commitLiteralToken):
20040         (WebCore::parseDateFormat):
20041         (WebCore::LocaleWin::ensureShortDateTokens):
20042         (WebCore::convertWindowsDateFormatToLDML):
20043         (WebCore::mapCharacterToDateTimeFieldType):
20044         (WebCore::convertWindowsTimeFormatToLDML):
20045         (WebCore::LocaleWin::dateFormat):
20046         (WebCore::LocaleWin::monthFormat):
20047         (WebCore::LocaleWin::timeFormat):
20048         (WebCore::LocaleWin::shortTimeFormat):
20049         * platform/text/win/LocaleWin.h:
20050         (LocaleWin):
20051
20052 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20053
20054         Web Inspector: [Regression] Editing formatted source should not be allowed.
20055         https://bugs.webkit.org/show_bug.cgi?id=101355
20056
20057         Reviewed by Pavel Feldman.
20058
20059         * inspector/front-end/JavaScriptSourceFrame.js:
20060         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
20061         * inspector/front-end/UISourceCodeFrame.js:
20062         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
20063
20064 2012-11-07  Shinya Kawanaka  <shinyak@chromium.org>
20065
20066         [Shadow] Use setPseudo() instead of setShadowPseudoId().
20067         https://bugs.webkit.org/show_bug.cgi?id=101306
20068
20069         Reviewed by Kent Tamura.
20070
20071         We would like to remove setShadowPseudoId() and use setPseudo() instead, since ShadowDOM spec now has
20072         'pseudo' attribute.
20073
20074         We change all setShadowPseudoId() invocation to setPseudo() invocation. Also, when AtomicString is not
20075         constructed with AtomicStringFromLiteral, we use it.
20076
20077         No new tests, refactoring.
20078
20079         * WebCore.exp.in:
20080         * dom/Element.cpp:
20081         * dom/Element.h:
20082         (Element):
20083         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
20084         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
20085         * html/ColorInputType.cpp:
20086         (WebCore::ColorInputType::createShadowSubtree):
20087         * html/HTMLTextAreaElement.cpp:
20088         (WebCore::HTMLTextAreaElement::updatePlaceholderText):
20089         * html/RangeInputType.cpp:
20090         (WebCore::RangeInputType::createShadowSubtree):
20091         * html/TextFieldInputType.cpp:
20092         (WebCore::TextFieldInputType::createShadowSubtree):
20093         (WebCore::TextFieldInputType::updatePlaceholderText):
20094         * html/ValidationMessage.cpp:
20095         (WebCore::ValidationMessage::buildBubbleTree):
20096         * html/shadow/DateTimeEditElement.cpp:
20097         (WebCore::DateTimeEditBuilder::visitLiteral):
20098         (WebCore::DateTimeEditElement::DateTimeEditElement):
20099         * html/shadow/DateTimeFieldElement.cpp:
20100         (WebCore::DateTimeFieldElement::initialize):
20101         * html/shadow/DateTimeFieldElement.h:
20102         (DateTimeFieldElement):
20103         * html/shadow/PickerIndicatorElement.cpp:
20104         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
20105         * html/track/TextTrackCue.cpp:
20106         (WebCore::TextTrackCueBox::TextTrackCueBox):
20107         (WebCore::TextTrackCue::updateDisplayTree):
20108         * testing/Internals.cpp:
20109         (WebCore::Internals::setShadowPseudoId):
20110
20111 2012-11-07  Andrey Adaikin  <aandrey@chromium.org>
20112
20113         Web Inspector: [Canvas] Save CanvasGradient objects state for a replay
20114         https://bugs.webkit.org/show_bug.cgi?id=101432
20115
20116         Reviewed by Pavel Feldman.
20117
20118         Save CanvasGradient resource state for a subsequent replay. The gradient's state is modified by the gradient.addColorStop() call.
20119
20120         Test: inspector/profiler/canvas2d/canvas2d-gradient-capturing.html
20121
20122         * inspector/InjectedScriptCanvasModuleSource.js:
20123         (.):
20124
20125 2012-11-07  Vsevolod Vlasov  <vsevik@chromium.org>
20126
20127         Web Inspector: [Regression] Snippets evaluations should not appear in Sources tab of navigator.
20128         https://bugs.webkit.org/show_bug.cgi?id=101354
20129
20130         Reviewed by Pavel Feldman.
20131
20132         * inspector/front-end/DebuggerScriptMapping.js:
20133         * inspector/front-end/NetworkUISourceCodeProvider.js:
20134         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
20135         * inspector/front-end/Script.js:
20136         (WebInspector.Script.prototype.isSnippet):
20137         * inspector/front-end/ScriptSnippetModel.js:
20138         (WebInspector.ScriptSnippetModel.prototype._snippetIdForSourceURL):
20139
20140 2012-11-07  Dan Carney  <dcarney@google.com>
20141
20142         [V8] Cleanup V8DOMWrapper::getCachedWrapper
20143         https://bugs.webkit.org/show_bug.cgi?id=100853
20144
20145         Reviewed by Adam Barth.
20146
20147         Slight cleanup. Removed redundant branch.
20148
20149         No new tests. No change in functionality.
20150
20151         * bindings/v8/V8DOMWrapper.h:
20152         (WebCore::V8DOMWrapper::getCachedWrapper):
20153
20154 2012-11-07  Simon Hausmann  <simon.hausmann@digia.com>
20155
20156         [Qt] Unreviewed trivial build fix adapting to QtMultimedia API changes
20157
20158         The QtMultimedia namespace is now called QMultimedia and
20159         QtMultimedia::MetaData is now QMediaMetaData.
20160
20161         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
20162         (WebCore::MediaPlayerPrivateQt::supportsType):
20163         (WebCore::MediaPlayerPrivateQt::totalBytes):
20164
20165 2012-11-07  Christophe Dumez  <christophe.dumez@intel.com>
20166
20167         Add replaceWithLiteral() method to WTF::String
20168         https://bugs.webkit.org/show_bug.cgi?id=101257
20169
20170         Reviewed by Benjamin Poulain.
20171
20172         Substitute String::replace() calls by String::replaceWithLiteral() where
20173         adequate, for efficiency.
20174
20175         No new tests, no behavior change.
20176
20177         * dom/Node.cpp:
20178         (WebCore::Node::showNode):
20179         * editing/EditingStyle.cpp:
20180         (WebCore::StyleChange::extractTextStyles):
20181         * editing/MarkupAccumulator.cpp:
20182         (WebCore::MarkupAccumulator::appendQuotedURLAttributeValue):
20183         * html/HTMLAnchorElement.cpp:
20184         (WebCore::HTMLAnchorElement::setSearch):
20185         * loader/FormSubmission.cpp:
20186         (WebCore::appendMailtoPostFormDataToURL):
20187         * platform/network/soup/ProxyResolverSoup.cpp:
20188         (soupProxyResolverWkSetProperty):
20189         * plugins/PluginView.cpp:
20190         (WebCore::makeURL):
20191         * rendering/InlineTextBox.cpp:
20192         (WebCore::InlineTextBox::showBox):
20193         * xml/XSLTProcessor.cpp:
20194         (WebCore::transformTextStringToXHTMLDocumentString):
20195
20196 2012-11-07  Kenneth Rohde Christiansen  <kenneth@webkit.org>
20197
20198         Remove support for "desktop-width" in the viewport meta tag
20199         https://bugs.webkit.org/show_bug.cgi?id=101217
20200
20201         Reviewed by Gyuyoung Kim.
20202
20203         This has been removed from the CSS Device Adaptation spec, and
20204         should be safe to remove as it is not documented anywhere (neither
20205         in blog posts).
20206
20207         The viewport meta should only support the legacy features.
20208
20209         * dom/ViewportArguments.cpp:
20210         (WebCore::computeViewportAttributes):
20211         (WebCore::findSizeValue):
20212         (WebCore::findScaleValue):
20213         (WebCore::findUserScalableValue):
20214         * dom/ViewportArguments.h:
20215
20216 2012-11-07  Dominik Röttsches  <dominik.rottsches@intel.com>
20217
20218         [EFL] Fix execution of exif-orientation-image-document.html on EFL Wk2 bot
20219         https://bugs.webkit.org/show_bug.cgi?id=101343
20220
20221         Reviewed by Kenneth Rohde Christiansen.
20222
20223         Add Cairo to the list of backends that support shouldRespectImageOrientation.
20224
20225         No new tests, fixes exif-orientation-image-document.html.
20226
20227         * rendering/RenderObject.cpp:
20228         (WebCore::RenderObject::shouldRespectImageOrientation):
20229
20230 2012-11-06  Yury Semikhatsky  <yurys@chromium.org>
20231
20232         Console not displaying all properties of an Object once native Constructor overwritten
20233         https://bugs.webkit.org/show_bug.cgi?id=101320
20234
20235         Reviewed by Pavel Feldman.
20236
20237         Use Object instance from {}.constructor when formatting inspector messages in the
20238         injected script. Otherwise inspected page may overwrite Object value and break inspector.
20239
20240         Test: inspector/console/console-Object-overwritten.html
20241
20242         * inspector/InjectedScriptSource.js:
20243
20244 2012-11-06  Keishi Hattori  <keishi@webkit.org>
20245
20246         Implement month picking to calendar picker
20247         https://bugs.webkit.org/show_bug.cgi?id=101333
20248
20249         Reviewed by Kent Tamura.
20250
20251         This adds month picker mode to CalendarPicker.
20252
20253         No new tests. Tests will be added later when this feature is enabled in DRT.
20254
20255         * Resources/pagepopups/calendarPicker.css:
20256         (.month-mode .day): Remove rounded corners when in month mode.
20257         * Resources/pagepopups/calendarPicker.js:
20258         (Month.createFromToday): Creates month containing today.
20259         (CalendarPicker): Set this.selectionConstructor to Day or Month depending on the mode. Create DayTables or MonthPickerDaysTable depending on the mode.
20260         (CalendarPicker.prototype.handleToday):
20261         (CalendarPicker.prototype._layoutButtons):
20262         (DaysTable.prototype._renderMonth): Set element.dataset.monthValue for all date nodes.
20263         (DaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20264         (DaysTable.prototype.selectRange): Selects a day.
20265         (DaysTable.prototype.selectRangeAndShowEntireRange): Same as selectRange.
20266         (DaysTable.prototype._selectRangeContainingNode):
20267         (DaysTable.prototype._rangeForNode): Returns Day for node.
20268         (DaysTable.prototype.startDate): Start datetime of visible date range. This value is inclusive.
20269         (DaysTable.prototype.endDate): End datetime of visible date range. This value is exclusive.
20270         (DaysTable.prototype._handleKey):
20271         (MonthPickerDaysTable):
20272         (MonthPickerDaysTable.prototype._markRangeAsSelected): Marks all day nodes in range as selected.
20273         (MonthPickerDaysTable.prototype.selectRange): Selects month. If month is not visible, navigates to that month.
20274         (MonthPickerDaysTable.prototype.selectRangeAndShowEntireRange): Selects month. Navigates to the month.
20275         (MonthPickerDaysTable.prototype._rangeForNode): Returns Month for node.
20276         (MonthPickerDaysTable.prototype._handleKey): Arrow keys simply move the selection forwards or backwards.
20277
20278 2012-11-06  Dan Beam  <dbeam@chromium.org>
20279
20280         Enable REQUEST_AUTOCOMPLETE for chromium port
20281         https://bugs.webkit.org/show_bug.cgi?id=101376
20282
20283         Reviewed by Adam Barth.
20284
20285         Added a runtime enabled feature to control whether HTMLFormElement#requestAutocomplete is visible from JavaScript.
20286
20287         * bindings/generic/RuntimeEnabledFeatures.cpp:
20288         (WebCore):
20289         * bindings/generic/RuntimeEnabledFeatures.h:
20290         (RuntimeEnabledFeatures):
20291
20292         Added a binding from RuntimeEnabledFeatures that triggers [V8EnabledAtRuntime=requestAutocomplete].
20293
20294         (WebCore::RuntimeEnabledFeatures::requestAutocompleteEnabled):
20295
20296         Added a getter to WebCore to ask whether the runtime flag requestAutocomplete is on.
20297
20298         (WebCore::RuntimeEnabledFeatures::setRequestAutocompleteEnabled):
20299
20300         Added a setter to WebCore to affect the runtime flag requestAutocomplete.
20301
20302         * html/HTMLFormElement.idl:
20303
20304         Wrapped commonly grouped features in an #if defined(ENABLED_REQUEST_AUTOCOMPLETE) block and added [V8EnableAtRuntime]
20305         so these features can be changed with a command line switch in the chromium port.
20306
20307 2012-11-06  Adam Barth  <abarth@webkit.org>
20308
20309         [V8] Unify setJSWrapperForDOMObject and setJSWrapperForDOMNode
20310         https://bugs.webkit.org/show_bug.cgi?id=101422
20311
20312         Reviewed by Kentaro Hara.
20313
20314         This patch is another incremental step towards the patch in Bug 10110.
20315         In this step, we unify setJSWrapperForDOMObject and
20316         setJSWrapperForDOMNode.
20317
20318         * bindings/scripts/CodeGeneratorV8.pm:
20319         (GenerateHeader):
20320         (GenerateNormalAttrGetter):
20321         (GenerateConstructorCallback):
20322         (GenerateNamedConstructorCallback):
20323         (GenerateToV8Converters):
20324         * bindings/scripts/test/V8/V8Float64Array.h:
20325         (WebCore::V8Float64Array::wrap):
20326         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20327         (WebCore::V8TestActiveDOMObject::wrap):
20328         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20329         (WebCore::V8TestCustomNamedGetter::wrap):
20330         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20331         (WebCore::V8TestEventConstructor::wrap):
20332         * bindings/scripts/test/V8/V8TestEventTarget.h:
20333         (WebCore::V8TestEventTarget::wrap):
20334         * bindings/scripts/test/V8/V8TestException.h:
20335         (WebCore::V8TestException::wrap):
20336         * bindings/scripts/test/V8/V8TestInterface.h:
20337         (WebCore::V8TestInterface::wrap):
20338         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20339         (WebCore::V8TestMediaQueryListListener::wrap):
20340         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20341         (WebCore::V8TestNamedConstructor::wrap):
20342         * bindings/scripts/test/V8/V8TestNode.cpp:
20343         (WebCore::V8TestNode::constructorCallback):
20344         (WebCore::V8TestNode::wrapSlow):
20345         * bindings/scripts/test/V8/V8TestObj.cpp:
20346         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20347         * bindings/scripts/test/V8/V8TestObj.h:
20348         (WebCore::V8TestObj::wrap):
20349         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20350         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20351         * bindings/v8/DOMDataStore.cpp:
20352         (WebCore::DOMDataStore::current):
20353         * bindings/v8/DOMDataStore.h:
20354         (WebCore::DOMDataStore::get):
20355         (DOMDataStore):
20356         * bindings/v8/V8DOMWrapper.cpp:
20357         * bindings/v8/V8DOMWrapper.h:
20358         (V8DOMWrapper):
20359         (WebCore::V8DOMWrapper::setJSWrapperPrivate):
20360         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20361         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20362         (WebCore::v8HTMLImageElementConstructorCallback):
20363
20364 2012-11-06  Ken Buchanan  <kenrb@chromium.org>
20365
20366         Crash due to column span under button element
20367         https://bugs.webkit.org/show_bug.cgi?id=101402
20368
20369         Reviewed by Abhishek Arya.
20370
20371         When there is a column-spanning child of a RenderButton
20372         splitBlocks() must split the RenderButton as well as its
20373         only permitted direct child, the anonymous block referenced
20374         by m_inner. A crash was occurring because splitBlocks()
20375         calls addChildIgnoringAnonymousColumnBlocks() to add the
20376         cloned m_inner to the cloned RenderButton, which meant the
20377         m_inner for the cloned RenderButton was not being set even
20378         though a child was being added. This violates state
20379         assumptions in the RenderButton code.
20380
20381         This patch prevents any descendants of RenderButton from
20382         spanning columns. Also, it adds a precautionary check in
20383         RenderButton::removeChild() to mitigate problems if similar
20384         state problems are found in future.
20385
20386         * rendering/RenderBlock.cpp:
20387         (WebCore::RenderBlock::containingColumnsBlock):
20388         * rendering/RenderButton.cpp:
20389         (WebCore::RenderButton::removeChild):
20390
20391 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
20392
20393         [Shadow] Pseudo custom-elements should start with 'x-'.
20394         https://bugs.webkit.org/show_bug.cgi?id=100919
20395
20396         Reviewed by Dimitri Glazkov.
20397
20398         Pseuco custom-elements should start with 'x-'. 'Pseudo' starting with '-webkit-' should work
20399         only in UserAgent ShadowDOM. If it's used in Author ShadowDOM, it should not work.
20400
20401         Test: fast/dom/shadow/pseudo-attribute-rendering.html
20402
20403         * css/SelectorChecker.cpp:
20404         (WebCore::SelectorChecker::checkSelector): Added ShadowRoot type check.
20405
20406 2012-11-06  Chris Evans  <cevans@google.com>
20407
20408         Re-order variables in BidiRun and LayoutState
20409         https://bugs.webkit.org/show_bug.cgi?id=100173
20410
20411         Reviewed by Eric Seidel.
20412
20413         The variable re-ordering and use of bitfields for bools has two benefits:
20414         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.
20415         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.
20416
20417         This change is exclusively about size savings; it is performance neutral as you would expect, including on Parser/html5-full-render.html
20418
20419         * platform/text/BidiResolver.h:
20420         (WebCore::BidiCharacterRun::BidiCharacterRun): impact from re-ordering members.
20421         (BidiCharacterRun): provide an efficiently packed bit of storage for BidiRun subclass to use, and re-order members to place bools adjacent.
20422         * rendering/BidiRun.h:
20423         (WebCore::BidiRun::BidiRun): use base class' efficiently packed bit storage for m_hasHyphen.
20424         (BidiRun): m_hasHyphen is now stored in the base class.
20425         * rendering/LayoutState.cpp:
20426         (WebCore::LayoutState::LayoutState):
20427         * rendering/LayoutState.h:
20428         (WebCore::LayoutState::LayoutState): impact from re-ordering members.
20429         (LayoutState): re-order members to place bools adjacently.
20430
20431 2012-11-06  Kent Tamura  <tkent@chromium.org>
20432
20433         [Chromium-win] Refactor date/time format conversion code in LocaleWin
20434         https://bugs.webkit.org/show_bug.cgi?id=101329
20435
20436         Reviewed by Kentaro Hara.
20437
20438         convertWindowsDateFormatToLDML and convertWindowsTimeFormatToLDML did
20439         similar jobs with different code. We can merge them into one function.
20440
20441         As for the date format conversion, we have tokenized a format string and
20442         stored token objects into a vector. We skip token object generation and
20443         generate a LDML-compliant pattern string during parsing.
20444
20445         No new tests. This should make no behavior changes and
20446         WebKit/chromium/tests/LocaleWinTest.cpp has test cases.
20447
20448         * platform/text/win/LocaleWin.cpp:
20449         (WebCore): Remove DateFormatToken, isFooSymbol, ensureShortDateTokens,
20450         convertWindowsDateFormatToLDML, mapCharacterToDateTimeFieldType, and
20451         convertWindowsTimeFormatToLDML.
20452         (WebCore::commitLiteralToken): Store the result to the specified StringBuilder.
20453         (WebCore::convertWindowsDateTimeFormat):
20454         Renamed from parseDateFormat, and supports time format symbols.
20455         (WebCore::LocaleWin::dateFormat): Use convertWindowsDateTimeFormat.
20456         (WebCore::LocaleWin::monthFormat): Ditto.
20457         (WebCore::LocaleWin::timeFormat): Ditto.
20458         (WebCore::LocaleWin::shortTimeFormat): Ditto.
20459         * platform/text/win/LocaleWin.h:
20460         (LocaleWin): Remove ensureShortDateTokens and m_shortDateTokens.
20461
20462 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20463
20464         Make Document::renderer faster by using the cached ptr for RenderView
20465         https://bugs.webkit.org/show_bug.cgi?id=101409
20466
20467         Reviewed by Eric Seidel.
20468
20469         In Bug 101277 I made Document::renderView() just return m_renderView instead
20470         of casting the result of renderer(). While this made renderView() cheaper it
20471         makes more sense to just make renderer() faster for Document pointers and
20472         go back to the out of line method in RenderView.h because lots of places in
20473         the code do document()->renderer().
20474
20475         No new tests, this is just a refactor.
20476
20477         * dom/Document.h:
20478         (WebCore::Document::renderer):
20479         * rendering/RenderView.h:
20480         (WebCore::Document::renderView):
20481
20482 2012-11-06  Adam Barth  <abarth@webkit.org>
20483
20484         [V8] neuterBinding should remember the type of its argument
20485         https://bugs.webkit.org/show_bug.cgi?id=101413
20486
20487         Reviewed by Kentaro Hara.
20488
20489         This is a small part of the patch in
20490         https://bugs.webkit.org/show_bug.cgi?id=101110 that we can land
20491         separately to try to tease out what is causing the memory regression.
20492
20493         * bindings/v8/SerializedScriptValue.cpp:
20494         (WebCore):
20495         (WebCore::neuterBinding):
20496
20497 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20498
20499         Clean up which storage cookie jar functions use
20500         https://bugs.webkit.org/show_bug.cgi?id=101395
20501
20502         Reviewed by Brady Eidson.
20503
20504         * WebCore.exp.in:
20505         * platform/mac/WebCoreSystemInterface.h:
20506         * platform/mac/WebCoreSystemInterface.mm:
20507         Updated for two new WKSI functions.
20508
20509         * platform/CookieJar.h: Added explanatory comments.
20510
20511         * platform/mac/CookieJar.mm:
20512         (WebCore::cookies): Removed fallback on NSHTTPCookieStorage, the WKSI function
20513         already implements it.
20514         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20515         (WebCore::setCookies): Ditto.
20516         (WebCore::cookiesEnabled): Ditto.
20517         (WebCore::getRawCookies): Ditto.
20518         (WebCore::deleteCookie): Ditto.
20519         (WebCore::getHostnamesWithCookies): This function used to look at NSHTTPCookieStorage
20520         exclusively. While it makes sense to bypass private storage session, default storage
20521         session (currently only used for testing on Mac) is never OK to bypass. Changed to
20522         use a WKSI function that supports both.
20523         (WebCore::deleteCookiesForHostname): Ditto.
20524         (WebCore::deleteAllCookies): Ditto.
20525
20526         * platform/network/cf/CookieJarCFNet.cpp:
20527         (WebCore::getHostnamesWithCookies):
20528         (WebCore::deleteCookiesForHostname):
20529         (WebCore::deleteAllCookies):
20530         Updated to match Foundation, so now these functions bypass private session.
20531
20532         * platform/network/cf/CookieStorageCFNet.cpp:
20533         (WebCore::currentCFHTTPCookieStorage): Updated a comment.
20534         (WebCore::defaultCFHTTPCookieStorage):  Added a function that returns cookie storage
20535         for non-private session (or null if that would be an NSHTTPCookieStorage).        
20536         (WebCore::startObservingCookieChanges): We do not want to observe private cookies
20537         here, and we certainly don't want a mismatch between start/stop due to private
20538         browsing mode changes.
20539         (WebCore::stopObservingCookieChanges): Ditto.
20540
20541         * platform/network/cf/CookieStorageCFNet.h: Added defaultCFHTTPCookieStorage().
20542
20543 2012-11-06  Huang Dongsung  <luxtella@company100.net>
20544
20545         Build fix. r133601 broke the Windows build.
20546         https://bugs.webkit.org/show_bug.cgi?id=101404
20547
20548         Reviewed by Noam Rosenthal.
20549
20550         Only static const integral data members can be initialized within a class in the
20551         Windows, so we initialize static const double date members out of the class.
20552
20553         * platform/graphics/texmap/TextureMapper.cpp:
20554         (BitmapTexturePool):
20555         (WebCore):
20556
20557 2012-11-06  Simon Fraser  <simon.fraser@apple.com>
20558
20559         -webkit-background-clip:text produces artifacts when applied to the body and the browser is resized
20560         https://bugs.webkit.org/show_bug.cgi?id=89287
20561
20562         Reviewed by Beth Dakin.
20563
20564         If the body had -webkit-background-clip: text, we'd fail to paint
20565         anything behind it, so would see garbage pixels.
20566         
20567         Fix by having RenderView::paintBoxDecorations() check for a background-clip of "text"
20568         on the renderer that paints the root background.
20569         
20570         Added some new pixel tests for combinations of html and body transform
20571         and backgrounds; earlier versions of the patch broke some of these tests.
20572
20573         Tests: fast/backgrounds/background-clip-text-on-body.html
20574                fast/backgrounds/transformed-body-background.html
20575                fast/backgrounds/transformed-body-html-background.html
20576                fast/backgrounds/transformed-html-body-background.html
20577
20578         * rendering/RenderView.cpp:
20579         (WebCore::rendererObscuresBackground): Broke up the single condition
20580         into early 'false' returns when possible. We need to also check whether
20581         the renderer that actually paints the background (which might be the body)
20582         will fill it; background-clip: text does not.
20583         (WebCore::RenderView::paintBoxDecorations): Rather than checking firstChild(),
20584         actually check the root renderer, so that we can reliably get to the renderer
20585         that mains the root background.
20586
20587 2012-11-06  Stephen White  <senorblanco@chromium.org>
20588
20589         Implement save and restore for a bunch of InternalSettings state
20590         https://bugs.webkit.org/show_bug.cgi?id=101394
20591
20592         Reviewed by Dirk Pranke.
20593
20594         In http://trac.webkit.org/changeset/133399, I resolved a bunch of 
20595         flaky tests by saving and restoring the InternalSettings state
20596         EnableCompositingForFixedPosition.  On a hunch, I git grepped for all
20597         internal settings state which is being set by layout tests but not
20598         saved and restored.  It turns out there about 15 calls.
20599
20600         This patch takes care of five of them, mostly compositing-related.
20601         The others I was either not sure about, or were already at least
20602         being reset to known values by the testing harness.
20603
20604         Hopefully this will alleviate some further test flakiness.
20605
20606         * testing/InternalSettings.cpp:
20607         * testing/InternalSettings.h:
20608
20609 2012-11-06  KyungTae Kim  <ktf.kim@samsung.com>
20610
20611         Fix build warning in RenderLayer.cpp caused by r133628
20612         https://bugs.webkit.org/show_bug.cgi?id=101401
20613
20614         Reviewed by Simon Fraser.
20615
20616         The static function WebCore::frameViewFromLayer is only used when USE(ACCELERATED_COMPOSITING),
20617         so define it only that case for removing -Wunused-function warning
20618
20619         * rendering/RenderLayer.cpp:
20620         (WebCore):
20621
20622 2012-11-06  Hans Muller  <hmuller@adobe.com>
20623
20624         [CSS Exclusions] Store ExclusionPolygonEdge vertices in clockwise order
20625         https://bugs.webkit.org/show_bug.cgi?id=100763
20626
20627         Reviewed by Darin Adler.
20628
20629         The ExclusionPolygon's internal logic, notably getVertexIntersectionVertices(),
20630         assumes that ExclusionPolygonEdge vertices are stored in clockwise order.
20631         If this is not true, then we construct the polygon's edges in reverse.
20632
20633         To determine if the vertices are in clockwise order, we compare the slope
20634         of the line between the top,left vertex and its previous vertex, with the
20635         the slope of the line of vertices before and after the top,left vertex.
20636         If the slope of the latter is greater, then top,left vertex is located
20637         to its left, and the vertices are clockwise.
20638
20639         Test: fast/exclusions/shape-inside/shape-inside-counterclockwise-polygon.html
20640
20641         * rendering/ExclusionPolygon.cpp:
20642         (WebCore::determinant): Used to decide if the min vertex is on the left side of the line that passes through its adjacent vertices.
20643         (WebCore::ExclusionPolygon::ExclusionPolygon): If the polygon's vertices are specified in counterclockwise order, construct the edges in reverse.
20644         (WebCore::appendIntervalX): Made this an inline since it was only defined as a function for the sake of clarity.
20645
20646 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
20647
20648         [BlackBerry] Update BB10 form theme.
20649         https://bugs.webkit.org/show_bug.cgi?id=100760
20650
20651         Reviewed by Rob Buis.
20652
20653         RIM PR 238123
20654         Internal Reviewed by Chris Hutten-Czapski
20655         BB10 selection theme use slice image function to draw selection button,
20656         any border-radius setting other than 0 will make the button corner
20657         clipped. Always set button border-radius: 0 for BB10 theme.
20658
20659         * css/themeBlackBerry.css:
20660         (select[size][multiple]):
20661         (select[size="1"]):
20662
20663 2012-11-06  Elliott Sprehn  <esprehn@chromium.org>
20664
20665         Remove branch from inside RenderObject::view now that renderer() is more expensive
20666         https://bugs.webkit.org/show_bug.cgi?id=101277
20667
20668         Reviewed by Eric Seidel.
20669
20670         It was observed in Bug 100057 that calling renderer() repeatedly now that it has a branch
20671         can be a performance regression. Now that we no longer keep a separate pointer for rare data
20672         in Document, we can use that space for a pointer to the RenderView making RenderObject::view()
20673         faster and removing the branch.
20674
20675         This is a 1% improvement on Parser/html5-full-render.html
20676
20677         This also cleans up the code because it turns out we don't need to have RenderObject::view() in
20678         RenderView.h because we can just call Document::renderView() and not do toRenderView. This makes
20679         it easier to find this method as it exists in the right header file now.
20680
20681         No new tests, this is just a refactor.
20682
20683         * WebCore.exp.in: Remove export of Document::renderView since it's inline now.
20684         * dom/Document.cpp:
20685         (WebCore::Document::Document):
20686         (WebCore::Document::setRenderer):
20687         (WebCore):
20688         * dom/Document.h:
20689         (WebCore::Document::renderView):
20690         (Document):
20691         * rendering/RenderObject.h:
20692         (WebCore::RenderObject::view):
20693         * rendering/RenderView.h:
20694         (WebCore):
20695
20696 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20697
20698         Unreviewed, rolling out r133526.
20699         http://trac.webkit.org/changeset/133526
20700         https://bugs.webkit.org/show_bug.cgi?id=101388
20701
20702         May have caused 15% memory regression in Chromium (Requested
20703         by jsbell|gardener on #webkit).
20704
20705         * UseV8.cmake:
20706         * WebCore.gypi:
20707         * bindings/scripts/CodeGeneratorV8.pm:
20708         (GenerateHeader):
20709         (GenerateNormalAttrGetter):
20710         (GenerateConstructorCallback):
20711         (GenerateNamedConstructorCallback):
20712         (GenerateToV8Converters):
20713         (GetDomMapFunction):
20714         (GetDomMapName):
20715         * bindings/scripts/test/V8/V8Float64Array.h:
20716         (WebCore::V8Float64Array::wrap):
20717         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
20718         (WebCore::V8TestActiveDOMObject::wrap):
20719         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
20720         (WebCore::V8TestCustomNamedGetter::wrap):
20721         * bindings/scripts/test/V8/V8TestEventConstructor.h:
20722         (WebCore::V8TestEventConstructor::wrap):
20723         * bindings/scripts/test/V8/V8TestEventTarget.h:
20724         (WebCore::V8TestEventTarget::wrap):
20725         * bindings/scripts/test/V8/V8TestException.h:
20726         (WebCore::V8TestException::wrap):
20727         * bindings/scripts/test/V8/V8TestInterface.h:
20728         (WebCore::V8TestInterface::wrap):
20729         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
20730         (WebCore::V8TestMediaQueryListListener::wrap):
20731         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
20732         (WebCore::V8TestNamedConstructor::wrap):
20733         * bindings/scripts/test/V8/V8TestNode.cpp:
20734         (WebCore::V8TestNode::constructorCallback):
20735         (WebCore::V8TestNode::wrapSlow):
20736         * bindings/scripts/test/V8/V8TestObj.cpp:
20737         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
20738         * bindings/scripts/test/V8/V8TestObj.h:
20739         (WebCore::V8TestObj::wrap):
20740         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
20741         (WebCore::V8TestSerializedScriptValueInterface::wrap):
20742         * bindings/v8/DOMDataStore.cpp:
20743         (WebCore::DOMDataStore::DOMDataStore):
20744         (WebCore::DOMDataStore::~DOMDataStore):
20745         (WebCore::DOMDataStore::current):
20746         (WebCore::DOMDataStore::reportMemoryUsage):
20747         * bindings/v8/DOMDataStore.h:
20748         (WebCore::DOMDataStore::domNodeMap):
20749         (WebCore::DOMDataStore::domObjectMap):
20750         (DOMDataStore):
20751         * bindings/v8/DOMWrapperMap.h:
20752         (WebCore):
20753         (DOMWrapperMap):
20754         (WebCore::DOMWrapperMap::~DOMWrapperMap):
20755         (WebCore::DOMWrapperHashMap::remove):
20756         * bindings/v8/DOMWrapperWorld.h:
20757         * bindings/v8/IntrusiveDOMWrapperMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20758         (WebCore):
20759         (IntrusiveDOMWrapperMap):
20760         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
20761         * bindings/v8/ScriptProfiler.cpp:
20762         * bindings/v8/SerializedScriptValue.cpp:
20763         (WebCore::neuterBinding):
20764         * bindings/v8/V8DOMMap.cpp: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20765         (WebCore):
20766         (WebCore::getDOMNodeMap):
20767         (WebCore::getDOMObjectMap):
20768         * bindings/v8/V8DOMMap.h: Copied from Source/WebKit/chromium/src/WebScriptController.cpp.
20769         (WebCore):
20770         * bindings/v8/V8DOMWindowShell.cpp:
20771         * bindings/v8/V8DOMWrapper.cpp:
20772         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
20773         (WebCore):
20774         * bindings/v8/V8DOMWrapper.h:
20775         (V8DOMWrapper):
20776         (WebCore::V8DOMWrapper::getCachedWrapper):
20777         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
20778         * bindings/v8/V8GCController.cpp:
20779         * bindings/v8/V8NPObject.cpp:
20780         * bindings/v8/WorkerContextExecutionProxy.cpp:
20781         * bindings/v8/WorkerScriptController.cpp:
20782         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
20783         (WebCore::v8HTMLImageElementConstructorCallback):
20784
20785 2012-11-06  Alexey Proskuryakov  <ap@apple.com>
20786
20787         Some cookie code cleanup
20788         https://bugs.webkit.org/show_bug.cgi?id=101375
20789
20790         Reviewed by Dan Bernstein.
20791
20792         * platform/CookieJar.h: Fixed style. Grouped functions by which storage they operate
20793         on in Mac port, but didn't add explanatory comments yet, because this is different
20794         in some ports.
20795
20796         * platform/mac/CookieJar.mm:
20797         (WebCore): Removed special code for isHTTPOnly, it's present in Foundation in all
20798         supported OS X versions.
20799         (WebCore::filterCookies): Use -isHTTPOnly directly.
20800         (WebCore::cookies): Get rid of a variable for URL, implicit conversion works just as well.
20801         (WebCore::cookieRequestHeaderFieldValue): Ditto.
20802         (WebCore::setCookies): Assert that no more than one cookie was created from one
20803         Set-Cookie header, document.cookie can only be used to set one cookie at a time.
20804         (WebCore::getRawCookies): Removed useless local variables.
20805
20806         * platform/network/CookieStorage.h: Removed an unneeded include, clarified a comment.
20807
20808         * platform/network/HTTPHeaderMap.h: Added a FIXME.
20809
20810 2012-11-06  John Griggs  <jgriggs@rim.com>
20811
20812         Implement MediaPlayerPrivate::didLoadingProgress for BlackBerry platform
20813         https://bugs.webkit.org/show_bug.cgi?id=100378
20814
20815         Reviewed by Eric Carlson.
20816
20817         Implement this method for BlackBerry platform.
20818
20819         New test: LayoutTests/media/progress-events-generated-correctly.html
20820
20821         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
20822         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
20823         (WebCore::MediaPlayerPrivate::didLoadingProgress):
20824         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
20825         (MediaPlayerPrivate):
20826
20827 2012-11-06  Adam Barth  <abarth@webkit.org>
20828
20829         DOMImplementation should use ScriptWrappable
20830         https://bugs.webkit.org/show_bug.cgi?id=101279
20831
20832         Reviewed by Eric Seidel.
20833
20834         This patch makes DOMImplementation ScriptWrappable. Both the V8 and JSC
20835         bindings automatically detect the presence of this base class and use
20836         it to optimize getting and setting JavaScript wrappers.
20837
20838         This patch is a 23% progression on Bindings/document-implementation for
20839         the V8 bindings and a 69% progression for the JSC bindings.
20840
20841         * dom/DOMImplementation.h:
20842
20843 2012-11-06  Benjamin Poulain  <benjamin@webkit.org>
20844
20845         Speed up TransformationMatrix::multiply() on modern ARM
20846         https://bugs.webkit.org/show_bug.cgi?id=101084
20847
20848         Reviewed by Gavin Barraclough.
20849
20850         The main improvements are:
20851         -Store the full source matrix in the registers d16 to d31. This way we avoid going
20852          back and forth to memory to use the operands.
20853          Since the full matrix is in register, we can also directly modify the memory of m_matrix,
20854          we no longer need the temporary matrix memcopied at the end.
20855         -Use of LoadMultiple and StoreMultiple to load-store the matrix parameters.
20856         -Use Multiply-Accumulate instead of VMUL followed by VADD. This half the number of instruction.
20857         -On regular ARMv7, using a loop to reuse the same code for each row also improve the performance.
20858
20859         Depending on the hardware, the new code takes 20% to 42% less time than the basic implementation.
20860
20861         * platform/graphics/transforms/TransformationMatrix.cpp:
20862         (WebCore::TransformationMatrix::multiply):
20863         * platform/graphics/transforms/TransformationMatrix.h:
20864         (TransformationMatrix):
20865
20866 2012-11-06  Sheriff Bot  <webkit.review.bot@gmail.com>
20867
20868         Unreviewed, rolling out r133529 and r133562.
20869         http://trac.webkit.org/changeset/133529
20870         http://trac.webkit.org/changeset/133562
20871         https://bugs.webkit.org/show_bug.cgi?id=101371
20872
20873         Caused 15% memory regression on Chromium page cyclers
20874         (Requested by jsbell|gardener on #webkit).
20875
20876         * platform/text/LineBreakIteratorPoolICU.h:
20877         (WebCore::LineBreakIteratorPool::take):
20878         (WebCore::LineBreakIteratorPool::put):
20879         (LineBreakIteratorPool):
20880         * platform/text/TextBreakIterator.cpp:
20881         (WebCore::acquireLineBreakIterator):
20882         * platform/text/TextBreakIterator.h:
20883         (WebCore):
20884         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
20885         (WebCore::LazyLineBreakIterator::get):
20886         (WebCore::LazyLineBreakIterator::reset):
20887         (LazyLineBreakIterator):
20888         * platform/text/TextBreakIteratorICU.cpp:
20889         (WebCore::acquireLineBreakIterator):
20890         (WebCore::releaseLineBreakIterator):
20891         * platform/text/gtk/TextBreakIteratorGtk.cpp:
20892         (WebCore::setUpIterator):
20893         (WebCore::acquireLineBreakIterator):
20894         * platform/text/wince/TextBreakIteratorWinCE.cpp:
20895         (WebCore::acquireLineBreakIterator):
20896         * rendering/RenderBlockLineLayout.cpp:
20897         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
20898         * rendering/RenderText.cpp:
20899         (WebCore::RenderText::computePreferredLogicalWidths):
20900         * rendering/RenderText.h:
20901         (WebCore):
20902         * rendering/break_lines.cpp:
20903         (WebCore):
20904         (WebCore::isBreakableSpace):
20905         (WebCore::needsLineBreakIterator):
20906         (WebCore::nextBreakablePosition):
20907         (WebCore::nextBreakablePositionIgnoringNBSP):
20908         * rendering/break_lines.h:
20909         (WebCore):
20910         (WebCore::isBreakable):
20911
20912 2012-11-06  Peter Beverloo  <peter@chromium.org>
20913
20914         [Chromium] Enable the JavaScript i18n API for Android
20915         https://bugs.webkit.org/show_bug.cgi?id=101357
20916
20917         Reviewed by Adam Barth.
20918
20919         Remove the conditional dependency on the v8-i18n API. The library is now
20920         always available in a Chromium for Android checkout.
20921
20922         * WebCore.gyp/WebCore.gyp:
20923
20924 2012-11-06  Adam Barth  <abarth@webkit.org>
20925
20926         ScriptWrappable should work for more than just Node
20927         https://bugs.webkit.org/show_bug.cgi?id=101319
20928
20929         Reviewed by Eric Seidel.
20930
20931         This patch generalizes the inline cached wrapper code path to work with
20932         all subclasses of ScriptWrappable, not just Node.
20933
20934         * bindings/js/JSDOMBinding.h:
20935         (WebCore::setInlineCachedWrapper):
20936         (WebCore::getInlineCachedWrapper):
20937         (WebCore):
20938         (WebCore::clearInlineCachedWrapper):
20939         (WebCore::cacheWrapper):
20940         * bindings/js/JSNodeCustom.h:
20941
20942 2012-11-06  Tiancheng Jiang  <tijiang@rim.com>
20943
20944         [BlackBerry] Update BB10 form theme.
20945         https://bugs.webkit.org/show_bug.cgi?id=100760
20946
20947         Reviewed by Rob Buis.
20948
20949         Revert webkit/ce306dcc698199a6f7ce679daf0a30c25d3a3d43 slider theme
20950         change which break media control and vertical slider.
20951
20952         RIM PR 236993
20953         Internal Reviewed by Jeff Rogers.
20954
20955         * platform/blackberry/RenderThemeBlackBerry.cpp:
20956         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
20957         (WebCore::RenderThemeBlackBerry::paintSliderThumb):
20958
20959 2012-11-06  Michael Saboff  <msaboff@apple.com>
20960
20961         canonicalizedTitle() shouldn't convert 8 bit title strings to 16 bit
20962         https://bugs.webkit.org/show_bug.cgi?id=101105
20963
20964         Reviewed by Darin Adler.
20965
20966         Turned canonicalizedTitle() into a templated function based on character type.
20967         Changed call in updateTitle() to check the bitness of the title string to call
20968         the right template flavor of canonicalizedTitle().
20969         Made supporting changes by adding displayBufferModifiedByEncoding(LChar*, ...)
20970         and made TextEncoding::displayBuffer() a templated function as well.
20971
20972         No new tests needed, as functionality is unchanged.
20973
20974         * dom/Document.cpp:
20975         (WebCore::canonicalizedTitle):
20976         (WebCore::Document::updateTitle):
20977         (WebCore::Document::displayBufferModifiedByEncodingInternal):
20978         * dom/Document.h:
20979         (WebCore::Document::displayBufferModifiedByEncoding):
20980         * platform/text/TextEncoding.h:
20981         (TextEncoding):
20982         (WebCore::TextEncoding::displayBuffer):
20983
20984 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
20985
20986         Fix RenderGeometryMap assertion when layers are scrolled during layout
20987         https://bugs.webkit.org/show_bug.cgi?id=101292
20988
20989         Reviewed by Beth Dakin.
20990
20991         When we set RenderLayer scroll positions as part of layout, we don't want
20992         to update compositing layers right away. Updating compositing layers
20993         requires that the entire layer tree has been updated from renderers,
20994         so that the geometry of all RenderLayers can be trusted. When this state
20995         was violated, RenderGeometryMap asserts.
20996         
20997         Fix by bailing from updateCompositingLayersAfterScroll() if FrameView
20998         tells us that we're doing layout. A full update of the compositing layers
20999         will happen later anyway.
21000
21001         Test: compositing/geometry/geometry-map-scroll-during-layout-assertion.html
21002
21003         * rendering/RenderLayer.cpp:
21004         (WebCore::frameViewFromLayer):
21005         (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
21006
21007 2012-11-06  Michael Saboff  <msaboff@apple.com>
21008
21009         quoteCSSString() always creates a 16 bit string
21010         https://bugs.webkit.org/show_bug.cgi?id=101004
21011
21012         Reviewed by Darin Adler.
21013
21014         Added a new templated helper based on character type from the logic of quoteCSSString() to process
21015         the argument string based on its native bitness.
21016
21017         Functionality covered by existing tests.
21018
21019         * css/CSSParser.cpp:
21020         (WebCore::quoteCSSStringInternal):
21021         (WebCore::quoteCSSString):
21022
21023 2012-11-06  Andras Becsi  <andras.becsi@digia.com>
21024
21025         [Qt][WK2] Fit-to-width broken on pages with viewport meta tag
21026         https://bugs.webkit.org/show_bug.cgi?id=99715
21027
21028         Reviewed by Jocelyn Turcotte.
21029
21030         Add a bool that indicates if the content had an explicit
21031         initial-scale in the viewport meta tag.
21032
21033         * dom/ViewportArguments.cpp:
21034         (WebCore::computeViewportAttributes):
21035         * dom/ViewportArguments.h:
21036         (ViewportAttributes):
21037
21038 2012-11-06  Mike West  <mkwst@chromium.org>
21039
21040         CSP 1.1: Tweak the script interface to match the spec.
21041         https://bugs.webkit.org/show_bug.cgi?id=101321
21042
21043         Reviewed by Adam Barth.
21044
21045        This patch brings WebKit in line with the changes made to the spec in
21046        https://dvcs.w3.org/hg/content-security-policy/rev/5a29424a37d4.
21047        Specifically, the following:
21048
21049        - Renamed 'document.SecurityPolicy' to 'document.securityPolicy'
21050        - Converted the following to read-only boolean attributes:
21051          - 'allowsEval'
21052          - 'allowsInlineScript'
21053          - 'allowsInlineStyle'
21054          - 'isActive'
21055
21056         These changes only have effect for ports with CSP_NEXT enabled.
21057
21058         Tests: http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinescript.html
21059                http/tests/security/contentSecurityPolicy/1.1/securitypolicy-allowinlinestyle.html
21060
21061         * dom/Document.idl:
21062         * page/DOMSecurityPolicy.idl:
21063             Tweaking the IDL files to match the new definition of the
21064             functionlity in the spec.
21065
21066 2012-11-06  Andrey Lushnikov  <lushnikov@google.com>
21067
21068         Added console.clear() method
21069
21070         Web Inspector: add console.clear()
21071         https://bugs.webkit.org/show_bug.cgi?id=101021
21072
21073         Reviewed by Vsevolod Vlasov.
21074
21075         Adds native implementation of console.clear
21076
21077         Test: inspector/console/console-clear-function.html
21078
21079         * English.lproj/localizedStrings.js: Adds 'Console was cleared' string
21080         * inspector/ConsoleMessage.cpp:
21081         (WebCore::messageTypeValue): Adds ClearMessageType
21082         * inspector/Inspector.json:
21083         * inspector/InspectorConsoleAgent.cpp:
21084         (WebCore::InspectorConsoleAgent::addMessageToConsole):
21085         * inspector/front-end/ConsoleMessage.js:
21086         (WebInspector.ConsoleMessageImpl.prototype._formatMessage): Display strategy for "clear" message
21087         * inspector/front-end/ConsoleModel.js:
21088         * inspector/front-end/inspector.css:
21089         (.console-info): Adds style for the 'console was cleared' message
21090         * page/Console.cpp: backend binging for console.clear()
21091         (WebCore::Console::clear):
21092         (WebCore):
21093         * page/Console.h:
21094         (Console):
21095         * page/Console.idl: Adds 'clear' message to protocol
21096         * page/ConsoleTypes.h:
21097
21098 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21099
21100         Heap-buffer-overflow in WebCore::TextTrackCueList::add
21101         https://bugs.webkit.org/show_bug.cgi?id=101018
21102
21103         Reviewed by Eric Carlson.
21104
21105         Added an extra check to avoid using a negative array index when a cue
21106         is added to the beginning of the list.
21107
21108         Test case added to LayoutTests/media/track/track-add-remove-cue.html.
21109
21110         * html/track/TextTrackCueList.cpp:
21111         (WebCore::TextTrackCueList::add):
21112
21113 2012-11-06  Aaron Colwell  <acolwell@chromium.org>
21114
21115         Regression(r132681): Heap-use-after-free in WebCore::RenderTextTrackCue::layout
21116         https://bugs.webkit.org/show_bug.cgi?id=100981
21117
21118         Reviewed by Eric Carlson.
21119
21120         Fixing a TextTrackCue use after free bug. textTrackRemoveCues() needs to be called when
21121         an HTMLTrackElement is removed from an HTMLMediaElement so that references to
21122         TextTrackCues are removed from m_cueTree.
21123
21124         Test: media/track/track-remove-by-setting-innerHTML.html
21125
21126         * html/HTMLMediaElement.cpp:
21127         (WebCore::HTMLMediaElement::willRemoveTrack):
21128
21129 2012-10-23  Stephen White  <senorblanco@chromium.org>
21130
21131         [skia] Implement reference (url) filters on composited layers.
21132         https://bugs.webkit.org/show_bug.cgi?id=100142
21133
21134         Reviewed by James Robinson.
21135
21136         Covered by css3/filters/effect-reference-hw.html
21137
21138         * WebCore.gyp/WebCore.gyp:
21139         * WebCore.gypi:
21140         Add new files.
21141         * WebCore.xcodeproj/project.pbxproj:
21142         Mark FilterEffect.h as "private".
21143         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
21144         (WebCore::GraphicsLayerChromium::setFilters):
21145         Use the new SkImageFilter builder and setLayer() infrastructure, but
21146         only if there's a reference filter in the chain.
21147         * platform/graphics/filters/FEBlend.h:
21148         * platform/graphics/filters/FEColorMatrix.h:
21149         * platform/graphics/filters/FEGaussianBlur.h:
21150         * platform/graphics/filters/FELighting.h:
21151         * platform/graphics/filters/FEMorphology.h:
21152         * platform/graphics/filters/FilterEffect.h:
21153         (WebCore::FilterEffect::createImageFilter):
21154         Add createImageFilter() factory function for building SkImageFilters.
21155         * platform/graphics/filters/FilterOperation.h:
21156         (WebCore::FilterOperation::ReferenceFilterOperation::filterEffect):
21157         (WebCore::FilterOperation::ReferenceFilterOperation::setFilterEffect):
21158         Add a FilterEffect member to ReferenceFilterOperation, and accessors
21159         for it.
21160         * platform/graphics/filters/skia/FEBlendSkia.cpp:
21161         (WebCore::FEBlend::createImageFilter):
21162         Implement SkImageFilter building for FEBlend filter.
21163         * platform/graphics/filters/skia/FEColorMatrixSkia.cpp:
21164         (WebCore::createColorFilter):
21165         (WebCore::FEColorMatrix::platformApplySkia):
21166         Refactor creation of SkColorFilter from an FEColorMatrix filter.
21167         (WebCore::FEColorMatrix::createImageFilter):
21168         Implement SkImageFilter building for FEColorMatrix filter.
21169         * platform/graphics/filters/skia/FEGaussianBlurSkia.cpp:
21170         (WebCore::FEGaussianBlur::createImageFilter):
21171         Implement SkImageFilter building for FEGaussianBlur filter.
21172         * platform/graphics/filters/skia/FELightingSkia.cpp:
21173         (WebCore::FELighting::createImageFilter):
21174         Implement SkImageFilter building for FELighting filters.
21175         * platform/graphics/filters/skia/FEMorphologySkia.cpp:
21176         (WebCore::FEMorphology::createImageFilter):
21177         Implement SkImageFilter building for FEMorphology filter.
21178         * platform/graphics/filters/skia/SkiaImageFilterBuilder.cpp: Added.
21179         (WebCore::SkiaImageFilterBuilder::SkiaImageFilterBuilder):
21180         (WebCore::SkiaImageFilterBuilder::build):
21181         * platform/graphics/filters/skia/SkiaImageFilterBuilder.h:
21182         Implement new helper class for building an SkImageFilter DAG from
21183         a FilterEffect DAG.  Can also build from FilterOperations list.
21184         * rendering/FilterEffectRenderer.cpp:
21185         (WebCore::FilterEffectRenderer::build):
21186         When building FilterEffects from a reference filter, also store the
21187         generated DAG on the ReferenceFilterOperation itself.
21188         * rendering/RenderLayer.cpp:
21189         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
21190         Even when in composited mode, if there's a reference filter in the 
21191         chain, build the FilterEffect DAG from it.
21192
21193 2012-11-06  Max Feil  <mfeil@rim.com>
21194
21195         [BlackBerry] Automatically go fullscreen on video play
21196         https://bugs.webkit.org/show_bug.cgi?id=101100
21197
21198         Reviewed by Eric Carlson.
21199
21200         There is a requirement to have HTML5 video automatically enter
21201         fullscreen when a video starts playing (PR131774). This change
21202         implements this feature, with restrictions. The main restriction
21203         is adherence to WebKit's philosophy of only entering fullscreen
21204         due to a user gesture. This is important in order to avoid
21205         pop-up advertisements and other unwanted fullscreen content.
21206         One consequence of this is that video elements with the autoplay
21207         attribute will not automatically enter fullscreen.
21208
21209         Other caveats:
21210         - This feature applies only to "small screen" devices where
21211         automatically going fullscreen makes more sense.
21212         - Fullscreen will only be entered automatically when the
21213         video is played from the beginning (current time is zero).
21214         It is assumed that if the user is resuming play from a paused
21215         state and is not in fullscreen mode, then they exited fullscreen
21216         mode intentionally.
21217
21218         Test: platform/blackberry/media/video-automatic-fullscreen.html
21219
21220         * html/HTMLMediaElement.cpp:
21221         (WebCore::HTMLMediaElement::mediaPlayerEnterFullscreen):
21222         (WebCore):
21223         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreen):
21224         (WebCore::HTMLMediaElement::mediaPlayerIsFullscreenPermitted):
21225         * html/HTMLMediaElement.h:
21226         (HTMLMediaElement):
21227         * platform/graphics/MediaPlayer.h:
21228         (WebCore::MediaPlayerClient::mediaPlayerEnterFullscreen):
21229         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreen):
21230         (WebCore::MediaPlayerClient::mediaPlayerIsFullscreenPermitted):
21231         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
21232         (WebCore::MediaPlayerPrivate::play):
21233         (WebCore::MediaPlayerPrivate::waitMetadataTimerFired):
21234         (WebCore::MediaPlayerPrivate::conditionallyGoFullscreenAfterPlay):
21235         (WebCore):
21236         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
21237         (MediaPlayerPrivate):
21238
21239 2012-11-06  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
21240
21241         [WK2][EFL][GTK] early return of checkSpellingOfString treats correct words as misspelled
21242         https://bugs.webkit.org/show_bug.cgi?id=101215
21243
21244         Reviewed by Gustavo Noronha Silva.
21245
21246         Save the misspelled location and length of the string to the default values (-1, 0)
21247         at the beginning of the checkSpellingOfString method.
21248         It assumes that the words are spelled correctly and early return of method doesn't
21249         cause assertions in findFirstMisspelling (WebCore/editing/TextCheckingHelper.cpp).
21250
21251         * platform/text/enchant/TextCheckerEnchant.cpp:
21252         (TextCheckerEnchant::checkSpellingOfString):
21253
21254 2012-11-06  Huang Dongsung  <luxtella@company100.net>
21255
21256         [TexMap] Remove unused textures in the texture pool.
21257         https://bugs.webkit.org/show_bug.cgi?id=100706
21258
21259         Reviewed by Noam Rosenthal.
21260
21261         Currently, we do not remove textures in the texture pool of
21262         TextureMapper. The texture pool is destroyed when TextureMapper is
21263         destroyed. It means the texture pool consumes texture memory until its
21264         destruction. This patch removes textures if the textures have been not
21265         used in 3 seconds as LayerTreeCoordinator manages UpdateAtlases.
21266
21267         Changing cache policy is not testable in layout tests.
21268
21269         * platform/graphics/texmap/TextureMapper.cpp:
21270         (WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry):
21271         (WebCore::BitmapTexturePoolEntry::markUsed):
21272         (WebCore::BitmapTexturePoolEntry::compareTimeLastUsed):
21273         (BitmapTexturePoolEntry):
21274         (WebCore):
21275         (BitmapTexturePool):
21276         (WebCore::BitmapTexturePool::BitmapTexturePool):
21277         (WebCore::BitmapTexturePool::scheduleReleaseUnusedTextures):
21278         (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
21279         (WebCore::BitmapTexturePool::acquireTexture):
21280         (WebCore::TextureMapper::acquireTextureFromPool):
21281         (WebCore::TextureMapper::TextureMapper):
21282         (WebCore::TextureMapper::~TextureMapper):
21283         * platform/graphics/texmap/TextureMapper.h:
21284         (WebCore):
21285         (TextureMapper):
21286
21287 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
21288
21289         Web Inspector: NMI instrument CachedMetadata. It uses ~300k on plus.google.com
21290         https://bugs.webkit.org/show_bug.cgi?id=101067
21291
21292         Reviewed by Yury Semikhatsky.
21293
21294         Plain vanilla instrumentation for CachedMetadata class.
21295
21296         * CMakeLists.txt:
21297         * GNUmakefile.list.am:
21298         * Target.pri:
21299         * WebCore.gypi:
21300         * WebCore.vcproj/WebCore.vcproj:
21301         * WebCore.xcodeproj/project.pbxproj:
21302         * loader/CachedMetadata.cpp: Added.
21303         (WebCore):
21304         (WebCore::CachedMetadata::reportMemoryUsage):
21305         * loader/CachedMetadata.h:
21306         (CachedMetadata):
21307
21308 2012-11-06  Alexei Filippov  <alph@chromium.org>
21309
21310         Web Inspector: report physical memory really committed for JS heap in NMI
21311         https://bugs.webkit.org/show_bug.cgi?id=101335
21312
21313         Some OSes (e.g. Linux) perform lazy commits of requested memory.
21314         Because of that the committed memory may not retain any physical
21315         memory until the very first access to the committed chunk.
21316         That led to JS heap reported more physical memory than was currently
21317         in use.
21318
21319         Reviewed by Vsevolod Vlasov.
21320
21321         * bindings/v8/ScriptGCEvent.cpp:
21322         (WebCore::ScriptGCEvent::getHeapSize):
21323
21324 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21325
21326         Web Inspector: Breakpoint is not removed when it was set in non-formatted mode and then removed while in formatted mode.
21327         https://bugs.webkit.org/show_bug.cgi?id=100595
21328
21329         Reviewed by Yury Semikhatsky.
21330
21331         Breakpoints in storage are now updated/removed by file name saved from primary location when they were created,
21332         not by the name returned by UISourceCode (as this one could change when UISourceCode is formatted).
21333         SourceFileId is now used across BreakpointManager to specify file name.
21334         And breakpointStorageId is now used to specify (fileName, lineNumber) pair.
21335
21336         * inspector/front-end/BreakpointManager.js:
21337         (WebInspector.BreakpointManager.sourceFileId):
21338         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
21339         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved): Removed redundant check.
21340         (WebInspector.BreakpointManager.prototype.breakpointLocationsForUISourceCode):
21341         (WebInspector.BreakpointManager.Breakpoint):
21342         (WebInspector.BreakpointManager.Breakpoint.prototype._breakpointStorageId):
21343         (WebInspector.BreakpointManager.Storage.prototype._restoreBreakpoints):
21344         (set WebInspector.BreakpointManager.Storage.Item):
21345
21346 2012-11-06  Keishi Hattori  <keishi@webkit.org>
21347
21348         The "Rect" class in WebCore/Resources/pagepopups/pickerCommon.js should be renamed
21349         https://bugs.webkit.org/show_bug.cgi?id=101304
21350
21351         Reviewed by Kent Tamura.
21352
21353         The name Rect conflicts with CSS Rect.
21354
21355         No new tests. Just renaming.
21356
21357         * Resources/pagepopups/pickerCommon.js:
21358         (Rectangle): Renamed from Rect.
21359         (Rectangle.prototype.toString):
21360         (Rectangle.intersection):
21361         (adjustWindowRect):
21362         (hideWindow):
21363
21364 2012-11-06  Kentaro Hara  <haraken@chromium.org>
21365
21366         Replace setDOMWrapper(wrapper, 0) with resetDOMWrapper(wrapper)
21367         https://bugs.webkit.org/show_bug.cgi?id=101190
21368
21369         Reviewed by Adam Barth.
21370
21371         To guarantee that we never stores NULL pointers to V8 internal
21372         fields, we want to insert ASSERT()s to setDOMWrapper().
21373         This patch replaces setDOMWrapper() that intentionally
21374         passes NULL pointers with clearDOMWrapper().
21375
21376         No tests. No change in behavior.
21377
21378         * bindings/v8/V8DOMWrapper.h:
21379         (V8DOMWrapper):
21380         (WebCore::V8DOMWrapper::clearDOMWrapper):
21381         * bindings/v8/V8NPObject.cpp:
21382         (WebCore::forgetV8ObjectForNPObject):
21383
21384 2012-11-06  Vsevolod Vlasov  <vsevik@chromium.org>
21385
21386         Web Inspector: Displayed name/path of urls in network tab of dev tools is inconsistent
21387         https://bugs.webkit.org/show_bug.cgi?id=101064
21388
21389         Reviewed by Yury Semikhatsky.
21390
21391         Extracted some generic methods from ParsedURL displayName getters (about:blank and data url handlers).
21392         Implemented consistent name() and path() method on NetworkRequest based on ParsedURL.
21393         NetworkPanel now uses name() and path() methods on NetworkRequest to show requests and search for them.
21394
21395         Test: http/tests/inspector/network/request-name-path.html
21396
21397         * inspector/front-end/NetworkPanel.js:
21398         (WebInspector.NetworkLogView.prototype._matchRequest):
21399         (WebInspector.NetworkLogView.prototype._highlightMatchedRequests):
21400         (WebInspector.NetworkLogView.prototype.performFilter):
21401         (WebInspector.NetworkDataGridNode.prototype._refreshNameCell):
21402         (WebInspector.NetworkDataGridNode.NameComparator):
21403         * inspector/front-end/NetworkRequest.js:
21404         (WebInspector.NetworkRequest.prototype.set url):
21405         (WebInspector.NetworkRequest.prototype.name):
21406         (WebInspector.NetworkRequest.prototype.path):
21407         (WebInspector.NetworkRequest.prototype._parseNameAndPathFromURL):
21408         * inspector/front-end/ParsedURL.js:
21409         (WebInspector.ParsedURL):
21410         (WebInspector.ParsedURL.prototype.get displayName):
21411         (WebInspector.ParsedURL.prototype.dataURLDisplayName):
21412         (WebInspector.ParsedURL.prototype.isAboutBlank):
21413         (WebInspector.ParsedURL.prototype.isDataURL):
21414
21415 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
21416
21417         Web Inspector: make Spectrum and Popover WebInspector.Views in order to enable reuse
21418         https://bugs.webkit.org/show_bug.cgi?id=101200
21419
21420         Reviewed by Yury Semikhatsky.
21421
21422         - Split Spectrum and SpectrumPopoverHelper (first is a component, second is controller)
21423         - Made Popover a root view in order to enable lazy style loading for potential subviews (such as Spectrum)
21424         - Extracted spectrum's css into a separate file
21425
21426         * WebCore.gypi:
21427         * WebCore.vcproj/WebCore.vcproj:
21428         * inspector/front-end/DOMExtension.js:
21429         (Element.prototype.positionAt):
21430         (Size):
21431         (Element.prototype.measurePreferredSize):
21432         * inspector/front-end/HeapSnapshotView.js:
21433         (WebInspector.HeapSnapshotView.prototype.willHide):
21434         (WebInspector.HeapSnapshotView.prototype._helpClicked):
21435         * inspector/front-end/Popover.js:
21436         (WebInspector.Popover):
21437         (WebInspector.Popover.prototype.show):
21438         (WebInspector.Popover.prototype.showView):
21439         (WebInspector.Popover.prototype._innerShow):
21440         (WebInspector.Popover.prototype.hide):
21441         (WebInspector.Popover.prototype.dispose):
21442         (WebInspector.Popover.prototype._positionElement):
21443         * inspector/front-end/Spectrum.js:
21444         (WebInspector.Spectrum.alphaDrag):
21445         (WebInspector.Spectrum):
21446         (WebInspector.Spectrum.prototype.wasShown):
21447         (WebInspector.SpectrumPopupHelper):
21448         (WebInspector.SpectrumPopupHelper.prototype.spectrum):
21449         (WebInspector.SpectrumPopupHelper.prototype.toggle):
21450         (WebInspector.SpectrumPopupHelper.prototype.show):
21451         (WebInspector.SpectrumPopupHelper.prototype.reposition):
21452         (WebInspector.SpectrumPopupHelper.prototype.hide):
21453         (WebInspector.ColorSwatch):
21454         (WebInspector.ColorSwatch.prototype.setColorString):
21455         * inspector/front-end/StylesSidebarPane.js:
21456         (WebInspector.StylesSidebarPane):
21457         (WebInspector.StylesSidebarPane.prototype.update):
21458         (WebInspector.StylesSidebarPane.prototype.willHide):
21459         (WebInspector.StylePropertyTreeElement.prototype.updateTitle.):
21460         * inspector/front-end/View.js:
21461         (WebInspector.View.prototype.measurePreferredSize):
21462         * inspector/front-end/WebKit.qrc:
21463         * inspector/front-end/elementsPanel.css:
21464         (.image-preview-container img):
21465         * inspector/front-end/inspector.css:
21466         (.swatch):
21467         (.swatch-inner):
21468         (.swatch-inner:hover):
21469         * inspector/front-end/spectrum.css: Added.
21470         (.spectrum-container):
21471         (.spectrum-top):
21472         (.spectrum-color):
21473         (.spectrum-display-value):
21474         (.spectrum-hue):
21475         (.spectrum-fill):
21476         (.spectrum-range-container):
21477         (.spectrum-range-container *):
21478         (.spectrum-range-container label):
21479         (.spectrum-range-container input):
21480         (.spectrum-dragger, .spectrum-slider):
21481         (.spectrum-sat):
21482         (.spectrum-val):
21483         (.spectrum-dragger):
21484         (.spectrum-slider):
21485         (.spectrum-container .swatch):
21486
21487 2012-11-06  Takashi Sakamoto  <tasak@google.com>
21488
21489         removeAttribute('style') not working in certain circumstances
21490         https://bugs.webkit.org/show_bug.cgi?id=99295
21491
21492         Reviewed by Ryosuke Niwa.
21493
21494         After web developers did style.XXXX=YYYY for some element, the inline
21495         style should be always removable by using "removeAttribute('style')".
21496         Currently it depends on whether web developers invokes
21497         getAttribute('style'), setAttribute('style), and so on. E.g. once they
21498         invoke getAttribute('style'), removeAttribute('style') works. This is
21499         very confusing behavior.
21500         Looking at Firefox browser, removeAttribute('style') always removes
21501         all inline styles.
21502
21503         Test: fast/css/remove-attribute-style.html
21504
21505         * css/StylePropertySet.cpp:
21506         (WebCore::StylePropertySet::clear):
21507         Added a new method to remove all style properties.
21508         (WebCore):
21509         * css/StylePropertySet.h:
21510         (StylePropertySet):
21511         * dom/Element.cpp:
21512         (WebCore::Element::removeAttribute):
21513         If 'style' is given but the element has no style attribute, the old
21514         code did nothing. However, if the element is styled element and has any
21515         inline styles, the inline styles should be removed. So invoke
21516         StyledElement::removeAllInlineStyleProperties and if any inline styles
21517         are removed, invoke style recalc, too.
21518         * dom/StyledElement.cpp:
21519         (WebCore::StyledElement::removeAllInlineStyleProperties):
21520         Added a new method to remove all inline style propeties. If any inline
21521         style is removed, invoke inlineStyleChanged() to force style recalc.
21522         (WebCore):
21523         * dom/StyledElement.h:
21524         (StyledElement):
21525
21526 2012-11-06  Alexei Filippov  <alph@chromium.org>
21527
21528         Web Inspector: dim size bar for expanded item in native memory snapshot grid
21529         https://bugs.webkit.org/show_bug.cgi?id=101062
21530
21531         Reviewed by Yury Semikhatsky.
21532
21533         * inspector/front-end/nativeMemoryProfiler.css:
21534         (.native-snapshot-view .data-grid .expanded div.size-bar):
21535
21536 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21537
21538         [Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing
21539         https://bugs.webkit.org/show_bug.cgi?id=100826
21540
21541         Reviewed by Hajime Morita.
21542
21543         We used isUnknownPseudoElement() for these 3 meanings: 1) the element is a custom pseudo-element (starting with 'x-'),
21544         2) the element is a webkit custom pseudo-element (starting with '-webkit-'), and 3) the element has an unknown type.
21545         We would like to distinguish them when parsing CSSSelector types. Also, we disable using (3) type for using
21546         shadowPseudoId.
21547
21548         In this patch, we allow using WebKitCustomPseudoElement in AuthorShadowRoot, and CustomPseudoElement in
21549         UAShadowRoot. However, we will disable them later.
21550
21551         Test: fast/dom/shadow/shadow-pseudo-id.html
21552
21553         * css/CSSGrammar.y.in: Now we can discard UNKNOWN type. It should not match anything.
21554         * css/CSSParser.cpp:
21555         (WebCore::CSSParser::updateSpecifiersWithElementName):
21556         (WebCore::CSSParser::updateSpecifiers):
21557         * css/CSSParserValues.h:
21558         (WebCore::CSSParserSelector::isCustomPseudoElement):
21559         (CSSParserSelector):
21560         * css/CSSSelector.cpp:
21561         (WebCore::CSSSelector::pseudoId):
21562         (WebCore::CSSSelector::parsePseudoType):
21563         (WebCore::CSSSelector::isCustomPseudoType): Returns true if the type is PseudoUserAgentCustomElement or PseudoWebKitCustomElement.
21564         (WebCore::CSSSelector::extractPseudoType):
21565         * css/CSSSelector.h:
21566         (CSSSelector):
21567         (WebCore::CSSSelector::isCustomPseudoElement):
21568         (WebCore):
21569         * css/CSSSelectorList.cpp:
21570         (WebCore::SelectorHasInvalidSelectorFunctor::operator()): We will reject all selectors which were judged as
21571         UNKNOWN before. i.e. It contians all three types for now.
21572         (WebCore::CSSSelectorList::hasInvalidSelector): Renamed.
21573         * css/CSSSelectorList.h:
21574         (CSSSelectorList):
21575         * css/RuleSet.cpp:
21576         (WebCore::RuleSet::addRule):
21577         * css/SelectorChecker.cpp:
21578         (WebCore::SelectorChecker::checkSelector):
21579         * dom/Element.cpp:
21580         (WebCore::Element::setShadowPseudoId):
21581         * dom/SelectorQuery.cpp:
21582         (WebCore::SelectorQueryCache::add):
21583
21584 2012-11-06  Shinya Kawanaka  <shinyak@chromium.org>
21585
21586         [Shadow] ShadowRoot should know the existence of elements having ElementShadow.
21587         https://bugs.webkit.org/show_bug.cgi?id=100922
21588
21589         Reviewed by Hajime Morita.
21590
21591         We count the elements having ElementShadow in ShadowRoot. This is a prepation patch for to solve Bug 100451.
21592         We have a count-up and count-down login in ShadowRoot::insertedInto and ShadowRoot::removedFrom.
21593
21594         For performance reason, we have a flag that an element should be unregistered in ShadowRoot.
21595
21596         Test: fast/dom/shadow/has-elementshadow.html
21597
21598         * dom/ShadowRoot.cpp:
21599         (WebCore::ShadowRoot::ShadowRoot):
21600         (WebCore::ShadowRoot::insertedInto): Count up the number of elements having ElementShadow. ElementShadow
21601         is created only when the oldest ShadowRoot is created, we only count up only when this ShadowRoot is oldest.
21602         (WebCore):
21603         (WebCore::ShadowRoot::removedFrom): Count down if we used this ShadowRoot for count up.
21604         * dom/ShadowRoot.h:
21605         (ShadowRoot):
21606         (WebCore::ShadowRoot::registerElementShadow):
21607         (WebCore::ShadowRoot::unregisterElementShadow):
21608         (WebCore::ShadowRoot::hasElementShadow):
21609         (WebCore::ShadowRoot::countElementShadow):
21610         * testing/Internals.cpp:
21611         (WebCore::Internals::countElementShadow):
21612         (WebCore):
21613         * testing/Internals.h:
21614         (Internals):
21615         * testing/Internals.idl:
21616
21617 2012-11-06  Pavel Feldman  <pfeldman@chromium.org>
21618
21619         Web Inspector: show "debugging session terminated" message when remote debuggign connection is closed unexpectedly.
21620         https://bugs.webkit.org/show_bug.cgi?id=101030
21621
21622         Reviewed by Vsevolod Vlasov.
21623
21624         * inspector/front-end/inspector.js:
21625         (WebInspector.loaded.WebInspector.socket.onclose):
21626         (WebInspector.loaded):
21627         (WebInspector.detached):
21628
21629 2012-11-06  Alexander Pavlov  <apavlov@chromium.org>
21630
21631         Web Inspector: [Overrides] Add Chrome for Android and Firefox for Android user agent strings
21632         https://bugs.webkit.org/show_bug.cgi?id=100666
21633
21634         Reviewed by Pavel Feldman.
21635
21636         * inspector/front-end/SettingsScreen.js:
21637         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.get const):
21638
21639 2012-11-02  Yury Semikhatsky  <yurys@chromium.org>
21640
21641         Web Inspector: JavaScript web workers debugging crashes
21642         https://bugs.webkit.org/show_bug.cgi?id=101065
21643
21644         Reviewed by Alexander Pavlov.
21645
21646         Clear m_pageInspector when page inspector instance is deleted.
21647         Disable worker inspection when front-end disconnects.
21648
21649         Test: inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
21650
21651         * inspector/InspectorWorkerAgent.cpp:
21652         (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel): notify
21653         WorkerMessagingProxy so that it can clear pointer to the channel.
21654
21655 2012-11-06  Nikita Vasilyev  <me@elv1s.ru>
21656
21657         Web Inspector: Console: wrap long URLs
21658         https://bugs.webkit.org/show_bug.cgi?id=100970
21659
21660         Reviewed by Yury Semikhatsky.
21661
21662         * inspector/front-end/inspector.css:
21663         (.console-message-url):
21664
21665 2012-11-05  Keishi Hattori  <keishi@webkit.org>
21666
21667         Introduce Day class to calendar picker
21668         https://bugs.webkit.org/show_bug.cgi?id=101194
21669
21670         Reviewed by Kent Tamura.
21671
21672         Introducing Day class so day, week, and month can all be abstracted. To
21673         solve some of the complexity around which months to show, I made
21674         CalendarPicker in charge of it. This also made YearMonthController and
21675         DaysTable independent of each other.
21676
21677         No new tests. Covered by existing calendar-picker-*.html tests.
21678
21679         * Resources/pagepopups/calendarPicker.js:
21680         (createUTCDate): Allow negative month or date.
21681         (parseDateString): Will return Day or Month depending on string format.
21682         (Day): Represents a day.
21683         (Day.parse): Parse yyyy-mm-dd.
21684         (Day.createFromDate): Creates a Day that contains a datetime.
21685         (Day.createFromToday): Creates Day for today. A method with the same name will be added to Week and Month in the future.
21686         (Day.prototype.equals): Returns true if they are the same.
21687         (Day.prototype.previous): Returns the previous day.
21688         (Day.prototype.next): Returns the next day.
21689         (Day.prototype.startDate): Returns the datetime that is the start of this day.
21690         (Day.prototype.endDate): Returns the datetime that is the start of this day.
21691         (Day.prototype.valueOf): Returns the milliseconds since epoch.
21692         (Day.prototype.toString): Returns an ISO date string.
21693         (Month): Fix bug in calculating month from value.
21694         (Month.prototype.endDate): Use Day.Maximum.
21695         (CalendarPicker): Added _currentMonth. yearMonthController and daysTable can be private members now.
21696         (CalendarPicker.prototype._layout):
21697         (CalendarPicker.prototype.handleToday): Use Day.createFromToday.
21698         (CalendarPicker.prototype.shouldShowMonth): Returns true if the month should be shown.
21699         (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.
21700         (CalendarPicker.prototype.currentMonth): Returns the current month that is shown.
21701         (YearMonthController): Removed _currentMonth.
21702         (YearMonthController.prototype.attachTo):
21703         (YearMonthController.prototype.setMonth):
21704         (YearMonthController.prototype._handleYearMonthChange): Use CalendarPicker.showMonth
21705         (YearMonthController.prototype.moveRelatively):
21706         (DaysTable):
21707         (CalendarPicker.prototype._stepMismatch): Made private.
21708         (CalendarPicker.prototype._outOfRange): Made private.
21709         (CalendarPicker.prototype.isValidDate): Take Day or Month instead of milliseconds since epoch.
21710         (DaysTable.prototype._renderMonth):
21711         (DaysTable.prototype.navigateToMonth): Shows a given month. Can use animation and leave the selection position as is.
21712         (DaysTable.prototype.selectRange): Select a range.
21713         (DaysTable.prototype._maybeSetPreviousMonth):
21714         (DaysTable.prototype._maybeSetNextMonth):
21715         (DaysTable.prototype._handleKey):
21716         (CalendarPicker.prototype._handleBodyKeyDown):
21717
21718 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21719
21720         Unreviewed, Adding #if PLATFORM(CHROMIUM) for the fix of
21721         https://bugs.webkit.org/show_bug.cgi?id=101009
21722
21723         This fix requires the most recent version of harfbuzz-ng.
21724         EFL port uses version 0.9.2, which doesn't have the fix.
21725
21726         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21727         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21728
21729 2012-11-05  Glenn Adams  <glenn@skynav.com>
21730
21731         Ensure acquireLineBreakIterator signature consistency on non-ICU ports.
21732         https://bugs.webkit.org/show_bug.cgi?id=101281
21733
21734         Reviewed by Ryosuke Niwa.
21735
21736         Fix (newly) inconsistent signature for acquireLineBreakIterator for non-ICU ports
21737         caused by http://trac.webkit.org/changeset/133529.
21738
21739         See new tests added from https://bugs.webkit.org/show_bug.cgi?id=89235.
21740
21741         * platform/text/TextBreakIterator.cpp:
21742         (WebCore::acquireLineBreakIterator):
21743         * platform/text/gtk/TextBreakIteratorGtk.cpp:
21744         (WebCore::setUpIterator):
21745         (WebCore::acquireLineBreakIterator):
21746         * platform/text/wince/TextBreakIteratorWinCE.cpp:
21747         (WebCore::acquireLineBreakIterator):
21748
21749 2012-11-05  Hayato Ito  <hayato@chromium.org>
21750
21751         Use switch/case statements instead of if/elseif in CSSSelector.cpp
21752         https://bugs.webkit.org/show_bug.cgi?id=100470
21753
21754         Reviewed by Ryosuke Niwa.
21755
21756         Minor clean up. We can get compiler warnings if we use switch/case statements here.
21757
21758         No changes to functionality, so no new tests.
21759
21760         * css/CSSSelector.cpp:
21761         (WebCore::CSSSelector::selectorText):
21762
21763 2012-11-05  Kenichi Ishibashi  <bashi@chromium.org>
21764
21765         [Chromium] Unicode combining diacritical aren't always combined on Linux
21766         https://bugs.webkit.org/show_bug.cgi?id=101009
21767
21768         Reviewed by Kent Tamura.
21769
21770         Add a space character to harfbuzzBuffer as pre-context. This will prevent
21771         harfbuzz from inserting dotted-circle.
21772
21773         Test: fast/text/international/combining-marks-position.html
21774
21775         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
21776         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
21777
21778 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
21779
21780         LayoutTest fast/dom/shadow/shadowroot-type.html is failing on Windows
21781         https://bugs.webkit.org/show_bug.cgi?id=101201
21782
21783         Reviewed by Hajime Morita.
21784
21785         When we use a bit field for enum, Windows compiler seems returning some wrong value.
21786         We would like to avoid using a bit field for enum value.
21787
21788         * dom/ShadowRoot.cpp:
21789         (WebCore::ShadowRoot::create):
21790         * dom/ShadowRoot.h:
21791         (WebCore::ShadowRoot::type):
21792         (WebCore::ShadowRoot::setType):
21793         (ShadowRoot):
21794
21795 2012-11-05  Benjamin Poulain  <benjamin@webkit.org>
21796
21797         TransformOperationInfo's constructor is really slow
21798         https://bugs.webkit.org/show_bug.cgi?id=101143
21799
21800         Reviewed by Sam Weinig.
21801
21802         TransformOperationInfo() was slow for a few reasons:
21803         -The function used a lot of branches. The basic assumption is that the input
21804          is incorrect, thus every character is an opportunity to fail.
21805         -Every branch had to be tested in order. If the name was matching the last if()
21806          all the previous names had to be tested.
21807         -Since equalIgnoringCase() was used in every branch, it was forcing the case folding
21808          every time.
21809         -When the string is 16bits, the case folding was using ICU, which was incredibly inefficient.
21810
21811         This can be fixed by either
21812         1) Compute the lowercase name, then match it to a HashMap.
21813         2) Write a tree to quickly reduce the number of branch needed.
21814
21815         The first solution is not viable because 16bits strings case folding
21816         remains an important bottleneck.
21817
21818         Instead, the code now splits the names on simple characteristics to
21819         match any name in a limited number of branches.
21820
21821         The assumption is the input is correct, so & is used instead of && to
21822         avoid branches in favor of conditional instructions.
21823
21824         * css/CSSParser.cpp:
21825         (WebCore::TransformOperationInfo::TransformOperationInfo):
21826
21827 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21828
21829         RenderGeometryMap asserts when loading http://en.softonic.com/mac
21830         https://bugs.webkit.org/show_bug.cgi?id=101284
21831         <rdar://problem/11540560>
21832
21833         Reviewed by Tim Horton.
21834
21835         When FrameView::layout() calls document->updateStyleIfNeeded(), we
21836         can be in a state where FrameView::needsLayout() is false. However,
21837         this is a bad time to update compositing layers, because we're about
21838         to do layout, which will require us to update them again soon anyway,
21839         and some RenderLayers may not have been sized or positioned yet.
21840         
21841         Fix by adding a m_doingPreLayoutStyleUpdate member to FrameView,
21842         and toggling it around this call to updateStyleIfNeeded().
21843         Read this state in updateCompositingLayersAfterStyleChange(), which is
21844         now called unconditionally by recalcStyle(), but returns early
21845         if this flag is set, or layout is pending.
21846
21847         * dom/Document.cpp:
21848         (WebCore::Document::recalcStyle):
21849         * page/FrameView.cpp:
21850         (WebCore::FrameView::reset):
21851         (WebCore::FrameView::updateCompositingLayersAfterStyleChange):
21852         (WebCore::FrameView::layout):
21853         * page/FrameView.h:
21854         (FrameView):
21855
21856 2012-11-05  Beth Dakin  <bdakin@apple.com>
21857
21858         https://bugs.webkit.org/show_bug.cgi?id=101275
21859         Clean up ScrollingConstraints.h
21860
21861         Reviewed by Simon Fraser.
21862
21863         This class cleans up ScrollingConstraints.h by removing the constructors since the 
21864         compiler will generate those constructors for us anyway. The patch also makes the 
21865         two override functions private.
21866         * page/scrolling/ScrollingConstraints.h:
21867         (ViewportConstraints):
21868         (FixedPositionViewportConstraints):
21869         (StickyPositionViewportConstraints):
21870
21871 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
21872
21873         Make Document::updateStyleIfNeeded() non-virtual
21874         https://bugs.webkit.org/show_bug.cgi?id=101273
21875
21876         Reviewed by Eric Seidel.
21877
21878         Document::updateStyleIfNeeded() has been virtual like forever, but
21879         no-one ever overrides it, so make it non-virtual.
21880
21881         * dom/Document.h:
21882         (Document):
21883
21884 2012-11-05  Philip Rogers  <pdr@google.com>
21885
21886         Unblock SVG external references
21887         https://bugs.webkit.org/show_bug.cgi?id=100635
21888
21889         Reviewed by Adam Barth.
21890
21891         This patch reverts r132849 and r132869 because the potential XSS issue
21892         turned out to not be an issue after all.
21893
21894         Covered by existing tests, many of which are re-whitelisted with this patch.
21895
21896         * loader/cache/CachedResourceLoader.cpp:
21897         (WebCore::CachedResourceLoader::canRequest):
21898
21899 2012-11-05  Beth Dakin  <bdakin@apple.com>
21900
21901         https://bugs.webkit.org/show_bug.cgi?id=101001
21902         Pages with position:fixed elements should still be able to scroll on 
21903         the scrolling thread
21904         -and corresponding-
21905         <rdar://problem/10857315>
21906
21907         Reviewed by Simon Fraser.
21908
21909         This patch adds two new classes. ScrollingStateFixedNode is a class 
21910         to represent fixed nodes in the state tree, and 
21911         ScrollingTreeFixedNode represents fixed node in the scrolling tree 
21912         over on the scrolling thread.
21913         * WebCore.xcodeproj/project.pbxproj:
21914
21915         When we are (non-programatically) scrolling fixed objects on the 
21916         scrolling thread, we do not want to do any work here. 
21917         * page/FrameView.cpp:
21918         (WebCore::FrameView::updateFixedElementsAfterScrolling):
21919
21920         Whenever we sync the position of the main frame's layer, we have to 
21921         do the same for scrolling tree children.
21922         * page/scrolling/ScrollingCoordinator.cpp:
21923         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
21924
21925         New ScrollingNodeType -- FixedNode, yay! And two new functions 
21926         specific to dealing with FixedNodes.
21927         * page/scrolling/ScrollingCoordinator.h:
21928         (WebCore::ScrollingCoordinator::updateViewportConstrainedNode):
21929         (WebCore::ScrollingCoordinator::syncChildPositions):
21930
21931         This is the new class that represents fixed nodes in the state tree. 
21932         All of the changed properties are stored within 
21933         FixedPositionViewportConstraints.
21934         * page/scrolling/ScrollingStateFixedNode.cpp: Added.
21935         (WebCore):
21936         (WebCore::ScrollingStateFixedNode::create):
21937         (WebCore::ScrollingStateFixedNode::ScrollingStateFixedNode):
21938         (WebCore::ScrollingStateFixedNode::~ScrollingStateFixedNode):
21939         (WebCore::ScrollingStateFixedNode::updateConstraints):
21940         (WebCore::ScrollingStateFixedNode::dumpProperties):
21941         * page/scrolling/ScrollingStateFixedNode.h: Added.
21942         (WebCore):
21943         (ScrollingStateFixedNode):
21944         (WebCore::ScrollingStateFixedNode::viewportConstraints):
21945         (WebCore::toScrollingStateFixedNode):
21946
21947         Make sure to create the right type of clone for each node.
21948         * page/scrolling/ScrollingStateNode.cpp:
21949         (WebCore::ScrollingStateNode::cloneAndReset):
21950
21951         Now that m_children may be anything other than null, I found this 
21952         bug. We encounter it when the parameter to removeChild is this and we 
21953         want to remove all of our children. In that case, this is obviously 
21954         not found in its own child array.
21955         (WebCore::ScrollingStateNode::removeChild):
21956
21957         ScrollingStateNode now caches the GraphicsLayer in addition to the 
21958         PlatformLayer. This will allow us to sync the GraphicsLayer position 
21959         at the appropriate times.
21960         * page/scrolling/ScrollingStateNode.h:
21961         (WebCore::ScrollingStateNode::isScrollingStateFixedNode):
21962         (WebCore::ScrollingStateNode::graphicsLayer):
21963         (ScrollingStateNode):
21964
21965         Handle fixed nodes.
21966         * page/scrolling/ScrollingTree.cpp:
21967         (WebCore::ScrollingTree::updateTreeFromStateNode):
21968
21969         New function parentScrollPositionDidChange() is called on children 
21970         when the parent has scrolled.
21971         * page/scrolling/ScrollingTreeNode.h:
21972         (ScrollingTreeNode):
21973         * page/scrolling/ScrollingTreeScrollingNode.h:
21974         (ScrollingTreeScrollingNode):
21975
21976         Return true for supportsFixedPositionLayers(). 
21977         * page/scrolling/mac/ScrollingCoordinatorMac.h:
21978         (ScrollingCoordinatorMac):
21979
21980         Handle fixed nodes.
21981         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
21982         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
21983
21984         Now that m_children can be non-null I caught this pre-existing bug 
21985         where we would come times remove a node without updating the HashMap. 
21986         This patch fixes that by consolidating the removal into one function.
21987         (WebCore::ScrollingCoordinatorMac::removeNode):
21988         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
21989         (WebCore::ScrollingCoordinatorMac::clearStateTree):
21990
21991         Update the GraphicsLayers to reflect the new position that the 
21992         Scrolling thread has moved the underlying CALayer to already.
21993         (WebCore::ScrollingCoordinatorMac::syncChildPositions):
21994
21995         Pass new constraints over to the appropriate state node.
21996         (WebCore::ScrollingCoordinatorMac::updateViewportConstrainedNode):
21997
21998         Cache the GraphicsLayer in addition to the PlatformLayer.
21999         * page/scrolling/mac/ScrollingStateNodeMac.mm:
22000         (WebCore::ScrollingStateNode::setScrollLayer):
22001
22002         Here is the new class that represents fixed nodes over on the 
22003         scrolling thread. 
22004         * page/scrolling/mac/ScrollingTreeFixedNode.h: Added.
22005         (WebCore):
22006         (ScrollingTreeFixedNode):
22007         * page/scrolling/mac/ScrollingTreeFixedNode.mm: Added.
22008         (WebCore):
22009         (WebCore::ScrollingTreeFixedNode::create):
22010         (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
22011         (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
22012         (WebCore::ScrollingTreeFixedNode::update):
22013
22014         This is where the magic happens. re-position the fixed object when 
22015         its parent has scrolled so that it appears to have not moved at all.
22016         (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange):
22017
22018         Whenever we change the position of a scrolling layer, tell our 
22019         children.
22020         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
22021         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
22022
22023         Handle fixed nodes.
22024         * rendering/RenderLayerBacking.cpp:
22025         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
22026
22027         detachFromScrollingCoordinator() needs to be public so that it can be 
22028         called from RenderLayerCompositor for fixed nodes.
22029         * rendering/RenderLayerBacking.h:
22030         (RenderLayerBacking):
22031
22032         RenderLayerCompositor takes control of attaching and detaching fixed 
22033         nodes to/from the ScrollingCoordinator. 
22034         * rendering/RenderLayerCompositor.cpp:
22035         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
22036         (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
22037         (WebCore::RenderLayerCompositor::updateBacking):
22038         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
22039         (WebCore::RenderLayerCompositor::didMoveOnscreen):
22040         (WebCore::RenderLayerCompositor::willMoveOffscreen):
22041         (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
22042         (WebCore::isRootmostFixedOrStickyLayer):
22043         (WebCore):
22044         (WebCore::RenderLayerCompositor::updateViewportConstraintStatus):
22045         (WebCore::RenderLayerCompositor::addViewportConstrainedLayer):
22046         (WebCore::RenderLayerCompositor::removeViewportConstrainedLayer):
22047         (WebCore::RenderLayerCompositor::computeViewportConstraints):
22048         (WebCore::nearestScrollingCoordinatorAncestor):
22049         (WebCore::RenderLayerCompositor::registerOrUpdateViewportConstrainedLayer):
22050         (WebCore::RenderLayerCompositor::unregisterViewportConstrainedLayer):
22051         (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
22052         (WebCore::RenderLayerCompositor::unregisterAllViewportConstrainedLayers):
22053         * rendering/RenderLayerCompositor.h:
22054         (WebCore):
22055         (RenderLayerCompositor):
22056
22057 2012-11-05  Geoffrey Garen  <ggaren@apple.com>
22058
22059         Cleaned up the Font class in preparation for optimizing kerning and ligatures
22060         https://bugs.webkit.org/show_bug.cgi?id=101258
22061
22062         Reviewed by Dan Bernstein.
22063
22064         * platform/graphics/Font.h:
22065         (WebCore::Font::typesettingFeatures):
22066         (WebCore::Font::computeTypesettingFeatures): Compute and cache our
22067         typesetting features instead of recomputing each time a client asks
22068         for them. This makes the class interface easier to use because
22069         "typesettingFeatures()" can appear in more than one expression without
22070         undue performance cost. This may also be a small speedup to code that
22071         calls typesettingFeatures() often for other reasons.
22072
22073         * platform/graphics/Font.cpp:
22074         (WebCore::Font::Font):
22075         (WebCore::Font::operator=):
22076         (WebCore::Font::update): Ditto.
22077
22078         (WebCore::Font::width): Unforked the width() function so all width-related
22079         interfaces can benefit from optimization without duplicate code.
22080
22081 2012-11-05  Peng Huang  <penghuang@google.com>
22082
22083         Webkit does not handle some media keys correctly On Linux gtk platform.
22084         https://bugs.webkit.org/show_bug.cgi?id=101221
22085
22086         Reviewed by Alexey Proskuryakov.
22087
22088         Add media keyboard support on Linux gtk platform.
22089
22090         * platform/chromium/KeyCodeConversionGtk.cpp:
22091         (WebCore::windowsKeyCodeForKeyEvent):
22092
22093 2012-11-05  Glenn Adams  <glenn@skynav.com>
22094
22095         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
22096         https://bugs.webkit.org/show_bug.cgi?id=89235
22097
22098         Reviewed by Eric Seidel.
22099
22100         See also wiki documentation at:
22101         [1] http://trac.webkit.org/wiki/LineBreaking
22102         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
22103
22104         Web exposed changes include:
22105         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
22106         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
22107         (3) See [2] above for details regarding interpretation.
22108
22109         Tests: css3/line-break/line-break-auto-centered.html
22110                css3/line-break/line-break-auto-half-kana.html
22111                css3/line-break/line-break-auto-hyphens.html
22112                css3/line-break/line-break-auto-inseparables.html
22113                css3/line-break/line-break-auto-iteration-marks.html
22114                css3/line-break/line-break-auto-postfixes.html
22115                css3/line-break/line-break-auto-prefixes.html
22116                css3/line-break/line-break-auto-sound-marks.html
22117                css3/line-break/line-break-loose-centered.html
22118                css3/line-break/line-break-loose-half-kana.html
22119                css3/line-break/line-break-loose-hyphens.html
22120                css3/line-break/line-break-loose-inseparables.html
22121                css3/line-break/line-break-loose-iteration-marks.html
22122                css3/line-break/line-break-loose-postfixes.html
22123                css3/line-break/line-break-loose-prefixes.html
22124                css3/line-break/line-break-loose-sound-marks.html
22125                css3/line-break/line-break-normal-centered.html
22126                css3/line-break/line-break-normal-half-kana.html
22127                css3/line-break/line-break-normal-hyphens.html
22128                css3/line-break/line-break-normal-inseparables.html
22129                css3/line-break/line-break-normal-iteration-marks.html
22130                css3/line-break/line-break-normal-postfixes.html
22131                css3/line-break/line-break-normal-prefixes.html
22132                css3/line-break/line-break-normal-sound-marks.html
22133                css3/line-break/line-break-strict-centered.html
22134                css3/line-break/line-break-strict-half-kana.html
22135                css3/line-break/line-break-strict-hyphens.html
22136                css3/line-break/line-break-strict-inseparables.html
22137                css3/line-break/line-break-strict-iteration-marks.html
22138                css3/line-break/line-break-strict-postfixes.html
22139                css3/line-break/line-break-strict-prefixes.html
22140                css3/line-break/line-break-strict-sound-marks.html
22141
22142         * platform/text/LineBreakIteratorPoolICU.h:
22143         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
22144         Add static function to construct ICU locale argument (also used as pool key) with additional
22145         break keyword.
22146         (WebCore::LineBreakIteratorPool::take):
22147         (WebCore::LineBreakIteratorPool::put):
22148         (LineBreakIteratorPool):
22149         Remove direct dependency from ICU library (and types), moving that dependency into
22150         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
22151         Update to take line break mode into account.
22152         Create (and cache) different break iterators depending on line break mode (in addition to locale),
22153         which entails expanding pool entry key format to optionally append "@break=" +
22154         "loose"|"normal"|"strict" keyword to locale string.
22155
22156         * platform/text/TextBreakIterator.h:
22157         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
22158         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
22159         (WebCore::LazyLineBreakIterator::get):
22160         (WebCore::LazyLineBreakIterator::reset):
22161         (LazyLineBreakIterator):
22162         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
22163         Add state member to indicate line break mode.
22164
22165         * platform/text/TextBreakIteratorICU.cpp:
22166         (WebCore::acquireLineBreakIterator):
22167         Use new line break mode when making iterator from pool.
22168         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
22169         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22170         (WebCore::releaseLineBreakIterator):
22171         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
22172         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
22173         (WebCore::isCJKLocale):
22174         New functions for determining if CJK rules apply.
22175         (WebCore::openLineBreakIterator):
22176         New function for abstracting opening of ICU style line break iterator. This is now
22177         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22178         This function also takes into account the line break mode.
22179         (WebCore::closeLineBreakIterator):
22180         (WebCore::mapLineIteratorModeToRules):
22181         New function for abstracting closing of ICU style line break iterator. This is now
22182         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
22183
22184         * rendering/RenderBlockLineLayout.cpp:
22185         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
22186         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
22187         Add looseMode local variable to prevent need for computing under isBreakable().
22188
22189         * rendering/RenderText.cpp:
22190         (WebCore::mapLineBreakToIteratorMode):
22191         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22192         and RenderBlock::LineBreaker::nextLineBreak.
22193         (WebCore::RenderText::computePreferredLogicalWidths):
22194         Ensure (lazy line) breakIterator is initialized for line break mode.
22195         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
22196
22197         * rendering/RenderText.h:
22198         (WebCore):
22199         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
22200         and RenderBlock::LineBreaker::nextLineBreak.
22201
22202         * rendering/break_lines.cpp:
22203         (WebCore):
22204         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
22205         to include loose mode parameter.
22206         (WebCore::isBreakableSpace):
22207         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22208         accessor method on each invocation. Use new loose mode flavors off NBP functions.
22209         (WebCore::needsLineBreakIterator):
22210         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
22211         to prevent regression to non loose mode path.
22212         (WebCore::nextBreakablePosition):
22213         (WebCore::nextBreakablePositionIgnoringNBSP):
22214         Use new template parameter enums described above.
22215         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
22216         (WebCore::nextBreakablePositionLoose):
22217         Introduce two additional 'loose' mode flavors of NBP template expansions.
22218
22219         * rendering/break_lines.h:
22220         (WebCore):
22221         (WebCore::isBreakable):
22222         Add externally specified loose mode parameter to prevent need to invoke line break iterator
22223         accessor method on each invocation.
22224
22225 2012-11-05  Adam Barth  <abarth@webkit.org>
22226
22227         webkitRegionLayoutUpdate is incorrectly named
22228         https://bugs.webkit.org/show_bug.cgi?id=100335
22229
22230         Reviewed by Ojan Vafai.
22231
22232         DOM event names are supposed to be lower case.
22233
22234         * dom/EventNames.h:
22235         (WebCore):
22236         * dom/WebKitNamedFlow.cpp:
22237         (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent):
22238
22239 2012-11-05  Adam Barth  <abarth@webkit.org>
22240
22241         [V8] IntrusiveDOMWrapperMap should be usable for more than just Nodes
22242         https://bugs.webkit.org/show_bug.cgi?id=101110
22243
22244         Reviewed by Kentaro Hara.
22245
22246         This patch generalizes our support for storing wrappers in DOM objects
22247         to be usable for more than just nodes. After this patch, any object
22248         with a ScriptWrappable base class will have its wrapper stored inline
22249         in the object in the main world.
22250
22251         To achieve this goal, this patch hides the details of how we map from
22252         objects to wrappers inside DOMDataStore and then removes the
22253         IntrusiveDOMWrapperMap class entirely. This approach lets us remove the
22254         DOMWrapperMap base class and make all of these functions non-virtual.
22255
22256         * UseV8.cmake:
22257         * WebCore.gypi:
22258             - Remove deleted files.
22259         * bindings/scripts/CodeGeneratorV8.pm:
22260         (GenerateHeader):
22261         (GenerateNormalAttrGetter):
22262         (GenerateConstructorCallback):
22263         (GenerateNamedConstructorCallback):
22264         (GenerateToV8Converters):
22265             - Rather than grabbing at the DOMWrapperMap directly, we now ask
22266               the DOMDataStore to do this work for us.
22267         * bindings/scripts/test/V8/V8Float64Array.h:
22268         (WebCore::V8Float64Array::wrap):
22269         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
22270         (WebCore::V8TestActiveDOMObject::wrap):
22271         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
22272         (WebCore::V8TestCustomNamedGetter::wrap):
22273         * bindings/scripts/test/V8/V8TestEventConstructor.h:
22274         (WebCore::V8TestEventConstructor::wrap):
22275         * bindings/scripts/test/V8/V8TestEventTarget.h:
22276         (WebCore::V8TestEventTarget::wrap):
22277         * bindings/scripts/test/V8/V8TestException.h:
22278         (WebCore::V8TestException::wrap):
22279         * bindings/scripts/test/V8/V8TestInterface.h:
22280         (WebCore::V8TestInterface::wrap):
22281         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
22282         (WebCore::V8TestMediaQueryListListener::wrap):
22283         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
22284         (WebCore::V8TestNamedConstructor::wrap):
22285         * bindings/scripts/test/V8/V8TestNode.cpp:
22286         (WebCore::V8TestNode::constructorCallback):
22287         (WebCore::V8TestNode::wrapSlow):
22288         * bindings/scripts/test/V8/V8TestObj.cpp:
22289         (WebCore::TestObjV8Internal::readOnlyTestObjAttrAttrGetter):
22290         * bindings/scripts/test/V8/V8TestObj.h:
22291         (WebCore::V8TestObj::wrap):
22292         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
22293         (WebCore::V8TestSerializedScriptValueInterface::wrap):
22294         * bindings/v8/DOMDataStore.cpp:
22295             - Updated run-bindings-test results.
22296         (WebCore::DOMDataStore::DOMDataStore):
22297         (WebCore::DOMDataStore::~DOMDataStore):
22298             - Simplify constructor and destructor now that there is only one
22299               hash map.
22300         (WebCore::DOMDataStore::current):
22301             - Now that V8DOMMap.cpp doesn't handle the null isolate case, we
22302               need to handle it here.
22303         (WebCore::DOMDataStore::reportMemoryUsage):
22304             - Simplfied now that there is only one wrapper map.
22305         (WebCore::DOMDataStore::weakCallback):
22306             - Moved from IntrusiveDOMWrapperMap.h
22307         * bindings/v8/DOMDataStore.h:
22308         (WebCore::DOMDataStore::get):
22309         (WebCore::DOMDataStore::set):
22310             - These functions now handle the intrusive case with a branch
22311               rather than with a virtual function call. In many cases, the
22312               branch can be optimized away by the compiler when the overloaded
22313               inline functions are inlined.
22314         (WebCore::DOMDataStore::wrapperIsStoredInObject):
22315             - Overloaded functions to determine whether to store the wrapper
22316               inside the object or in the hashmap.
22317         (WebCore::DOMDataStore::getWrapperFromObject):
22318         (WebCore::DOMDataStore::storeWrapperInObject):
22319             - Overloaded functions to get/set the wrapper from inside the
22320               object itself.
22321         * bindings/v8/DOMWrapperMap.h:
22322         (WebCore::DOMWrapperHashMap::get):
22323         (WebCore::DOMWrapperHashMap::set):
22324         (WebCore::DOMWrapperHashMap::clear):
22325         (WebCore::DOMWrapperHashMap::reportMemoryUsage):
22326         (WebCore::DOMWrapperHashMap::remove):
22327             - These functions are no longer virtual.
22328         * bindings/v8/DOMWrapperWorld.h:
22329         * bindings/v8/IntrusiveDOMWrapperMap.h: Removed.
22330         * bindings/v8/ScriptProfiler.cpp:
22331         * bindings/v8/SerializedScriptValue.cpp:
22332         (WebCore::neuterBinding):
22333             - We need to keep the type information slightly longer so that we
22334               look in the right wrapper map.
22335         * bindings/v8/V8DOMMap.cpp: Removed.
22336         * bindings/v8/V8DOMMap.h: Removed.
22337         * bindings/v8/V8DOMWindowShell.cpp:
22338         * bindings/v8/V8DOMWrapper.cpp:
22339         * bindings/v8/V8DOMWrapper.h:
22340         (WebCore::V8DOMWrapper::getCachedWrapper):
22341             - Defer this work to the store.
22342         (WebCore::V8DOMWrapper::setWrapperClass):
22343             - An overloaded function to set the right wrapper class.
22344         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
22345             - This function is now general enough to handle ever kind of object.
22346         * bindings/v8/V8GCController.cpp:
22347         * bindings/v8/V8NPObject.cpp:
22348         * bindings/v8/WorkerContextExecutionProxy.cpp:
22349         * bindings/v8/WorkerScriptController.cpp:
22350         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
22351         (WebCore::v8HTMLImageElementConstructorCallback):
22352             - Call the more general function (instead of the now-deleted specialized function).
22353
22354 2012-11-05  Alexey Proskuryakov  <ap@apple.com>
22355
22356         Get rid of setCookieStoragePrivateBrowsingEnabled.
22357         https://bugs.webkit.org/show_bug.cgi?id=101247
22358
22359         Reviewed by Brady Eidson.
22360
22361         We were only doing anything here on Mac, and only because we couldn't know if
22362         sessions were in use. But sessions are always in use, and those obsolete changing
22363         cookie storage explicitly.
22364
22365         * platform/network/win/CookieStorageWin.cpp: Removed.
22366         * PlatformWinCE.cmake:
22367         * WebCore.gypi:
22368         No more CookieStorageWin.cpp with an empty implementation.
22369     
22370         * WebCore.exp.in:
22371         * platform/mac/WebCoreSystemInterface.h:
22372         * platform/mac/WebCoreSystemInterface.mm:
22373         We no longer need this WKSI function.
22374
22375         * page/Settings.cpp: (WebCore::Settings::setPrivateBrowsingEnabled):
22376         Removed the only call to setCookieStoragePrivateBrowsingEnabled().
22377
22378         * platform/network/CookieStorage.h:
22379         * platform/network/cf/CookieStorageCFNet.cpp:
22380         * platform/network/curl/CookieJarCurl.cpp:
22381         * platform/network/soup/CookieStorageSoup.cpp:
22382         * platform/qt/TemporaryLinkStubsQt.cpp:
22383         Removed empty setCookieStoragePrivateBrowsingEnabled implementations.
22384
22385         * platform/network/mac/CookieStorageMac.mm: This function used to have a FIXME
22386         that we should observe private storage while in private browsing mode. I don't think
22387         that it was correct - Safari doesn't display content of private storage, and thus
22388         doesn't need to know about changes.
22389         The removal of this function has an effect on WebKit1 clients that enable private
22390         browsing. We used to globally change cookie storage, even for loads not initiated
22391         by WebKit. Now we match API description: "If private browsing is enabled, WebKit
22392         will not store information about sites the user visits."
22393
22394 2012-11-05  Florin Malita  <fmalita@chromium.org>
22395
22396         Crash when mixing layers, foreignObjects and SVG hidden containers
22397         https://bugs.webkit.org/show_bug.cgi?id=87297
22398
22399         Reviewed by Dirk Schulze.
22400
22401         Foreign objects may introduce content which requires layers, but layer creation is
22402         suppressed within RenderSVGHiddenContainer subtrees and this yields an inconsistent render
22403         tree state. This patch prevents foreignObject renderer instantiation under
22404         RenderSVGHiddenContainers.
22405
22406         Test: svg/foreignObject/foreign-object-defs-crash.svg
22407
22408         * svg/SVGForeignObjectElement.cpp:
22409         (WebCore::SVGForeignObjectElement::rendererIsNeeded):
22410         (WebCore):
22411         * svg/SVGForeignObjectElement.h:
22412         (SVGForeignObjectElement):
22413
22414 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22415
22416         Remove the unused m_fixedPositionedElements from RenderView
22417         https://bugs.webkit.org/show_bug.cgi?id=101251
22418
22419         Reviewed by Anders Carlsson.
22420
22421         m_fixedPositionedElements was completely unused. Remove it
22422         and the related typedef.
22423
22424         * rendering/RenderView.h:
22425         (RenderView):
22426
22427 2012-11-05  Simon Fraser  <simon.fraser@apple.com>
22428
22429         Fix layer borders to cleaning appear and disappear on switching
22430         https://bugs.webkit.org/show_bug.cgi?id=101136
22431
22432         Reviewed by Sam Weinig.
22433
22434         GraphicsLayers decided whether to show layer borders based
22435         on a callback through the GraphicsLayerClient. This made it
22436         hard to manage state, resulting in a failure to cleanly
22437         hide layers when toggled off via the preference.
22438         
22439         Changed the layer border and repaint counter visibility to be bits
22440         stored on GraphicsLayer just like other properties, with getters
22441         and setters. RenderLayerBacking now updates these debug
22442         indicators when we update other compositing layer properties.
22443         
22444         In GraphicsLayerCA, avoid calling updateDebugIndicators() explicitly
22445         in several places by setting the change flag DebugIndicatorsChanged
22446         for properties whose values affect the appearance of the debug border.
22447
22448         Removed the GraphicsLayerClient methods showDebugBorders() and
22449         showRepaintCounter() which are no longer required.
22450
22451         * platform/graphics/GraphicsLayer.cpp:
22452         (WebCore::GraphicsLayer::GraphicsLayer):
22453         (WebCore::GraphicsLayer::updateDebugIndicators):
22454         * platform/graphics/GraphicsLayer.h:
22455         (WebCore::GraphicsLayer::setShowDebugBorder):
22456         (WebCore::GraphicsLayer::isShowingDebugBorder):
22457         (WebCore::GraphicsLayer::setShowRepaintCounter):
22458         (WebCore::GraphicsLayer::isShowingRepaintCounter):
22459         (WebCore::GraphicsLayer::repaintCount):
22460         (WebCore::GraphicsLayer::incrementRepaintCount):
22461         * platform/graphics/GraphicsLayerClient.h:
22462         * platform/graphics/ca/GraphicsLayerCA.cpp:
22463         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
22464         (WebCore::GraphicsLayerCA::setMasksToBounds):
22465         (WebCore::GraphicsLayerCA::setDrawsContent):
22466         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter):
22467         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
22468         (WebCore::GraphicsLayerCA::updateMasksToBounds):
22469         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
22470         (WebCore::GraphicsLayerCA::updateDebugBorder):
22471         (WebCore::GraphicsLayerCA::setShowDebugBorder):
22472         (WebCore::GraphicsLayerCA::setShowRepaintCounter):
22473         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
22474         (WebCore::GraphicsLayerCA::setupContentsLayer):
22475         (WebCore::GraphicsLayerCA::cloneLayer):
22476         * platform/graphics/ca/GraphicsLayerCA.h:
22477         (GraphicsLayerCA):
22478         (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders):
22479         * rendering/RenderLayerBacking.cpp:
22480         (WebCore::RenderLayerBacking::updateDebugIndicators):
22481         * rendering/RenderLayerBacking.h:
22482         (RenderLayerBacking):
22483         * rendering/RenderLayerCompositor.cpp:
22484         (WebCore::RenderLayerCompositor::updateBacking):
22485         * rendering/RenderLayerCompositor.h:
22486         (RenderLayerCompositor):
22487
22488 2012-11-05  Genevieve Mak  <gmak@rim.com>
22489
22490         [BLACKBERRY] Update touch code to reflect touch refactor
22491         https://bugs.webkit.org/show_bug.cgi?id=101227
22492
22493         Reviewed by Rob Buis.
22494
22495         PR #2706785
22496         Reviewed Internally by: Mike Lattanzio
22497
22498         * platform/blackberry/PlatformTouchEventBlackBerry.cpp:
22499         (WebCore::touchEventType):
22500         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
22501
22502 2012-11-05  Alok Priyadarshi  <alokp@chromium.org>
22503
22504         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
22505         https://bugs.webkit.org/show_bug.cgi?id=99083
22506
22507         Reviewed by Stephen White.
22508
22509         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
22510
22511         No new tests needed. This patch does not change anything functionally.
22512
22513         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
22514         (WebCore::GraphicsLayerChromium::setContentsOpaque):
22515         (WebCore::GraphicsLayerChromium::paint):
22516         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
22517         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
22518         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
22519         (OpaqueRectTrackingContentLayerDelegate):
22520
22521 2012-11-05  Stephen White  <senorblanco@chromium.org>
22522
22523         [chromium] Build fix after http://trac.webkit.org/changeset/133488.
22524         Removed a deleted file.  Unreviewed.
22525
22526         * WebCore.gypi:
22527
22528 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22529
22530         [V8] toV8(impl) should return null if impl is 0
22531         https://bugs.webkit.org/show_bug.cgi?id=101206
22532
22533         Reviewed by Adam Barth.
22534
22535         toV8(impl) should return null if impl is 0. However,
22536         V8HTMLCollection::toV8() does not have the null check.
22537         All other toV8()s return null.
22538
22539         No tests. I think there will be no call path that hits the change.
22540
22541         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
22542         (WebCore::toV8):
22543
22544 2012-11-05  David Barton  <dbarton@mathscribe.com>
22545
22546         Implement SimpleFontData::platformBoundsForGlyph on skia
22547         https://bugs.webkit.org/show_bug.cgi?id=101115
22548
22549         Reviewed by Eric Seidel.
22550
22551         The implementation is similar to SimpleFontData::platformWidthForGlyph on skia.
22552
22553         Tested by: fast/block/lineboxcontain/*glyphs*, mathml/presentation/*
22554
22555         * platform/graphics/skia/SimpleFontDataSkia.cpp:
22556         (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
22557
22558 2012-11-05  Andreas Kling  <kling@webkit.org>
22559
22560         Decouple Attr logic from ElementAttributeData.
22561         <http://webkit.org/b/101126>
22562
22563         Reviewed by Antti Koivisto.
22564
22565         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
22566         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
22567         can be shared by any number of Elements at a given time.
22568
22569         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
22570         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
22571
22572         * dom/Element.h:
22573         * dom/ElementAttributeData.h:
22574         * dom/Element.cpp:
22575         (WebCore::attrNodeListMap):
22576         (WebCore::attrNodeListForElement):
22577         (WebCore::ensureAttrNodeListForElement):
22578         (WebCore::removeAttrNodeListForElement):
22579         (WebCore::findAttrNodeInList):
22580         (WebCore::Element::~Element):
22581         (WebCore::Element::detachAttribute):
22582         (WebCore::Element::setAttributeNode):
22583         (WebCore::Element::removeAttributeInternal):
22584         (WebCore::Element::getAttributeNode):
22585         (WebCore::Element::getAttributeNodeNS):
22586         (WebCore::Element::normalizeAttributes):
22587         (WebCore::Element::attrIfExists):
22588         (WebCore::Element::ensureAttr):
22589         (WebCore::Element::detachAttrNodeFromElementWithValue):
22590         (WebCore::Element::detachAllAttrNodesFromElement):
22591         (WebCore::Element::cloneAttributesFromElement):
22592
22593             Move everything Attr-related into Element.cpp while simplifying some loops and remove
22594             conditions that are no longer needed as they used to depend on having an attributeData().
22595
22596         * dom/Node.h:
22597         (WebCore::Node::hasSyntheticAttrChildNodes):
22598         (WebCore::Node::setHasSyntheticAttrChildNodes):
22599
22600             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
22601
22602         * dom/Attr.cpp:
22603         (WebCore::Attr::detachFromElementWithValue):
22604
22605             Remove awkward indirection and let the call site deal with removing the Attr node from
22606             the Element's list of Attr nodes.
22607
22608         * dom/ElementAttributeData.cpp:
22609         (WebCore::ElementAttributeData::clearAttributes):
22610
22611             Remove now-unused Element* argument.
22612
22613 2012-11-05  Hans Muller  <hmuller@adobe.com>
22614
22615         [CSS Exclusions] Polygon edges should span colinear vertices
22616         https://bugs.webkit.org/show_bug.cgi?id=99343
22617
22618         Reviewed by Dirk Schulze.
22619
22620         ExclusionPolygonEdges now span coincident and collinear vertices. Currently
22621         pairs of vertices are only considered coincident if their coordinates are exactly
22622         equal. Similarly, a vertex is only considered collinear with an edge if the area
22623         of the triangle defined by the three vertices is exactly zero.  In the future it
22624         may be useful to relax the comparison with zero.
22625
22626         Tests: fast/exclusions/shape-inside/shape-inside-coincident-vertices.html
22627                fast/exclusions/shape-inside/shape-inside-collinear-vertices.html
22628
22629         * rendering/ExclusionPolygon.cpp:
22630         (WebCore::determinant): Used to measure collinearity.
22631         (WebCore):
22632         (WebCore::areCollinearPoints): True if three FloatPoint arguments are collinear per the test outlined above.
22633         (WebCore::areCoincidentPoints): True if the two FloatPoint arguments are equal.
22634         (WebCore::nextVertexIndex): The next vertex index in clockwise or counterclockwise order.
22635         (WebCore::ExclusionPolygon::findNextEdgeVertexIndex): Return the index of the next non-coincident, non-collinear vertex.
22636         (WebCore::ExclusionPolygon::ExclusionPolygon): Skip coincident and collinear vertices when building the list of edges.
22637         * rendering/ExclusionPolygon.h: Added private findNextEdgeVertexIndex() declaration.
22638
22639 2012-11-05  Christophe Dumez  <christophe.dumez@intel.com>
22640
22641         [EFL] Use POSIX implementation of SharedBuffer::createWithContentsOfFile()
22642         https://bugs.webkit.org/show_bug.cgi?id=101228
22643
22644         Reviewed by Kenneth Rohde Christiansen.
22645
22646         Get rid of EFL-specific implementation of SharedBuffer::createWithContentsOfFile()
22647         and reuse the POSIX one since it is pretty much the same.
22648
22649         No new tests, no behavior change.
22650
22651         * PlatformEfl.cmake:
22652         * platform/efl/SharedBufferEfl.cpp: Removed.
22653
22654 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22655
22656         Add a comment about a return value of IDBKey::toV8()
22657         https://bugs.webkit.org/show_bug.cgi?id=101212
22658
22659         Reviewed by Adam Barth.
22660
22661         Although all other toV8(impl) return null when impl is 0,
22662         IDBKey::toV8(impl) is expected to return undefined when impl is 0.
22663         This patch adds a comment about it.
22664
22665         No tests.
22666
22667         * bindings/js/JSIDBKeyCustom.cpp:
22668         (WebCore::toJS):
22669         * bindings/v8/custom/V8IDBKeyCustom.cpp:
22670         (WebCore::toV8):
22671
22672 2012-11-05  Dominik Röttsches  <dominik.rottsches@intel.com>
22673
22674         [Cairo] Make Cairo honor image orientation
22675         https://bugs.webkit.org/show_bug.cgi?id=101207
22676
22677         Reviewed by Kenneth Rohde Christiansen.
22678
22679         Implement transformed image drawing in BitmapImageCairo, similar
22680         as it was done for Skia in bug 100179, r132384.
22681         The image drawing code needs to transform the graphics context
22682         depending on exif orientation in order for this to work.
22683
22684         No new tests, covered by fast/images/exif-* which are passing now.
22685
22686         * platform/graphics/BitmapImage.h: Enable draw function which respects image orientation for Cairo.
22687         * platform/graphics/cairo/BitmapImageCairo.cpp:
22688         (WebCore::BitmapImage::draw): Apply ImageOrientation's transformFromDefault() transformation to context.
22689         (WebCore):
22690
22691 2012-11-05  Kentaro Hara  <haraken@chromium.org>
22692
22693         [V8] Dispose() and Clear() should be always coupled for safety
22694         https://bugs.webkit.org/show_bug.cgi?id=101191
22695
22696         Reviewed by Adam Barth.
22697
22698         Clear() is not mandatory. However, to avoid misusing already
22699         disposed wrappers, Clear() should be always called just
22700         after Dispose().
22701
22702         No tests. No change in behavior.
22703
22704         * bindings/v8/DOMWrapperMap.h:
22705         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
22706         * bindings/v8/IntrusiveDOMWrapperMap.h:
22707         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
22708         * bindings/v8/NPV8Object.cpp:
22709         (WebCore::freeV8NPObject):
22710         * bindings/v8/ScheduledAction.cpp:
22711         (WebCore::ScheduledAction::~ScheduledAction):
22712         * bindings/v8/V8NPObject.cpp:
22713         (WebCore::V8NPTemplateMap::dispose):
22714         (WebCore::weakNPObjectCallback):
22715         (WebCore::forgetV8ObjectForNPObject):
22716         * bindings/v8/V8PerContextData.cpp:
22717         (WebCore::V8PerContextData::dispose):
22718         * bindings/v8/V8ValueCache.cpp:
22719         (WebCore::cachedStringCallback):
22720         (WebCore::IntegerCache::~IntegerCache):
22721         * bindings/v8/custom/V8InjectedScriptManager.cpp:
22722         (WebCore::WeakReferenceCallback):
22723
22724 2012-11-05  Hans Muller  <hmuller@adobe.com>
22725
22726         [CSS Exclusions] Layout of the first shape-inside line can be incorrect
22727         https://bugs.webkit.org/show_bug.cgi?id=100996
22728
22729         Reviewed by Dirk Schulze.
22730
22731         Made the conversion from floating point top/bottom logical shape bounds coordinates
22732         LayoutUnits explicit and corrected the case where the top value was truncated.  A
22733         float logicalTop value is converted to LayoutUnit with fromFloatCeil() to ensure
22734         that the LayoutUnit value is within the shape.
22735         
22736         Test: fast/exclusions/shape-inside/shape-inside-shape-logical-top.html
22737
22738         * rendering/ExclusionShapeInsideInfo.h:
22739         (WebCore::ExclusionShapeInsideInfo::shapeLogicalTop): Redefined this method in terms of shapeLogicalBoundsY,Max().
22740         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBottom):  Ditto.
22741         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds):  Ditto.
22742         (ExclusionShapeInsideInfo):
22743         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsY): Explicit conversion from floating point shape coordinates to LayoutUnits.
22744         (WebCore::ExclusionShapeInsideInfo::shapeLogicalBoundsMaxY): Ditto.
22745
22746 2012-11-05  Antti Koivisto  <antti@apple.com>
22747
22748         Protect against resource deletion during iteration in MemoryCache::pruneDeadResourcesToSize
22749         https://bugs.webkit.org/show_bug.cgi?id=101211
22750
22751         Reviewed by Andreas Kling.
22752         
22753         Some crashes have been seen under MemoryCache::pruneDeadResourcesToSize. A possible cause is that
22754         destroyDecodedData() call ends up evicting the resource pointed by 'previous' pointer during iteration
22755         and deleting the object. This looks in principle possible via stylesheets and SVG images.
22756         
22757         Speculative fix, no repro, no obvious way to construct a test.
22758
22759         * loader/cache/MemoryCache.cpp:
22760         (WebCore::MemoryCache::pruneDeadResourcesToSize):
22761         
22762             Use CachedResourceHandle to protect the 'previous' pointer during iteration. Check if the
22763             resource has been kicked out from the cache during destroyDecodedData() and stop iterating
22764             if has (as it may die when CachedResourceHandle releases it).
22765             The 'current' pointer is not protected as the resource it points to is allowed to die.
22766             
22767 2012-11-05  Andrey Adaikin  <aandrey@chromium.org>
22768
22769         Web Inspector: Fix jscompiler cast syntax
22770         https://bugs.webkit.org/show_bug.cgi?id=101066
22771
22772         Reviewed by Pavel Feldman.
22773
22774         Casts should be in the form of "/** @type {TypeName} */ (expr)" instead of "/** @type {TypeName} */ expr".
22775
22776         * inspector/InjectedScriptCanvasModuleSource.js:
22777         (.):
22778         * inspector/InjectedScriptSource.js:
22779         (.):
22780         * inspector/front-end/ApplicationCacheModel.js:
22781         (WebInspector.ApplicationCacheModel.prototype._frameNavigated):
22782         (WebInspector.ApplicationCacheModel.prototype._frameDetached):
22783         * inspector/front-end/AuditLauncherView.js:
22784         (WebInspector.AuditLauncherView.prototype._onRequestStarted):
22785         (WebInspector.AuditLauncherView.prototype._onRequestFinished):
22786         * inspector/front-end/BreakpointManager.js:
22787         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
22788         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
22789         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
22790         (WebInspector.BreakpointManager.prototype._breakpointResolved):
22791         (WebInspector.BreakpointManager.Breakpoint.prototype._locationUpdated):
22792         (WebInspector.BreakpointManager.Storage):
22793         * inspector/front-end/BreakpointsSidebarPane.js:
22794         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointAdded):
22795         * inspector/front-end/CSSNamedFlowCollectionsView.js:
22796         (WebInspector.CSSNamedFlowCollectionsView.prototype._documentUpdated):
22797         (WebInspector.CSSNamedFlowCollectionsView.prototype._namedFlowCreated):
22798         (WebInspector.CSSNamedFlowCollectionsView.prototype._regionLayoutUpdated):
22799         (WebInspector.CSSNamedFlowCollectionsView.prototype._selectedNodeChanged):
22800         * inspector/front-end/CSSSelectorProfileView.js:
22801         (WebInspector.CSSProfileHeader.prototype.createView):
22802         * inspector/front-end/CSSStyleModel.js:
22803         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
22804         (WebInspector.CSSStyleDeclaration.parseComputedStylePayload):
22805         * inspector/front-end/CompilerScriptMapping.js:
22806         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
22807         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
22808         * inspector/front-end/ConsoleView.js:
22809         (WebInspector.ConsoleView.prototype._frameAdded):
22810         (WebInspector.ConsoleView.prototype._frameRemoved):
22811         * inspector/front-end/DOMAgent.js:
22812         (WebInspector.DOMDocument):
22813         * inspector/front-end/DebuggerModel.js:
22814         (WebInspector.DebuggerModel.prototype.didSetBreakpoint):
22815         (WebInspector.DebuggerModel.prototype.setBreakpointByURL):
22816         (WebInspector.DebuggerModel.prototype.):
22817         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
22818         (WebInspector.DebuggerModel.CallFrame.prototype.get location):
22819         * inspector/front-end/DebuggerScriptMapping.js:
22820         (WebInspector.DebuggerScriptMapping.prototype._parsedScriptSource):
22821         * inspector/front-end/DirectoryContentView.js:
22822         (WebInspector.DirectoryContentView.prototype._sort):
22823         * inspector/front-end/ElementsPanel.js:
22824         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
22825         * inspector/front-end/ElementsPanelDescriptor.js:
22826         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
22827         * inspector/front-end/ElementsTreeOutline.js:
22828         (.get node):
22829         * inspector/front-end/ExtensionServer.js:
22830         (WebInspector.ExtensionServer.prototype._onAddRequestHeaders):
22831         (WebInspector.ExtensionServer.prototype._handleOpenURL):
22832         (WebInspector.ExtensionServer.prototype._onGetResourceContent):
22833         (WebInspector.ExtensionServer.prototype._onSetResourceContent):
22834         (WebInspector.ExtensionServer.prototype._notifyResourceAdded):
22835         (WebInspector.ExtensionServer.prototype._notifyUISourceCodeContentCommitted):
22836         (WebInspector.ExtensionServer.prototype._notifyRequestFinished):
22837         * inspector/front-end/FileContentView.js:
22838         (WebInspector.FileContentView.prototype._metadataReceived):
22839         (WebInspector.FileContentView.FileContentProvider.prototype.requestContent):
22840         * inspector/front-end/FileSystemModel.js:
22841         (WebInspector.FileSystemModel.prototype._frameAdded):
22842         (WebInspector.FileSystemModel.prototype._frameNavigated):
22843         (WebInspector.FileSystemModel.prototype._frameDetached):
22844         * inspector/front-end/FileSystemView.js:
22845         (WebInspector.FileSystemView.EntryTreeElement.prototype.onselect):
22846         (WebInspector.FileSystemView.EntryTreeElement.prototype.refresh):
22847         * inspector/front-end/HandlerRegistry.js:
22848         (WebInspector.HandlerRegistry.prototype._appendHrefItems):
22849         * inspector/front-end/HeapSnapshotLoader.js:
22850         (WebInspector.HeapSnapshotLoader.prototype.write):
22851         * inspector/front-end/HeapSnapshotView.js:
22852         (WebInspector.HeapSnapshotView.prototype._changeBase):
22853         (WebInspector.HeapProfileHeader.prototype.load):
22854         (WebInspector.HeapProfileHeader.prototype._snapshotReceived):
22855         * inspector/front-end/IndexedDBModel.js:
22856         (WebInspector.IndexedDBModel.prototype._frameNavigated):
22857         (WebInspector.IndexedDBModel.prototype._frameDetached):
22858         * inspector/front-end/IndexedDBViews.js:
22859         (WebInspector.IDBDataView.prototype._keyColumnHeaderFragment):
22860         * inspector/front-end/JavaScriptSourceFrame.js:
22861         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
22862         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
22863         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
22864         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
22865         (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageRemoved):
22866         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
22867         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
22868         * inspector/front-end/MemoryStatistics.js:
22869         (WebInspector.MemoryStatistics.prototype.show):
22870         * inspector/front-end/NavigatorView.js:
22871         (WebInspector.NavigatorView.prototype._uiSourceCodeTitleChanged):
22872         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyChanged):
22873         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
22874         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
22875         * inspector/front-end/NetworkLog.js:
22876         (WebInspector.NetworkLog.prototype._onRequestStarted):
22877         * inspector/front-end/NetworkManager.js:
22878         (WebInspector.NetworkManager.prototype._cacheDisabledSettingChanged):
22879         * inspector/front-end/NetworkPanel.js:
22880         (WebInspector.NetworkLogView.prototype._onRequestUpdated):
22881         (WebInspector.NetworkLogView.prototype._mainFrameNavigated):
22882         (WebInspector.NetworkPanel.prototype.reveal):
22883         (WebInspector.NetworkPanel.prototype.appendApplicableItems):
22884         * inspector/front-end/NetworkUISourceCodeProvider.js:
22885         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
22886         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
22887         * inspector/front-end/ObjectPopoverHelper.js:
22888         (WebInspector.ObjectPopoverHelper.prototype.):
22889         (WebInspector.ObjectPopoverHelper.prototype._showObjectPopover):
22890         * inspector/front-end/PresentationConsoleMessageHelper.js:
22891         (WebInspector.PresentationConsoleMessageHelper.prototype._consoleMessageAdded):
22892         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
22893         * inspector/front-end/ProfilesPanel.js:
22894         * inspector/front-end/ResourceScriptMapping.js:
22895         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
22896         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
22897         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
22898         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
22899         * inspector/front-end/ResourceTreeModel.js:
22900         (WebInspector.ResourceTreeModel.prototype._onRequestFinished):
22901         (WebInspector.ResourceTreeModel.prototype._consoleMessageAdded):
22902         * inspector/front-end/ResourcesPanel.js:
22903         (WebInspector.ResourcesPanel.prototype._databaseAdded):
22904         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
22905         (WebInspector.IndexedDBTreeElement.prototype._indexedDBAdded):
22906         (WebInspector.IndexedDBTreeElement.prototype._indexedDBRemoved):
22907         (WebInspector.IndexedDBTreeElement.prototype._indexedDBLoaded):
22908         (WebInspector.FileSystemListTreeElement.prototype._fileSystemAdded):
22909         (WebInspector.FileSystemListTreeElement.prototype._fileSystemRemoved):
22910         (WebInspector.FileSystemListTreeElement.prototype._fileSystemTreeElementByName):
22911         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traverseNext):
22912         (WebInspector.SearchResultsTreeElementsTraverser.prototype._traversePrevious):
22913         * inspector/front-end/RevisionHistoryView.js:
22914         (WebInspector.RevisionHistoryView.prototype._uiSourceCodeRemoved):
22915         * inspector/front-end/SASSSourceMapping.js:
22916         (rawLocationToUILocation):
22917         * inspector/front-end/ScopeChainSidebarPane.js:
22918         (WebInspector.ScopeChainSidebarPane.prototype.update):
22919         * inspector/front-end/Script.js:
22920         (WebInspector.Script.Location.prototype.uiLocation):
22921         * inspector/front-end/ScriptFormatter.js:
22922         (WebInspector.ScriptFormatter.prototype.get _worker):
22923         * inspector/front-end/ScriptsPanel.js:
22924         (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
22925         (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
22926         (WebInspector.ScriptsPanel.prototype._editorClosed):
22927         (WebInspector.ScriptsPanel.prototype._editorSelected):
22928         (WebInspector.ScriptsPanel.prototype._scriptSelected):
22929         (WebInspector.ScriptsPanel.prototype.canSearchAndReplace):
22930         (WebInspector.ScriptsPanel.prototype.replaceSelectionWith):
22931         (WebInspector.ScriptsPanel.prototype.replaceAllWith):
22932         (WebInspector.ScriptsPanel.prototype._toggleBreakpoint):
22933         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
22934         (WebInspector.ScriptsPanel.prototype._appendUISourceCodeItems):
22935         * inspector/front-end/ScriptsPanelDescriptor.js:
22936         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
22937         * inspector/front-end/StylesSourceMapping.js:
22938         (WebInspector.StylesSourceMapping.prototype.rawLocationToUILocation):
22939         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
22940         * inspector/front-end/TabbedEditorContainer.js:
22941         (WebInspector.TabbedEditorContainer.prototype._scrollChanged):
22942         (WebInspector.TabbedEditorContainer.prototype._selectionChanged):
22943         (WebInspector.TabbedEditorContainer.prototype._tabClosed):
22944         (WebInspector.TabbedEditorContainer.prototype._tabSelected):
22945         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeTitleChanged):
22946         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyChanged):
22947         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
22948         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
22949         * inspector/front-end/TimelineModel.js:
22950         (WebInspector.TimelineModelLoader.prototype.write):
22951         * inspector/front-end/UISourceCodeFrame.js:
22952         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
22953         * inspector/front-end/Workspace.js:
22954         (WebInspector.WorkspaceController.prototype._frameAdded):
22955         (WebInspector.Project.prototype._fileAdded):
22956         (WebInspector.Project.prototype._fileRemoved):
22957
22958 2012-11-05  Pavel Feldman  <pfeldman@chromium.org>
22959
22960         Web Inspector: render message bubbles in CodeMirror experiment.
22961         https://bugs.webkit.org/show_bug.cgi?id=101164
22962
22963         Reviewed by Vsevolod Vlasov.
22964
22965         It sounds like addLineWidget just makes it happen.
22966
22967         * inspector/front-end/CodeMirrorTextEditor.js:
22968         (WebInspector.CodeMirrorTextEditor):
22969         (WebInspector.CodeMirrorTextEditor.prototype.addDecoration):
22970         (WebInspector.CodeMirrorTextEditor.prototype.get if):
22971         (WebInspector.CodeMirrorTextEditor.prototype.removeDecoration):
22972         (WebInspector.CodeMirrorTextEditor.prototype._change):
22973         * inspector/front-end/DefaultTextEditor.js:
22974         (.preventDefaultOnMouseUp):
22975         * inspector/front-end/PresentationConsoleMessageHelper.js:
22976         (WebInspector.PresentationConsoleMessageHelper):
22977         * inspector/front-end/cm/cmdevtools.css:
22978         (.CodeMirror .webkit-html-message-bubble):
22979         (.CodeMirror .webkit-html-message-bubble img):
22980         (.CodeMirror .webkit-html-warning-message):
22981         (.CodeMirror .webkit-html-error-message):
22982
22983 2012-11-05  Thiago Marcos P. Santos  <thiago.santos@intel.com>
22984
22985         Validate CSS Device Adaptation properties and resolve shorthands
22986         https://bugs.webkit.org/show_bug.cgi?id=95962
22987
22988         Reviewed by Alexis Menard.
22989
22990         Add the missing keywords and properties for the viewport at-rule.
22991         Note that we have to mark that we are inside a viewport scope because
22992         some properties are not validated as they would be inside a style
22993         rule. As an example, the semantics of CSSPropertyWidth are completely
22994         different: on a viewport rule, it stands for a shorthand for the
22995         minimum and maximum width.
22996
22997         Test: css3/device-adapt/viewport-properties-validation.html
22998
22999         * css/CSSComputedStyleDeclaration.cpp:
23000         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
23001         * css/CSSParser.cpp:
23002         (WebCore::CSSParser::parseValue):
23003         (WebCore):
23004         (WebCore::CSSParser::parseViewportProperty):
23005         (WebCore::CSSParser::parseViewportShorthand):
23006         * css/CSSParser.h:
23007         * css/CSSProperty.cpp:
23008         (WebCore::CSSProperty::isInheritedProperty):
23009         * css/CSSPropertyNames.in:
23010         * css/CSSValueKeywords.in:
23011
23012 2012-11-05  Sheriff Bot  <webkit.review.bot@gmail.com>
23013
23014         Unreviewed, rolling out r133286, r133385, and r133394.
23015         http://trac.webkit.org/changeset/133286
23016         http://trac.webkit.org/changeset/133385
23017         http://trac.webkit.org/changeset/133394
23018         https://bugs.webkit.org/show_bug.cgi?id=101198
23019
23020         Broke image placement on some web sites. (Requested by kling
23021         on #webkit).
23022
23023         * css/StyleResolver.cpp:
23024         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
23025         (WebCore::StyleResolver::matchAllRules):
23026         (WebCore::StyleResolver::canShareStyleWithElement):
23027         * dom/Attr.cpp:
23028         (WebCore::Attr::detachFromElementWithValue):
23029         * dom/Element.cpp:
23030         (WebCore::Element::~Element):
23031         (WebCore::Element::detachAttribute):
23032         (WebCore::Element::getAttribute):
23033         (WebCore::Element::setAttributeNode):
23034         (WebCore::Element::removeAttributeInternal):
23035         (WebCore::Element::getAttributeNode):
23036         (WebCore::Element::getAttributeNodeNS):
23037         (WebCore::Element::normalizeAttributes):
23038         (WebCore::Element::attrIfExists):
23039         (WebCore::Element::ensureAttr):
23040         (WebCore::Element::cloneAttributesFromElement):
23041         * dom/Element.h:
23042         (Element):
23043         (WebCore::Element::updateInvalidAttributes):
23044         * dom/ElementAttributeData.cpp:
23045         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
23046         (WebCore):
23047         (WebCore::attrListMap):
23048         (WebCore::attrListForElement):
23049         (WebCore::ensureAttrListForElement):
23050         (WebCore::removeAttrListForElement):
23051         (WebCore::findAttrInList):
23052         (WebCore::ElementAttributeData::attrIfExists):
23053         (WebCore::ElementAttributeData::ensureAttr):
23054         (WebCore::ElementAttributeData::setAttr):
23055         (WebCore::ElementAttributeData::removeAttr):
23056         (WebCore::ElementAttributeData::detachAttrObjectsFromElement):
23057         (WebCore::ElementAttributeData::reportMemoryUsage):
23058         (WebCore::ElementAttributeData::cloneDataFrom):
23059         (WebCore::ElementAttributeData::clearAttributes):
23060         (WebCore::ElementAttributeData::getAttributeNode):
23061         * dom/ElementAttributeData.h:
23062         (WebCore):
23063         (WebCore::ElementAttributeData::attributeStyle):
23064         (WebCore::ElementAttributeData::setAttributeStyle):
23065         (ElementAttributeData):
23066         (WebCore::ElementAttributeData::ElementAttributeData):
23067         * dom/Node.h:
23068         (WebCore):
23069         (WebCore::Node::hasAttrList):
23070         (WebCore::Node::attributeStyleDirty):
23071         (WebCore::Node::setAttributeStyleDirty):
23072         (WebCore::Node::clearAttributeStyleDirty):
23073         (Node):
23074         (WebCore::Node::setHasAttrList):
23075         (WebCore::Node::clearHasAttrList):
23076         (WebCore::Node::isStyleAttributeValid):
23077         (WebCore::Node::setIsStyleAttributeValid):
23078         (WebCore::Node::clearIsStyleAttributeValid):
23079         * dom/StyledElement.cpp:
23080         (WebCore::StyledElement::updateStyleAttribute):
23081         (WebCore::StyledElement::attributeChanged):
23082         (WebCore::StyledElement::styleAttributeChanged):
23083         (WebCore::StyledElement::inlineStyleChanged):
23084         (WebCore::StyledElement::updateAttributeStyle):
23085         * dom/StyledElement.h:
23086         (StyledElement):
23087         (WebCore::StyledElement::invalidateStyleAttribute):
23088         (WebCore::StyledElement::attributeStyle):
23089         * inspector/InspectorCSSAgent.cpp:
23090         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
23091
23092 2012-11-05  Simon Hausmann  <simon.hausmann@digia.com>
23093
23094         Unreviewed trivial Qt build fix.
23095
23096         Surround imports from QtGui by QT_{BEGIN,END}_NAMESPACE to fix namespaced
23097         builds.
23098
23099         * platform/graphics/qt/GraphicsContextQt.cpp:
23100         * platform/graphics/qt/ImageQt.cpp:
23101
23102 2012-11-05  Shinya Kawanaka  <shinyak@chromium.org>
23103
23104         [Shadow] ShadowRoot type is not set correctly.
23105         https://bugs.webkit.org/show_bug.cgi?id=101188
23106
23107         Reviewed by Hajime Morita.
23108
23109         ShadowRoot type is not set correctly in Release build. We have had to remove #ifndef block.
23110
23111         Test: fast/dom/shadow/shadowroot-type.html
23112
23113         * dom/ShadowRoot.cpp:
23114         (WebCore::ShadowRoot::create):
23115         * testing/Internals.cpp:
23116         (WebCore::Internals::shadowRootType):
23117         (WebCore):
23118         * testing/Internals.h:
23119         (Internals):
23120         * testing/Internals.idl:
23121
23122 2012-11-05  Kent Tamura  <tkent@chromium.org>
23123
23124         BaseChooserOnlyDateAndTimeInputType should implement DateTimeChooserClient
23125         https://bugs.webkit.org/show_bug.cgi?id=101038
23126
23127         Reviewed by Hajime Morita.
23128
23129         Add DateTimeChooserClient behavior to BaseChooserOnlyDateAndTimeInputType.
23130         It means that date/time input elements without
23131         ENABLE_INPUT_MULTIPLE_FIELDS_UI can open date/time choosers by
23132         DOMActivate event.
23133
23134         This patch doesn't change behavior yet because Chromimum-Android port
23135         intercepts user events and doesn't deliver them to date/time input
23136         elements. <http://crbug.com/159381>
23137
23138         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23139         Add DateTimeChooserClient behavior. The code is similar to
23140         PickerIndicatorElement.
23141         (WebCore::BaseChooserOnlyDateAndTimeInputType::~BaseChooserOnlyDateAndTimeInputType):
23142         Closes DateTimeChooser.
23143         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23144         Open DateTimeChooser if
23145          - The element is not disabled,
23146          - The element is not read-only,
23147          - The element has a renderer,
23148          - This event is created by a user gesture, and
23149          - The element has no DateTimeChooser.
23150         (WebCore::BaseChooserOnlyDateAndTimeInputType::detach):
23151         Closes DateTimeChooser.
23152         (WebCore::BaseChooserOnlyDateAndTimeInputType::didChooseValue):
23153         Set a string value coming from a chooser to the input element.
23154         (WebCore::BaseChooserOnlyDateAndTimeInputType::didEndChooser):
23155         Clear m_dateTimeChooser when the chooser was closed.
23156         (WebCore::BaseChooserOnlyDateAndTimeInputType::closeDateTimeChooser):
23157         Requests to close the chooser.
23158         * html/BaseChooserOnlyDateAndTimeInputType.h:
23159         (BaseChooserOnlyDateAndTimeInputType):
23160          - Implement DateTimeChooserClient
23161          - Add closeDateTimeChooser helper function.
23162          - Add detach override.
23163          - Add m_dateTimeChooser.
23164         * html/HTMLInputElement.cpp:
23165         (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
23166         Added. The code is moved from PickerIndicatorElement.cpp in order to
23167         share it with BaseChooserOnlyDateAndTimeInputType.
23168         * html/HTMLInputElement.h:
23169         (HTMLInputElement): Declare setupDateTimeChooserParameters.
23170         * html/shadow/PickerIndicatorElement.cpp:
23171         (WebCore::PickerIndicatorElement::openPopup):
23172         Move some code to HTMLInputElement::setupDateTimeChooserParameters.
23173
23174 2012-11-04  Julien Chaffraix  <jchaffraix@webkit.org>
23175
23176         Fix the collapsing border code to handle mixed directionality at the row level
23177         https://bugs.webkit.org/show_bug.cgi?id=101060
23178
23179         Reviewed by Ojan Vafai.
23180
23181         After bug 87900, we support mixed directionality at the row-group level. For coherency
23182         - as the underlying code didn't support it - we were artificially ignoring 'direction'
23183         below the row-group. This change relaxes the restriction and patches the collapsing
23184         borders code to query the right style and border.
23185
23186         Tests: fast/table/border-collapsing/table-ltr-rows-mixed-direction.html
23187                fast/table/border-collapsing/table-rtl-row-mixed-direction.html
23188
23189         * rendering/RenderTable.cpp:
23190         (WebCore::RenderTable::tableStartBorderAdjoiningCell):
23191         (WebCore::RenderTable::tableEndBorderAdjoiningCell):
23192         Changed to query the row's direction.
23193
23194         * rendering/RenderTableCell.cpp:
23195         (WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
23196         (WebCore::RenderTableCell::hasEndBorderAdjoiningTable):
23197         Added 2 helper functions. They determine if a specific cell's border
23198         adjoins the table. This code is required as the last cell's end border
23199         can be resolved against the start border.
23200
23201         (WebCore::RenderTableCell::computeCollapsedStartBorder):
23202         (WebCore::RenderTableCell::computeCollapsedEndBorder):
23203         Updated these functions now that being the start / end column doesn't mean
23204         that we have to resolve against the row / row-group / table's border.
23205
23206         * rendering/RenderTableCell.h:
23207         (WebCore::RenderTableCell::styleForCellFlow):
23208         Updated to return the row's style.
23209
23210         * rendering/RenderTableRow.cpp:
23211         (WebCore::RenderTableRow::borderAdjoiningStartCell):
23212         (WebCore::RenderTableRow::borderAdjoiningEndCell):
23213         * rendering/RenderTableSection.cpp:
23214         (WebCore::RenderTableSection::borderAdjoiningStartCell):
23215         (WebCore::RenderTableSection::borderAdjoiningEndCell):
23216         Updated these functions to work with mixed directionality.
23217
23218         * rendering/RenderTableSection.cpp:
23219         (WebCore::RenderTableSection::setLogicalPositionForCell):
23220         Changed this function to use the section's direction. This is wrong and should be changed
23221         once we properly fix the collapsing border code.
23222
23223         (WebCore::RenderTableSection::logicalRectForWritingModeAndDirection):
23224         Added a FIXME.
23225
23226         * rendering/style/CollapsedBorderValue.h:
23227         (WebCore::CollapsedBorderValue::width):
23228         This is a bug in our implementation: we used to return a non-zero width for inexistant borders (per CSS 2.1,
23229         'border-style: off | hidden' should have a 0 width). This is covered by our existing tests (among others by
23230         fast/table/border-collapsing/last-cell-left-border-hidden-table-ltr-section-rtl.html).
23231
23232 2012-11-04  Andrey Adaikin  <aandrey@chromium.org>
23233
23234         Web Inspector: [Canvas] do not blow up the capturing log
23235         https://bugs.webkit.org/show_bug.cgi?id=100752
23236
23237         Reviewed by Pavel Feldman.
23238
23239         Clear obsolete calls in the canvas 2D capturing log in runtime.
23240         Now we store in the log only minimum number of calls that are necessary to replay a
23241         canvas 2D context. To achieve that we find in runtime those calls in the log that no
23242         longer contribute to the final context state and remove them.
23243         These are the rules according which we find and remove such calls:
23244         - all PATH methods between a clip() call and beginPath() call can be removed
23245         - all MATRIX methods before a restore() or setTransform() call but after any PATH or corresponding save() method
23246         - all consecutive save() + restore() calls
23247
23248         Tests: inspector/profiler/canvas2d/canvas2d-api-changes.html
23249                inspector/profiler/canvas2d/canvas2d-profiler-capturing-basics.html
23250
23251         * inspector/InjectedScriptCanvasModuleSource.js:
23252         (.):
23253
23254 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23255
23256         [Shadow] ShadowRoot should have a method to return ShadowRootType.
23257         https://bugs.webkit.org/show_bug.cgi?id=101178
23258
23259         Reviewed by Hajime Morita.
23260
23261         When we style PseudoCustomElement, we have to know ShadowRootType.
23262         We would like to expose a method to get ShadowRootType also in Release mode.
23263
23264         This is a preparation patch for Bug 101170.
23265
23266         * dom/ShadowRoot.h:
23267         (ShadowRoot):
23268
23269 2012-11-04  Keishi Hattori  <keishi@webkit.org>
23270
23271         Introduce Month class to calendar picker
23272         https://bugs.webkit.org/show_bug.cgi?id=101024
23273
23274         Reviewed by Kent Tamura.
23275
23276         Month class needs to be introduced to implement a month picker. This
23277         patch just introduces the Month class into the calendar picker without
23278         changing the current behavior.
23279
23280         No new tests. Covered by existing calendar-picker-*.html tests.
23281
23282         * Resources/pagepopups/calendarPicker.js:
23283         (Month.prototype.toLocaleString): Returns a localized month string.
23284         (Month): Takes a Month object, number representing the month, or year and month numbers.
23285         (Month.parse): Returns a new Month from an ISO month string.
23286         (Month.createFromDate): Returns a new Month containing the given datetime.
23287         (Month.prototype.equals): Returns true if the given month is the same.
23288         (Month.prototype.previous): Returns the previous month.
23289         (Month.prototype.next): Returns the next month.
23290         (Month.prototype.startDate): Returns a datetime that is the start of this month. The value is inclusive.
23291         (Month.prototype.endDate): Returns a datetime that is the end of this month. The value is exclusive.
23292         (Month.prototype.valueOf): Returns a number representing the month.
23293         (Month.prototype.toString): Returns an ISO month string.
23294         (YearMonthController): Use Month object.
23295         (YearMonthController.prototype.attachTo): Year 275760 ends in September so use the year before to measure the label width.
23296         (YearMonthController.prototype.setMonth): Take a month object.
23297         (YearMonthController.prototype._redraw): Use ISO month string for element.dataset.value.
23298         (YearMonthController.prototype._handleYearMonthChange):
23299         (YearMonthController.prototype.moveRelatively):
23300         (DaysTable): Use Month object.
23301         (DaysTable.prototype._renderMonth): Take a month object. Testing for isNaN is moved up to fix a bug when showing September, 275760.
23302         (DaysTable.prototype._navigateToMonth): Take a month object.
23303         (DaysTable.prototype._navigateToMonthWithAnimation): Take a month object.
23304         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Take a month object.
23305         (DaysTable.prototype.selectDate):
23306         (DaysTable.prototype._maybeSetPreviousMonth): Use Month object to calculate the previous month.
23307         (DaysTable.prototype._maybeSetNextMonth): Use Month object to calculate the next month.
23308
23309 2012-11-04  Halton Huo  <halton.huo@intel.com>
23310
23311         [EFL] Use _LIBRARIES instead of _LIBRARY
23312         https://bugs.webkit.org/show_bug.cgi?id=101042
23313
23314         Reviewed by Gyuyoung Kim.
23315
23316         In CMake Find files, _LIBRARY is intended for internal use, should
23317         use _LIBRARIES instead.
23318
23319         * PlatformEfl.cmake: s/_LIBRARY}/_LIBRARIES}
23320
23321 2012-11-04  MORITA Hajime  <morrita@google.com>
23322
23323         Shadow DOM should be able to be disabled per context.
23324         https://bugs.webkit.org/show_bug.cgi?id=101173
23325
23326         Reviewed by Dimitri Glazkov.
23327
23328         This change pulls back relevant bits from r131549. Note that if
23329         the the port enables runtime Shadow DOM flag, this can cause slow
23330         down on some Chromium page cycler test cases (which r131549
23331         attempted to fix).
23332
23333         This change is temporal and the flags should be switched back from
23334         ContextFeatures to RuntimeEnabledFeatures once it gains sufficent
23335         stability.
23336
23337         * dom/ContextFeatures.cpp:
23338         (WebCore::ContextFeatures::shadowDOMEnabled):
23339         (WebCore):
23340         * dom/ContextFeatures.h:
23341         * dom/Position.cpp:
23342         (WebCore::Position::Position):
23343         (WebCore::Position::findParent):
23344         * dom/TreeScope.cpp:
23345         (WebCore::TreeScope::getSelection):
23346         * html/HTMLTagNames.in:
23347         * html/shadow/HTMLContentElement.cpp:
23348         (WebCore::HTMLContentElement::contentTagName):
23349         * page/DOMWindow.idl:
23350
23351 2012-11-04  Shinya Kawanaka  <shinyak@chromium.org>
23352
23353         [Shadow] Implement custom pseudo-elements styling
23354         https://bugs.webkit.org/show_bug.cgi?id=100812
23355
23356         Reviewed by Hajime Morita.
23357
23358         Instead of using ElementRareData::m_shadowPseudoId, we use 'pseudo' attribute.
23359
23360         Later we would like to remove Element::shadowPseudoId and Element::setShadowPseudoId
23361         and use pseudo()/setPseudo() instead (Bug 101171).
23362
23363         Test: fast/dom/shadow/styling-pseudo-attribute.html
23364
23365         * dom/Element.cpp:
23366         (WebCore::Element::shadowPseudoId):
23367         (WebCore::Element::setShadowPseudoId):
23368         * dom/ElementRareData.cpp:
23369         (WebCore::ElementRareData::reportMemoryUsage):
23370         * dom/ElementRareData.h:
23371         (ElementRareData):
23372
23373 2012-11-04  Kent Tamura  <tkent@chromium.org>
23374
23375         BaseChooserOnlyDateAndTimeInputType should have BaseClickableWithKeyInputType behavior
23376         https://bugs.webkit.org/show_bug.cgi?id=101039
23377
23378         Reviewed by Hajime Morita.
23379
23380         Add BaseClickableWithKeyInputType behavior to
23381         BaseChooserOnlyDateAndTimeInputType. It means date/time input types
23382         without ENABLE_INPUT_MULTIPLE_FIELDS_UI receive DOMActivate events by
23383         pressing space or enter key. They're going to open a date/time chooser
23384         by DOMActive event.
23385
23386         Because BaseChooserOnlyDateAndTimeInputType inherits from
23387         BaseDateAndTimeInputType, it can't inherit
23388         BaseClickableWithKeyInputType. So, this patch adds static helper
23389         functions to BaseClickableWithKeyInputType, and
23390         BaseChooserOnlyDateAndTimeInputType uses them.
23391
23392         This patch doesn't change behavior yet because Chromimum-Android port
23393         intercepts user events and doesn't deliver them to date/time input
23394         elements.
23395
23396         * html/BaseChooserOnlyDateAndTimeInputType.cpp:
23397         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleDOMActivateEvent):
23398         Add an empty implementation with a FIXME comment.
23399         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeydownEvent):
23400         Add BaseClickableWithKeyInputType behavior by a helper function.
23401         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeypressEvent): Ditto.
23402         (WebCore::BaseChooserOnlyDateAndTimeInputType::handleKeyupEvent): Ditto.
23403         (WebCore::BaseChooserOnlyDateAndTimeInputType::accessKeyAction): Ditto.
23404         * html/BaseChooserOnlyDateAndTimeInputType.h:
23405         (BaseChooserOnlyDateAndTimeInputType): Add function declarations.
23406         * html/BaseClickableWithKeyInputType.cpp:
23407         Add static helper functions, and existing member functions use them.
23408         * html/BaseClickableWithKeyInputType.h:
23409         (BaseClickableWithKeyInputType): Add declarations of the helper functions.
23410         * html/InputType.h:
23411         (InputType): Make dispatchSimulatedClickIfActive public because it is
23412         called from a helper function.
23413
23414 2012-11-04  Sheriff Bot  <webkit.review.bot@gmail.com>
23415
23416         Unreviewed, rolling out r133416.
23417         http://trac.webkit.org/changeset/133416
23418         https://bugs.webkit.org/show_bug.cgi?id=101169
23419
23420         Broke world selection by right click (Requested by rniwa on
23421         #webkit).
23422
23423         * page/EventHandler.cpp:
23424         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
23425         (WebCore::EventHandler::sendContextMenuEvent):
23426
23427 2012-11-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
23428
23429         Missing ASCIILiteral in a place of accessibility
23430         https://bugs.webkit.org/show_bug.cgi?id=101160
23431
23432         Reviewed by Darin Adler.
23433
23434         ASCIILiteral usage is being missed in a spot of accessibliity.
23435
23436         * accessibility/AccessibilityMediaControls.cpp:
23437         (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
23438
23439 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23440
23441         [Qt][WK2] setPlatformStrategies always asserts after r132744
23442         https://bugs.webkit.org/show_bug.cgi?id=100838
23443
23444         Reviewed by Simon Hausmann.
23445
23446         Reland with build fixes.
23447
23448         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23449         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23450         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23451         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23452         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23453         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23454         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23455         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23456         in non production mode.
23457
23458         Basically covered by all tests.
23459
23460         * Target.pri:
23461         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23462         initializeTestFonts uses it.
23463         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23464         is also under that.
23465         (WebKit):
23466         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23467         without calling initializeWebCoreQt.
23468         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23469         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23470         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23471         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23472         the job even if we would stop clearing all caches between tests. Also moved the call to
23473         QFontDatabase::removeAllApplicationFonts from callers to here.
23474         * platform/qt/QtTestSupport.h:
23475         (WebKit):
23476         (QtTestSupport):
23477
23478 2012-11-04  Florin Malita  <fmalita@chromium.org>
23479
23480         Color-profile property triggers assert
23481         https://bugs.webkit.org/show_bug.cgi?id=101080
23482
23483         Reviewed by Dirk Schulze.
23484
23485         CSSPropertyColorProfile is not handled in StyleResolver::applySVGProperty(), triggering the
23486         unimplemented property assert. Adding a stub entry to avoid that.
23487
23488         Test: svg/css/color-profile-crash.html
23489
23490         * css/SVGCSSStyleSelector.cpp:
23491         (WebCore::StyleResolver::applySVGProperty):
23492
23493 2012-11-04  Kaustubh Atrawalkar  <kaustubh@motorola.com>
23494
23495         Unable to copy text on disabled input fields on long press gesture
23496         https://bugs.webkit.org/show_bug.cgi?id=99698
23497
23498         Reviewed by Ryosuke Niwa.
23499
23500         Text from disabled input/text should be allowed to select. Replaced isContentEditable()
23501         with canStartSelection()
23502
23503         Test: fast/events/touch/gesture/disabled-input-text-selection.html
23504
23505         * page/EventHandler.cpp:
23506         (WebCore::EventHandler::handleGestureLongPress):
23507
23508 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23509
23510         Unreviewed, rolling out r133403, r133404, and r133409.
23511         http://trac.webkit.org/changeset/133403
23512         http://trac.webkit.org/changeset/133404
23513         http://trac.webkit.org/changeset/133409
23514         https://bugs.webkit.org/show_bug.cgi?id=101158
23515
23516         "Broke tests" (Requested by kbalazs on #webkit).
23517
23518         * Target.pri:
23519         * WebCore.pri:
23520         * platform/qt/QtTestSupport.h: Removed.
23521
23522 2012-11-03  Alexey Proskuryakov  <ap@apple.com>
23523
23524         Get rid of USE(CFURLSTORAGESESSIONS)
23525         https://bugs.webkit.org/show_bug.cgi?id=101131
23526
23527         Reviewed by Sam Weinig.
23528
23529         This is always enabled on CFNetwork based platforms.
23530
23531         * WebCore.exp.in:
23532         * page/Settings.cpp:
23533         (WebCore::Settings::setPrivateBrowsingEnabled):
23534         * platform/mac/CookieJar.mm:
23535         (WebCore::cookies):
23536         (WebCore::cookieRequestHeaderFieldValue):
23537         (WebCore::setCookies):
23538         (WebCore::cookiesEnabled):
23539         (WebCore::getRawCookies):
23540         (WebCore::deleteCookie):
23541         * platform/network/ResourceHandle.h:
23542         (ResourceHandle):
23543         * platform/network/cf/CookieStorageCFNet.cpp:
23544         (WebCore):
23545         (WebCore::currentCFHTTPCookieStorage):
23546         * platform/network/cf/CookieStorageCFNet.h:
23547         * platform/network/cf/ResourceHandleCFNet.cpp:
23548         (WebCore::willSendRequest):
23549         (WebCore::makeFinalRequest):
23550         (WebCore::ResourceHandle::willSendRequest):
23551         (WebCore):
23552         * platform/network/cf/ResourceRequest.h:
23553         (ResourceRequest):
23554         * platform/network/cf/ResourceRequestCFNet.cpp:
23555         (WebCore::ResourceRequest::doUpdatePlatformRequest):
23556         (WebCore):
23557         * platform/network/mac/CookieStorageMac.mm:
23558         (WebCore::setCookieStoragePrivateBrowsingEnabled):
23559         * platform/network/mac/ResourceHandleMac.mm:
23560         (WebCore::shouldRelaxThirdPartyCookiePolicy):
23561         (WebCore::ResourceHandle::createNSURLConnection):
23562         (WebCore::ResourceHandle::willSendRequest):
23563         (WebCore):
23564         * platform/network/mac/ResourceRequestMac.mm:
23565         (WebCore):
23566         (WebCore::ResourceRequest::setStorageSession):
23567
23568 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23569
23570         [Qt][WK2] setPlatformStrategies always asserts after r132744
23571         https://bugs.webkit.org/show_bug.cgi?id=100838
23572
23573         Reviewed by Simon Hausmann.
23574
23575         Reland with build fix.
23576
23577         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23578         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23579         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23580         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23581         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23582         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23583         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23584         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23585         in non production mode.
23586
23587         Basically covered by all tests.
23588
23589         * Target.pri:
23590         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23591         initializeTestFonts uses it.
23592         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23593         is also under that.
23594         (WebKit):
23595         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23596         without calling initializeWebCoreQt.
23597         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23598         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23599         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23600         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23601         the job even if we would stop clearing all caches between tests. Also moved the call to
23602         QFontDatabase::removeAllApplicationFonts from callers to here.
23603         * platform/qt/QtTestSupport.h:
23604         (WebKit):
23605         (QtTestSupport):
23606
23607 2012-11-03  Sheriff Bot  <webkit.review.bot@gmail.com>
23608
23609         Unreviewed, rolling out r133397.
23610         http://trac.webkit.org/changeset/133397
23611         https://bugs.webkit.org/show_bug.cgi?id=101155
23612
23613         "Broke Qt. No way to force the damn bots to do a clean build.
23614         I'm giving up." (Requested by kbalazs on #webkit).
23615
23616         * Target.pri:
23617         * WebCore.pri:
23618         * platform/qt/QtTestSupport.h: Removed.
23619
23620 2012-11-03  Stephen White  <senorblanco@chromium.org>
23621
23622         Speculative fix to eliminate flakiness in
23623         css3/filters/blur-filter-page-scroll-self.html
23624         https://bugs.webkit.org/show_bug.cgi?id=91620.
23625         Suspicion is that a prior test is setting
23626         window.internals.settings.setEnableCompositingForFixedPosition(true),
23627         causing this test to be intermittely run on the GPU, giving different
23628         pixel results depending on test order.
23629
23630         Reviewed by Jochen Eisinger.
23631
23632         Covered by css3/filters/blur-filter-page-scroll-self.html
23633
23634         * testing/InternalSettings.cpp:
23635         (WebCore::InternalSettings::Backup::Backup):
23636         (WebCore::InternalSettings::Backup::restoreTo):
23637         * testing/InternalSettings.h:
23638         (Backup):
23639
23640 2012-11-03  Mark Rowe  <mrowe@apple.com>
23641
23642         REGRESSION (r132858): Crash below -[DOMElement setClassName:] when called with a nil string
23643
23644         Reviewed by Anders Carlsson.
23645
23646         The changes in r132858 introduced an overload of AtomicString::add for CFStrings. However, the overload
23647         that was introduced is not null safe.
23648
23649         * platform/text/cf/AtomicStringCF.cpp:
23650         (WTF::AtomicString::add): Handle a null string by returning a null StringImpl.
23651
23652 2012-11-03  Balazs Kelemen  <kbalazs@webkit.org>
23653
23654         [Qt][WK2] setPlatformStrategies always asserts after r132744
23655         https://bugs.webkit.org/show_bug.cgi?id=100838
23656
23657         Reviewed by Simon Hausmann.
23658
23659         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
23660         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
23661         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
23662         code. In order to keep the behavior, this patch adds exported helpers to WebCore
23663         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
23664         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
23665         add it to the WebKit1 API for the time being, but my goal was to move in the direction
23666         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
23667         in non production mode.
23668
23669         Basically covered by all tests.
23670
23671         * Target.pri:
23672         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
23673         initializeTestFonts uses it.
23674         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
23675         is also under that.
23676         (WebKit):
23677         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
23678         without calling initializeWebCoreQt.
23679         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
23680         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
23681         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
23682         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
23683         the job even if we would stop clearing all caches between tests. Also moved the call to
23684         QFontDatabase::removeAllApplicationFonts from callers to here.
23685         * platform/qt/QtTestSupport.h:
23686         (WebKit):
23687         (QtTestSupport):
23688
23689 2012-11-03  Dan Beam  <dbeam@chromium.org>
23690
23691         Implement HTMLFormElement#requestAutocomplete and associated events
23692         https://bugs.webkit.org/show_bug.cgi?id=100557
23693
23694         Reviewed by Adam Barth.
23695
23696         Implements an initial version of the proposal for interactive autocomplete outlined in this email:
23697         http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-October/037711.html
23698
23699         The goal of this patch is to allow web authors to call formElement.requestAutocomplete(); after subscribing for
23700         autocomplete/autocompleteerror events on formElement. If the form's [autocomplete] attribute is "off" an
23701         error will be dispatched. Otherwise, a request will be issued to the FrameLoaderClient.  At the moment, the
23702         implementation in Chrome (https://codereview.chromium.org/11270018/) will simply dispatch an error until the
23703         UI on Chrome's side is built. Both autocomplete and autocompleteerror events will be dispatched asynchronously
23704         after a small delay to behave consistently in all situations and implementations.
23705
23706         Currently this is behind the feature flag REQUEST_AUTOCOMPLETE, which is disabled.
23707
23708         Test: fast/forms/form-request-autocomplete.html
23709
23710         * dom/EventNames.h:
23711         (WebCore):
23712
23713         Added autocomplete and autocompleteerror events. The autocomplete event is dispatched after a user adds more
23714         information to a form using the future UI. This is not currently dispatched in any implementation (including Chrome)
23715         but will be in the future. The autocompleteerror event is dispatched when the form has [autocomplete="off"] on the
23716         node being asked for an interactive autocomplete. The user agent may also dispatch this event if it doesn't implement
23717         this API but has turned on the feature flag, can't currently show an autocomplete UI (e.g. running headlessly or in
23718         an HTML notification, security concerns, or any other reason it desires).
23719
23720         * html/HTMLAttributeNames.in:
23721
23722         Added onautocomplete and onautocompleteerror attributes so they can be parsed when creating form elements and used
23723         as event listeners. For example:
23724
23725           <form onautocomplete="/* when autocomplete succeeds */" autocompleteerror="/* when autocomplete fails */">
23726
23727         * html/HTMLFormElement.cpp:
23728         (WebCore::HTMLFormElement::HTMLFormElement):
23729         (WebCore):
23730
23731         Added m_requestAutocompleteTimer (a timer that's used to dispatch events asynchronously) to the initializer list that
23732         triggers requestAutocompleteTimerFired when it times out.
23733
23734         (WebCore::HTMLFormElement::requestAutocomplete):
23735
23736         Called when HTMLFormElement#requestAutocomplete is called from JS (also see HTMLFormElement.idl) and decides whether
23737         to dispatch an error and exit early (in the case where autocomplete="off") or pass the request on to the
23738         FrameLoaderClient.
23739
23740         (WebCore::HTMLFormElement::finishRequestAutocomplete):
23741
23742         Called when the request for an interactive autocomplete is finished with either a success or error result. This
23743         causes an event to queue and fired after a 0 second delay. Events are owned by HTMLFormElement and reference the
23744         target element (this) until fired.
23745
23746         (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
23747
23748         Called when the event timer runs out to pump the queue of current events. Events are released on dispatch.
23749
23750         (WebCore::HTMLFormElement::parseAttribute):
23751
23752         Encountering onautocomplete or onautocompleteerror attributes while parsing HTMLFormElements now adds event listeners
23753         for autocomplete an autocompleteerror events (respectively) to dispatch the value of the attribute as a script.
23754
23755         * html/HTMLFormElement.h:
23756         (HTMLFormElement):
23757
23758         Added various methods and data members as required by the implementation.
23759
23760         * html/HTMLFormElement.idl:
23761
23762         Added the method requestAutocomplete and associated DOM event handler attributes (onautocomplete/onautocompleteerror)
23763         to HTMLFormElement's public DOM API (unprefixed, as per Ian Hickson's advice). All are require the Conditional
23764         REQUEST_AUTOCOMPLETE to be enabled to be activated.
23765
23766         * loader/EmptyClients.cpp:
23767         (WebCore):
23768         (WebCore::EmptyFrameLoaderClient::didRequestAutocomplete):
23769
23770         Added noop implementation for FrameLoader::didRequestAutocomplete.
23771
23772         * loader/EmptyClients.h:
23773         (EmptyFrameLoaderClient):
23774
23775         Added FrameLoader::didRequestAutocomplete to EmptyFrameLoaderClient interface.
23776
23777         * loader/FrameLoaderClient.h:
23778         (FrameLoaderClient):
23779
23780         Added noop implementation to FrameLoaderClient interface (which is implemented chromium's FrameLoaderLoaderImpl.cpp).
23781
23782 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23783
23784         Web Inspector: %d, %i, and %f log formatters have same result
23785         https://bugs.webkit.org/show_bug.cgi?id=101148
23786
23787         Reviewed by Alexander Pavlov.
23788
23789         Added separate formatters for %f, %i, %d and %s.
23790
23791         Test: inspector/console/console-message-format.html
23792
23793         * inspector/front-end/ConsoleMessage.js:
23794         (WebInspector.ConsoleMessageImpl.prototype.stringFormatter):
23795         (WebInspector.ConsoleMessageImpl.prototype.floatFormatter):
23796         (WebInspector.ConsoleMessageImpl.prototype.integerFormatter):
23797
23798 2012-11-03  Andreas Kling  <kling@webkit.org>
23799
23800         Decouple Attr logic from ElementAttributeData.
23801         <http://webkit.org/b/101126>
23802
23803         Reviewed by Antti Koivisto.
23804
23805         Move all logic dealing with Attr DOM nodes from ElementAttributeData to Element.
23806         This makes more sense since an Attr is tied to a single Element, but an ElementAttributeData
23807         can be shared by any number of Elements at a given time.
23808
23809         Also updated naming convention from just "Attr" to "Attr node" in the code I was touching.
23810         "Attr" is way too generic, and has been historically confused with WebCore::Attribute a lot.
23811
23812         * dom/Element.h:
23813         * dom/ElementAttributeData.h:
23814         * dom/Element.cpp:
23815         (WebCore::attrNodeListMap):
23816         (WebCore::attrNodeListForElement):
23817         (WebCore::ensureAttrNodeListForElement):
23818         (WebCore::removeAttrNodeListForElement):
23819         (WebCore::findAttrNodeInList):
23820         (WebCore::Element::~Element):
23821         (WebCore::Element::detachAttribute):
23822         (WebCore::Element::setAttributeNode):
23823         (WebCore::Element::removeAttributeInternal):
23824         (WebCore::Element::getAttributeNode):
23825         (WebCore::Element::getAttributeNodeNS):
23826         (WebCore::Element::normalizeAttributes):
23827         (WebCore::Element::attrIfExists):
23828         (WebCore::Element::ensureAttr):
23829         (WebCore::Element::detachAttrNodeFromElementWithValue):
23830         (WebCore::Element::detachAllAttrNodesFromElement):
23831         (WebCore::Element::cloneAttributesFromElement):
23832
23833             Move everything Attr-related into Element.cpp while simplifying some loops and remove
23834             conditions that are no longer needed as they used to depend on having an attributeData().
23835
23836         * dom/Node.h:
23837         (WebCore::Node::hasSyntheticAttrChildNodes):
23838         (WebCore::Node::setHasSyntheticAttrChildNodes):
23839
23840             Renamed the hasAttrList() node flag to hasSyntheticAttrChildNodes().
23841
23842         * dom/Attr.cpp:
23843         (WebCore::Attr::detachFromElementWithValue):
23844
23845             Remove awkward indirection and let the call site deal with removing the Attr node from
23846             the Element's list of Attr nodes.
23847
23848         * dom/ElementAttributeData.cpp:
23849         (WebCore::ElementAttributeData::clearAttributes):
23850
23851             Remove now-unused Element* argument.
23852
23853 2012-11-03  Pavel Feldman  <pfeldman@chromium.org>
23854
23855         REGRESSION (r132014-r132047): Webkit Inspector Window docking broken
23856         https://bugs.webkit.org/show_bug.cgi?id=101125
23857
23858         Reviewed by Vsevolod Vlasov.
23859
23860         Added "bottom" as default docked state.
23861
23862         * inspector/front-end/DockController.js:
23863         (WebInspector.DockController):
23864
23865 2012-11-02  Shinya Kawanaka  <shinyak@chromium.org>
23866
23867         [Shadow] ShadowRoot should be able to know the existence of <content>
23868         https://bugs.webkit.org/show_bug.cgi?id=100921
23869
23870         Reviewed by Dimitri Glazkov.
23871
23872         When <content> is inserted into or removed from a shadow subtree, ShadowRoot counts the number of <content>.
23873         It provides O(1) method to check the existence of <content>.
23874
23875         This is necessary when we implement a fast checking path for distribution invalidation when an element attribute
23876         is changed. Larger context is explained in Bug 100451.
23877
23878         Test: fast/dom/shadow/has-content-elements.html
23879
23880         * dom/ShadowRoot.cpp:
23881         (WebCore::ShadowRoot::ShadowRoot):
23882         (WebCore::ShadowRoot::hasInsertionPoint): Since we track both <content> and <shadow>, we don't need to traverse
23883         all the descendants of ShadowRoot anymore.
23884         * dom/ShadowRoot.h:
23885         (WebCore::ShadowRoot::registerContentElement):
23886         (WebCore::ShadowRoot::unregisterContentElement):
23887         (WebCore::ShadowRoot::hasContentElement):
23888         (ShadowRoot):
23889         * html/shadow/HTMLContentElement.cpp:
23890         (WebCore::HTMLContentElement::HTMLContentElement):
23891         (WebCore::HTMLContentElement::insertedInto): When <content> is inserted into ShadowDOM subtree,
23892         we notify it to the ShadowRoot. Note that only active <content> element is counted.
23893         (WebCore):
23894         (WebCore::HTMLContentElement::removedFrom):
23895         * html/shadow/HTMLContentElement.h:
23896         (HTMLContentElement):
23897         * testing/Internals.cpp:
23898         (WebCore::Internals::hasContentElement):
23899         (WebCore):
23900         * testing/Internals.h:
23901         (Internals):
23902         * testing/Internals.idl:
23903
23904 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
23905
23906         sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle
23907         https://bugs.webkit.org/show_bug.cgi?id=99990
23908
23909         Reviewed by Darin Adler.
23910
23911         Move initialization code for sCurrentPaintTimeStamp to the below of early returns,
23912         because it was not reset after early return.
23913
23914         * page/FrameView.cpp:
23915         (WebCore::FrameView::paintContents):
23916
23917 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
23918
23919         Fix build warning in PluginView.cpp on release build
23920         https://bugs.webkit.org/show_bug.cgi?id=101049
23921
23922         Reviewed by Kentaro Hara.
23923
23924         The protocol, host, port parameters are not used when LOG_DISABLED
23925         Use UNUSED_PARAM macro for removing -Wunused-parameter warning
23926
23927         * plugins/PluginView.cpp:
23928         (WebCore::PluginView::getAuthenticationInfo):
23929
23930 2012-10-25  Martin Robinson  <mrobinson@igalia.com>
23931
23932         [GTK] Move soup authentication from GtkAuthenticationDialog to WebCore
23933         https://bugs.webkit.org/show_bug.cgi?id=99914
23934
23935         Reviewed by Carlos Garcia Campos.
23936
23937         Move the actual soup authentication code from the GtkAuthenticationDialog to ResourceHandleSoup.
23938         This allows a more generic implementation of authentication, for example, one where a WebKit2
23939         client can completely handle authentication.
23940
23941         No new tests. This does not change behavior.
23942
23943         * platform/gtk/GtkAuthenticationDialog.cpp: Remove references to the SoupPasswordManager, which
23944         is going away in the next release of Gnome. Instead we always assume that the authentication backend has
23945         support for remembering passwords and pass that information along with the answer to the authentication
23946         request.
23947
23948         The rest of the changes to this class can be summarized as:
23949         1. Getting the information from the AuthenticationChallenge instead of directly from the libsoup
23950            objects.
23951         2. Using the AuthenticationClient to accomplish the authentication instead of talking to libsoup
23952            directly.
23953         * platform/gtk/GtkAuthenticationDialog.h:
23954         (GtkAuthenticationDialog): Remove members which are no longer used.
23955         * platform/network/ResourceHandle.h:
23956         (ResourceHandle): ResourceHandleSoup now implements the entire AuthenticationClient interface.
23957         * platform/network/soup/ResourceHandleSoup.cpp:
23958         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge): Don't handle authentication
23959         for synchronous handles.
23960         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Now set the current challenge on
23961         the internal data structure.
23962         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added.
23963         (WebCore::ResourceHandle::receivedCredential): Added.
23964         (WebCore::ResourceHandle::receivedCancellation): Added.
23965         (WebCore::authenicateCallback): Pass the handle as the authentication client.
23966
23967 2012-11-02  Benjamin Poulain  <bpoulain@apple.com>
23968
23969         Improve CSSParser::setupParser() since the prefix/suffix are literals
23970         https://bugs.webkit.org/show_bug.cgi?id=101107
23971
23972         Reviewed by Andreas Kling.
23973
23974         * css/CSSParser.cpp:
23975         (WebCore::CSSParser::setupParser):
23976         * css/CSSParser.h:
23977         (CSSParser):
23978         (WebCore::CSSParser::setupParser):
23979         CSSParser::setupParser() is only used with literals prefix and suffix. We do not have
23980         to compute the length at runtime, we can direclty encode it in the binary.
23981
23982 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
23983
23984         Unreviewed, rolling out r133375.
23985         http://trac.webkit.org/changeset/133375
23986         https://bugs.webkit.org/show_bug.cgi?id=101138
23987
23988         Caused 3 tests to fail on Mac (Requested by aboxhall-laptop on
23989         #webkit).
23990
23991         * platform/text/LineBreakIteratorPoolICU.h:
23992         (WebCore::LineBreakIteratorPool::take):
23993         (WebCore::LineBreakIteratorPool::put):
23994         (LineBreakIteratorPool):
23995         * platform/text/TextBreakIterator.h:
23996         (WebCore):
23997         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
23998         (WebCore::LazyLineBreakIterator::get):
23999         (WebCore::LazyLineBreakIterator::reset):
24000         (LazyLineBreakIterator):
24001         * platform/text/TextBreakIteratorICU.cpp:
24002         (WebCore::acquireLineBreakIterator):
24003         (WebCore::releaseLineBreakIterator):
24004         * rendering/RenderBlockLineLayout.cpp:
24005         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24006         * rendering/RenderText.cpp:
24007         (WebCore::RenderText::computePreferredLogicalWidths):
24008         * rendering/RenderText.h:
24009         (WebCore):
24010         * rendering/break_lines.cpp:
24011         (WebCore):
24012         (WebCore::isBreakableSpace):
24013         (WebCore::needsLineBreakIterator):
24014         (WebCore::nextBreakablePosition):
24015         (WebCore::nextBreakablePositionIgnoringNBSP):
24016         * rendering/break_lines.h:
24017         (WebCore):
24018         (WebCore::isBreakable):
24019
24020 2012-11-02  Andreas Kling  <kling@webkit.org>
24021
24022         Cut overgrown ElementAttributeData bitfield.
24023         <http://webkit.org/b/101129>
24024
24025         Reviewed by Anders Carlsson.
24026
24027         Make sure the ElementAttributeData bitfield fits into 32 bits. Added a compile-time assertion
24028         to guard against future bloatage.
24029
24030         * dom/ElementAttributeData.cpp:
24031         (SameSizeAsElementAttributeData):
24032         * dom/ElementAttributeData.h:
24033         (ElementAttributeData):
24034
24035 2012-11-02  Michael Saboff  <msaboff@apple.com>
24036
24037         Crash calling is8Bit() in visitedLinkHash()
24038         https://bugs.webkit.org/show_bug.cgi?id=101119
24039
24040         Reviewed by Filip Pizlo.
24041
24042         Added an isEmpty() check to AttributeURL and KURL.
24043
24044         * platform/LinkHash.cpp:
24045         (WebCore::visitedLinkHash):
24046
24047 2012-11-02  Glenn Adams  <glenn@skynav.com>
24048
24049         Add support to -webkit-line-break property for CSS3 Text line-break property values and semantics.
24050         https://bugs.webkit.org/show_bug.cgi?id=89235
24051
24052         Reviewed by Eric Seidel.
24053
24054         See also wiki documentation at:
24055         [1] http://trac.webkit.org/wiki/LineBreaking
24056         [2] http://trac.webkit.org/wiki/LineBreakingCSS3Mapping
24057
24058         Web exposed changes include:
24059         (1) The default (initial) value for -webkit-line-break becomes 'auto', instead of 'normal';
24060         (2) The values 'auto', 'loose', 'normal', and 'strict' are added to -webkit-line-break;
24061         (3) See [2] above for details regarding interpretation.
24062
24063         Tests: css3/line-break/line-break-auto-centered.html
24064                css3/line-break/line-break-auto-half-kana.html
24065                css3/line-break/line-break-auto-hyphens.html
24066                css3/line-break/line-break-auto-inseparables.html
24067                css3/line-break/line-break-auto-iteration-marks.html
24068                css3/line-break/line-break-auto-postfixes.html
24069                css3/line-break/line-break-auto-prefixes.html
24070                css3/line-break/line-break-auto-sound-marks.html
24071                css3/line-break/line-break-loose-centered.html
24072                css3/line-break/line-break-loose-half-kana.html
24073                css3/line-break/line-break-loose-hyphens.html
24074                css3/line-break/line-break-loose-inseparables.html
24075                css3/line-break/line-break-loose-iteration-marks.html
24076                css3/line-break/line-break-loose-postfixes.html
24077                css3/line-break/line-break-loose-prefixes.html
24078                css3/line-break/line-break-loose-sound-marks.html
24079                css3/line-break/line-break-normal-centered.html
24080                css3/line-break/line-break-normal-half-kana.html
24081                css3/line-break/line-break-normal-hyphens.html
24082                css3/line-break/line-break-normal-inseparables.html
24083                css3/line-break/line-break-normal-iteration-marks.html
24084                css3/line-break/line-break-normal-postfixes.html
24085                css3/line-break/line-break-normal-prefixes.html
24086                css3/line-break/line-break-normal-sound-marks.html
24087                css3/line-break/line-break-strict-centered.html
24088                css3/line-break/line-break-strict-half-kana.html
24089                css3/line-break/line-break-strict-hyphens.html
24090                css3/line-break/line-break-strict-inseparables.html
24091                css3/line-break/line-break-strict-iteration-marks.html
24092                css3/line-break/line-break-strict-postfixes.html
24093                css3/line-break/line-break-strict-prefixes.html
24094                css3/line-break/line-break-strict-sound-marks.html
24095
24096         * platform/text/LineBreakIteratorPoolICU.h:
24097         (WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
24098         Add static function to construct ICU locale argument (also used as pool key) with additional
24099         break keyword.
24100         (WebCore::LineBreakIteratorPool::take):
24101         (WebCore::LineBreakIteratorPool::put):
24102         (LineBreakIteratorPool):
24103         Remove direct dependency from ICU library (and types), moving that dependency into
24104         new {open,close}LineBreakIterator() functions (defined in TextBreakIteratorICU.cpp).
24105         Update to take line break mode into account.
24106         Create (and cache) different break iterators depending on line break mode (in addition to locale),
24107         which entails expanding pool entry key format to optionally append "@break=" +
24108         "loose"|"normal"|"strict" keyword to locale string.
24109
24110         * platform/text/TextBreakIterator.h:
24111         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
24112         (WebCore::LazyLineBreakIterator::isLooseCJKMode):
24113         (WebCore::LazyLineBreakIterator::get):
24114         (WebCore::LazyLineBreakIterator::reset):
24115         (LazyLineBreakIterator):
24116         Define LineBreakIteratorMode enumeration for use in TextBreakIterator et al.
24117         Add state member to indicate line break mode.
24118
24119         * platform/text/TextBreakIteratorICU.cpp:
24120         (WebCore::acquireLineBreakIterator):
24121         Use new line break mode when making iterator from pool.
24122         Handle change of return type of LineBreakIteratorPool::take() to non-ICU type,
24123         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24124         (WebCore::releaseLineBreakIterator):
24125         Handle change of parameter type of LineBreakIteratorPool::put() to non-ICU type,
24126         i.e., TextBreakIterator* instead of ICU's UBreakIterator*.
24127         (WebCore::isCJKLocale):
24128         New functions for determining if CJK rules apply.
24129         (WebCore::openLineBreakIterator):
24130         New function for abstracting opening of ICU style line break iterator. This is now
24131         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24132         This function also takes into account the line break mode.
24133         (WebCore::closeLineBreakIterator):
24134         (WebCore::mapLineIteratorModeToRules):
24135         New function for abstracting closing of ICU style line break iterator. This is now
24136         used in LineBreakIteratorPoolICU.h rather than having direct ICU API dependency there.
24137
24138         * rendering/RenderBlockLineLayout.cpp:
24139         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
24140         Pass line break iterator mode flag when reseting LazyLineBreakIterator.
24141         Add looseMode local variable to prevent need for computing under isBreakable().
24142
24143         * rendering/RenderText.cpp:
24144         (WebCore::mapLineBreakToIteratorMode):
24145         Add implementation for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24146         and RenderBlock::LineBreaker::nextLineBreak.
24147         (WebCore::RenderText::computePreferredLogicalWidths):
24148         Ensure (lazy line) breakIterator is initialized for line break mode.
24149         Ensure isBreakable() is passed loose mode flag to match behavior in RenderBlock::LineBreaker::nextLineBreak.
24150
24151         * rendering/RenderText.h:
24152         (WebCore):
24153         Add declaration for mapLineBreakToIteratorMode(), used by both RenderText::computePreferredLogicalWidths
24154         and RenderBlock::LineBreaker::nextLineBreak.
24155
24156         * rendering/break_lines.cpp:
24157         (WebCore):
24158         Introduce two (local) enums NBSPBehavior and LooseBehavior for expanding template on nextBreakablePosition
24159         to include loose mode parameter.
24160         (WebCore::isBreakableSpace):
24161         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24162         accessor method on each invocation. Use new loose mode flavors off NBP functions.
24163         (WebCore::needsLineBreakIterator):
24164         Introduce loose mode behavior template parameter to optimize loose mode behavior code path in order
24165         to prevent regression to non loose mode path.
24166         (WebCore::nextBreakablePosition):
24167         (WebCore::nextBreakablePositionIgnoringNBSP):
24168         Use new template parameter enums described above.
24169         (WebCore::nextBreakablePositionIgnoringNBSPLoose):
24170         (WebCore::nextBreakablePositionLoose):
24171         Introduce two additional 'loose' mode flavors of NBP template expansions.
24172
24173         * rendering/break_lines.h:
24174         (WebCore):
24175         (WebCore::isBreakable):
24176         Add externally specified loose mode parameter to prevent need to invoke line break iterator
24177         accessor method on each invocation.
24178
24179 2012-11-02  Elliott Sprehn  <esprehn@chromium.org>
24180
24181         Replace NodeRareData hash map with a union on m_renderer
24182         https://bugs.webkit.org/show_bug.cgi?id=100057
24183
24184         Reviewed by Eric Seidel.
24185
24186         Use a union on Node::m_renderer between NodeRareData* and RenderObject*. This removes
24187         the overhead of accessing rare data and the memory from the map.
24188
24189         This is an 8% improvement on Bindings/get-elements-by-tag-name.html which tested
24190         document.getElementsByTagName and was previously optimized in Bug 90059 for a 5% 
24191         improvement. As this is better than even the special casing for document that was
24192         done in that bug, general node list access should see an even greater win.
24193
24194         This reduces the memory usage on nytimes.com by 250k per Bug 101052 by
24195         removing the rare data map overhead.
24196
24197         This is also a 15% improvement on Parser/textarea-parsing.html
24198
24199         By removing the performance overhead of rareData() this patch addresses the performance
24200         issues raised in Bugs 73853, 87034 and 89635.
24201
24202         I ran Parser/html5-full-render.html and there was no performance regression after
24203         tuning Text::recalcTextStyle and the refactor that was done in r132684.
24204
24205         No new tests, this is just a refactor.
24206
24207         * dom/Document.cpp:
24208         (WebCore::Document::Document):
24209         * dom/Document.h:
24210         (WebCore::Node::Node):
24211         * dom/Element.cpp:
24212         (WebCore::Element::elementRareData):
24213         * dom/Node.cpp:
24214         (WebCore::Node::rareData):
24215         (WebCore::Node::ensureRareData):
24216         (WebCore::Node::clearRareData):
24217         (WebCore::Node::renderBox):
24218         (WebCore::Node::renderBoxModelObject):
24219         (WebCore::Node::reportMemoryUsage):
24220         * dom/Node.h:
24221         (NodeRareDataBase):
24222           Base class for NodeRareData that knows about the renderer so we can
24223           inline the accesses in Node.h
24224         (WebCore::NodeRareDataBase::renderer):
24225         (WebCore::NodeRareDataBase::setRenderer):
24226         (WebCore::NodeRareDataBase::~NodeRareDataBase):
24227         (WebCore::NodeRareDataBase::NodeRareDataBase):
24228         (WebCore):
24229         (WebCore::Node::renderer):
24230         (WebCore::Node::setRenderer):
24231         (Node):
24232         * dom/NodeRareData.h:
24233         * dom/NodeRenderStyle.h:
24234         (WebCore::Node::renderStyle):
24235         * dom/Text.cpp:
24236         (WebCore::Text::recalcTextStyle):
24237           This method appears very hot in html5-full-render.html and accessing the
24238           renderer 4 times caused a 2% performance regression with this patch. I
24239           reduced it to 1 access and there's no longer any performance regression.
24240         * dom/WebCoreMemoryInstrumentation.cpp:
24241           Removed tracking of the rare data map memory usage as there is no longer
24242           a map to track.
24243         * dom/WebCoreMemoryInstrumentation.h:
24244         * inspector/InspectorMemoryAgent.cpp:
24245         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
24246
24247 2012-11-02  Alexey Proskuryakov  <ap@apple.com>
24248
24249         [Mac] ResourceHandle changes for network process
24250         https://bugs.webkit.org/show_bug.cgi?id=101111
24251
24252         Reviewed by Jessie Berlin.
24253
24254         With NSOperationQueue, we'll be getting NetworkProcess delegate method calls
24255         on secondary threads, and so we won't block other requests while consulting with WebProcess.
24256
24257         * platform/network/NetworkingContext.h:
24258         (WebCore::NetworkingContext::scheduledRunLoopPairs):
24259         (WebCore::NetworkingContext::scheduledOperationQueue):
24260         Add an ability to schedule on an NSOperationQueue. Now that scheduling on run loop
24261         is not a must, give scheduledRunLoopPairs() a default implementation.
24262
24263         * platform/network/mac/ResourceHandleMac.mm: Removed isInitializingConnection
24264         static. It was only used to catch a long obsolete bug with debug logging, and
24265         cannot work with multiple threads.
24266         (WebCore::ResourceHandle::start): Scedule on a operation queue if applicable.
24267         (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]): Removed a
24268         check that used isInitializingConnection.
24269
24270 2012-11-02  Chris Rogers  <crogers@google.com>
24271
24272         Automating gain AudioParam with linearRampToValueAtTime introduces buzzing distortion
24273         https://bugs.webkit.org/show_bug.cgi?id=100885
24274
24275         Reviewed by Kenneth Russell.
24276
24277         AudioParamTimeline needs to use double-precision for time-values to avoid drift and precision issues.
24278
24279         Covered by existing tests.
24280
24281         * Modules/webaudio/AudioParam.cpp:
24282         (WebCore::AudioParam::calculateTimelineValues):
24283         * Modules/webaudio/AudioParamTimeline.cpp:
24284         (WebCore::AudioParamTimeline::valueForContextTime):
24285         (WebCore::AudioParamTimeline::valuesForTimeRange):
24286         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
24287         * Modules/webaudio/AudioParamTimeline.h:
24288         (AudioParamTimeline):
24289
24290 2012-11-02  Stephen Chenney  <schenney@chromium.org>
24291
24292         Reduce redundant code in SimpleFontData[platform]
24293         https://bugs.webkit.org/show_bug.cgi?id=97245
24294
24295         Reviewed by Eric Seidel.
24296
24297         Move duplicated code out of platform specific files and into the common file.
24298         This represents all of the methods in SimpleFontData that do not have genuine
24299         platform specific code.
24300
24301         No new tests because there is no change at all in the functionality.
24302
24303         * platform/graphics/SimpleFontData.cpp:
24304         (WebCore):
24305         (WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
24306         (WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
24307         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
24308         (WebCore): Removed common code.
24309         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
24310         (WebCore): Removed common code.
24311         * platform/graphics/mac/SimpleFontDataMac.mm:
24312         (WebCore): Removed common code.
24313         * platform/graphics/pango/SimpleFontDataPango.cpp:
24314         (WebCore): Removed common code.
24315         * platform/graphics/qt/SimpleFontDataQt.cpp:
24316         (WebCore): Removed common code.
24317         * platform/graphics/skia/SimpleFontDataSkia.cpp:
24318         (WebCore): Removed common code.
24319         * platform/graphics/win/SimpleFontDataWin.cpp:
24320         (WebCore): Removed common code.
24321         * platform/graphics/wince/SimpleFontDataWinCE.cpp:
24322         (WebCore): Removed common code.
24323         * platform/graphics/wx/SimpleFontDataWx.cpp:
24324         (WebCore): Removed common code.
24325
24326 2012-11-02  Adam Barth  <abarth@webkit.org>
24327
24328         memory-instrumentation-cached-images.html is crashing
24329         https://bugs.webkit.org/show_bug.cgi?id=101103
24330
24331         Unreviewed.
24332
24333         Restore code deleted in http://trac.webkit.org/changeset/133331.
24334
24335         * bindings/v8/IntrusiveDOMWrapperMap.h:
24336
24337 2012-11-02  Simon Fraser  <simon.fraser@apple.com>
24338
24339         Enable SUBPIXEL_LAYOUT on Mac
24340         https://bugs.webkit.org/show_bug.cgi?id=101076
24341
24342         Reviewed by Dave Hyatt.
24343
24344         Define ENABLE_SUBPIXEL_LAYOUT and include it in FEATURE_DEFINES.
24345
24346         * Configurations/FeatureDefines.xcconfig:
24347
24348 2012-11-02  Lianghui Chen  <liachen@rim.com>
24349
24350         [BlackBerry] ResourceHandle::cancel() in ResourceHandleBlackBerry should setClient to null.
24351         https://bugs.webkit.org/show_bug.cgi?id=101082
24352
24353         Internal PR: 235410.
24354         Patch suggested by George Staikos, prepared by Lyon Chen.
24355         Reviewed by Yong Li.
24356
24357         ResourceHandle::cancel() should call setClient(0) to close the window
24358         during which it has been cancelled but its client is still there and can
24359         be called.
24360
24361         No new tests as it's a code improvement without obvious bug.
24362
24363         * platform/network/blackberry/ResourceHandleBlackBerry.cpp:
24364         (WebCore::ResourceHandle::cancel):
24365
24366 2012-11-02  Anders Carlsson  <andersca@apple.com>
24367
24368         Add a PluginInactive plug-in unavailability reason
24369         https://bugs.webkit.org/show_bug.cgi?id=101089
24370
24371         Reviewed by Sam Weinig.
24372
24373         This is to be used by Mac WebKit and WebKit2 shortly.
24374
24375         * English.lproj/Localizable.strings:
24376         * platform/LocalizedStrings.cpp:
24377         (WebCore::inactivePluginText):
24378         (WebCore):
24379         * platform/LocalizedStrings.h:
24380         (WebCore):
24381         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
24382         (WebCore::inactivePluginText):
24383         (WebCore):
24384         * platform/efl/LocalizedStringsEfl.cpp:
24385         (WebCore::inactivePluginText):
24386         (WebCore):
24387         * platform/gtk/LocalizedStringsGtk.cpp:
24388         (WebCore::inactivePluginText):
24389         (WebCore):
24390         * platform/qt/LocalizedStringsQt.cpp:
24391         (WebCore::inactivePluginText):
24392         (WebCore):
24393         * rendering/RenderEmbeddedObject.cpp:
24394         (WebCore::unavailablePluginReplacementText):
24395         * rendering/RenderEmbeddedObject.h:
24396
24397 2012-11-02  Rob Buis  <rbuis@rim.com>
24398
24399         [CMAKE] Remove QNX specific section
24400         https://bugs.webkit.org/show_bug.cgi?id=101063
24401
24402         Reviewed by Daniel Bates.
24403
24404         We do not need the QNX section anymore, so also remove the FEATURE_DEFINES_CSS variable as it
24405         equals FEATURE_DEFINES_WITH_SPACE_SEPARATOR.
24406
24407         * CMakeLists.txt:
24408
24409 2012-11-02  Michael Saboff  <msaboff@apple.com>
24410
24411         visitedHashLink() converts 8 bit URLs and attributes to 16 bits.
24412         https://bugs.webkit.org/show_bug.cgi?id=101014
24413
24414         Reviewed by Geoffrey Garen.
24415
24416         Converted most of the static methods to templated based on character type.  Changed visitedHashLink to 
24417         check bitness of both the base URL and attribute.  If both are 8 bit, then we process using the LChar
24418         version of the templated methods.  Otherwise we use the 16 bit flavor.
24419
24420         Changes covered by existing tests.
24421
24422         * platform/LinkHash.cpp:
24423         (WebCore::findSlashDotDotSlash):
24424         (WebCore::findSlashSlash):
24425         (WebCore::findSlashDotSlash):
24426         (WebCore::containsColonSlashSlash):
24427         (WebCore::squeezeOutNullCharacters):
24428         (WebCore::cleanSlashDotDotSlashes):
24429         (WebCore::mergeDoubleSlashes):
24430         (WebCore::cleanSlashDotSlashes):
24431         (WebCore::cleanPath):
24432         (WebCore::matchLetter):
24433         (WebCore::needsTrailingSlash):
24434         (WebCore::visitedURLInline):
24435         (WebCore::visitedURL):
24436         (WebCore::visitedLinkHash):
24437
24438 2012-11-02  Ian Vollick  <vollick@chromium.org>
24439
24440         Support invalidation tracking for composited layers
24441         https://bugs.webkit.org/show_bug.cgi?id=97801
24442
24443         Reviewed by Simon Fraser.
24444
24445         GraphicsLayers now store invalidated rects and can include them in
24446         the layer tree dump.
24447
24448         Test: compositing/repaint/invalidations-on-composited-layers.html
24449
24450         * WebCore.exp.in:
24451           Exports FrameView::resetTrackedRepaints()
24452         * page/FrameView.cpp:
24453         (WebCore::FrameView::setTracksRepaints):
24454           Notifies each compositor that we are starting/stopping repaints.
24455         (WebCore::FrameView::resetTrackedRepaints):
24456           Moved implementation to the cpp file.
24457         * platform/graphics/GraphicsLayer.cpp:
24458         (WebCore::GraphicsLayer::~GraphicsLayer):
24459           Clears the repaint rects associated with this layer.
24460         (WebCore::GraphicsLayer::resetTrackedRepaints):
24461           Clears the repaint rects associated with this layer.
24462           Note that the repaint rects are stored in a statically allocated
24463           HashMap to avoid using space on the graphics layers.
24464         (WebCore::GraphicsLayer::addRepaintRect):
24465           Adds a repaint rect to list associated with this layer in the
24466           hash map mentioned above.
24467         (WebCore::GraphicsLayer::dumpProperties):
24468           This has been modified to include the repaint rects in the dump
24469           if they've been requested.
24470         * platform/graphics/GraphicsLayerClient.h:
24471         (WebCore::GraphicsLayerClient::isTrackingRepaints):
24472           This is how graphics layers check if repaint tracking is happening.
24473           Returns false by default.
24474         * platform/graphics/blackberry/GraphicsLayerBlackBerry.cpp:
24475         (WebCore::GraphicsLayerBlackBerry::setContentsNeedsDisplay):
24476         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplay):
24477         (WebCore::GraphicsLayerBlackBerry::setNeedsDisplayInRect):
24478           These now call GraphicsLayer::addRepaintRect as necessary.
24479         * platform/graphics/ca/GraphicsLayerCA.cpp:
24480         (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
24481           Now calls GraphicsLayer::addRepaintRect as necessary.
24482         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
24483         (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
24484         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
24485         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
24486           These now call GraphicsLayer::addRepaintRect as necessary.
24487         * platform/graphics/clutter/GraphicsLayerClutter.cpp:
24488         (WebCore::GraphicsLayerClutter::setNeedsDisplay):
24489         (WebCore::GraphicsLayerClutter::setNeedsDisplayInRect):
24490           These now call GraphicsLayer::addRepaintRect as necessary.
24491         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
24492         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):
24493         (WebCore::GraphicsLayerTextureMapper::setContentsNeedsDisplay):
24494         (WebCore::GraphicsLayerTextureMapper::setNeedsDisplayInRect):
24495           These now call GraphicsLayer::addRepaintRect as necessary.
24496         * rendering/RenderLayerBacking.cpp:
24497         (WebCore::RenderLayerBacking::isTrackingRepaints):
24498           Required since this is a GraphicsLayerClient.
24499         * rendering/RenderLayerCompositor.cpp:
24500         (WebCore::RenderLayerCompositor::layerTreeAsText):
24501           Now accepts a flag to include the repaint rects in the layer tree
24502           dump.
24503         (WebCore::resetTrackedRepaintRectsRecursive):
24504           Clears the repaint rects on all graphics layers.
24505         (WebCore::RenderLayerCompositor::resetTrackedRepaintRects):
24506           Clears the repaint rects on all graphics layers.
24507         (WebCore::RenderLayerCompositor::isTrackingRepaints):
24508           Required since this is a GraphicsLayerClient.
24509         * testing/Internals.cpp:
24510         (WebCore::Internals::layerTreeAsText):
24511         * testing/Internals.h:
24512         * testing/Internals.idl:
24513           The internals changes plumb the new flag for including the repaint
24514           rects in the layer tree dump.
24515
24516 2012-11-02  Adam Barth  <abarth@webkit.org>
24517
24518         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
24519         https://bugs.webkit.org/show_bug.cgi?id=100973
24520
24521         Reviewed by Stephen White.
24522
24523         This is the first step towards using intrusive DOM wrapper maps more
24524         widely in WebCore (see
24525         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
24526         for more context).
24527
24528         * bindings/v8/DOMDataStore.cpp:
24529         (WebCore::DOMDataStore::DOMDataStore):
24530         * bindings/v8/IntrusiveDOMWrapperMap.h:
24531         (WebCore):
24532         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
24533
24534 2012-11-02  Adam Barth  <abarth@webkit.org>
24535
24536         ASSERT in RenderLayer::hitTestContents can fire
24537         https://bugs.webkit.org/show_bug.cgi?id=99656
24538
24539         Reviewed by Eric Seidel.
24540
24541         The issue is that updateHitTestResult and addNodeToRectBasedTestResult
24542         are using two different nodes. Since they aren't consistent, we violate
24543         assertions about only setting the inner node if we're doing a
24544         rect-based hit test. This patch makes the two consistent.
24545
24546         Test: fast/dom/nodesFromRect/nodesFromRect-continuation-crash.html
24547
24548         * rendering/RenderBlock.cpp:
24549         (WebCore::RenderBlock::nodeForHitTest):
24550         (WebCore):
24551         (WebCore::RenderBlock::nodeAtPoint):
24552         (WebCore::RenderBlock::updateHitTestResult):
24553         * rendering/RenderBlock.h:
24554         (RenderBlock):
24555
24556 2012-11-02  Mike West  <mkwst@chromium.org>
24557
24558         Prefer 'Content-Security-Policy' to 'X-WebKit-CSP'.
24559         https://bugs.webkit.org/show_bug.cgi?id=101043
24560
24561         Reviewed by Adam Barth.
24562
24563         The canonical 'Content-Security-Policy' header landed in 133095, but we
24564         missed a few tests while updating to the new hotness. We also should
24565         start using the canonical header for the inspector.
24566
24567         This patch should have no visible change; tests should continue to pass
24568         with the new header, just as they did with the old header.
24569
24570         * inspector/front-end/inspector.html:
24571
24572 2012-11-02  Adam Barth  <abarth@webkit.org>
24573
24574         ENABLE(UNDO_MANAGER) is disabled everywhere and is not under active development
24575         https://bugs.webkit.org/show_bug.cgi?id=100711
24576
24577         Reviewed by Eric Seidel.
24578
24579         No one is actively working on ENABLE(UNDO_MANAGER). There are some
24580         tricky lifetime issues in the UndoManager API that are complicating
24581         ongoing work to improve the interaction between WebCore and the garbage
24582         collector. Rather than leave this code in a broken state, we should
24583         remove it for the time being. We can always restore it from the svn
24584         history when there is an active owner for this code.
24585
24586         * CMakeLists.txt:
24587         * Configurations/FeatureDefines.xcconfig:
24588         * DerivedSources.cpp:
24589         * DerivedSources.make:
24590         * DerivedSources.pri:
24591         * GNUmakefile.features.am:
24592         * GNUmakefile.list.am:
24593         * Target.pri:
24594         * UseJSC.cmake:
24595         * UseV8.cmake:
24596         * WebCore.gypi:
24597         * WebCore.vcproj/WebCore.vcproj:
24598         * WebCore.xcodeproj/project.pbxproj:
24599         * bindings/js/DOMTransaction.cpp: Removed.
24600         * bindings/js/DOMTransaction.h: Removed.
24601         * bindings/js/JSBindingsAllInOne.cpp:
24602         * bindings/js/JSUndoManagerCustom.cpp: Removed.
24603         * bindings/v8/DOMTransaction.cpp: Removed.
24604         * bindings/v8/DOMTransaction.h: Removed.
24605         * bindings/v8/V8HiddenPropertyName.h:
24606         (WebCore):
24607         * bindings/v8/custom/V8DOMTransactionCustom.cpp: Removed.
24608         * bindings/v8/custom/V8UndoManagerCustom.cpp: Removed.
24609         * css/PropertySetCSSStyleDeclaration.cpp:
24610         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
24611         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
24612         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
24613         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
24614         * dom/CharacterData.cpp:
24615         (WebCore::CharacterData::setDataAndUpdate):
24616         * dom/ContainerNode.cpp:
24617         (WebCore::willRemoveChild):
24618         (WebCore::willRemoveChildren):
24619         (WebCore::updateTreeAfterInsertion):
24620         * dom/Document.cpp:
24621         (WebCore::Document::Document):
24622         * dom/Document.h:
24623         (WebCore):
24624         (Document):
24625         * dom/Document.idl:
24626         * dom/Element.cpp:
24627         (WebCore::Element::willModifyAttribute):
24628         * editing/CompositeEditCommand.h:
24629         * editing/DOMTransaction.idl: Removed.
24630         * editing/DOMTransactionStep.cpp: Removed.
24631         * editing/DOMTransactionStep.h: Removed.
24632         * editing/Editor.cpp:
24633         (WebCore::Editor::appliedEditing):
24634         (WebCore::Editor::unappliedEditing):
24635         (WebCore::Editor::reappliedEditing):
24636         (WebCore::Editor::canUndo):
24637         (WebCore::Editor::undo):
24638         (WebCore::Editor::canRedo):
24639         (WebCore::Editor::redo):
24640         * editing/UndoManager.cpp: Removed.
24641         * editing/UndoManager.h: Removed.
24642         * editing/UndoManager.idl: Removed.
24643         * editing/UndoStep.h:
24644         (UndoStep):
24645
24646 2012-11-02  Mike West  <mkwst@chromium.org>
24647
24648         Measure the usage of the various CSP headers.
24649         https://bugs.webkit.org/show_bug.cgi?id=100974
24650
24651         Reviewed by Adam Barth.
24652
24653         Currently, we're collecting metrics regarding usage of the
24654         'X-WebKit-CSP' and 'X-WebKit-CSP-Report-Only' HTTP headers. We've
24655         recently added support for the canonical 'Content-Security-Policy'
24656         and 'Content-Security-Policy-Report-Only' headers. This patch adds
24657         those headers explicitly into the metrics, giving insight into uptake
24658         of the unprefixed header, and into usage of pure reporting vs.
24659         enforcement.
24660
24661         No visible functionality should change; all Content Security Policy
24662         tests should continue to pass.
24663
24664         * page/ContentSecurityPolicy.cpp:
24665         (WebCore::ContentSecurityPolicy::didReceiveHeader):
24666             Convert the CSP header type into a FeatureObserver::Feature, and
24667             observe it.
24668         * page/FeatureObserver.h:
24669             Add three new values to the enum to cover the new header types.
24670
24671 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24672
24673         Fix silly mistake from http://trac.webkit.org/changeset/133315.
24674         Forgot to remove the "!".
24675
24676         * css/StyleResolver.cpp:
24677         (WebCore::StyleResolver::canShareStyleWithElement):
24678
24679 2012-11-02  Tom Sepez  <tsepez@chromium.org>
24680
24681         Support X-XSS-Protection: report=URL header syntax in XSSAuditor.
24682         https://bugs.webkit.org/show_bug.cgi?id=100892
24683
24684         Reviewed by Adam Barth.
24685
24686         This patch adds a security feature which allows a violation report to be sent back
24687         to a site when the XSSAuditor detects a reflected XSS against it.  It uses the same
24688         reporting mechanism as for CSP violation reports.
24689
24690         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-5.html
24691                http/tests/security/xssAuditor/malformed-xss-protection-header-6.html
24692                http/tests/security/xssAuditor/malformed-xss-protection-header-7.html
24693                http/tests/security/xssAuditor/malformed-xss-protection-header-8.html
24694                http/tests/security/xssAuditor/malformed-xss-protection-header-9.html
24695                http/tests/security/xssAuditor/report-script-tag.html
24696                http/tests/security/xssAuditor/xss-protection-parsing-03.html
24697                http/tests/security/xssAuditor/xss-protection-parsing-04.html
24698
24699         * html/parser/XSSAuditor.cpp:
24700         (WebCore::XSSAuditor::XSSAuditor):
24701         (WebCore::XSSAuditor::init):
24702         (WebCore::XSSAuditor::filterToken):
24703         Invoke Ping loader's violation reporting, if requested, when a reflected
24704         XSS is detected.
24705         
24706         * html/parser/XSSAuditor.h:
24707         XSSAuditor class need to store the report URL as well as the undigested versions
24708         of the request URL and request body for reporting.
24709
24710         * loader/MixedContentChecker.cpp:
24711         (WebCore):
24712         * loader/MixedContentChecker.h:
24713         (MixedContentChecker):
24714         Make isMixedContent() method public.
24715
24716         * loader/PingLoader.cpp:
24717         (WebCore::PingLoader::sendViolationReport):
24718         * loader/PingLoader.h:
24719         (PingLoader):
24720         * page/ContentSecurityPolicy.cpp:
24721         (WebCore::ContentSecurityPolicy::reportViolation):
24722         Renamed reportContentSecurityPolicyViolation() method to sendViolationReport(),
24723         since this is now used to send more than just CSP violations.
24724         
24725         * platform/network/HTTPParsers.cpp:
24726         (WebCore):
24727         (WebCore::skipEquals):
24728         (WebCore::skipValue):
24729         (WebCore::parseXSSProtectionHeader):
24730         * platform/network/HTTPParsers.h:
24731         Parse and return report= directive in X-XSS-Protection header.
24732         
24733 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24734
24735         Unreviewed, rolling out r133313.
24736         http://trac.webkit.org/changeset/133313
24737         https://bugs.webkit.org/show_bug.cgi?id=101078
24738
24739         "A lot of tests hit the ASSERTs introduced by this patch"
24740         (Requested by haraken on #webkit).
24741
24742         * bindings/v8/V8DOMWrapper.h:
24743         (WebCore::V8DOMWrapper::setDOMWrapper):
24744
24745 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24746
24747         Unreviewed, rolling out r132913.
24748         http://trac.webkit.org/changeset/132913
24749         https://bugs.webkit.org/show_bug.cgi?id=91850
24750
24751         Caused performance regressions.
24752         See https://bugs.webkit.org/show_bug.cgi?id=100872 for details.
24753
24754         * bindings/v8/V8PerIsolateData.cpp:
24755         (WebCore::V8PerIsolateData::visitExternalStrings):
24756         * bindings/v8/V8StringResource.cpp:
24757         (StringTraits):
24758         (WebCore::v8StringToWebCoreString):
24759         * bindings/v8/V8ValueCache.cpp:
24760         (WebCore::makeExternalString):
24761         (WebCore::WebCoreStringResource::visitStrings):
24762         * bindings/v8/V8ValueCache.h:
24763         (WebCore::WebCoreStringResource::WebCoreStringResource):
24764         (WebCore::WebCoreStringResource::~WebCoreStringResource):
24765         (WebCore::WebCoreStringResource::data):
24766         (WebCoreStringResource):
24767         (WebCore::WebCoreStringResource::length):
24768         (WebCore::WebCoreStringResource::atomicString):
24769         (WebCore::WebCoreStringResource::toStringResource):
24770
24771 2012-11-02  Martin Robinson  <mrobinson@igalia.com>
24772
24773         [GTK] Remove dependency on SoupPasswordManager
24774         https://bugs.webkit.org/show_bug.cgi?id=100775
24775
24776         Reviewed by Carlos Garcia Campos.
24777
24778         Remember passwords using libsecret instead of SoupPasswordManager. We accomplish this using
24779         a new class, CredentialBackingStore. CredentialBackingStore will soon be the thing that backs
24780         CredentialStoreGtk. The name is based on the name of a similar class from the BlackBerry port.
24781
24782         No new tests. This does not change behavior.
24783
24784         * GNUmakefile.am: Add libsecret flags to the build and the new directory to the include list.
24785         * GNUmakefile.list.am: Add new files to the source list.
24786         * platform/gtk/GRefPtrGtk.cpp: Add support for SecretValue to GRefPtrGtk.
24787         * platform/gtk/GtkAuthenticationDialog.cpp: Replace interaction with SoupPasswordManger with
24788         interaction with the CredentialBackingStore. Remove all conditional SoupPasswordManager guards.
24789         * platform/gtk/GtkAuthenticationDialog.h: Ditto.
24790         * platform/network/gtk/CredentialBackingStore.cpp: Added.
24791         * platform/network/gtk/CredentialBackingStore.h: Added.
24792
24793 2012-11-02  Jinwoo Song  <jinwoo7.song@samsung.com>
24794
24795         Fix build warning [-Wswitch]
24796         https://bugs.webkit.org/show_bug.cgi?id=101029
24797
24798         Reviewed by Alexey Proskuryakov.
24799
24800         Fix build warning message: enumeration value ‘Viewport’ not handled in switch [-Wswitch]
24801         in Source/WebCore/css/StyleSheetContents.cpp.
24802         Add case statement for 'Viewport' with the CSS_DEVICE_ADAPTATION macro.
24803
24804         * css/StyleSheetContents.cpp:
24805         (WebCore::childRulesHaveFailedOrCanceledSubresources):
24806
24807 2012-11-02  Ojan Vafai  <ojan@chromium.org>
24808
24809         Move m_element checks out of canShareStyle into locateSharedStyle
24810         https://bugs.webkit.org/show_bug.cgi?id=101070
24811
24812         Reviewed by Darin Adler.
24813
24814         Can shareStyleWithElement is called for each sibling as we look for a
24815         shareElement. locateSharedStyle is called once for the element we're
24816         trying to find a style for. Checks that only depend on the latter
24817         element should, thus be in locateSharedStyle.
24818
24819         No new tests. There should be no change in behavior, except possibly
24820         a performance improvement in some cases.
24821
24822         * css/StyleResolver.cpp:
24823         (WebCore::StyleResolver::canShareStyleWithElement):
24824         (WebCore::StyleResolver::locateSharedStyle):
24825
24826 2012-11-02  Kentaro Hara  <haraken@chromium.org>
24827
24828         [V8] Add ASSERT() to guarantee that we don't store NULL pointers to V8 internal fields
24829         https://bugs.webkit.org/show_bug.cgi?id=101054
24830
24831         Reviewed by Adam Barth.
24832
24833         I'm investigating a Chromium crash bug:
24834         http://code.google.com/p/chromium/issues/detail?id=155942
24835
24836         I've not yet identified the root cause (because I can't reproduce
24837         the crash), but it looks like we are storing NULL pointers to
24838         V8 internal fields. Just in case, we can add an ASSERT() to
24839         guarantee that NULL pointers are never stored. (Also I'm hoping
24840         that this ASSERT() will give me more debug information.)
24841
24842         No tests. No change in behavior.
24843
24844         * bindings/v8/V8DOMWrapper.h:
24845         (WebCore::V8DOMWrapper::setDOMWrapper):
24846
24847 2012-11-02  Kevin Ellis  <kevers@chromium.org>
24848
24849         Imrpove scoring in touch adjustment to address bias towards smaller targets.
24850         https://bugs.webkit.org/show_bug.cgi?id=101046
24851
24852         Reviewed by Antonio Gomes.
24853
24854         Update the touch overlap score for touch adjustmetn to normalize
24855         with respect to the maximum possible overlap rather than the size
24856         of the target element.  This change enables good overlap scores for
24857         small and large targets alike.  Prior to the patch it was not possible
24858         to get a good overlap score for a sufficiently larget target.
24859
24860         Covered by existing tests, which have been updated to reflect the
24861         intended behavior.
24862
24863         * page/TouchAdjustment.cpp:
24864         (WebCore::TouchAdjustment::hybridDistanceFunction):
24865
24866 2012-11-02  Mike West  <mkwst@chromium.org>
24867
24868         Web Inspector: Repeated errors are rendered incorrectly: link is not floating to the right.
24869         https://bugs.webkit.org/show_bug.cgi?id=101032
24870
24871         Reviewed by Yury Semikhatsky.
24872
24873         https://bugs.webkit.org/show_bug.cgi?id=100525 incorrectly added
24874         '-webkit-flex: 1' only to the list generated for errors in the console.
24875         It should have been added to normal warning text as well. This patch
24876         fixes the problem.
24877
24878         * inspector/front-end/inspector.css:
24879         (.repeated-message .outline-disclosure, .repeated-message > .console-message-text):
24880
24881 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
24882
24883         Web Inspector: Timeline: show popup for CPU bars.
24884         https://bugs.webkit.org/show_bug.cgi?id=100951
24885
24886         Reviewed by Pavel Feldman.
24887
24888         Each CPU bar can represent a combination of several shorter messages.
24889         We should show information about combined messages - start time,
24890         total duration, CPU time, message count.
24891
24892         * English.lproj/localizedStrings.js: Added "Message Count" string.
24893         * inspector/front-end/TimelinePanel.js:
24894         (WebInspector.TimelinePanel.prototype._refreshMainThreadBars):
24895         Supply elements with underlying info.
24896         * inspector/front-end/TimelinePresentationModel.js:
24897         (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
24898         Added.
24899
24900 2012-11-02  Alexei Filippov  <alph@chromium.org>
24901
24902         Web Inspector: Network panel grid UI is misaligned after r132888
24903         https://bugs.webkit.org/show_bug.cgi?id=101050
24904
24905         Rollback the change to basic data grid css and move it to the native memory
24906         snapshot datagrid css.
24907
24908         Reviewed by Alexander Pavlov.
24909
24910         * inspector/front-end/dataGrid.css:
24911         (.data-grid td):
24912         * inspector/front-end/nativeMemoryProfiler.css:
24913         (.native-snapshot-view .data-grid td):
24914
24915 2012-11-02  Sheriff Bot  <webkit.review.bot@gmail.com>
24916
24917         Unreviewed, rolling out r133303.
24918         http://trac.webkit.org/changeset/133303
24919         https://bugs.webkit.org/show_bug.cgi?id=101068
24920
24921         "Broke qt wk2 build (seems like bots fails to rerun qmake if
24922         needed)" (Requested by kbalazs on #webkit).
24923
24924         * Target.pri:
24925         * WebCore.pri:
24926         * platform/PlatformStrategies.cpp:
24927         (WebCore):
24928         * platform/qt/QtTestSupport.h: Removed.
24929
24930 2012-11-02  Balazs Kelemen  <kbalazs@webkit.org>
24931
24932         [Qt][WK2] setPlatformStrategies always asserts after r132744
24933         https://bugs.webkit.org/show_bug.cgi?id=100838
24934
24935         Reviewed by Simon Hausmann.
24936
24937         The problem here is that we use QWebSettings::clearMemoryCaches, a WebKit1 API
24938         from the injected bundle, which calls initializeWebCoreQt and it sets the platform
24939         strategies to the one for WebKit1. We should stop using WebKit1 API's from WebKit2
24940         code. In order to keep the behavior, this patch adds exported helpers to WebCore
24941         that can be used from DumpRenderTree and WebKitTestRunner. This is the same idea
24942         as WebCoreTestSupport but these helpers are specific to Qt. Technically we could
24943         add it to the WebKit1 API for the time being, but my goal was to move in the direction
24944         of removing the WebKit1 dependency from WebKitTestRunner. We only build the file
24945         in non production mode.
24946
24947         Basically covered by all tests.
24948
24949         * Target.pri:
24950         * WebCore.pri: We need to link against fontconfig (only in non-production mode) since
24951         initializeTestFonts uses it.
24952         * platform/PlatformStrategies.cpp:
24953         (WebCore): Zero initialize the global static variable as it is expected by the functions
24954         below. It is a side fix. It seems like it has not been shown on debug WebKit2 bots because
24955         common runtime environments tend to zero initialize statics by default - but I don't think
24956         we should rely on that.
24957         * platform/qt/QtTestSupport.cpp: Added. I choose GPL license because code from qwebsettings.cpp
24958         is also under that.
24959         (WebKit):
24960         (WebKit::QtTestSupport::clearMemoryCaches): This is basically a copy of QWebSettings::clearMemoryCaches
24961         without calling initializeWebCoreQt.
24962         (WebKit::QtTestSupport::initializeTestFonts): I moved this code here as well now that we have to expose
24963         symbols from WebCore anyway. The advantage is that now we don't have to build it twice and we don't need
24964         additional files to forward it from the directory of DumpRenderTree for WebKitTestRunner.
24965         I added a call to FontCace::invalidate in the case when the font set has been changed so that it will do
24966         the job even if we would stop clearing all caches between tests. Also moved the call to
24967         QFontDatabase::removeAllApplicationFonts from callers to here.
24968         * platform/qt/QtTestSupport.h:
24969         (WebKit):
24970         (QtTestSupport):
24971
24972 2012-11-02  Kent Tamura  <tkent@chromium.org>
24973
24974         Optimize DateTimeFormat::quoteAndAppendLiteral output
24975         https://bugs.webkit.org/show_bug.cgi?id=101040
24976
24977         Reviewed by Kentaro Hara.
24978
24979         In LDML date format pattern, only ASCII alphabet and quote have special
24980         roles. So we don't need to quote the input string if it doesn't contain
24981         them.
24982
24983         No new tests. Updated WebKit/chromium/tests/LocaleWinTest.cpp
24984
24985         * platform/text/DateTimeFormat.cpp:
24986         (WebCore::isASCIIAlphabetOrQuote): A helper to check special characters.
24987         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
24988         Append the input string as is if it has no special character.
24989
24990 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
24991
24992         Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
24993         https://bugs.webkit.org/show_bug.cgi?id=101052
24994
24995         Reviewed by Yury Semikhatsky.
24996
24997         I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
24998         MemoryAgent can visit it but instrumentation for these containers report no objectType.
24999         It means that addRootObject method needs to accept objectType property as an argument.
25000         Otherwise I would have had to create a proxy class with proper objectType.
25001
25002         * dom/WebCoreMemoryInstrumentation.cpp:
25003         (WebCore::WebCoreMemoryInstrumentation::reportMemoryUsage):
25004         (WebCore):
25005         * dom/WebCoreMemoryInstrumentation.h:
25006         (WebCoreMemoryInstrumentation):
25007         (WebCore):
25008         * inspector/InspectorMemoryAgent.cpp:
25009         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
25010
25011 2012-11-02  Michael Brüning  <michael.bruning@digia.com>
25012
25013         [Qt][WK2] ASSERT hit for every mouse click
25014         https://bugs.webkit.org/show_bug.cgi?id=100607
25015
25016         Reviewed by Jocelyn Turcotte.
25017
25018         Changed the logic of absolutePathForRenderer to use the first highlight box as the mid box 
25019         by uniting the two in case the mid box is empty. This allows the first box to be merged with
25020         the last box should they intersect, and thereby prevents an ASSERT in addHighlightRect that is
25021         triggered by two intersecting boxes being passed to addHighlightRect as separate ones.
25022
25023         Also, this patch removes some superfluous checks for LayoutRect::isEmpty, which is being checked
25024         in LayoutRect::intersects already.
25025
25026         No new tests, but added manual test: ManualTests/tap-gesture-on-em-link-tap-highlight-assert.html
25027
25028         * page/GestureTapHighlighter.cpp:
25029
25030 2012-11-02  Arpita Bahuguna  <arpitabahuguna@gmail.com>
25031
25032         Regression r130057: Improper preferred width calculation when an inline replaced object, wrapped in an inline flow, follows some text.
25033         https://bugs.webkit.org/show_bug.cgi?id=99442
25034
25035         Reviewed by Levi Weintraub.
25036
25037         Extra width is displayed after an inline replaced object that follows some
25038         text (not ending in a whitespace) within an inline-block. This is due to
25039         the end width (endMin) of the text object being carried forward (via inlineMin)
25040         and added onto the next line containing the inline replaced object.
25041
25042         This was caused as a regression to, or rather became apparent post the fix
25043         http://trac.webkit.org/changeset/130057 which fixed the block's preferred
25044         width when a renderInline with width contained an inline replaced object.
25045
25046         Test: fast/block/block-with-inline-replaced-child-following-text.html
25047
25048         * rendering/RenderBlock.cpp:
25049         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
25050         Introduced another flag (shouldBreakLineAfterText) which is set when
25051         our current Text line (object) does not end in a whitespace, thereby
25052         implying that there could be more text following, for which the end width
25053         needs to be carried forward onto the next line.
25054
25055         In case the following object instead turns out to be an Inline Replaced
25056         object, we should terminate our previous line and reset this extra width.
25057         This is now being handled by checking for the shouldBreakLineAfterText
25058         flag while processing Inline Replaced objects.
25059
25060         Once set, shouldBreakLineAfterText shall be reset only if we get another
25061         Text object that ends in a whitespace, signifying the termination of
25062         that text line. For all other cases, we persist with this flag through
25063         the block's inline contents.
25064
25065 2012-11-02  Eugene Klyuchnikov  <eustas.bug@gmail.com>
25066
25067         Web Inspector: Console: remove obsolete ctrl-shift-m shortcut
25068         https://bugs.webkit.org/show_bug.cgi?id=101036
25069
25070         Reviewed by Pavel Feldman.
25071
25072         Ctrl-shift-m on console dumps MemoryAgent.getDOMNodeCount
25073         This functionality seems to be obsolete.
25074
25075         * inspector/front-end/ConsoleView.js: Removed shortcut and function.
25076
25077 2012-11-02  Stephen Chenney  <schenney@chromium.org>
25078
25079         SVG classes cause layering violations in platform Font code
25080         https://bugs.webkit.org/show_bug.cgi?id=98513
25081
25082         Reviewed by Eric Seidel.
25083
25084         Add a contained class to save and restore GlpyhPage state in FontFallbackList.
25085         This allows us to remove the layering violation, and several methods, that
25086         previously existed to support SVGTextRunRenderingContext.
25087
25088         No new tests because no change at all in functionality.
25089
25090         * platform/graphics/FontFallbackList.h:
25091         (FontFallbackList):
25092         (GlyphPagesStateSaver): New state save and restore class
25093         (WebCore::FontFallbackList::GlyphPagesStateSaver::GlyphPagesStateSaver): Save GlyphPage state
25094         (WebCore::FontFallbackList::GlyphPagesStateSaver::~GlyphPagesStateSaver): Restore GlyphPage state
25095         * rendering/svg/SVGTextRunRenderingContext.cpp:
25096         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Shift to usage of the new class.
25097
25098 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25099
25100         Web Inspector: Fix compilation errors
25101         https://bugs.webkit.org/show_bug.cgi?id=101027
25102
25103         Reviewed by Yury Semikhatsky.
25104
25105         * inspector/InjectedScriptSource.js:
25106         (.):
25107         * inspector/front-end/NativeMemorySnapshotView.js:
25108         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
25109
25110 2012-11-02  Andreas Kling  <kling@webkit.org>
25111
25112         Only resolve attribute-derived style once per shared ElementAttributeData.
25113         <http://webkit.org/b/100990>
25114
25115         Reviewed by Antti Koivisto.
25116
25117         Track the serialization of the "style" attribute, and the dirtiness of the presentation attribute style
25118         on ElementAttributeData instead of in Node flags.
25119
25120         This allows us to avoid duplicate work for ElementAttributeData that are shared between multiple elements,
25121         since the state is no longer per-Element.
25122
25123         I've left the presentation attribute cache in there for now, since it covers two additional cases:
25124
25125             - Elements with the same attributes in different order.
25126             - Elements with the same presentation attributes, but with differing non-presentation attributes.
25127
25128         It's likely that we're not gaining much from it anymore, but that's a topic for another patch.
25129
25130         * dom/Node.h:
25131         * dom/ElementAttributeData.h:
25132         (WebCore::ElementAttributeData::presentationAttributeStyle):
25133         (WebCore::ElementAttributeData::setPresentationAttributeStyle):
25134         (WebCore::ElementAttributeData::styleAttributeIsDirty):
25135         (WebCore::ElementAttributeData::setStyleAttributeIsDirty):
25136         (WebCore::ElementAttributeData::presentationAttributeStyleIsDirty):
25137         (WebCore::ElementAttributeData::setPresentationAttributeStyleIsDirty):
25138         (ElementAttributeData):
25139         (WebCore::ElementAttributeData::ElementAttributeData):
25140         * dom/Element.cpp:
25141         (WebCore::Element::getAttribute):
25142         * dom/Element.h:
25143         (WebCore::Element::styleAttributeIsDirty):
25144         (WebCore::Element::updateInvalidAttributes):
25145         * dom/StyledElement.cpp:
25146         (WebCore::StyledElement::updateStyleAttribute):
25147         (WebCore::StyledElement::attributeChanged):
25148         (WebCore::StyledElement::styleAttributeChanged):
25149         (WebCore::StyledElement::inlineStyleChanged):
25150         * dom/StyledElement.h:
25151         (WebCore::StyledElement::invalidateStyleAttribute):
25152
25153             Move the "attribute style dirty" and "style attribute valid" node flags to ElementAttributeData
25154             and change them to both use dirty semantics.
25155
25156         * dom/ElementAttributeData.cpp:
25157         (WebCore::ElementAttributeData::cloneDataFrom):
25158
25159             Share the presentation attribute style between cloned elements initially.
25160
25161         * dom/StyledElement.h:
25162         (WebCore::StyledElement::presentationAttributeStyle):
25163         * css/StyleResolver.cpp:
25164         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
25165         (WebCore::StyleResolver::matchAllRules):
25166         (WebCore::StyleResolver::canShareStyleWithElement):
25167         * dom/ElementAttributeData.cpp:
25168         (WebCore::MutableElementAttributeData::MutableElementAttributeData):
25169         (WebCore::ElementAttributeData::reportMemoryUsage):
25170         * inspector/InspectorCSSAgent.cpp:
25171         (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
25172
25173             Renamed StyledElement::attributeStyle() to presentationAttributeStyle(). The old name was too
25174             easily confused with "style attribute".
25175
25176         * dom/StyledElement.cpp:
25177         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
25178
25179             Renamed from updateAttributeStyle().
25180
25181 2012-11-01  Kent Tamura  <tkent@chromium.org>
25182
25183         Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
25184         https://bugs.webkit.org/show_bug.cgi?id=101007
25185
25186         Reviewed by Kentaro Hara.
25187
25188         ChromeClient::openDateTimeChooser and Locale::formatDateTime are
25189         necessary if one of date/time input types is enabled and even if
25190         ENABLE_INPUT_MULTIPLE_FIELDS_UI is disabled. So they should be wrapped
25191         with ENABLE(DATE_AND_TIME_INPUT_TYPES).
25192
25193         The following clases are used only for ChromeClient::openDateTimeChooser.
25194         They should be wrapped with the same flag.
25195           - class DateTimeChooser
25196           - class DateTiemChooserClient
25197
25198         The following classes/functions are used for
25199         Locale::formatDateTime. They should be wrapped with the same flag.
25200           - Locale::dateFormat
25201           - Locale::monthFormat
25202           - Locale::timeFormat
25203           - Locale::shortTimeFormat
25204           - Locale::monthLabels
25205           - Locale::shortMonthLabels
25206           - Locale::standAloneMonthLabels
25207           - Locale::shortStandAloneMonthLabels
25208           - class DateTimeFormat
25209
25210         Also, we change the meaning of ENABLE_CALENDAR_PICKER. It meant
25211          1) <input> supports calendar picker UI, and
25212          2) WebCore/Resources/pagepopups/ is used for the calendar UI implementation.
25213         Now ENABLE_CALENDAR_PICKER means only 2.
25214
25215         No new tests because of no behavior changes.
25216
25217         * html/BaseDateAndTimeInputType.h: This is necessary only if date/time
25218         input types are enabled because this is a common super class of
25219         date/time InputType classes.
25220         * html/BaseDateAndTimeInputType.cpp: Ditto.
25221         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Ditto.
25222         * html/BaseChooserOnlyDateAndTimeInputType.h: Ditto.
25223
25224         * page/ChromeClient.h: Change the flag for openDateTimeChooser, and add a comment.
25225         * loader/EmptyClients.cpp: Follow the openDateTimeChooser flag change.
25226         * loader/EmptyClients.h: Ditto.
25227         * platform/DateTimeChooser.h:
25228         This is needed only if ChromeClient::openDateTimeChooser is available.
25229         * platform/DateTimeChooserClient.h: Ditto.
25230
25231         * platform/LocalizedStrings.h:
25232         weekFormatInLDML is necessary if ENABLE(INPUT_TYPE_WEEK) regardless of
25233         ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25234
25235         * platform/text/PlatformLocale.h:
25236         Change the condition for Locale::formatDateTime and the code used by
25237         Locale::formatDateTime.
25238         * platform/text/PlatformLocale.cpp:
25239         (WebCore::Locale::formatDateTime):
25240         This is necessary even if !ENABLE(INPUT_MULTIPLE_FIELDS_UI), to produce
25241         localized representations of date/time values.
25242         * platform/text/LocaleICU.cpp:
25243         Change the condition for the code used by Locale::formatDateTime.
25244         * platform/text/LocaleICU.h: Ditto.
25245         * platform/text/LocaleNone.cpp: Ditto.
25246         * platform/text/mac/LocaleMac.h: Ditto.
25247         * platform/text/mac/LocaleMac.mm: Ditto.
25248         * platform/text/win/LocaleWin.cpp: Ditto.
25249         * platform/text/win/LocaleWin.h: Ditto.
25250         * platform/text/DateTimeFormat.cpp: Ditto.
25251         * platform/text/DateTimeFormat.h: Ditto.
25252
25253         * html/BaseMultipleFieldsDateAndTimeInputType.h:
25254         Remove some #if-#endif for a picker indicator element because
25255         ENABLE_CALENDAR_PICKER meaning is changed.
25256         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
25257
25258         * html/shadow/PickerIndicatorElement.cpp: CALENDAR_PICKER ->
25259         INPUT_MULTIPLE_FIELDS_UI because ENABLE_CALENDAR_PICKER meaning is changed.
25260         * html/shadow/PickerIndicatorElement.h: Ditto.
25261         * rendering/RenderDetailsMarker.cpp: Ditto.
25262         * rendering/RenderDetailsMarker.h: Ditto.
25263         * rendering/RenderTheme.h: Ditto.
25264         * rendering/RenderThemeChromiumCommon.cpp: Ditto.
25265         * rendering/RenderThemeChromiumCommon.h: Ditto.
25266         * rendering/RenderThemeChromiumMac.h: Ditto.
25267         * rendering/RenderThemeChromiumSkia.h: Ditto.
25268
25269 2012-11-02  Zeno Albisser  <zeno@webkit.org>
25270
25271         [Qt] Revert QCocoaNativeInterface workaround from r131720.
25272         https://bugs.webkit.org/show_bug.cgi?id=100842
25273
25274         Reviewed by Simon Hausmann.
25275
25276         After updating Qt5 on the buildbots, the workaround
25277         introduced in r131720 is not needed anymore.
25278
25279         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
25280         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
25281
25282 2012-11-02  Kent Tamura  <tkent@chromium.org>
25283
25284         Add a common base class for date/time input types without inline editing behavior
25285         https://bugs.webkit.org/show_bug.cgi?id=101031
25286
25287         Reviewed by Hajime Morita.
25288
25289         Add BaseChooserOnlyDateAndTimeInputType class, which will support
25290         DateTimeChooserClient, and date/time input types inherit it if
25291         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25292
25293         No new tests. This doesn't change any behavior.
25294
25295         * CMakeLists.txt: Add BaseChooserOnlyDateAndTimeInputType.{cpp,h}.
25296         * GNUmakefile.list.am: Ditto.
25297         * Target.pri: Ditto.
25298         * WebCore.gypi: Ditto.
25299         * WebCore.xcodeproj/project.pbxproj: Ditto.
25300         * html/BaseChooserOnlyDateAndTimeInputType.cpp: Added.
25301         * html/BaseChooserOnlyDateAndTimeInputType.h: Added.
25302
25303         * html/DateInputType.h: Inherit BaseChooserOnlyDateAndTimeInputType if
25304         !ENABLE(INPUT_MULTIPLE_FIELDS_UI).
25305         * html/DateTimeInputType.h: Ditto.
25306         * html/DateTimeLocalInputType.h: Ditto.
25307         * html/MonthInputType.h: Ditto.
25308         * html/TimeInputType.h: Ditto.
25309         * html/WeekInputType.h: Ditto.
25310
25311 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25312
25313         Web Inspector: [JSC] implement WorkerScriptDebugServer
25314         https://bugs.webkit.org/show_bug.cgi?id=99801
25315
25316         Reviewed by Yury Semikhatsky.
25317
25318         To implement Worker Inspector for JSC.
25319         The virtual function "runEventLoopWhilePaused" is defined, since there are different ways to block
25320         the JS running in worker-context and normal page-context.
25321         The function "isContentScript" now is virtual because the original invoked functions are useless
25322         and cause problem in worker-context.
25323         In function "WebCore::WorkerScriptController::attachDebugger", we invoke "initScriptIfNeeded" to
25324         ensure the JSGloblalObject exist in the case of attaching Debugger before executing the worker
25325         JS code (Pause on start).
25326
25327         No new test case.
25328
25329         * bindings/js/PageScriptDebugServer.cpp:
25330         (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
25331         (WebCore):
25332         * bindings/js/PageScriptDebugServer.h:
25333         (PageScriptDebugServer):
25334         * bindings/js/ScriptDebugServer.cpp:
25335         (WebCore::ScriptDebugServer::isContentScript):
25336         (WebCore::ScriptDebugServer::pauseIfNeeded):
25337         * bindings/js/ScriptDebugServer.h:
25338         (JSC):
25339         (ScriptDebugServer):
25340         * bindings/js/WorkerScriptController.cpp:
25341         (WebCore::WorkerScriptController::attachDebugger):
25342         (WebCore):
25343         (WebCore::WorkerScriptController::detachDebugger):
25344         * bindings/js/WorkerScriptController.h:
25345         (WorkerScriptController):
25346         * bindings/js/WorkerScriptDebugServer.cpp:
25347         (WebCore::WorkerScriptDebugServer::WorkerScriptDebugServer):
25348         (WebCore):
25349         (WebCore::WorkerScriptDebugServer::addListener):
25350         (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
25351         (WebCore::WorkerScriptDebugServer::removeListener):
25352         (WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
25353         * bindings/js/WorkerScriptDebugServer.h:
25354         (WorkerScriptDebugServer):
25355         (WebCore::WorkerScriptDebugServer::getListenersForGlobalObject):
25356         (WebCore::WorkerScriptDebugServer::isContentScript):
25357
25358 2012-11-02  KyungTae Kim  <ktf.kim@samsung.com>
25359
25360         Compilation warning in Node.cpp when USERSELECT_ALL is disabled
25361         https://bugs.webkit.org/show_bug.cgi?id=101025
25362
25363         Reviewed by Ryosuke Niwa.
25364
25365         The parameter 'treatment' is not used when USERSELECT_ALL is disabled. 
25366
25367         * dom/Node.cpp:
25368         (WebCore::Node::rendererIsEditable):
25369
25370 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
25371
25372         Web Inspector: Middle click closes an editor and pastes selection into current editor on Linux
25373         https://bugs.webkit.org/show_bug.cgi?id=100743
25374
25375         Reviewed by Alexander Pavlov.
25376
25377         Editor now consumes all middle mouse button mouse ups except for the ones in the main panel.
25378         TabbedPane now consumes all middle mouse button mouse ups as well.
25379         Navigator view does not pass focus anymore if element was selected with middle mouse button.
25380
25381         * inspector/front-end/DefaultTextEditor.js:
25382         (.preventDefaultOnMouseUp):
25383         (.consumeMouseUp):
25384         * inspector/front-end/NavigatorView.js:
25385         (WebInspector.NavigatorSourceTreeElement.prototype.ondblclick):
25386         * inspector/front-end/TabbedPane.js:
25387         (WebInspector.TabbedPane):
25388         (WebInspector.TabbedPane.prototype.onMouseUp):
25389         (WebInspector.TabbedPane.prototype.onMouseClick):
25390
25391 2012-11-01  Ilya Tikhonovsky  <loislo@chromium.org>
25392
25393         Web Inspector: NMI instrument ShadowRoot. It gives us ~400k on plus.google.com
25394         https://bugs.webkit.org/show_bug.cgi?id=100866
25395
25396         Reviewed by Yury Semikhatsky.
25397
25398         Plain vanilla memory instrumentation code for HTMLInputElement which has a ElementShadow.
25399
25400         * CMakeLists.txt:
25401         * GNUmakefile.list.am:
25402         * Target.pri:
25403         * WebCore.gypi:
25404         * WebCore.vcproj/WebCore.vcproj:
25405         * dom/DocumentOrderedMap.cpp:
25406         (WebCore::DocumentOrderedMap::reportMemoryUsage):
25407         (WebCore):
25408         * dom/DocumentOrderedMap.h:
25409         (DocumentOrderedMap):
25410         * dom/Element.cpp:
25411         (WebCore::Element::reportMemoryUsage):
25412         (WebCore):
25413         * dom/Element.h:
25414         * dom/ElementRareData.cpp: Added.
25415         (WebCore):
25416         (WebCore::ElementRareData::reportMemoryUsage):
25417         * dom/ElementRareData.h:
25418         (ElementRareData):
25419         * dom/ElementShadow.cpp:
25420         (WebCore::ElementShadow::reportMemoryUsage):
25421         (WebCore):
25422         * dom/ElementShadow.h:
25423         (ElementShadow):
25424         * dom/Node.cpp:
25425         (WebCore::Node::reportMemoryUsage):
25426         * dom/NodeRareData.cpp: Added.
25427         (WebCore):
25428         (WebCore::NodeListsNodeData::reportMemoryUsage):
25429         (WebCore::NodeRareData::reportMemoryUsage):
25430         * dom/NodeRareData.h:
25431         (NodeListsNodeData):
25432         (NodeRareData):
25433         * dom/ShadowRoot.cpp:
25434         (WebCore):
25435         (WebCore::ShadowRoot::reportMemoryUsage):
25436         * dom/ShadowRoot.h:
25437         (ShadowRoot):
25438         * dom/TreeScope.cpp:
25439         (WebCore::TreeScope::reportMemoryUsage):
25440         (WebCore):
25441         * dom/TreeScope.h:
25442         (TreeScope):
25443         * html/HTMLFormControlElement.cpp:
25444         (WebCore::HTMLFormControlElement::reportMemoryUsage):
25445         (WebCore):
25446         * html/HTMLFormControlElement.h:
25447         (HTMLFormControlElement):
25448         * html/HTMLInputElement.cpp:
25449         (WebCore::HTMLInputElement::reportMemoryUsage):
25450         (WebCore):
25451         * html/HTMLInputElement.h:
25452         (HTMLInputElement):
25453         * html/HTMLTextFormControlElement.cpp:
25454         (WebCore::HTMLTextFormControlElement::reportMemoryUsage):
25455         (WebCore):
25456         * html/HTMLTextFormControlElement.h:
25457         (HTMLTextFormControlElement):
25458
25459 2012-11-02  Vsevolod Vlasov  <vsevik@chromium.org>
25460
25461         Web Inspector: Cookie info in Network Resources Cookies tab shows "Invalid Date"
25462         https://bugs.webkit.org/show_bug.cgi?id=97471
25463
25464         Reviewed by Pavel Feldman.
25465
25466         This patch is partly based on patch by Otto Derek Cheung <otcheung@rim.com>.
25467         Refactored CookieParser so that all cookies in front-end were WebInspector.Cookie object.
25468         Cookie table can now show Max-Age as well as Expires attribute of a cookie.
25469         Fixed expiresDate calculation.
25470         Removed getters from CookieParser for better compilation.
25471
25472         * English.lproj/localizedStrings.js:
25473         * inspector/front-end/AuditRules.js:
25474         (WebInspector.AuditRules.CookieRuleBase.prototype.mapResourceCookies):
25475         (WebInspector.AuditRules.CookieSizeRule.prototype._average):
25476         (WebInspector.AuditRules.CookieSizeRule.prototype._max):
25477         (WebInspector.AuditRules.StaticCookielessRule.prototype._collectorCallback):
25478         * inspector/front-end/CookieItemsView.js:
25479         (WebInspector.CookieItemsView.prototype._filterCookiesForDomain):
25480         * inspector/front-end/CookieParser.js:
25481         (WebInspector.CookieParser.prototype.cookies):
25482         (WebInspector.CookieParser.prototype._flushCookie):
25483         (WebInspector.CookieParser.prototype._addCookie):
25484         (WebInspector.Cookie.prototype.httpOnly):
25485         (WebInspector.Cookie.prototype.secure):
25486         (WebInspector.Cookie.prototype.session):
25487         (WebInspector.Cookie.prototype.path):
25488         (WebInspector.Cookie.prototype.domain):
25489         (WebInspector.Cookie.prototype.expires):
25490         (WebInspector.Cookie.prototype.maxAge):
25491         (WebInspector.Cookie.prototype.size):
25492         (WebInspector.Cookie.prototype.setSize):
25493         (WebInspector.Cookie.prototype.expiresDate):
25494         (WebInspector.Cookie.prototype.attributes):
25495         (WebInspector.Cookies.getCookiesAsync):
25496         (WebInspector.Cookies.buildCookiesFromString):
25497         (WebInspector.Cookies.buildCookieProtocolObject):
25498         (WebInspector.Cookies.cookieMatchesResourceURL):
25499         (WebInspector.Cookies.cookieDomainMatchesResourceDomain):
25500         * inspector/front-end/CookiesTable.js:
25501         (WebInspector.CookiesTable):
25502         (WebInspector.CookiesTable.prototype._totalSize):
25503         (WebInspector.CookiesTable.prototype._sortCookies.expiresCompare):
25504         (WebInspector.CookiesTable.prototype._sortCookies):
25505         (WebInspector.CookiesTable.prototype._createGridNode):
25506         * inspector/front-end/HAREntry.js:
25507         (WebInspector.HAREntry.prototype._buildCookie):
25508
25509 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
25510
25511         Memory instrumentation: do not call checkCountedObject with wrong pointers
25512         https://bugs.webkit.org/show_bug.cgi?id=100958
25513
25514         Reviewed by Alexander Pavlov.
25515
25516         Removed redundant call to checkCountedObject.
25517
25518         * inspector/MemoryInstrumentationImpl.cpp:
25519         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
25520
25521 2012-11-02  Peter Wang  <peter.wang@torchmobile.com.cn>
25522
25523         Web Inspector: a small defect in "WorkersSidebarPanel.js"
25524         https://bugs.webkit.org/show_bug.cgi?id=101022
25525
25526         Reviewed by Yury Semikhatsky.
25527
25528         In "autoattachToWorkersClicked", the "event.target.checked" doesn't alwyas valid, since the
25529         "event.target" might be a label.
25530
25531         The problem just causes an error report, doesn't effect function, so no new test case.
25532
25533         * inspector/front-end/WorkersSidebarPane.js:
25534         (WebInspector.WorkersSidebarPane.prototype._autoattachToWorkersClicked):
25535
25536 2012-11-01  Shinya Kawanaka  <shinyak@chromium.org>
25537
25538         [Shadow] Element should have getter and setter of attribute 'pseudo'
25539         https://bugs.webkit.org/show_bug.cgi?id=100831
25540
25541         Reviewed by Hajime Morita.
25542
25543         We expose 'pseudo' attribute in Element. When nothing is assigned to 'pseudo', it should return null.
25544
25545         Test: fast/dom/shadow/pseudo-attribute.html
25546
25547         * dom/Element.cpp:
25548         (WebCore::Element::pseudo):
25549         (WebCore):
25550         (WebCore::Element::setPseudo):
25551         * dom/Element.h:
25552         (Element):
25553         * dom/Element.idl:
25554         * html/HTMLAttributeNames.in:
25555
25556 2012-11-01  Roger Fong  <roger_fong@apple.com>
25557
25558         Build fix. http://trac.webkit.org/changeset/133252 broke the Windows build.
25559         https://bugs.webkit.org/show_bug.cgi?id=101008
25560
25561         Reviewed by fischman@chromium.org.
25562
25563         * html/HTMLMediaElement.cpp:
25564         (WebCore::HTMLMediaElement::clearMediaPlayer):
25565         * html/HTMLMediaElement.h:
25566         (HTMLMediaElement):
25567
25568 2012-11-01  Stephen White  <senorblanco@chromium.org>
25569
25570         Unreviewed, rolling out r133244.
25571         http://trac.webkit.org/changeset/133244
25572         https://bugs.webkit.org/show_bug.cgi?id=100973
25573
25574         Broke Chromium Mac (clang) builds.
25575
25576         * bindings/v8/DOMDataStore.cpp:
25577         (WebCore::DOMDataStore::DOMDataStore):
25578         * bindings/v8/IntrusiveDOMWrapperMap.h:
25579         (WebCore::DOMNodeWrapperMap::weakCallback):
25580
25581 2012-11-01  Ami Fischman  <fischman@chromium.org>
25582
25583         HTMLMediaPlayer should free m_player when src is set/changed
25584         https://bugs.webkit.org/show_bug.cgi?id=99647
25585
25586         Reviewed by Eric Carlson.
25587
25588         New ManualTest added; manual since leaking media players doesn't have layoutTestController-visible effects.
25589
25590         * html/HTMLMediaElement.cpp:
25591         (WebCore::HTMLMediaElement::parseAttribute): clearMediaPlayer() when src is set/changed
25592         (WebCore::HTMLMediaElement::userCancelledLoad): use new clearMediaPlayer() helper
25593         (WebCore::HTMLMediaElement::clearMediaPlayer): clear m_player and associated timers/flags
25594         (WebCore):
25595         (WebCore::HTMLMediaElement::createMediaPlayer): whitespace-only change
25596         * html/HTMLMediaElement.h: new method: createMediaPlayer().
25597         (HTMLMediaElement):
25598
25599 2012-11-01  Tom Sepez  <tsepez@chromium.org>
25600
25601         XSS blocker false positive when page contains <iframe src="">
25602         https://bugs.webkit.org/show_bug.cgi?id=93416
25603
25604         Reviewed by Adam Barth.
25605
25606         Treat src="" and src="about:blank" as safe resources even if they appear
25607         in the query parameters.
25608
25609         Tests: http/tests/security/xssAuditor/iframe-injection-allowed-2.html
25610                http/tests/security/xssAuditor/iframe-injection-allowed-3.html
25611                http/tests/security/xssAuditor/iframe-injection-allowed.html
25612
25613         * html/parser/XSSAuditor.cpp:
25614         (WebCore::XSSAuditor::isLikelySafeResource):
25615
25616 2012-11-01  Tien-Ren Chen  <trchen@chromium.org>
25617
25618         Fix assertion failure in RenderGeometryMap::absoluteRect when frame scale != 1.0
25619         https://bugs.webkit.org/show_bug.cgi?id=100912
25620
25621         Reviewed by Simon Fraser.
25622
25623         Frame scale will add transformation to RenderView, so fixed position doesn't
25624         get propagated up to the viewport by RenderGeometryMap. This is handled
25625         correctly in RenderView::mapLocalToContainer, causing the assertion to fail.
25626         This patch corrects RenderGeometryMap::mapToAbsolute to handle the RenderView
25627         transformation case.
25628
25629         A layout test is added to catch this issue. The test will crash debug build
25630         without this patch.
25631
25632         Test: compositing/geometry/fixed-position-composited-page-scale-scroll.html
25633
25634         * rendering/RenderGeometryMap.cpp:
25635         (WebCore::RenderGeometryMap::mapToAbsolute):
25636
25637 2012-11-01  Adam Barth  <abarth@webkit.org>
25638
25639         [V8] Generalize NodeWrapperMap to be able to handle other sorts of keys
25640         https://bugs.webkit.org/show_bug.cgi?id=100973
25641
25642         Reviewed by Kentaro Hara.
25643
25644         This is the first step towards using intrusive DOM wrapper maps more
25645         widely in WebCore (see
25646         http://lists.webkit.org/pipermail/webkit-dev/2012-November/022686.html
25647         for more context).
25648
25649         * bindings/v8/DOMDataStore.cpp:
25650         (WebCore::DOMDataStore::DOMDataStore):
25651         * bindings/v8/IntrusiveDOMWrapperMap.h:
25652         (WebCore):
25653         (WebCore::IntrusiveDOMWrapperMap::weakCallback):
25654
25655 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25656
25657         [CSS Shaders] CustomFilterOperation should be converted to ValidatedCustomFilterOperation before using it
25658         https://bugs.webkit.org/show_bug.cgi?id=100533
25659
25660         Reviewed by Dean Jackson.
25661
25662         Added the code that converts a CustomFilterOperation to a ValidatedCustomFilterOperation.
25663         Both the software path and the composited one will use this operation instead. There will be
25664         no need to check the shader in platform code anymore.
25665
25666         No new tests, already covered by existing custom filter tests.
25667
25668         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp:
25669         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
25670         * platform/graphics/filters/ValidatedCustomFilterOperation.h:
25671         (WebCore):
25672         (WebCore::ValidatedCustomFilterOperation::create):
25673         (ValidatedCustomFilterOperation):
25674         (WebCore::ValidatedCustomFilterOperation::validatedProgram):
25675         (WebCore::ValidatedCustomFilterOperation::parameters):
25676         (WebCore::ValidatedCustomFilterOperation::meshRows):
25677         (WebCore::ValidatedCustomFilterOperation::meshColumns):
25678         (WebCore::ValidatedCustomFilterOperation::meshType):
25679         (WebCore::ValidatedCustomFilterOperation::operator==):
25680         * rendering/FilterEffectRenderer.cpp:
25681         (WebCore::createCustomFilterEffect):
25682         (WebCore::FilterEffectRenderer::build):
25683         * rendering/RenderLayer.cpp:
25684         (WebCore::RenderLayer::ensureBacking):
25685         (WebCore::RenderLayer::clearBacking):
25686         (WebCore::RenderLayer::styleChanged): updateOrRemoveFilterClients needs to be called before the composited
25687         layer is updated. Otherwise the composited layer will never see a loaded filter in the first call.
25688         (WebCore):
25689         (WebCore::RenderLayer::isCSSCustomFilterEnabled):
25690         (WebCore::RenderLayer::computeFilterOperations):
25691         (WebCore::RenderLayer::updateOrRemoveFilterClients): Split updateOrRemoveFilterEffect into 2 functions.
25692         This one is supposed to add the clients needed to load network resources.
25693         (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Figures out if a software fallback is needed 
25694         and creates a FilterEffectRenderer.
25695         * rendering/RenderLayer.h:
25696         (RenderLayer):
25697
25698 2012-11-01  Max Vujovic  <mvujovic@adobe.com>
25699
25700         [CSS Shaders] Get rid of internal tex coord attribute
25701         https://bugs.webkit.org/show_bug.cgi?id=94358
25702
25703         Reviewed by Dean Jackson.
25704
25705         Remove the internal css_a_texCoord attribute that WebKit added to shaders in order to
25706         sample the element texture by texture coordinate.
25707
25708         Now, the WebKit-added sampling code can leverage a_texCoord if the author defined it, or
25709         WebKit can add its own a_texCoord definition to the author's shader.
25710
25711         Note that vertex attributes are read-only in GLSL. Also, note that we already reject the
25712         shader if the author did not define a_texCoord with the correct type. Essentially, if
25713         a_texCoord exists in the author's validated shader, we are guaranteed that it's the correct
25714         type and that its value is unmodified.
25715
25716         Test: css3/filters/custom/custom-filter-a-tex-coord-optional.html
25717
25718         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
25719         (WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
25720             Remove the references to m_internalTexCoordAttribLocation.
25721         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations): Ditto.
25722         * platform/graphics/filters/CustomFilterCompiledProgram.h: Ditto.
25723         * platform/graphics/filters/CustomFilterRenderer.cpp:
25724         (WebCore::CustomFilterRenderer::bindProgramAndBuffers): Ditto.
25725         (WebCore::CustomFilterRenderer::unbindVertexAttributes): Ditto.
25726         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
25727         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
25728             Pass the set of symbols found in the author's shaders to the rewriteMixVertexShader
25729             method.
25730         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader):
25731             If the author didn't define a_texCoord, add it to the end of the author's vertex 
25732             shader, but before the shader's new main function. As before, the new main function
25733             will pass the texture coordinate to the fragment shader via the css_v_texCoord varying.
25734         * platform/graphics/filters/CustomFilterValidatedProgram.h:
25735         (WebCore):
25736             Add a forward declaration for ANGLEShaderSymbol.
25737         (CustomFilterValidatedProgram):
25738             Update the method prototype for rewriteMixVertexShader.
25739
25740 2012-11-01  Chris Rogers  <crogers@google.com>
25741
25742         Ensure that AudioNode deletion is synchronized with a stable state of the rendering graph
25743         https://bugs.webkit.org/show_bug.cgi?id=100994
25744
25745         Reviewed by Kenneth Russell.
25746
25747         In some rare cases it has been observed that nodes are getting deleted in the main thread
25748         during an audio rendering quantum where the dirty inputs and outputs have not yet been cleaned
25749         via calls to handleDirtyAudioSummingJunctions() and handleDirtyAudioNodeOutputs().
25750         This was possible because nodes marked for deletion with markForDeletion() could be picked
25751         up in a subsequent call to deleteMarkedNodes() before the render quantum has finished and
25752         handlePostRenderTasks() has had a chance to reconcile these marked nodes and clean the dirty state.
25753         The solution is to manage the marked nodes in a separate vector which only gets copied to another
25754         vector truly eligible for deletion which is synchronized in handlePostRenderTasks().
25755
25756         * Modules/webaudio/AudioContext.cpp:
25757         (WebCore::AudioContext::markForDeletion):
25758         (WebCore::AudioContext::scheduleNodeDeletion):
25759         (WebCore::AudioContext::deleteMarkedNodes):
25760         * Modules/webaudio/AudioContext.h:
25761         (AudioContext):
25762
25763 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
25764
25765         Build fix after r133224 as suggested by Enrica.
25766         Confirmed the test failures go away on Chromium Mac locally.
25767
25768         * page/EventHandler.cpp:
25769         (WebCore::EventHandler::updateSelectionForMouseDrag):
25770
25771 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25772
25773         Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
25774
25775         Rubber-stamped by Joe Pecoraro.
25776
25777         All CFNetwork based platforms have this now, but not all use it at the moment.
25778
25779         * loader/ResourceLoader.h:
25780         * loader/SubresourceLoader.h:
25781         * loader/cf/SubresourceLoaderCF.cpp:
25782         * loader/mac/ResourceLoaderMac.mm:
25783         * platform/SharedBuffer.cpp:
25784         (WebCore::SharedBuffer::clear):
25785         (WebCore::SharedBuffer::buffer):
25786         (WebCore::SharedBuffer::getSomeData):
25787         * platform/SharedBuffer.h:
25788         * platform/cf/SharedBufferCF.cpp:
25789         * platform/network/ResourceHandle.h:
25790         * platform/network/ResourceHandleClient.h:
25791         (ResourceHandleClient):
25792         * platform/network/cf/ResourceHandleCFNet.cpp:
25793         (WebCore::willCacheResponse):
25794         (WebCore::ResourceHandle::createCFURLConnection):
25795         * platform/network/mac/ResourceHandleMac.mm:
25796
25797 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
25798
25799         Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
25800         https://bugs.webkit.org/show_bug.cgi?id=100979
25801
25802         Reviewed by Joseph Pecoraro.
25803
25804         * loader/ResourceBuffer.cpp: (WebCore::ResourceBuffer::append):
25805         * loader/ResourceBuffer.h:
25806         Added a version of append() that takes CFDataRef, passing it directly to SharedBuffer.
25807
25808         * loader/mac/ResourceLoaderMac.mm: (WebCore::ResourceLoader::didReceiveDataArray):
25809         InspectorInstrumentation now takes a length. Unfortunately, we don't have encodedLength
25810         here, meaning that the results will likely be incorrect.
25811
25812         * platform/network/cf/ResourceHandleCFNet.cpp:
25813         (WebCore::willCacheResponse): Removed a version that needlessly used deprecated API.
25814         (WebCore::ResourceHandle::createCFURLConnection): This code assumed that
25815         HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) and USE(PROTECTION_SPACE_AUTH_CALLBACK) always
25816         come together. Changed to check for these separately.
25817
25818 2012-11-01  Rob Buis  <rbuis@rim.com>
25819
25820         [BlackBerry] Add more form validation strings
25821         https://bugs.webkit.org/show_bug.cgi?id=100978
25822
25823         Reviewed by Yong Li.
25824
25825         PR 210072
25826
25827         Implement these two methods properly.
25828
25829         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
25830         (WebCore::validationMessageRangeUnderflowText):
25831         (WebCore::validationMessageRangeOverflowText):
25832
25833 2012-11-01  Alexandru Chiculita  <achicu@adobe.com>
25834
25835         [CSS Shaders] Move MeshBoxType out of CustomFilterOperation
25836         https://bugs.webkit.org/show_bug.cgi?id=100782
25837
25838         Reviewed by Dean Jackson.
25839
25840         Moved CustomFilter::MeshBoxType enum to the CustomFilterConstants.h file and renamed it to CustomFilterMeshBoxType. 
25841         This way we can reuse it without including the CustomFilterOperation file.
25842
25843         No new tests, just refactoring code.
25844
25845         * css/CSSPrimitiveValueMappings.h:
25846         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
25847         (WebCore::CSSPrimitiveValue::operator CustomFilterMeshBoxType):
25848         * css/StyleResolver.cpp:
25849         (WebCore::StyleResolver::createCustomFilterOperation):
25850         * platform/graphics/filters/CustomFilterArrayParameter.h: Adding AnimationUtilities.h for WebCore::blend, looks like
25851         CustomFilterOperation already included AnimationsUtilities.h indirectly.
25852         * platform/graphics/filters/CustomFilterConstants.h: Added CustomFilterMeshBoxType.
25853         * platform/graphics/filters/CustomFilterNumberParameter.h:
25854         * platform/graphics/filters/CustomFilterOperation.cpp:
25855         (WebCore::CustomFilterOperation::CustomFilterOperation):
25856         * platform/graphics/filters/CustomFilterOperation.h:
25857         (WebCore::CustomFilterOperation::create):
25858         (WebCore::CustomFilterOperation::meshBoxType):
25859         (CustomFilterOperation):
25860         * platform/graphics/filters/CustomFilterRenderer.cpp:
25861         (WebCore::CustomFilterRenderer::create):
25862         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
25863         * platform/graphics/filters/CustomFilterRenderer.h: Also removed the need to include CustomFilterOperation.h. Some other
25864         headers were needed to replace the files that were automatically incldued because of that file.
25865         (WebCore):
25866         (CustomFilterRenderer):
25867         * platform/graphics/filters/FECustomFilter.cpp:
25868         (WebCore::FECustomFilter::FECustomFilter):
25869         (WebCore::FECustomFilter::create):
25870         * platform/graphics/filters/FECustomFilter.h:
25871         (FECustomFilter):
25872
25873 2012-11-01  Enrica Casucci  <enrica@apple.com>
25874
25875         Part2 of: Extend -webkit-user-select with new value "all"
25876         <rdar://problem/10161404>
25877         https://bugs.webkit.org/show_bug.cgi?id=91912
25878
25879         Reviewed by Ryosuke Niwa.
25880
25881         The new value "all" for -webkit-user-select property gives content none-or-all selection option.
25882         The patch was originally prepared by Alice Cheng but the approach has been changed.
25883         The idea is to treat these elements like non editable, meaning that we should skip over them entirely
25884         when moving the cursor and a deletion should delete the element and all its descentants at once.
25885         The key change is in Node::rendererIsEditable where we now return false if the element style is
25886         userSelect: all. The other change is in the way we create the selection on mouse click and dragging
25887         over the element. In both cases we force the selection to extend over the entire element with
25888         the user-select: all attribute.
25889         This is currently enabled only for the Mac port.
25890
25891         Test: editing/selection/user-select-all-selection.html
25892
25893         * dom/Node.cpp: Added a parameter to isContentEditable to behave differently
25894         when called from JavaScript. Internally isContentEditable returns false on
25895         nodes with user-select: all style.
25896         (WebCore::Node::isContentEditable):
25897         (WebCore::Node::isContentRichlyEditable):
25898         (WebCore::Node::rendererIsEditable):
25899         (WebCore::Node::shouldUseInputMethod):
25900         (WebCore::Node::willRespondToMouseClickEvents):
25901         * dom/Node.h:
25902         (WebCore::Node::rendererIsEditable):
25903         (WebCore::Node::rendererIsRichlyEditable):
25904         * dom/Position.cpp:
25905         (WebCore::Position::nodeIsUserSelectAll): Added.
25906         (WebCore::Position::rootUserSelectAllForNode): Added.
25907         * dom/Position.h: Added static functions described above.
25908         * editing/ApplyStyleCommand.cpp:
25909         (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Added parameter to
25910         isContentEditable() call.
25911         (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement): Added parameter to
25912         isContentEditable() call.
25913         * editing/DeleteFromTextNodeCommand.cpp:
25914         (WebCore::DeleteFromTextNodeCommand::doApply): Added parameter to
25915         isContentEditable() call.
25916         * editing/FrameSelection.cpp:
25917         (WebCore::adjustForwardPositionForUserSelectAll): New helper function.
25918         (WebCore::adjustBackwardPositionForUserSelectAll): New helper function.
25919         (WebCore::FrameSelection::modifyExtendingRight):
25920         (WebCore::FrameSelection::modifyExtendingForward):
25921         (WebCore::FrameSelection::modifyExtendingLeft):
25922         (WebCore::FrameSelection::modifyExtendingBackward):
25923         (WebCore::FrameSelection::modify):
25924         (WebCore::CaretBase::invalidateCaretRect): Added parameter to
25925         isContentEditable() call.
25926         * editing/InsertNodeBeforeCommand.cpp:
25927         (WebCore::InsertNodeBeforeCommand::doApply): Ditto.
25928         (WebCore::InsertNodeBeforeCommand::doUnapply): Ditto.
25929         * editing/RemoveNodeCommand.cpp:
25930         (WebCore::RemoveNodeCommand::doApply): Ditto.
25931         * editing/visible_units.cpp:
25932         (WebCore::startOfParagraph): We should not consider a paragraph break and element
25933         with user-select: all style, like we do at the border of editability.
25934         (WebCore::endOfParagraph): Ditto.
25935         * page/EventHandler.cpp:
25936         (WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart): Create a selection
25937         around the element whose style is user-select: all.
25938         (WebCore::EventHandler::updateSelectionForMouseDrag): Ditto.
25939         * rendering/RootInlineBox.cpp:
25940         (WebCore::RootInlineBox::selectionState): Fixed a bug uncovered during this work.
25941         If the selection starts in one of the leaf boxes and after we encounter one with SelectionNone,
25942         we should return the selection state as SelectionBoth, assuming we went past the end selection.
25943         This avoids doing an incorrect gap filling for the selection highlighting.
25944
25945 2012-11-01  Alec Flett  <alecflett@chromium.org>
25946
25947         IndexedDB: Fix Windows build by re-adding a #include
25948         https://bugs.webkit.org/show_bug.cgi?id=100986
25949
25950         Reviewed by Stephen White.
25951
25952         Fix #include that broke windows.
25953
25954         * Modules/indexeddb/IDBCallbacks.h:
25955
25956 2012-11-01  David Barton  <dbarton@mathscribe.com>
25957
25958         REGRESSION (r128837): mathml/presentation/subsup.xhtml became flaky
25959         https://bugs.webkit.org/show_bug.cgi?id=97390
25960
25961         Reviewed by Ojan Vafai.
25962
25963         In a RenderMathMLSubSup, we need to set the base's wrapper's style so that baseHeight
25964         in layout() will be the base's true height, without any flexbox stretching.
25965
25966         Tested by existing tests.
25967
25968         * rendering/mathml/RenderMathMLSubSup.cpp:
25969         (WebCore::RenderMathMLSubSup::fixAnonymousStyles):
25970         (WebCore::RenderMathMLSubSup::addChild):
25971         (WebCore::RenderMathMLSubSup::styleDidChange):
25972         * rendering/mathml/RenderMathMLSubSup.h:
25973         (RenderMathMLSubSup):
25974
25975 2012-11-01  Antti Koivisto  <antti@apple.com>
25976
25977         REGRESSION (r132941): attribute modification 10% performance regression
25978         https://bugs.webkit.org/show_bug.cgi?id=100873
25979
25980         Reviewed by Ojan Vafai.
25981
25982         Don't do the class change finding by mutating SpaceSplitString. It is slow. Instead use a bit vector
25983         to mark the unchanged classes
25984
25985         * css/StyleResolver.cpp:
25986         (WebCore):
25987         * css/StyleResolver.h:
25988         (WebCore::StyleResolver::hasSelectorForAttribute):
25989         (WebCore):
25990         (WebCore::StyleResolver::hasSelectorForClass):
25991         (WebCore::StyleResolver::hasSelectorForId):
25992         
25993             Inlined these and moved value validity testing to clients.
25994
25995         * dom/Element.cpp:
25996         (WebCore::checkNeedsStyleInvalidationForIdChange):
25997         (WebCore):
25998         (WebCore::Element::attributeChanged):
25999     
26000             Clean up id testing too.
26001
26002         (WebCore::checkNeedsStyleInvalidationForClassChange):
26003         
26004             Use bit vector for marking seen values. Avoids allocations and reffing.
26005
26006         (WebCore::Element::classAttributeChanged):
26007         
26008             Don't test if style is already invalid.
26009
26010 2012-11-01  Ryosuke Niwa  <rniwa@webkit.org>
26011
26012         [Mac] Crash in Range::editingStartPosition
26013         https://bugs.webkit.org/show_bug.cgi?id=100972
26014
26015         Reviewed by Enrica Casucci.
26016
26017         Add a missing null pointer check. toNormalizedRange() can return null here, in which case the call to
26018         pastLastNode() will crash.
26019
26020         No new tests since determining the exact condition under which we go through the said code path and
26021         toNormalRange returns null is hard.
26022
26023         * editing/mac/EditorMac.mm:
26024         (WebCore::Editor::fontForSelection):
26025
26026 2012-11-01  Beth Dakin  <bdakin@apple.com>
26027
26028         https://bugs.webkit.org/show_bug.cgi?id=100917
26029         There should be a way to dump the scrolling tree from the layout tests
26030
26031         Reviewed by Simon Fraser.
26032
26033         New Internals call to dump the scrolling state tree as text. Calls through to the 
26034         ScrollingCoordinator.
26035         * testing/Internals.cpp:
26036         (WebCore::Internals::scrollingStateTreeAsText):
26037         (WebCore):
26038         * testing/Internals.h:
26039         * testing/Internals.idl:
26040         * WebCore.exp.in:
26041         * page/Page.cpp:
26042         (WebCore::Page::scrollingStateTreeAsText):
26043         (WebCore):
26044         * page/Page.h:
26045         (Page):
26046
26047         ScrollingCoordinator tells the rootStateNode to dump the tree as text.
26048         * page/scrolling/mac/ScrollingCoordinatorMac.h:
26049         (ScrollingCoordinatorMac):
26050         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
26051         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeAsText):
26052         (WebCore):
26053         * page/scrolling/ScrollingCoordinator.cpp:
26054         (WebCore::ScrollingCoordinator::scrollingStateTreeAsText):
26055         (WebCore):
26056         * page/scrolling/ScrollingCoordinator.h:
26057         (ScrollingCoordinator):
26058
26059         dumpNode() dumps generic stuff for each node, and dumpProperties will dump the 
26060         properties that are specific to different types of nodes.
26061         * page/scrolling/ScrollingStateNode.cpp:
26062         (WebCore::ScrollingStateNode::writeIndent):
26063         (WebCore):
26064         (WebCore::ScrollingStateNode::dumpNode):
26065         (WebCore::ScrollingStateNode::scrollingStateTreeAsText):
26066         * page/scrolling/ScrollingStateNode.h:
26067         (WebCore):
26068         (ScrollingStateNode):
26069         * page/scrolling/ScrollingStateScrollingNode.cpp:
26070         (WebCore::ScrollingStateScrollingNode::dumpProperties):
26071         (WebCore):
26072         * page/scrolling/ScrollingStateScrollingNode.h:
26073         (ScrollingStateScrollingNode):
26074
26075 2012-11-01  Kenneth Russell  <kbr@google.com>
26076
26077         Add RGB to supported destination formats of ImageBuffer::copyToPlatformTexture
26078         https://bugs.webkit.org/show_bug.cgi?id=100971
26079
26080         Reviewed by Stephen White.
26081
26082         The ImageBuffer::copyToPlatformTexture restriction added in
26083         r132965 was too restrictive. Allow RGB textures to prevent
26084         performance regressions.
26085
26086         * html/canvas/WebGLRenderingContext.cpp:
26087         (WebCore):
26088         (WebCore::WebGLRenderingContext::texImage2D):
26089         * platform/graphics/ImageBuffer.h:
26090         (ImageBuffer):
26091
26092 2012-11-01  Michael Matovsky  <mmatovsky@rim.com>
26093
26094         [BlackBerry] Web page view state should be preserved for pages loaded from page cache
26095         https://bugs.webkit.org/show_bug.cgi?id=100694
26096         Internal PR: 220488
26097
26098         Internally reviewed by Lianghui Chen, Joe Mason
26099         Reviewed by Rob Buis.
26100
26101         The web page view specific metadata should be preserved for web pages loaded from page cache (by using back/forward).
26102         This requires web page view state to be saved in and restored from the corresponding page cache history item.
26103
26104         No new tests for platform specific internal change.
26105
26106         * history/blackberry/HistoryItemViewState.h:
26107         (HistoryItemViewState):
26108
26109 2012-11-01  Alec Flett  <alecflett@chromium.org>
26110
26111         IndexedDB: add methods to support id-based backend APIs
26112         https://bugs.webkit.org/show_bug.cgi?id=100425
26113
26114         Reviewed by Tony Chang.
26115
26116         First half of refactor involves adding a number of methods that
26117         are int64_t-based rather than String-based. As a part of this, the
26118         IDB*Metadata structs and the backend objectStore/index maps all
26119         use int64_t as keys, rather than String.
26120
26121         In addition, there were a number of cleanups that came out of the
26122         refactor:
26123
26124         - The list of object stores active in a transaction is now
26125           maintained by the frontend IDBTransaction rather than the backend
26126           IDBTransactionBackendImpl. This also had a simplifying rippling
26127           effect through other call signatures.
26128
26129         - I was able to remove an apparently old FIXME from
26130           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
26131
26132         - IDBObjectStoreBackendImpl's IndexWriter class got a little
26133           simpler since the id is now easily available in the
26134           IDBIndexMetadata.
26135
26136         - A number of methods got simpler in their int64_t versions,
26137           specifically dropping a number of ExceptionCodes.
26138
26139         There is also some glue code
26140         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
26141         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
26142
26143         No new tests, no new functionality as this is just a refactor.
26144
26145         * Modules/indexeddb/IDBDatabase.cpp:
26146         (WebCore::IDBDatabase::objectStoreNames):
26147         (WebCore::IDBDatabase::createObjectStore):
26148         (WebCore::IDBDatabase::deleteObjectStore):
26149         (WebCore::IDBDatabase::transaction):
26150         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
26151         (WebCore::IDBDatabaseBackendImpl::metadata):
26152         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
26153         (WebCore::IDBDatabaseBackendImpl::objectStore):
26154         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
26155         (WebCore):
26156         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26157         (WebCore::IDBDatabaseBackendImpl::transaction):
26158         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
26159         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
26160         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
26161         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
26162         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
26163         (IDBDatabaseBackendImpl):
26164         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
26165         (IDBDatabaseBackendInterface):
26166         * Modules/indexeddb/IDBIndex.h:
26167         (WebCore::IDBIndex::id):
26168         (WebCore::IDBIndex::openKeyCursor):
26169         * Modules/indexeddb/IDBIndexBackendInterface.h:
26170         * Modules/indexeddb/IDBMetadata.h:
26171         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
26172         (IDBIndexMetadata):
26173         (IDBObjectStoreMetadata):
26174         (WebCore::IDBObjectStoreMetadata::containsIndex):
26175         (IDBDatabaseMetadata):
26176         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
26177         (WebCore::IDBDatabaseMetadata::containsObjectStore):
26178         * Modules/indexeddb/IDBObjectStore.cpp:
26179         (WebCore::IDBObjectStore::indexNames):
26180         (WebCore::IDBObjectStore::put):
26181         (WebCore::IDBObjectStore::createIndex):
26182         (WebCore::IDBObjectStore::index):
26183         (WebCore::IDBObjectStore::deleteIndex):
26184         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
26185         (WebCore::IDBObjectStoreBackendImpl::put):
26186         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
26187         (WebCore):
26188         (WebCore::makeIndexWriters):
26189         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
26190         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
26191         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
26192         (WebCore::IDBObjectStoreBackendImpl::putInternal):
26193         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
26194         (WebCore::IDBObjectStoreBackendImpl::createIndex):
26195         (WebCore::IDBObjectStoreBackendImpl::index):
26196         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
26197         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
26198         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
26199         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
26200         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
26201         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
26202         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
26203         (IDBObjectStoreBackendImpl):
26204         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
26205         * Modules/indexeddb/IDBOpenDBRequest.cpp:
26206         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
26207         * Modules/indexeddb/IDBRequest.cpp:
26208         (WebCore::IDBRequest::onSuccess):
26209         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
26210         * Modules/indexeddb/IDBTransaction.cpp:
26211         (WebCore::IDBTransaction::create):
26212         (WebCore::IDBTransaction::IDBTransaction):
26213         (WebCore::IDBTransaction::objectStore):
26214         * Modules/indexeddb/IDBTransaction.h:
26215         (IDBTransaction):
26216         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
26217         (WebCore::IDBTransactionBackendImpl::create):
26218         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
26219         (WebCore::IDBTransactionBackendImpl::objectStore):
26220         (WebCore):
26221         (WebCore::IDBTransactionBackendImpl::scheduleTask):
26222         * Modules/indexeddb/IDBTransactionBackendImpl.h:
26223         (IDBTransactionBackendImpl):
26224         * Modules/indexeddb/IDBTransactionBackendInterface.h:
26225
26226 2012-11-01  Adam Barth  <abarth@webkit.org>
26227
26228         [V8] The DOMWrapperVisitor abstraction is no longer needed
26229         https://bugs.webkit.org/show_bug.cgi?id=100965
26230
26231         Reviewed by Kentaro Hara.
26232
26233         This patch removes the DOMWrapperVisitor interface because it is no
26234         longer needed. As a consequence, DOMWrapperMaps no longer need to
26235         support enumeration, and we can move more DOM objects to use the faster
26236         intrusive wrappers.
26237
26238         There was one remaining user of DOMWrapperVisitor in the
26239         ScriptProfiler, which I've moved over to enumerating objects directly
26240         from V8, similar to a function above it in the same file.
26241
26242         * bindings/v8/DOMWrapperMap.h:
26243         (WebCore):
26244         (DOMWrapperMap):
26245         * bindings/v8/IntrusiveDOMWrapperMap.h:
26246         * bindings/v8/ScriptProfiler.cpp:
26247         (WebCore::ScriptProfiler::visitNodeWrappers):
26248         (WebCore::ScriptProfiler::visitExternalArrays):
26249
26250 2012-11-01  Mike West  <mkwst@chromium.org>
26251
26252         CSP 1.0: Warn when old-style directives encountered.
26253         https://bugs.webkit.org/show_bug.cgi?id=100883
26254
26255         Reviewed by Adam Barth.
26256
26257         In Mozilla's pre-W3C-spec implementation, a few directives are
26258         implemented that were either renamed, reworked, or removed from CSP 1.0.
26259         This patch adds special warning messages for three of those directives
26260         to set developer expectations correctly.
26261
26262         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-deprecated.html
26263
26264         * page/ContentSecurityPolicy.cpp:
26265         (WebCore::CSPDirectiveList::parseDirective):
26266         (WebCore::CSPDirectiveList::addDirective):
26267         (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
26268         * page/ContentSecurityPolicy.h:
26269             Rename 'reportUnrecognizedDirectives' to
26270             'reportUnsupportedDirectives', and teach it to give more descriptive
26271             error messages when encountering 'allow', 'options', and
26272             'policy-uri'.
26273
26274 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26275
26276         Web Inspector: Update CodeMirror to v3
26277         https://bugs.webkit.org/show_bug.cgi?id=99319
26278
26279         Reviewed by Vsevolod Vlasov.
26280
26281         Updated to ToT v3.
26282
26283         * inspector/front-end/CodeMirrorTextEditor.js:
26284         (WebInspector.CodeMirrorTextEditor):
26285         (WebInspector.CodeMirrorTextEditor.prototype._gutterClick):
26286         (WebInspector.CodeMirrorTextEditor.prototype.addBreakpoint):
26287         (WebInspector.CodeMirrorTextEditor.prototype.removeBreakpoint):
26288         (WebInspector.CodeMirrorTextEditor.prototype.setExecutionLine):
26289         (WebInspector.CodeMirrorTextEditor.prototype.clearExecutionLine):
26290         (WebInspector.CodeMirrorTextEditor.prototype.highlightLine):
26291         (WebInspector.CodeMirrorTextEditor.prototype.clearLineHighlight):
26292         (WebInspector.CodeMirrorTextEditor.prototype._change):
26293         * inspector/front-end/cm/cmdevtools.css:
26294         (.CodeMirror):
26295         (.CodeMirror-linenumber):
26296         (.cm-breakpoint):
26297         * inspector/front-end/cm/codemirror.css:
26298         (.CodeMirror):
26299         (.CodeMirror-scroll):
26300         (.CodeMirror-lines):
26301         (.CodeMirror pre):
26302         (.CodeMirror-scrollbar-filler):
26303         (.CodeMirror-gutters):
26304         (.CodeMirror-linenumbers):
26305         (.CodeMirror-linenumber):
26306         (.CodeMirror pre.CodeMirror-cursor):
26307         (.CodeMirror pre.CodeMirror-secondarycursor):
26308         (.cm-keymap-fat-cursor pre.CodeMirror-cursor):
26309         (.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id)):
26310         (.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite):
26311         (.cm-s-default .cm-keyword):
26312         (.cm-s-default .cm-atom):
26313         (.cm-s-default .cm-number):
26314         (.cm-s-default .cm-def):
26315         (.cm-s-default .cm-variable):
26316         (.cm-s-default .cm-variable-2):
26317         (.cm-s-default .cm-variable-3):
26318         (.cm-s-default .cm-property):
26319         (.cm-s-default .cm-operator):
26320         (.cm-s-default .cm-comment):
26321         (.cm-s-default .cm-string):
26322         (.cm-s-default .cm-string-2):
26323         (.cm-s-default .cm-meta):
26324         (.cm-s-default .cm-error):
26325         (.cm-s-default .cm-qualifier):
26326         (.cm-s-default .cm-builtin):
26327         (.cm-s-default .cm-bracket):
26328         (.cm-s-default .cm-tag):
26329         (.cm-s-default .cm-attribute):
26330         (.cm-s-default .cm-header):
26331         (.cm-s-default .cm-quote):
26332         (.cm-s-default .cm-hr):
26333         (.cm-s-default .cm-link):
26334         (.cm-header, .cm-strong):
26335         (.cm-em):
26336         (.cm-emstrong):
26337         (.cm-link):
26338         (.cm-invalidchar):
26339         (div.CodeMirror span.CodeMirror-matchingbracket):
26340         (div.CodeMirror span.CodeMirror-nonmatchingbracket):
26341         (.CodeMirror-sizer):
26342         (.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler):
26343         (.CodeMirror-vscrollbar):
26344         (.CodeMirror-hscrollbar):
26345         (.CodeMirror-gutter):
26346         (.CodeMirror-gutter-elt):
26347         (.CodeMirror-linebackground):
26348         (.CodeMirror-linewidget):
26349         (.CodeMirror-measure):
26350         (.CodeMirror-measure pre):
26351         (.CodeMirror-selected):
26352         (.CodeMirror-focused .CodeMirror-selected):
26353         (.CodeMirror span):
26354         * inspector/front-end/cm/codemirror.js:
26355         (window.CodeMirror.):
26356         (window.CodeMirror):
26357         * inspector/front-end/utilities.js:
26358
26359 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26360
26361         [BlackBerry] Update BB10 form theme.
26362         https://bugs.webkit.org/show_bug.cgi?id=100760
26363
26364         Reviewed by Rob Buis.
26365
26366         RIM PR 235194.
26367
26368         Check img pointer is null, if so, do early return.
26369
26370         * platform/blackberry/RenderThemeBlackBerry.cpp:
26371         (WebCore::drawControl):
26372         (WebCore::drawThreeSlice):
26373         (WebCore::drawNineSlice):
26374
26375 2012-11-01  Adam Barth  <abarth@webkit.org>
26376
26377         [V8] The V8DOMMap visitors are no longer needed
26378         https://bugs.webkit.org/show_bug.cgi?id=100963
26379
26380         Reviewed by Kentaro Hara.
26381
26382         This patch inlines visitAllDOMNodes into its one caller (and removes
26383         one layer of visitor adaptor abstraction).
26384
26385         * bindings/v8/ScriptProfiler.cpp:
26386         (WebCore::ScriptProfiler::visitNodeWrappers):
26387         * bindings/v8/V8DOMMap.cpp:
26388         * bindings/v8/V8DOMMap.h:
26389         (WebCore):
26390
26391 2012-11-01  Tiancheng Jiang  <tijiang@rim.com>
26392
26393         [BlackBerry] Update BB10 form theme.
26394         https://bugs.webkit.org/show_bug.cgi?id=100760
26395
26396         Reviewed by Rob Buis.
26397
26398         RIM PR 235194.
26399
26400         Check img pointer is null, if so, do early return.
26401
26402         * platform/blackberry/RenderThemeBlackBerry.cpp:
26403         (WebCore::drawControl):
26404         (WebCore::drawThreeSlice):
26405         (WebCore::drawNineSlice):
26406
26407 2012-11-01  Adam Barth  <abarth@webkit.org>
26408
26409         Unreviewed. Build fix.
26410
26411         * bindings/v8/V8GCController.cpp:
26412
26413 2012-11-01  Christophe Dumez  <christophe.dumez@intel.com>
26414
26415         [EFL][WK2] Add Ewk_Auth_Request API
26416         https://bugs.webkit.org/show_bug.cgi?id=100858
26417
26418         Reviewed by Kenneth Rohde Christiansen.
26419
26420         Provide an AuthenticationClient for EFL port in WebCore so
26421         that we can handle authentication similarly to other ports
26422         of WebKit.
26423
26424         No new tests, no behavior change for layout tests.
26425
26426         * PlatformEfl.cmake: Add AuthenticationChallengeSoup.cpp to CMake.
26427         * loader/ResourceLoader.cpp:
26428         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
26429         * platform/network/ResourceHandle.h:
26430         (ResourceHandle): Have ResourceHandle subclass AuthenticationClient like
26431         most of the other ports.
26432         * platform/network/soup/AuthenticationChallengeSoup.cpp: Fix initialization
26433         of previousFailureCount member. It should be 1 if we are retrying
26434         authentication and 0 otherwise, not the opposite.
26435         (WebCore::AuthenticationChallenge::AuthenticationChallenge):
26436         * platform/network/soup/ResourceHandleSoup.cpp: Provide implementation for EFL
26437         port of AuthenticationClient methods.
26438         (WebCore::WebCoreSynchronousLoader::didReceiveAuthenticationChallenge):
26439         (WebCoreSynchronousLoader):
26440         (WebCore):
26441         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
26442         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
26443         (WebCore::ResourceHandle::receivedCredential):
26444         (WebCore::ResourceHandle::receivedCancellation):
26445         (WebCore::authenticateCallback):
26446         (WebCore::ResourceHandle::defaultSession):
26447
26448 2012-10-24  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
26449
26450         WebIconDatabase: Properly clean up on destruction
26451         https://bugs.webkit.org/show_bug.cgi?id=100237
26452
26453         Reviewed by Brady Eidson.
26454
26455         It's now possible that the IconDatabase gets destroyed since WebKit2
26456         isn't using it as a singleton.
26457
26458         Check that the database was properly closed rather than asserting that
26459         it won't get deleted.
26460
26461         * loader/icon/IconDatabase.cpp:
26462         (WebCore::IconDatabase::~IconDatabase):
26463
26464 2012-11-01  Alexei Filippov  <alph@chromium.org>
26465
26466         Web Inspector: make component subitems use parent color in native memory snapshots.
26467         https://bugs.webkit.org/show_bug.cgi?id=100876
26468
26469         A component subitems use the color of the component itself if the color
26470         is not explicitly specified for the subitem.
26471
26472         Reviewed by Yury Semikhatsky.
26473
26474         * inspector/front-end/NativeMemorySnapshotView.js:
26475         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
26476         (WebInspector.MemoryBlockViewProperties._initialize):
26477         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
26478
26479 2012-11-01  Emil A Eklund  <eae@chromium.org>
26480
26481         [subpixel] Change intrinsicSize to LayoutUnit
26482         https://bugs.webkit.org/show_bug.cgi?id=99104
26483
26484         Reviewed by Levi Weintraub.
26485
26486         Change RenderReplaced and intrinsicSize to LayoutUnit to avoid
26487         rounding problems when zooming/scaling. Also change imageSize to
26488         LayoutUnit as it can return a scaled size.
26489
26490         Test: fast/sub-pixel/tiled-canvas-elements.html
26491
26492         * html/ImageDocument.cpp:
26493         (WebCore::ImageDocumentParser::finish):
26494         * loader/cache/CachedImage.cpp:
26495         (WebCore::CachedImage::imageSizeForRenderer):
26496         * loader/cache/CachedImage.h:
26497         (CachedImage):
26498         * platform/graphics/FractionalLayoutSize.h:
26499         (FractionalLayoutSize):
26500         (WebCore::FractionalLayoutSize::scale):
26501         (WebCore::FractionalLayoutSize::clampToMinimumSize):
26502         * rendering/RenderBox.h:
26503         (WebCore::RenderBox::intrinsicSize):
26504         * rendering/RenderHTMLCanvas.cpp:
26505         (WebCore::RenderHTMLCanvas::canvasSizeChanged):
26506         * rendering/RenderImage.cpp:
26507         (WebCore::RenderImage::imageChanged):
26508         (WebCore::RenderImage::updateIntrinsicSizeIfNeeded):
26509         (WebCore::RenderImage::paintReplaced):
26510         (WebCore::RenderImage::minimumReplacedHeight):
26511         * rendering/RenderImage.h:
26512         (RenderImage):
26513         * rendering/RenderImageResource.h:
26514         (WebCore::RenderImageResource::imageSize):
26515         * rendering/RenderImageResourceStyleImage.h:
26516         * rendering/RenderReplaced.cpp:
26517         (WebCore::RenderReplaced::RenderReplaced):
26518         (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
26519         (WebCore::RenderReplaced::computeReplacedLogicalWidth):
26520         (WebCore::RenderReplaced::computeReplacedLogicalHeight):
26521         * rendering/RenderReplaced.h:
26522         (RenderReplaced):
26523         (WebCore::RenderReplaced::minimumReplacedHeight):
26524         (WebCore::RenderReplaced::setIntrinsicSize):
26525         * rendering/RenderVideo.cpp:
26526         (WebCore::RenderVideo::updateIntrinsicSize):
26527         (WebCore::RenderVideo::calculateIntrinsicSize):
26528         (WebCore::RenderVideo::videoBox):
26529         (WebCore::RenderVideo::minimumReplacedHeight):
26530         * rendering/RenderVideo.h:
26531         (RenderVideo):
26532         * rendering/style/StyleCachedImage.cpp:
26533         (WebCore::StyleCachedImage::imageSize):
26534         * rendering/style/StyleCachedImage.h:
26535         (StyleCachedImage):
26536         * rendering/style/StyleCachedImageSet.cpp:
26537         (WebCore::StyleCachedImageSet::imageSize):
26538         * rendering/style/StyleCachedImageSet.h:
26539         (StyleCachedImageSet):
26540         * rendering/style/StyleGeneratedImage.cpp:
26541         (WebCore::StyleGeneratedImage::imageSize):
26542         (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
26543         * rendering/style/StyleGeneratedImage.h:
26544         (StyleGeneratedImage):
26545         * rendering/style/StyleImage.h:
26546         (StyleImage):
26547         * rendering/style/StylePendingImage.h:
26548
26549 2012-11-01  Adam Barth  <abarth@webkit.org>
26550
26551         [V8] Unify the V8GCController visitors
26552         https://bugs.webkit.org/show_bug.cgi?id=100897
26553
26554         Reviewed by Eric Seidel.
26555
26556         After this patch, we use a single visitor for all DOM wrappers,
26557         regardless of type. We also visit all the wrappers in one pass by
26558         calling v8::V8::VisitHandlesWithClassIds directly rather than via
26559         visitAllDOMNodes.
26560
26561         This patch also introduces a wrapper class ID for non-Node DOM objects.
26562         Previously, only DOM nodes had a class ID.
26563
26564         * bindings/v8/IntrusiveDOMWrapperMap.h:
26565         * bindings/v8/ScriptProfiler.cpp:
26566         (WebCore::retainedDOMInfo):
26567         (WebCore::ScriptProfiler::initialize):
26568         * bindings/v8/V8DOMMap.cpp:
26569         (WebCore::visitAllDOMNodes):
26570         * bindings/v8/V8DOMWrapper.cpp:
26571         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
26572         * bindings/v8/V8DOMWrapper.h:
26573         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
26574         * bindings/v8/V8GCController.cpp:
26575         (WebCore::GCHandleVisitor::notifyFinished):
26576         (GCHandleVisitor):
26577         (WebCore::V8GCController::majorGCPrologue):
26578         * bindings/v8/WrapperTypeInfo.h:
26579         (WebCore):
26580
26581 2012-11-01  Stephen White  <senorblanco@chromium.org>
26582
26583         Unreviewed, rolling out r133143.
26584         http://trac.webkit.org/changeset/133143
26585         https://bugs.webkit.org/show_bug.cgi?id=96894
26586
26587         Causing content_browsertests failures
26588
26589         * CMakeLists.txt:
26590         * GNUmakefile.list.am:
26591         * Target.pri:
26592         * WebCore.gypi:
26593         * WebCore.vcproj/WebCore.vcproj:
26594         * WebCore.xcodeproj/project.pbxproj:
26595         * dom/DeviceOrientationClient.h:
26596         (DeviceOrientationClient):
26597         * dom/DeviceOrientationController.cpp:
26598         (WebCore::DeviceOrientationController::DeviceOrientationController):
26599         (WebCore):
26600         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26601         (WebCore::DeviceOrientationController::timerFired):
26602         (WebCore::DeviceOrientationController::addListener):
26603         (WebCore::DeviceOrientationController::removeListener):
26604         (WebCore::DeviceOrientationController::removeAllListeners):
26605         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
26606         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
26607         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26608         (WebCore::DeviceOrientationController::supplementName):
26609         * dom/DeviceOrientationController.h:
26610         (WebCore):
26611         (DeviceOrientationController):
26612         (WebCore::DeviceOrientationController::isActive):
26613         (WebCore::DeviceOrientationController::client):
26614         (WebCore::DeviceOrientationController::from):
26615         * dom/Document.cpp:
26616         (WebCore::Document::suspendActiveDOMObjects):
26617         (WebCore::Document::resumeActiveDOMObjects):
26618         * loader/EmptyClients.h:
26619         (WebCore::EmptyDeviceOrientationClient::startUpdating):
26620         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
26621         * page/DOMWindow.cpp:
26622         (WebCore::DOMWindow::addEventListener):
26623         (WebCore::DOMWindow::removeEventListener):
26624         (WebCore::DOMWindow::removeAllEventListeners):
26625         * page/DeviceClient.h: Removed.
26626         * page/DeviceController.cpp: Removed.
26627         * page/DeviceController.h: Removed.
26628
26629 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26630
26631         [EFL][AC]Free GL resources allocated by GraphicsContext3DEfl.
26632         https://bugs.webkit.org/show_bug.cgi?id=100923.
26633
26634         Reviewed by Kenneth Rohde Christiansen.
26635
26636         GraphicsContext3DEfl creates FBO's, textures and render buffer's, but doesn't free them.
26637         This patch makes sure that GraphicsContext3dEfl frees all the GL resources allocated by it.
26638
26639         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
26640         (WebCore::GraphicsContext3D::~GraphicsContext3D):
26641
26642 2012-11-01  Andreas Kling  <kling@webkit.org>
26643
26644         Fix StylePropertySet/ElementAttributeData custom allocation in debug builds.
26645         <http://webkit.org/b/100753>
26646
26647         Unreviewed debug bot crash fix after r133138.
26648
26649         There's additional padding after StylePropertySet and ElementAttributeData
26650         in 64-bit debug builds since there are additional members in RefCountedBase.
26651         Use 'sizeof(ImmutableFoo) - sizeof(void*)' as the base size of ImmutableFoo.
26652
26653         * css/StylePropertySet.cpp:
26654         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26655         * dom/ElementAttributeData.cpp:
26656         (WebCore::sizeForImmutableElementAttributeDataWithAttributeCount):
26657         (WebCore::ElementAttributeData::createImmutable):
26658         (WebCore::ElementAttributeData::reportMemoryUsage):
26659
26660 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26661
26662         FEImage::m_document is never cleared. Why not?
26663         https://bugs.webkit.org/show_bug.cgi?id=99243
26664
26665         Reviewed by Dirk Schulze.
26666
26667         Adding a comment to explain why the failure to clear m_document is not a problem.
26668
26669         No new tests because no code change at all.
26670
26671         * svg/graphics/filters/SVGFEImage.h:
26672         (FEImage): Add a comment on the lifetime of m_document.
26673
26674 2012-11-01  Eugene Klyuchnikov  <eustas.bug@gmail.com>
26675
26676         Web Inspector: Timeline: make "addRecord" unambiguous
26677         https://bugs.webkit.org/show_bug.cgi?id=100761
26678
26679         Reviewed by Pavel Feldman.
26680
26681         TimelinePresentationModel.addRecord accepts two parameters:
26682         record and parentRecord. parentRecord is always root record.
26683         Make this explicit by removing parentRecord parameter.
26684
26685         * inspector/front-end/TimelinePanel.js: Removed parameter.
26686         * inspector/front-end/TimelinePresentationModel.js:
26687         (WebInspector.TimelinePresentationModel.prototype.addRecord):
26688         Used root recoed instead of parent record.
26689
26690 2012-11-01  Charles Wei  <charles.wei@torchmobile.com.cn>
26691
26692         [BlackBerry] Browser prematurely sends wrong credentials
26693         https://bugs.webkit.org/show_bug.cgi?id=100585
26694
26695         Reviewed by George Staikos.
26696
26697         Don't send credentials to the server before been challenged.
26698
26699         * platform/network/blackberry/NetworkManager.cpp:
26700         (WebCore::NetworkManager::startJob):
26701
26702 2012-11-01  Stephen Chenney  <schenney@chromium.org>
26703
26704         SVG as an image may recreate the renderer on zoom
26705         https://bugs.webkit.org/show_bug.cgi?id=99508
26706
26707         Reviewed by Abhishek Arya.
26708
26709         The SVGImage code, when SVG is used in <img> tags, caches the renderer
26710         at the start of the painting method and re-uses the pointer at the end
26711         of the method. However, when the page is zoomed the renderer may be
26712         detached mid-method, thus leaving a stray pointer. The fix is to
26713         re-fetch the pointer after the zooms.
26714
26715         Test: svg/as-image/img-zoom-svg-stylesheet.html
26716
26717         * svg/graphics/SVGImage.cpp:
26718         (WebCore::SVGImage::drawSVGToImageBuffer): Re-fetch the renderer after
26719         the zoom operations.
26720
26721 2012-11-01  Pavel Feldman  <pfeldman@chromium.org>
26722
26723         Web Inspector: introduce Inspector.detached message containing termination cause.
26724         https://bugs.webkit.org/show_bug.cgi?id=100948
26725
26726         Reviewed by Yury Semikhatsky.
26727
26728         Now protocol clients have more information to process connection termination.
26729
26730         * English.lproj/localizedStrings.js:
26731         * inspector/Inspector.json:
26732         * inspector/front-end/InspectorFrontendHostStub.js:
26733         (WebInspector.RemoteDebuggingTerminatedScreen):
26734         * inspector/front-end/inspector.js:
26735         (WebInspector.loaded.WebInspector.socket.onopen):
26736         (WebInspector.loaded):
26737         (WebInspector.detached):
26738
26739 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26740
26741         Web Inspector: Restoring breakpoints for formatted UISourceCode should be triggered by BreakpointManager, not ScriptsPanel.
26742         https://bugs.webkit.org/show_bug.cgi?id=100593
26743
26744         Reviewed by Pavel Feldman.
26745
26746         BreakpointManager now listen for FormattedChanged event and restores formatted breakpoints on it.
26747         Removed now redundant callback from UISourceCode.setFormatted().
26748
26749         * inspector/front-end/BreakpointManager.js:
26750         (WebInspector.BreakpointManager.prototype._restoreBreakpoints):
26751         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
26752         (WebInspector.BreakpointManager.prototype._uiSourceCodeFormatted):
26753         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
26754         * inspector/front-end/ScriptsPanel.js:
26755         (WebInspector.ScriptsPanel.prototype._addUISourceCode):
26756         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
26757         (WebInspector.ScriptsPanel.prototype._toggleFormatSource):
26758         * inspector/front-end/UISourceCode.js:
26759         (WebInspector.UISourceCode.prototype._fireContentAvailable):
26760         (WebInspector.UISourceCode.prototype.setFormatted.formattedChanged):
26761         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
26762         (WebInspector.UISourceCode.prototype.setFormatted):
26763
26764 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
26765
26766         Web Inspector: Output code evaluated in the console the same as console.log
26767         https://bugs.webkit.org/show_bug.cgi?id=100695
26768
26769         Reviewed by Pavel Feldman.
26770
26771         Added an option to return object preview from evaluation commands in the protocol.
26772         The option is used to generate preview for console eval results.
26773
26774         * inspector/InjectedScript.cpp:
26775         (WebCore::InjectedScript::evaluate):
26776         (WebCore::InjectedScript::callFunctionOn):
26777         (WebCore::InjectedScript::evaluateOnCallFrame):
26778         * inspector/InjectedScript.h:
26779         (InjectedScript):
26780         * inspector/InjectedScriptSource.js:
26781         (.):
26782         * inspector/Inspector.json:
26783         * inspector/InspectorDebuggerAgent.cpp:
26784         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
26785         * inspector/InspectorDebuggerAgent.h:
26786         (InspectorDebuggerAgent):
26787         * inspector/InspectorRuntimeAgent.cpp:
26788         (WebCore::InspectorRuntimeAgent::evaluate):
26789         (WebCore::InspectorRuntimeAgent::callFunctionOn):
26790         * inspector/InspectorRuntimeAgent.h:
26791         (InspectorRuntimeAgent):
26792         * inspector/front-end/ConsoleMessage.js:
26793         (WebInspector.ConsoleMessageImpl.prototype.useArrayPreviewInFormatter):
26794         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
26795         * inspector/front-end/ConsoleView.js:
26796         (WebInspector.ConsoleCommandResult.prototype.useArrayPreviewInFormatter):
26797         * inspector/front-end/DebuggerModel.js:
26798         (WebInspector.DebuggerModel.prototype.evaluateOnSelectedCallFrame):
26799         (WebInspector.DebuggerModel.CallFrame.prototype.evaluate):
26800         * inspector/front-end/ExtensionServer.js:
26801         (WebInspector.ExtensionServer.prototype.evaluate):
26802         * inspector/front-end/JavaScriptSourceFrame.js:
26803         (WebInspector.JavaScriptSourceFrame.prototype._resolveObjectForPopover):
26804         * inspector/front-end/RemoteObject.js:
26805         (WebInspector.RemoteObject.prototype.):
26806         (WebInspector.RemoteObject.prototype.callFunction):
26807         (WebInspector.RemoteObject.prototype.callFunctionJSON):
26808         * inspector/front-end/RuntimeModel.js:
26809         (WebInspector.RuntimeModel.prototype.evaluate):
26810         (WebInspector.RuntimeModel.prototype.evaluated):
26811         * inspector/front-end/WatchExpressionsSidebarPane.js:
26812         (WebInspector.WatchExpressionsSection.prototype.update):
26813
26814 2012-11-01  Vsevolod Vlasov  <vsevik@chromium.org>
26815
26816         Web Inspector: Remove obsolete code from JavaScriptSourceFrame
26817         https://bugs.webkit.org/show_bug.cgi?id=100594
26818
26819         Reviewed by Yury Semikhatsky.
26820
26821         Removed obsolete WorkingCopyCommitted listener.
26822         Removed redundant code that removes breakpoints from _innerSetContent.
26823
26824         * inspector/front-end/JavaScriptSourceFrame.js:
26825         (WebInspector.JavaScriptSourceFrame):
26826         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
26827
26828 2012-11-01  Andreas Kling  <kling@webkit.org>
26829
26830         Update average StylePropertySet size estimation.
26831         <http://webkit.org/b/100940>
26832
26833         Reviewed by Antti Koivisto.
26834
26835         Use sizeForImmutableStylePropertySetWithPropertyCount(2) as the average StylePropertySet
26836         size to keep it in sync with the changed object memory layout.
26837
26838         * css/StylePropertySet.cpp:
26839         (WebCore::sizeForImmutableStylePropertySetWithPropertyCount):
26840         (WebCore::StylePropertySet::createImmutable):
26841         (WebCore::StylePropertySet::averageSizeInBytes):
26842         (WebCore::StylePropertySet::reportMemoryUsage):
26843
26844
26845 2012-11-01  Kondapally Kalyan  <kalyan.kondapally@intel.com>
26846
26847         [EFL][Qt][AC] Remove an unnecessary connection to X-Server.
26848         https://bugs.webkit.org/show_bug.cgi?id=100628.
26849
26850         Reviewed by Kenneth Rohde Christiansen.
26851
26852         With Changset: https://bugs.webkit.org/show_bug.cgi?id=100523
26853         GraphicsSurfacePrivate should always use the Display returned by offscreenwindow.
26854         However, in GraphicsSurfacePrivate constructor we call XOpenDisplay before asking
26855         display from offscreenwindow.
26856         This patch removes unnecessary call to XOpenDisplay made in GraphicsSurfacePrivate.
26857
26858         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
26859         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
26860
26861 2012-11-01  Mihnea Ovidenie  <mihnea@adobe.com>
26862
26863         [CSSRegions]Former auto-height regions should not ignore their defined height
26864         https://bugs.webkit.org/show_bug.cgi?id=100749
26865
26866         Reviewed by Julien Chaffraix.
26867
26868         When a region with height auto has its height defined, we should also clear the override logical content height.
26869         Otherwise, the region will use the wrong height when laying out content from the associated render flow thread.
26870
26871         Test: fast/regions/autoheight-definedheight-changenotdetected.html
26872
26873         * rendering/RenderRegion.cpp:
26874         (WebCore::RenderRegion::updateRegionHasAutoLogicalHeightFlag):
26875
26876 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
26877
26878         Memory instrumentation: do not report memory occupied by RenderObjects referenced from CSSImageGeneratorValue
26879         https://bugs.webkit.org/show_bug.cgi?id=100934
26880
26881         Reviewed by Alexander Pavlov.
26882
26883         * css/CSSImageGeneratorValue.cpp:
26884         (WTF): Skip rederences to RenderObjects from CSSImageGeneratorValue when collecting
26885         memory usage data.
26886
26887 2012-11-01  Kihong Kwon  <kihong.kwon@samsung.com>
26888
26889         Add DeviceController base-class to remove duplication of DeviceXXXControler
26890         https://bugs.webkit.org/show_bug.cgi?id=96894
26891
26892         Reviewed by Hajime Morita.
26893
26894         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
26895         And soon-to-be-added DeviceMotionController and ProximityController.
26896
26897         Covered by existing tests.
26898
26899         * CMakeLists.txt:
26900         * GNUmakefile.list.am:
26901         * Target.pri:
26902         * WebCore.gypi:
26903         * WebCore.vcproj/WebCore.vcproj:
26904         * WebCore.xcodeproj/project.pbxproj:
26905         * dom/DeviceOrientationClient.h:
26906         * dom/DeviceOrientationController.cpp:
26907         Remove member functions to move to DeviceController.
26908         - addListener(), removeListener(), removeAllListeners(), isActive()
26909         (WebCore::DeviceOrientationController::DeviceOrientationController):
26910         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
26911         (WebCore::DeviceOrientationController::client):
26912         (WebCore::DeviceOrientationController::hasLastData):
26913         (WebCore::DeviceOrientationController::getLastEvent):
26914         (WebCore::DeviceOrientationController::from):
26915         (WebCore):
26916         * dom/DeviceOrientationController.h:
26917         (WebCore):
26918         (WebCore::DeviceOrientationController::~DeviceOrientationController):
26919         (DeviceOrientationController):
26920         * dom/Document.cpp:
26921         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
26922         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
26923         (WebCore::Document::suspendActiveDOMObjects):
26924         (WebCore::Document::resumeActiveDOMObjects):
26925         * loader/EmptyClients.h:
26926         (EmptyDeviceClient):
26927         (WebCore::EmptyDeviceClient::startUpdating):
26928         (WebCore::EmptyDeviceClient::stopUpdating):
26929         (WebCore):
26930         * page/DOMWindow.cpp:
26931         (WebCore::DOMWindow::addEventListener):
26932         (WebCore::DOMWindow::removeEventListener):
26933         (WebCore::DOMWindow::removeAllEventListeners):
26934         * page/DeviceClient.h: Added.
26935         (WebCore):
26936         (DeviceClient):
26937         (WebCore::DeviceClient::~DeviceClient):
26938         * page/DeviceController.cpp: Added.
26939         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
26940         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
26941         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
26942         (WebCore):
26943         (WebCore::DeviceController::DeviceController):
26944         (WebCore::DeviceController::addDeviceEventListener):
26945         (WebCore::DeviceController::removeDeviceEventListener):
26946         (WebCore::DeviceController::removeAllDeviceEventListeners):
26947         (WebCore::DeviceController::dispatchDeviceEvent):
26948         (WebCore::DeviceController::fireDeviceEvent):
26949         * page/DeviceController.h: Added.
26950         (WebCore):
26951         (DeviceController):
26952         (WebCore::DeviceController::~DeviceController):
26953         (WebCore::DeviceController::isActive):
26954         (WebCore::DeviceController::client):
26955         (WebCore::DeviceController::hasLastData):
26956         (WebCore::DeviceController::getLastEvent):
26957
26958 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
26959
26960         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
26961         https://bugs.webkit.org/show_bug.cgi?id=100497
26962
26963         Reviewed by Alexander Pavlov.
26964
26965         Added memory reporting method to chromium implementation of ResourceRequest.
26966
26967         * platform/network/ResourceRequestBase.cpp:
26968         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
26969         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
26970         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
26971         in the descendant but ResourceRequestBase doesn't have any virtual methods
26972         and shouldn't be used directly(ResourceRequest should be used instead).
26973         * platform/network/ResourceRequestBase.h:
26974         (ResourceRequestBase):
26975         * platform/network/chromium/ResourceRequest.cpp:
26976         (WebCore::ResourceRequest::reportMemoryUsage):
26977         (WebCore):
26978         * platform/network/chromium/ResourceRequest.h:
26979         (ResourceRequest):
26980
26981 2012-11-01  Andreas Kling  <kling@webkit.org>
26982
26983         Pack immutable StylePropertySets harder on 64-bit.
26984         <http://webkit.org/b/100753>
26985         <rdar://problem/12599155>
26986
26987         Reviewed by Antti Koivisto.
26988
26989         Move away from using CSSProperty as internal storage for immutable StylePropertySets.
26990         Instead use two arrays, one for property metadata (ID, shorthand ID, !important, ...)
26991         and one for the CSSValue pointers. This saves 4 bytes per property on 64-bit.
26992
26993         Old object layout:
26994
26995             Ref count                   (4 bytes)
26996             Metadata                    (4 bytes)
26997             CSSProperty [N]             (16 bytes each)
26998
26999         New object layout:
27000
27001             Ref count                   (4 bytes)
27002             Metadata                    (4 bytes)
27003             CSSValue* [N]               (8 bytes each)
27004             StylePropertyMetadata [N]   (4 bytes each)
27005
27006         901kB progress on Membuster3 (22% overall reduction in StylePropertySet memory.)
27007
27008         The CSSProperty class sticks around for now, it's still used in mutable StylePropertySets
27009         and by the StylePropertySet constructors.
27010
27011         * css/CSSProperty.cpp:
27012         * css/CSSProperty.h:
27013         (CSSProperty):
27014         (WebCore::CSSProperty::CSSProperty):
27015         (WebCore::CSSProperty::id):
27016         (WebCore::CSSProperty::shorthandID):
27017         (WebCore::CSSProperty::isImportant):
27018         (WebCore::CSSProperty::metadata):
27019
27020             Break the bitfield from CSSProperty out into a StylePropertyMetadata class (actually a union.)
27021
27022         * css/StylePropertySet.cpp:
27023         (WebCore::immutableStylePropertySetSize):
27024
27025             Updated size calculation for immutable StylePropertySets, 1/4 smaller!
27026
27027         (WebCore::ImmutableStylePropertySet::ImmutableStylePropertySet):
27028         (WebCore::ImmutableStylePropertySet::~ImmutableStylePropertySet):
27029         (WebCore::MutableStylePropertySet::MutableStylePropertySet):
27030         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
27031         (WebCore::StylePropertySet::reportMemoryUsage):
27032         (WebCore::StylePropertySet::PropertyReference::cssName):
27033         (WebCore::StylePropertySet::PropertyReference::cssText):
27034         * css/StylePropertySet.h:
27035         (WebCore::StylePropertySet::PropertyReference::id):
27036         (WebCore::StylePropertySet::PropertyReference::shorthandID):
27037         (WebCore::StylePropertySet::PropertyReference::isImportant):
27038         (WebCore::StylePropertySet::PropertyReference::isInherited):
27039         (WebCore::StylePropertySet::PropertyReference::isImplicit):
27040         (PropertyReference):
27041         (WebCore::StylePropertySet::PropertyReference::value):
27042         (WebCore::StylePropertySet::PropertyReference::toCSSProperty):
27043         (WebCore::StylePropertySet::PropertyReference::propertyMetadata):
27044         (WebCore::StylePropertySet::PropertyReference::propertyValue):
27045         (StylePropertySet):
27046         (ImmutableStylePropertySet):
27047         (WebCore::StylePropertySet::immutableValueArray):
27048         (WebCore::StylePropertySet::immutableMetadataArray):
27049
27050             Refactored internal storage for StylePropertySet.
27051
27052 2012-11-01  Kent Tamura  <tkent@chromium.org>
27053
27054         Remove unused Locale::parseDateTime
27055         https://bugs.webkit.org/show_bug.cgi?id=100910
27056
27057         Reviewed by Kentaro Hara.
27058
27059         For date/time input types, InputType::convertFromVisibleValue is never
27060         called. convertFromVisibleValue is called when an inner editable node is
27061         updated. However input elements don't have such editable nodes if
27062         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled, and a user can't edit the
27063         inner editable node otherwise because we open date/time pickers when a
27064         user try to change the field value.
27065
27066         We had used convertFromVisibleValue for input[type=date] with an old UI.
27067
27068         No new tests because of no behavior changes.
27069
27070         * html/BaseDateAndTimeInputType.cpp:
27071         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue):
27072         Remove Locale::parseDateTiem and put ASSERT_NOT_REACHED.
27073
27074         * platform/text/PlatformLocale.h: Remove parseDateTime.
27075
27076         * platform/text/LocaleICU.h: Remove parseDateTime and a bogus comment.
27077         * platform/text/LocaleICU.cpp: Remove parseDateTime.
27078
27079         * platform/text/LocaleNone.cpp: Remove parseDateTime.
27080
27081         * platform/text/mac/LocaleMac.h: Remove parseDateTime.
27082         * platform/text/mac/LocaleMac.mm: Ditto.
27083         * platform/text/win/LocaleWin.h:
27084         - Remove parseDateTime, its helpers, and m_baseYear.
27085         - Remove appendNumber, appendTwoDigitsNumber, appendFourDigitsNumber,
27086           and formatDate. They don't exist.
27087         * platform/text/win/LocaleWin.cpp:
27088         Remove the above functions.
27089         (WebCore::LocaleWin::LocaleWin): Remove m_baseYear iniitalization.
27090
27091 2012-10-31  Nate Chapin  <japhet@chromium.org>
27092
27093         Remove some CachedResource::Status's in favor of looking at CachedResource::m_error
27094         https://bugs.webkit.org/show_bug.cgi?id=100901
27095
27096         Reviewed by Adam Barth.
27097
27098         No new tests, refactor only.
27099
27100         * inspector/InspectorPageAgent.cpp:
27101         (WebCore::InspectorPageAgent::buildObjectForFrameTree):
27102         * loader/DocumentThreadableLoader.cpp:
27103         (WebCore::DocumentThreadableLoader::notifyFinished):
27104         * loader/FrameLoader.cpp:
27105         (WebCore::FrameLoader::loadInSameDocument):
27106         * loader/SubresourceLoader.cpp:
27107         (WebCore::SubresourceLoader::didFail):
27108         (WebCore::SubresourceLoader::willCancel):
27109         * loader/cache/CachedResource.cpp:
27110         (WebCore::CachedResource::stopLoading):
27111         * loader/cache/CachedResource.h:
27112         (WebCore::CachedResource::wasCanceled):
27113         (WebCore::CachedResource::errorOccurred):
27114         (WebCore::CachedResource::loadFailedOrCanceled):
27115
27116 2012-10-31  Stephen White  <senorblanco@chromium.org>
27117
27118         Unreviewed, rolling out r133122.
27119         http://trac.webkit.org/changeset/133122
27120         https://bugs.webkit.org/show_bug.cgi?id=99083
27121
27122         Broke Chromium Win, Android, ChromeOS builds
27123
27124         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27125         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27126         (WebCore::GraphicsLayerChromium::paint):
27127         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27128         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27129         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27130         (OpaqueRectTrackingContentLayerDelegate):
27131
27132 2012-10-31  Takashi Sakamoto  <tasak@google.com>
27133
27134         [Refactoring] Move initial style setting for ProgressValueElement from attach method to createShadowSubtree method in HTMLProgressElement.
27135         https://bugs.webkit.org/show_bug.cgi?id=83664
27136
27137         Reviewed by Hajime Morita.
27138
27139         The original code updates inline style during attach(). However,
27140         the attach would be invoked from Element::recalcStyle()'s reattach().
27141         If updating inline styles during the reattach(), style related flags,
27142         i.e. childNeedsStyleRecalc, and needsStyleRecalc are cleared after the
27143         reattach(). So the inline styles are not updated in next
27144         setNeedsStyleRecalc, because ProgressValueElement has already had
27145         InlineStyleChange (existingChanegType == InlineStyleChange) and
27146         markAncestorsWithChildNeedsStyleRecalc is not invoked.
27147
27148         Test: fast/dom/HTMLProgressElement/progress-bar-set-value.html
27149
27150         * html/HTMLProgressElement.cpp:
27151         (WebCore::HTMLProgressElement::attach):
27152         Copied updateFromElement from didElementStateChange. If removing the
27153         update, indeterminate-progress-001.html and progress-element.html
27154         under fast/dom/HTMLProgressElement will fail. We still need attach()
27155         and updateFromElement. To remove the attach(), need more refactoring,
27156         i.e. investigating where attach() is invoked from and modifying all
27157         related codes.
27158         (WebCore::HTMLProgressElement::createShadowSubtree):
27159         Initialize m_value by indeterminate-position. The value is default
27160         value of progress element.
27161
27162 2012-10-31  Hayato Ito  <hayato@chromium.org>
27163
27164         Make resolveReprojection() defined in ComposedShadowTreeWalker.cpp callable from outside.
27165         https://bugs.webkit.org/show_bug.cgi?id=100832
27166
27167         Reviewed by Dimitri Glazkov.
27168
27169         InsertionPoint.h now defines resolveReprojection() so that it can be called from outside.
27170
27171         No new tests as no new functionality.
27172
27173         * dom/ComposedShadowTreeWalker.cpp:
27174         * html/shadow/InsertionPoint.h:
27175         (WebCore::shadowOfParentForDistribution):
27176         (WebCore):
27177         (WebCore::resolveReprojection):
27178
27179 2012-10-31  Alok Priyadarshi  <alokp@chromium.org>
27180
27181         [chromium] Pass canPaintLCDText to WebContentLayerClient::paintContents
27182         https://bugs.webkit.org/show_bug.cgi?id=99083
27183
27184         Reviewed by James Robinson.
27185
27186         Use LCD text setting passed to WebContentLayerClient::paintContents instead of turning it off for all composited layers.
27187
27188         No new tests needed. This patch does not change anything functionally.
27189
27190         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
27191         (WebCore::GraphicsLayerChromium::setContentsOpaque):
27192         (WebCore::GraphicsLayerChromium::paint):
27193         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
27194         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
27195         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.h:
27196         (OpaqueRectTrackingContentLayerDelegate):
27197
27198 2012-10-31  Chris Evans  <cevans@google.com>
27199
27200         RenderArena has a memory leak and poor efficiency
27201         https://bugs.webkit.org/show_bug.cgi?id=100893
27202
27203         Reviewed by Eric Seidel.
27204
27205         1) Avoid memory leak that persists for the Document lifetime by
27206         increasing recycled size buckets up to 1024. It was previously 400,
27207         and sizeof(RenderNamedFlowThread) / sizeof(RenderSVGText) both blew this
27208         quota. An assert was added to prevent this happening again.
27209
27210         2) Fix the size of the recyled size bucket array on 64-bit. We only
27211         need 8 byte granularity on 64-bit, but we had 4.
27212
27213         3) Try and pass power-of-two sizes to the underlying malloc() call, so
27214         that we're space efficient. We now take Arena metadata into account.
27215
27216         4) Double the default RenderArena size allocation to 8192 bytes. Even
27217         for a render of a trivial text file, 4096 bytes is not enough to prevent
27218         extra calls into the underlying malloc() for more arena pool.
27219
27220         * rendering/RenderArena.cpp:
27221         (WebCore::RenderArena::RenderArena): Adjust arena size so that we pass on the page-sized multiple to the underlying malloc() implementation.
27222         (WebCore::RenderArena::allocate):
27223         (WebCore::RenderArena::free): Assert that the allocation size is handled by our recycling buckets.
27224         * rendering/RenderArena.h:
27225         (WebCore): Maintain free buckets up to 1024 bytes to avoid memory leak.
27226         (RenderArena): Double the default allocation size and handle 64-bit systems more efficiently.
27227
27228 2012-10-31  Adam Barth  <abarth@webkit.org>
27229
27230         [V8] Garbage collection should use opaque roots rather than implicit references
27231         https://bugs.webkit.org/show_bug.cgi?id=100707
27232
27233         Reviewed by Kentaro Hara.
27234
27235         This patch replaces visitDOMWrapper with opaqueRootForGC. The
27236         former used to inform V8 of implicit relationships between wrapper
27237         objects on a per-wrapper basis. That meant that we needed to know which
27238         DOMDataStore a given wrapper was in during garbage collection.
27239
27240         After this patch, we now use object groups rather than implicit
27241         references to inform V8 of these relationships. That has two benefits:
27242
27243         1) We no longer need to know which DOMDataStore a wrapper belongs
27244            because we don't need to find the exact source wrapper for the
27245            implicit connection.
27246
27247         2) We can now handle more complicated implicit relationships, for
27248            example when some of the intervening objects haven't had their
27249            JavaScript wrappers created yet.
27250
27251         This patch also unlocks to paths of future development:
27252         A) Fixing the remaining failures in fast/dom/gc-9.html
27253         B) Enumerating DOM wrappers entirely from V8 rather than from the
27254            DOMWrapperMaps (so that we can move more object towards using
27255            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
27256
27257         * bindings/scripts/CodeGeneratorV8.pm:
27258         (NeedsCustomOpaqueRootForGC):
27259         (GenerateOpaqueRootForGC):
27260         (GenerateHeader):
27261         (GenerateImplementation):
27262         * bindings/v8/V8GCController.cpp:
27263         (ImplicitConnection):
27264         (WebCore::ImplicitConnection::ImplicitConnection):
27265         (WebCore::ImplicitConnection::root):
27266         (WebCore::ImplicitConnection::wrapper):
27267         (WebCore):
27268         (WebCore::operator<):
27269         (WrapperGrouper):
27270         (WebCore::WrapperGrouper::WrapperGrouper):
27271         (WebCore::WrapperGrouper::addToGroup):
27272         (WebCore::WrapperGrouper::keepAlive):
27273         (WebCore::WrapperGrouper::apply):
27274         (WebCore::ObjectVisitor::ObjectVisitor):
27275         (WebCore::ObjectVisitor::visitDOMWrapper):
27276         (ObjectVisitor):
27277         (WebCore::V8GCController::opaqueRootForGC):
27278         (WebCore::NodeVisitor::NodeVisitor):
27279         (WebCore::NodeVisitor::visitNodeWrapper):
27280         (NodeVisitor):
27281         (WebCore::V8GCController::majorGCPrologue):
27282         * bindings/v8/V8GCController.h:
27283         (WebCore):
27284         (V8GCController):
27285         * bindings/v8/WrapperTypeInfo.h:
27286         (WebCore):
27287         (WebCore::WrapperTypeInfo::opaqueRootForGC):
27288         (WrapperTypeInfo):
27289         * bindings/v8/custom/V8NodeListCustom.cpp:
27290         (WebCore::V8NodeList::opaqueRootForGC):
27291         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27292         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
27293
27294 2012-10-31  Stephen White  <senorblanco@chromium.org>
27295
27296         Unreviewed, rolling out r133107.
27297         http://trac.webkit.org/changeset/133107
27298         https://bugs.webkit.org/show_bug.cgi?id=100425
27299
27300         Broke compile on Chromium Win.
27301
27302         * Modules/indexeddb/IDBCallbacks.h:
27303         (IDBCallbacks):
27304         * Modules/indexeddb/IDBDatabase.cpp:
27305         (WebCore::IDBDatabase::objectStoreNames):
27306         (WebCore::IDBDatabase::createObjectStore):
27307         (WebCore::IDBDatabase::deleteObjectStore):
27308         (WebCore::IDBDatabase::transaction):
27309         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27310         (WebCore::IDBDatabaseBackendImpl::metadata):
27311         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27312         (WebCore::IDBDatabaseBackendImpl::objectStore):
27313         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27314         (WebCore::IDBDatabaseBackendImpl::transaction):
27315         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27316         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27317         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27318         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27319         (IDBDatabaseBackendImpl):
27320         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27321         (IDBDatabaseBackendInterface):
27322         * Modules/indexeddb/IDBFactory.cpp:
27323         * Modules/indexeddb/IDBFactory.h:
27324         * Modules/indexeddb/IDBIndex.h:
27325         (WebCore::IDBIndex::openKeyCursor):
27326         * Modules/indexeddb/IDBIndexBackendInterface.h:
27327         * Modules/indexeddb/IDBKeyPath.cpp:
27328         * Modules/indexeddb/IDBMetadata.h:
27329         (WebCore):
27330         (IDBDatabaseMetadata):
27331         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27332         (IDBObjectStoreMetadata):
27333         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27334         (IDBIndexMetadata):
27335         * Modules/indexeddb/IDBObjectStore.cpp:
27336         (WebCore::IDBObjectStore::indexNames):
27337         (WebCore::IDBObjectStore::put):
27338         (WebCore::IDBObjectStore::createIndex):
27339         (WebCore::IDBObjectStore::index):
27340         (WebCore::IDBObjectStore::deleteIndex):
27341         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27342         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27343         (WebCore):
27344         (WebCore::makeIndexWriters):
27345         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27346         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27347         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27348         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27349         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27350         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27351         (WebCore::IDBObjectStoreBackendImpl::index):
27352         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27353         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27354         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27355         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27356         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27357         (IDBObjectStoreBackendImpl):
27358         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27359         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27360         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27361         * Modules/indexeddb/IDBRequest.cpp:
27362         (WebCore::IDBRequest::onSuccess):
27363         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27364         * Modules/indexeddb/IDBTransaction.cpp:
27365         (WebCore::IDBTransaction::create):
27366         (WebCore::IDBTransaction::IDBTransaction):
27367         (WebCore::IDBTransaction::objectStore):
27368         * Modules/indexeddb/IDBTransaction.h:
27369         (IDBTransaction):
27370         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27371         (WebCore::IDBTransactionBackendImpl::create):
27372         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27373         (WebCore::IDBTransactionBackendImpl::objectStore):
27374         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27375         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27376         (IDBTransactionBackendImpl):
27377         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27378         * Modules/indexeddb/IDBTransactionCoordinator.h:
27379
27380 2012-10-31  Alec Flett  <alecflett@chromium.org>
27381
27382         IndexedDB: add methods to support id-based backend APIs
27383         https://bugs.webkit.org/show_bug.cgi?id=100425
27384
27385         Reviewed by Tony Chang.
27386
27387         First half of refactor involves adding a number of methods that
27388         are int64_t-based rather than String-based. As a part of this, the
27389         IDB*Metadata structs and the backend objectStore/index maps all
27390         use int64_t as keys, rather than String.
27391
27392         In addition, there were a number of cleanups that came out of the
27393         refactor:
27394
27395         - The list of object stores active in a transaction is now
27396           maintained by the frontend IDBTransaction rather than the backend
27397           IDBTransactionBackendImpl. This also had a simplifying rippling
27398           effect through other call signatures.
27399
27400         - I was able to remove an apparently old FIXME from
27401           IDBTransactionBackendImpl::objectStore and replace it with an ASSERT.
27402
27403         - IDBObjectStoreBackendImpl's IndexWriter class got a little
27404           simpler since the id is now easily available in the
27405           IDBIndexMetadata.
27406
27407         - A number of methods got simpler in their int64_t versions,
27408           specifically dropping a number of ExceptionCodes.
27409
27410         There is also some glue code
27411         (getIndexId/getIndexIds/getObjectStoreId) that will go away with
27412         the 2nd half of this: https://bugs.webkit.org/show_bug.cgi?id=100425
27413
27414         No new tests, no new functionality as this is just a refactor.
27415
27416         * Modules/indexeddb/IDBDatabase.cpp:
27417         (WebCore::IDBDatabase::objectStoreNames):
27418         (WebCore::IDBDatabase::createObjectStore):
27419         (WebCore::IDBDatabase::deleteObjectStore):
27420         (WebCore::IDBDatabase::transaction):
27421         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
27422         (WebCore::IDBDatabaseBackendImpl::metadata):
27423         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
27424         (WebCore::IDBDatabaseBackendImpl::objectStore):
27425         (WebCore::IDBDatabaseBackendImpl::getObjectStoreId):
27426         (WebCore):
27427         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27428         (WebCore::IDBDatabaseBackendImpl::transaction):
27429         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
27430         (WebCore::IDBDatabaseBackendImpl::removeObjectStoreFromMap):
27431         (WebCore::IDBDatabaseBackendImpl::addObjectStoreToMap):
27432         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
27433         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
27434         (IDBDatabaseBackendImpl):
27435         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
27436         (IDBDatabaseBackendInterface):
27437         * Modules/indexeddb/IDBIndex.h:
27438         (WebCore::IDBIndex::id):
27439         (WebCore::IDBIndex::openKeyCursor):
27440         * Modules/indexeddb/IDBIndexBackendInterface.h:
27441         * Modules/indexeddb/IDBMetadata.h:
27442         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
27443         (IDBIndexMetadata):
27444         (IDBObjectStoreMetadata):
27445         (WebCore::IDBObjectStoreMetadata::containsIndex):
27446         (IDBDatabaseMetadata):
27447         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
27448         (WebCore::IDBDatabaseMetadata::containsObjectStore):
27449         * Modules/indexeddb/IDBObjectStore.cpp:
27450         (WebCore::IDBObjectStore::indexNames):
27451         (WebCore::IDBObjectStore::put):
27452         (WebCore::IDBObjectStore::createIndex):
27453         (WebCore::IDBObjectStore::index):
27454         (WebCore::IDBObjectStore::deleteIndex):
27455         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
27456         (WebCore::IDBObjectStoreBackendImpl::put):
27457         (WebCore::IDBObjectStoreBackendImpl::putWithIndexKeys):
27458         (WebCore):
27459         (WebCore::makeIndexWriters):
27460         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
27461         (WebCore::IDBObjectStoreBackendImpl::setIndexesReady):
27462         (WebCore::IDBObjectStoreBackendImpl::setIndexesReadyInternal):
27463         (WebCore::IDBObjectStoreBackendImpl::putInternal):
27464         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
27465         (WebCore::IDBObjectStoreBackendImpl::createIndex):
27466         (WebCore::IDBObjectStoreBackendImpl::index):
27467         (WebCore::IDBObjectStoreBackendImpl::getIndexId):
27468         (WebCore::IDBObjectStoreBackendImpl::getIndexIds):
27469         (WebCore::IDBObjectStoreBackendImpl::deleteIndex):
27470         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
27471         (WebCore::IDBObjectStoreBackendImpl::removeIndexFromMap):
27472         (WebCore::IDBObjectStoreBackendImpl::addIndexToMap):
27473         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
27474         (IDBObjectStoreBackendImpl):
27475         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
27476         * Modules/indexeddb/IDBOpenDBRequest.cpp:
27477         (WebCore::IDBOpenDBRequest::onUpgradeNeeded):
27478         * Modules/indexeddb/IDBRequest.cpp:
27479         (WebCore::IDBRequest::onSuccess):
27480         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
27481         * Modules/indexeddb/IDBTransaction.cpp:
27482         (WebCore::IDBTransaction::create):
27483         (WebCore::IDBTransaction::IDBTransaction):
27484         (WebCore::IDBTransaction::objectStore):
27485         * Modules/indexeddb/IDBTransaction.h:
27486         (IDBTransaction):
27487         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
27488         (WebCore::IDBTransactionBackendImpl::create):
27489         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
27490         (WebCore::IDBTransactionBackendImpl::objectStore):
27491         (WebCore):
27492         (WebCore::IDBTransactionBackendImpl::scheduleTask):
27493         * Modules/indexeddb/IDBTransactionBackendImpl.h:
27494         (IDBTransactionBackendImpl):
27495         * Modules/indexeddb/IDBTransactionBackendInterface.h:
27496
27497 2012-10-30  Mark Lam  <mark.lam@apple.com>
27498
27499         A JSC printf (support for %J+s and %b).
27500         https://bugs.webkit.org/show_bug.cgi?id=100566.
27501
27502         Reviewed by Michael Saboff.
27503
27504         Added forwarding header for VMInspector.h.
27505
27506         No new tests needed for this.
27507
27508         * ForwardingHeaders/interpreter/VMInspector.h: Added.
27509
27510 2012-10-31  Chris Rogers  <crogers@google.com>
27511
27512         Implement optional arguments in AudioBufferSourceNode start() method
27513         https://bugs.webkit.org/show_bug.cgi?id=100894
27514
27515         Reviewed by Kenneth Russell.
27516
27517         The start() method should be able to take 1, 2, or 3 arguments, optionally supporting
27518         offset and duration.  Currently, only 1 and 3 arguments are supported.
27519
27520         Test: webaudio/audiobuffersource-start.html
27521
27522         * Modules/webaudio/AudioBufferSourceNode.cpp:
27523         (WebCore::AudioBufferSourceNode::renderFromBuffer):
27524         (WebCore::AudioBufferSourceNode::startGrain):
27525         (WebCore):
27526         * Modules/webaudio/AudioBufferSourceNode.h:
27527         (AudioBufferSourceNode):
27528         * Modules/webaudio/AudioBufferSourceNode.idl:
27529
27530 2012-10-31  Mike West  <mkwst@chromium.org>
27531
27532         Implement the canonical "Content-Security-Policy" header.
27533         https://bugs.webkit.org/show_bug.cgi?id=96765
27534
27535         Reviewed by Adam Barth.
27536
27537         The CSP 1.0 specification defines the "Content-Security-Policy" header
27538         as the canonical mechanism of defining a resource's security policy. Up
27539         through this patch, we've implemented the functionality behind a prefix
27540         in order to ensure compatibility with the standard once it's released as
27541         a recommendation. Both the specification and WebKit's implementation are
27542         far enough along in that process that it makes sense to support the
27543         unprefixed header for sites that wish to opt-in to CSP 1.0.
27544
27545         As discussed on public-webappsec[1], we'll keep the experimental 1.1
27546         features behind the prefixed header ('X-WebKit-CSP') until that standard
27547         is far enough along to justify moving them out to the canonical header.
27548
27549         This patch defines the 'Content-Security-Policy' header for all ports,
27550         just as the 'X-WebKit-CSP' header is currently supported on all ports.
27551         Ports that have not opted-in to the CSP_NEXT flag will see exactly the
27552         same behavior with both headers. Ports that have opted-in will see much
27553         of CSP 1.1's current definition on the prefixed header, and CSP 1.0 on
27554         the canonical header.
27555
27556         The functionality in this change is covered by the changes made to
27557         existing tests. No expectations changed, only the headers that are sent.
27558
27559         * dom/Document.cpp:
27560         (WebCore::Document::processHttpEquiv):
27561             Add canonical header support to 'meta' element definitions.
27562         * loader/FrameLoader.cpp:
27563         (WebCore::FrameLoader::didBeginDocument):
27564             Add canonical header support to FrameLoader.
27565         * page/ContentSecurityPolicy.cpp:
27566         (WebCore::CSPDirectiveList::headerType):
27567             The ContentSecurityPolicy::HeaderType enum now has four values:
27568             prefixed/report-only, unprefixed/report-only, prefixed/enforce, and
27569             unprefixed/enforce. Instead of creating logic to output the proper
27570             type based on internal flags, CSPDirectiveList now saves the value
27571             provided at creation time, and returns it via this method.
27572         (CSPDirectiveList):
27573         (WebCore::CSPDirectiveList::CSPDirectiveList):
27574             The constructor now accepts a type, which is stored on the object.
27575             It also stores a new internal variable, 'm_experimental', which
27576             defines whether or not experimental features ought to be available.
27577             These features are still locked behind the CSP_NEXT flag, but that
27578             might not be the case forever.
27579         (WebCore::CSPDirectiveList::create):
27580             The static constructor wrapper now passes the type into the real
27581             constructor, which also now handles setting its internal variables.
27582         (WebCore::CSPDirectiveList::parse):
27583             'parse()' is given the header, so it makes sense to store it here as
27584             well, rather than in the create wrapper.
27585         (WebCore::CSPDirectiveList::addDirective):
27586             1.1 directives remain locked behind CSP_NEXT, but now also require
27587             that 'm_experimental' is set, signaling usage of the prefixed header
27588             and an implicit opt-in to 1.1.
27589         * page/ContentSecurityPolicy.h:
27590             Added two new types to the HeaderTypes enum: PrefixedReportOnly, and
27591             PrefixedEnforcePolicy. These map to 'X-WebKitCSP-Report-Only' and
27592             'X-WebKit-CSP', respectively.
27593
27594 2012-10-31  Roger Fong  <roger_fong@apple.com>
27595
27596         Change PopupMenu positioning on Windows such that behaviour on multiple monitors matches Windows standards.
27597         https://bugs.webkit.org/show_bug.cgi?id=100317
27598
27599         Reviewed by Sam Weinig.
27600
27601         The existing code determines which screen the popup menu "belongs" to by determining which screen the owning application's hwnd belongs to,
27602         where ownership is determined by how much of the hwnd is on which screen.
27603         To match what most Windows applications do, the owning screen should be whichever screen the drop down button belongs to.
27604         To determine which screen an element belongs to in Windows we need to pass in an hwnd for that element.
27605         However, since the drop down button is something that WebKit renders there is no hwnd.
27606
27607         To remedy this issue, we can temporarily move the popup menu's hwnd to match the position and size of the button,
27608         determine the correct screen, and then eventually move it back to the correct final position after the rest of 
27609         the calculations have been completed. This is all done in the same function call so no rendering of the popup menu occurs
27610         between the temporary and final positionings.
27611
27612         There's not really a good way of testing popup menus except manually, they're separate hwnds created outside of the WebView.
27613
27614         * platform/win/PopupMenuWin.cpp:
27615         (WebCore::monitorFromHwnd):
27616         (WebCore):
27617         (WebCore::PopupMenuWin::show):
27618         (WebCore::PopupMenuWin::calculatePositionAndSize):
27619
27620 2012-10-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
27621
27622         Added viewport at-rule to the CSS parser and tokenizer
27623         https://bugs.webkit.org/show_bug.cgi?id=95961
27624
27625         Reviewed by Kenneth Rohde Christiansen.
27626
27627         Add tokens and grammar rules to parse @-webkit-viewport blocks. Also add
27628         the newly parsed rule to the rule list.
27629
27630         This parser now implements the following part of the CSS Device Adaptation
27631         specification: http://www.w3.org/TR/css-device-adapt/#syntax
27632
27633         Test: css3/device-adapt/viewport-at-rule-parsing.html
27634
27635         * CMakeLists.txt:
27636         * GNUmakefile.list.am:
27637         * Target.pri:
27638         * WebCore.gypi:
27639         * WebCore.vcproj/WebCore.vcproj:
27640         * WebCore.xcodeproj/project.pbxproj:
27641         * css/CSSGrammar.y.in:
27642         * css/CSSParser.cpp:
27643         (WebCore::CSSParser::CSSParser):
27644         (WebCore::CSSParser::detectAtToken):
27645         (WebCore):
27646         (WebCore::CSSParser::createViewportRule):
27647         * css/CSSParser.h:
27648         (CSSParser):
27649         (WebCore::CSSParser::markViewportRuleBodyStart):
27650         (WebCore::CSSParser::markViewportRuleBodyEnd):
27651         (WebCore::CSSParser::inViewport):
27652
27653             These methods are needed by the next patch validating the properties.
27654             Some viewport properties are common to other rules but have different
27655             semantics, and accepts different keywords. The validation needs to be
27656             done in a different code path.
27657
27658         * css/CSSPropertySourceData.h:
27659         * css/CSSRule.cpp:
27660         (WebCore):
27661         (WebCore::CSSRule::cssText):
27662         (WebCore::CSSRule::destroy):
27663         (WebCore::CSSRule::reattach):
27664         (WebCore::CSSRule::reportMemoryUsage):
27665         * css/CSSRule.h:
27666         (CSSRule):
27667         (WebCore::CSSRule::isViewportRule):
27668         * css/StyleRule.cpp:
27669         (WebCore::StyleRuleBase::reportMemoryUsage):
27670         (WebCore::StyleRuleBase::destroy):
27671         (WebCore::StyleRuleBase::copy):
27672         (WebCore::StyleRuleBase::createCSSOMWrapper):
27673         (WebCore):
27674         (WebCore::StyleRuleViewport::StyleRuleViewport):
27675         (WebCore::StyleRuleViewport::~StyleRuleViewport):
27676         (WebCore::StyleRuleViewport::mutableProperties):
27677         (WebCore::StyleRuleViewport::setProperties):
27678         (WebCore::StyleRuleViewport::reportDescendantMemoryUsage):
27679         * css/StyleRule.h:
27680         (StyleRuleBase):
27681         (WebCore::StyleRuleBase::isViewportRule):
27682         (WebCore):
27683         (StyleRuleViewport):
27684         (WebCore::StyleRuleViewport::create):
27685         (WebCore::StyleRuleViewport::properties):
27686         (WebCore::StyleRuleViewport::copy):
27687         * css/WebKitCSSViewportRule.cpp: Added.
27688         (WebCore):
27689         (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
27690         (WebCore::WebKitCSSViewportRule::~WebKitCSSViewportRule):
27691         (WebCore::WebKitCSSViewportRule::style):
27692         (WebCore::WebKitCSSViewportRule::cssText):
27693         (WebCore::WebKitCSSViewportRule::reattach):
27694         (WebCore::WebKitCSSViewportRule::reportDescendantMemoryUsage):
27695         * css/WebKitCSSViewportRule.h: Added.
27696         (WebCore):
27697
27698 2012-10-31  Max Vujovic  <mvujovic@adobe.com>
27699
27700         [CSS Shaders] Validate types of built-in uniforms
27701         https://bugs.webkit.org/show_bug.cgi?id=98974
27702
27703         Reviewed by Dean Jackson.
27704
27705         Reject shaders which define built-in uniforms with the wrong type. For example, we reject a
27706         shader with the GLSL code "uniform float u_textureSize;" because u_textureSize should be a
27707         vec2, not a float.
27708
27709         Relevant Spec Section:
27710         https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html#shader-uniform-variables
27711
27712         Test: css3/filters/custom/invalid-custom-filter-uniform-types.html
27713
27714         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
27715         (WebCore):
27716         (WebCore::builtInUniformNameToTypeMap):
27717         (WebCore::validateSymbols):
27718
27719 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
27720
27721         Unreviewed, rolling out r133044.
27722         http://trac.webkit.org/changeset/133044
27723         https://bugs.webkit.org/show_bug.cgi?id=100888
27724
27725         Hits an ASSERT in the isolatedWorlds tests (Requested by
27726         abarth on #webkit).
27727
27728         * bindings/scripts/CodeGeneratorV8.pm:
27729         (NeedsToVisitDOMWrapper):
27730         (GenerateVisitDOMWrapper):
27731         (GenerateHeader):
27732         (GenerateImplementation):
27733         * bindings/v8/V8GCController.cpp:
27734         (WebCore::ObjectVisitor::ObjectVisitor):
27735         (WebCore::ObjectVisitor::visitDOMWrapper):
27736         (ObjectVisitor):
27737         (WebCore::rootForGC):
27738         (ImplicitConnection):
27739         (WebCore::ImplicitConnection::ImplicitConnection):
27740         (WebCore::ImplicitConnection::root):
27741         (WebCore::ImplicitConnection::wrapper):
27742         (WebCore):
27743         (WebCore::operator<):
27744         (WebCore::NodeVisitor::NodeVisitor):
27745         (WebCore::NodeVisitor::visitNodeWrapper):
27746         (NodeVisitor):
27747         (WebCore::NodeVisitor::applyGrouping):
27748         (WebCore::V8GCController::majorGCPrologue):
27749         * bindings/v8/V8GCController.h:
27750         (V8GCController):
27751         * bindings/v8/WrapperTypeInfo.h:
27752         (WebCore):
27753         (WebCore::WrapperTypeInfo::visitDOMWrapper):
27754         (WrapperTypeInfo):
27755         * bindings/v8/custom/V8NodeListCustom.cpp:
27756         (WebCore::V8NodeList::visitDOMWrapper):
27757         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
27758         (WebCore::V8SpeechRecognitionResult::visitDOMWrapper):
27759
27760 2012-10-31  Philip Rogers  <pdr@google.com>
27761
27762         Cache animationMode() in SVG animations.
27763         https://bugs.webkit.org/show_bug.cgi?id=99694
27764
27765         Reviewed by Eric Seidel.
27766
27767         This patch caches animationMode() which accounted for 25% of the CPU time of a simple
27768         animation benchmark! This is the 3rd patch for WK99694.
27769
27770         Background: SVGAnimationElement contains most of the shared animation logic for <animate>,
27771         <set>, <animateColor>, <animateTransform>, and <animateMotion>. <animateMotion> is the only
27772         animation element that can depend on other elements in the page. For example:
27773         <path id="mypath" d="M0 0 L 100 100Z"/> <!-- note, can be animated! -->
27774         <rect x="0" y="0" width="100" height="100" fill="green">
27775             <animateMotion dur="6s" repeatCount="indefinite">
27776                 <mpath xlink:href="#mypath"/>
27777             </animateMotion>
27778         </rect>
27779         See: http://www.w3.org/TR/SVG/single-page.html#animate-AnimateMotionElement
27780
27781         animationMode depends on several properties of an animation element: the set tag, whether
27782         the animation has a path, and the "values", "to", and "by" attributes. animationMode() was
27783         a hot function for two reasons:
27784         1) hasAttribute(SVGNames::valuesAttr) is expensive because we are unable to use
27785            fastHasAttribute. This is cacheable by simply calculating the animationMode when the
27786            "values" attribute changes.
27787         2) In the <animateMotion> case, determining if a path is empty or changed is expensive.
27788            AnimateMotion can have a path attribute, or it can have <mpath> children that reference
27789            a (possibly non-existent) <path> element elsewhere in the page. Before this patch we did
27790            this path lookup on every animation loop in case something changed. After this patch we
27791            only update AnimateMotion's path when it changes.
27792
27793         A previous patch, http://trac.webkit.org/changeset/132847, laid the groundwork for tracking
27794         <path> changes in <mpath>. This patch adds <mpath> to our resource tracking infrastructure
27795         to track when target <path>s change, instead of looking this up every time.
27796
27797         This refactoring is covered by existing tests.
27798         svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg fails after this patch
27799         because our element dependency tracking has a bug with duplicate ids; see WK99893.
27800
27801         * svg/SVGAnimateMotionElement.cpp:
27802         (WebCore::SVGAnimateMotionElement::parseAttribute):
27803         (WebCore::SVGAnimateMotionElement::updateAnimationPath):
27804
27805             animationPath() has been changed to updateAnimationPath() and should only be called
27806             when the animation path (path attribute, or mpath's referenced path) has changed.
27807
27808         (WebCore::SVGAnimateMotionElement::buildTransformForProgress):
27809         (WebCore::SVGAnimateMotionElement::updateAnimationMode):
27810
27811             If an animationPath exists, we use PathAnimation, otherwise we fall back to the normal
27812             updateAnimationMode() codepath.
27813
27814         (WebCore):
27815         * svg/SVGAnimateMotionElement.h:
27816         (SVGAnimateMotionElement):
27817         * svg/SVGAnimationElement.cpp:
27818         (WebCore::SVGAnimationElement::SVGAnimationElement):
27819         (WebCore::SVGAnimationElement::isSupportedAttribute):
27820         (WebCore::SVGAnimationElement::parseAttribute):
27821
27822             The from, by, and to attributes have been added so that we can track when they change
27823             and update the animation mode. Similarly for when the values attribute changes.
27824
27825         (WebCore::SVGAnimationElement::updateAnimationMode):
27826         * svg/SVGAnimationElement.h:
27827         (WebCore::SVGAnimationElement::animationMode):
27828         (SVGAnimationElement):
27829         (WebCore::SVGAnimationElement::setAnimationMode):
27830         (WebCore::SVGAnimationElement::calculateDistance):
27831         * svg/SVGMPathElement.cpp:
27832         (WebCore::SVGMPathElement::buildPendingResource):
27833
27834             It would be nice to move all the duplicated buildPendingResource() logic into a central
27835             place (SVGURIReference?) but for now it is copied. This function is nearly identical to
27836             SVGFEImageElement::buildPendingResource.
27837
27838         (WebCore):
27839         (WebCore::SVGMPathElement::clearResourceReferences):
27840         (WebCore::SVGMPathElement::insertedInto):
27841         (WebCore::SVGMPathElement::removedFrom):
27842         (WebCore::SVGMPathElement::svgAttributeChanged):
27843         (WebCore::SVGMPathElement::targetPathChanged):
27844         (WebCore::SVGMPathElement::notifyParentOfPathChange):
27845         * svg/SVGMPathElement.h:
27846         (SVGMPathElement):
27847         * svg/SVGPathElement.cpp:
27848
27849             When a <path>'s path changes, we need to notify any dependent <mpath> elements. This is
27850             typically handled with RenderSVGResource::markForLayoutAndParentResourceInvalidation
27851             but for the special-case of <mpath> we only need to track when the path's "d" attribute
27852             changes so invalidateMPathDependencies() has been added.
27853
27854         (WebCore::SVGPathElement::svgAttributeChanged):
27855         (WebCore::SVGPathElement::invalidateMPathDependencies):
27856         (WebCore):
27857         (WebCore::SVGPathElement::insertedInto):
27858         (WebCore::SVGPathElement::removedFrom):
27859         * svg/SVGPathElement.h:
27860         (SVGPathElement):
27861         * svg/SVGSetElement.cpp:
27862         (WebCore::SVGSetElement::SVGSetElement):
27863         (WebCore::SVGSetElement::updateAnimationMode):
27864         (WebCore):
27865         * svg/SVGSetElement.h:
27866         (SVGSetElement):
27867         * svg/animation/SVGSMILElement.cpp:
27868         (WebCore::SVGSMILElement::isSupportedAttribute):
27869
27870 2012-10-31  Beth Dakin  <bdakin@apple.com>
27871
27872         https://bugs.webkit.org/show_bug.cgi?id=100879
27873         ScrollingStateNode::cloneAndResetNode() should not be virtual
27874
27875         Reviewed by Simon Fraser.
27876
27877         cloneAndResetNode() is currently pure virtual and implemented only 
27878         in ScrollingStateScrollingNode. However, all of the work that it 
27879         does at this time is stuff that a generic ScrollingStateNode could 
27880         do. We should move this implementation to the base class so that it 
27881         does not need to be duplicated for future node types.
27882
27883         This patch also re-names cloneAndResetNode() to cloneAndReset()
27884         and correspondingly re-names cloneAndResetChildNodes() to 
27885         cloneAndResetChildren(). 
27886
27887         Finally the patch also changes the copy constructors of both of these 
27888         classes to take a const reference instead of a pointer.
27889
27890         * page/scrolling/ScrollingStateNode.cpp:
27891         (WebCore::ScrollingStateNode::ScrollingStateNode):
27892         (WebCore::ScrollingStateNode::cloneAndReset):
27893         (WebCore):
27894         (WebCore::ScrollingStateNode::cloneAndResetChildren):
27895         * page/scrolling/ScrollingStateNode.h:
27896         (ScrollingStateNode):
27897         * page/scrolling/ScrollingStateScrollingNode.cpp:
27898         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
27899         (WebCore):
27900         * page/scrolling/ScrollingStateScrollingNode.h:
27901         (ScrollingStateScrollingNode):
27902         * page/scrolling/ScrollingStateTree.cpp:
27903         (WebCore::ScrollingStateTree::commit):
27904
27905 2012-10-31  Tom Sepez  <tsepez@chromium.org>
27906         
27907         Malformed X-XSS-Protection headers not reported.
27908         https://bugs.webkit.org/show_bug.cgi?id=100538
27909
27910         Reviewed by Adam Barth.
27911
27912         Re-writes X-XSS-Protection header parser to be more particular, and to
27913         return better information on error.
27914
27915         Tests: http/tests/security/xssAuditor/malformed-xss-protection-header-1.html
27916                http/tests/security/xssAuditor/malformed-xss-protection-header-2.html
27917                http/tests/security/xssAuditor/malformed-xss-protection-header-4.html
27918                http/tests/security/xssAuditor/xss-protection-parsing-02.html
27919
27920         * html/parser/XSSAuditor.cpp:
27921         (WebCore::XSSAuditor::init):
27922         Detect error return code and log console message with details
27923         * platform/network/HTTPParsers.cpp:
27924         (WebCore):
27925         (WebCore::skipWhiteSpace):
27926         Use safe less-than comparsion in case called with pos already out of range.
27927         (WebCore::skipToken):
27928         Fix comparison to properly reject substrings at end of input.  Prevent advancing
27929         returned position when match fails, so that this may someday be used to match
27930         optional tokens.
27931         (WebCore::parseXSSProtectionHeader):
27932         Return detailled error status. Avoid needless string copy.
27933         * platform/network/HTTPParsers.h:
27934         Add new error returns for x-xss-protection header parser.
27935         
27936 2012-10-31  Simon Fraser  <simon.fraser@apple.com>
27937
27938         REGRESSION (tile cache layers): bits of tiled layers are missing with certain 3D transforms
27939         https://bugs.webkit.org/show_bug.cgi?id=100808
27940         <rdar://problem/12562541>
27941
27942         Reviewed by Dean Jackson.
27943
27944         When projecting rects down into transformed layers, the projection can fail with severe
27945         3D rotations if the computed w component in TransformationMatrix::projectPoint() is negative.
27946         In this case we already clamp, but the fact that we clamped doesn't make it out to
27947         GraphicsLayerCA::computeVisibleRect() which resulted in incorrect visible rects being
27948         computed.
27949         
27950         Fix by propagating the fact that clamping occurred out of the TransformState functions
27951         which can clamp. In computeVisibleRect(), simply consider the entire layer bounds
27952         to be visible if clamping occurred.
27953
27954         Tests: compositing/tiling/rotated-tiled-clamped.html
27955                compositing/tiling/rotated-tiled-preserve3d-clamped.html
27956
27957         * platform/graphics/ca/GraphicsLayerCA.cpp:
27958         (WebCore::GraphicsLayerCA::computeVisibleRect): If either the applyTransform()
27959         or the state.mappedQuad() clamped, use our bounds as the visible rect.
27960         * platform/graphics/transforms/TransformState.cpp:
27961         (WebCore::TransformState::applyTransform): Pass out clamping state.
27962         (WebCore::TransformState::flatten): Ditto.
27963         (WebCore::TransformState::mappedPoint): Ditto.
27964         (WebCore::TransformState::mappedQuad): Ditto.
27965         (WebCore::TransformState::flattenWithTransform): Ditto. No need to initialize
27966         wasClamped, since this function is internal.
27967         * platform/graphics/transforms/TransformState.h:
27968         (TransformState):
27969         * platform/graphics/transforms/TransformationMatrix.cpp:
27970         (WebCore::TransformationMatrix::projectQuad): If any point projection clamped,
27971         set the flag to say we clamped.
27972         * platform/graphics/transforms/TransformationMatrix.h:
27973         (TransformationMatrix):
27974
27975 2012-10-31  Tiancheng Jiang  <tijiang@rim.com>
27976
27977         Change bubble message style to BB10 UX spec.
27978         https://bugs.webkit.org/show_bug.cgi?id=100862
27979
27980         Reviewed by Rob Buis.
27981
27982         RIM PR 198108
27983         Internal Reviewed by Otto Cheung.
27984         No new tests.
27985
27986         * css/themeBlackBerry.css:
27987         (::-webkit-validation-bubble-message): Added.
27988         (::-webkit-validation-bubble-arrow): Added.
27989         (::-webkit-validation-bubble-heading): Added.
27990
27991 2012-10-31  Mike West  <mkwst@chromium.org>
27992
27993         Prefer document->addConsoleMessage to document->domWindow->console->addMessage.
27994         https://bugs.webkit.org/show_bug.cgi?id=100850
27995
27996         Reviewed by Adam Barth.
27997
27998         For historical reasons, a few places in WebCore talk to Console directly
27999         via 'document()->domWindow()->console()->addMessage(...)'. This is more
28000         safely wrapped by calling 'addConsoleMessage' on the Document itself.
28001
28002         No visible functionality should change; we'll simply avoid potential
28003         null dereferences in the future.
28004
28005         * html/HTMLFormElement.cpp:
28006         (WebCore::HTMLFormElement::validateInteractively):
28007         * html/canvas/WebGLRenderingContext.cpp:
28008         (WebCore):
28009         (WebCore::WebGLRenderingContext::printWarningToConsole):
28010         * loader/FrameLoader.cpp:
28011         (WebCore::FrameLoader::reportLocalLoadFailed):
28012         * loader/MixedContentChecker.cpp:
28013         (WebCore::MixedContentChecker::logWarning):
28014         * loader/appcache/ApplicationCacheGroup.cpp:
28015         (WebCore::ApplicationCacheGroup::abort):
28016         (WebCore::ApplicationCacheGroup::didReceiveResponse):
28017         (WebCore::ApplicationCacheGroup::didFinishLoading):
28018         (WebCore::ApplicationCacheGroup::didFail):
28019         (WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
28020         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
28021         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
28022         * loader/cache/CachedResourceLoader.cpp:
28023         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
28024
28025 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28026
28027         Web Inspector: frame chooser does not work on subsequent inspector open.
28028         https://bugs.webkit.org/show_bug.cgi?id=100771
28029
28030         Reviewed by Yury Semikhatsky.
28031
28032         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28033         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28034         - Remove remains of the front-end reused signal from InspectorAgent
28035         - Send execution contexts post clear window object instead of post commit load.
28036
28037         * inspector/InspectorAgent.cpp:
28038         (WebCore::InspectorAgent::InspectorAgent):
28039         (WebCore::InspectorAgent::clearFrontend):
28040         (WebCore::InspectorAgent::didCommitLoad):
28041         * inspector/InspectorAgent.h:
28042         (InspectorAgent):
28043         * inspector/InspectorInstrumentation.cpp:
28044         (WebCore):
28045         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28046         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28047         * inspector/InspectorInstrumentation.h:
28048         (InspectorInstrumentation):
28049         * inspector/InspectorPageAgent.cpp:
28050         (WebCore::InspectorPageAgent::restore):
28051         * inspector/InspectorRuntimeAgent.cpp:
28052         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28053         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28054         (WebCore::InspectorRuntimeAgent::run):
28055         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28056         * inspector/InspectorRuntimeAgent.h:
28057         (InspectorRuntimeAgent):
28058         * inspector/InstrumentingAgents.h:
28059         (WebCore):
28060         (WebCore::InstrumentingAgents::InstrumentingAgents):
28061         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28062         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28063         (InstrumentingAgents):
28064         * inspector/PageRuntimeAgent.cpp:
28065         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28066         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28067         (WebCore::PageRuntimeAgent::setFrontend):
28068         (WebCore::PageRuntimeAgent::clearFrontend):
28069         (WebCore::PageRuntimeAgent::enable):
28070         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28071         * inspector/PageRuntimeAgent.h:
28072         (PageRuntimeAgent):
28073         * inspector/WorkerRuntimeAgent.cpp:
28074         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28075         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28076         (WebCore::WorkerRuntimeAgent::run):
28077         (WebCore):
28078         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28079         * inspector/WorkerRuntimeAgent.h:
28080         (WorkerRuntimeAgent):
28081
28082 2012-10-31  Kondapally Kalyan  <kalyan.kondapally@intel.com>
28083
28084         [Qt][EFL][AC][WK2]TextureMapperLayer backing store contents are drawn upside down on screen.
28085         https://bugs.webkit.org/show_bug.cgi?id=100845.
28086
28087         Reviewed by Noam Rosenthal.
28088
28089         WebGL displays the Canvas with (0,0) being the bottom left corner.
28090         In GraphicsSurface::platformPaintToTextureMapper we don't set ShouldFlipTexture
28091         flag before painting to TextureMapper.
28092         It results in backing store contents being drawn upside down on screen.
28093         This patch enables ShouldFlipTexture flag when TextureMapperLayer renders 
28094         it's backing store contents into a TextureMapper.
28095
28096         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
28097         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
28098
28099 2012-10-31  Noam Rosenthal  <noam.rosenthal@nokia.com>
28100
28101         [Texmap] Enable filter animations in GraphicsLayerAnimation
28102         https://bugs.webkit.org/show_bug.cgi?id=100318
28103
28104         Reviewed by Kenneth Rohde Christiansen.
28105
28106         Use the same method of animating filters in WebCore to animate filters for TextureMapper.
28107         Added the appropriate methods to GraphicsLayerAnimation and TextureMapperLayer.
28108
28109         Tested by LayoutTests/css3/filters/filter-animation-hw.html and other tests.
28110
28111         * platform/graphics/GraphicsLayerAnimation.cpp:
28112         (WebCore):
28113         (WebCore::blendFunc):
28114         (WebCore::applyFilterAnimation):
28115         (WebCore::GraphicsLayerAnimation::applyInternal):
28116         * platform/graphics/GraphicsLayerAnimation.h:
28117         (Client):
28118         * platform/graphics/texmap/TextureMapperLayer.cpp:
28119         (WebCore::TextureMapperLayer::intermediateSurfaceRect):
28120         (WebCore::TextureMapperLayer::shouldPaintToIntermediateSurface):
28121         (WebCore::TextureMapperLayer::paintRecursive):
28122         (WebCore::TextureMapperLayer::syncAnimations):
28123         * platform/graphics/texmap/TextureMapperLayer.h:
28124         (TextureMapperLayer):
28125         (WebCore::TextureMapperLayer::setFilters):
28126         (WebCore::TextureMapperLayer::setAnimatedFilters):
28127
28128 2012-10-31  Adam Barth  <abarth@webkit.org>
28129
28130         [V8] Garbage collection should use opaque roots rather than implicit references
28131         https://bugs.webkit.org/show_bug.cgi?id=100707
28132
28133         Reviewed by Kentaro Hara.
28134
28135         This patch replaces visitDOMWrapper with opaqueRootForGC. The
28136         former used to inform V8 of implicit relationships between wrapper
28137         objects on a per-wrapper basis. That meant that we needed to know which
28138         DOMDataStore a given wrapper was in during garbage collection.
28139
28140         After this patch, we now use object groups rather than implicit
28141         references to inform V8 of these relationships. That has two benefits:
28142
28143         1) We no longer need to know which DOMDataStore a wrapper belongs
28144            because we don't need to find the exact source wrapper for the
28145            implicit connection.
28146
28147         2) We can now handle more complicated implicit relationships, for
28148            example when some of the intervening objects haven't had their
28149            JavaScript wrappers created yet.
28150
28151         This patch also unlocks to paths of future development:
28152         A) Fixing the remaining failures in fast/dom/gc-9.html
28153         B) Enumerating DOM wrappers entirely from V8 rather than from the
28154            DOMWrapperMaps (so that we can move more object towards using
28155            IntrusiveDOMWrapperMaps, which aren't enumerable from WebCore).
28156
28157         * bindings/scripts/CodeGeneratorV8.pm:
28158         (NeedsCustomOpaqueRootForGC):
28159         (GenerateOpaqueRootForGC):
28160         (GenerateHeader):
28161         (GenerateImplementation):
28162         * bindings/v8/V8GCController.cpp:
28163         (ImplicitConnection):
28164         (WebCore::ImplicitConnection::ImplicitConnection):
28165         (WebCore::ImplicitConnection::root):
28166         (WebCore::ImplicitConnection::wrapper):
28167         (WebCore):
28168         (WebCore::operator<):
28169         (WrapperGrouper):
28170         (WebCore::WrapperGrouper::WrapperGrouper):
28171         (WebCore::WrapperGrouper::addToGroup):
28172         (WebCore::WrapperGrouper::keepAlive):
28173         (WebCore::WrapperGrouper::apply):
28174         (WebCore::ObjectVisitor::ObjectVisitor):
28175         (WebCore::ObjectVisitor::visitDOMWrapper):
28176         (ObjectVisitor):
28177         (WebCore::V8GCController::opaqueRootForGC):
28178         (WebCore::NodeVisitor::NodeVisitor):
28179         (WebCore::NodeVisitor::visitNodeWrapper):
28180         (NodeVisitor):
28181         (WebCore::V8GCController::majorGCPrologue):
28182         * bindings/v8/V8GCController.h:
28183         (WebCore):
28184         (V8GCController):
28185         * bindings/v8/WrapperTypeInfo.h:
28186         (WebCore):
28187         (WebCore::WrapperTypeInfo::opaqueRootForGC):
28188         (WrapperTypeInfo):
28189         * bindings/v8/custom/V8NodeListCustom.cpp:
28190         (WebCore::V8NodeList::opaqueRootForGC):
28191         * bindings/v8/custom/V8SpeechRecognitionResultCustom.cpp:
28192         (WebCore::V8SpeechRecognitionResult::opaqueRootForGC):
28193
28194 2012-10-31  Alexei Filippov  <alph@chromium.org>
28195
28196         Web Inspector: Add total node to native memory snapshot tree
28197         https://bugs.webkit.org/show_bug.cgi?id=100843
28198
28199         Reviewed by Yury Semikhatsky.
28200
28201         * inspector/front-end/NativeMemorySnapshotView.js:
28202         (WebInspector.NativeSnapshotDataGrid):
28203         (WebInspector.NativeSnapshotNode):
28204         (WebInspector.MemoryBlockViewProperties._initialize):
28205
28206 2012-10-31  Arpita Bahuguna  <arpitabahuguna@gmail.com>
28207
28208         Table with percentage column widths doesn't scale to fill the entire width of a table containing it
28209         https://bugs.webkit.org/show_bug.cgi?id=11645
28210
28211         Reviewed by Julien Chaffraix.
28212
28213         When the inner (or nested) table has auto width and column(s) with
28214         percent width, we should scale our column(s) to the width of the
28215         containing table (unless it has auto width).
28216
28217         Test: fast/table/scale-nested-percent-width-cols.html
28218
28219         * rendering/AutoTableLayout.cpp:
28220         (WebCore::shouldScaleColumns):
28221         If the containing table width was of percent type, we were disallowing
28222         our inner or nested table's column from scaling to the size of the parent
28223         table. We should prohibit the scaling of the nested table columns only
28224         if the parent table has auto width.
28225
28226 2012-10-31  Ian Vollick  <vollick@chromium.org>
28227
28228         Add support for text-based repaint testing
28229         https://bugs.webkit.org/show_bug.cgi?id=100584
28230
28231         Reviewed by Simon Fraser.
28232
28233         Allows tracked repaint rects to be dumped as text.
28234
28235         The following layout tests have been converted:
28236           fast/repaint/layer-full-repaint.html
28237           fast/repaint/overflow-flipped-writing-mode-table.html
28238
28239         * WebCore.exp.in:
28240           Exports for:
28241             FrameView::setTracksRepaints(bool)
28242             Frame::trackedRepaintRectsAsText() const
28243         * page/Frame.cpp:
28244         (WebCore::Frame::trackedRepaintRectsAsText):
28245           Returns a string containing information on all tracked repaint rects.
28246         * page/FrameView.cpp:
28247         (WebCore::FrameView::setTracksRepaints):
28248           Rather than calling m_trackedRepaintRects.clear() directly, I've
28249           called resetTrackedRepaints(). This will allow us to do more
28250           sophisticated resetting when we start tracking repaint rects for
28251           composited layers.
28252         (WebCore::FrameView::trackedRepaintRectsAsText):
28253           Provides the string returned by Frame::trackedRepaintRectsAsText.
28254         * testing/Internals.cpp:
28255         (WebCore::Internals::repaintRectsAsText):
28256           Returns Frame::trackedRepaintRectsAsText.
28257         (WebCore):
28258         (WebCore::Internals::startTrackingRepaints):
28259           Calls FrameView::setTracksRepaints(true)
28260         (WebCore::Internals::stopTrackingRepaints):
28261           Calls FrameView::setTracksRepaints(false)
28262         * testing/Internals.h:
28263         * testing/Internals.idl:
28264           Declarations for:
28265             repaintRectsAsText
28266             startTrackingRepaints
28267             stopTrackingRepaints
28268
28269 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28270
28271         Web Inspector: page crash when pausing in dedicated worker
28272         https://bugs.webkit.org/show_bug.cgi?id=100837
28273
28274         Reviewed by Pavel Feldman.
28275
28276         Pass debugger agent to InjectedScriptHost::init in case of workers.
28277
28278         Test: inspector-protocol/debugger-pause-dedicated-worker.html
28279
28280         * inspector/WorkerInspectorController.cpp:
28281         (WebCore::WorkerInspectorController::WorkerInspectorController):
28282
28283 2012-10-31  Zoltan Nyul  <zoltan.nyul@intel.com>
28284
28285         perspective-origin should ignore values with more then two lengths and use the default values
28286         https://bugs.webkit.org/show_bug.cgi?id=100835
28287
28288         Reviewed by Kenneth Rohde Christiansen.
28289
28290         Perspective-origin should ignore values with more then two lengths
28291         (http://www.w3.org/TR/css3-transforms/#perspective-origin) and use
28292         the default values instead of parsing it as an unlimited-length list,
28293         of which all but the first two values are ignored. This makes perspective-origin 
28294         behave similar to transform-origin which uses default value in this case,
28295         as well as firefox does the same.
28296
28297         Test: transforms/2d/computed-style-origin.html
28298
28299         * css/CSSParser.cpp:
28300         (WebCore::CSSParser::parsePerspectiveOrigin):
28301
28302 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28303
28304         Unreviewed, rolling out r133016.
28305         http://trac.webkit.org/changeset/133016
28306         https://bugs.webkit.org/show_bug.cgi?id=100856
28307
28308         broke compile-webkit on several bots (Requested by podivilov
28309         on #webkit).
28310
28311         * CMakeLists.txt:
28312         * GNUmakefile.list.am:
28313         * Target.pri:
28314         * WebCore.gypi:
28315         * WebCore.vcproj/WebCore.vcproj:
28316         * WebCore.xcodeproj/project.pbxproj:
28317         * dom/DeviceOrientationClient.h:
28318         (DeviceOrientationClient):
28319         * dom/DeviceOrientationController.cpp:
28320         (WebCore::DeviceOrientationController::DeviceOrientationController):
28321         (WebCore):
28322         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28323         (WebCore::DeviceOrientationController::timerFired):
28324         (WebCore::DeviceOrientationController::addListener):
28325         (WebCore::DeviceOrientationController::removeListener):
28326         (WebCore::DeviceOrientationController::removeAllListeners):
28327         (WebCore::DeviceOrientationController::suspendEventsForAllListeners):
28328         (WebCore::DeviceOrientationController::resumeEventsForAllListeners):
28329         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28330         (WebCore::DeviceOrientationController::supplementName):
28331         * dom/DeviceOrientationController.h:
28332         (WebCore):
28333         (DeviceOrientationController):
28334         (WebCore::DeviceOrientationController::isActive):
28335         (WebCore::DeviceOrientationController::client):
28336         (WebCore::DeviceOrientationController::from):
28337         * dom/Document.cpp:
28338         (WebCore::Document::suspendActiveDOMObjects):
28339         (WebCore::Document::resumeActiveDOMObjects):
28340         * loader/EmptyClients.h:
28341         (WebCore::EmptyDeviceOrientationClient::startUpdating):
28342         (WebCore::EmptyDeviceOrientationClient::stopUpdating):
28343         * page/DOMWindow.cpp:
28344         (WebCore::DOMWindow::addEventListener):
28345         (WebCore::DOMWindow::removeEventListener):
28346         (WebCore::DOMWindow::removeAllEventListeners):
28347         * page/DeviceClient.h: Removed.
28348         * page/DeviceController.cpp: Removed.
28349         * page/DeviceController.h: Removed.
28350
28351 2012-10-31  Antti Koivisto  <antti@apple.com>
28352
28353         Remove stray calls to mutableAttributeData()
28354         https://bugs.webkit.org/show_bug.cgi?id=100849
28355
28356         Reviewed by Andreas Kling.
28357
28358         Changing the cached class attribute value does not require mutable attribute data.
28359
28360         * dom/Element.cpp:
28361         (WebCore::Element::classAttributeChanged):
28362         * dom/ElementAttributeData.h:
28363         (WebCore::ElementAttributeData::clearClass):
28364         
28365             Make const like setClass().
28366
28367 2012-10-31  Mike West  <mkwst@chromium.org>
28368
28369         X-Frame-Options console message should be associated with a request.
28370         https://bugs.webkit.org/show_bug.cgi?id=100735
28371
28372         Reviewed by Pavel Feldman.
28373
28374         In 99941, we added the possibility to tie console messages to requests,
28375         which enables automatic generation of stack traces, line numbers, etc.
28376         making the error simpler to diagnose for web developers. This patch
28377         uses the piping laid in that patch to improve the console message
28378         generated when a document is blocked by X-Frame-Options.
28379
28380         No new tests; the functionality is covered by changes to existing tests.
28381
28382         * dom/Document.cpp:
28383         (WebCore::Document::processHttpEquiv):
28384             Grab the request identifier from the currently active DocumentLoader
28385             and pass it into the console message.
28386         * loader/MainResourceLoader.cpp:
28387         (WebCore::MainResourceLoader::didReceiveResponse):
28388             Grab the request identifier from the MainResourceLoader, and pass it
28389             into the console message.
28390
28391 2012-10-31  Sheriff Bot  <webkit.review.bot@gmail.com>
28392
28393         Unreviewed, rolling out r133015.
28394         http://trac.webkit.org/changeset/133015
28395         https://bugs.webkit.org/show_bug.cgi?id=100847
28396
28397         broke Apple Win Debug compilation (Requested by podivilov on
28398         #webkit).
28399
28400         * inspector/InspectorAgent.cpp:
28401         (WebCore::InspectorAgent::InspectorAgent):
28402         (WebCore::InspectorAgent::clearFrontend):
28403         (WebCore::InspectorAgent::didCommitLoad):
28404         * inspector/InspectorAgent.h:
28405         (WebCore::InspectorAgent::didCommitLoadFired):
28406         (InspectorAgent):
28407         * inspector/InspectorInstrumentation.cpp:
28408         (WebCore):
28409         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28410         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28411         (WebCore::InspectorInstrumentation::runtimeAgentEnabled):
28412         * inspector/InspectorInstrumentation.h:
28413         (InspectorInstrumentation):
28414         * inspector/InspectorPageAgent.cpp:
28415         (WebCore::InspectorPageAgent::restore):
28416         * inspector/InspectorRuntimeAgent.cpp:
28417         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28418         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28419         (WebCore::InspectorRuntimeAgent::run):
28420         (WebCore):
28421         (WebCore::InspectorRuntimeAgent::pauseWorkerContext):
28422         * inspector/InspectorRuntimeAgent.h:
28423         (InspectorRuntimeAgent):
28424         * inspector/InstrumentingAgents.h:
28425         (WebCore):
28426         (WebCore::InstrumentingAgents::InstrumentingAgents):
28427         (WebCore::InstrumentingAgents::inspectorRuntimeAgent):
28428         (WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
28429         (InstrumentingAgents):
28430         * inspector/PageRuntimeAgent.cpp:
28431         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28432         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28433         (WebCore::PageRuntimeAgent::setFrontend):
28434         (WebCore::PageRuntimeAgent::clearFrontend):
28435         (WebCore::PageRuntimeAgent::enable):
28436         (WebCore::PageRuntimeAgent::didClearWindowObject):
28437         * inspector/PageRuntimeAgent.h:
28438         (PageRuntimeAgent):
28439         * inspector/WorkerRuntimeAgent.cpp:
28440         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28441         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28442         * inspector/WorkerRuntimeAgent.h:
28443         (WorkerRuntimeAgent):
28444
28445 2012-10-31  Kihong Kwon  <kihong.kwon@samsung.com>
28446
28447         Add DeviceController base-class to remove duplication of DeviceXXXControler
28448         https://bugs.webkit.org/show_bug.cgi?id=96894
28449
28450         Reviewed by Hajime Morita.
28451
28452         Add DeviceController which is extracted from DeviceOrientationController to remove duplication.
28453         And soon-to-be-added DeviceMotionController and ProximityController.
28454
28455         Covered by existing tests.
28456
28457         * CMakeLists.txt:
28458         * GNUmakefile.list.am:
28459         * Target.pri:
28460         * WebCore.gypi:
28461         * WebCore.vcproj/WebCore.vcproj:
28462         * WebCore.xcodeproj/project.pbxproj:
28463         * dom/DeviceOrientationClient.h:
28464         * dom/DeviceOrientationController.cpp:
28465         Remove member functions to move to DeviceController.
28466         - addListener(), removeListener(), removeAllListeners(), isActive()
28467         (WebCore::DeviceOrientationController::DeviceOrientationController):
28468         (WebCore::DeviceOrientationController::didChangeDeviceOrientation):
28469         (WebCore::DeviceOrientationController::client):
28470         (WebCore::DeviceOrientationController::hasLastData):
28471         (WebCore::DeviceOrientationController::getLastEvent):
28472         (WebCore::DeviceOrientationController::from):
28473         (WebCore):
28474         * dom/DeviceOrientationController.h:
28475         (WebCore):
28476         (WebCore::DeviceOrientationController::~DeviceOrientationController):
28477         (DeviceOrientationController):
28478         * dom/Document.cpp:
28479         Remove suspendEventsForAllListeners() and resumeEventsForAllListeners() function calls.
28480         These calls can be made by checking activeDOMObjectsAreSuspended() and activeDOMObjectsAreStopped() before dispatchEvent.
28481         (WebCore::Document::suspendActiveDOMObjects):
28482         (WebCore::Document::resumeActiveDOMObjects):
28483         * loader/EmptyClients.h:
28484         (EmptyDeviceClient):
28485         (WebCore::EmptyDeviceClient::startUpdating):
28486         (WebCore::EmptyDeviceClient::stopUpdating):
28487         (WebCore):
28488         * page/DOMWindow.cpp:
28489         (WebCore::DOMWindow::addEventListener):
28490         (WebCore::DOMWindow::removeEventListener):
28491         (WebCore::DOMWindow::removeAllEventListeners):
28492         * page/DeviceClient.h: Added.
28493         (WebCore):
28494         (DeviceClient):
28495         (WebCore::DeviceClient::~DeviceClient):
28496         * page/DeviceController.cpp: Added.
28497         DeviceController has extracted functions from DeviceOrientationController and DeviceMotionController.
28498         - addDeviceEventListener(), removeDeviceEventlistener(), removeAllDeviceEventListeners(), dispatchDeviceEvent()
28499         All kind of device event controller which has DeviceClient can be inherited from DeviceController.
28500         (WebCore):
28501         (WebCore::DeviceController::DeviceController):
28502         (WebCore::DeviceController::addDeviceEventListener):
28503         (WebCore::DeviceController::removeDeviceEventListener):
28504         (WebCore::DeviceController::removeAllDeviceEventListeners):
28505         (WebCore::DeviceController::dispatchDeviceEvent):
28506         (WebCore::DeviceController::fireDeviceEvent):
28507         * page/DeviceController.h: Added.
28508         (WebCore):
28509         (DeviceController):
28510         (WebCore::DeviceController::~DeviceController):
28511         (WebCore::DeviceController::isActive):
28512         (WebCore::DeviceController::client):
28513         (WebCore::DeviceController::hasLastData):
28514         (WebCore::DeviceController::getLastEvent):
28515
28516 2012-10-31  Pavel Feldman  <pfeldman@chromium.org>
28517
28518         Web Inspector: frame chooser does not work on subsequent inspector open.
28519         https://bugs.webkit.org/show_bug.cgi?id=100771
28520
28521         Reviewed by Yury Semikhatsky.
28522
28523         - Make WorkerRuntimeAgent and PageRuntimeAgent register themselves in the instrumenting agents independently
28524         - Move pause / run worker handling from InspectorRuntimeAgent into WorkerRuntimeAgent
28525         - Remove remains of the front-end reused signal from InspectorAgent
28526         - Send execution contexts post clear window object instead of post commit load.
28527
28528         * inspector/InspectorAgent.cpp:
28529         (WebCore::InspectorAgent::InspectorAgent):
28530         (WebCore::InspectorAgent::clearFrontend):
28531         (WebCore::InspectorAgent::didCommitLoad):
28532         * inspector/InspectorAgent.h:
28533         (InspectorAgent):
28534         * inspector/InspectorInstrumentation.cpp:
28535         (WebCore):
28536         (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl):
28537         (WebCore::InspectorInstrumentation::willEvaluateWorkerScript):
28538         * inspector/InspectorInstrumentation.h:
28539         (InspectorInstrumentation):
28540         * inspector/InspectorPageAgent.cpp:
28541         (WebCore::InspectorPageAgent::restore):
28542         * inspector/InspectorRuntimeAgent.cpp:
28543         (WebCore::InspectorRuntimeAgent::InspectorRuntimeAgent):
28544         (WebCore::InspectorRuntimeAgent::~InspectorRuntimeAgent):
28545         (WebCore::InspectorRuntimeAgent::run):
28546         (WebCore::InspectorRuntimeAgent::setScriptDebugServer):
28547         * inspector/InspectorRuntimeAgent.h:
28548         (InspectorRuntimeAgent):
28549         * inspector/InstrumentingAgents.h:
28550         (WebCore):
28551         (WebCore::InstrumentingAgents::InstrumentingAgents):
28552         (WebCore::InstrumentingAgents::workerRuntimeAgent):
28553         (WebCore::InstrumentingAgents::setWorkerRuntimeAgent):
28554         (InstrumentingAgents):
28555         * inspector/PageRuntimeAgent.cpp:
28556         (WebCore::PageRuntimeAgent::PageRuntimeAgent):
28557         (WebCore::PageRuntimeAgent::~PageRuntimeAgent):
28558         (WebCore::PageRuntimeAgent::setFrontend):
28559         (WebCore::PageRuntimeAgent::clearFrontend):
28560         (WebCore::PageRuntimeAgent::enable):
28561         (WebCore::PageRuntimeAgent::didCreateMainWorldContext):
28562         * inspector/PageRuntimeAgent.h:
28563         (PageRuntimeAgent):
28564         * inspector/WorkerRuntimeAgent.cpp:
28565         (WebCore::WorkerRuntimeAgent::WorkerRuntimeAgent):
28566         (WebCore::WorkerRuntimeAgent::~WorkerRuntimeAgent):
28567         (WebCore::WorkerRuntimeAgent::run):
28568         (WebCore):
28569         (WebCore::WorkerRuntimeAgent::pauseWorkerContext):
28570         * inspector/WorkerRuntimeAgent.h:
28571         (WorkerRuntimeAgent):
28572
28573 2012-10-31  Keishi Hattori  <keishi@webkit.org>
28574
28575         Calendar picker can flicker when opened from the suggestion picker
28576         https://bugs.webkit.org/show_bug.cgi?id=100816
28577
28578         Reviewed by Kent Tamura.
28579
28580         Calendar picker was opening before the hiding completed.
28581
28582         No new tests. Added test to date-suggestion-picker-key-operations.html.
28583
28584         * Resources/pagepopups/pickerCommon.js: Added didHide event.
28585         * Resources/pagepopups/suggestionPicker.js:
28586         (SuggestionPicker.prototype.selectEntry): Use didHide event so we don't open the calendar picker prematurely.
28587         (SuggestionPicker._handleWindowDidHide): When the window finished hiding, open the calendar picker.
28588
28589 2012-10-31  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28590
28591         Reset binding test result after r132973
28592         https://bugs.webkit.org/show_bug.cgi?id=99178
28593
28594         Unreviewed gardening.
28595
28596         * bindings/scripts/test/JS/JSFloat64Array.cpp:
28597         (WebCore::getJSFloat64ArrayConstructorTable):
28598         (WebCore::JSFloat64ArrayConstructor::getOwnPropertySlot):
28599         (WebCore::JSFloat64ArrayConstructor::getOwnPropertyDescriptor):
28600
28601 2012-10-31  Mike West  <mkwst@chromium.org>
28602
28603         Script run from an isolated world should bypass a page's CSP.
28604         https://bugs.webkit.org/show_bug.cgi?id=97398
28605
28606         Reviewed by Adam Barth.
28607
28608         A page's Content Security Policy currently applies to all resources
28609         loaded, regardless of their source. That generally makes sense, but
28610         proves problematic when considering script run from an isolated
28611         world (Chrome extensions, for instance). These scripts should be allowed
28612         to inject resources into a page's DOM without eiher being restricted by
28613         the page's active CSP, or generating violation reports that spam the
28614         page owner.
28615
28616         Ideally, the isolated world could define its own Content Security Policy
28617         which should be applied to resources it loads. For the moment, this
28618         patch accepts a String that we can parse later on, but only uses it in
28619         a binary way. If a non-empty policy String is provided, we bypass the
28620         main world's CSP checks. If an empty String is provided, the main
28621         world's CSP checks remain active.
28622
28623         Test: http/tests/security/isolatedWorld/bypass-main-world-csp.html
28624
28625         (WebCore::isolatedWorldContentSecurityPolicies):
28626         (WebCore::DOMWrapperWorld::isolatedWorldHasContentSecurityPolicy):
28627         (WebCore::DOMWrapperWorld::setIsolatedWorldContentSecurityPolicy):
28628         (WebCore::DOMWrapperWorld::clearIsolatedWorldContentSecurityPolicy):
28629         * bindings/v8/DOMWrapperWorld.h:
28630         (DOMWrapperWorld):
28631             Mechanisms for setting and clearing Content Security Policies from
28632             isolated worlds; implemented in the same HashMappy way as
28633             SecurityOrigin.
28634         * bindings/v8/ScriptController.cpp:
28635         (WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
28636         (WebCore):
28637         * bindings/v8/ScriptController.h:
28638         (ScriptController):
28639             Adding a method to ScriptController to query the state of the
28640             current world's Content Security Policy. We'll drop this once we can
28641             apply a policy more directly, but for the moment it's necessary for
28642             the next bit.
28643         * loader/cache/CachedResourceLoader.cpp:
28644         (WebCore::CachedResourceLoader::canRequest):
28645             Check the new ScriptController method, and only perform CSP checks
28646             when loading resources if we're executing code from the main world,
28647             or an isolated world with no Content Security Policy set.
28648
28649 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28650
28651         Unreviewed, attempt to fix the release build by not exporting symbols that aren't defined there.
28652
28653         * WebCore.exp.in:
28654
28655 2012-10-31  Yury Semikhatsky  <yurys@chromium.org>
28656
28657         Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
28658         https://bugs.webkit.org/show_bug.cgi?id=100824
28659
28660         Reviewed by Alexander Pavlov.
28661
28662         In many classes we have pointer to a client object. These references should be
28663         reported as weak pointers and the client's memory usage should be reported when
28664         the client is reached from its instrumented owner where we know exact type of
28665         the client. Otherwise we would need to add reportMemoryUsage to all client
28666         interfaces which places additional burden on the client implementers and blurs
28667         the instrumentation boundaries.
28668
28669         * inspector/InspectorController.cpp:
28670         (WebCore::InspectorController::reportMemoryUsage):
28671         * inspector/InspectorDebuggerAgent.cpp:
28672         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
28673         * inspector/InspectorMemoryAgent.cpp:
28674         (WebCore::InspectorMemoryAgent::reportMemoryUsage):
28675         * inspector/InspectorOverlay.cpp:
28676         (WebCore::InspectorOverlay::reportMemoryUsage):
28677         * inspector/InspectorResourceAgent.cpp:
28678         (WebCore::InspectorResourceAgent::reportMemoryUsage):
28679         * page/Page.cpp:
28680         (WebCore::Page::reportMemoryUsage):
28681
28682 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28683
28684         Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.
28685
28686         * WebCore.exp.in:
28687
28688 2012-10-31  Eric Seidel  <eric@webkit.org>
28689
28690         Add non-virtual firstChild/lastChild overrides to RenderBlock and RenderTableCol for a > 30% speedup on table from bug 100304
28691         https://bugs.webkit.org/show_bug.cgi?id=100306
28692
28693         Reviewed by Abhishek Arya.
28694
28695         Presumably this is a speedup for other rendering tests as well.  We use firstChild() all over
28696         the rendering code w/o considering that it makes a virtual function call.
28697         Originally I just fixed the one callsite which was showing up on the sample to
28698         use children()->firstChild() directly.  However after further thought, this
28699         broader solution seemed the better way to go.  The first patch was a 15% win for
28700         this large table, this broader solution was a 30%!? win.
28701
28702         The elephant in the room for this table is that we're walking the whole table
28703         for many nextColumn calls.  But that I will solve in a later bug.
28704
28705         * rendering/RenderBlock.h:
28706         (WebCore::RenderBlock::firstChild):
28707         (WebCore::RenderBlock::lastChild):
28708         (RenderBlock):
28709         * rendering/RenderObject.h:
28710         (RenderObject):
28711         * rendering/RenderTableCol.h:
28712         (WebCore::RenderTableCol::firstChild):
28713         (WebCore::RenderTableCol::lastChild):
28714         (RenderTableCol):
28715
28716 2012-10-31  Philippe Normand  <pnormand@igalia.com>
28717
28718         Spatialized panning renders incorrectly with USE_CONCATENATED_IMPULSE_RESPONSES
28719         https://bugs.webkit.org/show_bug.cgi?id=98294
28720
28721         Reviewed by Chris Rogers.
28722
28723         Regenerated the concatenated impulse responses file with
28724         elevations in increasing order per azimuth. In the previous
28725         version of this file the elevations for 315, 330 and 345 were
28726         concatenated at the wrong indexes.
28727
28728         * platform/audio/resources/Composite.wav:
28729
28730 2012-10-31  Tim Horton  <timothy_horton@apple.com>
28731
28732         Full-page PDFPlugin should support inline form editing
28733         https://bugs.webkit.org/show_bug.cgi?id=100155
28734
28735         Reviewed by Dan Bernstein.
28736
28737         Add form controls corresponding to Text and Choice PDF annotations,
28738         allowing for single- and multi-line text input, and <option>-like input.
28739
28740         Currently, forms are only implemented for full-page PDF documents.
28741
28742         * WebCore.exp.in: Expose a variety of additional WebCore functionality to WebKit2.
28743         * WebCore.xcodeproj/project.pbxproj: Expose some more WebCore headers as private headers for use in WebKit2.
28744
28745 2012-10-30  Eric Seidel  <eric@webkit.org>
28746
28747         RoboHornetPro spends ~25% of total test time in WebCore::Region::Shape methods
28748         https://bugs.webkit.org/show_bug.cgi?id=98800
28749
28750         Reviewed by Sam Weinig.
28751
28752         This patch brings our total RoboHornetPro time from 8.2 seconds to 5.3 seconds!
28753
28754         OverlapMap previously used Regions to track Layer bounds rects. 
28755         Unfortunately unioning a list of Regions is O(N^2)
28756         where N is the number of Shapes (in this case rects).
28757         This is because Shapes are immutable, so to union two shapes, we copy
28758         both Shapes' segment/span vectors into a single new Shape.
28759         Thus if we union a set of M Regions, each with 1 Shape, we'll end up copying
28760         the segments of the first Shape N times before we have the final Region/Shape
28761         and the second shape N-1 times. The sum of 1 to N is (N*(N-1))/2 aka order N^2.
28762         Fixing the N^2 algorithm covered by https://bugs.webkit.org/show_bug.cgi?id=100814.
28763
28764         For now we just avoid this O(N^2) by moving away from Region, since OverlapMap
28765         doesn't need it. We just collect a vector of the layer rects and hit-test that directly.
28766         Hit-testing the rect list is O(N), just like hit-testing the same information in a Region would be.
28767
28768         Even better for us is that the OverlapMap is never even used in RoboHornetPro.
28769         We just collect these rects to end up doing nothing with them. :)
28770
28771         * rendering/RenderLayerCompositor.cpp:
28772         (WebCore::RenderLayerCompositor::OverlapMap::add):
28773         (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
28774         (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
28775         (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
28776         (RenderLayerCompositor::OverlapMap):
28777
28778 2012-10-30  Beth Dakin  <bdakin@apple.com>
28779
28780         https://bugs.webkit.org/show_bug.cgi?id=100813
28781         ScrollingCoordinatorMac::stateNodeForID() should return a 
28782         ScrollingStateNode* instead of a ScrollingStateScrollingNode*
28783
28784         Reviewed by Sam Weinig.
28785
28786         ScrollingCoordinatorMac::stateNodeForID() should return a 
28787         ScrollingStateNode* instead of a ScrollingStateScrollingNode* so that 
28788         it can be used for other types of nodes once we add them.
28789         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28790         (ScrollingCoordinatorMac):
28791         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28792         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
28793         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
28794         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
28795         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
28796
28797 2012-10-30  Keishi Hattori  <keishi@webkit.org>
28798
28799         F4 inside <input type=time> should not open calendar picker
28800         https://bugs.webkit.org/show_bug.cgi?id=100730
28801
28802         Reviewed by Kent Tamura.
28803
28804         We lacked the check to see if the picker indicator is visible.
28805
28806         Test: fast/forms/time-multiple-fields/time-multiple-fields-open-picker-key-bindings.html
28807
28808         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
28809         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Check if picker indicator is visible.
28810
28811 2012-10-30  Kent Tamura  <tkent@chromium.org>
28812
28813         Delaying 'change' and 'input' event dispatching during HTMLInputElement::setValue
28814         https://bugs.webkit.org/show_bug.cgi?id=100772
28815
28816         Reviewed by Abhishek Arya.
28817
28818         'change' and 'input' events are asynchronous and not
28819         cancelable. We can use ScopedEvent.
28820
28821         Test: fast/forms/range/range-type-change-onchange.html
28822
28823         * dom/Node.cpp:
28824         (WebCore::Node::dispatchChangeEvent): Use dispatchScopedEvent.
28825         (WebCore::Node::dispatchInputEvent): Ditto.
28826         * html/HTMLInputElement.cpp:
28827         (WebCore::HTMLInputElement::setValue):
28828         Make a scope to delay event dispatching.
28829         * html/RangeInputType.cpp:
28830         (WebCore::RangeInputType::handleKeydownEvent): Ditto.
28831
28832 2012-10-30  Simon Fraser  <simon.fraser@apple.com>
28833
28834         Fix issues with filters and reflections
28835         https://bugs.webkit.org/show_bug.cgi?id=100308
28836
28837         Reviewed by Dirk Schulze.
28838
28839         Composited filters were being applied to the wrong CALayer. The code used
28840         primaryLayer(), which may be a CATransformLayer (which filters cannot apply
28841         to; doing so causes console spew), or a CALayer that is used for reflection
28842         flattening, which again is the wrong layer.
28843
28844         Test: css3/filters/composited-reflected.html
28845
28846         * platform/graphics/ca/GraphicsLayerCA.cpp:
28847         (WebCore::GraphicsLayerCA::updateContentsVisibility): Replace .get()-> with ->
28848         (WebCore::GraphicsLayerCA::updateContentsOpaque): Ditto.
28849         (WebCore::GraphicsLayerCA::updateFilters): Apply filters to m_layer, not primaryLayer(),
28850         and use m_layerClones, not primaryLayerClones().
28851         (WebCore::GraphicsLayerCA::cloneLayer): When cloning a layer for reflections, copy filters
28852         from the source layer.
28853         * platform/graphics/ca/PlatformCALayer.h:
28854         (PlatformCALayer): Add a member function to copy filters from a supplied layer.
28855         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
28856         (PlatformCALayer::setFilters): Remove blank line.
28857         (PlatformCALayer::copyFiltersFrom): Copy CAFIlters from the given layer.
28858         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
28859         (PlatformCALayer::copyFiltersFrom): Stub; no filters on Windows.
28860
28861 2012-10-30  Beth Dakin  <bdakin@apple.com>
28862
28863         https://bugs.webkit.org/show_bug.cgi?id=100809
28864         ScrollingCoordinator::attachToStateTree() should take an enum 
28865         indicating what type of node to create
28866
28867         Reviewed by Simon Fraser.
28868
28869         New enum ScrollingNodeType will soon have other values, such as 
28870         FixedNode.
28871         * page/scrolling/ScrollingCoordinator.h:
28872         (WebCore::ScrollingCoordinator::attachToStateTree):
28873         * page/scrolling/mac/ScrollingCoordinatorMac.h:
28874         (ScrollingCoordinatorMac):
28875
28876         This patch generalizes this function so that it can be used to create 
28877         different types of nodes and so that it is actually ready to create 
28878         child nodes. 
28879         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
28880         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
28881
28882         The rootStateNode is always a ScrollingNode.
28883         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
28884
28885         For the time being, always create a ScrollingNode.
28886         * rendering/RenderLayerBacking.cpp:
28887         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
28888
28889 2012-10-30  Gregg Tavares  <gman@google.com>
28890
28891         Set the initial scissor box for WebGL
28892         https://bugs.webkit.org/show_bug.cgi?id=100804
28893
28894         Reviewed by Kenneth Russell.
28895
28896         The initial scissor box needs to be set for WebGL
28897
28898         No new tests as no new functionality.
28899
28900         * html/canvas/WebGLRenderingContext.cpp:
28901         (WebCore):
28902         (WebCore::WebGLRenderingContext::initializeNewContext):
28903
28904 2012-10-30  Charles Wei  <charles.wei@torchmobile.com.cn>
28905
28906         [BlackBerry] PurgeCredential should also purge the persisted credential store
28907         https://bugs.webkit.org/show_bug.cgi?id=100744
28908
28909         Reviewed by George Staikos.
28910
28911         When challenged by the server, we will check the credential in-memory and from the persistent storage.
28912         So the invalid credentials should also be purged from the persistent credential storage; Otherwise,
28913         it will be sent to the server next time been challenged, instead of prompting the user.
28914
28915         * platform/network/blackberry/NetworkJob.cpp:
28916         (WebCore::NetworkJob::purgeCredentials):
28917
28918 2012-10-30  Allan Sandfeld Jensen  <allan.jensen@digia.com>
28919
28920         DOM URL is flaky when workers are used
28921         https://bugs.webkit.org/show_bug.cgi?id=99178
28922
28923         Reviewed by Geoffrey Garen.
28924
28925         Extend JSNoStaticTables to also avoid direct access of static tables in constructor objects.
28926
28927         Test: fast/workers/worker-domurl.html
28928
28929         * bindings/scripts/CodeGeneratorJS.pm:
28930         (constructorHashTableAccessor):
28931         (GenerateConstructorDefinition):
28932
28933 2012-10-30  Jae Hyun Park  <jae.park@company100.net>
28934
28935         Coordinated Graphics: Remove unused methods
28936         https://bugs.webkit.org/show_bug.cgi?id=100799
28937
28938         Reviewed by Noam Rosenthal.
28939
28940         Currently, there are several unused methods regarding Coordinated
28941         Graphics. This patch removes those unused methods.
28942
28943         No new tests (No change in behavior).
28944
28945         * platform/graphics/texmap/TextureMapperGL.cpp:
28946
28947 2012-10-30  Hans Muller  <hmuller@adobe.com>
28948
28949         [CSS Exclusions] Multiple segment polygon layout does not get all segments
28950         https://bugs.webkit.org/show_bug.cgi?id=100039
28951
28952         Reviewed by Dirk Schulze.
28953
28954         Corrected the algorithm for computing included polygon intervals for rectilinear polygons,
28955         and polygons with horizontal edges in general.
28956
28957         Tests: fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-001.html
28958                fast/exclusions/shape-inside/shape-inside-rectilinear-polygon-002.html
28959
28960         * rendering/ExclusionPolygon.cpp: Removed some internal dead code related to the no-longer-used sortedEdgesMinY Vector.
28961         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize new ExclusionPolygonEdge edgeIndex field.
28962         (WebCore::getVertexIntersectionVertices): Return the previous, next, and target vertex indices for a vertex intersection.
28963         (WebCore::ExclusionPolygon::computeXIntersections): Refactored the core of this method to improve handling of horizontal edges.
28964         (WebCore::ExclusionPolygon::computeEdgeIntersections): Ignore zero-width edges.
28965         * rendering/ExclusionPolygon.h: Removed the rightVertexY() method, since it's no longer used.
28966         (WebCore::ExclusionPolygon::edgeAt): New method.
28967         (WebCore::ExclusionPolygon::numberOfEdges): New method.
28968         (ExclusionPolygon): Added support for retrieving edges.
28969         (WebCore::ExclusionPolygonEdge::vertex1): Use vertex1Index.
28970         (WebCore::ExclusionPolygonEdge::vertex2): Use vertex2Index.
28971         (ExclusionPolygonEdge): Renamed index1, index2 fields to vertex1Index, vertex2Index.
28972         (WebCore::ExclusionPolygonEdge::previousEdge): New method.
28973         (WebCore::ExclusionPolygonEdge::nextEdge): New method.
28974
28975 2012-10-30  Chris Evans  <cevans@google.com>
28976
28977         Improve performance of MaskPtr.
28978         https://bugs.webkit.org/show_bug.cgi?id=100790
28979
28980         Reviewed by Eric Seidel.
28981
28982         Calculate the mask once, and store it as a fast-access member variable.
28983         Also avoid unneccessary integer width expansion in index calculation.
28984         Parser/tiny-innerHTML.html has a high stddev.
28985         Best result I've seen pre-patch is 5.70 runs/s.
28986         Best result I've seen post-patch is 5.72 runs/s, but this is not statistically significant.
28987         MaskPtr is still showing as ~2% in the profile, so we're not sure we trust the profile symbolization at this time.
28988         MaskPtr is now reduced to a single inline instruction (was: 4) so this seems like a strict improvement worth landing.
28989
28990         * rendering/RenderArena.cpp:
28991         (MaskPtr): Use a passed-in mask for the mask operation.
28992         (WebCore::RenderArena::RenderArena): Calculate the mask and store it.
28993         (WebCore::RenderArena::allocate):
28994         (WebCore::RenderArena::free): Use stored mask and avoid unneccessary casts.
28995         * rendering/RenderArena.h:
28996         (RenderArena): Store the freelist mask as a member variable.
28997
28998 2012-10-30  Kenichi Ishibashi  <bashi@chromium.org>
28999
29000         local(Helvetica) in src descriptor prevent fallback
29001         https://bugs.webkit.org/show_bug.cgi?id=100446
29002
29003         Reviewed by Dan Bernstein.
29004
29005         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
29006         of font family names, so that if the family name specified in the font-family
29007         property is not available on the system, but the its alias is available,
29008         it will be used instead. This is appropriate for the font-family property,
29009         but not for font family names specified in the local() function of the src
29010         descriptor in a @font-face rule.
29011
29012         This patch disables the mechanism while checking src descriptor of @font-face.
29013
29014         No new tests. It's difficult to test the change because 'Helvetica' can
29015         be mapped any other font. For example, chromium DRT uses FontConfig to
29016         map Helvetica to Times New Roman. Other ports may map Helvetica to other
29017         fonts. We can't define the expected result.
29018
29019         * css/CSSFontFaceSource.cpp:
29020         (WebCore::CSSFontFaceSource::getFontData):
29021         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
29022         This disables aliasing font family names in FontCache.
29023
29024 2012-10-30  Beth Dakin  <bdakin@apple.com>
29025
29026         https://bugs.webkit.org/show_bug.cgi?id=100796
29027         Should add FixedPositionViewportConstraints to ScrollingConstraints.h
29028
29029         Reviewed by Simon Fraser.
29030
29031         ScrollingConstraints.h currently contains an abstract class called 
29032         ViewportConstraints that is intended to encapsulate data and logic 
29033         required to reposition elements whose layout depends on the viewport 
29034         rect (positions fixed and sticky), when scrolling and zooming. 
29035         However, at this time there is only a subclass for sticky. We should 
29036         add a sub-class for fixed. This is required to get pages with fixed 
29037         position elements scrolling on the scrolling thread.
29038
29039         * page/scrolling/ScrollingConstraints.cpp:
29040         (WebCore::FixedPositionViewportConstraints::layerPositionForViewportRect):
29041         (WebCore):
29042         * page/scrolling/ScrollingConstraints.h:
29043         (WebCore::ViewportConstraints::ViewportConstraints):
29044         (ViewportConstraints):
29045         (WebCore::ViewportConstraints::setAnchorEdges):
29046         (FixedPositionViewportConstraints):
29047         (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
29048         (WebCore::FixedPositionViewportConstraints::viewportRectAtLastLayout):
29049         (WebCore::FixedPositionViewportConstraints::setViewportRectAtLastLayout):
29050         (WebCore::FixedPositionViewportConstraints::layerPositionAtLastLayout):
29051         (WebCore::FixedPositionViewportConstraints::setLayerPositionAtLastLayout):
29052         (WebCore):
29053
29054 2012-10-30  Tiancheng Jiang  <tijiang@rim.com>
29055
29056         [BlackBerry] update form theme for BB10.
29057         https://bugs.webkit.org/show_bug.cgi?id=100760
29058
29059         Reviewed by Rob Buis.
29060
29061         RIM PR:222126
29062         Introduce slide function to paint new theme for the form controls.
29063
29064         No new tests.
29065
29066         * css/themeBlackBerry.css:
29067         (select):
29068         * platform/blackberry/RenderThemeBlackBerry.cpp:
29069         (WebCore):
29070         (WebCore::drawControl): Added.
29071         (WebCore::drawThreeSlice): Added.
29072         (WebCore::drawNineSlice): Added.
29073         (WebCore::loadImage): Added.
29074         (WebCore::RenderThemeBlackBerry::systemFont): Modified.
29075         (WebCore::RenderThemeBlackBerry::paintTextFieldOrTextAreaOrSearchField): Modified.
29076         (WebCore::RenderThemeBlackBerry::paintCheckbox): Modified.
29077         (WebCore::RenderThemeBlackBerry::paintRadio): Modified.
29078         (WebCore::RenderThemeBlackBerry::paintButton): Modified.
29079         (WebCore::RenderThemeBlackBerry::paintMenuList): Modified.
29080         (WebCore::RenderThemeBlackBerry::paintMenuListButton): Modified.
29081         (WebCore::RenderThemeBlackBerry::paintSliderTrackRect): Modified.
29082         (WebCore::RenderThemeBlackBerry::paintSliderThumb): Modified.
29083         * platform/blackberry/RenderThemeBlackBerry.h:
29084         (RenderThemeBlackBerry):
29085
29086 2012-10-30  Rick Byers  <rbyers@chromium.org>
29087
29088         cssText for cursor property doesn't include hotspot
29089         https://bugs.webkit.org/show_bug.cgi?id=99530
29090
29091         Reviewed by Darin Adler.
29092
29093         Implement customCssText in CSSCursorImageValue to include the hotspot when present.
29094         Also explicitly track whether or not a hotspot was supplied in the parser,
29095         while still using the existing convention of (-1,-1) to denote no hotspot
29096         in the rest of the system.
29097
29098         Test: fast/css/cursor-parsing.html
29099
29100         * css/CSSCursorImageValue.cpp:
29101         (WebCore::CSSCursorImageValue::customCssText):
29102         * css/CSSCursorImageValue.h:
29103         (CSSCursorImageValue):
29104
29105 2012-10-30  Kenneth Russell  <kbr@google.com>
29106
29107         Temporarily restrict use of ImageBufferSkia::copyToPlatformTexture until bugs resolved
29108         https://bugs.webkit.org/show_bug.cgi?id=100714
29109
29110         Reviewed by Stephen White.
29111
29112         For the moment, only use ImageBuffer::copyToPlatformTexture when
29113         copying to RGBA/UNSIGNED_BYTE textures, and document restriction
29114         in header. Restriction will be lifted once the implementations
29115         (currently only Chromium has one) have been fixed; see bug 100715.
29116
29117         No new tests; manually ran WebGL conformance test
29118         tex-image-and-sub-image-2d-with-canvas-rgba5551.html on NVIDIA
29119         hardware on Mac OS.
29120
29121         * html/canvas/WebGLRenderingContext.cpp:
29122         (WebCore):
29123         (WebCore::WebGLRenderingContext::texImage2D):
29124         * platform/graphics/ImageBuffer.h:
29125         (ImageBuffer):
29126
29127 2012-10-30  Nico Weber  <thakis@chromium.org>
29128
29129         Fix potential overflow in jpeg exif reader. Found by aedla@google.com.
29130         https://bugs.webkit.org/show_bug.cgi?id=100320
29131
29132         Reviewed by Eric Seidel.
29133
29134         Adding more than 1 element past an array is undefined, so don't do it.
29135
29136         No test, since in practice ifd will just overflow and `end - ifd` will
29137         become much larget than 2 and the `if (end - ifd < 2)` a few lines
29138         down will catch that case.
29139
29140         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
29141         (WebCore::readImageOrientation):
29142
29143 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29144
29145         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29146         https://bugs.webkit.org/show_bug.cgi?id=100558
29147
29148         Reviewed by Dean Jackson.
29149
29150         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29151         but more is going to come in the following patches.
29152
29153         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29154         such operations for now.
29155         
29156         No new tests, there is no new functionality yet.
29157
29158         * CMakeLists.txt:
29159         * GNUmakefile.list.am:
29160         * Target.pri:
29161         * WebCore.gypi:
29162         * WebCore.vcproj/WebCore.vcproj:
29163         * WebCore.xcodeproj/project.pbxproj:
29164         * css/CSSComputedStyleDeclaration.cpp:
29165         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29166         * css/StyleResolver.cpp:
29167         (WebCore::StyleResolver::createFilterOperations):
29168         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29169         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29170         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29171         (PlatformCALayer::filtersCanBeComposited):
29172         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29173         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29174         * platform/graphics/filters/FilterOperation.h:
29175         * platform/graphics/filters/FilterOperations.cpp:
29176         (WebCore::FilterOperations::hasCustomFilter):
29177         (WebCore::FilterOperations::getOutsets):
29178         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29179         (WebCore):
29180         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29181         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29182         (WebCore::ValidatedCustomFilterOperation::blend):
29183         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29184         (WebCore):
29185         (ValidatedCustomFilterOperation):
29186         (WebCore::ValidatedCustomFilterOperation::create):
29187         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29188         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29189         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29190         (WebCore::ValidatedCustomFilterOperation::operator==):
29191
29192 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29193
29194         [Mac] Sync up FeatureDefine Configuration Files
29195         https://bugs.webkit.org/show_bug.cgi?id=100171
29196
29197         Reviewed by David Kilzer.
29198
29199         Follow up to better coordinate with iOS feature defines. Make:
29200
29201           - ENABLE_FILTERS always on
29202           - ENABLE_INPUT_* iphonesimulator values point to the iphoneos values
29203
29204         * Configurations/FeatureDefines.xcconfig:
29205
29206 2012-10-30  Joseph Pecoraro  <pecoraro@apple.com>
29207
29208         [Mac] Sync up FeatureDefine Configuration Files
29209         https://bugs.webkit.org/show_bug.cgi?id=100171
29210
29211         Reviewed by David Kilzer.
29212
29213         Ensure an identical FeatureDefine files across all projects. Changes:
29214
29215           - ENABLE_CSS_BOX_DECORATION_BREAK should be in all
29216           - ENABLE_PDFKIT_PLUGIN should be in all
29217           - ENABLE_RESOLUTION_MEDIA_QUERY should be in all
29218           - ENABLE_ENCRYPTED_MEDIA should be in all
29219           - ENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING with corrected value
29220           - Some alphabetical ordering cleanup
29221
29222         * Configurations/FeatureDefines.xcconfig:
29223
29224 2012-10-30  Andreas Kling  <kling@webkit.org>
29225
29226         StylePropertySet: Convert more logic to use PropertyReference.
29227         <http://webkit.org/b/100779>
29228
29229         Reviewed by Antti Koivisto.
29230
29231         Rewrite more of the StylePropertySet logic to use PropertyReference instead of CSSProperty.
29232         This is cleanup before changing the internal storage layout of immutable StylePropertySet.
29233
29234         * css/CSSComputedStyleDeclaration.cpp:
29235         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
29236         * css/CSSComputedStyleDeclaration.h:
29237         * css/CSSStyleDeclaration.h:
29238         * css/PropertySetCSSStyleDeclaration.cpp:
29239         (WebCore::PropertySetCSSStyleDeclaration::cssPropertyMatches):
29240         * css/PropertySetCSSStyleDeclaration.h:
29241         * css/StylePropertySet.cpp:
29242         (WebCore::StylePropertySet::appendFontLonghandValueIfExplicit):
29243         (WebCore::StylePropertySet::fontValue):
29244         (WebCore::StylePropertySet::get4Values):
29245         (WebCore::StylePropertySet::getPropertyCSSValue):
29246         (WebCore::StylePropertySet::removeProperty):
29247         (WebCore::StylePropertySet::propertyIsImportant):
29248         (WebCore::StylePropertySet::getPropertyShorthand):
29249         (WebCore::StylePropertySet::isPropertyImplicit):
29250         (WebCore::StylePropertySet::setProperty):
29251         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
29252         (WebCore::StylePropertySet::findPropertyIndex):
29253         (WebCore::StylePropertySet::findMutableCSSPropertyWithID):
29254         (WebCore::StylePropertySet::propertyMatches):
29255         (WebCore::StylePropertySet::removeEquivalentProperties):
29256         * css/StylePropertySet.h:
29257         (WebCore::StylePropertySet::PropertyReference::shorthandID):
29258         (WebCore::StylePropertySet::PropertyReference::isImplicit):
29259
29260 2012-10-30  Eric Seidel  <eric@webkit.org>
29261
29262         Teach RenderTable how to use Vector::insert and Vector::append instead of its own custom memmove code
29263         https://bugs.webkit.org/show_bug.cgi?id=100428
29264
29265         Reviewed by Julien Chaffraix.
29266
29267         RenderTable is now like all other clients of Vector instead of being
29268         needlessly different. :)
29269
29270         insert, append and grow all use the same expandCapacity logic under the covers
29271         and Vector::insert uses TypeOperations::moveOverlapping which should use memmove
29272         by default for unknown types.
29273
29274         * rendering/RenderTable.cpp:
29275         (WebCore::RenderTable::splitColumn):
29276         (WebCore::RenderTable::appendColumn):
29277         * rendering/RenderTable.h:
29278         (WebCore::RenderTable::ColumnStruct::ColumnStruct):
29279
29280 2012-10-30  Vincent Scheib  <scheib@chromium.org>
29281
29282         Unreviewed, rolling out r132927.
29283         http://trac.webkit.org/changeset/132927
29284         https://bugs.webkit.org/show_bug.cgi?id=100558
29285
29286         Compile error on Chromium builders
29287
29288         * CMakeLists.txt:
29289         * GNUmakefile.list.am:
29290         * Target.pri:
29291         * WebCore.gypi:
29292         * WebCore.vcproj/WebCore.vcproj:
29293         * WebCore.xcodeproj/project.pbxproj:
29294         * css/CSSComputedStyleDeclaration.cpp:
29295         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29296         * css/StyleResolver.cpp:
29297         (WebCore::StyleResolver::createFilterOperations):
29298         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29299         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29300         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29301         (PlatformCALayer::filtersCanBeComposited):
29302         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29303         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29304         * platform/graphics/filters/FilterOperation.h:
29305         * platform/graphics/filters/FilterOperations.cpp:
29306         (WebCore::FilterOperations::hasCustomFilter):
29307         (WebCore::FilterOperations::getOutsets):
29308         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Removed.
29309         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Removed.
29310
29311 2012-10-30  W. James MacLean  <wjmaclean@chromium.org>
29312
29313         [chromium] Restrict link highlights to targets that display a hand-cursor
29314         https://bugs.webkit.org/show_bug.cgi?id=99862
29315
29316         Reviewed by James Robinson.
29317
29318         To avoid applying highlights to inappropriate targets, such as large divs with
29319         click handlers installed, test candidate targets and only highlight them if they
29320         would normally display a hand cursor on mouse over. This is a heuristic, but has
29321         been tested and found effective in practice.
29322
29323         This CL refactors EventHandler::selectCursor() to make the logic for determining
29324         if CURSOR_AUTO should resolve to CURSOR_POINTER available outside EventHandler.
29325
29326         Relies on existing cursor tests.
29327
29328         * page/EventHandler.cpp:
29329         (WebCore::EventHandler::useHandCursor):
29330         (WebCore):
29331         (WebCore::EventHandler::selectCursor):
29332         * page/EventHandler.h:
29333         (EventHandler):
29334
29335 2012-10-30  Rob Buis  <rbuis@rim.com>
29336
29337         [BlackBerry] Remove CookieDatabaseBackingStore::upgradeTableIfNeeded
29338         https://bugs.webkit.org/show_bug.cgi?id=100783
29339
29340         Reviewed by Yong Li.
29341
29342         PR 220513.
29343
29344         Remove CookieDatabaseBackingStore::upgradeTableIfNeeded, it was needed for backwards
29345         compatibility, but not needed anymore.
29346
29347         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.cpp:
29348         (WebCore::CookieDatabaseBackingStore::invokeOpen):
29349         * platform/blackberry/CookieDatabaseBackingStore/CookieDatabaseBackingStore.h:
29350
29351 2012-10-30  Glenn Adams  <glenn@skynav.com>
29352
29353         [CSS] Expand -webkit-line-break value space
29354         https://bugs.webkit.org/show_bug.cgi?id=100739
29355
29356         Reviewed by Eric Seidel.
29357
29358         (1) expand -webkit-line-break to include new values defined by CSS3 Text [1], i.e., 'auto', 'strict', 'loose';
29359         (2) change default (initial) value for -webkit-line-break to 'auto' to match CSS3 Text;
29360         (3) rename enum EKHTMLLineBreak to LineBreak, renaming enum values appropriately;
29361
29362         New tests to be added when functionality of new values is added. No rendering behavior change at this time.
29363         Only externally visible change is default (initial) value returning 'auto' rather than 'normal', for which 3 existing
29364         tests that were sensitive to this value have been updated. Note that until the functionality for the new values is
29365         added, any actual use of the new values will be treated as the same as the pre-existing 'normal' value, i.e., the
29366         default semantics.
29367
29368         * css/CSSComputedStyleDeclaration.cpp:
29369         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
29370         Update from kthmlLineBreak() to lineBreak().
29371
29372         * css/CSSParser.cpp:
29373         (WebCore::isValidKeywordPropertyAndValue):
29374         Update values supported for CSSPropertyWebkitLineBreak.
29375
29376         * css/CSSPrimitiveValueMappings.h:
29377         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
29378         (WebCore::CSSPrimitiveValue::operator LineBreak):
29379         Update LineBreak enumeration values (previously EKHTMLLineBreak).
29380
29381         * css/CSSValueKeywords.in:
29382         Update keywords used for -webkit-line-break.
29383
29384         * css/StyleBuilder.cpp:
29385         (WebCore::StyleBuilder::StyleBuilder):
29386         Update names for line break style getter/setter.
29387
29388         * rendering/style/RenderStyle.cpp:
29389         (WebCore::RenderStyle::diff):
29390         Remove khtml prefix on line break related state.
29391
29392         * rendering/style/RenderStyle.h:
29393         Remove khtml prefix on line break related methods. Update to redefined LineBreak
29394         enumeration type.
29395
29396         * rendering/style/RenderStyleConstants.h:
29397         Rename EKHTMLLineBreak enumeration to LineBreak.
29398         Redefine LineBreak enumeration to include new CSS3 Text modes (auto, loose, strict) and
29399         use better names.
29400
29401         * rendering/style/StyleRareInheritedData.cpp:
29402         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
29403         (WebCore::StyleRareInheritedData::operator==):
29404         Remove khtml prefix on line break related state references.
29405
29406         * rendering/style/StyleRareInheritedData.h:
29407         (StyleRareInheritedData):
29408         Remove khtml prefix on line break related state. Widen field to 3 bits to support 8 values,
29409         of which 5 are now used.
29410
29411 2012-10-30  Antti Koivisto  <antti@apple.com>
29412
29413         Avoid unnecessary style recalcs on class attribute mutation
29414         https://bugs.webkit.org/show_bug.cgi?id=100776
29415
29416         Reviewed by Andreas Kling.
29417
29418         There is no need to invalidate element style on class attribute change if neither the added
29419         or removed classes featured in any active stylesheet.
29420
29421         * css/RuleFeature.cpp:
29422         (WebCore::RuleFeatureSet::add):
29423         (WebCore::RuleFeatureSet::clear):
29424         (WebCore::RuleFeatureSet::reportMemoryUsage):
29425         * css/RuleFeature.h:
29426         (RuleFeatureSet):
29427         * css/RuleSet.cpp:
29428         (WebCore::collectFeaturesFromSelector):
29429         
29430             Collect classes mentioned in CSS selectors the same way ids and attribute names are
29431             already collected.
29432
29433         * css/StyleResolver.cpp:
29434         (WebCore::StyleResolver::hasSelectorForClass):
29435         
29436             Add a method to test if a given class name is mentioned anywhere in stylehseets.
29437
29438         (WebCore):
29439         * css/StyleResolver.h:
29440         * css/StyleScopeResolver.h:
29441         (WebCore):
29442         * dom/Element.cpp:
29443         (WebCore::collectAddedAndRemovedClasses):
29444         (WebCore):
29445         (WebCore::Element::classAttributeChanged):
29446         
29447             Figure out which classes were added and removed. Test if they are present in any style
29448             rule and invalidate the style only if they are.
29449
29450         * dom/SpaceSplitString.cpp:
29451         (WebCore::SpaceSplitStringData::add):
29452         (WebCore::SpaceSplitStringData::remove):
29453         (WebCore::SpaceSplitString::add):
29454         (WebCore::SpaceSplitString::remove):
29455         
29456             Added bool return value to indicate if anything was actually removed. Reorganized 
29457             the code a bit to avoid unnecessary uniquing when nothing changes.
29458
29459         * dom/SpaceSplitString.h:
29460         (SpaceSplitStringData):
29461         (SpaceSplitString):
29462
29463 2012-10-30  Robert Hogan  <robert@webkit.org>
29464
29465         white-space: nowrap inline element beside a floated element wraps incorrectly without trailing textnode/newline
29466         https://bugs.webkit.org/show_bug.cgi?id=29648
29467
29468         Reviewed by Levi Weintraub.
29469
29470         A no-wrap child on a line inside an autowrap container should move to the next line if a float doesn't allow
29471         it to fit. This will happen if there is trailing space after the no-wrap child but not if it's the last renderer
29472         on the line. This is because nextLineBreak() is only interested in the white-space style of the current renderer 
29473         and the renderer's next sibling (if there is one) when deciding whether it needs to fit below any floats that
29474         push it beyond the edge of the container. There isn't any situation in which a no-wrap child shouldn't move 
29475         below a float on an auto-wrap line though, so this check always needs to respect the container's white-space style too.
29476
29477         Test: fast/text/whitespace/no-wrap-child-in-auto-wrap-container.html
29478
29479         * rendering/RenderBlockLineLayout.cpp:
29480         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
29481
29482 2012-10-26  Alexandru Chiculita  <achicu@adobe.com>
29483
29484         [CSS Shaders] Add the ValidatedCustomFilterOperation class
29485         https://bugs.webkit.org/show_bug.cgi?id=100558
29486
29487         Reviewed by Dean Jackson.
29488
29489         Added the ValidatedCustomFilterOperation class. The file is now almost empty,
29490         but more is going to come in the following patches.
29491
29492         Added the a filter operation type VALIDATED_CUSTOM and updated the compositors to ignore
29493         such operations for now.
29494         
29495         No new tests, there is no new functionality yet.
29496
29497         * CMakeLists.txt:
29498         * GNUmakefile.list.am:
29499         * Target.pri:
29500         * WebCore.gypi:
29501         * WebCore.vcproj/WebCore.vcproj:
29502         * WebCore.xcodeproj/project.pbxproj:
29503         * css/CSSComputedStyleDeclaration.cpp:
29504         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
29505         * css/StyleResolver.cpp:
29506         (WebCore::StyleResolver::createFilterOperations):
29507         * platform/graphics/blackberry/LayerWebKitThread.cpp:
29508         (WebCore::LayerWebKitThread::filtersCanBeComposited):
29509         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
29510         (PlatformCALayer::filtersCanBeComposited):
29511         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
29512         (WebCore::copyWebCoreFilterOperationsToWebFilterOperations):
29513         * platform/graphics/filters/FilterOperation.h:
29514         * platform/graphics/filters/FilterOperations.cpp:
29515         (WebCore::FilterOperations::hasCustomFilter):
29516         (WebCore::FilterOperations::getOutsets):
29517         * platform/graphics/filters/ValidatedCustomFilterOperation.cpp: Added.
29518         (WebCore):
29519         (WebCore::ValidatedCustomFilterOperation::ValidatedCustomFilterOperation):
29520         (WebCore::ValidatedCustomFilterOperation::~ValidatedCustomFilterOperation):
29521         (WebCore::ValidatedCustomFilterOperation::blend):
29522         * platform/graphics/filters/ValidatedCustomFilterOperation.h: Added.
29523         (WebCore):
29524         (ValidatedCustomFilterOperation):
29525         (WebCore::ValidatedCustomFilterOperation::create):
29526         (WebCore::ValidatedCustomFilterOperation::affectsOpacity):
29527         (WebCore::ValidatedCustomFilterOperation::movesPixels):
29528         (WebCore::ValidatedCustomFilterOperation::blendingNeedsRendererSize):
29529         (WebCore::ValidatedCustomFilterOperation::operator==):
29530
29531 2012-10-29  Anders Carlsson  <andersca@apple.com>
29532
29533         Build WebKit as C++11 on Mac
29534         https://bugs.webkit.org/show_bug.cgi?id=100720
29535
29536         Reviewed by Daniel Bates.
29537
29538         * Configurations/Base.xcconfig:
29539         Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.
29540
29541         * platform/graphics/FontPlatformData.h:
29542         (WebCore::FontPlatformData::hash):
29543         * platform/graphics/cg/GraphicsContextCG.cpp:
29544         (WebCore::GraphicsContext::drawLine):
29545         (WebCore::GraphicsContext::strokeArc):
29546         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
29547         (WebCore::CustomFilterProgramInfo::hash):
29548         (WebCore::ProtectionSpaceHash::hash):
29549         * platform/network/cf/FormDataStreamCFNet.cpp:
29550         (WebCore::setHTTPBody):
29551         Add static_casts to prevent implicit type conversions in non-constant initializer lists.
29552         
29553         * platform/mac/ClipboardMac.mm:
29554         (WebCore::ClipboardMac::createDragImage):
29555         * platform/mac/CursorMac.mm:
29556         (WebCore::createNamedCursor):
29557         * platform/mac/ScrollViewMac.mm:
29558         (WebCore::ScrollView::platformSetContentsSize):
29559         Use NSMakePoint to prevent implicit type conversions in non-constant initializer lists.
29560
29561         * platform/mac/CookieJar.mm:
29562         (WebCore::cookiesEnabled):
29563         * platform/network/mac/ResourceHandleMac.mm:
29564         (WebCore::shouldRelaxThirdPartyCookiePolicy):
29565         Add explicit casts to NSHTTPCookieAcceptPolicy.
29566
29567         * platform/mac/WebCoreNSURLExtras.h:
29568         * platform/mac/WebCoreNSURLExtras.mm:
29569         (WebCore::URLByTruncatingOneCharacterBeforeComponent):
29570         (WebCore::dataForURLComponentType):
29571         * platform/network/ProtectionSpaceHash.h:
29572         Use CFIndex instead of CFURLComponentType, the enum can be mangled differently in some cases, and these
29573         functions are exported from WebCore.
29574
29575 2012-10-30  Dan Bernstein  <mitz@apple.com>
29576
29577         <rdar://problem/12395187> REGRESSION (r121299): OS X Text Replacement forces cursor out of text fields
29578         https://bugs.webkit.org/show_bug.cgi?id=100768
29579
29580         Reviewed by Anders Carlsson.
29581
29582         r121299 introduced code to restore the paragraph range by saving its length and start offset
29583         relative to the document. The latter was obtained by iterating over the range starting at
29584         the beginning of the document and ending at the beginning of the paragraph range. However,
29585         such a range could not be constructed if the paragraph range was contained in a shadow DOM,
29586         since a range must have both its endpoints within the same shadow tree (or not in a shadow
29587         tree).
29588
29589         Test: platform/mac/editing/spelling/autocorrection-in-textarea.html
29590
29591         * editing/Editor.cpp:
29592         (WebCore::Editor::markAndReplaceFor): Changed paragraphStartIndex to be relative to the
29593         root container of paragraphRange, using the same logic used by
29594         checkForDifferentRootContainer() in Range.cpp.
29595
29596 2012-10-30  Dan Carney  <dcarney@google.com>
29597
29598         Remove ensureAuxiliaryContext
29599         https://bugs.webkit.org/show_bug.cgi?id=99975
29600
29601         Reviewed by Adam Barth.
29602
29603         Removed auxilliaryContext as use if it is problematic in IDB.
29604
29605         No new tests. No change in functionality.
29606
29607         * Modules/indexeddb/IDBCursor.cpp:
29608         (WebCore::IDBCursor::update):
29609         (WebCore::IDBCursor::setValueReady):
29610         * Modules/indexeddb/IDBCursor.h:
29611         (IDBCursor):
29612         * Modules/indexeddb/IDBObjectStore.cpp:
29613         (WebCore::generateIndexKeysForValue):
29614         (WebCore::IDBObjectStore::put):
29615         (WebCore):
29616         * Modules/indexeddb/IDBRequest.cpp:
29617         (WebCore::IDBRequest::onSuccess):
29618         (WebCore::IDBRequest::dispatchEvent):
29619         * bindings/v8/IDBBindingUtilities.cpp:
29620         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
29621         (WebCore::deserializeIDBValue):
29622         (WebCore::injectIDBKeyIntoScriptValue):
29623         * bindings/v8/IDBBindingUtilities.h:
29624         (WebCore):
29625         * bindings/v8/V8Binding.cpp:
29626         (WebCore::toV8Context):
29627         (WebCore):
29628         * bindings/v8/V8Binding.h:
29629         (WebCore):
29630         * bindings/v8/V8PerIsolateData.cpp:
29631         (WebCore):
29632         * bindings/v8/V8PerIsolateData.h:
29633
29634 2012-10-30  Huang Dongsung  <luxtella@company100.net>
29635
29636         [CSS Shaders] Add CustomFilterRenderer to reuse this class by Accelerated Compositing.
29637         https://bugs.webkit.org/show_bug.cgi?id=98989
29638
29639         Reviewed by Dean Jackson.
29640
29641         Extract CustomFilterRenderer class from the rendering part of FECustomFilter.
29642         FECustomFilter now plays a role in extending FilterEffect and delegates
29643         rendering CSS Shaders to CustomFilterRenderer.
29644
29645         CustomFilterRenderer does not know Filter and FilterEffect. We can
29646         create a CustomFilterRenderer instance with only GraphicsContext3D and
29647         CustomFilterValidatedProgram. It means that Accelerated Compositing can
29648         create the CustomFilterRenderer instance if Accelerated Compositing has
29649         GraphicsContext3D and CustomFilterOperation, and it is already possible.
29650
29651         This patch prepares to enable CSS Shaders on Accelerated Compositing.
29652
29653         No new tests. Covered by css3/filters/custom
29654
29655         * CMakeLists.txt:
29656         * GNUmakefile.list.am:
29657         * Target.pri:
29658         * WebCore.gypi:
29659         * WebCore.vcproj/WebCore.vcproj:
29660         * WebCore.xcodeproj/project.pbxproj:
29661         * platform/graphics/filters/CustomFilterRenderer.cpp: Added.
29662         (WebCore):
29663         (WebCore::orthogonalProjectionMatrix):
29664         (WebCore::CustomFilterRenderer::create):
29665         (WebCore::CustomFilterRenderer::CustomFilterRenderer):
29666         (WebCore::CustomFilterRenderer::~CustomFilterRenderer):
29667         (WebCore::CustomFilterRenderer::premultipliedAlpha):
29668         (WebCore::CustomFilterRenderer::programNeedsInputTexture):
29669         (WebCore::CustomFilterRenderer::draw):
29670         (WebCore::CustomFilterRenderer::prepareForDrawing):
29671         (WebCore::CustomFilterRenderer::initializeCompiledProgramIfNeeded):
29672         (WebCore::CustomFilterRenderer::initializeMeshIfNeeded):
29673         (WebCore::CustomFilterRenderer::bindVertexAttribute):
29674         (WebCore::CustomFilterRenderer::unbindVertexAttribute):
29675         (WebCore::CustomFilterRenderer::bindProgramArrayParameters):
29676         (WebCore::CustomFilterRenderer::bindProgramNumberParameters):
29677         (WebCore::CustomFilterRenderer::bindProgramTransformParameter):
29678         (WebCore::CustomFilterRenderer::bindProgramParameters):
29679         (WebCore::CustomFilterRenderer::bindProgramAndBuffers):
29680         (WebCore::CustomFilterRenderer::unbindVertexAttributes):
29681         * platform/graphics/filters/CustomFilterRenderer.h: Copied from Source/WebCore/platform/graphics/filters/FECustomFilter.h.
29682         (WebCore):
29683         (CustomFilterRenderer):
29684           CustomFilterRenderer renders custom filters in GPU using a
29685           GraphicsContext3D.
29686         * platform/graphics/filters/FECustomFilter.cpp:
29687         (WebCore::FECustomFilter::FECustomFilter):
29688         (WebCore::FECustomFilter::create):
29689         (WebCore::FECustomFilter::deleteRenderBuffers):
29690         (WebCore::FECustomFilter::drawFilterMesh):
29691         (WebCore::FECustomFilter::prepareForDrawing):
29692         (WebCore::FECustomFilter::applyShader):
29693         (WebCore::FECustomFilter::resolveMultisampleBuffer):
29694         (WebCore::FECustomFilter::resizeMultisampleBuffers):
29695         (WebCore::FECustomFilter::resizeContext):
29696         * platform/graphics/filters/FECustomFilter.h:
29697         (WebCore):
29698         (FECustomFilter):
29699         * rendering/FilterEffectRenderer.cpp:
29700         (WebCore::createCustomFilterEffect):
29701
29702 2012-10-30  Mike West  <mkwst@chromium.org>
29703
29704         Web Inspector: Associate console messages with the requests that caused them.
29705         https://bugs.webkit.org/show_bug.cgi?id=99941
29706
29707         Reviewed by Pavel Feldman.
29708
29709         The inspector currently supports the concept of a request's "initiator"
29710         in order to add context to console messages that are generated in
29711         response to a specific request. The initiator is used as the message's
29712         anchor link iff a requestID is present, and no stack trace is present.
29713
29714         Currently, this functionality is only exposed to three specific
29715         callsites: 'InspectorConsoleAgent::didFinishXHRLoading',
29716         'InspectorConsoleAgent::didReceiveResponse', and
29717         'InspectorConsoleAgent::didFailLoading'. This patch adds a generic
29718         mechanism to associate requests with console messages by passing the
29719         request's identifier through 'ScriptExecutionContext::addConsoleMessage'
29720         or 'Console::addMessage' when relevant.
29721
29722         This patch should have no visible changes. It just installs some new
29723         piping, and adjusts the three methods mentioned above to use it.
29724         Existing tests shouldn't break.
29725
29726         * dom/Document.cpp:
29727         (WebCore::Document::addMessage):
29728         * dom/Document.h:
29729         (Document):
29730             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29731             through to Console::addMessage.
29732         * dom/ScriptExecutionContext.cpp:
29733         (WebCore::ScriptExecutionContext::addConsoleMessage):
29734         * dom/ScriptExecutionContext.h:
29735         (ScriptExecutionContext):
29736             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29737             through to the subclass' addMessage method.
29738         * inspector/ConsoleMessage.cpp:
29739         (WebCore::ConsoleMessage::ConsoleMessage):
29740             Accept an unsigned long instead of a string, and move the conversion
29741             from WebCore request identifiers to Inspector request identifiers
29742             into ConsoleMessage.
29743         * inspector/ConsoleMessage.h:
29744         (ConsoleMessage):
29745             Add 'requestIdentifier' (defaulting to 0) to the
29746             ConsoleMessage constructor that accepts a ScriptCallStack (it was
29747             already part of the constructor that accepted a line number).
29748         * inspector/IdentifiersFactory.cpp:
29749         (WebCore::IdentifiersFactory::requestId):
29750             If the provided request identifier is 0, return an empty string.
29751             This simplifies the logic at the callsite.
29752         * inspector/InspectorConsoleAgent.cpp:
29753         (WebCore::InspectorConsoleAgent::addMessageToConsole):
29754             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29755             through to the 'ConsoleMessage' constructor after converting it to
29756             an internal identifier via 'IdentifiersFactor::requestId'.
29757         (WebCore::InspectorConsoleAgent::didFinishXHRLoading):
29758         (WebCore::InspectorConsoleAgent::didReceiveResponse):
29759         (WebCore::InspectorConsoleAgent::didFailLoading):
29760             Use the new 'requestIdentifier' parameter on addMessageToConsole
29761             rather than replicating the behavior in each of these three methods.
29762         * inspector/InspectorConsoleAgent.h:
29763         (InspectorConsoleAgent):
29764             Add a 'requestIdentifier' parameter (defaulting to 0).
29765         * inspector/InspectorConsoleInstrumentation.h:
29766         (WebCore::InspectorInstrumentation::addMessageToConsole):
29767         * inspector/InspectorInstrumentation.cpp:
29768         (WebCore):
29769         (WebCore::InspectorInstrumentation::addMessageToConsoleImpl):
29770         * inspector/InspectorInstrumentation.h:
29771         (InspectorInstrumentation):
29772             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29773             through to lower levels of the stack.
29774         * page/Console.cpp:
29775         (WebCore::Console::addMessage):
29776         * page/Console.h:
29777         (Console):
29778             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29779             through to 'InspectorInstrumentation::addMessageToConsole'.
29780         * workers/WorkerContext.cpp:
29781         (WebCore::WorkerContext::addMessage):
29782         (WebCore::WorkerContext::addMessageToWorkerConsole):
29783         * workers/WorkerContext.h:
29784         (WorkerContext):
29785             Add a 'requestIdentifier' parameter (defaulting to 0), and pipe it
29786             through to 'InspectorInstrumentation::addMessageToConsole'.
29787
29788 2012-10-29  Anders Carlsson  <andersca@apple.com>
29789
29790         String::createCFString should return a RetainPtr
29791         https://bugs.webkit.org/show_bug.cgi?id=100419
29792
29793         Reviewed by Andreas Kling.
29794
29795         Update callers of String::createCFString.
29796
29797         * bridge/objc/objc_runtime.mm:
29798         (JSC::Bindings::callObjCFallbackObject):
29799         * html/HTMLMediaElement.cpp:
29800         (WebCore::createFileURLForApplicationCacheResource):
29801         * loader/archive/cf/LegacyWebArchive.cpp:
29802         (WebCore::LegacyWebArchive::createPropertyListRepresentation):
29803         * platform/LocalizedStrings.cpp:
29804         (WebCore::formatLocalizedString):
29805         (WebCore::contextMenuItemTagLookUpInDictionary):
29806         (WebCore::keygenKeychainItemName):
29807         (WebCore::imageTitle):
29808         * platform/RuntimeApplicationChecks.cpp:
29809         (WebCore::mainBundleIsEqualTo):
29810         * platform/cf/FileSystemCF.cpp:
29811         (WebCore::fileSystemRepresentation):
29812         (WebCore::pathAsURL):
29813         * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
29814         (PlatformCAAnimation::PlatformCAAnimation):
29815         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
29816         (resubmitAllAnimations):
29817         (PlatformCALayer::addAnimationForKey):
29818         (PlatformCALayer::removeAnimationForKey):
29819         (PlatformCALayer::setName):
29820         * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
29821         (PlatformCALayerWinInternal::updateTiles):
29822         * platform/graphics/cg/ImageBufferCG.cpp:
29823         (WebCore::utiFromMIMEType):
29824         * platform/graphics/cg/ImageSourceCGMac.mm:
29825         (WebCore::MIMETypeForImageSourceType):
29826         (WebCore::preferredExtensionForImageSourceType):
29827         * platform/mac/ClipboardMac.mm:
29828         (WebCore::cocoaTypeFromHTMLClipboardType):
29829         (WebCore::utiTypeFromCocoaType):
29830         * platform/mac/SSLKeyGeneratorMac.cpp:
29831         (WebCore::signedPublicKeyAndChallengeString):
29832         * platform/network/cf/AuthenticationCF.cpp:
29833         (WebCore::createCF):
29834         * platform/network/cf/CookieJarCFNet.cpp:
29835         (WebCore::setCookies):
29836         * platform/network/cf/DNSCFNet.cpp:
29837         (WebCore::DNSResolveQueue::platformResolve):
29838         * platform/network/cf/ResourceErrorCF.cpp:
29839         (WebCore::ResourceError::cfError):
29840         * platform/network/cf/ResourceHandleCFNet.cpp:
29841         (WebCore::setDefaultMIMEType):
29842         (WebCore::willSendRequest):
29843         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
29844         (WebCore::ResourceHandle::setPrivateBrowsingEnabled):
29845         * platform/network/cf/ResourceRequestCFNet.cpp:
29846         (WebCore::setHeaderFields):
29847         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29848         * platform/network/cf/ResourceResponseCFNet.cpp:
29849         (WebCore::ResourceResponse::cfURLResponse):
29850         * platform/network/cf/SocketStreamHandleCFNet.cpp:
29851         (WebCore::SocketStreamHandle::createStreams):
29852         (WebCore::SocketStreamHandle::addCONNECTCredentials):
29853         (WebCore::SocketStreamHandle::copyCFStreamDescription):
29854         * platform/network/mac/ResourceRequestMac.mm:
29855         (WebCore::ResourceRequest::doUpdatePlatformRequest):
29856         * platform/network/mac/WebCoreURLResponse.mm:
29857         (WebCore::adjustMIMETypeIfNecessary):
29858         * platform/text/cf/HyphenationCF.cpp:
29859         (WebCore::::createValueForKey):
29860         * platform/text/cf/StringCF.cpp:
29861         (WTF::String::createCFString):
29862         * platform/text/cf/StringImplCF.cpp:
29863         (WTF::StringImpl::createCFString):
29864         * platform/text/mac/StringImplMac.mm:
29865         (WTF::StringImpl::operator NSString *):
29866         * platform/text/mac/TextCodecMac.cpp:
29867         (WebCore::TextCodecMac::encode):
29868         * platform/win/SearchPopupMenuWin.cpp:
29869         (WebCore::autosaveKey):
29870         (WebCore::SearchPopupMenuWin::saveRecentSearches):
29871
29872 2012-10-30  Chris Fleizach  <cfleizach@apple.com>
29873
29874         AX: Support embedded SVG objects in AX tree
29875         https://bugs.webkit.org/show_bug.cgi?id=97571
29876
29877         Reviewed by Tim Horton.
29878
29879         This patch allows an SVG image from another resource to be hooked into the AX
29880         hierarchy. This is done by creating an AX wrapper for the root SVG that holds onto
29881         its native parent image. The SVGChromeClient is then used to connect to this SVG resource.
29882
29883         Test: accessibility/svg-remote-element.html
29884
29885         * CMakeLists.txt:
29886         * GNUmakefile.list.am:
29887         * WebCore.gypi:
29888         * WebCore.vcproj/WebCore.vcproj:
29889         * WebCore.xcodeproj/project.pbxproj:
29890         * accessibility/AXObjectCache.cpp:
29891         (WebCore::createFromRenderer):
29892         * accessibility/AccessibilityAllInOne.cpp:
29893         * accessibility/AccessibilityObject.h:
29894         (WebCore::AccessibilityObject::isAccessibilitySVGRoot):
29895         (AccessibilityObject):
29896         * accessibility/AccessibilityRenderObject.cpp:
29897         (WebCore::AccessibilityRenderObject::detach):
29898         (WebCore::AccessibilityRenderObject::offsetBoundingBoxForRemoteSVGElement):
29899         (WebCore::AccessibilityRenderObject::boundingBoxRect):
29900         (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
29901         (WebCore::AccessibilityRenderObject::elementAccessibilityHitTest):
29902         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
29903         (WebCore::AccessibilityRenderObject::isSVGImage):
29904         (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
29905         (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
29906         (WebCore::AccessibilityRenderObject::addRemoteSVGChildren):
29907         (WebCore::AccessibilityRenderObject::addChildren):
29908         * accessibility/AccessibilityRenderObject.h:
29909         (AccessibilityRenderObject):
29910         * accessibility/AccessibilitySVGRoot.cpp: Added.
29911         (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
29912         (WebCore::AccessibilitySVGRoot::~AccessibilitySVGRoot):
29913         (WebCore::AccessibilitySVGRoot::create):
29914         (WebCore::AccessibilitySVGRoot::parentObject):
29915         * accessibility/AccessibilitySVGRoot.h: Added.
29916         (AccessibilitySVGRoot): Class provides ability to wrap the SVG root of a remote accessibility element.
29917         (WebCore::AccessibilitySVGRoot::setParent):
29918         (WebCore::AccessibilitySVGRoot::isAccessibilitySVGRoot):
29919         (WebCore::toAccessibilitySVGRoot):
29920         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
29921         (-[WebAccessibilityObjectWrapper position]): The position of AX elements within a remote SVG element needs to be handled 
29922         in a special manner.
29923         (createAccessibilityRoleMap):
29924         * loader/EmptyClients.h:
29925         (EmptyChromeClient): Expose isEmptyChromeClient() so Accessibility will know when to apply different policies for finding
29926         the accessibility bounding rect of elements.
29927         (WebCore::EmptyChromeClient::isEmptyChromeClient):
29928         * page/ChromeClient.h:
29929         (WebCore::ChromeClient::isEmptyChromeClient):
29930         (ChromeClient):
29931         * svg/graphics/SVGImage.cpp:
29932         * svg/graphics/SVGImageChromeClient.h: Added.
29933         (SVGImageChromeClient): Expose the SVGImageChromeClient so that Accessibility can reference its image.
29934         (WebCore::SVGImageChromeClient::SVGImageChromeClient):
29935         (WebCore::SVGImageChromeClient::isSVGImageChromeClient):
29936         (WebCore::SVGImageChromeClient::image):
29937         (WebCore::SVGImageChromeClient::chromeDestroyed):
29938         (WebCore::SVGImageChromeClient::invalidateContentsAndRootView):
29939         (WebCore::toSVGImageChromeClient):
29940
29941 2012-10-30  Dan Carney  <dcarney@google.com>
29942
29943         add 7 bit strings capabilities to the v8 binding layer
29944         https://bugs.webkit.org/show_bug.cgi?id=91850
29945
29946         Reviewed by Adam Barth.
29947
29948         This change enables the v8 binding layer to make use of webkit's
29949         8 bit string capabilities. Using 8 bit strings leads to certain
29950         benchmark performance improvemnts as can be seen in
29951         https://bug-91850-attachments.webkit.org/attachment.cgi?id=163334.
29952
29953         No new tests. Test coverage already extensive.
29954
29955         * bindings/v8/V8PerIsolateData.cpp:
29956         (WebCore::V8PerIsolateData::visitExternalStrings):
29957         * bindings/v8/V8StringResource.cpp:
29958         (StringTraits):
29959         (WebCore::false):
29960         (WebCore):
29961         (WebCore::true):
29962         (WebCore::v8StringToWebCoreString):
29963         * bindings/v8/V8ValueCache.cpp:
29964         (WebCore::makeExternalString):
29965         (WebCore::WebCoreStringResourceBase::visitStrings):
29966         * bindings/v8/V8ValueCache.h:
29967         (WebCore::WebCoreStringResourceBase::WebCoreStringResourceBase):
29968         (WebCore::WebCoreStringResourceBase::~WebCoreStringResourceBase):
29969         (WebCore::WebCoreStringResourceBase::atomicString):
29970         (WebCoreStringResourceBase):
29971         (WebCore::WebCoreStringResourceBase::memoryConsumption):
29972
29973 2012-10-30  Christophe Dumez  <christophe.dumez@intel.com>
29974
29975         [AC] Fix compilation warnings when enabling Accelerated Compositing
29976         https://bugs.webkit.org/show_bug.cgi?id=100741
29977
29978         Reviewed by Kenneth Rohde Christiansen.
29979
29980         Fix a few compilation warnings when building EFL port
29981         with accelerated compositing enabled.
29982
29983         No new tests, no behavior change.
29984
29985         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
29986         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
29987         (WebCore::resolveGLMethods):
29988         (WebCore::GraphicsSurface::platformCopyToGLTexture):
29989         (WebCore::GraphicsSurface::platformLock):
29990         * platform/graphics/texmap/TextureMapperGL.cpp:
29991         (WebCore::BitmapTextureGL::updateContents):
29992
29993 2012-10-30  No'am Rosenthal  <noam.rosenthal@nokia.com>
29994
29995         [Qt] Animations jump when the page is suspended
29996         https://bugs.webkit.org/show_bug.cgi?id=100673
29997
29998         Reviewed by Kenneth Rohde Christiansen.
29999
30000         GraphicsLayerAnimations::pause() should accept time from start and not an offset.
30001
30002         We need to support the "freeze" API before this can be reliably tested.
30003         See https://bugs.webkit.org/show_bug.cgi?id=100703.
30004
30005         * platform/graphics/GraphicsLayerAnimation.cpp:
30006         (WebCore::GraphicsLayerAnimation::pause):
30007
30008 2012-10-30  Kondapally Kalyan  <kalyan.kondapally@intel.com>
30009
30010         [Qt][EFL][AC] While Using WebGL, MiniBrowser segfaults on Refreshing the page.
30011         https://bugs.webkit.org/show_bug.cgi?id=100639.
30012
30013         Reviewed by Kenneth Rohde Christiansen.
30014
30015         TextureMapperSurfaceBackingStore can import textures from a GraphicSurface.
30016         In such cases GraphicsSurfaceGLX creates an XPixmap to read texture content
30017         from a given WindowId, but doesn't create any new window.
30018         However, OffScreenRootWindow always tries to unmap window (in its destructor) resulting in segfault.
30019         With this patch OffScreenRootWindow would check for a valid window before trying to unmap it.
30020
30021         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
30022         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
30023
30024 2012-10-30  Emil A Eklund  <eae@chromium.org>
30025
30026         [subixel] Change LineWidth::shrinkAvailableWidthForNewFloatIfNeeded to not pixel snap
30027         https://bugs.webkit.org/show_bug.cgi?id=100742
30028
30029         Reviewed by Levi Weintraub.
30030
30031         As we no longer pixel snap values when computing the current width for a
30032         line we should not do it in shrinkAvailableWidthForNewFloatIfNeeded
30033         either.
30034
30035         Test: fast/sub-pixel/float-wrap-zoom.html
30036
30037         * rendering/RenderBlockLineLayout.cpp:
30038         (WebCore::LineWidth::LineWidth): Remove unnecessary ifdef.
30039         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Use float values instead of pixel snapped/floored values as the line width calculations uses floats.
30040
30041 2012-10-30  Max Vujovic  <mvujovic@adobe.com>
30042
30043         [CSS Shaders] Reject vertex shaders with custom attributes
30044         https://bugs.webkit.org/show_bug.cgi?id=98973
30045
30046         Reviewed by Dean Jackson.
30047
30048         Improved CSS Custom Filters shader validation. With this patch:
30049         (1) Shaders with custom attributes do not execute (e.g. attribute float my_attribute;).
30050         (2) Shaders with a_triangleCoord defined do not execute with an attached mesh.
30051
30052         Most of the changes are from renaming CustomFilterOperation::MeshType to
30053         CustomFilterMeshType, and moving the enumeration to CustomFilterConstants.h. This avoids
30054         pulling in CustomFilterOperation for classes that only care about the mesh type.
30055
30056         Note that in CSS Custom Filters, the a_triangleCoord attribute is only available in detached
30057         meshes. In detached meshes, no vertices are shared between triangles. Thus, each vertex
30058         belongs to a specific triangle, which a_triangleCoord identifies. In attached meshes,
30059         vertices can belong to many triangles, which a_triangleCoord cannot identify because it's
30060         only a vec3.
30061
30062         Tests:
30063         Add two new checks to the test file:
30064             css3/filters/custom/invalid-custom-filter-attribute-types.html
30065         Add two new shaders:
30066             css3/filters/resources/invalid-custom-attribute.vs
30067             css3/filters/resources/invalid-a-triangle-coord-with-attached-mesh.vs
30068
30069         * WebCore.xcodeproj/project.pbxproj:
30070             Update a broken reference to CustomFilterConstants.h in the Xcode project file.
30071         * css/CSSComputedStyleDeclaration.cpp:
30072         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
30073             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30074         * css/StyleResolver.cpp:
30075         (WebCore::StyleResolver::createCustomFilterOperation): Ditto.
30076         * platform/graphics/filters/CustomFilterConstants.h:
30077             Add CustomFilterMeshType enum to share across the Custom Filters codebase, so that we
30078             don't have to include CustomFilterOperation just to access the old
30079             CustomFilterOperation::MeshType enum.
30080         * platform/graphics/filters/CustomFilterMesh.cpp:
30081         (WebCore::CustomFilterMesh::CustomFilterMesh):
30082             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30083         * platform/graphics/filters/CustomFilterMesh.h:
30084         (WebCore::CustomFilterMesh::create): Ditto.
30085         (WebCore::CustomFilterMesh::meshType): Ditto.
30086         (CustomFilterMesh): Ditto.
30087         * platform/graphics/filters/CustomFilterMeshGenerator.cpp: Ditto.
30088         (WebCore::CustomFilterMeshGenerator::CustomFilterMeshGenerator): Ditto.
30089         (WebCore::CustomFilterMeshGenerator::dumpBuffers): Ditto.
30090         * platform/graphics/filters/CustomFilterMeshGenerator.h:
30091         (CustomFilterMeshGenerator): Ditto.
30092         (WebCore::CustomFilterMeshGenerator::floatsPerVertex): Ditto.
30093         (WebCore::CustomFilterMeshGenerator::verticesCount): Ditto.
30094         * platform/graphics/filters/CustomFilterOperation.cpp: 
30095         (WebCore::CustomFilterOperation::CustomFilterOperation): Ditto.
30096         * platform/graphics/filters/CustomFilterOperation.h:
30097         (WebCore::CustomFilterOperation::create): Ditto.
30098         (WebCore::CustomFilterOperation::meshType): Ditto.
30099         (CustomFilterOperation): Ditto.
30100         * platform/graphics/filters/CustomFilterProgram.cpp:
30101         (WebCore::CustomFilterProgram::CustomFilterProgram):
30102             Add a meshType constructor parameter because the program now needs to know the meshType
30103             to properly validate.
30104         (WebCore::CustomFilterProgram::programInfo):
30105             Pass meshType to CustomFilterProgram constructor.
30106         (WebCore::CustomFilterProgram::operator==):
30107             Check the meshType in the equals operator.
30108         * platform/graphics/filters/CustomFilterProgram.h:
30109             Make vertexShaderString() and fragmentShaderString() public so that we don't have to ask
30110             for a programInfo object just to get the shader strings in
30111             CoordinatedGraphicsArgumentCoders.cpp.
30112         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
30113         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo):
30114             Add a meshType constructor parameter.       
30115         (WebCore::CustomFilterProgramInfo::hash):
30116             Include the meshType in the validated program hash, since the same shader code can pass
30117             or fail validation based on the meshType.
30118         (WebCore::CustomFilterProgramInfo::operator==):
30119             Check the meshType in the equals operator.
30120         * platform/graphics/filters/CustomFilterProgramInfo.h:
30121         (CustomFilterProgramInfo):
30122             Update method prototype.
30123         (WebCore::CustomFilterProgramInfo::meshType):
30124             Add meshType getter.
30125         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
30126         (WebCore::CustomFilterValidatedProgram::validateSymbols):
30127             If the author defines attribute that is is not found in the built-in attribute map,
30128             reject the shader.
30129             If the author defines a_triangleCoord without a detached mesh type, reject the shader.
30130             Also, make this previously file-static function into a method of
30131             CustomFilterValidatedProgram because it now needs to access the m_meshType.
30132         * platform/graphics/filters/CustomFilterValidatedProgram.h:
30133         (CustomFilterValidatedProgram):
30134             Add a meshType constructor parameter because the program now needs to know the meshType
30135             to properly validate.
30136         * platform/graphics/filters/FECustomFilter.cpp:
30137         (WebCore::FECustomFilter::FECustomFilter):
30138             Replace CustomFilterOperation::MeshType with CustomFilterMeshType.
30139         (WebCore::FECustomFilter::create): Ditto.
30140         (WebCore::FECustomFilter::bindProgramAndBuffers): Ditto.
30141         (WebCore::FECustomFilter::unbindVertexAttributes): Ditto.
30142         * platform/graphics/filters/FECustomFilter.h:
30143         (FECustomFilter): Ditto.
30144         * rendering/style/StyleCustomFilterProgram.h:
30145         (WebCore::StyleCustomFilterProgram::create):
30146             Add a meshType constructor parameter.
30147         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): Ditto.
30148
30149 2012-10-30  Andrey Lushnikov  <lushnikov@google.com>
30150
30151         Web Inspector: adds isOwnProperty to remote protocol
30152         https://bugs.webkit.org/show_bug.cgi?id=100664
30153
30154         Reviewed by Pavel Feldman.
30155
30156         Test: inspector/runtime/runtime-getProperties-isOwnProperty.html
30157
30158         Adds requested 'isOwn' property to the 'PropertyDescriptor' class of the
30159         remote debugging protocol. 
30160
30161         * inspector/InjectedScriptSource.js:
30162         (.):
30163         * inspector/Inspector.json:
30164
30165 2012-10-30  Zeno Albisser  <zeno@webkit.org>
30166
30167         [Qt][Win] BitmapTextureGL::updateContents() broken after r132019.
30168         https://bugs.webkit.org/show_bug.cgi?id=100680
30169
30170         When creating a temporary for swizzling the image data,
30171         the temporary will have the target size.
30172         Therefore no offset within the available image data
30173         shall be applied in this case.
30174
30175         Reviewed by Noam Rosenthal.
30176
30177         * platform/graphics/texmap/TextureMapperGL.cpp:
30178         (WebCore::BitmapTextureGL::updateContents):
30179
30180 2012-10-30  Kent Tamura  <tkent@chromium.org>
30181
30182         Remove unused code for old input[type=date] UI
30183         https://bugs.webkit.org/show_bug.cgi?id=100734
30184
30185         Reviewed by Hajime Morita.
30186
30187         The old input[type=date] UI used in Google Chrome 20-23 (text field with
30188         a fixed placeholder) was replaced with ENABLE_INPUT_MULTIPLE_FIELDS_UI.
30189
30190         No new tests because of no behavior changes.
30191
30192         * html/DateInputType.cpp: Remove ENABLE_INPUT_TYPE_DATE_LEGACY_UI code path.
30193         * html/DateInputType.h: Ditto.
30194
30195         * html/HTMLInputElement.cpp:
30196         (WebCore::HTMLInputElement::supportsPlaceholder):
30197         Remove fixed-placeholder feature.
30198         * html/HTMLInputElement.h:
30199         (HTMLInputElement): Ditto.
30200         * html/HTMLTextFormControlElement.h:
30201         (HTMLTextFormControlElement): isPlaceholderEmpty() is not needed to be virtual
30202         * html/InputType.cpp: Remove fixed-placeholder feature.
30203         * html/InputType.h: Ditto.
30204         * html/TextFieldInputType.cpp:
30205         (WebCore::TextFieldInputType::updatePlaceholderText): Ditto.
30206
30207         * platform/text/PlatformLocale.h:
30208         (Locale): Remove dateFormatText.
30209         * platform/text/LocaleICU.cpp: Ditto.
30210         * platform/text/LocaleICU.h: Ditto.
30211         * platform/text/LocaleNone.cpp: Ditto.
30212         * platform/text/mac/LocaleMac.h: Ditto.
30213         * platform/text/mac/LocaleMac.mm: Ditto.
30214         * platform/text/win/LocaleWin.cpp: Ditto.
30215         * platform/text/win/LocaleWin.h: Ditto.
30216         * platform/LocalizedStrings.h:
30217         (WebCore): Remove unused functions; calendarTodayText,
30218         calendarClearText, dateFormatYearText, dateFormatMonthText,
30219         dateFormatDayInMonthText
30220
30221 2012-10-30  Kent Tamura  <tkent@chromium.org>
30222
30223         Fix crash by calendar picker or suggestion picker
30224         https://bugs.webkit.org/show_bug.cgi?id=100728
30225
30226         Reviewed by Hajime Morita.
30227
30228         Change DateTimeChooser so that it is ref-coutned.
30229
30230         Test: platform/chromium/fast/forms/calendar-picker/calendar-picker-type-change-onchange.html
30231
30232         * platform/DateTimeChooser.h: Made DateTimeChooser RefCounted.
30233         * page/ChromeClient.h:
30234         (ChromeClient): openDateTimeChooser should return PassRefPtr<DateTimeChooser>.
30235         * loader/EmptyClients.h:
30236         (EmptyChromeClient): Follow the above change.
30237         * loader/EmptyClients.cpp:
30238         (WebCore::EmptyChromeClient::openDateTimeChooser): Ditto.
30239
30240         * html/shadow/PickerIndicatorElement.h:
30241         (PickerIndicatorElement): Hold DateTimeChooser in RefPtr<DateTimeChooser>.
30242         * html/shadow/PickerIndicatorElement.cpp:
30243         (WebCore::PickerIndicatorElement::PickerIndicatorElement):
30244         Remove unnecessary initialization.
30245
30246 2012-10-30  Eugene Klyuchnikov  <eustas.bug@gmail.com>
30247
30248         Web Inspector: Timeline: promote "cpu activity" out of experiment
30249         https://bugs.webkit.org/show_bug.cgi?id=100726
30250
30251         Reviewed by Pavel Feldman.
30252
30253         1. CPU actibity bars redesigned
30254         2. Experiment setting removed
30255         3. Feature setting added
30256
30257         * English.lproj/localizedStrings.js: Updated setting label.
30258         * inspector/front-end/Settings.js: Replaced experiment with setting.
30259         * inspector/front-end/SettingsScreen.js: Added new setting.
30260         * inspector/front-end/TimelinePanel.js: Update cpu bars appearance.
30261         * inspector/front-end/timelinePanel.css: Ditto.
30262
30263 2012-10-30  Michelangelo De Simone  <michelangelo@webkit.org>
30264
30265         [CSS Shaders] Change the default compositing mode and the default CSS value for <fragmentShader>
30266         https://bugs.webkit.org/show_bug.cgi?id=94020
30267
30268         Reviewed by Dean Jackson.
30269
30270         The default compositing mode has been changed from "normal source-over" to
30271         "normal source-atop". This applies to the default fragment shader that will
30272         kick in when there is no explicit fragment shader or mix function defined.
30273
30274         This has required to update all the existing tests; the dummy empty fragment
30275         shader has also been removed because not needed.
30276
30277         * css/CSSComputedStyleDeclaration.cpp:
30278         (WebCore::CSSComputedStyleDeclaration::valueForFilter): An existence check
30279         for the fragment shader has been added.
30280         * css/StyleResolver.cpp:
30281         (WebCore::StyleResolver::createCustomFilterOperation): The default program
30282         has been updated: PROGRAM_TYPE_BLENDS_TEXTURE (compositing enabled) now is
30283         the default.
30284         * platform/graphics/filters/CustomFilterProgramInfo.h:
30285         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings):
30286         New CustomFilterProgramMixSettings defaults to "source-atop" composite
30287         operator.
30288
30289 2012-10-30  Ádám Kallai  <kadam@inf.u-szeged.hu>
30290
30291         [Qt][Mac] Unreviewed build fix.
30292         https://bugs.webkit.org/show_bug.cgi?id=100727.
30293
30294         Speculative build fix after 132858. Include missing CoreFoundation/CoreFoundation.h header.
30295
30296         * platform/text/cf/AtomicStringCF.cpp:
30297
30298 2012-10-30  Gabor Rapcsanyi  <rgabor@webkit.org>
30299
30300         Optimize vclip for NEON in VectorMath
30301         https://bugs.webkit.org/show_bug.cgi?id=100737
30302
30303         Reviewed by Zoltan Herczeg.
30304
30305         Speed up vclip in VectorMath with NEON intrinsics.
30306
30307         * platform/audio/VectorMath.cpp:
30308         (WebCore::VectorMath::vclip):
30309
30310 2012-10-30  Alexandru Chiculita  <achicu@adobe.com>
30311
30312         [CSS Shaders] Software and composited filters should have a common path
30313         https://bugs.webkit.org/show_bug.cgi?id=100532
30314
30315         Reviewed by Dean Jackson.
30316
30317         Added computeFilterOperations as a common method between the software filters
30318         and hardware composited ones. The method rejects custom filters that are not
30319         loaded yet. In bug 100533 it will also convert the CustomFilterOperation to a 
30320         ValidatedCustomFilterOperation. That will help us keep the loading and verification 
30321         code for the custom filters common across all the ports.
30322
30323         No new tests, just refactoring existing code.
30324
30325         * rendering/RenderLayer.cpp:
30326         (WebCore::RenderLayer::computeFilterOperations):
30327         (WebCore):
30328         (WebCore::RenderLayer::updateOrRemoveFilterEffect):
30329         * rendering/RenderLayer.h:
30330         (WebCore):
30331         (RenderLayer):
30332         * rendering/RenderLayerBacking.cpp:
30333         (WebCore::RenderLayerBacking::updateFilters):
30334
30335 2012-10-30  Alexei Filippov  <alph@chromium.org>
30336
30337         Web Inspector: Implement native memory snapshot grid view
30338         https://bugs.webkit.org/show_bug.cgi?id=100656
30339
30340         Native memory snapshots are now shown as an expandable tree form
30341         using the grid control.
30342
30343         Reviewed by Yury Semikhatsky.
30344
30345         * inspector/front-end/NativeMemorySnapshotView.js:
30346         (WebInspector.NativeMemorySnapshotView):
30347         (WebInspector.NativeSnapshotDataGrid):
30348         (WebInspector.NativeSnapshotNode):
30349         (WebInspector.NativeSnapshotNode.prototype.createCell):
30350         (WebInspector.NativeSnapshotNode.prototype._createSizeCell):
30351         (WebInspector.NativeSnapshotNode.prototype._populate):
30352         (WebInspector.MemoryBlockViewProperties._initialize):
30353         (WebInspector.MemoryBlockViewProperties._forMemoryBlock):
30354         * inspector/front-end/dataGrid.css:
30355         (.data-grid td):
30356         * inspector/front-end/nativeMemoryProfiler.css:
30357         (.memory-bar-chart-bar):
30358         (.native-snapshot-view):
30359         (.native-snapshot-view.visible):
30360         (.native-snapshot-view .data-grid):
30361         (.native-snapshot-view .data-grid table):
30362         (.native-snapshot-view .data-grid div.size-text):
30363         (.native-snapshot-view .data-grid div.size-bar):
30364         (.native-snapshot-view .data-grid div.percent-text):
30365
30366 2012-10-30  Zoltan Nyul  <zoltan.nyul@intel.com>
30367
30368         3d rotation with [0, 0, 0] direction vector should not be applied
30369         https://bugs.webkit.org/show_bug.cgi?id=100733
30370
30371         Reviewed by Levi Weintraub.
30372
30373         As stated in the specification (http://dev.w3.org/csswg/css3-3d-transforms/#transform-functions),
30374         a direction vector that cannot be normalized, such as [0, 0, 0], will cause the rotation to not be applied,
30375         but webkit applies it with [1, 0, 0] direction vector.
30376
30377         Test: transforms/3d/general/3dtransform-values.html
30378
30379         * platform/graphics/transforms/TransformationMatrix.cpp:
30380         (WebCore::TransformationMatrix::rotate3d):
30381
30382 2012-10-30  Yury Semikhatsky  <yurys@chromium.org>
30383
30384         Memory instrumentation: report actual object address for CachedResourceClients
30385         https://bugs.webkit.org/show_bug.cgi?id=100659
30386
30387         Reviewed by Alexander Pavlov.
30388
30389         Skipped pointers to objects that are not allocated on the heap directly.
30390
30391         To test this we need to compare addresses of objects traversed by the memory
30392         insrumentation with those allocated by the memory allocator. The latter set
30393         should include the former one.
30394
30395         * css/StyleResolver.cpp:
30396         (WTF): skip pointers to RuleData structures as they are stored by value in RuleSet
30397         objects and should not be reported separately.
30398         * loader/cache/CachedResource.cpp:
30399         (WTF): do not report memory occupied by CachedResourceClients as objects implementing
30400         the interface may have address which differ from CachedResourceClient*. The clients
30401         should be reachable from their instrumented owners where we know exact type of the
30402         clients and hence can figure correct address.
30403
30404 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org>
30405
30406         [Refatoring] Remove ElementShadow::insertionPointFor
30407         https://bugs.webkit.org/show_bug.cgi?id=100625
30408
30409         Reviewed by Hajime Morita.
30410
30411         Now that ElementShadow::insertionPointFor does not do any special things, and it's only used in
30412         ComposedShadowTreeWalker. So we can remove it.
30413
30414         No new tests, simple refactoring.
30415
30416         * dom/ComposedShadowTreeWalker.cpp:
30417         (WebCore::resolveReprojection):
30418         (WebCore::AncestorChainWalker::parent):
30419         * dom/ElementShadow.cpp:
30420         * dom/ElementShadow.h:
30421         (ElementShadow):
30422         * dom/ShadowRoot.h: ShadowRoot has insertionPointFor declaration, but we don't have any implementation.
30423         We should remove it.
30424
30425 2012-10-29  Andy Estes  <aestes@apple.com>
30426
30427         Fix a typo that caused SVG external resources to be blocked on
30428         platforms other than Chromium.
30429
30430         * loader/cache/CachedResourceLoader.cpp:
30431         (WebCore::CachedResourceLoader::canRequest):
30432
30433 2012-10-29  Keishi Hattori  <keishi@webkit.org>
30434
30435         NSLocale leaks in LocaleMac
30436         https://bugs.webkit.org/show_bug.cgi?id=97628
30437
30438         Reviewed by Kent Tamura.
30439
30440         We need to adopt the NSLocale object so it doesn't leak and
30441         determineLocale() should return a NSLocale without additional retain.
30442
30443         No new tests.
30444
30445         * platform/text/mac/LocaleMac.mm:
30446         (WebCore::determineLocale): Returns a RetainPtr<NSLocale>.
30447         (WebCore::Locale::create):
30448         (WebCore::LocaleMac::LocaleMac): m_locale should adopt the NSLocale object.
30449         (WebCore::LocaleMac::create): LocaleMac constructor takes NSLocale without additional retain.
30450
30451 2012-10-29  Charles Wei  <charles.wei@torchmobile.com.cn>
30452
30453         [BlackBerry] Disable redirect to data scheme for potential fishing.
30454         https://bugs.webkit.org/show_bug.cgi?id=100713
30455
30456         Reviewed by George Staikos.
30457
30458         We will disable redirect to data scheme to avoid potential security concern, 
30459         described in klevjers.com/papers/phishing.pdf.
30460
30461
30462         * platform/network/blackberry/NetworkJob.cpp:
30463         (WebCore::NetworkJob::handleRedirect):
30464
30465 2012-10-29  Vincent Scheib  <scheib@chromium.org>
30466
30467         Unreviewed, rolling out r132845.
30468         http://trac.webkit.org/changeset/132845
30469         https://bugs.webkit.org/show_bug.cgi?id=99975
30470
30471         Broke chromium builds, linker errors from
30472         IDBBindingUtilitiesTest
30473
30474         * Modules/indexeddb/IDBRequest.cpp:
30475         (WebCore::IDBRequest::IDBRequest):
30476         (WebCore::IDBRequest::onSuccess):
30477         (WebCore::IDBRequest::dispatchEvent):
30478         * Modules/indexeddb/IDBRequest.h:
30479         (IDBRequest):
30480         * bindings/v8/IDBBindingUtilities.cpp:
30481         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30482         (WebCore):
30483         (WebCore::deserializeIDBValue):
30484         (WebCore::injectIDBKeyIntoScriptValue):
30485         (WebCore::idbKeyToScriptValue):
30486         * bindings/v8/V8PerIsolateData.cpp:
30487         (WebCore::V8PerIsolateData::ensureAuxiliaryContext):
30488         (WebCore):
30489         * bindings/v8/V8PerIsolateData.h:
30490         (V8PerIsolateData):
30491
30492 2012-10-29  Anders Carlsson  <andersca@apple.com>
30493
30494         Fix Windows build.
30495
30496         * platform/network/cf/ResourceRequestCFNet.cpp:
30497         (WebCore::setHeaderFields):
30498
30499 2012-10-28  Mark Rowe  <mrowe@apple.com>
30500
30501         Simplify Xcode configuration settings that used to vary between OS versions.
30502
30503         Reviewed by Dan Bernstein.
30504
30505         * Configurations/Base.xcconfig:
30506         * Configurations/DebugRelease.xcconfig:
30507         * Configurations/WebCore.xcconfig:
30508
30509 2012-10-28  Mark Rowe  <mrowe@apple.com>
30510
30511         Remove references to unsupported OS and Xcode versions.
30512
30513         Reviewed by Anders Carlsson.
30514
30515         * Configurations/Base.xcconfig:
30516         * Configurations/CompilerVersion.xcconfig: Removed.
30517         * Configurations/DebugRelease.xcconfig:
30518         * Configurations/Version.xcconfig:
30519         * Configurations/WebCore.xcconfig:
30520         * DerivedSources.make:
30521         * WebCore.xcodeproj/project.pbxproj:
30522
30523 2012-10-29  Anders Carlsson  <andersca@apple.com>
30524
30525         AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
30526         https://bugs.webkit.org/show_bug.cgi?id=100701
30527
30528         Reviewed by Dan Bernstein.
30529
30530         * WebCore.exp.in:
30531         Export AtomicString::add(CFStringRef).
30532
30533         * Target.pri:
30534         * WebCore.gypi:
30535         * WebCore.vcproj/WebCore.vcproj:
30536         * WebCore.xcodeproj/project.pbxproj:
30537         Add AtomicStringCF.cpp 
30538
30539         * platform/text/cf/AtomicStringCF.cpp: Added.
30540         (WTF::AtomicString::add):
30541         When trying to add the atomic string to the table, first try to get a Latin-1 pointer
30542         from the string. Second, try to get a Unicode pointer from the string.
30543         If that also fails, copy the string to a temporary unicode buffer and add it from there.
30544
30545         * platform/text/cf/HyphenationCF.cpp:
30546         (WebCore::::createValueForKey):
30547         Update for AtomicString::createCFString being removed.
30548
30549 2012-10-25  Stephen Chenney  <schenney@chromium.org>
30550
30551         feImage should not be allowed to self reference
30552         https://bugs.webkit.org/show_bug.cgi?id=94652
30553
30554         Reviewed by Eric Seidel.
30555
30556         Add cycle detection for SVG filter application, and also fix a problem
30557         with graphics context restore when filters are applied. This also
30558         converts the flags in FilterData to a state tracking system, as the
30559         number of flags was getting messy and only one flag is valid at any given time.
30560
30561         Test: svg/filters/feImage-self-and-other-referencing.html
30562
30563         * rendering/svg/RenderSVGResourceFilter.cpp: Convert to new FilterData
30564         state management and enable cycle detection.
30565         (WebCore):
30566         (WebCore::RenderSVGResourceFilter::removeClientFromCache): Change isBuilt and markedForRemoval flags to state enums.
30567         (WebCore::RenderSVGResourceFilter::applyResource): Change flags to state enums and detect cycles.
30568         (WebCore::RenderSVGResourceFilter::postApplyResource): Change flags to state and add handling
30569         for the various states.
30570         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Change isBuilt flag to state enums.
30571         * rendering/svg/RenderSVGResourceFilter.h:
30572         (WebCore::FilterData::FilterData):
30573         (FilterData): Convert to a state tracking system.
30574         * rendering/svg/RenderSVGRoot.cpp:
30575         (WebCore::RenderSVGRoot::paintReplaced): Add a block around the
30576         SVGRenderingContext so that it applies the filter and reverts the
30577         context before the calling method restores the context.
30578
30579 2012-10-29  Dan Bernstein  <mitz@apple.com>
30580
30581         <rdar://problem/12592716> REGRESSION (r132545): With full-page accelerated drawing, a
30582         reproducible hang occurs at <http://www.cbsnews.com/stories/2010/01/24/ftn/main6136386.shtml>.
30583
30584         Reviewed by Anders Carlsson.
30585
30586         Work around <rdar://problem/12584492> by limiting the scope of the fix for <http://webkit.org/b/100413>.
30587
30588         * platform/graphics/cg/GraphicsContextCG.cpp:
30589         (WebCore::GraphicsContext::clipOut): Reverted to using CGContextGetClipBoundingBox() rather
30590         than CGRectInfinite when the context is accelerated and has a transform that is not just
30591         a translation or a scale.
30592
30593 2012-10-29  Rob Buis  <rbuis@rim.com>
30594
30595         [BlackBerry] Simplify AuthenticationChallengeManager::instance
30596         https://bugs.webkit.org/show_bug.cgi?id=100614
30597
30598         Reviewed by Yong Li.
30599         Internally reviewed by Lyon Chen.
30600
30601         Use a standard Singleton pattern here, this makes sure we create lazily.
30602
30603         * platform/blackberry/AuthenticationChallengeManager.cpp:
30604         (WebCore):
30605         * platform/blackberry/AuthenticationChallengeManager.h:
30606         (AuthenticationChallengeManager):
30607
30608 2012-10-29  Adam Barth  <abarth@webkit.org>
30609
30610         Block SVG external references pending a security review
30611         https://bugs.webkit.org/show_bug.cgi?id=100635
30612
30613         Reviewed by Eric Seidel.
30614
30615         We need to do a security review of loading external SVG references
30616         before we're sure that it is safe.
30617
30618         * css/StyleResolver.cpp:
30619         (WebCore::StyleResolver::createFilterOperations):
30620         * loader/cache/CachedResourceLoader.cpp:
30621         (WebCore::CachedResourceLoader::canRequest):
30622
30623 2012-10-29  Joshua Bell  <jsbell@chromium.org>
30624
30625         IndexedDB: Crash on checking version of corrupt backing store
30626         https://bugs.webkit.org/show_bug.cgi?id=100692
30627
30628         Reviewed by Tony Chang.
30629
30630         If the backing store fails to open (due to corruption, non-writeable disk, etc)
30631         the subsequent schema version check dereferences a null pointer. Fix to only
30632         do the schema check if the database opened.
30633
30634         Chromium tests will be included with crrev.com/11196029
30635
30636         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
30637         (WebCore::IDBLevelDBBackingStore::open):
30638
30639 2012-10-29  Philip Rogers  <pdr@google.com>
30640
30641         Let SVGElements have pending resources.
30642         https://bugs.webkit.org/show_bug.cgi?id=99694
30643
30644         Reviewed by Eric Seidel.
30645
30646         Our SVG pending resource tracking is used for handling dynamic id changes. For example,
30647         if an SVG element references an id that is not yet in the document (or has been removed),
30648         the SVG element will be 'pending' an id. When styled elements are inserted into
30649         the document, buildPendingResourcesIfNeeded() is called to force any pending elements
30650         to resolve their dependencies. Only SVGStyledElement targets can be referenced using
30651         this infrastructure, and that is not changed with this patch.
30652
30653         Previously, only SVGStyledElements could have pending resources. Some examples of where
30654         this is violated are SVGAnimateElement and SVGMPathElement which are not a styled elements
30655         but which can have pending references (they can reference styled elements and
30656         paths, respectively). This patch changes the pending resource handling to allow
30657         any SVGElement to have pending resources.
30658
30659         This patch is only a refactoring of code in preparation for WK99694 and does not
30660         affect existing functionality or tests.
30661
30662         * svg/SVGDocumentExtensions.cpp:
30663         (WebCore::SVGDocumentExtensions::addPendingResource):
30664         (WebCore::SVGDocumentExtensions::isElementPendingResources):
30665         (WebCore::SVGDocumentExtensions::isElementPendingResource):
30666         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
30667         (WebCore::SVGDocumentExtensions::removeElementFromPendingResourcesForRemoval):
30668         * svg/SVGDocumentExtensions.h:
30669         (WebCore):
30670         (SVGDocumentExtensions):
30671         * svg/SVGElement.cpp:
30672         (WebCore::SVGElement::~SVGElement):
30673         (WebCore::SVGElement::removedFrom):
30674         (WebCore::SVGElement::hasPendingResources):
30675         (WebCore):
30676         (WebCore::SVGElement::setHasPendingResources):
30677         (WebCore::SVGElement::clearHasPendingResourcesIfPossible):
30678         * svg/SVGElement.h:
30679         (SVGElement):
30680         (WebCore::SVGElement::buildPendingResource):
30681         * svg/SVGStyledElement.cpp:
30682         (WebCore):
30683         (WebCore::SVGStyledElement::buildPendingResourcesIfNeeded):
30684         (WebCore::SVGStyledElement::removedFrom):
30685         * svg/SVGStyledElement.h:
30686         (SVGStyledElement):
30687         (WebCore::SVGStyledElement::selfHasRelativeLengths):
30688
30689 2012-10-29  Dan Carney  <dcarney@google.com>
30690
30691         Remove ensureAuxiliaryContext
30692         https://bugs.webkit.org/show_bug.cgi?id=99975
30693
30694         Reviewed by Adam Barth.
30695
30696         Removed auxilliaryContext as use if it is problematic in IDB.
30697
30698         No new tests. No change in functionality.
30699
30700         * Modules/indexeddb/IDBCursor.cpp:
30701         (WebCore::IDBCursor::update):
30702         (WebCore::IDBCursor::setValueReady):
30703         * Modules/indexeddb/IDBCursor.h:
30704         (IDBCursor):
30705         * Modules/indexeddb/IDBObjectStore.cpp:
30706         (WebCore::generateIndexKeysForValue):
30707         (WebCore::IDBObjectStore::put):
30708         (WebCore):
30709         * Modules/indexeddb/IDBRequest.cpp:
30710         (WebCore::IDBRequest::onSuccess):
30711         (WebCore::IDBRequest::dispatchEvent):
30712         * bindings/v8/IDBBindingUtilities.cpp:
30713         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
30714         (WebCore::deserializeIDBValue):
30715         (WebCore::injectIDBKeyIntoScriptValue):
30716         * bindings/v8/IDBBindingUtilities.h:
30717         (WebCore):
30718         * bindings/v8/V8Binding.cpp:
30719         (WebCore::toV8Context):
30720         (WebCore):
30721         * bindings/v8/V8Binding.h:
30722         (WebCore):
30723         * bindings/v8/V8PerIsolateData.cpp:
30724         (WebCore):
30725         * bindings/v8/V8PerIsolateData.h:
30726
30727 2012-10-29  Alpha Lam  <hclam@chromium.org>
30728
30729         [skia] Handle mask box image.
30730         https://bugs.webkit.org/show_bug.cgi?id=100570
30731
30732         Reviewed by James Robinson.
30733
30734         When drawing an image with source rectangle it should intersect with image rectangle.
30735         This should be the case for drawing single image and tiling an image.
30736
30737         Test: fast/images/mask-box-image-crash.html
30738
30739         * platform/graphics/skia/ImageSkia.cpp:
30740         (WebCore::Image::drawPattern):
30741         (WebCore::BitmapImage::draw):
30742         (WebCore::BitmapImageSingleFrameSkia::draw):
30743
30744 2012-10-29  Eric Carlson  <eric.carlson@apple.com>
30745
30746         Support captions when PLUGIN_PROXY_FOR_VIDEO
30747         https://bugs.webkit.org/show_bug.cgi?id=100690
30748
30749         Reviewed by Simon Fraser.
30750
30751         When built with PLUGIN_PROXY_FOR_VIDEO, WebCore uses a plug-in for the media element's
30752         platform media engine. Update this code path so the shadow DOM elements used to display
30753         text tracks are created and configured correctly.
30754
30755         * html/HTMLMediaElement.cpp:
30756         (WebCore::HTMLMediaElement::configureMediaControls): Create media controls if necessary.
30757
30758         * rendering/RenderEmbeddedObject.cpp:
30759         (WebCore::RenderEmbeddedObject::layout): Set the position and size of the shadow DOM when the
30760             position of the embedded element changes.
30761         * rendering/RenderEmbeddedObject.h:
30762
30763 2012-10-29  Justin Novosad  <junov@google.com>
30764
30765         [Chromium] flickering observed when copying 2D canvas to webGL texture
30766         https://bugs.webkit.org/show_bug.cgi?id=100691
30767
30768         Reviewed by Stephen White.
30769
30770         Added a flush to the webgl context after texture upload from an image
30771         buffer to ensure proper graphics context synchronization with respect
30772         to subsequent changes to the source image.
30773
30774         Tests: fast/canvas/webgl/canvas-2d-webgl-texture.html
30775
30776         * platform/graphics/skia/ImageBufferSkia.cpp:
30777         (WebCore::ImageBuffer::copyToPlatformTexture):
30778
30779 2012-10-29  Glenn Adams  <glenn@skynav.com>
30780
30781         [CSSOM] Extraneous whitespace in CSSImportRule.cssText
30782         https://bugs.webkit.org/show_bug.cgi?id=100657
30783
30784         Reviewed by Simon Fraser.
30785
30786         Remove extraneous whitespace when serializing CSSImportRule.cssText when
30787         media list is empty.
30788
30789         Test: cssom/cssimportrule-media.html
30790
30791         * css/CSSImportRule.cpp:
30792         (WebCore::CSSImportRule::cssText):
30793         Don't append extra whitespace if mediaText is empty.
30794
30795 2012-10-29  Arnaud Renevier  <a.renevier@sisa.samsung.com>
30796
30797         webview not redrawn as needed when accelerated compositing is enabled.
30798         https://bugs.webkit.org/show_bug.cgi?id=99109
30799
30800         Reviewed by Martin Robinson.
30801
30802         GL shared display is not in the gtk loop and therefore, its events are
30803         not captured by gtk. So, we use gdk default instead.
30804
30805         No new tests, covered by existing tests.
30806
30807         * platform/gtk/RedirectedXCompositeWindow.cpp:
30808         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
30809         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
30810         (WebCore::RedirectedXCompositeWindow::resize):
30811
30812 2012-10-29  Pavel Feldman  <pfeldman@chromium.org>
30813
30814         Web Inspector: bind redo to Ctrl+Y on non-mac platforms
30815         https://bugs.webkit.org/show_bug.cgi?id=100685
30816
30817         Reviewed by Vsevolod Vlasov.
30818
30819         * inspector/front-end/DefaultTextEditor.js:
30820         (WebInspector.DefaultTextEditor.prototype._registerShortcuts):
30821
30822 2012-10-29  Enrica Casucci  <enrica@apple.com>
30823
30824         Add ENABLE_USERSELECT_ALL feature flag.
30825         https://bugs.webkit.org/show_bug.cgi?id=100559
30826
30827         Reviewed by Eric Seidel.
30828
30829         * Configurations/FeatureDefines.xcconfig:
30830
30831 2012-10-29  Alexandru Chiculita  <achicu@adobe.com>
30832
30833         [CSS Shaders] Extract the CustomFilterParameterList to its own file
30834         https://bugs.webkit.org/show_bug.cgi?id=100548
30835
30836         Reviewed by Dean Jackson.
30837
30838         Moved all the CustomFilterParameterList related methods to their own file.
30839         Also made CustomFilterParameterList inherit from Vector instead of typedefing it,
30840         so that we can add a different operator== and a blend method to it.
30841
30842         No new tests, just refactoring existing code.
30843
30844         * CMakeLists.txt:
30845         * GNUmakefile.list.am:
30846         * Target.pri:
30847         * WebCore.gypi:
30848         * WebCore.xcodeproj/project.pbxproj:
30849         * css/StyleResolver.h:
30850         * platform/graphics/filters/CustomFilterOperation.cpp:
30851         (WebCore::CustomFilterOperation::CustomFilterOperation):
30852         (WebCore::CustomFilterOperation::blend):
30853         * platform/graphics/filters/CustomFilterOperation.h:
30854         (WebCore):
30855         (WebCore::CustomFilterOperation::operator==):
30856         * platform/graphics/filters/CustomFilterParameterList.cpp: Added.
30857         (WebCore):
30858         (WebCore::CustomFilterParameterList::operator==):
30859         (WebCore::CustomFilterParameterList::checkAlphabeticalOrder):
30860         (WebCore::CustomFilterParameterList::blend):
30861         * platform/graphics/filters/CustomFilterParameterList.h: Added.
30862         (WebCore):
30863         (CustomFilterParameterList):
30864
30865 2012-10-29  Brady Eidson  <beidson@apple.com>
30866
30867         Try to fix 32-bit builds after my incompletely tested m_identifier change.
30868
30869         Not reviewed.
30870
30871         * loader/ResourceLoader.h:
30872         (WebCore::ResourceLoader::identifier): Revert my "unsigned long" -> "uint64_t" change in two places.
30873
30874 2012-10-29  Csaba Osztrogonác  <ossy@webkit.org>
30875
30876         [Qt] Text with zero font size renders as X px sometimes, causing fast/text/zero-font-size-2.html to fail
30877         https://bugs.webkit.org/show_bug.cgi?id=100115
30878
30879         Reviewed by Noam Rosenthal.
30880
30881         * platform/graphics/qt/FontQt.cpp:
30882         (WebCore::Font::drawGlyphs):
30883
30884 2012-10-29  Huang Dongsung  <luxtella@company100.net>
30885
30886         [TexMap] Make GraphicsLayerAnimation choose a proper timing function.
30887         https://bugs.webkit.org/show_bug.cgi?id=100623
30888
30889         Reviewed by Noam Rosenthal.
30890
30891         Currently, GraphicsLayerAnimation chooses a timing function in the wrong
30892         way. Other GraphicsLayers choose a timing function in the similar way to
30893         GraphicsLayerCA::timingFunctionForAnimationValue(). The way consists of
30894         the following steps.
30895         1. Try to query the timing function of the current keyframe animation value.
30896         2. If the timing function of #1 is null, try to query the timing function of Animation.
30897         3. If the timing function of #2 is null, return CubicBezierTimingFunction::defaultTimingFunction().
30898
30899         This patch makes GraphicsLayerAnimation choose a timing function in the same way
30900         to other implementations.
30901
30902         Covered by existing animations tests.
30903
30904         * platform/graphics/GraphicsLayerAnimation.cpp:
30905         (WebCore::timingFunctionForAnimationValue):
30906         (WebCore::GraphicsLayerAnimation::apply):
30907
30908 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
30909
30910         Web Inspector: Toolbar overflow appears outside window
30911         https://bugs.webkit.org/show_bug.cgi?id=100663
30912
30913         Reviewed by Pavel Feldman.
30914
30915         Since the search bar was removed from the toolbar, the overflow menu appears too far
30916         to the right, and is unreadable. Fixed this by aligning it relative to the right side
30917         of the window, rather than the left.
30918
30919         * inspector/front-end/Toolbar.js:
30920         (WebInspector.ToolbarDropdown.prototype.show):
30921         * inspector/front-end/inspector.css:
30922         (#toolbar-dropdown .toolbar-label):
30923
30924 2012-10-29  Michelangelo De Simone  <michelangelo@webkit.org>
30925
30926         [CSS Shaders] Implement CustomFilterArrayParameter::blend
30927         https://bugs.webkit.org/show_bug.cgi?id=96437
30928
30929         Reviewed by Dean Jackson.
30930
30931         This patch adds the missing code to blend values within
30932         an array() when using Custom Filters.
30933
30934         Test: css3/filters/custom/custom-filter-array-blending.html
30935
30936         * platform/graphics/filters/CustomFilterArrayParameter.h:
30937         (WebCore::CustomFilterArrayParameter::blend):
30938
30939 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
30940
30941         Web Inspector: Drag and drop a URL in inspector is not working as expected
30942         https://bugs.webkit.org/show_bug.cgi?id=100527
30943
30944         Reviewed by Yury Semikhatsky.
30945
30946         Inhibit custom dragstart handling when the active element is A.
30947
30948         * inspector/front-end/ElementsTreeOutline.js:
30949         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
30950
30951 2012-10-29  Mike West  <mkwst@chromium.org>
30952
30953         Web Inspector: Error/warning count is one pixel off.
30954         https://bugs.webkit.org/show_bug.cgi?id=100660
30955
30956         Reviewed by Pavel Feldman.
30957
30958         The error/warning count div had a top padding of 6. That was one pixel
30959         too many.
30960
30961         * inspector/front-end/inspector.css:
30962         (#error-warning-count):
30963
30964 2012-10-29  Shinya Kawanaka  <shinyak@chromium.org> 
30965
30966         [Refactoring] Use isActiveInsertionPoint() instead of isInsertionPoint()
30967         https://bugs.webkit.org/show_bug.cgi?id=100459
30968
30969         Reviewed by Hajime Morita.
30970
30971         Checking InsertionPoint and its activeness with two if-statement is error-prone. We would like to
30972         use a utility function which checks both at once.
30973
30974         We rewrite some lines with such function.
30975
30976         No new tests, simple refactoring.
30977
30978         * dom/ComposedShadowTreeWalker.cpp:
30979         (WebCore::ComposedShadowTreeWalker::traverseNode):
30980         * html/shadow/ContentDistributor.cpp:
30981         (WebCore::ContentDistributor::populate):
30982         (WebCore::ContentDistributor::distribute):
30983         (WebCore::ContentDistributor::distributeNodeChildrenTo):
30984         * html/shadow/InsertionPoint.h:
30985         (WebCore::isInsertionPoint): Since our convention is the argument of this kind of function should not be null,
30986         we would like to make it similar to the other functions.
30987         (WebCore::toInsertionPoint):
30988         (WebCore::isLowerEncapsulationBoundary):
30989
30990 2012-10-29  Patrick Dubroy  <dubroy@chromium.org>
30991
30992         Web Inspector: Fix vertical alignment in toolbar backgrounds and overflow button.
30993         https://bugs.webkit.org/show_bug.cgi?id=100373
30994
30995         Reviewed by Pavel Feldman.
30996
30997         Fix the background image for the selected toolbar item to be vertically centered.
30998         Make close button and toolbar overflow button vertically centered for any toolbar
30999         height.
31000
31001         * inspector/front-end/Toolbar.js: Remove unused variable.
31002         * inspector/front-end/inspector.css:
31003         (.toolbar-item.toggleable):
31004         (body.compact .toolbar-item.toggleable):
31005         (.toolbar-item.toggleable.toggled-on):
31006         (body.compact .toolbar-label):
31007         (#toolbar-dropdown-arrow):
31008         (#close-button-left, #close-button-right):
31009         (.toolbar-item.close-left):
31010         * inspector/front-end/inspector.html:
31011
31012 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31013
31014         Web Inspector: Timeline: Overview bars do not correspond to timeline bars
31015         https://bugs.webkit.org/show_bug.cgi?id=100500
31016
31017         Reviewed by Yury Semikhatsky.
31018
31019         Fix: do not shorten bars by nested records of the same category.
31020
31021         * inspector/front-end/TimelineOverviewPane.js: Check added.
31022
31023 2012-10-29  Eugene Klyuchnikov  <eustas.bug@gmail.com>
31024
31025         Web Inspector: Timeline: make cpu-monitoring feature available only on capable browsers
31026         https://bugs.webkit.org/show_bug.cgi?id=100530
31027
31028         Reviewed by Yury Semikhatsky.
31029
31030         Motivation: cpu-monitoring feature looks like a glitch,
31031         when it is not supported by browser.
31032
31033         * inspector/Inspector.json: Added capability getter to protocol.
31034         * inspector/InspectorClient.h: Added capability getter.
31035         * inspector/InspectorTimelineAgent.cpp: Proxy to request to client.
31036         * inspector/InspectorTimelineAgent.h: Added capability getter.
31037         * inspector/front-end/Settings.js: Added capability field.
31038         * inspector/front-end/TimelinePanel.js: Check capability.
31039         * inspector/front-end/inspector.js: Forward capability value.
31040
31041 2012-10-29  Antti Koivisto  <antti@apple.com>
31042
31043         Move seamless stylesheet collecting to DocumentStyleSheetCollection
31044         https://bugs.webkit.org/show_bug.cgi?id=100655
31045
31046         Reviewed by Andreas Kling.
31047
31048         Move the code from StyleResolver to DocumentStyleSheetCollection. StyleResolver should focus on resolving style.
31049
31050         * css/StyleResolver.cpp:
31051         (WebCore::StyleResolver::StyleResolver):
31052         
31053             Use standard create() pattern.
31054
31055         (WebCore):
31056         * css/StyleResolver.h:
31057         (StyleResolver):
31058         * dom/Document.cpp:
31059         (WebCore::Document::Document):
31060         * dom/DocumentStyleSheetCollection.cpp:
31061         (WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
31062         
31063             Since parent activeAuthorStyleSheets() contains all seamlessly inherited sheets too, this does not need to
31064             iterate to ancestors anymore.
31065
31066         (WebCore):
31067         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
31068         * dom/DocumentStyleSheetCollection.h:
31069         (WebCore::DocumentStyleSheetCollection::create):
31070         (DocumentStyleSheetCollection):
31071         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
31072         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
31073         
31074             activeAuthorStyleSheets() now includes the stylesheets inherited from the seamless parent too.
31075
31076         (WebCore::DocumentStyleSheetCollection::needsUpdateActiveStylesheetsOnStyleRecalc):
31077
31078 2012-10-29  Andreas Kling  <kling@webkit.org>
31079
31080         Don't expose implementation details of StylePropertySet storage.
31081         <http://webkit.org/b/100644>
31082
31083         Reviewed by Antti Koivisto.
31084
31085         Add a StylePropertySet::PropertyReference class, now returned by propertyAt(index).
31086         This will allow us to refactor the internal storage of StylePropertySet without
31087         breaking its API.
31088
31089         A PropertyReference is a simple inlinable wrapper around a StylePropertySet&/index pair.
31090
31091         * css/CSSComputedStyleDeclaration.cpp:
31092         * css/CSSParser.cpp:
31093         * css/CSSParser.h:
31094         * css/SVGCSSParser.cpp:
31095         * css/StylePropertySet.cpp:
31096         (WebCore::StylePropertySet::asText):
31097         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
31098         (WebCore::StylePropertySet::findPropertyWithId):
31099         (WebCore::StylePropertySet::reportMemoryUsage):
31100         * css/StylePropertySet.h:
31101         (StylePropertySet):
31102         (PropertyReference):
31103         (WebCore::StylePropertySet::PropertyReference::PropertyReference):
31104         (WebCore::StylePropertySet::PropertyReference::id):
31105         (WebCore::StylePropertySet::PropertyReference::isImportant):
31106         (WebCore::StylePropertySet::PropertyReference::isInherited):
31107         (WebCore::StylePropertySet::PropertyReference::cssName):
31108         (WebCore::StylePropertySet::PropertyReference::cssText):
31109         (WebCore::StylePropertySet::PropertyReference::value):
31110         (WebCore::StylePropertySet::PropertyReference::propertyInternal):
31111         (WebCore::StylePropertySet::propertyAt):
31112         (WebCore::StylePropertySet::propertyAtInternal):
31113         (WebCore):
31114         * css/StyleResolver.cpp:
31115         (WebCore::attributeStylesEqual):
31116         (WebCore::StyleResolver::applyProperties):
31117         (WebCore::StyleResolver::resolveVariables):
31118         * editing/ApplyStyleCommand.cpp:
31119         * editing/EditingStyle.cpp:
31120         (WebCore::EditingStyle::mergeStyle):
31121         (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
31122         * editing/Editor.cpp:
31123         * editing/markup.cpp:
31124         * page/Frame.cpp:
31125         * svg/SVGFontFaceElement.cpp:
31126
31127 2012-10-29  Kent Tamura  <tkent@chromium.org>
31128
31129         Move LocaleWin.{cpp,h} to platform/text/win/
31130         https://bugs.webkit.org/show_bug.cgi?id=100641
31131
31132         Reviewed by Kentaro Hara.
31133
31134         We have platform/text/win/ directory. Windows-specific files should be
31135         in it.
31136         Note that these files are used only in Chromium-win for now.
31137
31138         No new tests. This doesn't change any behavior.
31139
31140         * WebCore.gyp/WebCore.gyp: Fix path names.
31141         * WebCore.gypi: Ditto.
31142         * platform/text/win/LocaleWin.cpp: Renamed from Source/WebCore/platform/text/LocaleWin.cpp.
31143         * platform/text/win/LocaleWin.h: Renamed from Source/WebCore/platform/text/LocaleWin.h.
31144
31145 2012-10-29  Kent Tamura  <tkent@chromium.org>
31146
31147         Rename Localizer to Locale
31148         https://bugs.webkit.org/show_bug.cgi?id=100634
31149
31150         Reviewed by Kentaro Hara.
31151
31152         - Rename Localizer class to Locale
31153         - Rename localizer with locale in variable names
31154         - Rename localizer with locale in function names
31155
31156         No new tests. This doesn't make any behavior changes.
31157
31158         * dom/Document.h:
31159         (WebCore): Declare Locale instead of Localizer.
31160         (Document):
31161         - Rename getCachedLocalizer to getCachedLocale.
31162         - Rename LocaleToLocalizerMap to LocaleIdentifierToLocaleMap.
31163         - Rename m_localizerCache to m_localeCache.
31164         * dom/Document.cpp:
31165         (WebCore::Document::getCachedLocale): Follow renamings.
31166         * dom/Element.h:
31167         (WebCore): Declare Locale instead of Localizer.
31168         (Element): Rename localizer() to locale().
31169         * dom/Element.cpp:
31170         (WebCore::Element::locale): Follow renamings.
31171
31172         * html/BaseDateAndTimeInputType.cpp:
31173         (WebCore::BaseDateAndTimeInputType::localizeValue): Ditto.
31174         (WebCore::BaseDateAndTimeInputType::convertFromVisibleValue): Ditto.
31175         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
31176         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue): Ditto.
31177         * html/DateInputType.cpp:
31178         (WebCore::DateInputType::fixedPlaceholder): Ditto.
31179         (WebCore::DateInputType::setupLayoutParameters): Ditto.
31180         * html/DateTimeInputType.cpp:
31181         (WebCore::DateTimeInputType::setupLayoutParameters): Ditto.
31182         * html/DateTimeLocalInputType.cpp:
31183         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
31184         * html/MonthInputType.cpp:
31185         (WebCore::MonthInputType::setupLayoutParameters): Ditto.
31186         * html/NumberInputType.cpp:
31187         (WebCore::NumberInputType::localizeValue): Ditto.
31188         (WebCore::NumberInputType::convertFromVisibleValue): Ditto.
31189         * html/TimeInputType.cpp:
31190         (WebCore::TimeInputType::localizeValue): Ditto.
31191         (WebCore::TimeInputType::setupLayoutParameters): Ditto.
31192
31193         * html/shadow/DateTimeEditElement.h:
31194         (WebCore): Declare Locale instead of Localizer.
31195         (LayoutParameters): Rename localizer data member to locale.
31196         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters): Follow renamings.
31197         * html/shadow/DateTimeEditElement.cpp:
31198         (WebCore::DateTimeEditBuilder::visitField): Ditto.
31199         * html/shadow/DateTimeNumericFieldElement.h:
31200         (DateTimeNumericFieldElement): Rename localizerForOwner to localeForOwner.
31201         * html/shadow/DateTimeNumericFieldElement.cpp:
31202         (WebCore::DateTimeNumericFieldElement::formatValue): Follow renamings.
31203         (WebCore::DateTimeNumericFieldElement::handleKeyboardEvent): Ditto.
31204         (WebCore::DateTimeNumericFieldElement::localeForOwner): Ditto.
31205         * page/PagePopupClient.h:
31206         (WebCore): Declare Locale instead of Localizer.
31207         (PagePopupClient): Rename localizer member function to locale.
31208         * page/PagePopupController.cpp:
31209         (WebCore::PagePopupController::localizeNumberString): Follow renamings.
31210
31211         * platform/text/PlatformLocale.cpp: Rename the Localizer class to Locale.
31212         (DateTimeStringBuilder):
31213         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder):
31214         (WebCore::Locale::~Locale):
31215         (WebCore::Locale::setLocaleData): Renamed from setLocalizerData.
31216         (WebCore::Locale::convertToLocalizedNumber):
31217         (WebCore::Locale::detectSignAndGetDigitRange):
31218         (WebCore::Locale::matchedDecimalSymbolIndex):
31219         (WebCore::Locale::convertFromLocalizedNumber):
31220         (WebCore::Locale::localizedDecimalSeparator):
31221         (WebCore::Locale::dateTimeFormatWithSeconds):
31222         (WebCore::Locale::dateTimeFormatWithoutSeconds):
31223         (WebCore::Locale::formatDateTime):
31224         * platform/text/PlatformLocale.h: Update the ifndef macro.
31225         (Locale): Renamed from Localizer. Also, renamed the followings:
31226          - initializeLocalizerData -> initializeLocaleData
31227          - setLocalizerData -> setLocaleData
31228          - m_hasLocalizerData -> m_hasLocaleData
31229         (WebCore::Locale::Locale):
31230         (WebCore::Locale::createDefault):
31231         * platform/text/LocaleICU.cpp: Follow renamings.
31232         * platform/text/LocaleICU.h: Ditto.
31233         * platform/text/LocaleNone.cpp: Ditto.
31234         * platform/text/LocaleWin.cpp: Ditto.
31235         * platform/text/LocaleWin.h: Ditto.
31236         * platform/text/mac/LocaleMac.h: Ditto.
31237         * platform/text/mac/LocaleMac.mm: Ditto.
31238
31239 2012-10-29  Mike West  <mkwst@chromium.org>
31240
31241         Web Inspector: Error messages lines in console are 1px taller than regular messages
31242         https://bugs.webkit.org/show_bug.cgi?id=100521
31243
31244         Reviewed by Pavel Feldman.
31245
31246         The inspector is adding a 1px bottom border to list elements inside
31247         a disclosure list. This is unnecessary in the current layout; it's
31248         causing console messages with stack traces to be one pixel taller than
31249         other console messages, which this patch fixes.
31250
31251         As a drive-by, this patch also adjusts the disclosure triangle's
31252         position to match.
31253
31254         * inspector/front-end/inspector.css:
31255         (.outline-disclosure li):
31256         (.outline-disclosure li.parent::before):
31257
31258 2012-10-29  Mike West  <mkwst@chromium.org>
31259
31260         Web Inspector: The bubble for repeated errors is misplaced.
31261         https://bugs.webkit.org/show_bug.cgi?id=100525
31262
31263         Reviewed by Pavel Feldman.
31264
31265         The repeated-message bubble is displayed as an inline-block element,
31266         which works well as long as no stack trace is present. If present, the
31267         message is wrapped in an 'ol' element displayed as a block, which pushes
31268         itself down to the next line.
31269
31270         To avoid that issue, this patch switches the wrapper element to flexbox,
31271         glorious flexbox.
31272
31273         * inspector/front-end/inspector.css:
31274         (.console-message .bubble):
31275         (.repeated-message .outline-disclosure):
31276         (.filter-all .console-log-level.repeated-message, .filter-logs .console-log-level.repeated-message):
31277
31278 2012-10-29  Alexander Pavlov  <apavlov@chromium.org>
31279
31280         Web Inspector: [Styles] Handle non-parsedOk properties as inactive ones
31281         https://bugs.webkit.org/show_bug.cgi?id=100119
31282
31283         Reviewed by Vsevolod Vlasov.
31284
31285         Test: inspector/styles/inactive-properties.html
31286
31287         * inspector/front-end/StylesSidebarPane.js:
31288         (WebInspector.StylesSidebarPane.createExclamationMark):
31289         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
31290         * inspector/front-end/elementsPanel.css:
31291         (.styles-section.computed-style .properties li.not-parsed-ok):
31292         (.styles-section.computed-style .properties li.not-parsed-ok img.exclamation-mark):
31293         (.styles-section .properties .not-parsed-ok):
31294
31295 2012-10-29  Eric Seidel  <eric@webkit.org>
31296
31297         Make rendering tables with <colgroups> twice as fast by avoiding walking the DOM for colgroups 4 times for each cell
31298         https://bugs.webkit.org/show_bug.cgi?id=100630
31299
31300         Reviewed by Ojan Vafai.
31301
31302         This is not a complete fix.  Our rendering of this large tables still takes 7.8 seconds
31303         on my retina MBP (down from 14.3s before this change).
31304         It's very expensive to walk the DOM each time we call RenderTable::colElement
31305         so this caches the RenderTableCol* in a vector for easier walking.
31306         We invalidate the cache any time a RenderTableCol is added or removed from the
31307         rendering sub-tree to avoid holding a bad pointer.
31308
31309         * rendering/RenderTable.cpp:
31310         (WebCore::RenderTable::RenderTable):
31311         (WebCore::RenderTable::invalidateCachedColumns):
31312         (WebCore):
31313         (WebCore::RenderTable::addColumn):
31314         (WebCore::RenderTable::removeColumn):
31315         (WebCore::RenderTable::updateColumnCache):
31316         (WebCore::RenderTable::slowColElement):
31317         * rendering/RenderTable.h:
31318         (RenderTable):
31319         * rendering/RenderTableCol.cpp:
31320         (WebCore::RenderTableCol::insertedIntoTree):
31321         (WebCore):
31322         (WebCore::RenderTableCol::willBeRemovedFromTree):
31323         * rendering/RenderTableCol.h:
31324
31325 2012-10-28  Kent Tamura  <tkent@chromium.org>
31326
31327         Rename Localizer.{cpp,h} to PlatformLocale.{cpp,h}
31328         https://bugs.webkit.org/show_bug.cgi?id=100627
31329
31330         Reviewed by Yuta Kitamura.
31331
31332         We'd like to rename Localizer class to Locale class. However we use
31333         PlatformLocale.cpp and PlatformLocale.h as their file names because
31334         <locale.h> exists in the C standard.  In this patch, we rename only file
31335         names. We're going to rename the class name later.
31336
31337         No new tests. This doesn't make any behavior change.
31338
31339         * platform/text/PlatformLocale.h: Renamed from Source/WebCore/platform/text/Localizer.h.
31340         * platform/text/PlatformLocale.cpp: Renamed from Source/WebCore/platform/text/Localizer.cpp.
31341         Follow the Localizer.h -> PlatformLocale.cpp renaming.
31342
31343         * CMakeLists.txt: Follow the file name renaming.
31344         * GNUmakefile.list.am: Ditto.
31345         * Target.pri: Ditto.
31346         * WebCore.gypi: Ditto.
31347         * WebCore.vcproj/WebCore.vcproj: Ditto.
31348         * WebCore.xcodeproj/project.pbxproj: Ditto.
31349         * dom/Document.cpp: Ditto.
31350         * html/BaseDateAndTimeInputType.cpp: Ditto.
31351         * html/BaseMultipleFieldsDateAndTimeInputType.cpp: Ditto.
31352         * html/DateInputType.cpp: Ditto.
31353         * html/DateTimeInputType.cpp: Ditto.
31354         * html/DateTimeLocalInputType.cpp: Ditto.
31355         * html/MonthInputType.cpp: Ditto.
31356         * html/NumberInputType.cpp: Ditto.
31357         * html/TimeInputType.cpp: Ditto.
31358         * html/shadow/DateTimeEditElement.cpp: Ditto.
31359         * html/shadow/DateTimeNumericFieldElement.cpp: Ditto.
31360         * page/PagePopupController.cpp: Ditto.
31361         * platform/text/LocaleICU.h: Ditto.
31362         * platform/text/LocaleNone.cpp: Ditto.
31363         * platform/text/LocaleWin.h: Ditto.
31364         * platform/text/mac/LocaleMac.h: Ditto.
31365
31366 2012-10-28  Shinya Kawanaka  <shinyak@chromium.org>
31367
31368         The shadow element is not reprojected to a nested ShadowRoot.
31369         https://bugs.webkit.org/show_bug.cgi?id=99228
31370
31371         Reviewed by Dimitri Glazkov.
31372
31373         We support shadow reprojection; elements distributed to <shadow> element can be reprojected to <content> now.
31374
31375         First, we have a distribution vector for each InsertionPoint, even if InsertionPoint is a shadow insertion point.
31376         And we update a node-distribution map. Basically We're creating a map from node to InsertionPoint in ElementShadow.
31377         If a node can be distributed to several InsertionPoint (e.g. in case reprojection happens),
31378         the InsertionPoint in older ShadowDOM is chosen.
31379
31380         We also fix ComposedShadowTreeWalker to consider shadow reprojection.
31381
31382         Tests: fast/dom/shadow/composed-shadow-tree-walker-shadow-reprojection.html
31383                fast/dom/shadow/shadow-reprojection-click.html
31384                fast/dom/shadow/shadow-reprojection-dynamic.html
31385                fast/dom/shadow/shadow-reprojection-fallback.html
31386                fast/dom/shadow/shadow-reprojection.html
31387                fast/dom/shadow/shadow-reprojection2.html
31388
31389         * css/StyleResolver.cpp:
31390         (WebCore::shouldResetStyleInheritance): Now context.insertionPoint() returns the final insertion point where
31391         a node is distributed. So we don't have to trace shadow insertion point anymore here.
31392         (WebCore::StyleResolver::styleForElement): Since a direct child of ShadowRoot can be distributed now. In that case,
31393         we don't have any parentElement. The parent node is a ShadowRoot in that case.
31394         * dom/ComposedShadowTreeWalker.cpp:
31395         (WebCore::nodeCanBeDistributed): If a node can be distributed, returns true.
31396         (WebCore):
31397         (WebCore::resolveReprojection): Resolves content-reprojection and shadow-reprojection both.
31398         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
31399         (WebCore::ComposedShadowTreeWalker::traverseParent):
31400         (WebCore::ComposedShadowTreeWalker::traverseParentBackToYoungerShadowRootOrHost): A case ShadowRoot is assigned
31401         to some InsertionPoint should be handled with in traverseSiblingOrBackToInsertionPoint. So we remove it.
31402         (WebCore::AncestorChainWalker::parent): Now we have a case that a direct child of ShadowRoot can be distributed.
31403         In that case, we should not update m_distributedNode.
31404         * dom/ElementShadow.cpp:
31405         (WebCore::ElementShadow::insertionPointFor): Since we have a distribution vector for each InsertionPoint,
31406         we don't have a special case that a ShadowRoot is assigned to some InsertionPoint. Actually the existing code
31407         is not correct now due to shadow reprojection.
31408         * html/shadow/ContentDistributor.cpp:
31409         (WebCore::ContentDistributor::populate): Populate a POOL. If a node is InsertionPoint, we fill it with the
31410         distributed nodes.
31411         (WebCore):
31412         (WebCore::ContentDistributor::distribute): Since we want to make a distribution vector for each InsertionPoint,
31413         we have to resolve a shadow InsertionPoint
31414         (WebCore::ContentDistributor::distributeNodeChildrenTo):
31415         * html/shadow/ContentDistributor.h:
31416         (ContentDistributor):
31417         * html/shadow/HTMLShadowElement.h:
31418         (WebCore::toHTMLShadowElement):
31419         (WebCore):
31420         * html/shadow/InsertionPoint.h:
31421         (WebCore::parentNodeForDistribution):
31422         (WebCore::parentElementForDistribution):
31423         (WebCore):
31424
31425 2012-10-28  Kunihiko Sakamoto  <ksakamoto@chromium.org>
31426
31427         Webkit adds a boundary to the Content-Type: text/plain POST header
31428         https://bugs.webkit.org/show_bug.cgi?id=100445
31429
31430         Reviewed by Kent Tamura.
31431
31432         Fixed a bug where an empty boundary parameter was added to Content-Type
31433         header when POSTing forms with enctype=text/plain.
31434
31435         Test: http/tests/misc/form-post-textplain.html
31436
31437         * loader/FormSubmission.cpp:
31438         (WebCore::FormSubmission::populateFrameLoadRequest): Add boundary parameter to
31439         Content-Type only when a boundary string is generated.
31440
31441 2012-10-28  Philip Rogers  <pdr@google.com>
31442
31443         Cache calcMode() value for SVG animations.
31444         https://bugs.webkit.org/show_bug.cgi?id=99694
31445
31446         Reviewed by Eric Seidel.
31447
31448         This patch refactors SVGAnimationElement::calcMode() to return a cached value instead
31449         of recalculating its value on every call. On a simple test of 100 rectangles with 100
31450         animations each, calls to calcMode() account for 3% of the total animation. After this
31451         patch, calcMode() no longer appears in animation profiles at all.
31452
31453         No new tests as this functionality is covered by existing tests.
31454
31455         * svg/SVGAnimateMotionElement.cpp:
31456         (WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
31457
31458             The default calcMode for all animation types is linear except AnimateMotion,
31459             which defaults to CalcModePaced.
31460             See: http://www.w3.org/TR/SVG/single-page.html#animate-CalcModeAttribute
31461
31462         * svg/SVGAnimationElement.cpp:
31463         (WebCore::SVGAnimationElement::SVGAnimationElement):
31464         (WebCore::SVGAnimationElement::isSupportedAttribute):
31465         (WebCore::SVGAnimationElement::parseAttribute):
31466         (WebCore::SVGAnimationElement::setCalcMode):
31467         * svg/SVGAnimationElement.h:
31468         (WebCore::SVGAnimationElement::calcMode):
31469         (WebCore::SVGAnimationElement::setCalcMode):
31470         (SVGAnimationElement):
31471
31472 2012-10-28  Dimitri Glazkov  <dglazkov@chromium.org>
31473
31474         Get rid of StyleResolver state related to unknown pseudo-elements.
31475         https://bugs.webkit.org/show_bug.cgi?id=100582
31476
31477         Reviewed by Eric Seidel.
31478
31479         All of the state, related to unknown pseudo-elements is already understood at the time of collecting rules.
31480         We can just get rid of most of this code in StyleResolver.
31481
31482         At the time of matching rules, we know for certain that only rules that contain unknown pseudo-elements,
31483         or are UA rules, or are explicitly invited by a TreeScope will match. So we can just return early in many cases.
31484
31485         No change in behavior, covered by existing tests.
31486
31487         * css/SelectorChecker.cpp:
31488         (WebCore::SelectorChecker::checkSelector): Removed now-unnecessary param.
31489         (WebCore::SelectorChecker::checkOneSelector): Ditto.
31490         * css/SelectorChecker.h:
31491         (SelectorChecker): Ditto.
31492         * css/StyleResolver.cpp:
31493         (WebCore::StyleResolver::StyleResolver): Ditto.
31494         (MatchingUARulesScope): Moved class definition here, since we now use it in a different place.
31495         (WebCore::StyleResolver::collectMatchingRules): Changed the logic to stop matching rules that definitely won't match in a different scope.
31496         (WebCore::StyleResolver::collectMatchingRulesForList): Removed code that's now unnecesssary.
31497         (WebCore::StyleResolver::checkSelector): Removed now-unnecessary param.
31498         (WebCore::StyleResolver::checkRegionSelector): Removed weird dead code.
31499         * css/StyleResolver.h:
31500         (StyleResolver): Removed now-unnecessary member.
31501
31502 2012-10-28  Sheriff Bot  <webkit.review.bot@gmail.com>
31503
31504         Unreviewed, rolling out r132696.
31505         http://trac.webkit.org/changeset/132696
31506         https://bugs.webkit.org/show_bug.cgi?id=100609
31507
31508         Needs a bit more clean-up on Chrome Web UI side. (Requested by
31509         dglazkov on #webkit).
31510
31511         * rendering/RenderBlock.cpp:
31512         (WebCore::RenderBlock::updateFirstLetter):
31513         * rendering/RenderListBox.h:
31514         * rendering/RenderObjectChildList.cpp:
31515         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
31516
31517 2012-10-27  Alexey Proskuryakov  <ap@apple.com>
31518
31519         All tests crash in WebKit1 mode
31520         https://bugs.webkit.org/show_bug.cgi?id=100602
31521
31522         Reviewed by Sam Weinig.
31523
31524         * platform/PlatformStrategies.cpp: (WebCore::setPlatformStrategies): Fix an incorrect
31525         assertion - if this function is called twice, it should be with the same strategy.
31526
31527 2012-10-27  Anders Carlsson  <andersca@apple.com>
31528
31529         Fix AVFoundation build.
31530
31531         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
31532         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey):
31533
31534 2012-10-27  David Barton  <dbarton@mathscribe.com>
31535
31536         ASSERTION FAILED: m_next in LayoutState.cpp
31537         https://bugs.webkit.org/show_bug.cgi?id=99796
31538
31539         Reviewed by Eric Seidel.
31540
31541         Before RenderMathMLBlock::computeChildrenPreferredLogicalHeights calls child->layoutIfNeeded(),
31542         it must ensure a layoutState exists. We disable it in any case, since we are just calculating
31543         metrics here, and the final layout may well happen again.
31544
31545         No new tests. I don't know how to create an automated test for this. The crashes users are
31546         seeing are flaky.
31547
31548         * rendering/mathml/RenderMathMLBlock.cpp:
31549         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
31550
31551 2012-10-27  David Barton  <dbarton@mathscribe.com>
31552
31553         [MathML] Improve some addChild methods
31554         https://bugs.webkit.org/show_bug.cgi?id=98791
31555
31556         Reviewed by Eric Seidel.
31557
31558         MathML addChild methods need to handle any anonymous renderers correctly. Actually, most MathML elements have a fixed
31559         number of children, so conformant javascript won't be doing arbitrary addChild and removeChild calls. However, we don't
31560         want any assertions to fail, and we do want addChild to work correctly when beforeChild == 0, to build up the original
31561         renderer, and then replaceChild at least should work correctly after that. We therefore clean up these routines before
31562         giving them to the chromium fuzzers.
31563         
31564         It's best to build the anonymous wrappers just once initially if possible, so empty wrappers aren't left in the render
31565         tree after later removeChild calls.
31566
31567         Test: mathml/presentation/dynamic.html added for mfrac and msqrt. There are already tests for dynamically changing
31568         msub/sup elements, in mathml/presentation/m*-changed.xhtml.
31569
31570         * rendering/mathml/RenderMathMLFraction.cpp:
31571         (WebCore::RenderMathMLFraction::addChild):
31572             - The two wrappers are built initially. Also, the old RenderMathMLBlock::addChild(row, beforeChild); doesn't really
31573               work because beforeChild is buried inside a wrapper. This new routine allows the numerator and denominator to be
31574               added initially, and then later replaced with replaceChild. It's not clear whether e.g. a plain removeChild of a
31575               numerator should move the remaining child from the denominator to the numerator or not, so we ignore that for now.
31576         * rendering/mathml/RenderMathMLRoot.cpp:
31577         (WebCore::RenderMathMLRoot::addChild):
31578             - A bit of bullet-proofing for the fuzzers.
31579         * rendering/mathml/RenderMathMLSubSup.cpp:
31580         (WebCore::RenderMathMLSubSup::addChild):
31581             - Like RenderMathMLFraction::addChild, we create the wrappers once initially, and then fill them dynamically.
31582
31583 2012-10-27  Levi Weintraub  <leviw@chromium.org>
31584
31585         Background images can incorrectly repeat with sub-pixel layout
31586         https://bugs.webkit.org/show_bug.cgi?id=94622
31587
31588         Reviewed by Emil A Eklund.
31589
31590         Attempting to better match author expectations when painting tiled background images. When under
31591         the effects of zoom with sub-pixel layout enabled, the drawn size of a rendered element can
31592         differ depending on its location. This change looks at the size of the scaled tiled background
31593         image size, and either ceils or floors that value depending on if tiling that value will
31594         result in us being one pixel or less short of covering the background size. This is a heuristic,
31595         as sub-pixel/zooming isn't specced.
31596
31597         Test: fast/sub-pixel/scaled-background-image.html
31598
31599         * rendering/RenderBoxModelObject.cpp:
31600         (WebCore::applySubPixelHeuristicForTileSize):
31601         (WebCore):
31602         (WebCore::RenderBoxModelObject::calculateFillTileSize):
31603
31604 2012-10-27  Sheriff Bot  <webkit.review.bot@gmail.com>
31605
31606         Unreviewed, rolling out r132725.
31607         http://trac.webkit.org/changeset/132725
31608         https://bugs.webkit.org/show_bug.cgi?id=100596
31609
31610         it broke linking on chromium debug bots (Requested by loislo
31611         on #webkit).
31612
31613         * inspector/InspectorMemoryAgent.cpp:
31614         (WebCore::addPlatformComponentsInfo):
31615         (WebCore):
31616         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31617         * platform/MemoryUsageSupport.cpp:
31618         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31619         * platform/MemoryUsageSupport.h:
31620         (ComponentInfo):
31621         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
31622         (MemoryUsageSupport):
31623         * platform/PlatformMemoryInstrumentation.cpp:
31624         (WebCore):
31625         * platform/PlatformMemoryInstrumentation.h:
31626         (PlatformMemoryTypes):
31627         * platform/chromium/MemoryUsageSupportChromium.cpp:
31628         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31629         * platform/qt/MemoryUsageSupportQt.cpp:
31630         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
31631
31632 2012-10-27  Dan Bernstein  <mitz@apple.com>
31633
31634         REAL_PLATFORM_NAME build setting is no longer needed
31635         https://bugs.webkit.org/show_bug.cgi?id=100587
31636
31637         Reviewed by Mark Rowe.
31638
31639         Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
31640         to PLATFORM_NAME.
31641
31642         * Configurations/Base.xcconfig:
31643         * Configurations/CompilerVersion.xcconfig:
31644         * Configurations/DebugRelease.xcconfig:
31645         * Configurations/FeatureDefines.xcconfig:
31646         * Configurations/Version.xcconfig:
31647         * Configurations/WebCore.xcconfig:
31648
31649 2012-10-27  Tony Chang  <tony@chromium.org>
31650
31651         Remove internals shouldDisplayTrackKind methods; these are also on internals.settings
31652         https://bugs.webkit.org/show_bug.cgi?id=100564
31653
31654         Reviewed by Adam Barth.
31655
31656         Remove duplicate methods from internals that was just forwarding on the call to internals.settings.
31657         Also fix a bug where we didn't reset these settings properly.
31658
31659         No new tests, this is covered by existing media/track tests.
31660
31661         * testing/InternalSettings.cpp:
31662         (WebCore::InternalSettings::Backup::Backup): Properly save display track settings.
31663         (WebCore::InternalSettings::Backup::restoreTo): Restore display track settings.
31664         * testing/InternalSettings.h:
31665         * testing/InternalSettings.idl: Use [Conditional=VIDEO_TRACK].
31666         * testing/Internals.cpp: Remove code.
31667         * testing/Internals.h: Remove code.
31668         * testing/Internals.idl: Remove code.
31669
31670 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
31671
31672         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb.
31673         https://bugs.webkit.org/show_bug.cgi?id=100515
31674
31675         Reviewed by Yury Semikhatsky.
31676
31677         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
31678
31679         * inspector/InspectorMemoryAgent.cpp:
31680         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
31681         * platform/MemoryUsageSupport.cpp:
31682         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31683         * platform/MemoryUsageSupport.h:
31684         (MemoryUsageSupport):
31685         * platform/PlatformMemoryInstrumentation.cpp:
31686         (WebCore):
31687         * platform/PlatformMemoryInstrumentation.h:
31688         (PlatformMemoryTypes):
31689         * platform/chromium/MemoryUsageSupportChromium.cpp:
31690         (reportMemoryUsage):
31691         (WebCore::reportGlyphCache):
31692         (WebCore):
31693         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31694         * platform/qt/MemoryUsageSupportQt.cpp:
31695         (WebCore::MemoryUsageSupport::reportMemoryUsage):
31696
31697 2012-10-26  Philip Rogers  <pdr@google.com>
31698
31699         Prevent NaN offset values in ElementTimeControl.
31700         https://bugs.webkit.org/show_bug.cgi?id=100322
31701
31702         Reviewed by Abhishek Arya.
31703
31704         NaN values can cause ElementTimeControl to go back in time!
31705         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31706         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31707         because NaN values are not properly sorted. NaN SMILTime values
31708         should not be allowed at all, so this patch adds a check for them in
31709         ElementTimeControl's setters.
31710  
31711         This patch also adds preventative asserts to catch if SMILTime is ever
31712         initialized with NaN, or if addEndTime/addBeginTime are ever called
31713         with NaN values.
31714
31715         Test: svg/custom/elementTimeControl-nan-crash.html
31716
31717         * svg/SVGAnimationElement.cpp:
31718         (WebCore::SVGAnimationElement::beginElementAt):
31719         (WebCore::SVGAnimationElement::endElementAt):
31720         * svg/animation/SMILTime.h:
31721         (WebCore::SMILTime::SMILTime):
31722         * svg/animation/SVGSMILElement.cpp:
31723         (WebCore::SVGSMILElement::addBeginTime):
31724         (WebCore::SVGSMILElement::addEndTime):
31725
31726 2012-10-26  Charles Wei  <charles.wei@torchmobile.com.cn>
31727
31728         [BlackBerry] Browser prematurely sends wrong credentials
31729         https://bugs.webkit.org/show_bug.cgi?id=100585
31730
31731         Reviewed by Yong Li.
31732
31733         Manually revert the patch for bug 96362, which causes regressions and the right patch has been
31734         submitted with patch for bug 100448. Since the auto-revert fails, we use this patch to manually
31735         revert.
31736
31737         No new tests. The test is coverted by patch for 100448.
31738
31739         * platform/network/blackberry/CredentialBackingStore.cpp:
31740         * platform/network/blackberry/CredentialBackingStore.h:
31741         (CredentialBackingStore):
31742         * platform/network/blackberry/NetworkManager.cpp:
31743         (WebCore::NetworkManager::startJob):
31744
31745 2012-10-26  Brady Eidson  <beidson@apple.com>
31746
31747         Have NetworkProcess manage resource load scheduling.
31748         https://bugs.webkit.org/show_bug.cgi?id=100479
31749
31750         Reviewed by Alexey Proskuryakov.
31751
31752         Down in WebCore we need to virtualize a handful of ResourceLoadScheduler methods
31753         to be overridden by WebKit's implementation.
31754
31755         No new tests (No change in Core behavior).
31756
31757         * WebCore.exp.in:
31758         * WebCore.xcodeproj/project.pbxproj:
31759
31760         * loader/ResourceLoadScheduler.cpp:
31761         (WebCore::resourceLoadScheduler): Gracefully handle LoaderStrategies wanting to return the default scheduler.
31762         (WebCore::ResourceLoadScheduler::scheduleLoad): Call notifyDidScheduleResourceRequest.
31763         (WebCore::ResourceLoadScheduler::notifyDidScheduleResourceRequest): Moved InspectorInstrumentation call
31764           here so derived classes can do it indirectly.
31765         (WebCore::ResourceLoadScheduler::startResourceLoader): To allow derived classes the ability to call
31766           ResourceLoader::start() which only ResourceLoadScheduler can do.
31767
31768         * loader/ResourceLoadScheduler.h:
31769         (ResourceLoadScheduler): Virtualize some core public methods so they can be overridden.
31770         (WebCore::ResourceLoadScheduler::setSerialLoadingEnabled): Make virtual.
31771         (WebCore::ResourceLoadScheduler::isSuspendingPendingRequests): Make private as it's internal only.
31772
31773         * loader/ResourceLoader.cpp:
31774         (WebCore::ResourceLoader::setIdentifier): Add this setter so outside clients can manually change the identifier.
31775
31776         * loader/ResourceLoader.h:
31777         (WebCore::ResourceLoader::identifier): Change identifier to explicitly be uint64_t.
31778         (WebCore::ResourceLoader::request): Make public.
31779         (ResourceLoader):
31780
31781 2012-10-26  Chris Rogers  <crogers@google.com>
31782
31783         Implement AudioBufferSourceNode .loopStart and .loopEnd attributes
31784         https://bugs.webkit.org/show_bug.cgi?id=100170
31785
31786         Reviewed by Kenneth Russell.
31787
31788         AudioBufferSourceNode currently only supports looping of an entire AudioBuffer.
31789         Sample-based synthesis is a very common technique which requires "internal" loop-points.
31790         For example, the first part of the sample data might represent the attack portion of
31791         a synthesized instrument, which then enters a loop portion.
31792
31793         Tests: webaudio/audiobuffersource-loop-comprehensive.html
31794                webaudio/audiobuffersource-loop-points.html
31795
31796         * Modules/webaudio/AudioBufferSourceNode.cpp:
31797         (WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
31798         (WebCore::AudioBufferSourceNode::process):
31799         (WebCore::AudioBufferSourceNode::renderFromBuffer):
31800         * Modules/webaudio/AudioBufferSourceNode.h:
31801         (AudioBufferSourceNode):
31802         (WebCore::AudioBufferSourceNode::loopStart):
31803         (WebCore::AudioBufferSourceNode::loopEnd):
31804         (WebCore::AudioBufferSourceNode::setLoopStart):
31805         (WebCore::AudioBufferSourceNode::setLoopEnd):
31806         * Modules/webaudio/AudioBufferSourceNode.idl:
31807
31808 2012-10-26  Daniel Cheng  <dcheng@chromium.org>
31809
31810         dragover's default action should prevent drop for file drags
31811         https://bugs.webkit.org/show_bug.cgi?id=79173
31812
31813         Reviewed by Tony Chang.
31814
31815         During a file drag, we need to keep track of whether or not the document has cancelled the
31816         dragover action. We should only send a drop event if the dragover event was cancelled; this
31817         matches the behavior of the spec, as well as IE, Gecko, and Opera. The relevant sections
31818         from the spec are the sections pertaining to dragover and drop events at:
31819         http://www.whatwg.org/specs/web-apps/current-work/#drag-and-drop-processing-model
31820
31821         Test: fast/events/only-valid-drop-targets-receive-file-drop.html
31822
31823         * page/DragController.cpp:
31824         (WebCore::DragController::performDrag):
31825         (WebCore::DragController::dragEnteredOrUpdated):
31826         (WebCore::DragController::tryDocumentDrag):
31827         * page/DragController.h:
31828         (DragController): Cleanup to repurpose a variable that doesn't need to be a member anymore
31829                           and remove the corresponding getter/setter.
31830
31831 2012-10-26  Nico Weber  <thakis@chromium.org>
31832
31833         Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat
31834         https://bugs.webkit.org/show_bug.cgi?id=94756
31835
31836         Reviewed by Dirk Schulze.
31837
31838         The function has an early exit for !simpleDuration.value(), so
31839         !simpleDuration.value() always is 0 when passed as second parameter to
31840         fmod(), which means fmod() always returns NaN, which always evaluates
31841         to true. Simplify the code by removing that explicit check.
31842
31843         No observable behavior change.
31844
31845         Covered by existing svg tests.
31846
31847         * svg/animation/SVGSMILElement.cpp:
31848         (WebCore::SVGSMILElement::calculateAnimationPercentAndRepeat):
31849
31850 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
31851
31852         Unreviewed, rolling out r132695.
31853         http://trac.webkit.org/changeset/132695
31854         https://bugs.webkit.org/show_bug.cgi?id=100581
31855
31856         caused 20+ test crashes on bots (Requested by estes on
31857         #webkit).
31858
31859         * dom/ContainerNode.cpp:
31860         (WebCore::ContainerNode::suspendPostAttachCallbacks):
31861         (WebCore::ContainerNode::resumePostAttachCallbacks):
31862         * loader/MainResourceLoader.cpp:
31863         (WebCore::MainResourceLoader::loadNow):
31864         * loader/ResourceLoadScheduler.cpp:
31865         (WebCore::resourceLoadScheduler):
31866         * loader/ResourceLoadScheduler.h:
31867         * loader/ResourceLoader.cpp:
31868         (WebCore::ResourceLoader::releaseResources):
31869         (WebCore::ResourceLoader::willSendRequest):
31870         * loader/cache/CachedResource.cpp:
31871         (WebCore::CachedResource::load):
31872         * loader/cache/CachedResourceLoader.cpp:
31873         (WebCore::CachedResourceLoader::performPostLoadActions):
31874
31875 2012-10-26  Vincent Scheib  <scheib@chromium.org>
31876
31877         Unreviewed, rolling out r132702.
31878         http://trac.webkit.org/changeset/132702
31879         https://bugs.webkit.org/show_bug.cgi?id=100322
31880
31881         Compile error on Chromium Linux dbg builder (and others)
31882
31883         * svg/SVGAnimationElement.cpp:
31884         (WebCore::SVGAnimationElement::beginElementAt):
31885         (WebCore::SVGAnimationElement::endElementAt):
31886         * svg/animation/SMILTime.h:
31887         (WebCore::SMILTime::SMILTime):
31888         * svg/animation/SVGSMILElement.cpp:
31889         (WebCore::SVGSMILElement::addBeginTime):
31890         (WebCore::SVGSMILElement::addEndTime):
31891
31892 2012-10-26  Philip Rogers  <pdr@google.com>
31893
31894         Prevent NaN offset values in ElementTimeControl.
31895         https://bugs.webkit.org/show_bug.cgi?id=100322
31896
31897         Reviewed by Abhishek Arya.
31898
31899         NaN values can cause ElementTimeControl to go back in time!
31900         If a value of NaN is passed to ElementTimeControl::beginElementAt(offset),
31901         subsequent sorting will cause an assert in SVGSMILElement::findInstanceTime
31902         because NaN values are not properly sorted. NaN SMILTime values
31903         should not be allowed at all, so this patch adds a check for them in
31904         ElementTimeControl's setters.
31905
31906         This patch also adds preventative asserts to catch if SMILTime is ever
31907         initialized with NaN, or if addEndTime/addBeginTime are ever called
31908         with NaN values.
31909
31910         Test: svg/custom/elementTimeControl-nan-crash.html
31911
31912         * svg/SVGAnimationElement.cpp:
31913         (WebCore::SVGAnimationElement::beginElementAt):
31914         (WebCore::SVGAnimationElement::endElementAt):
31915         * svg/animation/SMILTime.h:
31916         (WebCore::SMILTime::SMILTime):
31917         * svg/animation/SVGSMILElement.cpp:
31918         (WebCore::SVGSMILElement::addBeginTime):
31919         (WebCore::SVGSMILElement::addEndTime):
31920
31921 2012-10-26  Tony Chang  <tony@chromium.org>
31922
31923         Move non-Settings Inspector methods from internals.settings to internals
31924         https://bugs.webkit.org/show_bug.cgi?id=100392
31925
31926         Reviewed by Adam Barth.
31927
31928         These methods don't have to do with the WebCore Settings object, so move them up to internals.
31929         I moved the reset code from InternalSettings to Internals.
31930
31931         No new tests, this is just a rename. Existing tests should pass.
31932
31933         * testing/InternalSettings.cpp:
31934         (WebCore::InternalSettings::Backup::Backup): Remove inspector methods.
31935         (WebCore::InternalSettings::Backup::restoreTo): Remove inspector methods.
31936         * testing/InternalSettings.h:
31937         * testing/InternalSettings.idl:
31938         * testing/Internals.cpp:
31939         (WebCore::Internals::resetToConsistentState): New method for resetting page state. Named after similar
31940         methods in WTR.
31941         (WebCore::Internals::setInspectorResourcesDataSizeLimits): Moved from InspectorSettings.
31942         (WebCore::Internals::setJavaScriptProfilingEnabled): Moved from InspectorSettings.
31943         * testing/Internals.h:
31944         * testing/Internals.idl:
31945         * testing/js/WebCoreTestSupport.cpp:
31946         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
31947         * testing/v8/WebCoreTestSupport.cpp:
31948         (WebCoreTestSupport::resetInternalsObject): Reset state in Internals.
31949
31950 2012-10-26  Dominic Mazzoni  <dmazzoni@google.com>
31951
31952         AX: Notification should be sent when accessibilityIsIgnored changes
31953         https://bugs.webkit.org/show_bug.cgi?id=99547
31954
31955         Reviewed by Chris Fleizach.
31956
31957         Adds a new flag in AccessibilityObject that keeps track of the most recent
31958         value of accessibilityIsIgnored(). After certain events such as an ARIA
31959         attribute change or content change, checks the new value of
31960         accessibilityIsIgnored() and posts a "children changed" notification on the
31961         parent node if it changed, making sure the parent recomputes its vector of
31962         (unignored) children.
31963
31964         Also moves handling of attribute changes to AXObjectCache, and sends
31965         notifications for some attribute changes that were previously silent. On
31966         Chromium, all changes to an accessibility object's attributes should
31967         result in some notification.
31968
31969         Some tests would have broken because an AccessibilityScrollView was created
31970         and holding a reference to a ScrollView for an iframe after it was deleted,
31971         so this change switches AccessibilityScrollView to hold a weak reference
31972         to ScrollView instead.
31973
31974         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
31975                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
31976                platform/chromium/accessibility/text-change-notification.html
31977
31978         * accessibility/AXObjectCache.cpp:
31979         (WebCore::AXObjectCache::focusedUIElementForPage):
31980         (WebCore::AXObjectCache::getOrCreate):
31981         (WebCore::AXObjectCache::textChanged):
31982         (WebCore):
31983         (WebCore::AXObjectCache::childrenChanged):
31984         (WebCore::AXObjectCache::handleAriaRoleChanged):
31985         (WebCore::AXObjectCache::handleAttributeChanged):
31986         (WebCore::AXObjectCache::labelChanged):
31987         (WebCore::AXObjectCache::recomputeIsIgnored):
31988         * accessibility/AXObjectCache.h:
31989         (AXObjectCache):
31990         (WebCore::AXObjectCache::childrenChanged):
31991         (WebCore::AXObjectCache::textChanged):
31992         (WebCore::AXObjectCache::handleAttributeChanged):
31993         (WebCore::AXObjectCache::recomputeIsIgnored):
31994         * accessibility/AccessibilityNodeObject.cpp:
31995         (WebCore::AccessibilityNodeObject::insertChild):
31996         * accessibility/AccessibilityObject.cpp:
31997         (WebCore::AccessibilityObject::AccessibilityObject):
31998         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
31999         (WebCore):
32000         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
32001         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
32002         * accessibility/AccessibilityObject.h:
32003         (WebCore::AccessibilityObject::textChanged):
32004         (AccessibilityObject):
32005         * accessibility/AccessibilityRenderObject.cpp:
32006         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
32007         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
32008         (WebCore::AccessibilityRenderObject::textChanged):
32009         (WebCore::AccessibilityRenderObject::addHiddenChildren):
32010         (WebCore::AccessibilityRenderObject::addChildren):
32011         * accessibility/AccessibilityRenderObject.h:
32012         (AccessibilityRenderObject):
32013         * accessibility/AccessibilityScrollView.cpp:
32014         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
32015         (WebCore):
32016         (WebCore::AccessibilityScrollView::detach):
32017         (WebCore::AccessibilityScrollView::isAttachment):
32018         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
32019         (WebCore::AccessibilityScrollView::updateScrollbars):
32020         (WebCore::AccessibilityScrollView::webAreaObject):
32021         (WebCore::AccessibilityScrollView::elementRect):
32022         (WebCore::AccessibilityScrollView::documentFrameView):
32023         (WebCore::AccessibilityScrollView::parentObject):
32024         (WebCore::AccessibilityScrollView::parentObjectIfExists):
32025         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
32026         (WebCore::AccessibilityScrollView::scrollTo):
32027         * accessibility/AccessibilityScrollView.h:
32028         (WebCore::AccessibilityScrollView::scrollView):
32029         (AccessibilityScrollView):
32030         * accessibility/AccessibilityTable.cpp:
32031         (WebCore::AccessibilityTable::isDataTable):
32032         * accessibility/chromium/AXObjectCacheChromium.cpp:
32033         (WebCore::AXObjectCache::postPlatformNotification):
32034         * dom/Element.cpp:
32035         (WebCore::Element::attributeChanged):
32036         * rendering/RenderBlock.cpp:
32037         (WebCore::RenderBlock::deleteLineBoxTree):
32038         (WebCore::RenderBlock::createAndAppendRootInlineBox):
32039         * rendering/RenderObject.cpp:
32040         (WebCore::RenderObject::styleWillChange):
32041         * rendering/RenderText.cpp:
32042         (WebCore::RenderText::setText):
32043
32044 2012-10-26  Joshua Bell  <jsbell@chromium.org>
32045
32046         [WebKitIDL] Optional dictionary types should have default values of empty dictionary
32047         https://bugs.webkit.org/show_bug.cgi?id=100547
32048
32049         Reviewed by Adam Barth.
32050
32051         Per WebIDL, "Optional dictionary type arguments are always considered to have a default
32052         value of an empty dictionary." WebKitIDL already supported this via the extended attribute
32053         [Optional=DefaultIsUndefined] but make this the default for Dictionary.
32054
32055         Binding test expectations updated.
32056
32057         * Modules/filesystem/DirectoryEntry.h: Remove default parameters.
32058         (DirectoryEntry):
32059         * Modules/indexeddb/IDBDatabase.h: Remove overloads.
32060         (IDBDatabase):
32061         * Modules/indexeddb/IDBObjectStore.h: Remove overloads.
32062         (IDBObjectStore):
32063         * Modules/mediastream/RTCPeerConnection.idl: Remove DefaultIsUndefined annotations.
32064         * bindings/scripts/CodeGeneratorJS.pm: Special case for Optional Dictionary.
32065         (GenerateParametersCheck):
32066         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
32067         (GenerateParametersCheck):
32068         * bindings/scripts/test/JS/JSTestObj.cpp:
32069         (WebCore::jsTestObjPrototypeFunctionOptionsObject): Updated expectation - no early call.
32070         * bindings/scripts/test/V8/V8TestObj.cpp:
32071         (WebCore::TestObjV8Internal::optionsObjectCallback): Ditto.
32072
32073 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32074
32075         Generated should not be supported for things with a shadow
32076         https://bugs.webkit.org/show_bug.cgi?id=98836
32077
32078         Unreviewed rollout of rollout of http://trac.webkit.org/changeset/132269.
32079         Initial rollout was speculative and was shown not to be related to crashes.
32080         Change author: Elliott Sprehn  <esprehn@chromium.org>
32081
32082         As far as CSS is concerned inputs and things with shadow content inside 
32083         shouldn't support pseudo elements like :before, :after or :first-letter.
32084         Neither Gecko or Presto supports it, and we only accidentally supported 
32085         it. 
32086  
32087         Until the spec tells us what to do we should disable support. This is 
32088         also neccesary because the new generated content implementation doesn't 
32089         support shadows. 
32090
32091         Test: fast/forms/pseudo-elements.html
32092
32093         * rendering/RenderBlock.cpp:
32094         (WebCore::RenderBlock::updateFirstLetter):
32095         * rendering/RenderListBox.h:
32096         * rendering/RenderObjectChildList.cpp:
32097         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
32098
32099 2012-10-26  Brady Eidson  <beidson@apple.com>
32100
32101         Crash in WebProces at WebCore::ResourceLoadScheduler::crossOriginRedirectReceived + 78
32102         <rdar://problem/12575514> and https://bugs.webkit.org/show_bug.cgi?id=100554
32103
32104         Reviewed by Alexey Proskuryakov.
32105
32106         This was fallout from http://trac.webkit.org/changeset/132501 where I missed some of the 
32107         spots that call resourceLoadScheduler().
32108
32109         As a result we were creating more than one ResourceLoadScheduler, allowing the host records 
32110         to get out of sync.
32111
32112         The fix that also results in less #ifdefs scattered throughout the code is to use a single 
32113         choke point for all ResourceLoadScheduler access.
32114
32115         No new tests 
32116         (No change of behavior for the default config, not testable at this time in the repro config)
32117
32118         Add a single choke point for accessing the correct ResourceLoadScheduler:
32119         * loader/ResourceLoadScheduler.cpp:
32120         (WebCore::defaultResourceLoadScheduler): New private function that keeps the singleton default ResourceLoadScheduler.
32121         (WebCore::resourceLoadScheduler): Refactor this function to either ask the LoaderStrategy or call through to
32122
32123         Revert back to using that single choke point everywhere:
32124         * dom/ContainerNode.cpp:
32125         (WebCore::ContainerNode::suspendPostAttachCallbacks):
32126         (WebCore::ContainerNode::resumePostAttachCallbacks):
32127
32128         * loader/MainResourceLoader.cpp:
32129         (WebCore::MainResourceLoader::loadNow):
32130
32131         * loader/ResourceLoader.cpp:
32132         (WebCore::ResourceLoader::releaseResources):
32133         (WebCore::ResourceLoader::willSendRequest):
32134
32135         * loader/cache/CachedResource.cpp:
32136         (WebCore::CachedResource::load):
32137
32138         * loader/cache/CachedResourceLoader.cpp:
32139         (WebCore::CachedResourceLoader::performPostLoadActions):
32140
32141 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32142
32143         Try to fix the windows build
32144         https://bugs.webkit.org/show_bug.cgi?id=100556
32145
32146         Reviewed by Eric Seidel.
32147
32148         Touch files by adding whitespace to try and make the windows
32149         build bot regenerate files.
32150
32151         No new tests, just kick the bot.
32152
32153         * dom/DOMAllInOne.cpp:
32154         * html/HTMLElementsAllInOne.cpp:
32155         * html/shadow/TextControlInnerElements.cpp:
32156
32157 2012-10-26  Rob Buis  <rbuis@rim.com>
32158
32159         [BlackBerry] Platform Abstraction for WebKit Resource/Image Loading
32160         https://bugs.webkit.org/show_bug.cgi?id=100518
32161
32162         PR 231732
32163
32164         Reviewed by Yong Li.
32165
32166         Use the new resource/image loading abstraction ResourceStore.
32167
32168         * platform/graphics/blackberry/ImageBlackBerry.cpp:
32169         (WebCore::Image::loadPlatformResource):
32170
32171 2012-10-26  Bear Travis  <betravis@adobe.com>
32172
32173         [CSS Exclusions] Block children have incorrect offset when shape-inside element lays out below other elements
32174         https://bugs.webkit.org/show_bug.cgi?id=98189
32175
32176         Reviewed by Dirk Schulze.
32177
32178         The initial code assumed that each block created a new layout state, such that
32179         LayoutState::layoutOffset would be specific to each block child of a shape-inside.
32180         Typically, however, block children of a shape-inside do not create a new layout state,
32181         and therefore we use the current element's offset instead.
32182
32183         Test: fast/exclusions/shape-inside/shape-inside-subsequent-blocks.html
32184
32185         * rendering/RenderBlockLineLayout.cpp:
32186         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Modified to use only logicalTop
32187         rather than LayoutState::layoutOffset::width/height and logicalTop.
32188
32189 2012-10-26  Elliott Sprehn  <esprehn@chromium.org>
32190
32191         Remove setRenderStyle in favor of callbacks on HTMLOptionElement and HTMLOptGroupElement
32192         https://bugs.webkit.org/show_bug.cgi?id=100397
32193
32194         Reviewed by Ojan Vafai.
32195
32196         Use Node custom callbacks to support the non-renderer style caching for option
32197         and optgroup eliminating the need for setRenderStyle.
32198
32199         setRenderStyle only existed to support HTMLOptionElement and HTMLOptGroupElement
32200         so they could store their RenderStyle even though they have no renderer. This
32201         means all style setting went through the virtual call to setRenderStyle, and it
32202         also hid the if statement protecting against null renderers meaning we end up
32203         checking if the renderer is null repeatedly in recalcStyle. This refactor cleans
32204         up recalcStyle to be more clear about what's going on.
32205
32206         No new tests needed, this is just a refactor.
32207
32208         * dom/Element.cpp:
32209         (WebCore::Element::pseudoStyleCacheIsInvalid):
32210         (WebCore::Element::recalcStyle):
32211         * dom/Node.cpp:
32212         (WebCore::Node::createRenderer):
32213         (WebCore::Node::setRenderStyle):
32214             Removed this method because it was only here to support HTMLOptionElement
32215             and HTMLOptGroupElement. Instead we can use node custom callbacks.
32216         * dom/Node.h:
32217         (WebCore::Node::nonRendererStyle): Renamed from nonRendererRenderStyle to match other style methods.
32218         * dom/NodeRenderStyle.h:
32219         (WebCore::Node::renderStyle):
32220         * html/HTMLOptGroupElement.cpp:
32221         (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
32222         (WebCore::HTMLOptGroupElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32223         (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Updates the cached non-renderer style.
32224         (WebCore::HTMLOptGroupElement::nonRendererStyle):
32225         (WebCore::HTMLOptGroupElement::customStyleForRenderer):
32226         * html/HTMLOptGroupElement.h:
32227         * html/HTMLOptionElement.cpp:
32228         (WebCore::HTMLOptionElement::HTMLOptionElement):
32229         (WebCore::HTMLOptionElement::attach): Reorder the logic to avoid calling styleForRenderer twice.
32230         (WebCore::HTMLOptionElement::updateNonRenderStyle): Updates the cached non-renderer style.
32231         (WebCore::HTMLOptionElement::nonRendererStyle):
32232         (WebCore::HTMLOptionElement::customStyleForRenderer):
32233         (WebCore::HTMLOptionElement::didRecalcStyle): Requests the repaint of the select like setRenderStyle used to.
32234         * html/HTMLOptionElement.h:
32235
32236 2012-10-26  Dirk Schulze  <krit@webkit.org>
32237
32238         -webkit-clip-path property should just reference clipPath
32239         https://bugs.webkit.org/show_bug.cgi?id=100531
32240
32241         Reviewed by Eric Seidel.
32242
32243         The -webkit-clip-path property should just reference clipPath. Added a check for that.
32244
32245         Test: css3/masking/clip-path-reference-of-fake-clipPath.html
32246
32247         * rendering/RenderLayer.cpp:
32248         (WebCore::RenderLayer::paintLayerContents):
32249
32250 2012-10-26  Aaron Colwell  <acolwell@chromium.org>
32251
32252         Remove the circular reference between TextTrack and TextTrackCue
32253         https://bugs.webkit.org/show_bug.cgi?id=100300
32254
32255         Reviewed by Eric Carlson.
32256
32257         Changed TextTrackCue.m_track to a normal pointer to break the circular
32258         reference that was keeping both objects from ever getting deleted.
32259
32260         No new tests. This simply fixes a memory leak.
32261
32262         * html/track/TextTrack.cpp:
32263         (WebCore::TextTrack::~TextTrack):
32264         * html/track/TextTrackCue.cpp:
32265         (WebCore::TextTrackCue::TextTrackCue):
32266         (WebCore::TextTrackCue::~TextTrackCue):
32267         (WebCore::TextTrackCue::track):
32268         (WebCore::TextTrackCue::setTrack):
32269         * html/track/TextTrackCue.h:
32270         (TextTrackCue):
32271
32272 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32273
32274         Web Inspector: Breakpoints are not managed correctly when editing uiSourceCode that was bound to ScriptFile after JavaScriptSourceFrame creation.
32275         https://bugs.webkit.org/show_bug.cgi?id=100535
32276
32277         Reviewed by Pavel Feldman.
32278
32279         Added SourceMappingChanged event to UISourceCode and made
32280         JavaScriptSourceFrame update ScriptFile events listeners on it.
32281
32282         * inspector/front-end/JavaScriptSourceFrame.js:
32283         (WebInspector.JavaScriptSourceFrame):
32284         (WebInspector.JavaScriptSourceFrame.prototype._onSourceMappingChanged):
32285         (WebInspector.JavaScriptSourceFrame.prototype._updateScriptFile):
32286         * inspector/front-end/ResourceScriptMapping.js:
32287         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
32288         * inspector/front-end/UISourceCode.js:
32289         (WebInspector.UISourceCode.prototype.setSourceMapping):
32290
32291 2012-10-26  Vincent Scheib  <scheib@chromium.org>
32292
32293         Unreviewed, rolling out r132644.
32294         http://trac.webkit.org/changeset/132644
32295         https://bugs.webkit.org/show_bug.cgi?id=100497
32296
32297         Causes webkit_unit_tests
32298         MemoryInstrumentationTest.ImageObserver to fail.
32299
32300         * platform/network/ResourceRequestBase.cpp:
32301         (WebCore::ResourceRequestBase::reportMemoryUsage):
32302         * platform/network/ResourceRequestBase.h:
32303         (ResourceRequestBase):
32304         * platform/network/chromium/ResourceRequest.cpp:
32305         * platform/network/chromium/ResourceRequest.h:
32306
32307 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32308
32309         [Qt] MiniBrowser segfaults on exit after using WebGL.
32310         https://bugs.webkit.org/show_bug.cgi?id=100523
32311
32312         The display connection must not be closed before
32313         destroying the offscreen window.
32314         Therefore opening the connection is moved to the
32315         getXWindow() function. And closing the connection
32316         is being moved to the destructor of the offscreen window.
32317
32318         Reviewed by Kenneth Rohde Christiansen.
32319
32320
32321         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32322         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32323         (WebCore::OffScreenRootWindow::getXWindow):
32324         (OffScreenRootWindow):
32325         (WebCore::OffScreenRootWindow::display):
32326         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32327         (WebCore):
32328         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32329         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32330         (WebCore::GraphicsSurfacePrivate::createSurface):
32331
32332 2012-10-26  Parth Patel  <parpatel@rim.com>
32333
32334         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
32335         Generic ThreadUnsafe Singleton
32336         https://bugs.webkit.org/show_bug.cgi?id=100529
32337
32338         Reviewed by Yong Li.
32339
32340         No new tests added as there was no behavioural change.
32341
32342         * platform/network/blackberry/NetworkManager.cpp:
32343         (WebCore):
32344         * platform/network/blackberry/NetworkManager.h:
32345         (NetworkManager):
32346
32347 2012-10-26  Mike West  <mkwst@chromium.org>
32348
32349         Web Inspector: Fix log-type icon alignment.
32350         https://bugs.webkit.org/show_bug.cgi?id=100520
32351
32352         Reviewed by Yury Semikhatsky.
32353
32354         The icons are just a pixel or two off, and it's driving me nuts.
32355
32356         * inspector/front-end/inspector.css:
32357         (.console-message::before, .console-user-command::before, #console-prompt::before, .console-group-title::before):
32358         (.console-warning-level::before):
32359
32360 2012-10-26  Erik Arvidsson  <arv@chromium.org>
32361
32362         Replaceable attributes should also have readonly
32363         https://bugs.webkit.org/show_bug.cgi?id=91768
32364
32365         Reviewed by Adam Barth.
32366
32367         This updates the code generators for JSC and V8 to handle this case correctly.
32368
32369         * Modules/intents/DOMWindowIntents.idl:
32370         * bindings/scripts/CodeGeneratorJS.pm:
32371         * bindings/scripts/CodeGeneratorV8.pm:
32372         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
32373         * bindings/scripts/test/ObjC/DOMTestObj.h:
32374         * bindings/scripts/test/ObjC/DOMTestObj.mm:
32375         * bindings/scripts/test/TestObj.idl:
32376         * bindings/scripts/test/V8/V8TestObj.cpp:
32377         * page/DOMWindow.idl:
32378         * workers/WorkerContext.idl:
32379
32380 2012-10-26  Nico Weber  <thakis@chromium.org>
32381
32382         Clear m_orientation in FrameData::clear() for skia
32383         https://bugs.webkit.org/show_bug.cgi?id=100456
32384
32385         Reviewed by Stephen White.
32386
32387         clear() is only called by the FrameData destructor and for multi-image
32388         images in BitmapImage::destroyDecodedData(). Multi-frame images don't
32389         have exif data, so this patch should have no effect in practice. It
32390         makes the skia code match the CG code in BitmapImageCG.cpp though.
32391
32392         * platform/graphics/skia/ImageSkia.cpp:
32393         (WebCore::FrameData::clear):
32394
32395 2012-10-26  Florin Malita  <fmalita@chromium.org>
32396
32397         Crash on loading SVG filter resource on HTML element
32398         https://bugs.webkit.org/show_bug.cgi?id=100491
32399
32400         Reviewed by Dirk Schulze.
32401
32402         Skip non-filter elements referenced via -webkit-filter.
32403
32404         Test: svg/filters/filter-reference-crash.html
32405
32406         * rendering/RenderLayerFilterInfo.cpp:
32407         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
32408
32409 2012-10-26  Antti Koivisto  <antti@apple.com>
32410
32411         Lots of time spent under DNSResolveQueue::platformProxyIsEnabledInSystemPreferences
32412         https://bugs.webkit.org/show_bug.cgi?id=100514
32413
32414         Reviewed by Anders Carlsson.
32415
32416         DNSResolveQueue::platformProxyIsEnabledInSystemPreferences gets called for every link in
32417         the document. The function is relatively slow.
32418         
32419         This patch caches the result of the last check for 5 seconds. Based on code comments
32420         prefetching is disabled with proxies due to regressing performance with some configurations.
32421         Proxy status changes rarely and a slight reaction delay shoudn't cause practical problems.
32422
32423         * platform/network/DNSResolveQueue.cpp:
32424         (WebCore::DNSResolveQueue::DNSResolveQueue):
32425         
32426             Add constructor. Also fixes a bug, m_requestsInFlight was not initialized.
32427             
32428         (WebCore):
32429         (WebCore::DNSResolveQueue::isUsingProxy):
32430         (WebCore::DNSResolveQueue::add):
32431         (WebCore::DNSResolveQueue::fired):
32432         * platform/network/DNSResolveQueue.h:
32433         (DNSResolveQueue):
32434
32435 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32436
32437         Unreviewed, rolling out r132662.
32438         http://trac.webkit.org/changeset/132662
32439         https://bugs.webkit.org/show_bug.cgi?id=100528
32440
32441         It is not necessary any more. (Requested by loislo on
32442         #webkit).
32443
32444         * platform/qt/MemoryUsageSupportQt.cpp:
32445         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32446         (WebCore):
32447
32448 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32449
32450         Unreviewed build fix for Qt builders.
32451
32452         * platform/qt/MemoryUsageSupportQt.cpp:
32453
32454 2012-10-26  Csaba Osztrogonác  <ossy@webkit.org>
32455
32456         Unreviewed, rolling out r132658.
32457         http://trac.webkit.org/changeset/132658
32458         https://bugs.webkit.org/show_bug.cgi?id=100515
32459
32460         It broke the Qt build
32461
32462         * inspector/InspectorMemoryAgent.cpp:
32463         (WebCore::addPlatformComponentsInfo):
32464         (WebCore):
32465         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32466         * platform/MemoryUsageSupport.cpp:
32467         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32468         * platform/MemoryUsageSupport.h:
32469         (ComponentInfo):
32470         (WebCore::MemoryUsageSupport::ComponentInfo::ComponentInfo):
32471         (MemoryUsageSupport):
32472         * platform/PlatformMemoryInstrumentation.cpp:
32473         (WebCore):
32474         * platform/PlatformMemoryInstrumentation.h:
32475         (PlatformMemoryTypes):
32476         * platform/chromium/MemoryUsageSupportChromium.cpp:
32477         (WebCore::MemoryUsageSupport::memoryUsageByComponents):
32478
32479 2012-10-26  Vsevolod Vlasov  <vsevik@chromium.org>
32480
32481         Web Inspector: Some context menu items are duplicated on Resources and Sources panels.
32482         https://bugs.webkit.org/show_bug.cgi?id=100522
32483
32484         Reviewed by Pavel Feldman.
32485
32486         Method appendApplicableItems now receives event as a parameter.
32487         HandlerRegistry now makes sure that it is not called more than once for certain context menu event.
32488
32489         * inspector/front-end/BreakpointsSidebarPane.js:
32490         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32491         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._breakpointContextMenu):
32492         (WebInspector.XHRBreakpointsSidebarPane.prototype._emptyElementContextMenu):
32493         (WebInspector.XHRBreakpointsSidebarPane.prototype._contextMenu):
32494         * inspector/front-end/CallStackSidebarPane.js:
32495         (WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
32496         * inspector/front-end/ConsoleView.js:
32497         * inspector/front-end/ContextMenu.js:
32498         (WebInspector.ContextMenu):
32499         (WebInspector.ContextMenu.prototype.show):
32500         (WebInspector.ContextMenu.prototype.appendApplicableItems):
32501         (WebInspector.ContextMenu.Provider.prototype.appendApplicableItems):
32502         * inspector/front-end/CookieItemsView.js:
32503         (WebInspector.CookieItemsView.prototype._contextMenu):
32504         * inspector/front-end/DOMBreakpointsSidebarPane.js:
32505         (WebInspector.DOMBreakpointsSidebarPane.prototype._contextMenu):
32506         * inspector/front-end/DataGrid.js:
32507         (WebInspector.DataGrid.prototype._contextMenuInDataTable):
32508         * inspector/front-end/DefaultTextEditor.js:
32509         (WebInspector.DefaultTextEditor.prototype._contextMenu):
32510         * inspector/front-end/ElementsPanel.js:
32511         (WebInspector.ElementsPanel.prototype._contextMenuEventFired.set get var):
32512         * inspector/front-end/ElementsPanelDescriptor.js:
32513         (WebInspector.ElementsPanelDescriptor.prototype.appendApplicableItems):
32514         * inspector/front-end/ElementsTreeOutline.js:
32515         (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired):
32516         * inspector/front-end/HandlerRegistry.js:
32517         (WebInspector.HandlerRegistry.prototype.appendApplicableItems):
32518         * inspector/front-end/ImageView.js:
32519         (WebInspector.ImageView.prototype._contextMenu):
32520         * inspector/front-end/NavigatorView.js:
32521         (WebInspector.NavigatorView.prototype.handleContextMenu):
32522         * inspector/front-end/NetworkPanel.js:
32523         (WebInspector.NetworkLogView.prototype._contextMenu):
32524         * inspector/front-end/NetworkPanelDescriptor.js:
32525         (WebInspector.NetworkPanelDescriptor.prototype.appendApplicableItems):
32526         * inspector/front-end/ObjectPropertiesSection.js:
32527         (WebInspector.ObjectPropertiesSection.prototype._contextMenuEventFired):
32528         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
32529         * inspector/front-end/ProfilesPanel.js:
32530         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
32531         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
32532         * inspector/front-end/ResourcesPanel.js:
32533         (WebInspector.FrameResourceTreeElement.prototype._handleContextMenuEvent):
32534         (WebInspector.IndexedDBTreeElement.prototype._handleContextMenuEvent):
32535         (WebInspector.FileSystemListTreeElement.prototype._handleContextMenuEvent):
32536         (WebInspector.IDBDatabaseTreeElement.prototype._handleContextMenuEvent):
32537         * inspector/front-end/ScriptsNavigator.js:
32538         (WebInspector.SnippetsNavigatorView.prototype.handleContextMenu):
32539         * inspector/front-end/ScriptsPanel.js:
32540         (WebInspector.ScriptsPanel.prototype.appendApplicableItems):
32541         * inspector/front-end/ScriptsPanelDescriptor.js:
32542         (WebInspector.ScriptsPanelDescriptor.prototype.appendApplicableItems):
32543         * inspector/front-end/StylesSidebarPane.js:
32544         (WebInspector.StylesSidebarPane.prototype._contextMenuEventFired):
32545         * inspector/front-end/TabbedPane.js:
32546         (WebInspector.TabbedPaneTab.prototype._tabContextMenu):
32547         * inspector/front-end/TimelinePanel.js:
32548         (WebInspector.TimelinePanel.prototype._contextMenu):
32549         * inspector/front-end/WatchExpressionsSidebarPane.js:
32550         (WebInspector.WatchExpressionsSection.prototype._emptyElementContextMenu):
32551         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
32552
32553 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32554
32555         Web Inspector: instrument chromium GlyphCache. It keeps ~2mb data on gmail.
32556         https://bugs.webkit.org/show_bug.cgi?id=100515
32557
32558         Reviewed by Yury Semikhatsky.
32559
32560         I replaced old version with an abstract number with new one which precisely reports allocated SkGlyphCache objects and their sizes.
32561
32562         * inspector/InspectorMemoryAgent.cpp:
32563         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
32564         * platform/MemoryUsageSupport.cpp:
32565         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32566         * platform/MemoryUsageSupport.h:
32567         (MemoryUsageSupport):
32568         * platform/PlatformMemoryInstrumentation.cpp:
32569         (WebCore):
32570         * platform/PlatformMemoryInstrumentation.h:
32571         (PlatformMemoryTypes):
32572         * platform/chromium/MemoryUsageSupportChromium.cpp:
32573         (reportMemoryUsage):
32574         (WebCore::reportGlyphCache):
32575         (WebCore):
32576         (WebCore::MemoryUsageSupport::reportMemoryUsage):
32577
32578 2012-10-26  Kent Tamura  <tkent@chromium.org>
32579
32580         [Chromium] Build fix for r132650.
32581         https://bugs.webkit.org/show_bug.cgi?id=100482
32582
32583         * platform/text/LocaleWin.cpp:
32584         (WebCore::LocaleWin::timeFormat):
32585
32586 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32587
32588         [v8] Memory instrumentation: don't count memory of WrapperTypeInfo
32589         https://bugs.webkit.org/show_bug.cgi?id=100517
32590
32591         Reviewed by Alexander Pavlov.
32592
32593         * bindings/v8/V8PerIsolateData.cpp: when estimating bindings memory size skip
32594         pointers to WrapperTypeInfo objects as they are static fields and belong to
32595         the data segment.
32596         (WTF):
32597
32598 2012-10-26  Kent Tamura  <tkent@chromium.org>
32599
32600         Refactor Localizer-related classes.
32601         https://bugs.webkit.org/show_bug.cgi?id=100482
32602
32603         Reviewed by Kentaro Hara.
32604
32605         - Localizer has unused code
32606          Localizer should have function implementations only if they are used in
32607          multiple subclasses.
32608         - Some Localizer subclasses hide Localizer data members
32609         - Should use String::isNull to check initialization-or-not
32610
32611         No new tests. This should not change any behavior.
32612
32613         * platform/text/Localizer.h:
32614         (Localizer):
32615         - timeFormat, shortTimeFormat, and timeAMPMLabels should be pure virtual.
32616         - Remove m_localizedDateFormatText, m_localizedShortTimeFormatText, and
32617           m_timeAMPMLabels
32618         * platform/text/Localizer.cpp:
32619         Remove implementations of timeFormat, shortTimeFormat, and timeAMPMLabels.
32620
32621         * platform/text/LocaleICU.h:
32622         (LocaleICU): Introduce m_timeFormatWithSeconds and m_timeFormatWithoutSeconds.
32623         * platform/text/LocaleICU.cpp:
32624         (WebCore::LocaleICU::initializeDateTimeFormat):
32625         Use new data members instead of Localizer data members.
32626         (WebCore::LocaleICU::dateFormat): Use isNull.
32627
32628         * platform/text/LocaleNone.cpp:
32629         (LocaleNone): Add timeFormat, shortTimeFormat, timeAMPMLabels
32630         implementations, and m_timeAMPMLabels.
32631         (WebCore::LocaleNone::timeFormat): Returns the HTML time format.
32632         (WebCore::LocaleNone::shortTimeFormat): Returns the HTML time format.
32633         (WebCore::LocaleNone::timeAMPMLabels): Returns "AM" and "PM".
32634
32635         * platform/text/LocaleWin.h:
32636         (LocaleWin): Add m_timeFormatWithSeconds.
32637         * platform/text/LocaleWin.cpp:
32638         (WebCore::LocaleWin::dateFormat): Use isNull.
32639         (WebCore::LocaleWin::timeFormat): Use m_timeFormatWithSeconds.
32640
32641         * platform/text/mac/LocaleMac.h:
32642         (LocaleMac): Rename m_localized*TimeFormatText to m_timeFormatWith*Seconds.
32643         * platform/text/mac/LocaleMac.mm:
32644         (WebCore::LocaleMac::timeFormat): Follow the renaming.
32645         (WebCore::LocaleMac::shortTimeFormat): Ditto.
32646
32647 2012-10-26  Kent Tamura  <tkent@chromium.org>
32648
32649         Crash in PagePopupController by events after WebPagePopupImpl::closePopup
32650         https://bugs.webkit.org/show_bug.cgi?id=100454
32651
32652         Reviewed by Hajime Morita.
32653
32654         No new tests. The bug is timing-dependent.
32655
32656         * page/DOMWindowPagePopup.cpp:
32657         (WebCore::DOMWindowPagePopup::~DOMWindowPagePopup):
32658         Calls clearPagePopupClient for the associalated PagePopupController object.
32659         * page/PagePopupController.cpp:
32660         (WebCore::PagePopupController::setValueAndClosePopup):
32661         Do nothing if m_popupClient is 0.
32662         (WebCore::PagePopupController::localizeNumberString): Ditto.
32663         (WebCore::PagePopupController::clearPagePopupClient): Added.
32664         * page/PagePopupController.h:
32665         (PagePopupController): Declare clearPagePopupClient.
32666
32667 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
32668
32669         Web Inspector: Bring device geolocation and orientation emulation from behind the experiment
32670         https://bugs.webkit.org/show_bug.cgi?id=100220
32671
32672         Reviewed by Yury Semikhatsky.
32673
32674         * inspector/front-end/Settings.js:
32675         (WebInspector.ExperimentsSettings):
32676         * inspector/front-end/SettingsScreen.js:
32677         (WebInspector.UserAgentSettingsTab):
32678
32679 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
32680
32681         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
32682         https://bugs.webkit.org/show_bug.cgi?id=100497
32683
32684         Reviewed by Alexander Pavlov.
32685
32686         Added memory reporting method to Chromium implementation of ResourceRequest.
32687
32688         * platform/network/ResourceRequestBase.cpp:
32689         (WebCore::ResourceRequestBase::reportMemoryUsageBase): Renamed reportMemoryUsage
32690         on ResourceRequestBase to reportMemoryUsageBase and made it protected. I'd
32691         rather make ResourceRequestBase::reportMemoryUsage virtual and override it
32692         in the descendant but ResourceRequestBase doesn't have any virtual methods
32693         and shouldn't be used directly (ResourceRequest should be used instead).
32694         * platform/network/ResourceRequestBase.h:
32695         (ResourceRequestBase):
32696         * platform/network/chromium/ResourceRequest.cpp:
32697         (WebCore::ResourceRequest::reportMemoryUsage):
32698         (WebCore):
32699         * platform/network/chromium/ResourceRequest.h:
32700         (ResourceRequest):
32701
32702 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32703
32704         Web Inspector: Remove the on-hover highlighting of console messages
32705         https://bugs.webkit.org/show_bug.cgi?id=100511
32706
32707         Reviewed by Pavel Feldman.
32708
32709         This clashes with the hovered element highlight in console messages.
32710
32711         * inspector/front-end/inspector.css:
32712         (ol.watch-expressions > li.hovered):
32713
32714 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32715
32716         Unreviewed, rolling out r132612.
32717         http://trac.webkit.org/changeset/132612
32718         https://bugs.webkit.org/show_bug.cgi?id=100512
32719
32720         Crashes fast/events/tabindex-focus-blur-all.html in debug mode
32721         (Requested by pfeldman on #webkit).
32722
32723         * rendering/AutoTableLayout.cpp:
32724         (WebCore::AutoTableLayout::recalcColumn):
32725         * rendering/FixedTableLayout.cpp:
32726         (WebCore::FixedTableLayout::calcWidthArray):
32727         * rendering/RenderTable.cpp:
32728         (WebCore::RenderTable::layout):
32729         * rendering/RenderTableCol.cpp:
32730         (WebCore::RenderTableCol::styleDidChange):
32731         (WebCore::RenderTableCol::updateFromElement):
32732         (WebCore::RenderTableCol::computePreferredLogicalWidths):
32733         * rendering/RenderTableCol.h:
32734         (RenderTableCol):
32735
32736 2012-10-26  Pavel Feldman  <pfeldman@chromium.org>
32737
32738         Web Inspector: fast return upon setting the same dock side.
32739         https://bugs.webkit.org/show_bug.cgi?id=100510
32740
32741         Reviewed by Vsevolod Vlasov.
32742
32743         Added fast return.
32744
32745         * inspector/front-end/DockController.js:
32746
32747 2012-10-26  Simon Hausmann  <simon.hausmann@digia.com>
32748
32749         Unreviewed trivial build fix: It's glXGetCurrentContext not glxGetCurrentContext :)
32750
32751         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32752         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32753
32754 2012-10-26  Kenneth Rohde Christiansen  <kenneth@webkit.org>
32755
32756         Printing should use use high resolution images when available
32757         https://bugs.webkit.org/show_bug.cgi?id=100488
32758
32759         Reviewed by Antti Koivisto.
32760
32761         The images loaded using -webkit-device-pixel-ratio depends on
32762         the display type (deviceScaleFactor) and thus affects which
32763         images are being used for printing. Printing should always
32764         use the higher resolution images (aka 'retina' images).
32765
32766         Test: fast/media/mq-pixel-ratio-print.html
32767
32768         * css/MediaQueryEvaluator.cpp:
32769         (WebCore::device_pixel_ratioMediaFeatureEval):
32770
32771 2012-10-26  Ilya Tikhonovsky  <loislo@chromium.org>
32772
32773         Web Inspector: NMI instrument InspectorResourceAgent. it caches resources for the front-end.
32774         https://bugs.webkit.org/show_bug.cgi?id=100496
32775
32776         Reviewed by Yury Semikhatsky.
32777
32778         It is plain instrumentation for InspectorResourceAgent and NetworkResourceData which is used by the agent.
32779
32780         * dom/WebCoreMemoryInstrumentation.cpp:
32781         (WebCore):
32782         * dom/WebCoreMemoryInstrumentation.h:
32783         (WebCoreMemoryTypes):
32784         * inspector/InspectorResourceAgent.cpp:
32785         (WebCore::InspectorResourceAgent::reportMemoryUsage):
32786         (WebCore):
32787         * inspector/InspectorResourceAgent.h:
32788         (InspectorResourceAgent):
32789         * inspector/NetworkResourcesData.cpp:
32790         (WebCore::XHRReplayData::reportMemoryUsage):
32791         (WebCore):
32792         (WebCore::NetworkResourcesData::ResourceData::reportMemoryUsage):
32793         (WebCore::NetworkResourcesData::reportMemoryUsage):
32794         * inspector/NetworkResourcesData.h:
32795         (XHRReplayData):
32796         (ResourceData):
32797         (NetworkResourcesData):
32798
32799 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32800
32801         Unreviewed, rolling out r132493.
32802         http://trac.webkit.org/changeset/132493
32803         https://bugs.webkit.org/show_bug.cgi?id=100509
32804
32805         It didn't fix the tests on the bot as we had hoped. (Requested
32806         by drott on #webkit).
32807
32808         * platform/network/cf/ResourceErrorCF.cpp:
32809         (WebCore::ResourceError::ResourceError):
32810
32811 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32812
32813         [Qt] Temporarily disable use of QXcbNativeInterface in GraphicsSurfaceGLX.
32814         https://bugs.webkit.org/show_bug.cgi?id=100493
32815
32816         Once QXcbNativeInterface::nativeResourceForContext() can provide the
32817         GLXContext for an existing QOpenGLContext, this patch shall be reverted.
32818
32819         Reviewed by Simon Hausmann.
32820
32821         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32822         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32823
32824 2012-10-26  Zeno Albisser  <zeno@webkit.org>
32825
32826         [Qt] Remove QOpenGL specific code from GraphicsSurfaceGLX.
32827         https://bugs.webkit.org/show_bug.cgi?id=100492
32828
32829         This patch removes most of the QOpenGLContext related code
32830         from GraphicsSurfaceGLX. This allows sharing almost all
32831         GraphicsSurfaceGLX code with EFL, by relying on pure GLX.
32832
32833         Reviewed by Kenneth Rohde Christiansen.
32834
32835         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32836         (WebCore::OffScreenRootWindow::get):
32837         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32838         (OffScreenRootWindow):
32839         (WebCore):
32840         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32841         (WebCore::GraphicsSurfacePrivate::createSurface):
32842         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32843         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32844         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32845         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32846         (GraphicsSurfacePrivate):
32847         (WebCore::resolveGLMethods):
32848
32849 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
32850
32851         [EFL][WK2] Enable WebGL
32852         https://bugs.webkit.org/show_bug.cgi?id=97652
32853
32854         Reviewed by Gyuyoung Kim.
32855
32856         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
32857         Depends on GLX since Evas doesn't provide the necessary functionality.
32858
32859         No new tests. Covered by existing tests.
32860
32861         * PlatformEfl.cmake:
32862         * platform/graphics/GraphicsContext3D.h:
32863         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
32864         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
32865         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
32866         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
32867         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
32868         (WebCore):
32869         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
32870         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
32871         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
32872         * platform/graphics/efl/GraphicsContext3DPrivate.h:
32873         (GraphicsContext3DPrivate):
32874         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
32875         (WebCore::GraphicsContext3D::reshape):
32876         * platform/graphics/surfaces/efl: Added.
32877         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
32878         (WebCore):
32879         (WebCore::OffScreenRootWindow::get):
32880         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32881         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32882         (WebCore::GraphicsSurfacePrivate::createSurface):
32883         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32884         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32885         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32886         (WebCore::GraphicsSurface::platformBeginPaint):
32887         (WebCore::GraphicsSurface::createReadOnlyImage):
32888         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
32889         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
32890         (WebCore):
32891         (OffScreenRootWindow):
32892         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
32893         (GraphicsSurfacePrivate):
32894         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
32895         (WebCore::GraphicsSurfacePrivate::createPixmap):
32896         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
32897         (WebCore::GraphicsSurfacePrivate::display):
32898         (WebCore::GraphicsSurfacePrivate::glxPixmap):
32899         (WebCore::GraphicsSurfacePrivate::size):
32900         (WebCore::GraphicsSurfacePrivate::glContext):
32901         (WebCore::resolveGLMethods):
32902         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
32903         (WebCore):
32904         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
32905         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
32906         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
32907         (WebCore::GraphicsSurfacePrivate::createSurface):
32908         (WebCore::GraphicsSurfacePrivate::makeCurrent):
32909         (WebCore::GraphicsSurfacePrivate::doneCurrent):
32910         (WebCore::GraphicsSurfacePrivate::swapBuffers):
32911
32912 2012-10-26  Alexander Pavlov  <apavlov@chromium.org>
32913
32914         Web Inspector: [Overrides] Do not persist the User Agent "master switch"
32915         https://bugs.webkit.org/show_bug.cgi?id=100484
32916
32917         Reviewed by Yury Semikhatsky.
32918
32919         The User Agent override state is managed in the front-end, just like for other override-able parameters.
32920
32921         * inspector/InspectorResourceAgent.cpp:
32922         (WebCore::InspectorResourceAgent::disable):
32923         * inspector/front-end/NetworkManager.js:
32924         (WebInspector.NetworkManager.get NetworkAgent):
32925         (WebInspector.NetworkManager):
32926         * inspector/front-end/SettingsScreen.js:
32927         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement.set checkboxClicked):
32928         (WebInspector.UserAgentSettingsTab.prototype._createUserAgentSelectRowElement):
32929         * inspector/front-end/UserAgentSupport.js:
32930         (WebInspector.UserAgentSupport):
32931         (WebInspector.UserAgentSupport.prototype.toggleUserAgentOverride):
32932         (WebInspector.UserAgentSupport.prototype._userAgentChanged):
32933
32934 2012-10-26  Takashi Sakamoto  <tasak@google.com>
32935
32936         [Shadow]: removing styles in shadow dom subtree causes crash.
32937         https://bugs.webkit.org/show_bug.cgi?id=100455
32938
32939         Reviewed by Hajime Morita.
32940
32941         To quickly check whether shadow roots or elements have any scoped
32942         styles or not, elements have hasStyleScoped flag. If elements have
32943         any scoped styles, the styles are direct children of the element.
32944         The original code just sees how many chilren are scoped style or not.
32945         However styles in shadow dom subtree are registered with the shadow
32946         root but are not always direct children of shadow roots. So to check
32947         whether shadow roots have any scoped styles, modified to count
32948         number of styles registered with the shadow root.
32949
32950         Test: fast/dom/shadow/remove-styles-in-shadow-crash.html
32951
32952         * dom/Node.cpp:
32953         (WebCore::Node::registerScopedHTMLStyleChild):
32954         (WebCore::Node::unregisterScopedHTMLStyleChild):
32955         Made the above two method virtual. class ShadowRoot overrides these
32956         methods.
32957         (WebCore::Node::numberOfScopedHTMLStyleChildren):
32958         Moved HTMLStyleElement.cpp to Node.cpp, because the above two methods
32959         are moved into Node.cpp.
32960         * dom/Node.h:
32961         (Node):
32962         * dom/ShadowRoot.cpp:
32963         (WebCore::ShadowRoot::ShadowRoot):
32964         (WebCore::ShadowRoot::registerScopedHTMLStyleChild):
32965         (WebCore::ShadowRoot::unregisterScopedHTMLStyleChild):
32966         Modify to count how many styles are registered with the shadow root.
32967         The "counting" is done when styles are registered and unregistered
32968         with the shadow root, i.e. style element is inserted into document or
32969         removed from document. When unregister some style, there are no more
32970         styles registered with the shadow root. Set style scoped flag false.
32971         * dom/ShadowRoot.h:
32972         (ShadowRoot):
32973         * html/HTMLStyleElement.cpp:
32974         * html/HTMLStyleElement.h:
32975         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
32976         Now isRegisteredAsScoped is used in Node.cpp, so removed inline and
32977         moved .cpp to .h.
32978
32979 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
32980
32981         Unreviewed, rolling out r132589.
32982         http://trac.webkit.org/changeset/132589
32983         https://bugs.webkit.org/show_bug.cgi?id=100498
32984
32985         Breaks font-face layout tests (Requested by pfeldman on
32986         #webkit).
32987
32988         * css/CSSFontFaceSource.cpp:
32989         (WebCore::CSSFontFaceSource::getFontData):
32990
32991 2012-10-26  Takashi Sakamoto  <tasak@google.com>
32992
32993         [Shadow DOM] Needs @host rule for ShadowDOM styling
32994         https://bugs.webkit.org/show_bug.cgi?id=88606
32995
32996         Reviewed by Hajime Morita.
32997
32998         Implemented @host-@rules according to the shadow dom spec:
32999         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
33000         The design doc is:
33001         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
33002
33003         Test: fast/dom/shadow/athost-atrules.html
33004
33005         * css/CSSGrammar.y.in:
33006         Added rules for parsing @host @-rules.
33007         * css/CSSParser.cpp:
33008         (WebCore::CSSParser::detectAtToken):
33009         Added a new token "@host".
33010         (WebCore::CSSParser::createHostRule):
33011         Added a new method to create an @host @-rule, which is invoked from
33012         (WebCore):
33013         * css/CSSParser.h:
33014         Added a declaration of the above new method: createHostRule.
33015         * css/CSSPropertySourceData.h:
33016         Added HOST_RULE to enum Type.
33017         * css/RuleSet.cpp:
33018         (WebCore::RuleData::RuleData):
33019         Modified multiple bool arguments into one argument. Now it
33020         uses combinations of values from enum AddRuleFlags.
33021         (WebCore::RuleSet::addRule):
33022         (WebCore::RuleSet::addRegionRule):
33023         (WebCore::RuleSet::addStyleRule):
33024         Updated according to the RuleData's change.
33025         Modified to Invoke increaseSpecificity if the given rule is @host
33026         @-rule.
33027         (WebCore::RuleSet::addRulesFromSheet):
33028         Invoked addHostRule if the given rule is @host @-rule.
33029         * css/RuleSet.h:
33030         (RuleData):
33031         (WebCore::RuleData::increaseSpecificity):
33032         Added a new method to increase selector's specificity. This method is
33033         used to make @host @-rules' specificity larger than normal author
33034         rules' specificity.
33035         (RuleSet):
33036         * css/StyleResolver.cpp:
33037         (WebCore::makeRuleSet):
33038         (WebCore::StyleResolver::addHostRule):
33039         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
33040         is used to make only StyleResolver know an implementation detail about
33041         class StyleScopeResolver.
33042         (WebCore::StyleResolver::appendAuthorStylesheets):
33043         Updated according to the RuleData's change.
33044         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
33045         A new method to find matched host rules when an element is given.
33046         This method invokes
33047         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
33048         matched host rules.
33049         (WebCore):
33050         (WebCore::StyleResolver::matchHostRules):
33051         A new method to find matched host rules when an element is given.
33052         This method invokes StyleScopeResolver::matchHostRules to find
33053         matched host rules.
33054         (WebCore::StyleResolver::matchScopedAuthorRules):
33055         Modified to invoke matchHostRules.
33056         (WebCore::StyleResolver::locateSharedStyle):
33057         Disable sibling style cache if the given element is a shadow host and
33058         any @host @-rules are applied to the element.
33059         * css/StyleResolver.h:
33060         (WebCore::StyleResolver::ensureScopeResolver):
33061         If no scopeResolver is created, create and return the instance.
33062         If created, just return the instance.
33063         (StyleResolver):
33064         * css/StyleRule.cpp:
33065         (WebCore::StyleRuleBase::reportMemoryUsage):
33066         (WebCore::StyleRuleBase::destroy):
33067         (WebCore::StyleRuleBase::copy):
33068         (WebCore::StyleRuleBase::createCSSOMWrapper):
33069         (WebCore::StyleRuleHost::StyleRuleHost):
33070         Implemented class StyleRuleHost. The class is almost the same as
33071         StyleRuleBlock except type.
33072         (WebCore):
33073         * css/StyleRule.h:
33074         (WebCore::StyleRuleBase::isHostRule):
33075         (StyleRuleHost):
33076         (WebCore::StyleRuleHost::create):
33077         (WebCore::StyleRuleHost::copy):
33078         (WebCore):
33079         * css/StyleScopeResolver.cpp:
33080         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
33081         A new method to create a new RuleSet for the given shadow root.
33082         (WebCore):
33083         (WebCore::StyleScopeResolver::atHostRuleSetFor):
33084         A new private inline method to obtain @host @-rules declared in
33085         the given shadow root.
33086         (WebCore::StyleScopeResolver::addHostRule):
33087         Added a new method to register @host @-rules with shadow roots.
33088         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
33089         A new method to find whether any @host @-rules are applied to
33090         the given host element.
33091         (WebCore::StyleScopeResolver::matchHostRules):
33092         A new method to find matched rules for the given host element.
33093         (WebCore::StyleScopeResolver::reportMemoryUsage):
33094         * css/StyleScopeResolver.h:
33095         (WebCore):
33096         (StyleScopeResolver):
33097         * css/StyleSheetContents.cpp:
33098         (WebCore::childRulesHaveFailedOrCanceledSubresources):
33099
33100 2012-10-26  Jaehun Lim  <ljaehun.lim@samsung.com>
33101
33102         [CMAKE] Add TextAutosizer.cpp in WebCore/CMakeLists.txt
33103         https://bugs.webkit.org/show_bug.cgi?id=100476
33104
33105         Reviewed by Kentaro Hara.
33106
33107         ENABLE_TEXT_AUTOSIZING option is added in CMAKE,
33108         but the source file for that feature is omitted.
33109
33110         No new tests. Covered by existing tests.
33111
33112         * CMakeLists.txt:
33113
33114 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33115
33116         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
33117         https://bugs.webkit.org/show_bug.cgi?id=99861
33118
33119         Reviewed by Ojan Vafai.
33120
33121         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
33122         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
33123         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
33124         or else we would ignore the next layout hint on the <col> or <colgroup>.
33125
33126         Tests: fast/table/col-span-change-relayout.html
33127                fast/table/simplified-layout-table.html
33128
33129         * rendering/AutoTableLayout.cpp:
33130         (WebCore::AutoTableLayout::recalcColumn):
33131         * rendering/RenderTable.cpp:
33132         (WebCore::RenderTable::layout):
33133         Simplified the code now that we only need to iterate over the sections.
33134
33135         * rendering/FixedTableLayout.cpp:
33136         (WebCore::FixedTableLayout::calcWidthArray):
33137         Removed call to computePreferredLogicalWidths.
33138
33139         * rendering/RenderTableCol.cpp:
33140         (WebCore::RenderTableCol::styleDidChange):
33141         (WebCore::RenderTableCol::updateFromElement):
33142         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
33143
33144         (WebCore::RenderTableCol::computePreferredLogicalWidths):
33145         (WebCore::RenderTableCol::layout):
33146         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
33147         never called when it was possible.
33148
33149         (WebCore::RenderTableCol::propagateLayoutCueToTable):
33150         New helper function that forward any layout cue to the containing table, this works around
33151         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
33152         invalidateContainerPreferredLogicalWidths.
33153
33154         * rendering/RenderTableCol.h:
33155         Made the function that we are not expected to be called private.
33156
33157 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
33158
33159         Unreviewed, rolling out r132601.
33160         http://trac.webkit.org/changeset/132601
33161         https://bugs.webkit.org/show_bug.cgi?id=100494
33162
33163         It broke the Qt build (Requested by Ossy on #webkit).
33164
33165         * PlatformEfl.cmake:
33166         * platform/graphics/GraphicsContext3D.h:
33167         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33168         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33169         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33170         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33171         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33172         (WebCore):
33173         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33174         (GraphicsContext3DPrivate):
33175         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33176         (WebCore::GraphicsContext3D::reshape):
33177         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33178         (WebCore::OffScreenRootWindow::get):
33179         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33180         (OffScreenRootWindow):
33181         (WebCore):
33182         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33183         (WebCore::GraphicsSurfacePrivate::createSurface):
33184         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33185         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33186         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33187         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33188         (GraphicsSurfacePrivate):
33189         (WebCore::resolveGLMethods):
33190
33191 2012-10-26  Yury Semikhatsky  <yurys@chromium.org>
33192
33193         Memory instrumentation: do not report memory occupied by v8::String
33194         https://bugs.webkit.org/show_bug.cgi?id=100487
33195
33196         Reviewed by Alexander Pavlov.
33197
33198         Pointers to v8::String are skipped when reporting memory usage of V8 bindings'
33199         string cache.
33200
33201         * bindings/v8/V8Binding.cpp:
33202         (WTF):
33203
33204 2012-10-26  Mihnea Ovidenie  <mihnea@adobe.com>
33205
33206         [CSSRegions] Add support for auto-height regions with region-breaks
33207         https://bugs.webkit.org/show_bug.cgi?id=99952
33208
33209         Reviewed by David Hyatt.
33210
33211         This patch takes region breaks into account when computing the height for auto logical height regions.
33212         When a region break is encountered before/after an element from within a flow thread and we are in the layout
33213         phase in which we lay out the flow threads in regions unconstrained, we use the region break to
33214         compute the region override logical content height if the region break fits inside an auto logical height region.
33215         A region break inside an auto logical height region determines the region override logical content height, taking
33216         min/max height into account.
33217
33218         Tests: fast/regions/autoheight-allregions-nobreaks.html
33219                fast/regions/autoheight-allregions.html
33220                fast/regions/autoheight-breakafteralways-maxheight.html
33221                fast/regions/autoheight-breakbeforealways.html
33222                fast/regions/autoheight-firstregion-breakalways.html
33223                fast/regions/autoheight-lastregion-overflowauto-breaksignored.html
33224                fast/regions/autoheight-lastregion-overflowauto.html
33225                fast/regions/autoheight-middleregion.html
33226                fast/regions/autoheight-secondregion-breakoutside.html
33227                fast/regions/autoheight-secondregion.html
33228                fast/regions/autoheight-singleregion-breakafteralways-maxheight.html
33229                fast/regions/autoheight-singleregion-breakafteralways.html
33230                fast/regions/autoheight-singleregion-breakaftermargin.html
33231                fast/regions/autoheight-singleregion-breakbeforealways-minheight.html
33232                fast/regions/autoheight-singleregion-breakbeforealways.html
33233                fast/regions/autoheight-singleregion-multiplebreaks.html
33234                fast/regions/autoheight-singleregion-overflowauto-breaksignored.html
33235                fast/regions/autoheight-singleregion-overflowauto.html
33236
33237         * rendering/RenderBlock.cpp: When encounter a region break before/after an element inside a flow thread,
33238         try to use it to determine the override logical content height for auto logical height regions.
33239         (WebCore::RenderBlock::applyBeforeBreak):
33240         (WebCore::RenderBlock::applyAfterBreak):
33241         * rendering/RenderFlowThread.cpp:
33242         (WebCore::RenderFlowThread::layout):
33243         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
33244         Simulate a region break at the end of the flow thread content.
33245         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
33246         (WebCore::RenderFlowThread::clearOverrideLogicalContentHeightInRegions):
33247         Helper method used to clear the overrideLogicalContentHeight for auto logical height regions.
33248         (WebCore::RenderFlowThread::addForcedRegionBreak):
33249         Extend the method to process region breaks. The method returns true if at least one auto logical height region
33250         has its override logical content height computed.        
33251         * rendering/RenderFlowThread.h:
33252         * rendering/RenderRegion.cpp: Make these methods work with auto logical height regions.
33253         (WebCore::RenderRegion::pageLogicalHeight):
33254         (WebCore::RenderRegion::logicalHeightOfAllFlowThreadContent):
33255
33256 2012-10-26  Regina Chung  <heejin.r.chung@samsung.com>
33257
33258         [EFL][WK2] Enable WebGL
33259         https://bugs.webkit.org/show_bug.cgi?id=97652
33260
33261         Reviewed by Gyuyoung Kim.
33262
33263         Implemented GraphicsSurface for EFL to enable WebGL for WebKit2.
33264         Depends on GLX since Evas doesn't provide the necessary functionality.
33265
33266         No new tests. Covered by existing tests.
33267
33268         * PlatformEfl.cmake:
33269         * platform/graphics/GraphicsContext3D.h:
33270         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
33271         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
33272         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
33273         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
33274         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
33275         (WebCore):
33276         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
33277         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
33278         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
33279         * platform/graphics/efl/GraphicsContext3DPrivate.h:
33280         (GraphicsContext3DPrivate):
33281         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
33282         (WebCore::GraphicsContext3D::reshape):
33283         * platform/graphics/surfaces/efl: Added.
33284         * platform/graphics/surfaces/efl/GraphicsSurfaceEfl.cpp: Added.
33285         (WebCore):
33286         (WebCore::OffScreenRootWindow::get):
33287         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33288         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33289         (WebCore::GraphicsSurfacePrivate::createSurface):
33290         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33291         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33292         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33293         (WebCore::GraphicsSurface::platformBeginPaint):
33294         (WebCore::GraphicsSurface::createReadOnlyImage):
33295         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
33296         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.h: Added.
33297         (WebCore):
33298         (OffScreenRootWindow):
33299         (WebCore::OffScreenRootWindow::OffScreenRootWindow):
33300         (GraphicsSurfacePrivate):
33301         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
33302         (WebCore::GraphicsSurfacePrivate::createPixmap):
33303         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
33304         (WebCore::GraphicsSurfacePrivate::display):
33305         (WebCore::GraphicsSurfacePrivate::glxPixmap):
33306         (WebCore::GraphicsSurfacePrivate::size):
33307         (WebCore::GraphicsSurfacePrivate::glContext):
33308         (WebCore::resolveGLMethods):
33309         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
33310         (WebCore):
33311         (WebCore::OffScreenRootWindow::OffScreenRootWindow::get):
33312         (WebCore::OffScreenRootWindow::~OffScreenRootWindow):
33313         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
33314         (WebCore::GraphicsSurfacePrivate::createSurface):
33315         (WebCore::GraphicsSurfacePrivate::makeCurrent):
33316         (WebCore::GraphicsSurfacePrivate::doneCurrent):
33317         (WebCore::GraphicsSurfacePrivate::swapBuffers):
33318
33319 2012-10-26  Thiago Marcos P. Santos  <thiago.santos@intel.com>
33320
33321         Add feature flags for CSS Device Adaptation
33322         https://bugs.webkit.org/show_bug.cgi?id=95960
33323
33324         Reviewed by Kenneth Rohde Christiansen.
33325
33326         * Configurations/FeatureDefines.xcconfig:
33327         * GNUmakefile.am:
33328         * GNUmakefile.features.am:
33329
33330 2012-10-26  Li Yin  <li.yin@intel.com>
33331
33332         fast/forms/file/input-file-write-files.html should cover correct setting value
33333         https://bugs.webkit.org/show_bug.cgi?id=100085
33334
33335         Reviewed by Kentaro Hara.
33336
33337         From Spec: http://dev.w3.org/html5/spec/single-page.html#dom-input-value-filename
33338         On setting, if the new value is the empty string, it must empty the list of selected
33339         files; otherwise, it must throw an InvalidStateError exception.
33340
33341         Test: fast/forms/file/input-file-value.html
33342
33343         * html/HTMLInputElement.cpp:
33344         (WebCore::HTMLInputElement::setValue):
33345         (WebCore):
33346         * html/HTMLInputElement.h:
33347         (HTMLInputElement):
33348         * html/HTMLInputElement.idl:
33349
33350 2012-10-26  Keishi Hattori  <keishi@webkit.org>
33351
33352         Refactor calendar picker to remove _x/_y from DaysTable
33353         https://bugs.webkit.org/show_bug.cgi?id=100460
33354
33355         Reviewed by Kent Tamura.
33356
33357         _x/_y properties keep the coordinates for the selection but when we add
33358         week and month picking capabilities, the selection can't be expressed as
33359         a set of coordinates. This change will remove it.
33360
33361         No new tests. Covered by calendar-picker-*.html tests.
33362
33363         * Resources/pagepopups/calendarPicker.js:
33364         (DaysTable): Removed _x/_y properties.
33365         (DaysTable.prototype._hasSelection): Changed to refer to the DOM to see if we have a selection.
33366         (DaysTable.prototype.navigateToMonthAndKeepSelectionPosition): Lookup the selection position.
33367         (DaysTable.prototype.selectDate): Deselect first so we don't have two selections.
33368         (DaysTable.prototype._selectRangeContainingNode): Selects date/week/month containing the given day node.
33369         (DaysTable.prototype._selectRangeAtPosition): Selects date/week/month at the given position.
33370         (DaysTable.prototype._firstNodeInSelectedRange): Returns first selected day node.
33371         (DaysTable.prototype._deselect): Deselects all selections.
33372         (DaysTable.prototype._handleMouseOver): Use _selectRangeContainingNode so we don't have many places handling the selection.
33373         (DaysTable.prototype._handleMouseOut): Use _deselect.
33374         (DaysTable.prototype._handleKey): Lookup the selection position.
33375         (DaysTable.prototype.updateSelection): Use _selectRangeAtPosition.
33376
33377 2012-10-26  Ningxin Hu  <ningxin.hu@intel.com>
33378
33379         FileReader abort case causes Chromium renderer crash
33380         https://bugs.webkit.org/show_bug.cgi?id=99142
33381
33382         Reviewed by Kentaro Hara.
33383
33384         Before dispatching load event, FileReader should check if it is
33385         in aborting.
33386
33387         Test: manually launch fast/files/file-reader-abort.html in Chromium
33388         browser and compare the result with
33389         fast/files/file-reader-abort-expected.txt.
33390
33391         * fileapi/FileReader.cpp:
33392         (WebCore::FileReader::didFinishLoading):
33393
33394 2012-10-26  Julien Chaffraix  <jchaffraix@webkit.org>
33395
33396         Generate less repaint calls during subtree detaching
33397         https://bugs.webkit.org/show_bug.cgi?id=99741
33398
33399         Reviewed by Eric Seidel.
33400
33401         Following bug 98336, detach is now a subtree top-down operation. Because we
33402         track visual overflow from our children during layout for most cases, we can
33403         generate a repaint only on the subtree root.
33404
33405         On http://dglazkov.github.com/performance-tests/redraw.html, this ups the FPS to
33406         26 fps from 22 fps on my MBP (+ 15%). On PerformanceTests/layout/subtree-detach.html,
33407         it decreases the time by 35%. This is due to being the best case and we now generate
33408         only one repaint per detach phase.
33409
33410         Covered by existing pixels tests (including but not limited to repaint ones).
33411
33412         * rendering/RenderObject.cpp:
33413         (WebCore::RenderObject::destroyAndCleanupAnonymousWrappers):
33414         Changed the function not to be recursive anymore to generate one painting for
33415         our root only. Added a FIXME about using our RenderLayer for repainting to avoid
33416         the cost of computing our absolute repaint rectangle.
33417
33418         * rendering/RenderObjectChildList.cpp:
33419         (WebCore::RenderObjectChildList::removeChildNode):
33420         Removed the logic for repainting in the general case. However we still force a repaint
33421         if we have a RenderLayer as we don't track their overflow in some cases (e.g. positioned
33422         objects). This check is conservative and could be narrowed down (e.g overflow RenderLayers
33423         are properly accounted for in our clipppedOverflowRectForRepaint).
33424
33425 2012-10-26  Kenichi Ishibashi  <bashi@chromium.org>
33426
33427         local(Helvetica) in src descriptor prevent fallback
33428         https://bugs.webkit.org/show_bug.cgi?id=100446
33429
33430         Reviewed by Dan Bernstein.
33431
33432         FontCache::getCachedFontData() has a mechanism that aliases a few pairs
33433         of font family names, so that if the family name specified in the font-family
33434         property is not available on the system, but the its alias is available,
33435         it will be used instead. This is appropriate for the font-family property,
33436         but not for font family names specified in the local() function of the src
33437         descriptor in a @font-face rule.
33438
33439         This patch disables the mechanism while checking src descriptor of @font-face.
33440
33441         No new tests. It's difficult to test the change because 'Helvetica' can
33442         be mapped any other font. For example, chromium DRT uses FontConfig to
33443         map Helvetica to Times New Roman. Other ports may map Helvetica to other
33444         fonts. We can't define the expected result.
33445
33446         * css/CSSFontFaceSource.cpp:
33447         (WebCore::CSSFontFaceSource::getFontData):
33448         Call fontCache()->getCachedFontData() with checkingAlternateName = true.
33449         This disables aliasing font family names in FontCache.
33450
33451 2012-10-26  Eugene Klyuchnikov  <eustas.bug@gmail.com>
33452
33453         Web Inspector: Doctype Audits panel code
33454         https://bugs.webkit.org/show_bug.cgi?id=100371
33455
33456         Reviewed by Alexander Pavlov.
33457
33458         This is a preparation step for ongoing refactoring.
33459         It is much easier to read doctyped code.
33460
33461         * inspector/front-end/AuditRules.js:
33462         (WebInspector.AuditRules.MinimizeDnsLookupsRule.prototype.doRun):
33463         Replaced "undefined" with "null"
33464         * inspector/front-end/AuditsPanel.js:
33465         (WebInspector.AuditCategory.prototype.callbackWrapper):
33466         Removed callback parameter indirection.        
33467         (WebInspector.AuditRuleResult.prototype.addFormatted):
33468         Converted private instance function to scoped function.
33469
33470 2012-10-26  János Badics  <jbadics@inf.u-szeged.hu>
33471
33472         [Qt]REGRESSION(r131428): cookies.db created on wrong place
33473         https://bugs.webkit.org/show_bug.cgi?id=99445
33474
33475         Reviewed by Simon Hausmann.
33476
33477         Added a slash to the path of cookies.db in CookieJarQt.cpp.
33478
33479         * platform/qt/CookieJarQt.cpp:
33480         (WebCore::SharedCookieJarQt::SharedCookieJarQt):
33481
33482 2012-10-26  Adam Barth  <abarth@webkit.org>
33483
33484         Unreviewed. This ASSERT is no longer correct (and fires on many tests.)
33485
33486         * bindings/v8/V8DOMWrapper.h:
33487         (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
33488
33489 2012-10-26  Kent Tamura  <tkent@chromium.org>
33490
33491         [Chromium-Win] Support shortTimeFormat
33492         https://bugs.webkit.org/show_bug.cgi?id=100471
33493
33494         Reviewed by Kentaro Hara.
33495
33496         No new tests. Covered by fast/forms/time-multiple-fields/ and
33497         WebKit/chromium/tests/LocaleWinTest.
33498
33499         * platform/text/LocaleWin.cpp:
33500         (WebCore::LocaleWin::shortTimeFormat):
33501         Gets a format by LOCALE_SSHORTTIME. If it fails, remove "<delimiter>ss"
33502         from the format by LOCALE_STIMEFORMAT.
33503         * platform/text/LocaleWin.h:
33504         (LocaleWin): Declare m_timeFormatWithoutSeconds.
33505
33506 2012-10-26  Adam Barth  <abarth@webkit.org>
33507
33508         Unreviewed. Update run-bindings-tests results after recent active DOM
33509         object changes.
33510
33511         * bindings/scripts/test/V8/V8TestInterface.cpp:
33512         (WebCore::V8TestInterface::constructorCallback):
33513         (WebCore::V8TestInterface::wrapSlow):
33514         * bindings/scripts/test/V8/V8TestInterface.h:
33515         (WebCore::V8TestInterface::wrap):
33516         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
33517         (WebCore::V8TestNamedConstructorConstructorCallback):
33518         (WebCore::V8TestNamedConstructor::wrapSlow):
33519         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
33520         (WebCore::V8TestNamedConstructor::wrap):
33521
33522 2012-10-26  MORITA Hajime  <morrita@google.com>
33523
33524         [V8] REGRESSION(132540) Assertion failure on V8DOMWrapper::setJSWrapperForDOMNode()
33525         https://bugs.webkit.org/show_bug.cgi?id=100462
33526
33527         Reviewed by Adam Barth.
33528
33529         Removed the no longer correct assertion statement.
33530
33531         No new tests. Covered by breaking tests.
33532
33533         * bindings/v8/V8DOMWrapper.cpp:
33534         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
33535
33536 2012-10-25  Adam Barth  <abarth@webkit.org>
33537
33538         [V8] WorkerContextExecutionProxy should use ScopedPersistent
33539         https://bugs.webkit.org/show_bug.cgi?id=100443
33540
33541         Reviewed by Eric Seidel.
33542
33543         This class was manually re-implementing the ScopedPersistent pattern.
33544
33545         * bindings/v8/WorkerContextExecutionProxy.cpp:
33546         (WebCore::WorkerContextExecutionProxy::dispose):
33547         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
33548         (WebCore::WorkerContextExecutionProxy::evaluate):
33549         * bindings/v8/WorkerContextExecutionProxy.h:
33550         (WebCore::WorkerContextExecutionProxy::context):
33551         (WorkerContextExecutionProxy):
33552
33553 2012-10-25  Peter Wang  <peter.wang@torchmobile.com.cn>
33554
33555         A mistake in WebCore::JavaScriptCallFrame::evaluate which will cause assert failed
33556         https://bugs.webkit.org/show_bug.cgi?id=100347
33557
33558         Reviewed by Mark Lam and Filip Pizlo.
33559
33560         In worker context, calling "JSDOMWindowBase::commonJSGlobalData" will cause assert,
33561         since there is "ASSERT(isMainThread())" in "JSDOMWindowBase::commonJSGlobalData".
33562
33563         No new test case, since no behaviour changed.
33564
33565         * bindings/js/JavaScriptCallFrame.cpp:
33566         (WebCore::JavaScriptCallFrame::evaluate):
33567
33568 2012-10-25  Adam Barth  <abarth@webkit.org>
33569
33570         [V8] We can merge the wrapper maps for DOM objects and active DOM objects
33571         https://bugs.webkit.org/show_bug.cgi?id=100432
33572
33573         Reviewed by Eric Seidel.
33574
33575         Now that we use the same object to visit both DOM objects and active
33576         DOM objects, there's no reason to keep them in separate hash maps.
33577
33578         * bindings/scripts/CodeGeneratorV8.pm:
33579         (GetDomMapName):
33580         * bindings/v8/DOMDataStore.cpp:
33581         (WebCore::DOMDataStore::DOMDataStore):
33582         (WebCore::DOMDataStore::~DOMDataStore):
33583         (WebCore::DOMDataStore::reportMemoryUsage):
33584         * bindings/v8/DOMDataStore.h:
33585         (DOMDataStore):
33586         * bindings/v8/V8DOMMap.cpp:
33587         * bindings/v8/V8DOMMap.h:
33588         (NodeWrapperVisitor):
33589         (WebCore):
33590         * bindings/v8/V8DOMWrapper.h:
33591         (V8DOMWrapper):
33592         * bindings/v8/V8GCController.cpp:
33593         (WebCore::V8GCController::majorGCPrologue):
33594         * bindings/v8/custom/V8WebSocketCustom.cpp:
33595         (WebCore::V8WebSocket::constructorCallback):
33596         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
33597         (WebCore::V8XMLHttpRequest::constructorCallback):
33598
33599 2012-10-25  Charles Wei  <charles.wei@torchmobile.com.cn>
33600
33601         [BlackBerry] User Challenged again after browser restart for HTTP/FTP sites already successfully authenticated.
33602         https://bugs.webkit.org/show_bug.cgi?id=100448
33603
33604         Reviewed by George Staikos.
33605
33606         Internally reviewed by Joe Mason.
33607
33608         We didn't check the persistent Credential Storage for Credentials when challenged by the server.
33609
33610         Manual Test: login to ftp://localhost on BlackBerry device, and restart the browser to login again.
33611
33612         * platform/network/blackberry/NetworkJob.cpp:
33613         (WebCore::NetworkJob::sendRequestWithCredentials):
33614
33615 2012-10-25  Joshua Bell  <jsbell@chromium.org>
33616
33617         IndexedDB: Add histogram statistics for backing store errors
33618         https://bugs.webkit.org/show_bug.cgi?id=98465
33619
33620         Reviewed by Adam Barth.
33621
33622         Define a macro for consistent asserting (during development), logging, and recording
33623         internal backing store errors via histograms. Define specific histogram values to
33624         track issues with opening backing stores to gather stats on corruption.
33625
33626         No new tests - just the stats, ma'am, just the stats.
33627
33628         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
33629         (WebCore):
33630         (WebCore::setUpMetadata):
33631         (WebCore::IDBLevelDBBackingStore::open):
33632         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
33633         (WebCore::IDBLevelDBBackingStore::createIDBDatabaseMetaData):
33634         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseIntVersion):
33635         (WebCore::IDBLevelDBBackingStore::updateIDBDatabaseMetaData):
33636         (WebCore::deleteRange):
33637         (WebCore::IDBLevelDBBackingStore::getObjectStores):
33638         (WebCore::IDBLevelDBBackingStore::createObjectStore):
33639         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
33640         (WebCore::IDBLevelDBBackingStore::maybeUpdateKeyGeneratorCurrentNumber):
33641         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
33642         (WebCore::IDBLevelDBBackingStore::getIndexes):
33643         (WebCore::IDBLevelDBBackingStore::createIndex):
33644         (WebCore::IDBLevelDBBackingStore::deleteIndex):
33645         (WebCore::IDBLevelDBBackingStore::findKeyInIndex):
33646
33647 2012-10-25  Adam Barth  <abarth@webkit.org>
33648
33649         [V8] We can merge ActiveDOMObjectPrologueVisitor with ObjectVisitor
33650         https://bugs.webkit.org/show_bug.cgi?id=100430
33651
33652         Reviewed by Eric Seidel.
33653
33654         There's no reason for these visitors to be separate objects anymore.
33655
33656         * bindings/v8/V8GCController.cpp:
33657         (WebCore::ObjectVisitor::ObjectVisitor):
33658         (WebCore::ObjectVisitor::visitDOMWrapper):
33659         (WebCore::V8GCController::majorGCPrologue):
33660
33661 2012-10-25  Tony Chang  <tony@chromium.org>
33662
33663         Remove unused static methods from DOMTimer.h
33664         https://bugs.webkit.org/show_bug.cgi?id=100427
33665
33666         Reviewed by Kenneth Russell.
33667
33668         Since these values got moved into Settings, these methods are no longer called.
33669
33670         No new tests, removing dead code.
33671
33672         * page/DOMTimer.h:
33673         (DOMTimer): Remove unused getters.
33674
33675 2012-10-25  Leo Yang  <leoyang@rim.com>
33676
33677         [BlackBerry] Infinite redirect loop is not displayed to user
33678         https://bugs.webkit.org/show_bug.cgi?id=100420
33679
33680         Reviewed by George Staikos.
33681
33682         CNN.com is redirecting us infinitely with 302 http code and response body. We catch
33683         it my setting our extended error code as we defined. But we were not trying to notify
33684         error because we have received body. This was wrong. For extended http status code
33685         which is less than 0 we should display our own error page regardless there was data
33686         received from the server or not.
33687
33688         Tested by manually loading CNN.com.
33689
33690         * platform/network/blackberry/NetworkJob.cpp:
33691         (WebCore::NetworkJob::shouldNotifyClientFailed):
33692
33693 2012-10-25  Nico Weber  <thakis@chromium.org>
33694
33695         Flip ImageOrientation coordinate system from lefthanded to righthanded
33696         https://bugs.webkit.org/show_bug.cgi?id=100414
33697
33698         Reviewed by Eric Seidel.
33699
33700         platform/graphics, noteably GraphicsContext uses a right-handed
33701         coordinate system (origin in the top left corner, x growing to the
33702         right, y to the bottom).  ImageOrientation was an outlier from
33703         and used a left-handed coordinate system.  This patch makes
33704         ImageOrientation match the rest of platform/graphics.
33705
33706         This is a pure refactoring and has no observable effects.
33707
33708         * platform/chromium/DragImageChromiumSkia.cpp:
33709         (WebCore::createDragImageFromImage):
33710         * platform/graphics/ImageOrientation.cpp:
33711         (WebCore::ImageOrientation::transformFromDefault):
33712         * platform/graphics/cg/GraphicsContextCG.cpp:
33713         (WebCore::GraphicsContext::drawNativeImage):
33714         * platform/graphics/skia/ImageSkia.cpp:
33715         (WebCore::BitmapImage::draw):
33716         * platform/mac/DragImageMac.mm:
33717         (WebCore::createDragImageFromImage):
33718         * rendering/RenderObject.cpp:
33719         (WebCore::RenderObject::shouldRespectImageOrientation):
33720
33721 2012-10-25  Keishi Hattori  <keishi@webkit.org>
33722
33723         Hide popup while transitioning from the suggestion picker to the calendar picker
33724         https://bugs.webkit.org/show_bug.cgi?id=99537
33725
33726         Reviewed by Kent Tamura.
33727
33728         Right now you can see a squished calendar picker while transitioning
33729         from suggestion picker from calendar picker. This change will hide the
33730         popup before opening the calendar picker.
33731
33732         No new tests.
33733
33734         * Resources/pagepopups/pickerCommon.js: Hiding the window will also trigger a resize event so I created a separate event, didOpenPicker.
33735         (hideWindow): Resize the window to 1x1 because we can't resize to 0x0.
33736         * Resources/pagepopups/suggestionPicker.js:
33737         (SuggestionPicker.prototype.selectEntry): Hide the window first and then open the calendar picker.
33738
33739 2012-10-25  Anders Carlsson  <andersca@apple.com>
33740
33741         Fix build.
33742
33743         * page/mac/EventHandlerMac.mm:
33744         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33745
33746 2012-10-25  Anders Carlsson  <andersca@apple.com>
33747
33748         Remove feed and feeds URL scheme workarounds
33749         https://bugs.webkit.org/show_bug.cgi?id=100442
33750
33751         Reviewed by Dan Bernstein.
33752
33753         * dom/DocumentEventQueue.cpp:
33754         (WebCore::DocumentEventQueue::enqueueOrDispatchScrollEvent):
33755         * page/mac/EventHandlerMac.mm:
33756         (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
33757
33758 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
33759
33760         Unreviewed, rolling out r132514.
33761         http://trac.webkit.org/changeset/132514
33762         https://bugs.webkit.org/show_bug.cgi?id=100440
33763
33764         "Broke chromium content_browsertests AccessibilityAriaMenu
33765         AccessibilityInputRange AccessibilityListMarkers" (Requested
33766         by scheib on #webkit).
33767
33768         * accessibility/AXObjectCache.cpp:
33769         (WebCore::AXObjectCache::getOrCreate):
33770         (WebCore::AXObjectCache::contentChanged):
33771         (WebCore::AXObjectCache::childrenChanged):
33772         (WebCore::AXObjectCache::handleAriaRoleChanged):
33773         * accessibility/AXObjectCache.h:
33774         (AXObjectCache):
33775         (WebCore::AXObjectCache::contentChanged):
33776         * accessibility/AccessibilityObject.cpp:
33777         (WebCore::AccessibilityObject::AccessibilityObject):
33778         * accessibility/AccessibilityObject.h:
33779         (WebCore::AccessibilityObject::contentChanged):
33780         (AccessibilityObject):
33781         * accessibility/AccessibilityRenderObject.cpp:
33782         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
33783         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
33784         (WebCore::AccessibilityRenderObject::contentChanged):
33785         * accessibility/AccessibilityRenderObject.h:
33786         (AccessibilityRenderObject):
33787         * accessibility/AccessibilityScrollView.cpp:
33788         (WebCore::AccessibilityScrollView::isAttachment):
33789         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
33790         (WebCore::AccessibilityScrollView::updateScrollbars):
33791         (WebCore::AccessibilityScrollView::webAreaObject):
33792         (WebCore::AccessibilityScrollView::elementRect):
33793         (WebCore::AccessibilityScrollView::documentFrameView):
33794         (WebCore::AccessibilityScrollView::parentObject):
33795         (WebCore::AccessibilityScrollView::parentObjectIfExists):
33796         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
33797         (WebCore::AccessibilityScrollView::scrollTo):
33798         * accessibility/AccessibilityScrollView.h:
33799         (WebCore::AccessibilityScrollView::scrollView):
33800         (AccessibilityScrollView):
33801         * accessibility/AccessibilityTable.cpp:
33802         (WebCore::AccessibilityTable::isDataTable):
33803         * accessibility/chromium/AXObjectCacheChromium.cpp:
33804         (WebCore::AXObjectCache::postPlatformNotification):
33805         * dom/Element.cpp:
33806         (WebCore::Element::attributeChanged):
33807         * rendering/RenderBlock.cpp:
33808         (WebCore::RenderBlock::deleteLineBoxTree):
33809         (WebCore::RenderBlock::createAndAppendRootInlineBox):
33810         * rendering/RenderObject.cpp:
33811         (WebCore::RenderObject::styleWillChange):
33812         * rendering/RenderText.cpp:
33813         (WebCore::RenderText::setText):
33814
33815 2012-10-25  Dan Bernstein  <mitz@apple.com>
33816
33817         <rdar://problem/12544626> [cg] RenderBlock::selectionGaps() is extremely slow when there are many floats
33818         https://bugs.webkit.org/show_bug.cgi?id=100413
33819
33820         Reviewed by Anders Carlsson.
33821
33822         RenderBlock::selectionGaps() calls GraphicsContext::clipOut(const IntRect&) for each float.
33823         Sped up the Core Graphics implementation of this function considerably by removing an
33824         unnecessary call to CGContextGetClipBoundingBox.
33825
33826         * platform/graphics/cg/GraphicsContextCG.cpp:
33827         (WebCore::GraphicsContext::clipOut): Changed to use CGRectInfinite rather than the bounding
33828         box of the current clip.
33829
33830 2012-10-25  Tim Horton  <timothy_horton@apple.com>
33831
33832         REGRESSION (132422): Tiles don't move when the Find dialog causes programmatic scrolls
33833         https://bugs.webkit.org/show_bug.cgi?id=100433
33834         <rdar://problem/12575582>
33835
33836         Reviewed by Simon Fraser.
33837
33838         Actually update GraphicsLayer positions from updateMainFrameScrollPosition if
33839         we're doing a programmatic scroll; otherwise programmatic scrolls while scrolling
33840         on the main thread will short-circuit and end up only updating the GraphicsLayer's
33841         notion of its current position, but never synchronizing that to the layer itself.
33842
33843         No new tests, as this is currently untestable.
33844
33845         * page/scrolling/ScrollingCoordinator.cpp:
33846         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
33847
33848 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
33849
33850         Tiled layers are missing content on zooming
33851         https://bugs.webkit.org/show_bug.cgi?id=100422
33852
33853         Reviewed by Beth Dakin.
33854
33855         Tiled layers using TileCaches were missing content after
33856         zooming. TileCache was confused in the presence of scaling;
33857         it unapplies the scale on the layer above the tiles (so the tiles
33858         live in screen space), and computed the tile coverage rect
33859         in these tile coordinates. This worked for the page tile cache,
33860         because its visibleRect was sent in pre-scaled. However, for
33861         tiled layer TileCaches this was wrong.
33862         
33863         Fix by scaling the tile coverage rect by m_scale before
33864         using it to compute which tiles to throw away and bring in.
33865         
33866         To fix the problem of the visibleRect being pre-scaled
33867         for the page tile cache, remove the setting of the visibleRect
33868         in RenderLayerCompositor::frameViewDidScroll(), and rely on 
33869         GraphicsLayerCA::updateVisibleRect() which computes the
33870         visible rect in the correct, layer coordinates.
33871
33872         Test: compositing/tiling/tile-cache-zoomed.html
33873
33874         * platform/graphics/ca/GraphicsLayerCA.cpp:
33875         (WebCore::GraphicsLayerCA::updateVisibleRect): Call setVisibleRect()
33876         for all tile cache layers, not just tiled layer ones, but only do
33877         the visible rect adjustment for those that are not the page tile cache.
33878         * platform/graphics/ca/mac/TileCache.mm:
33879         (WebCore::TileCache::revalidateTiles): Use a coverageRectInTileCoords rect,
33880         which is scaled to be in the same coordinate space as the tile grid.
33881         * rendering/RenderLayerCompositor.cpp:
33882         (WebCore::RenderLayerCompositor::frameViewDidScroll): Remove the code
33883         that sets the setVisibleRect() on the TiledBacking.
33884
33885 2012-10-25  Adam Barth  <abarth@webkit.org>
33886
33887         [V8] ActiveDOMNodes no longer require a separate wrapper map
33888         https://bugs.webkit.org/show_bug.cgi?id=100352
33889
33890         Reviewed by Eric Seidel.
33891
33892         There is no longer any reason to keep a separate DOM wrapper map for
33893         active DOM nodes. We can simply store them in the normal DOM node
33894         wrapper map (which is more efficient because it doesn't use a HashMap).
33895
33896         * bindings/scripts/CodeGeneratorV8.pm:
33897         (GetDomMapName):
33898         * bindings/v8/DOMDataStore.cpp:
33899         (WebCore::DOMDataStore::DOMDataStore):
33900         (WebCore::DOMDataStore::~DOMDataStore):
33901         (WebCore::DOMDataStore::reportMemoryUsage):
33902         * bindings/v8/DOMDataStore.h:
33903         (DOMDataStore):
33904         * bindings/v8/IntrusiveDOMWrapperMap.h:
33905         * bindings/v8/V8DOMMap.cpp:
33906         * bindings/v8/V8DOMMap.h:
33907         (WebCore):
33908         * bindings/v8/V8DOMWrapper.cpp:
33909         * bindings/v8/V8DOMWrapper.h:
33910         (V8DOMWrapper):
33911         (WebCore::V8DOMWrapper::getCachedWrapper):
33912
33913 2012-10-25  Tony Chang  <tony@chromium.org>
33914
33915         Unreviewed, fix the build on Mac.
33916
33917         Putting the getter in the Settings.h caused the global variable to be inlined and needing it to be exported.
33918         Instead, put the implementation in the cpp file.
33919
33920         * page/Settings.cpp:
33921         (WebCore::Settings::defaultMinDOMTimerInterval):
33922         (WebCore):
33923         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
33924         * page/Settings.h:
33925         (Settings):
33926
33927 2012-10-25  Tony Chang  <tony@chromium.org>
33928
33929         Move default DOM Timer values into Settings
33930         https://bugs.webkit.org/show_bug.cgi?id=100405
33931
33932         Reviewed by Kenneth Russell.
33933
33934         Move the global values for defaultMinDOMTimerInterval and defaultDOMTimerAlignmentInterval into
33935         the Settings object. This is more consistent with other global settings and allows us to remove
33936         the setters on the DOMTimer object.
33937
33938         No new tests, this is a refactor.
33939
33940         * page/DOMTimer.cpp: Remove globals.
33941         * page/DOMTimer.h:
33942         (WebCore::DOMTimer::defaultMinTimerInterval): Call through to Settings
33943         (WebCore::DOMTimer::defaultTimerAlignmentInterval): Call through to Settings.
33944         (DOMTimer): Remove setters.
33945         * page/Settings.cpp:
33946         (WebCore::Settings::setDefaultMinDOMTimerInterval): Use a global in Settings.
33947         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval): Use a global in Settings.
33948         * page/Settings.h:
33949         (WebCore::Settings::defaultMinDOMTimerInterval): Inline the getter.
33950         (WebCore::Settings::defaultDOMTimerAlignmentInterval): Inline the getter.
33951         (Settings): Add globals.
33952
33953 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
33954
33955         Report the tile coverage rect in layer coords, and add some tests for tiled backing and zooming
33956         https://bugs.webkit.org/show_bug.cgi?id=100416
33957
33958         Reviewed by Beth Dakin.
33959
33960         The tileCoverageRect is computed in "tile" coordinates, which don't match
33961         the visibleRect coordinates. It's more useful when testing to see the
33962         tile coverage relative to the view bounds, so unapply the scale whem
33963         reporting tile coverage in tests.
33964
33965         Tests: platform/mac/tiled-drawing/tiled-drawing-zoom-scrolled.html
33966                platform/mac/tiled-drawing/tiled-drawing-zoom.html
33967
33968         * platform/graphics/ca/mac/TileCache.h:
33969         * platform/graphics/ca/mac/TileCache.mm:
33970         (WebCore::TileCache::tileCoverageRect):
33971
33972 2012-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
33973
33974         Unreviewed, rolling out r132269.
33975         http://trac.webkit.org/changeset/132269
33976         https://bugs.webkit.org/show_bug.cgi?id=100412
33977
33978         "Speculative rollout of r132269 in hopes of fixing a
33979         mysterious recalcStyle crasher" (Requested by eseidel on
33980         #webkit).
33981
33982         * rendering/RenderBlock.cpp:
33983         (WebCore::RenderBlock::updateFirstLetter):
33984         * rendering/RenderListBox.h:
33985         * rendering/RenderObjectChildList.cpp:
33986         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
33987
33988 2012-10-25  Stephen White  <senorblanco@chromium.org>
33989
33990         Change ReferenceFilterOperations to reference (own) the data passed to
33991         them.
33992         https://bugs.webkit.org/show_bug.cgi?id=97715
33993
33994         Reviewed by Nate Chapin.
33995
33996         Covered by css3/filters/reference-filter-update-after-remove.html
33997
33998         * css/CachedSVGDocumentReference.h: Added.
33999         (CachedSVGDocumentReference):
34000         New class which holds a CachedResourceHandle<CachedSVGDocument>, but
34001         can be placed in ReferenceFilterOperation's Data.  It also calls
34002         addClient() / removeClient(), in order to keep the CachedSVGDocument
34003         alive until the FilterEffectRenderer can get it.
34004         (WebCore::CachedSVGDocumentReference::CachedSVGDocumentReference):
34005         (WebCore::CachedSVGDocumentReference::~CachedSVGDocumentReference):
34006         (WebCore::CachedSVGDocumentReference::document):
34007         Accessor for the underlying document.
34008         * css/StyleResolver.cpp:
34009         (WebCore::StyleResolver::loadPendingSVGDocuments):
34010         Wrap the CachedSVGDocument handle in a CachedSVGDocumentReference, and
34011         transfer ownership to the ReferenceFilterOperation.
34012         (WebCore::StyleResolver::createFilterOperations):
34013         Same as above.
34014         * platform/graphics/filters/FilterOperation.h:
34015         (Data):
34016         New base class for generic data which can be deleted polymorphically.
34017         (WebCore::FilterOperation::ReferenceFilterOperation::data):
34018         (WebCore::FilterOperation::ReferenceFilterOperation::setData):
34019         Use the above-mentioned Data class, instead of a void *.
34020         (WebCore::FilterOperation::ReferenceFilterOperation::ReferenceFilterOperation):
34021         Don't initialize data to null; OwnPtr will do that for us.
34022         * rendering/FilterEffectRenderer.cpp:
34023         (WebCore::FilterEffectRenderer::buildReferenceFilter):
34024         Extract the cached SVG document from the reference data.
34025         * rendering/RenderLayerFilterInfo.cpp:
34026         (WebCore::RenderLayerFilterInfo::updateReferenceFilterClients):
34027         Extract the cached SVG document from the reference data.
34028
34029 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34030
34031         Incorrect tile size in the slow scrolling case
34032         https://bugs.webkit.org/show_bug.cgi?id=100411
34033
34034         Reviewed by Beth Dakin.
34035
34036         If we're in slow scrolling mode, we don't want to inflate the
34037         coverage rect based on scrollability. This ensures that the few
34038         big tiles we create have the correct size.
34039
34040         * platform/graphics/ca/mac/TileCache.mm:
34041         (WebCore::TileCache::computeTileCoverageRect):
34042
34043 2012-10-25  Nico Weber  <thakis@chromium.org>
34044
34045         Move ImageOrientation transform back in CG space (lower-left origin), adapt the skia code to work with that, turn on feature for chromium
34046         https://bugs.webkit.org/show_bug.cgi?id=100401
34047
34048         Reviewed by Eric Seidel.
34049
34050         This is an alternative fix for the regression caused by r132384 / bug
34051         100179. The bug exists because different pieces of code didn't agree
34052         which space the transformation returned by ImageOrientation was in.
34053
34054         r132384 moved it from CG coordinates to skia coordinates, but didn't
34055         do it completetely. This CL reverts this part of r132384 so that the
34056         transformation is in CG coordinates again, and adapts the skia code to
34057         work in that space.
34058
34059         Alternatively, https://bugs.webkit.org/show_bug.cgi?id=100319 woudl
34060         make the cg code work with the transform in skia coordinates.
34061
34062         Covered by fast/images/exif-orientation.html
34063
34064         * platform/chromium/DragImageChromiumSkia.cpp:
34065         (WebCore::createDragImageFromImage):
34066         * platform/graphics/ImageOrientation.cpp:
34067         (WebCore::ImageOrientation::transformFromDefault):
34068         * platform/graphics/ImageOrientation.h:
34069         (WebCore):
34070         (WebCore::ImageOrientation::usesWidthAsHeight):
34071         (WebCore::ImageOrientation::fromEXIFValue):
34072         (ImageOrientation):
34073         * platform/graphics/cg/GraphicsContextCG.cpp:
34074         (WebCore::GraphicsContext::drawNativeImage):
34075         * platform/graphics/skia/ImageSkia.cpp:
34076         (WebCore::BitmapImage::draw):
34077         * platform/mac/DragImageMac.mm:
34078         (WebCore::createDragImageFromImage):
34079         * rendering/RenderObject.cpp:
34080         (WebCore::RenderObject::shouldRespectImageOrientation):
34081
34082 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34083
34084         Log the tile cache tile size in test output
34085         https://bugs.webkit.org/show_bug.cgi?id=100409
34086
34087         Reviewed by Beth Dakin.
34088
34089         When dumping tile cache information in tests, also dump the tile size.
34090
34091         * platform/graphics/TiledBacking.h:
34092         * platform/graphics/ca/GraphicsLayerCA.cpp:
34093         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
34094         * platform/graphics/ca/mac/TileCache.h:
34095
34096 2012-10-25  Arnaud Renevier  <a.renevier@sisa.samsung.com>
34097
34098         do not multiply/demultiply colors when alpha is 255
34099         https://bugs.webkit.org/show_bug.cgi?id=89246
34100
34101         Reviewed by Kenneth Rohde Christiansen.
34102
34103         Do not use colorFromPremultipliedARGB in getImageData nor
34104         premultipliedARGBFromColor in putByteArray. Avoiding object creation
34105         and function call make canvas.getImageData about 10% faster and
34106         canvas.putImageData about 30% faster.
34107
34108         Also, we avoid multiplication/demultiplication computation when alpha
34109         is 255. Result is the same, but when there is no transparency,
34110         canvas.getImageData is about 4x faster, and canvas.putImageData is
34111         about 2x faster.
34112
34113         No new tests. No change in behavior.
34114
34115         * platform/graphics/cairo/ImageBufferCairo.cpp:
34116         (WebCore::getImageData):
34117         (WebCore::ImageBuffer::putByteArray):
34118
34119 2012-10-25  Nate Chapin  <japhet@chromium.org>
34120
34121         Add a main resource type to the memory cache
34122         https://bugs.webkit.org/show_bug.cgi?id=99864
34123
34124         Reviewed by Adam Barth.
34125
34126         No new tests, no functionality change.
34127
34128         * inspector/InspectorPageAgent.cpp:
34129         (WebCore::hasTextContent):
34130         (WebCore::InspectorPageAgent::cachedResourceType):
34131         * loader/SubresourceLoader.cpp:
34132         (WebCore::SubresourceLoader::willSendRequest):
34133         (WebCore::SubresourceLoader::didReceiveResponse):
34134         (WebCore::SubresourceLoader::didFail):
34135         * loader/cache/CachedRawResource.cpp:
34136         (WebCore::CachedRawResource::CachedRawResource):
34137         (WebCore::CachedRawResource::addAdditionalRequestHeaders):
34138         (WebCore):
34139         (WebCore::CachedRawResource::setShouldBufferData):
34140         (WebCore::CachedRawResource::loader):
34141         (WebCore::CachedRawResource::clear):
34142         * loader/cache/CachedRawResource.h:
34143         (WebCore):
34144         (CachedRawResource):
34145         * loader/cache/CachedResource.cpp:
34146         (WebCore::defaultPriorityForResourceType):
34147         (WebCore::cachedResourceTypeToTargetType):
34148         (WebCore::CachedResource::updateResourceRequest):
34149         (WebCore):
34150         * loader/cache/CachedResource.h:
34151         (WebCore::CachedResource::setResourceError):
34152         (WebCore::CachedResource::resourceError):
34153         (CachedResource):
34154         (WebCore::CachedResource::ignoreForRequestCount):
34155         * loader/cache/CachedResourceLoader.cpp:
34156         (WebCore::createResource):
34157         (WebCore::CachedResourceLoader::requestRawResource):
34158         (WebCore::CachedResourceLoader::checkInsecureContent):
34159         (WebCore::CachedResourceLoader::canRequest):
34160         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
34161         * loader/cache/CachedResourceLoader.h:
34162         (CachedResourceLoader):
34163         * platform/network/ResourceLoadPriority.h:
34164         * platform/network/cf/ResourceRequestCFNet.h:
34165         (WebCore::toResourceLoadPriority):
34166         (WebCore::toHTTPPipeliningPriority):
34167
34168 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34169
34170         [V8] Add histograms to measure V8 work done during window close and navigation
34171         https://bugs.webkit.org/show_bug.cgi?id=100358
34172
34173         Reviewed by Adam Barth.
34174
34175         * bindings/v8/ScriptController.cpp:
34176         (WebCore::ScriptController::clearForClose):
34177         (WebCore::ScriptController::clearWindowShell):
34178
34179 2012-10-25  Antti Koivisto  <antti@apple.com>
34180
34181         Avoid unnecessary style recalcs on id attribute mutation.
34182         https://bugs.webkit.org/show_bug.cgi?id=100395
34183
34184         Reviewed by Andreas Kling.
34185
34186         There is no need to invalidate element style on id attribute change if neither the old nor the new id were 
34187         mentioned in any stylesheet. This is similar to the optimization we already have for class attributes.
34188         
34189         Recalculating element style is expensive. It seems id attribute mutation is often used in scripts for purposes other than styling. 
34190
34191         * css/StyleResolver.cpp:
34192         (WebCore::StyleResolver::hasSelectorForId):
34193         (WebCore):
34194         * css/StyleResolver.h:
34195         * dom/Element.cpp:
34196         (WebCore::makeIdForStyleResolution):
34197         (WebCore):
34198         (WebCore::Element::attributeChanged):
34199
34200 2012-10-25  Dominic Mazzoni  <dmazzoni@google.com>
34201
34202         AX: Notification should be sent when accessibilityIsIgnored changes
34203         https://bugs.webkit.org/show_bug.cgi?id=99547
34204
34205         Reviewed by Chris Fleizach.
34206
34207         Adds a new flag in AccessibilityObject that keeps track of the most recent
34208         value of accessibilityIsIgnored(). After certain events such as an ARIA
34209         attribute change or content change, checks the new value of
34210         accessibilityIsIgnored() and posts a "children changed" notification on the
34211         parent node if it changed, making sure the parent recomputes its vector of
34212         (unignored) children.
34213
34214         Also moves handling of attribute changes to AXObjectCache, and sends
34215         notifications for some attribute changes that were previously silent. On
34216         Chromium, all changes to an accessibility object's attributes should
34217         result in some notification.
34218
34219         Some tests would have broken because an AccessibilityScrollView was created
34220         and holding a reference to a ScrollView for an iframe after it was deleted,
34221         so this change switches AccessibilityScrollView to hold a weak reference
34222         to ScrollView instead.
34223
34224         Tests: platform/chromium/accessibility/is-ignored-change-sends-notification.html
34225                platform/chromium/accessibility/other-aria-attribute-change-sends-notification.html
34226                platform/chromium/accessibility/text-change-notification.html
34227
34228         * accessibility/AXObjectCache.cpp:
34229         (WebCore::AXObjectCache::focusedUIElementForPage):
34230         (WebCore::AXObjectCache::getOrCreate):
34231         (WebCore::AXObjectCache::textChanged):
34232         (WebCore):
34233         (WebCore::AXObjectCache::childrenChanged):
34234         (WebCore::AXObjectCache::handleAriaRoleChanged):
34235         (WebCore::AXObjectCache::handleAttributeChanged):
34236         (WebCore::AXObjectCache::labelChanged):
34237         (WebCore::AXObjectCache::recomputeIsIgnored):
34238         * accessibility/AXObjectCache.h:
34239         (AXObjectCache):
34240         (WebCore::AXObjectCache::childrenChanged):
34241         (WebCore::AXObjectCache::textChanged):
34242         (WebCore::AXObjectCache::handleAttributeChanged):
34243         (WebCore::AXObjectCache::recomputeIsIgnored):
34244         * accessibility/AccessibilityNodeObject.cpp:
34245         (WebCore::AccessibilityNodeObject::insertChild):
34246         * accessibility/AccessibilityObject.cpp:
34247         (WebCore::AccessibilityObject::AccessibilityObject):
34248         (WebCore::AccessibilityObject::cachedIsIgnoredValue):
34249         (WebCore):
34250         (WebCore::AccessibilityObject::setCachedIsIgnoredValue):
34251         (WebCore::AccessibilityObject::notifyIfIgnoredValueChanged):
34252         * accessibility/AccessibilityObject.h:
34253         (WebCore::AccessibilityObject::textChanged):
34254         (AccessibilityObject):
34255         * accessibility/AccessibilityRenderObject.cpp:
34256         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
34257         (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
34258         (WebCore::AccessibilityRenderObject::textChanged):
34259         (WebCore::AccessibilityRenderObject::addHiddenChildren):
34260         (WebCore::AccessibilityRenderObject::addChildren):
34261         * accessibility/AccessibilityRenderObject.h:
34262         (AccessibilityRenderObject):
34263         * accessibility/AccessibilityScrollView.cpp:
34264         (WebCore::AccessibilityScrollView::~AccessibilityScrollView):
34265         (WebCore):
34266         (WebCore::AccessibilityScrollView::detach):
34267         (WebCore::AccessibilityScrollView::isAttachment):
34268         (WebCore::AccessibilityScrollView::widgetForAttachmentView):
34269         (WebCore::AccessibilityScrollView::updateScrollbars):
34270         (WebCore::AccessibilityScrollView::webAreaObject):
34271         (WebCore::AccessibilityScrollView::elementRect):
34272         (WebCore::AccessibilityScrollView::documentFrameView):
34273         (WebCore::AccessibilityScrollView::parentObject):
34274         (WebCore::AccessibilityScrollView::parentObjectIfExists):
34275         (WebCore::AccessibilityScrollView::getScrollableAreaIfScrollable):
34276         (WebCore::AccessibilityScrollView::scrollTo):
34277         * accessibility/AccessibilityScrollView.h:
34278         (WebCore::AccessibilityScrollView::scrollView):
34279         (AccessibilityScrollView):
34280         * accessibility/AccessibilityTable.cpp:
34281         (WebCore::AccessibilityTable::isDataTable):
34282         * accessibility/chromium/AXObjectCacheChromium.cpp:
34283         (WebCore::AXObjectCache::postPlatformNotification):
34284         * dom/Element.cpp:
34285         (WebCore::Element::attributeChanged):
34286         * rendering/RenderBlock.cpp:
34287         (WebCore::RenderBlock::deleteLineBoxTree):
34288         (WebCore::RenderBlock::createAndAppendRootInlineBox):
34289         * rendering/RenderObject.cpp:
34290         (WebCore::RenderObject::styleWillChange):
34291         * rendering/RenderText.cpp:
34292         (WebCore::RenderText::setText):
34293
34294 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34295
34296         Conditionalize XHR timeout support
34297         https://bugs.webkit.org/show_bug.cgi?id=100356
34298
34299         Reviewed by Adam Barth.
34300
34301         Adding feature for XHR_TIMEOUT to disable it on ports that don't have
34302         network backend support for setTimeoutInterval.
34303
34304         No new tests, covered by http/tests/xmlhttprequest/timeout/*
34305
34306         * Configurations/FeatureDefines.xcconfig: Default ON on mac.
34307         * GNUmakefile.am:
34308         * GNUmakefile.features.am:
34309           Autotools support for the flag.
34310         * xml/XMLHttpRequest.cpp: #if ENABLE(XHR_TIMEOUT) wrapping
34311         (WebCore::XMLHttpRequest::XMLHttpRequest):
34312         (WebCore):
34313         (WebCore::XMLHttpRequest::open):
34314         (WebCore::XMLHttpRequest::createRequest):
34315         (WebCore::XMLHttpRequest::didFail):
34316         * xml/XMLHttpRequest.h: #if ENABLE(XHR_TIMEOUT) wrapping
34317         (XMLHttpRequest):
34318         * xml/XMLHttpRequest.idl: Conditional properties timeout and ontimeout (event handler).
34319
34320 2012-10-25  Tom Sepez  <tsepez@chromium.org>
34321
34322         XSSAuditor must replace form action with about:blank when reflected action detected.
34323         https://bugs.webkit.org/show_bug.cgi?id=100280
34324
34325         Reviewed by Daniel Bates.
34326
34327         Changes empty string form-action replacement to about:blank.
34328         Existing form-action.html test modified to check this case.
34329         
34330         * html/parser/XSSAuditor.cpp:
34331         (WebCore::XSSAuditor::filterFormToken):
34332
34333 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34334
34335         Touch adjustment snaps to wrong target at a plugin boundary.
34336         https://bugs.webkit.org/show_bug.cgi?id=99938
34337
34338         Reviewed by Antonio Gomes.
34339
34340         Inidcate that an <embed> element can respond to
34341         mouse click events, since mouse events are forwarded
34342         to the plugin.  Fixes touch adjustment at a plugin
34343         boundary.  Prior to the patch a clickable element 
34344         adjacent to the plugin would capture synthetic mouse
34345         events from tap gestures that spanned the plugin
34346         boundary.
34347
34348         Test: touchadjustment/plugin.html
34349
34350         * html/HTMLEmbedElement.cpp:
34351         (WebCore::HTMLEmbedElement::willRespondToMouseClickEvents):
34352         (WebCore):
34353         * html/HTMLEmbedElement.h:
34354
34355 2012-10-25  Ojan Vafai  <ojan@chromium.org>
34356
34357         Get rid of ScriptController::clearForNavigation
34358         https://bugs.webkit.org/show_bug.cgi?id=100390
34359
34360         Reviewed by Adam Barth.
34361
34362         Get rid of clearForNavigation and change resetIsolatedWorlds
34363         to reset so that it can also do the hintForCollectGarbage call.
34364         No new tests. No behavior change.
34365
34366         * bindings/v8/ScriptController.cpp:
34367         (WebCore::ScriptController::reset):
34368         (WebCore::ScriptController::clearForClose):
34369         (WebCore::ScriptController::clearWindowShell):
34370         * bindings/v8/ScriptController.h:
34371         (ScriptController):
34372
34373 2012-10-25  Simon Fraser  <simon.fraser@apple.com>
34374
34375         r132427 changed the tiling behavior of tiled layer TileCaches as well as the page tile cache
34376         https://bugs.webkit.org/show_bug.cgi?id=100323
34377
34378         Reviewed by Anders Carlsson.
34379
34380         r132427 assumed that TileCaches were only used for the page, and changed the tile
34381         size behavior of all non-page TileCaches.
34382         
34383         Fix by giving TiledBacking a new 'CoverageForSlowScrolling' flag which
34384         affects the tile size behavior.
34385         
34386         Consolidated the two places that set TileCoverage into one, and in the process
34387         reduced FrameView's direct communication with TiledBacking.
34388
34389         No new tests because we can't test tile size via tests.
34390
34391         * page/FrameView.cpp:
34392         (WebCore::FrameView::didMoveOnscreen): Rely on RenderLayerCompositor to
34393         call setIsInWindow() on the main page tile cache.
34394         (WebCore::FrameView::willMoveOffscreen): Ditto.
34395         (WebCore::FrameView::performPostLayoutTasks): Rather than explicitly tell
34396         the TiledBacking that it should do stuff, just tell the compositor that
34397         layout happened.
34398         * platform/graphics/TiledBacking.h: New CoverageForSlowScrolling flag.
34399         * platform/graphics/ca/mac/TileCache.mm:
34400         (WebCore::TileCache::tileSizeForCoverageRect): Only use one big tile
34401         if the CoverageForSlowScrolling flag is set.
34402         * rendering/RenderLayerBacking.cpp:
34403         (WebCore::RenderLayerBacking::RenderLayerBacking): layer->isRootLayer()
34404         is equivalent to renderer()->isRenderView() and clearer.
34405         (WebCore::RenderLayerBacking::tiledBacking): Call adjustTileCacheCoverage().
34406         It would be nice to move the rest of this TiledBacking code from here somehow.
34407         (WebCore::RenderLayerBacking::adjustTileCacheCoverage): Update the TileCoverage
34408         flags, taking into account horizontal and vertical scrollability independently,
34409         and whether we're in slow scrolling mode.
34410         * rendering/RenderLayerBacking.h:
34411         (RenderLayerBacking):
34412         * rendering/RenderLayerCompositor.cpp:
34413         (WebCore::RenderLayerCompositor::frameViewDidLayout): Have the page
34414         tiled backing update it's coverage flags.
34415         (WebCore::RenderLayerCompositor::pageTiledBacking): Utility function.
34416         (WebCore::RenderLayerCompositor::didMoveOnscreen): Moved from FrameView.
34417         (WebCore::RenderLayerCompositor::willMoveOffscreen): Ditto.
34418         * rendering/RenderLayerCompositor.h:
34419         (RenderLayerCompositor):
34420
34421 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34422
34423         Everything that sets RenderObject::m_style should go through setStyleInternal
34424         https://bugs.webkit.org/show_bug.cgi?id=100338
34425
34426         Reviewed by Ojan Vafai.
34427
34428         Whenever we set m_style in RenderObject go through setStyleInternal and make
34429         it inline. This gives a common place to put printfs and makes the code cleaner.
34430
34431         No new tests, just a refactor.
34432
34433         * rendering/RenderObject.cpp:
34434         (WebCore::RenderObject::createObject):
34435         (WebCore::RenderObject::setStyle):
34436         * rendering/RenderObject.h:
34437         (WebCore::RenderObject::setStyleInternal):
34438
34439 2012-10-25  Brady Eidson  <beidson@apple.com>
34440
34441         Allow LoaderStrategy to override the ResourceLoadScheduler
34442         https://bugs.webkit.org/show_bug.cgi?id=100355
34443
34444         Reviewed by Anders Carlsson.
34445
34446         Allow LoaderStrategy to override the implementation of the ResourceLoadScheduler.
34447         Add a default implementation that just returns the current ResourceLoadScheduler.
34448
34449         No new tests (No behavior change).
34450
34451         Project file stuff:
34452         * CMakeLists.txt:
34453         * GNUmakefile.list.am:
34454         * Target.pri:
34455         * WebCore.exp.in:
34456         * WebCore.gypi:
34457         * WebCore.vcproj/WebCore.vcproj:
34458         * WebCore.xcodeproj/project.pbxproj:
34459
34460         "Virtualize" ResourceLoadScheduler to expose build issues in preparation for future virtualization:
34461         * loader/ResourceLoadScheduler.cpp:
34462         (WebCore::ResourceLoadScheduler::~ResourceLoadScheduler):
34463         * loader/ResourceLoadScheduler.h:
34464         (ResourceLoadScheduler):
34465
34466         Add the new method plus a default implementation:
34467          * loader/LoaderStrategy.cpp: 
34468         (WebCore::LoaderStrategy::resourceLoadScheduler):
34469         * loader/LoaderStrategy.h:
34470
34471         When strategies are enabled, use the LoaderStrategy for this:
34472         * dom/ContainerNode.cpp:
34473         (WebCore::ContainerNode::suspendPostAttachCallbacks):
34474         (WebCore::ContainerNode::resumePostAttachCallbacks):
34475
34476         * loader/MainResourceLoader.cpp:
34477         (WebCore::MainResourceLoader::loadNow):
34478
34479         * loader/ResourceLoader.cpp:
34480         (WebCore::ResourceLoader::releaseResources):
34481         (WebCore::ResourceLoader::willSendRequest):
34482
34483         * loader/cache/CachedResource.cpp:
34484         (WebCore::CachedResource::load):
34485
34486         * loader/cache/CachedResourceLoader.cpp:
34487         (WebCore::CachedResourceLoader::performPostLoadActions):
34488
34489 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34490
34491         Web Inspector: inspector tests failing after r132454
34492         https://bugs.webkit.org/show_bug.cgi?id=100381
34493
34494         Reviewed by Pavel Feldman.
34495
34496         Added implementation for DOMNodeWrapperMap::reportMemoryUsage method,
34497         otherwise no actual pointer is reported which breaks instrumentation.
34498
34499         * bindings/v8/IntrusiveDOMWrapperMap.h:
34500
34501 2012-10-25  Dominik Röttsches  <dominik.rottsches@intel.com>
34502
34503         Init timeout flag in ResourceErrorCF
34504         https://bugs.webkit.org/show_bug.cgi?id=100349
34505
34506         Reviewed by Alexey Proskuryakov.
34507
34508         Initialize the timeout property to true if the network error was a timeout error.
34509         This is a speculative fix for the XHR timeout test cases failing on Apple Win -
34510         I can't verify this on a local machine.
34511
34512         No new tests, covered by
34513         LayoutTests/http/tests/xmlhttprequest/timeout/*
34514
34515         * platform/network/cf/ResourceErrorCF.cpp:
34516         (WebCore::ResourceError::ResourceError): Init m_timeout from error code.
34517
34518 2012-10-25  Kenneth Rohde Christiansen  <kenneth@webkit.org>
34519
34520         'resolution' MQ: Printing should use use high resolution images when available
34521         https://bugs.webkit.org/show_bug.cgi?id=100382
34522
34523         Reviewed by Antti Koivisto.
34524
34525         Special case print to not use the dpi of the screen, but one of 300.
34526
34527         Updated the resolution media query test to cover this.
34528
34529         * css/MediaQueryEvaluator.cpp:
34530         (WebCore::resolutionMediaFeatureEval): Update compared decimal points
34531         to three, due to 300 / 96 being equal to 3.125.
34532
34533 2012-10-25  Kinuko Yasuda  <kinuko@chromium.org>
34534
34535         [chromium] External FileSystem should use the root path returned by requestFileSystem
34536         https://bugs.webkit.org/show_bug.cgi?id=100372
34537
34538         Reviewed by Kentaro Hara.
34539
34540         External FileSystem should use the root path returned by
34541         requestFileSystem as other type is doing. Current implementation
34542         completely ignore the returned path.
34543
34544         New tests are to be added in chromium (as the type is only available in chromeos and chrome extensions)
34545
34546         * Modules/filesystem/chromium/DOMFileSystemChromium.cpp:
34547         (WebCore::DOMFileSystemBase::createFileSystemURL):
34548
34549 2012-10-25  Kevin Ellis  <kevers@chromium.org>
34550
34551         Can't easily position the cursor on an empty line in a textarea with touch if touch adjustment is enabled
34552         https://bugs.webkit.org/show_bug.cgi?id=97576
34553
34554         Reviewed by Antonio Gomes.
34555
34556         Consolidate touch adjustment candidates that are
34557         editable.  Adjustment becomes coarse being based
34558         on the bounds of the outermost editable element.
34559         This fix allows tap positioning of the text caret
34560         on a blank line immediately above or below another
34561         element.
34562
34563         Test: touchadjustment/editable-content.html
34564
34565         * page/TouchAdjustment.cpp:
34566         (WebCore::TouchAdjustment::compileSubtargetList):
34567         (WebCore::TouchAdjustment::hybridDistanceFunction):
34568
34569 2012-10-25  Yury Semikhatsky  <yurys@chromium.org>
34570
34571         Memory instrumentation: add reportMemoryUsage to ImageObserver interface
34572         https://bugs.webkit.org/show_bug.cgi?id=100091
34573
34574         Reviewed by Pavel Feldman.
34575
34576         Added reportMemoryUsage method to ImageObserver to make sure it is reported as
34577         appropriate descendant(with pointer adjusted due to offsets added by inheritance)
34578         rather than as a standalone memory block.
34579
34580         * platform/graphics/ImageObserver.h:
34581         (ImageObserver):
34582
34583 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34584
34585         Web Inspector: [Overrides] Add latitude and longitude labels for the geolocation fields
34586         https://bugs.webkit.org/show_bug.cgi?id=100375
34587
34588         Reviewed by Yury Semikhatsky.
34589
34590         No new tests, a UI change.
34591
34592         * English.lproj/localizedStrings.js:
34593         * inspector/front-end/SettingsScreen.js:
34594         (WebInspector.UserAgentSettingsTab.prototype._createGeolocationOverrideElement):
34595
34596 2012-10-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
34597
34598         Add setMediaTypeOverride to window.internals.settings
34599         https://bugs.webkit.org/show_bug.cgi?id=100249
34600
34601         Reviewed by Kenneth Rohde Christiansen.
34602
34603         Added setMediaTypeOverride to window.internals.settings.
34604
34605         Test: fast/media/print-restores-previous-mediatype.html
34606
34607         * WebCore.exp.in: Exported WebCore::Settings::setMediaTypeOverride(WTF::String const&) for MAC.
34608         * page/Settings.cpp:
34609         (WebCore::Settings::Settings):
34610         (WebCore::Settings::setMediaTypeOverride):
34611         (WebCore):
34612         * page/Settings.h:
34613         (Settings):
34614         (WebCore::Settings::mediaTypeOverride):
34615         * testing/InternalSettings.cpp:
34616         (WebCore::InternalSettings::Backup::Backup):
34617         (WebCore::InternalSettings::Backup::restoreTo):
34618         (WebCore::InternalSettings::setMediaTypeOverride):
34619         (WebCore):
34620         * testing/InternalSettings.h:
34621         (Backup):
34622         (InternalSettings):
34623         * testing/InternalSettings.idl:
34624
34625 2012-10-22  Mikhail Naganov  <mnaganov@chromium.org>
34626
34627         [Chromium] Add supportMultipleWindows setting, needed for Android
34628         https://bugs.webkit.org/show_bug.cgi?id=99716
34629
34630         Reviewed by Adam Barth.
34631
34632         Add supportMultipleWindows settings for reusing the same view when
34633         opening popups. This is required for emulating the behavior of
34634         Android WebView. Adding into WebCore, as other ports might want to
34635         use this setting in the future.
34636
34637         Tests: fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
34638                fast/dom/Window/window-open-no-multiple-windows.html
34639                fast/forms/post-popup-no-multiple-windows.html
34640
34641         * loader/FrameLoader.cpp:
34642         (WebCore::createWindow):
34643         * page/ContextMenuController.cpp:
34644         (WebCore::openNewWindow):
34645         * page/Settings.cpp:
34646         (WebCore::Settings::Settings):
34647         (WebCore::Settings::setSupportsMultipleWindows):
34648         (WebCore):
34649         * page/Settings.h:
34650         (Settings):
34651         (WebCore::Settings::supportsMultipleWindows):
34652
34653 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34654
34655         Unreviewed, fix Web Inspector frontend compilability
34656
34657         * inspector/front-end/ElementsTreeOutline.js:
34658         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34659         * inspector/front-end/StylesSidebarPane.js:
34660         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
34661         (WebInspector.StylePropertyTreeElement.prototype):
34662
34663 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
34664
34665         Web Inspector: Drag and drop property value from Inspector is not working as expected
34666         https://bugs.webkit.org/show_bug.cgi?id=100040
34667
34668         Reviewed by Vsevolod Vlasov.
34669
34670         Do not start a custom drag for a tree element if there is a non-collapsed selection in the Inspector.
34671
34672         * inspector/front-end/ElementsTreeOutline.js:
34673         (WebInspector.ElementsTreeOutline.prototype._ondragstart):
34674
34675 2012-10-25  Ilya Tikhonovsky  <loislo@chromium.org>
34676
34677         Web Inspector: NMI instrument InspectorDebuggerAgent. It uses a lot of memory on heavy js sites because it keeps all the scripts in a map.
34678         https://bugs.webkit.org/show_bug.cgi?id=100340
34679
34680         Reviewed by Yury Semikhatsky.
34681
34682         * dom/WebCoreMemoryInstrumentation.cpp:
34683         (WebCore):
34684         * dom/WebCoreMemoryInstrumentation.h:
34685         (WebCoreMemoryTypes):
34686         * inspector/InspectorDebuggerAgent.cpp:
34687         (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
34688         (WebCore):
34689         (WebCore::ScriptDebugListener::Script::reportMemoryUsage):
34690         * inspector/InspectorDebuggerAgent.h:
34691         (InspectorDebuggerAgent):
34692         * inspector/ScriptDebugListener.h:
34693         (Script):
34694
34695 2012-10-25  Adam Barth  <abarth@webkit.org>
34696
34697         [V8] We can handle ActiveDOMNodes and DOMNodes in the same GC visitor
34698         https://bugs.webkit.org/show_bug.cgi?id=100351
34699
34700         Reviewed by Eric Seidel.
34701
34702         There is no reason to handle active DOM nodes in a separate pass from
34703         regular DOM nodes anymore.
34704
34705         * bindings/v8/V8DOMMap.cpp:
34706         * bindings/v8/V8DOMMap.h:
34707         (WebCore):
34708         * bindings/v8/V8GCController.cpp:
34709         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
34710         (WebCore::NodeVisitor::NodeVisitor):
34711         (NodeVisitor):
34712         (WebCore::NodeVisitor::visitNodeWrapper):
34713         (WebCore::V8GCController::majorGCPrologue):
34714
34715 2012-10-25  Alexander Pavlov  <apavlov@chromium.org>
34716
34717         Web Inspector: Improper out-of-order call on a rule that is being removed from the stylesheet.
34718         https://bugs.webkit.org/show_bug.cgi?id=100357
34719
34720         Reviewed by Vsevolod Vlasov.
34721
34722         * inspector/InspectorStyleSheet.cpp:
34723         (WebCore::InspectorStyleSheet::deleteRule):
34724
34725 2012-10-25  Adam Barth  <abarth@webkit.org>
34726
34727         [V8] DOMDataStoreHandle serves no purpose and can be removed
34728         https://bugs.webkit.org/show_bug.cgi?id=100333
34729
34730         Reviewed by Eric Seidel.
34731
34732         After https://bugs.webkit.org/show_bug.cgi?id=100316,
34733         DOMDataStoreHandle is just a glorified OwnPtr.
34734
34735         * bindings/v8/DOMWrapperWorld.h:
34736         (WebCore::DOMWrapperWorld::domDataStore):
34737         (DOMWrapperWorld):
34738         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
34739         * bindings/v8/V8DOMMap.cpp:
34740         * bindings/v8/V8DOMMap.h:
34741
34742 2012-10-25  Elliott Sprehn  <esprehn@chromium.org>
34743
34744         Remove dead Node::isBlockFlowOrBlockTable
34745         https://bugs.webkit.org/show_bug.cgi?id=100336
34746
34747         Reviewed by Eric Seidel.
34748
34749         Nothing uses Node::isBlockFlowOrBlockTable anymore so remove it.
34750
34751         No new tests needed, just removing dead code.
34752
34753         * dom/Node.cpp:
34754         * dom/Node.h:
34755         (Node):
34756
34757 2012-10-25  Eugene Klyuchnikov  <eustas.bug@gmail.com>
34758
34759         Web Inspector: Fix "check-inspector-strings" script and fix localized strings.
34760         https://bugs.webkit.org/show_bug.cgi?id=100090
34761
34762         Reviewed by Vsevolod Vlasov.
34763
34764         Fixed localized strings table.
34765
34766         * English.lproj/localizedStrings.js: Added missing, removed orhans.
34767         * inspector/front-end/CSSNamedFlowView.js: Removed tailing whitespaces.
34768         * inspector/front-end/NativeMemorySnapshotView.js:
34769         Removed double localization.
34770
34771 2012-10-25  Adam Barth  <abarth@webkit.org>
34772
34773         [V8] We can merge DOMDataStore, ScopedDOMDataStore, and StaticDOMDataStore into one class
34774         https://bugs.webkit.org/show_bug.cgi?id=100316
34775
34776         Reviewed by Eric Seidel.
34777
34778         Prior to this patch, DOMDataStore had two subclasses,
34779         ScopedDOMDataStore and StaticDOMDataStore, which used slighly different
34780         wrapper map base classes and had different lifetimes. This patch
34781         unifies all these classes into DOMDataStore itself. This makes this
34782         code much more straightforward.
34783
34784         * WebCore.gypi:
34785         * bindings/v8/DOMDataStore.cpp:
34786         (WebCore::DOMDataStore::DOMDataStore):
34787         (WebCore::DOMDataStore::~DOMDataStore):
34788         (WebCore::DOMDataStore::current):
34789         (WebCore::DOMDataStore::reportMemoryUsage):
34790         * bindings/v8/DOMDataStore.h:
34791         (DOMDataStore):
34792         (WebCore::DOMDataStore::domNodeMap):
34793         (WebCore::DOMDataStore::activeDomNodeMap):
34794         (WebCore::DOMDataStore::domObjectMap):
34795         (WebCore::DOMDataStore::activeDomObjectMap):
34796         * bindings/v8/ScopedDOMDataStore.cpp: Removed.
34797         * bindings/v8/ScopedDOMDataStore.h: Removed.
34798         * bindings/v8/SerializedScriptValue.cpp:
34799         (WebCore::neuterBinding):
34800         * bindings/v8/StaticDOMDataStore.cpp: Removed.
34801         * bindings/v8/StaticDOMDataStore.h: Removed.
34802         * bindings/v8/V8DOMMap.cpp:
34803         (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
34804         (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
34805         (WebCore::visitActiveDOMNodes):
34806         (WebCore::visitDOMObjects):
34807         (WebCore::visitActiveDOMObjects):
34808         * bindings/v8/V8DOMMap.h:
34809         (WebCore):
34810         * bindings/v8/V8PerIsolateData.h:
34811         (V8PerIsolateData):
34812         * bindings/v8/WorkerScriptController.cpp:
34813         (WebCore::WorkerScriptController::WorkerScriptController):
34814         (WebCore::WorkerScriptController::~WorkerScriptController):
34815         * bindings/v8/WorkerScriptController.h:
34816         (WorkerScriptController):
34817
34818 2012-10-24  Kent Tamura  <tkent@chromium.org>
34819
34820         Minimize CSS rulesets for multiple-fields input
34821         https://bugs.webkit.org/show_bug.cgi?id=100198
34822
34823         Reviewed by Kentaro Hara.
34824
34825         - Unify rulesets for input::-webkit-datetime-edit-*-field.
34826          input::-webkit-datetime-edit-*-field had identical ruleset.
34827
34828         - Move some rulesets near to related rulesets.
34829          Move -webkit-datetime-edit-*-field:focus nearby the new unified ruleset.
34830          Move input::-webkit-datetime-edit-second-field[readonly] nearby
34831         input::-webkit-datetime-edit-minute-field[readonly].
34832
34833         No new tests. This shouldn't make any behavior change.
34834
34835         * css/html.css:
34836         (input::-webkit-datetime-edit-year-field):
34837         (input::-webkit-datetime-edit-year-field:focus):
34838         (input::-webkit-datetime-edit-second-field[readonly]):
34839
34840 2012-10-24  Kent Tamura  <tkent@chromium.org>
34841
34842         REGRESSION(r132291): Crash in BaseMultipleFieldsDateAndTimeInputType
34843         https://bugs.webkit.org/show_bug.cgi?id=100326
34844
34845         Reviewed by Eric Seidel.
34846
34847         Test: fast/forms/time-multiple-fields/time-multiple-fields-change-type.html
34848
34849         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
34850         (WebCore::BaseMultipleFieldsDateAndTimeInputType::destroyShadowSubtree):
34851         We need to disconnect m_spinButtonElement before destructing the UA shadow tree.
34852
34853 2012-10-24  Adam Barth  <abarth@webkit.org>
34854
34855         [V8] DOMData is no longer needed
34856         https://bugs.webkit.org/show_bug.cgi?id=100313
34857
34858         Reviewed by Eric Seidel.
34859
34860         This class serves no purpose anymore and can be deleted.
34861
34862         * WebCore.gypi:
34863         * bindings/v8/DOMData.cpp: Removed.
34864         * bindings/v8/DOMData.h: Removed.
34865         * bindings/v8/DOMDataStore.cpp:
34866         (WebCore::DOMDataStore::current):
34867         * bindings/v8/DOMDataStore.h:
34868         (WebCore):
34869         (DOMDataStore):
34870         * bindings/v8/SerializedScriptValue.cpp:
34871         (WebCore::neuterBinding):
34872         * bindings/v8/V8DOMMap.cpp:
34873         (WebCore::getDOMNodeMap):
34874         (WebCore::getActiveDOMNodeMap):
34875         (WebCore::getDOMObjectMap):
34876         (WebCore::getActiveDOMObjectMap):
34877         (WebCore::removeAllDOMObjects):
34878         (WebCore::visitActiveDOMNodes):
34879         (WebCore::visitDOMObjects):
34880         (WebCore::visitActiveDOMObjects):
34881
34882 2012-10-24  Kent Tamura  <tkent@chromium.org>
34883
34884         Sort an Xcode project file.
34885
34886         * WebCore.xcodeproj/project.pbxproj: Sorted.
34887
34888 2012-10-24  Adam Barth  <abarth@webkit.org>
34889
34890         [V8] AbstractWeakReferenceMap is unnecessarily general and complex
34891         https://bugs.webkit.org/show_bug.cgi?id=100175
34892
34893         Reviewed by Eric Seidel.
34894
34895         Before this patch, AbstractWeakReferenceMap served two masters:
34896
34897         1) DOM wrappers
34898         2) NPV8 function templates
34899
34900         These two uses cases pushed AbstractWeakReferenceMap to be more general
34901         and complex that needed. This patch separates these two uses cases into
34902         two separate classes. V8NPTemplateMap is all of 40 lines of code. It's
34903         not worth complicating the DOM wrapper code path to share that tiny
34904         amount of code.
34905
34906         The other thing this patch does is store a pointer to the DOM wrapper
34907         map as the weak callback context object. That means we no longer need
34908         to search through all the wrapper maps in order to find the map that
34909         contains this particular DOM wrapper.
34910
34911         * WebCore.gypi:
34912         * bindings/v8/DOMData.cpp:
34913         * bindings/v8/DOMData.h:
34914         (DOMData):
34915         * bindings/v8/DOMDataStore.cpp:
34916             - Delete all these complicated weak callback functions. The weak
34917               callback functions are now an order of magnitude simpler and
34918               declared as private member functions on the wrapper map.
34919         * bindings/v8/DOMDataStore.h:
34920         (WebCore::DOMDataStore::domNodeMap):
34921         (WebCore::DOMDataStore::activeDomNodeMap):
34922         (DOMDataStore):
34923             - We now have a consistent type to use for all these wrapper maps.
34924               Both the hash map and the intrusive map derive from
34925               DOMWrapperMap (with a single template parameter).
34926         * bindings/v8/DOMWrapperMap.h: Added.
34927         (WebCore):
34928         (DOMWrapperVisitor):
34929             - The visitor is no longer an inner class. It's just a top-level
34930               class that does the same thing.
34931         (DOMWrapperMap):
34932             - The abstract interface for DOMWrapperMap has about half as many
34933               functions as the old AbstractWeakReferenceMap because the two use
34934               cases are disentangled.
34935         (WebCore::DOMWrapperMap::~DOMWrapperMap):
34936         (DOMWrapperHashMap):
34937             - This is a concrete instance of DOMWrapperMap that uses a hash map.
34938         (WebCore::DOMWrapperHashMap::DOMWrapperHashMap):
34939         (WebCore::DOMWrapperHashMap::remove):
34940         (WebCore::DOMWrapperHashMap::defaultWeakCallback):
34941             - Notice that the context parameter now points to the hashmap
34942               itself rather than to the native object. Now that we don't need
34943               to handle the NPAPI case, we can recover the native object from
34944               the wrapper using toNative. The assert in set() ensures that this
34945               always works.
34946         * bindings/v8/DOMWrapperWorld.h:
34947         * bindings/v8/IntrusiveDOMWrapperMap.h:
34948             - These classes are now simplified because they need to implement
34949               fewer functions.
34950         (WebCore::DOMNodeWrapperMap::weakCallback):
34951             - For this weak callback, we still use the native object as the
34952               context parameter. We could also recover the native object from
34953               the wrapper, which means this context parameter is available to
34954               do other work.
34955         * bindings/v8/ScopedDOMDataStore.cpp:
34956         (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
34957             - This code no longer needs to have knowledge of which weak
34958               callbacks these objects use.
34959         (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
34960             - We need to clear the maps before deleting them because there are
34961               still JavaScript objects that have references to the map in their
34962               weak callback parameter. Previously, we handled this case because
34963               we would search all the wrapper maps and fail to find the wrapper.
34964         * bindings/v8/ScriptProfiler.cpp:
34965         (WebCore::ScriptProfiler::visitExternalArrays):
34966         * bindings/v8/StaticDOMDataStore.cpp:
34967             - This code no longer needs to have knowledge of which weak
34968               callback these maps use.
34969         * bindings/v8/StaticDOMDataStore.h:
34970         (StaticDOMDataStore):
34971         * bindings/v8/V8DOMMap.cpp:
34972         (WebCore::getDOMNodeMap):
34973         (WebCore::getActiveDOMNodeMap):
34974         (WebCore::removeAllDOMObjects):
34975             - Rather than using some complicated visitor pattern, we can now
34976               just call clear() directly on the maps to remove all the objects.
34977         (WebCore::visitActiveDOMNodes):
34978         (WebCore::visitDOMObjects):
34979         (WebCore::visitActiveDOMObjects):
34980         * bindings/v8/V8DOMMap.h:
34981         (WebCore):
34982             - Delete the old versions of these classes.
34983         (DOMDataStoreHandle):
34984             - Style nit: one-argument constructors should be marked explicit.
34985         * bindings/v8/V8DOMWrapper.cpp:
34986         (WebCore::V8DOMWrapper::domWrapperType):
34987             - I moved this logic into WrapperTypeInfo.h to avoid a circular
34988               header dependency.
34989         * bindings/v8/V8DOMWrapper.h:
34990         (WebCore::V8DOMWrapper::getCachedWrapper):
34991         * bindings/v8/V8GCController.cpp:
34992             - EnsureWeakDOMNodeVisitor is no longer used (or needed since we no
34993               longer clear the weak callbacks in V8GCController).
34994         * bindings/v8/V8NPObject.cpp:
34995         (V8NPTemplateMap):
34996             - staticTemplateMap is no longer an instance of WeakReferenceMap.
34997               Instead, this patch just implements the functionality we need
34998               here directly.
34999         (WebCore::V8NPTemplateMap::get):
35000         (WebCore::V8NPTemplateMap::set):
35001         (WebCore::V8NPTemplateMap::sharedInstance):
35002         (WebCore::V8NPTemplateMap::weakCallback):
35003         (WebCore::V8NPTemplateMap::dispose):
35004         (WebCore::npObjectGetProperty):
35005         (WebCore):
35006         (WebCore::staticNPObjectMap):
35007         (WebCore::weakNPObjectCallback):
35008             - DOMWrapperMap no longer exposes a "forget" function. Instead, we
35009               just use the more basic "remove" and "Dispose" operations to do
35010               the same thing. This is possible now because we no longer have
35011               "removeIfPossible" to support searching all the wrapper maps for
35012               the one that has the right wrapper.
35013         (WebCore::createV8ObjectForNPObject):
35014             - DOMWrapperMap No longer has a "contains" function. Instead, we
35015               use get, which actually makes this code more efficient because we
35016               only do one hash map lookup.
35017         (WebCore::forgetV8ObjectForNPObject):
35018             - The changes here are a combination of the two sorts of changes
35019               above.
35020         * bindings/v8/WrapperTypeInfo.h:
35021         (WebCore::toNative):
35022         (WebCore::toWrapperTypeInfo):
35023             - The patch moves these functions into this header to avoid a
35024               circular header dependency.
35025
35026 2012-10-24  Arnaud Renevier  <a.renevier@sisa.samsung.com>
35027
35028         [cairo] unneeded FloatRect object creation in BitmapImage::draw
35029         https://bugs.webkit.org/show_bug.cgi?id=100298
35030
35031         Reviewed by Martin Robinson.
35032
35033         Do not copy FloatRect arguments src and dst to local variables.
35034         Instead, use src and dst directly.
35035
35036         No new tests. No change in behavior.
35037
35038         * platform/graphics/cairo/BitmapImageCairo.cpp:
35039         (WebCore::BitmapImage::draw):
35040
35041 2012-10-24  Seokju Kwon  <seokju.kwon@samsung.com>
35042
35043         [SOUP] Provide logging for SocketStreamHandleSoup
35044         https://bugs.webkit.org/show_bug.cgi?id=100215
35045
35046         Reviewed by Alexey Proskuryakov.
35047
35048         Add logging to SocketStreamHandleSoup to facilitate debugging.
35049
35050         * platform/network/soup/SocketStreamHandleSoup.cpp:
35051         (WebCore::SocketStreamHandle::SocketStreamHandle):
35052         (WebCore::SocketStreamHandle::~SocketStreamHandle):
35053         (WebCore::SocketStreamHandle::platformSend):
35054         (WebCore::SocketStreamHandle::platformClose):
35055
35056 2012-10-24  Nico Weber  <thakis@chromium.org>
35057
35058         Pass on exif orientation from ImageSource when using the open-source image decoders
35059         https://bugs.webkit.org/show_bug.cgi?id=100164
35060
35061         Reviewed by Eric Seidel.
35062
35063         The orientation is honored always for image documents, and optionally
35064         for <img> elements if shouldRespectImageOrientation is set (off by
35065         default). However, the feature needs port-specific modifications to
35066         GraphicsContext (without this, webcore will use the rotated bounds but
35067         draw the image as if it hadn't be rotated, resulting in squished
35068         pixels), and most ports don't implement these yet -- so put
35069         turning this on for image documents behind a port-specific #ifdef.
35070
35071         No observable behavior change. Once it's hooked up, it will be tested
35072         by fast/images/exif-orientation.html.
35073
35074         * platform/graphics/ImageSource.cpp:
35075         (WebCore::ImageSource::size):
35076         (WebCore::ImageSource::frameSizeAtIndex):
35077         (WebCore::ImageSource::orientationAtIndex):
35078         * platform/graphics/chromium/DeferredImageDecoder.cpp:
35079         (WebCore::DeferredImageDecoder::orientation):
35080         (WebCore):
35081         * platform/graphics/chromium/DeferredImageDecoder.h:
35082         (DeferredImageDecoder):
35083         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
35084         (WebCore::readImageOrientation):
35085         * rendering/RenderObject.cpp:
35086         (WebCore::RenderObject::shouldRespectImageOrientation):
35087
35088 2012-10-24  Beth Dakin  <bdakin@apple.com>
35089
35090         https://bugs.webkit.org/show_bug.cgi?id=100169
35091         We should make TileCache tiles the size of the tile coverage rect 
35092         when we can't do fast scrolling
35093         -and-
35094         <rdar://problem/12505021>
35095
35096         Reviewed by Simon Fraser.
35097
35098         Some websites that don't do fast scrolling still scroll slower than 
35099         they do with tiled drawing disabled. 
35100         https://bugs.webkit.org/show_bug.cgi?id=99768 addressed some of this 
35101         performance problem, but there is still more ground to make up. This 
35102         patch addresses the remaining issue by making tiles the size of the 
35103         window when we can't do fast scrolling. 
35104
35105         The constructor and create function no longer take a size parameter. 
35106         That's all fully controlled within TileCache now. m_tileSize is no 
35107         longer const.
35108         * platform/graphics/ca/mac/TileCache.h:
35109
35110         Store the current default size as constants so that we can access it 
35111         in both the constructor and adjustTileSizeForCoverageRect().
35112         * platform/graphics/ca/mac/TileCache.mm:
35113         (WebCore::TileCache::TileCache):
35114
35115         This new function will set m_tileSize to the size of the tile 
35116         coverage rect if the tile coverage is limited to the visible area. 
35117         Otherwise, the tiles are set to be the default size.
35118         (WebCore::TileCache::adjustTileSizeForCoverageRect):
35119         
35120         Call adjustTileSizeForCoverageRect().
35121         (WebCore::TileCache::revalidateTiles):
35122
35123         No need to send in a size anymore.
35124         * platform/graphics/ca/mac/WebTileCacheLayer.h:
35125         (WebCore):
35126
35127 2012-10-24  David Barton  <dbarton@mathscribe.com>
35128
35129         MathML tests trigger font cache assertions in debug bots
35130         https://bugs.webkit.org/show_bug.cgi?id=100268
35131
35132         Reviewed by Eric Seidel.
35133
35134         Add a FontCachePurgePreventer to fix this.
35135
35136         Tested by existing tests.
35137
35138         * rendering/mathml/RenderMathMLOperator.cpp:
35139         (WebCore::RenderMathMLOperator::updateFromElement):
35140
35141 2012-10-24  Tim Horton  <timothy_horton@apple.com>
35142
35143         Update main frame scroll position immediately for programmatic scrolls
35144         https://bugs.webkit.org/show_bug.cgi?id=98074
35145
35146         Reviewed by Simon Fraser.
35147
35148         Immediately update the main frame scroll position after a programmatic scroll,
35149         so that performing a scrollBy or scrollTo will be instantly reflected in
35150         all of the scroll offset accessors.
35151
35152         No new tests; this will be tested by many scrolling tests once WebKitTestRunner
35153         can use threaded scrolling.
35154
35155         * page/scrolling/ScrollingCoordinator.cpp:
35156         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
35157
35158 2012-10-24  Mihai Parparita  <mihaip@chromium.org>
35159
35160         [Chromium] Allow pushState and related history APIs to be disabled per context
35161         https://bugs.webkit.org/show_bug.cgi?id=99780
35162
35163         Reviewed by Adam Barth.
35164
35165         Chrome Apps do not support the history API (or navigation in general).
35166         Since pushState is generally feature detected, it's cleanest to disable
35167         it via a V8 per-context feature, so that applications can have the
35168         appropriate fallback behavior (other history APIs are re-mapped to throw
35169         exceptions, since history.back() and the link are not feature detected).
35170
35171         * dom/ContextFeatures.cpp:
35172         (WebCore::ContextFeatures::pushStateEnabled):
35173         (WebCore):
35174         * dom/ContextFeatures.h:
35175         * dom/Document.cpp:
35176         (WebCore::Document::enqueuePopstateEvent):
35177         * page/History.idl:
35178
35179 2012-10-24  Tommy Widenflycht  <tommyw@google.com>
35180
35181         MediaStream API: Make sure all events are dispatched asynchronously
35182         https://bugs.webkit.org/show_bug.cgi?id=100286
35183
35184         Reviewed by Adam Barth.
35185
35186         This is necessary to safeguard against if the UA uses synchronous UA->WebKit calls,
35187         and the web application calls methods on the RTCPeerConnection in the event callbacks.
35188
35189         Test: fast/mediastream/RTCPeerConnection-events.html
35190         Also tested by the chromium webrtc fuzz tests.
35191
35192         * Modules/mediastream/RTCPeerConnection.cpp:
35193         (WebCore::RTCPeerConnection::RTCPeerConnection):
35194         (WebCore::RTCPeerConnection::negotiationNeeded):
35195         (WebCore::RTCPeerConnection::didGenerateIceCandidate):
35196         (WebCore::RTCPeerConnection::didAddRemoteStream):
35197         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
35198         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
35199         (WebCore::RTCPeerConnection::changeReadyState):
35200         (WebCore::RTCPeerConnection::changeIceState):
35201         (WebCore):
35202         (WebCore::RTCPeerConnection::scheduleDispatchEvent):
35203         (WebCore::RTCPeerConnection::scheduledEventTimerFired):
35204         * Modules/mediastream/RTCPeerConnection.h:
35205         (RTCPeerConnection):
35206
35207 2012-10-24  Mark Pilgrim  <pilgrim@chromium.org>
35208
35209         [Chromium] Remove screen-related functions from PlatformSupport
35210         https://bugs.webkit.org/show_bug.cgi?id=97474
35211
35212         Reviewed by Adam Barth.
35213
35214         Screen-related functions like screenHorizontalDPI that
35215         used to be on PlatformSupport are now accessed through a new
35216         PlatformPageClient attached to Widget in WebCore-land, which is
35217         implemented by ChromeClientImpl in WebKit-land, which proxies
35218         calls to WebWidgetClient, which is actually implemented in
35219         Chromium-land.
35220
35221         * WebCore.gypi:
35222         * platform/Widget.h:
35223         * platform/chromium/PageClientChromium.h: Copied from Source/WebCore/platform/chromium/PlatformWidget.h.
35224         (PageClientChromium):
35225         * platform/chromium/PlatformScreenChromium.cpp:
35226         (WebCore::toPlatformPageClient):
35227         (WebCore):
35228         (WebCore::screenHorizontalDPI):
35229         (WebCore::screenVerticalDPI):
35230         (WebCore::screenDepth):
35231         (WebCore::screenDepthPerComponent):
35232         (WebCore::screenIsMonochrome):
35233         (WebCore::screenRect):
35234         (WebCore::screenAvailableRect):
35235         * platform/chromium/PlatformSupport.h:
35236         (PlatformSupport):
35237
35238 2012-10-24  Adam Barth  <abarth@webkit.org>
35239
35240         [V8] WorkerContextExecutionProxy doesn't need to track events
35241         https://bugs.webkit.org/show_bug.cgi?id=100295
35242
35243         Reviewed by Eric Seidel.
35244
35245         This code was added when this code was originally upstreamed as part of
35246         the Chromium port. There doesn't appear to be any reason why
35247         WorkerContextExecutionProxy needs to keep a Vector of raw event
35248         pointers. Those points are likely to become dangling, making the rest
35249         of what this code does very sketchy.
35250
35251         * bindings/v8/V8WorkerContextEventListener.cpp:
35252         (WebCore::V8WorkerContextEventListener::callListenerFunction):
35253         * bindings/v8/WorkerContextExecutionProxy.cpp:
35254         (WebCore::WorkerContextExecutionProxy::dispose):
35255         * bindings/v8/WorkerContextExecutionProxy.h:
35256         (WebCore::WorkerContextExecutionState::WorkerContextExecutionState):
35257         (WorkerContextExecutionProxy):
35258
35259 2012-10-24  Max Vujovic  <mvujovic@adobe.com>
35260
35261         [CSS Shaders] The mesh should be specified using <column, row> order
35262         https://bugs.webkit.org/show_bug.cgi?id=96285
35263
35264         Reviewed by Dean Jackson.
35265
35266         Change StyleResolver and CSSComputedStyleDeclaration to handle the mesh parameters in
35267         column, row order.
35268
35269         Test: css3/filters/custom/custom-filter-mesh-column-row-order.html
35270
35271         * css/CSSComputedStyleDeclaration.cpp:
35272         (WebCore::CSSComputedStyleDeclaration::valueForFilter):
35273             Append the number of columns before the number of rows in the meshParameters
35274             CSSValueList.
35275         * css/StyleResolver.cpp:
35276         (WebCore::StyleResolver::createCustomFilterOperation):
35277             Store the second mesh parameter in meshRows instead of meshColumns.
35278
35279 2012-10-24  Jae Hyun Park  <jae.park@company100.net>
35280
35281         loaderRunLoop() should use synchronization instead of while loop
35282         https://bugs.webkit.org/show_bug.cgi?id=55402
35283
35284         Reviewed by Alexey Proskuryakov.
35285
35286         Originally, loaderRunLoop() sleeps until a thread has started and set
35287         the loaderRunLoopObject static variable. This patch uses
35288         ThreadCondition to synchronize instead of a while loop.
35289
35290         No new tests (No behavior change).
35291
35292         * platform/network/cf/LoaderRunLoopCF.cpp:
35293         (WebCore::runLoaderThread):
35294         (WebCore::loaderRunLoop):
35295         * platform/network/cf/LoaderRunLoopCF.h:
35296         (WebCore):
35297
35298 2012-10-24  Sailesh Agrawal  <sail@chromium.org>
35299
35300         Incorrect keycodes for numpad /, -, +, .
35301         https://bugs.webkit.org/show_bug.cgi?id=99188
35302
35303         Reviewed by Tony Chang.
35304
35305         In r57951 we switched to mapping keys by character code.
35306         This regressed the numpad keys which no longer match the Windows virtual key codes.
35307         This CL fixes this by never mapping numpad keys by character code.
35308
35309         Test: platform/mac/fast/events/numpad-keycode-mapping.html
35310
35311         * platform/mac/PlatformEventFactoryMac.mm:
35312         (WebCore::windowsKeyCodeForKeyEvent):
35313
35314 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35315
35316         Null-check the RenderView in ocument::windowScreenDidChange to fix a crash when saving PDFs
35317         https://bugs.webkit.org/show_bug.cgi?id=100141
35318         <rdar://problem/12559147>
35319
35320         Reviewed by Tim Horton.
35321
35322         For PDF documents the RenderView is null, so null-check it to avoid a crash
35323         when saving PDFs.
35324
35325         * dom/Document.cpp:
35326         (WebCore::Document::windowScreenDidChange):
35327
35328 2012-10-24  Terry Anderson  <tdanderson@chromium.org>
35329
35330         Handle two-finger tap gestures in the same way as long-press gestures
35331         https://bugs.webkit.org/show_bug.cgi?id=99947
35332
35333         Reviewed by Adam Barth.
35334
35335         Currently a long-press gesture is used to dispatch a context menu (for platforms 
35336         defining CONTEXT_MENUS) or to select text (for Android). Additionally, for platforms 
35337         defining TOUCH_ADJUSTMENT, gesture target fuzzing is performed on the location and 
35338         touch area of the long-press gesture.
35339
35340         This CL will cause two-finger tap gestures to be handled in the same way as long-press 
35341         gestures. The location and touch area of a two-finger tap gesture will correspond to 
35342         the location and touch area of the first finger down; the location/area of the second 
35343         finger will be ignored.
35344
35345         Test: touchadjustment/touch-links-two-finger-tap.html
35346
35347         * page/EventHandler.cpp:
35348         (WebCore::EventHandler::handleGestureLongPress):
35349         (WebCore):
35350         (WebCore::EventHandler::handleGestureForTextSelectionOrContextMenu):
35351         (WebCore::EventHandler::handleGestureTwoFingerTap):
35352         (WebCore::EventHandler::adjustGesturePosition):
35353         * page/EventHandler.h:
35354         (EventHandler):
35355
35356 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35357
35358         AX:When aria-label is used, the text under an element is still appearing as the AXTitle
35359         https://bugs.webkit.org/show_bug.cgi?id=98167
35360
35361         Reviewed by Beth Dakin.
35362
35363         According to WAI-ARIA text computation, the presence of aria-label and alternative text
35364         should override the visible text within an element.
35365
35366         Test: platform/mac/accessibility/aria-label-overrides-visible-text.html
35367
35368         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
35369         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
35370
35371 2012-10-24  Sheriff Bot  <webkit.review.bot@gmail.com>
35372
35373         Unreviewed, rolling out r132303 and r132312.
35374         http://trac.webkit.org/changeset/132303
35375         http://trac.webkit.org/changeset/132312
35376         https://bugs.webkit.org/show_bug.cgi?id=100287
35377
35378         Triggering crashes on many popular websites (Requested by
35379         leviw|gardening on #webkit).
35380
35381         * css/CSSGrammar.y.in:
35382         * css/CSSParser.cpp:
35383         (WebCore::CSSParser::detectAtToken):
35384         * css/CSSParser.h:
35385         * css/CSSPropertySourceData.h:
35386         * css/RuleSet.cpp:
35387         (WebCore::RuleData::RuleData):
35388         (WebCore::RuleSet::addRule):
35389         (WebCore::RuleSet::addRegionRule):
35390         (WebCore::RuleSet::addRulesFromSheet):
35391         (WebCore::RuleSet::addStyleRule):
35392         * css/RuleSet.h:
35393         (RuleData):
35394         (RuleSet):
35395         * css/StyleResolver.cpp:
35396         (WebCore::makeRuleSet):
35397         (WebCore::StyleResolver::appendAuthorStyleSheets):
35398         (WebCore::StyleResolver::matchScopedAuthorRules):
35399         (WebCore::StyleResolver::locateSharedStyle):
35400         * css/StyleResolver.h:
35401         (StyleResolver):
35402         * css/StyleRule.cpp:
35403         (WebCore::StyleRuleBase::reportMemoryUsage):
35404         (WebCore::StyleRuleBase::destroy):
35405         (WebCore::StyleRuleBase::copy):
35406         (WebCore::StyleRuleBase::createCSSOMWrapper):
35407         * css/StyleRule.h:
35408         * css/StyleScopeResolver.cpp:
35409         (WebCore::StyleScopeResolver::reportMemoryUsage):
35410         * css/StyleScopeResolver.h:
35411         (WebCore):
35412         (StyleScopeResolver):
35413         * css/StyleSheetContents.cpp:
35414         (WebCore::childRulesHaveFailedOrCanceledSubresources):
35415
35416 2012-10-24  Joshua Bell  <jsbell@chromium.org>
35417
35418         IndexedDB: Cursor property value identities should be preserved
35419         https://bugs.webkit.org/show_bug.cgi?id=100051
35420
35421         Reviewed by Tony Chang.
35422
35423         Some W3C test submissions point out that subsequent accesses to cursor properties should
35424         yield the same value until the cursor advances. We handled this with custom binding code for
35425         IDBCursor.value but not IDBCursor.key or IDBCursor.primaryKey. The custom value code is
35426         being removed in webkit.org/b/100034 in favor of returning ScriptValue and the same fix can
35427         be applied to key/primaryKey.
35428
35429         Test: storage/indexeddb/cursor-properties.html
35430
35431         * Modules/indexeddb/IDBCursor.cpp: Compute/store/serve up ScriptValues instead of IDBKeys
35432         (WebCore::IDBCursor::key):
35433         (WebCore::IDBCursor::primaryKey):
35434         (WebCore::IDBCursor::setValueReady):
35435         * Modules/indexeddb/IDBCursor.h:
35436         (IDBCursor):
35437         (WebCore::IDBCursor::idbPrimaryKey): Expose this for callers that need access to the IDBKey
35438         * Modules/indexeddb/IDBCursor.idl:
35439         * Modules/indexeddb/IDBObjectStore.cpp: ... like this one.
35440         (WebCore):
35441         * Modules/indexeddb/IDBRequest.cpp:
35442         (WebCore::IDBRequest::dispatchEvent): Pass along script context, for the conversion.
35443         * bindings/v8/IDBBindingUtilities.cpp:
35444         (WebCore::idbKeyToScriptValue): New method for explicit conversion.
35445         (WebCore):
35446         * bindings/v8/IDBBindingUtilities.h:
35447         (WebCore):
35448
35449 2012-10-24  Ami Fischman  <fischman@chromium.org>
35450
35451         call to setNeedsLayout during RenderVideo::paintReplaced
35452         https://bugs.webkit.org/show_bug.cgi?id=100265
35453
35454         Reviewed by Eric Carlson.
35455
35456         Removed unnecessary call and added new defensive guards to catch erroneous setNeedsLayout() calls
35457         during paints earlier (so the offending calls are in the emitted stacktrace).
35458
35459         No new tests - new defensive checks are triggered by existing tests.
35460
35461         * page/FrameView.cpp:
35462         (WebCore::FrameView::paintContents): forbid setNeedsLayout() during painting
35463         * rendering/RenderObject.cpp:
35464         (WebCore):
35465         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::SetLayoutNeededForbiddenScope):
35466         (WebCore::RenderObject::SetLayoutNeededForbiddenScope::~SetLayoutNeededForbiddenScope):
35467         * rendering/RenderObject.h:
35468         (RenderObject):
35469         (SetLayoutNeededForbiddenScope): added helper class for forbidding setNeedsLayout() in a scope.
35470         * rendering/RenderVideo.cpp:
35471         (WebCore::RenderVideo::paintReplaced): drop the offending & unnecessary call to updatePlayer().
35472
35473 2012-10-24  Adam Barth  <abarth@webkit.org>
35474
35475         [V8] ActiveDOMObjectEpilogueVisitor is unnecessary and can be deleted
35476         https://bugs.webkit.org/show_bug.cgi?id=100208
35477
35478         Reviewed by Eric Seidel.
35479
35480         Rather than clearing and re-establishing the weak callback for
35481         ActiveDOMObjects during every GC, this patch puts all the
35482         ActiveDOMObjects with pending activity into an object group with a live
35483         object, causing them not to be garbage collected.
35484
35485         In addition to simplifying this code, this patch makes the patch in
35486         https://bugs.webkit.org/show_bug.cgi?id=100175 much easier because
35487         V8GCController no longer needs to know how to configure the weak
35488         callbacks for these objects.
35489
35490         * bindings/v8/V8GCController.cpp:
35491         (WebCore::ActiveDOMObjectPrologueVisitor::ActiveDOMObjectPrologueVisitor):
35492         (ActiveDOMObjectPrologueVisitor):
35493         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
35494         (WebCore::V8GCController::majorGCPrologue):
35495         (WebCore::V8GCController::majorGCEpilogue):
35496         * bindings/v8/V8PerIsolateData.cpp:
35497         (WebCore::V8PerIsolateData::V8PerIsolateData):
35498         * bindings/v8/V8PerIsolateData.h:
35499         (WebCore::V8PerIsolateData::liveRoot):
35500         (V8PerIsolateData):
35501
35502 2012-10-24  Brady Eidson  <beidson@apple.com>
35503
35504         Add a strategy for loader customization.
35505         https://bugs.webkit.org/show_bug.cgi?id=100278
35506
35507         Reviewed by Alexey Proskuryakov.
35508
35509         It's empty for now and does nothing, just like the goggles.
35510
35511         * WebCore.gypi:
35512         * WebCore.vcproj/WebCore.vcproj:
35513         * WebCore.xcodeproj/project.pbxproj:
35514         * platform/PlatformStrategies.h:
35515         (WebCore::PlatformStrategies::loaderStrategy):
35516         (PlatformStrategies):
35517         (WebCore::PlatformStrategies::PlatformStrategies):
35518
35519 2012-10-24  Tony Chang  <tony@chromium.org>
35520
35521         Setting width of a flexitem causes the adjacent flex item to be displayed poorly.
35522         https://bugs.webkit.org/show_bug.cgi?id=99925
35523
35524         Reviewed by Ojan Vafai.
35525
35526         Make sure that we always repaint when moving a child. This is similar to what RenderDeprecatedFlexibleBox does.
35527
35528         Test: css3/flexbox/repaint-during-resize-no-flex.html
35529
35530         * rendering/RenderFlexibleBox.cpp:
35531         (WebCore::RenderFlexibleBox::setFlowAwareLocationForChild): Move logic for repaining into the helper method
35532         for setting the location of a child.
35533         (WebCore::RenderFlexibleBox::layoutColumnReverse): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35534         (WebCore::RenderFlexibleBox::adjustAlignmentForChild): Remove code for repaint since it's now in setFlowAwareLocationForChild.
35535
35536 2012-10-24  Simon Fraser  <simon.fraser@apple.com>
35537
35538         Fix CALayer hiearchy when combining tiling with preserve-3d
35539         https://bugs.webkit.org/show_bug.cgi?id=100205
35540
35541         Reviewed by Dean Jackson.
35542
35543         When an element has "transform-style: preserve-3d", its GraphicsLayerCA has a
35544         m_structuralLayer which is a CATransformLayer. The primary CALayer which contains rendered
35545         content becomes a sublayer of the CATransformLayer. If the element has backface-visibility:hidden,
35546         it is the primary layer that is set to be single-sided.
35547         
35548         In r131940 we started to use TileCaches in place of CATiledLayer. TileCaches work via
35549         "customSublayers" returned from the PlatformCALayer, where the custom sublayer is 
35550         the tile cache container layer. However, the custom sublayers were being added as
35551         children of the structural (CATransformLayer) layer, not of the primary (CALayer) layer,
35552         thus they were not affected by the doubleSided property.
35553         
35554         This change cleans up the confusing code in GraphicsLayerCA::updateSublayerList()
35555         by maintaining two vectors of PlatformCALayers, one for sublayers of the structural
35556         layer, and one for sublayers of the primary layer. It adds custom sublayers to
35557         the latter list, so now the tile cache container layer becomes a sublayer of
35558         the primary layer, so is affected by that layer's doubleSided property.
35559
35560         Test: compositing/tiling/backface-preserve-3d-tiled.html
35561
35562         * platform/graphics/ca/GraphicsLayerCA.cpp:
35563         (WebCore::GraphicsLayerCA::updateSublayerList):
35564
35565 2012-10-23  Zhenyao Mo  <zmo@google.com>
35566
35567         Update mozilla's CheckedInt.h to the latest version
35568         https://bugs.webkit.org/show_bug.cgi?id=100177
35569
35570         Reviewed by Kenneth Russell.
35571
35572         * html/canvas/CheckedInt.h: Sync with mozilla's copy with minumum modifications.
35573         (detail):
35574         (IsSupportedPass2):
35575         (IsSupported):
35576         (UnsignedType):
35577         (IsSigned):
35578         (TwiceBiggerType):
35579         (PositionOfSignBit):
35580         (MinValue):
35581         (MaxValue):
35582         (WebCore::detail::HasSignBit):
35583         (WebCore::detail::BinaryComplement):
35584         (WebCore::detail::IsInRange):
35585         (WebCore::detail::IsAddValid):
35586         (WebCore::detail::IsSubValid):
35587         (WebCore::detail::IsMulValid):
35588         (WebCore::detail::IsDivValid):
35589         (WebCore::detail::OppositeIfSignedImpl::run):
35590         (WebCore::detail::OppositeIfSigned):
35591         (WebCore):
35592         (CheckedInt):
35593         (WebCore::CheckedInt::CheckedInt):
35594         (WebCore::CheckedInt::value):
35595         (WebCore::CheckedInt::isValid):
35596         (WebCore::CheckedInt::operator -):
35597         (WebCore::CheckedInt::operator ==):
35598         (WebCore::CheckedInt::operator++):
35599         (WebCore::CheckedInt::operator--):
35600         (CastToCheckedIntImpl):
35601         (WebCore::detail::CastToCheckedIntImpl::run):
35602         (WebCore::castToCheckedInt):
35603         (WebCore::operator ==):
35604         * html/canvas/DataView.cpp: change valid() to isValid().
35605         (WebCore::DataView::create):
35606         * html/canvas/WebGLBuffer.cpp: Ditto.
35607         (WebCore::WebGLBuffer::associateBufferDataImpl):
35608         (WebCore::WebGLBuffer::associateBufferSubDataImpl):
35609         * html/canvas/WebGLRenderingContext.cpp: Ditto.
35610         (WebCore):
35611         (WebCore::WebGLRenderingContext::drawArrays):
35612         * platform/graphics/GraphicsContext3D.cpp: Ditto.
35613         (WebCore::GraphicsContext3D::computeImageSizeInBytes):
35614
35615 2012-10-24  Noam Rosenthal  <noam.rosenthal@nokia.com>
35616
35617         [Qt-on-Mac] GraphicsSurfaces should not create a global IOSurface handle
35618         https://bugs.webkit.org/show_bug.cgi?id=89885
35619
35620         Reviewed by Kenneth Rohde Christiansen.
35621
35622         Use mach_port instead of global tokens for IOSurfaces.
35623         Global IOSurfaces are accessible from other processes using their handle, while mach_ports
35624         can only be shared directly via IPC.
35625
35626         Tested by existing WebGL tests.
35627
35628         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
35629         (GraphicsSurfaceToken):
35630         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
35631         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
35632         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
35633
35634 2012-10-24  Rick Byers  <rbyers@chromium.org>
35635
35636         image-set doesn't round-trip properly with cssText
35637         https://bugs.webkit.org/show_bug.cgi?id=99725
35638
35639         Reviewed by Beth Dakin.
35640
35641         Fix serialization of -webkit-image-set rules to use the same format as
35642         is used for parsing.
35643
35644         Test: fast/css/image-set-setting.html
35645
35646         * css/CSSImageSetValue.cpp:
35647         (WebCore::CSSImageSetValue::customCssText):
35648         * css/CSSValueList.h:
35649         (WebCore::CSSValueList::item): Add const overload
35650
35651 2012-10-24  Jonathan Feldstein  <jfeldstein@rim.com>
35652
35653         BlackBerry fix for webgl-depth-texture.html
35654         https://bugs.webkit.org/show_bug.cgi?id=100258
35655
35656         Reviewed by Yong Li.
35657
35658         Removed a platform specific define that is unnecessary.
35659
35660         * platform/graphics/GraphicsContext3D.cpp:
35661         (WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
35662
35663 2012-10-24  Nico Weber  <thakis@chromium.org>
35664
35665         Honor image orientation in GraphicsContextSkia
35666         https://bugs.webkit.org/show_bug.cgi?id=100179
35667
35668         Reviewed by Stephen White.
35669
35670         Also fix a bug in ImageOrientation.h: Some of the values were
35671         switched. They now match the description in the exif spec at
35672         http://www.exif.org/Exif2-2.PDF page 18, and the notes at
35673         http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html and
35674         the picture at http://www.80sidea.com/archives/2316.
35675
35676         They showed up correctly in Safari because the orientation transform
35677         was done after flipping Y. Let the flipping happen later. I verified
35678         that flipping transformation order and fixing the exif enum cancelled
35679         each other out, so this has no effect on the apple port.
35680
35681         Not hooked up yet, so no observable difference.
35682
35683         * platform/graphics/BitmapImage.h:
35684         * platform/graphics/ImageOrientation.h:
35685         (WebCore::ImageOrientation::usesWidthAsHeight):
35686         (WebCore::ImageOrientation::fromEXIFValue):
35687         * platform/graphics/cg/GraphicsContextCG.cpp:
35688         (WebCore::GraphicsContext::drawNativeImage):
35689         * platform/graphics/skia/ImageSkia.cpp:
35690         (WebCore::paintSkBitmap):
35691         (WebCore::BitmapImage::draw):
35692         (WebCore):
35693
35694 2012-10-24  Alexey Proskuryakov  <ap@apple.com>
35695
35696         Fixed Windows path for SharedWorkerStrategy.h - it's in workers/, not platform/.
35697
35698         * WebCore.vcproj/WebCore.vcproj:
35699
35700 2012-10-24  Chris Fleizach  <cfleizach@apple.com>
35701
35702         AX: WebKit exposes abstract ARIA role range as AXSlider; should be generic AXGroup
35703         https://bugs.webkit.org/show_bug.cgi?id=100204
35704
35705         Reviewed by Beth Dakin.
35706
35707         Remove the "range" role as a valid ARIA role.
35708
35709         Test: platform/mac/accessibility/aria-slider-value.html
35710
35711         * accessibility/AccessibilityObject.cpp:
35712         (WebCore::createARIARoleMap):
35713
35714 2012-10-24  Florin Malita  <fmalita@chromium.org>
35715
35716         [Chromium] SVG repaint issues
35717         https://bugs.webkit.org/show_bug.cgi?id=99874
35718
35719         Reviewed by Levi Weintraub.
35720
35721         RenderSVGRoot::paintReplaced() converts the container offsets to a relative transform,
35722         but in doing so it ends up accumulating subpixel rounding deltas twice: first for 
35723         adjustedPaintOffset and second in localToParentTransform(). If coordinates are on
35724         half-pixel boundaries, the 2x rounding delta yields a full pixel drift and we end up
35725         painting at the wrong location.
35726
35727         This can be avoided by using localToBorderBoxTransform() directly, which (unlike
35728         localToParentTransform()) doesn't perform rounding.
35729
35730         No new tests: existing pixel results cover this change after rebaseline.
35731
35732         * rendering/svg/RenderSVGRoot.cpp:
35733         (WebCore::RenderSVGRoot::paintReplaced):
35734
35735 2012-10-24  Levi Weintraub  <leviw@chromium.org>
35736
35737         Fixing the Chromium build after typo in r132367.
35738
35739         * WebCore.gypi:
35740
35741 2012-10-24  Nico Weber  <thakis@chromium.org>
35742
35743         [chromium] Respect image orientation in image dragging code
35744         https://bugs.webkit.org/show_bug.cgi?id=100200
35745
35746         Reviewed by Tony Chang.
35747
35748         Based on the corresponding code in DragImageMac.mm.  The image
35749         rotation code isn't hooked up yet, so no observable effect for now.
35750
35751         * platform/chromium/DragImageChromiumSkia.cpp:
35752         (WebCore::createDragImageFromImage):
35753
35754 2012-10-24  Michael Saboff  <msaboff@apple.com>
35755
35756         Code cleanup after r132165
35757         https://bugs.webkit.org/show_bug.cgi?id=100135
35758
35759         Reviewed by Geoffrey Garen.
35760
35761         Fixed up some unneccesary and inefficient constructs in MarkupTokenBase.h.
35762
35763         Code clean up without functional changes, therefore no new tests.
35764
35765         * xml/parser/MarkupTokenBase.h:
35766         (WebCore::MarkupTokenBase::beginEndTag): Changed argument to be const Vector<LChar, 32>&.
35767         (WebCore::MarkupTokenBase::appendToCharacter): Changed argument to be const Vector<LChar, 32>&.
35768         (WebCore::MarkupTokenBase::appendToName): Elimintated inline.
35769         (WebCore::MarkupTokenBase::name): Elimintated inline.
35770         (WebCore::MarkupTokenBase::nameString): Elimintated inline.
35771
35772 2012-10-24  Toni Barzic  <tbarzic@chromium.org>
35773
35774         Crash when trying to write exception message to null console
35775         https://bugs.webkit.org/show_bug.cgi?id=99658
35776
35777         Reviewed by Adam Barth.
35778
35779         DOMWindow::console may return NULL, so we should do a NULL check before adding message to it.
35780         This may happen e.g. if a worker throws an exception just as the document is being replaced in the view.
35781         The exception task could be processes after current window in the frame changes, and console in the document window is nulled.
35782
35783         Test: fast/workers/worker-exception-during-navigation.html
35784
35785         * dom/Document.cpp:
35786         (WebCore::Document::addMessage):
35787
35788 2012-10-24  Cosmin Truta  <ctruta@rim.com>
35789
35790         Incorrect conditional use of LogFTP
35791         https://bugs.webkit.org/show_bug.cgi?id=100260
35792
35793         Reviewed by Alexey Proskuryakov.
35794
35795         Use LogFTP if !LOG_DISABLED, to allow toggling ASSERTIONS_DISABLED_DEFAULT
35796         without breaking the build.
35797
35798         * html/FTPDirectoryDocument.cpp:
35799         (WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
35800
35801 2012-10-23  Alexey Proskuryakov  <ap@apple.com>
35802
35803         Add a strategy for shared workers
35804         https://bugs.webkit.org/show_bug.cgi?id=100165
35805
35806         Reviewed by Brady Eidson.
35807
35808         Also a little bit of alphabetization.
35809
35810         * WebCore.gypi:
35811         * WebCore.vcproj/WebCore.vcproj:
35812         * WebCore.xcodeproj/project.pbxproj:
35813         * platform/PlatformStrategies.h:
35814         * workers/SharedWorkerStrategy.h: Added.
35815
35816 2012-10-24  David Barton  <dbarton@mathscribe.com>
35817
35818         [MathML] Timeouts on linux after r132264
35819         https://bugs.webkit.org/show_bug.cgi?id=100202
35820
35821         Reviewed by Eric Seidel.
35822
35823         When building a stretched operator, such as a large parenthesis or bracket, we need to
35824         check that the extension glyph's height is > 0, to avoid an infinite loop. The 0 height
35825         can occur if the glyph is missing on the host system.
35826
35827         Tested by existing tests.
35828
35829         * rendering/mathml/RenderMathMLOperator.cpp:
35830         (WebCore::RenderMathMLOperator::updateFromElement):
35831
35832 2012-10-24  Parth Patel  <parpatel@rim.com>
35833
35834         [BlackBerry] Extending existing ThreadUnsafe singletons in webkit to
35835         Generic ThreadUnsafe Singleton
35836         https://bugs.webkit.org/show_bug.cgi?id=100145
35837
35838         Reviewed by Rob Buis.
35839
35840         Extending the singletons to generic singleton and changing
35841         getInstance() in IconDatabaseClientBlackBerry to instance()
35842         to match the generic singleton template.
35843
35844         Reviewed Internally by Yong Li.
35845
35846         Tests are not modified and added as there was no behavioural change.
35847
35848         * platform/blackberry/SharedTimerBlackBerry.cpp:
35849         (SharedTimerBlackBerry):
35850         (WebCore):
35851
35852 2012-10-24  Ilya Tikhonovsky  <loislo@chromium.org>
35853
35854         Web Inspector: NMI add instrumentation for ResourceBuffer. It gives us 10mb on gmail
35855         https://bugs.webkit.org/show_bug.cgi?id=100254
35856
35857         Reviewed by Yury Semikhatsky.
35858
35859         * loader/ResourceBuffer.cpp:
35860         (WebCore::ResourceBuffer::reportMemoryUsage):
35861         (WebCore):
35862         * loader/ResourceBuffer.h:
35863         (ResourceBuffer):
35864
35865 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35866
35867         Allow ports to override text track rendering style
35868         https://bugs.webkit.org/show_bug.cgi?id=97800
35869         <rdar://problem/12044964>
35870
35871         Unreviewed Build fix.
35872         
35873         CGFloat is already a float in a 32-bit build so narrowPrecisionToFloat() is unnecessary
35874
35875         * page/CaptionUserPreferencesMac.mm:
35876         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale):
35877
35878 2012-10-24  Eric Carlson  <eric.carlson@apple.com>
35879
35880         Allow ports to override text track rendering style
35881         https://bugs.webkit.org/show_bug.cgi?id=97800
35882         <rdar://problem/12044964>
35883
35884         Reviewed by Maciej Stachowiak.
35885
35886         * WebCore.exp.in: Export new WebkitSystemInterface functions.
35887         * WebCore.xcodeproj/project.pbxproj: Add CaptionUserPreferences.h, CaptionUserPreferencesMac.mm,
35888             and CaptionUserPreferencesMac.h.
35889
35890         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
35891             background, and text independently.
35892
35893         * html/HTMLMediaElement.cpp:
35894         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
35895         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
35896         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
35897         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
35898         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
35899         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
35900             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
35901         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
35902         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
35903             setClosedCaptionsVisible
35904         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
35905
35906         * html/shadow/MediaControlElements.cpp:
35907         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
35908             variable. Get caption font scale from theme instead of hard coding.
35909         * html/shadow/MediaControlElements.h:
35910
35911         * html/track/TextTrack.cpp:
35912         (WebCore::TextTrack::TextTrack): Change attributes from String to AtomicString.
35913         (WebCore::TextTrack::isValidKindKeyword): Ditto.
35914         (WebCore::TextTrack::setKind): Ditto.
35915         (WebCore::TextTrack::setMode): Ditto.
35916         (WebCore::TextTrack::mode): Ditto.
35917         * html/track/TextTrack.h:
35918         (WebCore::TextTrack::create): Ditto.
35919         (WebCore::TextTrack::kind): Ditto.
35920         (WebCore::TextTrack::label): Ditto.
35921         (WebCore::TextTrack::setLabel): Ditto.
35922         (WebCore::TextTrack::language): Ditto.
35923         (WebCore::TextTrack::setLanguage): Ditto.
35924
35925         * html/track/TextTrackCue.cpp:
35926         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
35927         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
35928             shadow pseudo id so it can be used elsewhere.
35929         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
35930         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
35931             shadow pseudo id so it can be used elsewhere.
35932         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
35933         (WebCore::TextTrackCue::updateDisplayTree):
35934         * html/track/TextTrackCue.h:
35935
35936         * page/CaptionUserPreferences.h: Added.
35937         * page/CaptionUserPreferencesMac.h: Added.
35938         * page/CaptionUserPreferencesMac.mm: Added.
35939         (WebCore::userCaptionPreferencesChangedNotificationCallback):
35940         (WebCore::CaptionUserPreferencesMac::CaptionUserPreferencesMac):
35941         (WebCore::CaptionUserPreferencesMac::~CaptionUserPreferencesMac):
35942         (WebCore::CaptionUserPreferencesMac::userHasCaptionPreferences): New, passthrough to WKSI function.
35943         (WebCore::CaptionUserPreferencesMac::userPrefersCaptions): Ditto.
35944         (WebCore::CaptionUserPreferencesMac::captionsWindowColor): Return Color with user's caption window color preference.
35945         (WebCore::CaptionUserPreferencesMac::captionsBackgroundColor): Return Color with user's caption 
35946             background color preference.
35947         (WebCore::CaptionUserPreferencesMac::captionsTextColor): Return Color with user's caption text color preference.
35948         (WebCore::CaptionUserPreferencesMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
35949         (WebCore::CaptionUserPreferencesMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
35950             or webkit-text-stroke property.
35951         (WebCore::CaptionUserPreferencesMac::cssColorProperty): Return a String with css to set a property 
35952             with a color value.
35953         (WebCore::CaptionUserPreferencesMac::captionsTextEdgeStyle): Return a String with css to style caption 
35954             text with the user's preferred text edge stye.
35955         (WebCore::CaptionUserPreferencesMac::captionsDefaultFont): Return a String with css to style caption
35956             text with the user's preferred font.
35957         (WebCore::CaptionUserPreferencesMac::captionsStyleSheetOverride): Return a String with css to style captions
35958             with the user's preferred style.
35959         (WebCore::CaptionUserPreferencesMac::captionFontSizeScale): Return the user's preferred caption font scale.
35960         (WebCore::CaptionUserPreferencesMac::captionPreferencesChanged): Notify listeners of caption preference change.
35961         (WebCore::CaptionUserPreferencesMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
35962             changes listener.
35963         (WebCore::CaptionUserPreferencesMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
35964             changes listener.
35965         (WebCore::CaptionUserPreferencesMac::updateCaptionStyleSheetOveride): New, if theme has a captions style sheet override,
35966             inject it into the current page group, otherwise remove injected sheet.
35967
35968         * page/PageGroup.cpp:
35969         (WebCore::PageGroup::captionPreferences):
35970         (WebCore::PageGroup::registerForCaptionPreferencesChangedCallbacks): New, passthrough to platform specific function
35971             of the same name.
35972         (WebCore::PageGroup::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
35973         (WebCore::PageGroup::userPrefersCaptions): Ditto.
35974         (WebCore::PageGroup::userHasCaptionPreferences): Ditto.
35975         (WebCore::PageGroup::captionFontSizeScale): Ditto.
35976         * page/PageGroup.h:
35977
35978         * platform/mac/WebCoreSystemInterface.h: Updated.
35979         * platform/mac/WebCoreSystemInterface.mm: Ditto.
35980
35981 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
35982
35983         Web Inspector: Introduce workspace provider as a content providing backend for project.
35984         https://bugs.webkit.org/show_bug.cgi?id=100244
35985
35986         Reviewed by Pavel Feldman.
35987
35988         Introduced WorkspaceProvider interface as a content providing backend for project.
35989         Added NetworkWorkspaceProvider as a network based (default) implementation.
35990
35991         * WebCore.gypi:
35992         * WebCore.vcproj/WebCore.vcproj:
35993         * inspector/compile-front-end.py:
35994         * inspector/front-end/CompilerScriptMapping.js:
35995         (WebInspector.CompilerScriptMapping):
35996         * inspector/front-end/DebuggerScriptMapping.js:
35997         (WebInspector.DebuggerScriptMapping):
35998         * inspector/front-end/NetworkUISourceCodeProvider.js:
35999         (WebInspector.NetworkUISourceCodeProvider):
36000         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
36001         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
36002         (WebInspector.NetworkUISourceCodeProvider.prototype._addFile):
36003         * inspector/front-end/NetworkWorkspaceProvider.js: Added.
36004         (WebInspector.NetworkWorkspaceProvider):
36005         (WebInspector.NetworkWorkspaceProvider.prototype.requestFileContent):
36006         (WebInspector.NetworkWorkspaceProvider.prototype.setFileContent):
36007         (WebInspector.NetworkWorkspaceProvider.prototype.searchInFileContent):
36008         (WebInspector.NetworkWorkspaceProvider.prototype.addFile):
36009         (WebInspector.NetworkWorkspaceProvider.prototype.removeFile):
36010         (WebInspector.NetworkWorkspaceProvider.prototype.reset):
36011         * inspector/front-end/SASSSourceMapping.js:
36012         (WebInspector.SASSSourceMapping):
36013         (_bindUISourceCode):
36014         * inspector/front-end/ScriptSnippetModel.js:
36015         (WebInspector.ScriptSnippetModel):
36016         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
36017         * inspector/front-end/WebKit.qrc:
36018         * inspector/front-end/Workspace.js:
36019         (WebInspector.FileDescriptor):
36020         (WebInspector.WorkspaceProvider):
36021         (WebInspector.WorkspaceProvider.prototype.requestFileContent):
36022         (WebInspector.WorkspaceProvider.prototype.searchInFileContent):
36023         (WebInspector.WorkspaceProvider.prototype.addEventListener):
36024         (WebInspector.WorkspaceProvider.prototype.removeEventListener):
36025         (WebInspector.Project):
36026         (WebInspector.Project.prototype.reset):
36027         (WebInspector.Project.prototype._fileAdded):
36028         (WebInspector.Project.prototype._fileRemoved):
36029         (WebInspector.Project.prototype.requestFileContent):
36030         (WebInspector.Project.prototype.searchInFileContent):
36031         (WebInspector.Workspace):
36032         (WebInspector.Workspace.prototype.addProject):
36033         (WebInspector.Workspace.prototype.project):
36034         * inspector/front-end/inspector.html:
36035         * inspector/front-end/inspector.js:
36036
36037 2012-10-24  Nikita Vasilyev  <me@elv1s.ru>
36038
36039         Web Inspector: Styles pane: Don't select whole value when I select just a part
36040         https://bugs.webkit.org/show_bug.cgi?id=100242
36041
36042         Reviewed by Alexander Pavlov.
36043
36044         * inspector/front-end/StylesSidebarPane.js:
36045         (WebInspector.StylePropertiesSection.prototype._handleEmptySpaceClick):
36046         (WebInspector.StylePropertyTreeElement.prototype):
36047
36048 2012-10-24  Vsevolod Vlasov  <vsevik@chromium.org>
36049
36050         Web Inspector: UiSourceCode should rely on the workspace as a content provider.
36051         https://bugs.webkit.org/show_bug.cgi?id=100216
36052
36053         Reviewed by Pavel Feldman.
36054
36055         Workspace is now passed to UISourceCode to be used as a content provider.
36056         Content providers are now stored in the workspace/project.
36057         Next step would be to move content providers to workspace providers.
36058
36059         * inspector/front-end/BreakpointManager.js:
36060         (WebInspector.BreakpointManager.breakpointStorageId):
36061         * inspector/front-end/UISourceCode.js:
36062         (WebInspector.UISourceCode):
36063         (WebInspector.UISourceCode.prototype.contentType):
36064         (WebInspector.UISourceCode.prototype.requestContent):
36065         (WebInspector.UISourceCode.prototype.requestOriginalContent):
36066         (WebInspector.UISourceCode.prototype._commitContent):
36067         (WebInspector.UISourceCode.prototype.searchInContent):
36068         * inspector/front-end/Workspace.js:
36069         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
36070         (WebInspector.Project):
36071         (WebInspector.Project.prototype.addUISourceCode):
36072         (WebInspector.Project.prototype.removeUISourceCode):
36073         (WebInspector.Project.prototype.uiSourceCodes):
36074         (WebInspector.Project.prototype.requestFileContent):
36075         (WebInspector.Project.prototype.searchInFileContent):
36076         (WebInspector.Workspace):
36077         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
36078         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
36079         (WebInspector.Workspace.prototype.reset):
36080
36081 2012-10-24  Zeno Albisser  <zeno@webkit.org>
36082
36083         Implement GraphicsSurface for Windows.
36084         https://bugs.webkit.org/show_bug.cgi?id=98147
36085
36086         Reviewed by Kenneth Rohde Christiansen.
36087
36088         * Target.pri:
36089             Include GraphicsSurfaceWin.cpp in SOURCES on Windows.
36090         * platform/graphics/surfaces/GraphicsSurface.h:
36091             Add typedef for PlatformGraphicsSurface on Windows.
36092         * platform/graphics/surfaces/GraphicsSurfaceToken.h:
36093             Add typedef for BufferHandle on Windows.
36094         (GraphicsSurfaceToken):
36095         * platform/graphics/surfaces/win/GraphicsSurfaceWin.cpp: Added.
36096             The GraphicsSurface implementation on Windows relies on the
36097             availability of ANGLE and the EGL_ANGLE_query_surface_pointer extension.
36098             For Qt this requirements are implicitly satisfied, when Qt is built
36099             on Windows and QT_CONFIG contains OpenGLES2.
36100             The GraphicsSurface then renders a given texture onto an offscreen
36101             pixel buffer surface, queries the surface pointer using the
36102             EGL_ANGLE_query_surface_pointer extension, and transmits the received
36103             surface pointer (share handle) over IPC.
36104             On the UIProcess side, the surface pointer can then be resolved
36105             using eglCreatePbufferFromClientBuffer.
36106         (WebCore):
36107         (WebCore::loadShader):
36108             Initialize the shaders needed for drawing onto the GraphicsSurface.
36109         (GraphicsSurfacePrivate):
36110         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
36111             In case of the instance being on the WebProcess side,
36112             create an EGLContext that shares the texture objects with the provided
36113             share context. Also create two pixel buffer surfaces, one as front- and
36114             one as backbuffer.
36115             Query the surface pointers for the pixel buffer surfaces and initialize
36116             the GraphicsSurfaceToken that can be passed over IPC later.
36117         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
36118             Release all aquired resources and destroy the pixel buffer surfaces.
36119             Also close the EGL-Display connection.
36120         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
36121             Make the belonging context current on the back buffer surface
36122             and use drawTexture() to draw the provided texture onto the GraphicsSurface.
36123         (WebCore::GraphicsSurfacePrivate::makeCurrent):
36124             Save the previously current context, then make the context belonging
36125             to the GraphicsSurface current.
36126         (WebCore::GraphicsSurfacePrivate::doneCurrent):
36127             Restore the context that was current before calling makeCurrent().
36128         (WebCore::GraphicsSurfacePrivate::swapBuffers):
36129             Swap front and back buffer surfaces and handles.
36130         (WebCore::GraphicsSurfacePrivate::token):
36131         (WebCore::GraphicsSurfacePrivate::frontBufferTextureID):
36132             This function is meant to be called from the UIProcess side.
36133             If no front buffer surface has been created before for the current
36134             front buffer handle, one will be created.
36135             Then eglBindTexImage will be used to actually bind the current
36136             front buffer surface to a texture as a source for drawing.
36137         (WebCore::GraphicsSurfacePrivate::initialFrontBufferShareHandle):
36138         (WebCore::GraphicsSurfacePrivate::frontBufferShareHandle):
36139         (WebCore::GraphicsSurfacePrivate::backBufferShareHandle):
36140         (WebCore::GraphicsSurfacePrivate::releaseFrontBufferTexture):
36141             Free the resources related to the front buffer surface.
36142             On the UIProcess side we never actually bind the back buffer.
36143         (WebCore::GraphicsSurfacePrivate::initializeShaderProgram):
36144             Initialize and link the shader programs necessary for drawing
36145             onto the GraphicsSurface.
36146         (WebCore::GraphicsSurfacePrivate::createSurfaceFromShareHandle):
36147             Creates a single pixel buffer surface from a share Handle.
36148             This function will be called on the UIProcess side,
36149             for the front buffer handle, whenever the buffers have been swapped.
36150         (WebCore::GraphicsSurfacePrivate::drawTexture):
36151             The WebProcess uses this function to draw a given
36152             texture onto the GraphicsSurface's back buffer.
36153         (WebCore::GraphicsSurface::platformExport):
36154         (WebCore::GraphicsSurface::platformGetTextureID):
36155         (WebCore::GraphicsSurface::platformCopyToGLTexture):
36156         (WebCore::GraphicsSurface::platformCopyFromTexture):
36157         (WebCore::GraphicsSurface::platformPaintToTextureMapper):
36158             Uses TextureMapperGL::drawTexture() to draw the front buffer texture
36159             to the TextureMapper on the UIProcess side.
36160         (WebCore::GraphicsSurface::platformFrontBuffer):
36161         (WebCore::GraphicsSurface::platformSwapBuffers):
36162         (WebCore::GraphicsSurface::platformCreate):
36163         (WebCore::GraphicsSurface::platformImport):
36164         (WebCore::GraphicsSurface::platformLock):
36165         (WebCore::GraphicsSurface::platformUnlock):
36166         (WebCore::GraphicsSurface::platformDestroy):
36167
36168 2012-09-27  Yury Semikhatsky  <yurys@chromium.org>
36169
36170         Web Inspector: provide memory instrumentation for ListHashSet
36171         https://bugs.webkit.org/show_bug.cgi?id=97786
36172
36173         Reviewed by Vsevolod Vlasov.
36174
36175         Switched existing usages of addListHashSet to the generic instrumentation mechanism
36176         as it should work just just fine now that there is a memory instrumentation of
36177         ListHashSet.
36178
36179         * dom/DocumentEventQueue.cpp:
36180         * dom/DocumentStyleSheetCollection.cpp:
36181         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
36182         * loader/cache/CachedResourceLoader.cpp:
36183         (WebCore::CachedResourceLoader::reportMemoryUsage):
36184
36185 2012-10-24  Charles Wei  <charles.wei@torchmobile.com.cn>
36186
36187         [BlackBerry] Credentials not re-used for a redirected request to the same domain
36188         https://bugs.webkit.org/show_bug.cgi?id=100193
36189
36190         Reviewed by George Staikos.
36191
36192         We should store the credentials in the redirection response handler, if the request is challenged.
36193         Because the redirect response suggests the authentication succeeds. 
36194
36195         Test: http://browsertest01.rim.net/authbasic
36196
36197         * platform/network/blackberry/NetworkJob.cpp:
36198         (WebCore::NetworkJob::handleRedirect):
36199
36200 2012-10-24  Alexander Pavlov  <apavlov@chromium.org>
36201
36202         Web Inspector: Implement CSS reload upon related SASS resource saving
36203         https://bugs.webkit.org/show_bug.cgi?id=98024
36204
36205         Reviewed by Vsevolod Vlasov.
36206
36207         SASS-generated debug info in CSS is parsed to find out which SASS files contributed to this stylesheet.
36208         Upon SASS file save in the Sources panel, all affected external CSS stylesheets are reloaded to update
36209         the page styles (presuming that SASS is running in the "watch" mode during the development cycle).
36210
36211         * English.lproj/localizedStrings.js:
36212         * inspector/front-end/SASSSourceMapping.js:
36213         (WebInspector.SASSSourceMapping):
36214         (WebInspector.SASSSourceMapping.prototype._fileSaveFinished.callback):
36215         (WebInspector.SASSSourceMapping.prototype._reloadCSS):
36216         (_bindUISourceCode):
36217         (_addCSSURLforSASSURL):
36218         * inspector/front-end/Settings.js:
36219         * inspector/front-end/SettingsScreen.js:
36220         (WebInspector.GenericSettingsTab):
36221
36222 2012-10-23  Yury Semikhatsky  <yurys@chromium.org>
36223
36224         Memory instrumentation: don't count agent-specific front-ends separately
36225         https://bugs.webkit.org/show_bug.cgi?id=100087
36226
36227         Reviewed by Alexander Pavlov.
36228
36229         Pointers to domain-specific inspector front-end interfaces are reported as
36230         weak pointers instead of members to avoid double-counting.
36231
36232         Test by comparing set of reported instrumented objects with the set of objects
36233         allocated by tcmalloc.
36234
36235         * inspector/InspectorDOMStorageAgent.cpp:
36236         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage):
36237         * inspector/InspectorDOMStorageResource.cpp:
36238         (WebCore::InspectorDOMStorageResource::reportMemoryUsage):
36239         * inspector/InspectorProfilerAgent.cpp:
36240         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
36241
36242 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
36243
36244         Regression(r132303) Broke debug build when SHADOW_DOM is enabled but STYLE_SCOPED is disabled
36245         https://bugs.webkit.org/show_bug.cgi?id=100203
36246
36247         Unreviewed Build fix.
36248
36249         Fix compilation error in StyleResolver.h when SHADOW_DOM flag is
36250         set and STYLE_SCOPED is not.
36251
36252         No new tests, no behavior change.
36253
36254         * css/StyleResolver.h:
36255         (WebCore::StyleResolver::ensureScopeResolver):
36256
36257 2012-10-23  Andreas Kling  <kling@webkit.org>
36258
36259         Remove specialized hash traits for GlyphPages.
36260         <http://webkit.org/b/100185>
36261
36262         Reviewed by Dan Bernstein.
36263
36264         Now that the default minimum table size has been lowered for all tables, there's no need
36265         for this specialization anymore.
36266
36267         * platform/graphics/FontFallbackList.h:
36268         (FontFallbackList):
36269
36270 2012-10-23  Kent Tamura  <tkent@chromium.org>
36271
36272         Multiple fields input UI: Don't use CSS properties for physical direction
36273         https://bugs.webkit.org/show_bug.cgi?id=100195
36274
36275         Reviewed by Kentaro Hara.
36276
36277         CSS declarations such as "padding: 0 0 0 1px;" "margin-left: 0.2em;" are
36278         not direction-neutral, and makes unexpected appearance in RTL. We should
36279         use -webkit-padding-start or -webkit-margin-start.
36280
36281         No new tests. Covered by date-multiple-fields-appearance-l10n.html and
36282         month-multiple-fields-appearance-l10n.html
36283
36284         * css/html.css:
36285         (input[type="date"]): Use padding:0 and -webkit-padding-start:1px;
36286         (input[type="datetime"]): Ditto.
36287         (input[type="datetime-local"]): Ditto.
36288         (input[type="month"]): Ditto.
36289         (input[type="time"]): Ditto.
36290         (input[type="week"]): Ditto.
36291         (input[type="week"]::-webkit-inner-spin-button):
36292         Use -webkit-margin-start. Also use an integral pixel size instead of
36293         avoid a fractional relative size to avoid subpixel layout rounding.
36294
36295 2012-10-23  Dan Bernstein  <mitz@apple.com>
36296
36297         The font cache evicts inactive font data too aggressively when not under memory pressure
36298         https://bugs.webkit.org/show_bug.cgi?id=100194
36299
36300         Reviewed by Sam Weinig.
36301
36302         Increasing the number of inactive font data objects the cache may hold increases the hit
36303         rate, leading to improved page load performance. When memory pressure is detected,
36304         MemoryPressureHandler evicts all inactive objects, regardless of the limits we are
36305         increasing here.
36306
36307         * platform/graphics/FontCache.cpp:
36308         (WebCore): Increased the maximum number of inactive font data objects in the cache from 50
36309         to 225, and the number of objects to evict once the limit is met from 20 to 25.
36310
36311 2012-10-23  Takashi Sakamoto  <tasak@google.com>
36312
36313         [Shadow DOM] Needs @host rule for ShadowDOM styling
36314         https://bugs.webkit.org/show_bug.cgi?id=88606
36315
36316         Reviewed by Hajime Morita.
36317
36318         Implemented @host-@rules according to the shadow dom spec:
36319         http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#host-at-rule
36320         The design doc is:
36321         https://docs.google.com/document/d/1P2yorchF8lci2sccr-mVSRf2dtvjKeiuyQWzCB2bEA8/edit
36322
36323         Test: fast/dom/shadow/athost-atrules.html
36324
36325         * css/CSSGrammar.y.in:
36326         Added rules for parsing @host @-rules.
36327         * css/CSSParser.cpp:
36328         (WebCore::CSSParser::detectAtToken):
36329         Added a new token "@host".
36330         (WebCore::CSSParser::createHostRule):
36331         Added a new method to create an @host @-rule, which is invoked from
36332         (WebCore):
36333         * css/CSSParser.h:
36334         Added a declaration of the above new method: createHostRule.
36335         * css/CSSPropertySourceData.h:
36336         Added HOST_RULE to enum Type.
36337         * css/RuleSet.cpp:
36338         (WebCore::RuleData::RuleData):
36339         Modified multiple bool arguments into one argument. Now it
36340         uses combinations of values from enum AddRuleFlags.
36341         (WebCore::RuleSet::addRule):
36342         (WebCore::RuleSet::addRegionRule):
36343         (WebCore::RuleSet::addStyleRule):
36344         Updated according to the RuleData's change.
36345         Modified to Invoke increaseSpecificity if the given rule is @host
36346         @-rule.
36347         (WebCore::RuleSet::addRulesFromSheet):
36348         Invoked addHostRule if the given rule is @host @-rule.
36349         * css/RuleSet.h:
36350         (RuleData):
36351         (WebCore::RuleData::increaseSpecificity):
36352         Added a new method to increase selector's specificity. This method is
36353         used to make @host @-rules' specificity larger than normal author
36354         rules' specificity.
36355         (RuleSet):
36356         * css/StyleResolver.cpp:
36357         (WebCore::makeRuleSet):
36358         (WebCore::StyleResolver::addHostRule):
36359         A wrapper method to invoke StyleScopeResolver::addHostRule. The method
36360         is used to make only StyleResolver know an implementation detail about
36361         class StyleScopeResolver.
36362         (WebCore::StyleResolver::appendAuthorStylesheets):
36363         Updated according to the RuleData's change.
36364         (WebCore::StyleResolver::styleSharingCandidateMatchesHostRules):
36365         A new method to find matched host rules when an element is given.
36366         This method invokes
36367         StyleScopeResolver::styleSharingCandidateMatchesHostRules to find
36368         matched host rules.
36369         (WebCore):
36370         (WebCore::StyleResolver::matchHostRules):
36371         A new method to find matched host rules when an element is given.
36372         This method invokes StyleScopeResolver::matchHostRules to find
36373         matched host rules.
36374         (WebCore::StyleResolver::matchScopedAuthorRules):
36375         Modified to invoke matchHostRules.
36376         (WebCore::StyleResolver::locateSharedStyle):
36377         Disable sibling style cache if the given element is a shadow host and
36378         any @host @-rules are applied to the element.
36379         * css/StyleResolver.h:
36380         (WebCore::StyleResolver::ensureScopeResolver):
36381         If no scopeResolver is created, create and return the instance.
36382         If created, just return the instance.
36383         (StyleResolver):
36384         * css/StyleRule.cpp:
36385         (WebCore::StyleRuleBase::reportMemoryUsage):
36386         (WebCore::StyleRuleBase::destroy):
36387         (WebCore::StyleRuleBase::copy):
36388         (WebCore::StyleRuleBase::createCSSOMWrapper):
36389         (WebCore::StyleRuleHost::StyleRuleHost):
36390         Implemented class StyleRuleHost. The class is almost the same as
36391         StyleRuleBlock except type.
36392         (WebCore):
36393         * css/StyleRule.h:
36394         (WebCore::StyleRuleBase::isHostRule):
36395         (StyleRuleHost):
36396         (WebCore::StyleRuleHost::create):
36397         (WebCore::StyleRuleHost::copy):
36398         (WebCore):
36399         * css/StyleScopeResolver.cpp:
36400         (WebCore::StyleScopeResolver::ensureAtHostRuleSetFor):
36401         A new method to create a new RuleSet for the given shadow root.
36402         (WebCore):
36403         (WebCore::StyleScopeResolver::atHostRuleSetFor):
36404         A new private inline method to obtain @host @-rules declared in
36405         the given shadow root.
36406         (WebCore::StyleScopeResolver::addHostRule):
36407         Added a new method to register @host @-rules with shadow roots.
36408         (WebCore::StyleScopeResolver::styleSharingCandidateMatchesHostRules):
36409         A new method to find whether any @host @-rules are applied to
36410         the given host element.
36411         (WebCore::StyleScopeResolver::matchHostRules):
36412         A new method to find matched rules for the given host element.
36413         (WebCore::StyleScopeResolver::reportMemoryUsage):
36414         * css/StyleScopeResolver.h:
36415         (WebCore):
36416         (StyleScopeResolver):
36417         * css/StyleSheetContents.cpp:
36418         (WebCore::childRulesHaveFailedOrCanceledSubresources):
36419
36420 2012-10-23  Andreas Kling  <kling@webkit.org>
36421
36422         REGRESSION(r130643): ASSERTION FAILED: result.iterator != end() below PluginDatabase::add
36423         <http://webkit.org/b/100065>
36424
36425         Reviewed by Anders Carlsson.
36426
36427         Restore the pre-r130643 hash table size for PluginDatabase to prevent these easily reproducible
36428         collisions. This will need a proper fix at some point.
36429
36430         * plugins/PluginDatabase.h:
36431         * plugins/PluginPackage.h:
36432         (PluginPackageHashTraits):
36433
36434 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36435
36436         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36437         https://bugs.webkit.org/show_bug.cgi?id=100159
36438
36439         Reviewed by Tim Horton.
36440
36441         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36442         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36443
36444         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36445
36446         * page/Frame.h:
36447         * platform/graphics/GraphicsLayer.cpp:
36448         (showGraphicsLayerTree):
36449         * platform/graphics/GraphicsLayer.h:
36450         (WebCore::GraphicsLayer::tiledBacking):
36451         * platform/graphics/TiledBacking.h:
36452         * platform/graphics/ca/GraphicsLayerCA.cpp:
36453         (WebCore::GraphicsLayerCA::tiledBacking):
36454         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36455         * platform/graphics/ca/GraphicsLayerCA.h:
36456         (GraphicsLayerCA):
36457         * platform/graphics/ca/mac/TileCache.h:
36458         (WebCore::TileCache::tileCoverageRect):
36459         (TileCache):
36460         * platform/graphics/ca/mac/TileCache.mm:
36461         (WebCore::TileCache::computeTileCoverageRect):
36462         (WebCore::TileCache::revalidateTiles):
36463         * rendering/RenderLayerCompositor.cpp:
36464         (WebCore::RenderLayerCompositor::layerTreeAsText):
36465         * testing/Internals.cpp:
36466         (WebCore::Internals::layerTreeAsText):
36467         * testing/Internals.h:
36468         * testing/Internals.idl:
36469
36470 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36471
36472         Flush pending GraphicsLayer changes when reattaching compositing layers if necessary
36473         https://bugs.webkit.org/show_bug.cgi?id=100187
36474         <rdar://problem/12546770>
36475
36476         Reviewed by Dan Bernstein.
36477
36478         Fix a regression from r131940. That revision changed RenderLayerCompositor::flushPendingLayerChanges()
36479         to bail if the root layer is unattached, which indicates that we're in the page cache, or in a
36480         background tab. However, that dropped the layer flush on the floor, so that any subsequent changes
36481         to GraphicsLayerCAs would just pile up and never get flushed. This was most evident on pages
36482         that require frequent flushing, such as those running animated GIFs.
36483         
36484         Fix by setting a flag in flushPendingLayerChanges() if we're unattached. Consult the flag
36485         when re-attaching the root layer, and if it's set, flush the GraphicsLayers.
36486         
36487         Not testable because we can't test detaching and re-adding web views in DRT/WTR.
36488
36489         * rendering/RenderLayerCompositor.cpp:
36490         (WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_shouldFlushOnReattach to false.
36491         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): If the root layer attachment
36492         is RootLayerUnattached, set the m_shouldFlushOnReattach flag before returning.
36493         (WebCore::RenderLayerCompositor::attachRootLayer): If m_shouldFlushOnReattach, flush the layers,
36494         saying that we're the flush root.
36495         * rendering/RenderLayerCompositor.h:
36496         (RenderLayerCompositor): Add m_shouldFlushOnReattach flag.
36497
36498 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
36499
36500         Unreviewed, rolling out r132276.
36501         http://trac.webkit.org/changeset/132276
36502         https://bugs.webkit.org/show_bug.cgi?id=100189
36503
36504         It broke the Qt-WK2 build intentionally (Requested by
36505         Ossy_night on #webkit).
36506
36507         * page/Frame.h:
36508         * platform/graphics/GraphicsLayer.cpp:
36509         (showGraphicsLayerTree):
36510         * platform/graphics/GraphicsLayer.h:
36511         (WebCore::GraphicsLayer::tiledBacking):
36512         * platform/graphics/TiledBacking.h:
36513         * platform/graphics/ca/GraphicsLayerCA.cpp:
36514         (WebCore::GraphicsLayerCA::tiledBacking):
36515         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36516         * platform/graphics/ca/GraphicsLayerCA.h:
36517         (GraphicsLayerCA):
36518         * platform/graphics/ca/mac/TileCache.h:
36519         * platform/graphics/ca/mac/TileCache.mm:
36520         (WebCore::TileCache::tileCoverageRect):
36521         (WebCore::TileCache::revalidateTiles):
36522         * rendering/RenderLayerCompositor.cpp:
36523         (WebCore::RenderLayerCompositor::layerTreeAsText):
36524         * testing/Internals.cpp:
36525         (WebCore::Internals::layerTreeAsText):
36526         * testing/Internals.h:
36527         * testing/Internals.idl:
36528
36529 2012-10-23  Philip Rogers  <pdr@google.com>
36530
36531         Add extra check for data() in PageSerializer.
36532         https://bugs.webkit.org/show_bug.cgi?id=99102
36533
36534         Reviewed by Eric Seidel.
36535
36536         The image returned from imageForRenderer() does not contain the raw SVG data
36537         so this patch adds a check for image->image()->data() before writing SVG
36538         in PageSerializer::addImageToResources.
36539
36540         Covered by existing test WebPageNewSerializeTest.SVGImageDontCrash.
36541
36542         * page/PageSerializer.cpp:
36543         (WebCore::PageSerializer::addImageToResources):
36544
36545 2012-10-23  Kent Tamura  <tkent@chromium.org>
36546
36547         Move appendAsLDMLLiteral in LocaleWin.cpp to a common place
36548         https://bugs.webkit.org/show_bug.cgi?id=100129
36549
36550         Reviewed by Kentaro Hara.
36551
36552         We're going to use appendAsLDMLLiteral in other code, and it is
36553         related to DateTimeFormat class.  So we move it to DateTimeFormat
36554         class as quoteAndAppendLiteral.
36555
36556         No new tests because of no behavior change.
36557
36558         * platform/text/DateTimeFormat.cpp:
36559         (WebCore::DateTimeFormat::quoteAndAppendLiteral):
36560         Moved from LocaleWin.cpp
36561         * platform/text/DateTimeFormat.h:
36562         Declare StringBuilder by wtf/Forward.h. It also declares String.
36563         (DateTimeFormat): Declare quoteAndAppendLiteral.
36564         * platform/text/LocaleWin.cpp:
36565         (WebCore): Move appendLDMLLiteral to DateTimeFormat.
36566         (WebCore::convertWindowsDateFormatToLDML):
36567         Follow the moving.
36568
36569 2012-10-23  Kent Tamura  <tkent@chromium.org>
36570
36571         REGRESSION(r131421): Text baseline is not aligned in some locales
36572         https://bugs.webkit.org/show_bug.cgi?id=100088
36573
36574         Reviewed by Hajime Morita.
36575
36576         Before this patch, the element with ::-webkit-datetime-edit had
36577         -webkit-align-items:center. It was incorrect at all because it
36578         ignores baselines of each of inner fields. We need to change it to
36579         -webkit-align-items:baseline, or stop using -webkit-flex.
36580
36581         However -webkit-align-items:baseline doesn't work because a spin
36582         button element in the element doesn't have the baseline. If we
36583         specified -webkit-align-items:baseline, the spin button would
36584         shift up.
36585
36586         So, we change the element structure for multiple fields input
36587         elements. Before this patch, the structure was:
36588
36589         input
36590           |
36591            - ::-webkit-date-and-time-container (flex cotainer)
36592              |
36593              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container, also this is a flex container)
36594              |  |- ::-webkit-datetime-edit-foo
36595              |  |      :
36596              |  |
36597              |  |- ::-webkit-date-time-edit-gap  (has flexibility in datetime-edit)
36598              |   - ::-webkit-inne-spin-button
36599               - ::-webkit-calendar-picker-indicator
36600
36601         After the patch, the structure will be:
36602
36603         input
36604           |
36605            - ::-webkit-date-and-time-container (flexible box)
36606              |
36607              |- ::-webkit-datetime-edit (has flexibility in date-and-time-container)
36608              |  |- ::-webkit-datetime-edit-foo
36609              |  |      :
36610              |  |
36611              |
36612              |- ::-webkit-inne-spin-button
36613               - ::-webkit-calendar-picker-indicator
36614
36615         Because the spin button owner is date-and-time-container, we don't
36616         need to make the datetime-edit element a flex container.
36617
36618         Also, we had rounding error by subpixel layout. To avoid it, we
36619         stop using fractional paddings.
36620
36621         In order to implement this, we need to change the SpinButtonOwner
36622         interface provider from DateTimeEditElement to
36623         BaseMultipleFieldsDateAndTimeInputType.
36624
36625         No new tests. Covered by month-multiple-fields-appearance-l10n.html.
36626
36627         * css/html.css:
36628         (input::-webkit-datetime-edit): Stop making this a flex
36629         container. Inner fields in this use the single baseline.
36630         (input::-webkit-datetime-edit-ampm-field):
36631         Don't use fractional paddings to avoid rounding erros of subpixel
36632         layout.  Use integral margin instead to avoid overwrap of focus
36633         ring and background-color of the field.
36634         (input::-webkit-datetime-edit-day-field): Ditto.
36635         (input::-webkit-datetime-edit-hour-field): Ditto.
36636         (input::-webkit-datetime-edit-millisecond-field): Ditto.
36637         (input::-webkit-datetime-edit-minute-field): Ditto.
36638         (input::-webkit-datetime-edit-month-field): Ditto.
36639         (input::-webkit-datetime-edit-second-field): Ditto.
36640         (input::-webkit-datetime-edit-week-field): Ditto.
36641         (input::-webkit-datetime-edit-year-field): Ditto.
36642         (input::-webkit-date-and-time-container): Ditto.
36643
36644         * html/BaseMultipleFieldsDateAndTimeInputType.h:
36645         (BaseMultipleFieldsDateAndTimeInputType): Overrides
36646         SpinButtonOwner functions, and add m_spinButtonElement.
36647         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
36648         (WebCore::BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner):
36649         Just delegate to DateTimeEditElement::focusIfNoFocus.
36650         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToMouseEvents):
36651         Moved from DateTimeEditElement::shouldSpinButtonRespondToMouseEvents.
36652         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents):
36653         Moved from DateTimeEditElement::shouldSpinButtonRespondToWheelEvents.
36654         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown):
36655         Delegate to DateTimeEditElement::stepDown.
36656         (WebCore::BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp):
36657         Delegate to DateTimeEditElement::stepUp.
36658         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
36659         Initialize m_spinButtonElement.
36660         (WebCore::BaseMultipleFieldsDateAndTimeInputType::~BaseMultipleFieldsDateAndTimeInputType):
36661         Reset SpinButtonOwner for m_spinButtonElement like the old code of ~DateTimeEditElement.
36662         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
36663         Put a SpinButtonElement between the DateTimeEditElement and the PickerIndicatorElement.
36664         (WebCore::BaseMultipleFieldsDateAndTimeInputType::forwardEvent):
36665         Take care of SpinButtonElement.
36666         (WebCore::BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged):
36667         Release capture of SpinButtonElement. This corresponds to the old
36668         code of DateTimeEditElement::updateUIState.
36669         (WebCore::BaseMultipleFieldsDateAndTimeInputType::readonlyAttributeChanged): Ditto.
36670
36671         * html/TextFieldInputType.h:
36672         Make SpinButtonElement::SpinButtonOwner protected to allow overriding.
36673
36674         * html/shadow/DateTimeEditElement.h:
36675         (DateTimeEditElement): Remove SpniButtonOwner implementation,
36676         m_spinButton, and rename some functions.
36677         * html/shadow/DateTimeEditElement.cpp:
36678         (WebCore::DateTimeEditElement::DateTimeEditElement):
36679         Remove m_spinButton.
36680         (WebCore::DateTimeEditElement::~DateTimeEditElement): Ditto.
36681         (WebCore::DateTimeEditElement::focusIfNoFocus):
36682         Renamed from focusAndSelectSpinButtonOwner. This is called
36683         BaseMultipleFieldsDateAndTimeInputType::focusAndSelectSpinButtonOwner.
36684         (WebCore::DateTimeEditElement::layout):
36685         Remove creation code for -webkit-datetime-edit-gap and SpinButtonElement.
36686         (WebCore::DateTimeEditElement::defaultEventHandler):
36687         Move the code for m_spinButton to
36688         BaseMultipleFieldsDateAndTimeInputType::forwardEvent.
36689         (WebCore::DateTimeEditElement::hasFocusedField): A helper for
36690         BaseMultipleFieldsDateAndTimeInputType::shouldSpinButtonRespondToWheelEvents.
36691         (WebCore::DateTimeEditElement::stepDown): A helper for
36692         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepDown.
36693         (WebCore::DateTimeEditElement::stepUp): A helper for
36694         BaseMultipleFieldsDateAndTimeInputType::spinButtonStepUp.
36695         (WebCore::DateTimeEditElement::updateUIState): Move the code to
36696         BaseMultipleFieldsDateAndTimeInputType::disabledAttributeChanged
36697         and readonlyAttributeChanged.
36698
36699 2012-10-23  Andreas Kling  <kling@webkit.org>
36700
36701         Shrink immutable ElementAttributeData and StylePropertySet by one pointer each.
36702         <http://webkit.org/b/100123>
36703
36704         Reviewed by Anders Carlsson.
36705
36706         Remove one pointer of unintentional padding in the immutable versions of these objects.
36707         583kB progression on Membuster3.
36708
36709         * css/StylePropertySet.cpp:
36710         (WebCore::immutableStylePropertySetSize):
36711         * dom/ElementAttributeData.cpp:
36712         (WebCore::immutableElementAttributeDataSize):
36713
36714 2012-10-23  Nate Chapin  <japhet@chromium.org>
36715
36716         Crash in WebCore::SubresourceLoader::willSendRequest.
36717         https://bugs.webkit.org/show_bug.cgi?id=100147
36718
36719         Reviewed by Abhishek Arya.
36720
36721         No new tests. There is a test case that should cover this, but it doesn't
36722         work correctly on many platforms due to its use of testRunner.addURLToRedirect().
36723         See http/tests/loading/cross-origin-XHR-willLoadRequest.html.
36724         Tested manually on http://www.nick.co.uk/shows/spongebob
36725
36726         * loader/SubresourceLoader.cpp:
36727         (WebCore::SubresourceLoader::willSendRequest):
36728
36729 2012-10-23  Martin Robinson  <mrobinson@igalia.com>
36730
36731         [GTK][Soup] Implement the default authentication dialog via WebCoreSupport
36732         https://bugs.webkit.org/show_bug.cgi?id=99351
36733
36734         Reviewed by Carlos Garcia Campos.
36735
36736         Instead of connecting to the SoupSession::authenticate signal in the API layer
36737         via a SoupSessionFeature, route the message through the typical WebCore authentication
36738         mechanism. This is a step on the path to having full-blown support for authentication
36739         in the API allowing for custom authentication dialogs and behavior in clients.
36740
36741         No new tests. This should not change behavior.
36742
36743         * GNUmakefile.list.am: Add the new implementation file for the AuthenticationChallenge.
36744         * loader/ResourceLoader.cpp:
36745         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Include GTK+ here as well.
36746         * platform/gtk/GtkAuthenticationDialog.cpp: Instead of carrying a raw pointer to a SoupAuth
36747         carry a GRefPtr which will allow the dialog to be used even after the AuthenticationChallenge
36748         is destroyed.
36749         * platform/gtk/GtkAuthenticationDialog.h: ditto.
36750         * platform/network/ResourceHandle.h: Add a didReceiveAuthenticationChallenge method.
36751         * platform/network/ResourceHandleInternal.h:
36752         (ResourceHandleInternal): Remove the getter for the initiating page ID.
36753         * platform/network/soup/AuthenticationChallenge.h: Added an implementation of AuthenticationChallenge
36754         that takes a bit of data from the handle including SoupMessage, SoupAuth, and SoupSession.
36755         * platform/network/soup/AuthenticationChallengeSoup.cpp: Added. Ditto.
36756         * platform/network/soup/ResourceError.h:
36757         (ResourceError): Added a factory for authentication errors.
36758         * platform/network/soup/ResourceErrorSoup.cpp: Ditto.
36759         * platform/network/soup/ResourceHandleSoup.cpp:
36760         (WebCore::setSoupRequestInitiaingPageID): Just get the page directly from the NetworkingContext.
36761         (WebCore::createSoupMessageForHandleAndRequest): Always set the "handle" data on the message.
36762         It's always used now.
36763         (WebCore::ResourceHandle::start): Get the initiating page ID directly from the NetworkingContext.
36764         (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Added this method which routes
36765         the authentication challenge to the client.
36766         (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential): Added a stub for this method.
36767         (WebCore::ResourceHandle::loadResourceSynchronously): Don't pass the session to the loader.
36768         (WebCore::authenicateCallback): Added.
36769         (WebCore::ResourceHandle::defaultSession): Connect the authenticate callback.
36770
36771 2012-10-23  Adam Barth  <abarth@webkit.org>
36772
36773         [V8] Simplify GCEpilogueVisitor along the same lines as GCPrologueVisitor
36774         https://bugs.webkit.org/show_bug.cgi?id=100157
36775
36776         Reviewed by Eric Seidel.
36777
36778         This patch removes the traits template parameter from GCEpilogueVisitor
36779         and makes it mirror GCPrologueVisitor again.
36780
36781         * bindings/v8/V8GCController.cpp:
36782         (WebCore):
36783         (ActiveDOMObjectEpilogueVisitor):
36784         (WebCore::ActiveDOMObjectEpilogueVisitor::ActiveDOMObjectEpilogueVisitor):
36785         (WebCore::ActiveDOMObjectEpilogueVisitor::visitDOMWrapper):
36786         (WebCore::V8GCController::majorGCEpilogue):
36787
36788 2012-10-23  Varun Jain  <varunjain@chromium.org>
36789
36790         Context menu generated from touch gestures on textareas has
36791         context of the cursor position instead of the position where the event occurs.
36792         https://bugs.webkit.org/show_bug.cgi?id=99520
36793
36794         Reviewed by Kenneth Rohde Christiansen.
36795
36796         Send a synthetic mouse down event for context menu-summoning-gesture events so
36797         that textareas can correctly set cursors before receiving the context menu event.
36798
36799         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
36800
36801         * page/EventHandler.cpp:
36802         (WebCore::EventHandler::handleGestureEvent):
36803         (WebCore::EventHandler::handleGestureTwoFingerTap):
36804         (WebCore):
36805         (WebCore::EventHandler::sendContextMenuEventForGesture):
36806         * page/EventHandler.h:
36807         (EventHandler):
36808
36809 2012-10-23  Andy Estes  <aestes@apple.com>
36810
36811         [WebKit2 API] Add properties to get textRects from a WKDOMRange or WKDOMNode
36812         https://bugs.webkit.org/show_bug.cgi?id=100162
36813
36814         Reviewed by Sam Weinig.
36815
36816         * WebCore.exp.in: Exported symbols needed by WebKit2.
36817         * bindings/objc/DOM.mm:
36818         (-[DOMNode textRects]): Moved some logic into Node::textRects()
36819         (everything but the call to updateLayoutIgnorePendingStylesheets()).
36820         * dom/Node.cpp:
36821         (WebCore::Node::textRects):
36822         * dom/Node.h:
36823
36824 2012-10-23  Adam Barth  <abarth@webkit.org>
36825
36826         [V8] Remove unused function from DOM wrapper visitor
36827         https://bugs.webkit.org/show_bug.cgi?id=100163
36828
36829         Reviewed by Eric Seidel.
36830
36831         No one overrides these virtual functions. They were added in
36832         http://trac.webkit.org/changeset/73491, but we don't use them in the GC
36833         controller anymore.
36834
36835         * bindings/v8/V8DOMMap.h:
36836         (WebCore::WeakReferenceMap::visit):
36837
36838 2012-10-23  Aaron Colwell  <acolwell@chromium.org>
36839
36840         Clear m_mediaSource reference when the MediaSource is closed
36841         https://bugs.webkit.org/show_bug.cgi?id=100047
36842
36843         Reviewed by Eric Carlson.
36844
36845         The m_mediaSource object shouldn't be accessed after the object
36846         transitions to closed so this change simply clears the reference
36847         when that transition happens.
36848
36849         No new tests because the change isn't visible to JavaScript.
36850
36851         * html/HTMLMediaElement.cpp:
36852         (WebCore::HTMLMediaElement::loadResource): Removed a closed transition that is actually dead code.
36853         (WebCore::HTMLMediaElement::setSourceState): Clear the m_mediaSource reference on closed transition.
36854
36855 2012-10-23  Simon Fraser  <simon.fraser@apple.com>
36856
36857         Allow tests to run with a tile cache, and optionally dump the tile cache via layerTreeAsText()
36858         https://bugs.webkit.org/show_bug.cgi?id=100159
36859
36860         Reviewed by Tim Horton.
36861
36862         Add a LAYER_TREE_INCLUDES_PAGE_TILE_CACHE flag for layerTreeAsText(), and plumb it
36863         through to GraphicsLayerCA, which dumps the TiledBacking tile coverage rect.
36864
36865         Test: platform/mac/tiled-drawing/use-tiled-drawing.html
36866
36867         * page/Frame.h:
36868         * platform/graphics/GraphicsLayer.cpp:
36869         (showGraphicsLayerTree):
36870         * platform/graphics/GraphicsLayer.h:
36871         (WebCore::GraphicsLayer::tiledBacking):
36872         * platform/graphics/TiledBacking.h:
36873         * platform/graphics/ca/GraphicsLayerCA.cpp:
36874         (WebCore::GraphicsLayerCA::tiledBacking):
36875         (WebCore::GraphicsLayerCA::dumpAdditionalProperties):
36876         * platform/graphics/ca/GraphicsLayerCA.h:
36877         (GraphicsLayerCA):
36878         * platform/graphics/ca/mac/TileCache.h:
36879         (WebCore::TileCache::tileCoverageRect):
36880         (TileCache):
36881         * platform/graphics/ca/mac/TileCache.mm:
36882         (WebCore::TileCache::computeTileCoverageRect):
36883         (WebCore::TileCache::revalidateTiles):
36884         * rendering/RenderLayerCompositor.cpp:
36885         (WebCore::RenderLayerCompositor::layerTreeAsText):
36886         * testing/Internals.cpp:
36887         (WebCore::Internals::layerTreeAsText):
36888         * testing/Internals.h:
36889         * testing/Internals.idl:
36890
36891 2012-10-23  No'am Rosenthal  <noam.rosenthal@nokia.com>
36892
36893         Coordinated Graphics: Enable threaded/IPC animations
36894         https://bugs.webkit.org/show_bug.cgi?id=93146
36895
36896         Reviewed by Kenneth Rohde Christiansen.
36897
36898         Add enablers to TextureMapper and GraphicsLayerAnimation so that they could be used
36899         across processes with IPC. Added some public accessors to GraphicsLayerAnimation,
36900         and allowed a GraphicsLayerTextureMapper to receive a full list of animations.
36901
36902         Covered by existing animation and compositing tests.
36903
36904         * platform/graphics/GraphicsLayerAnimation.cpp:
36905         (WebCore::GraphicsLayerAnimation::GraphicsLayerAnimation):
36906             Initialize the animation with the startTime instead of the offset.
36907
36908         (WebCore::GraphicsLayerAnimations::getActiveAnimations):
36909         * platform/graphics/GraphicsLayerAnimation.h:
36910         (WebCore::GraphicsLayerAnimation::setState):
36911             Allow setting the pause time as well.
36912
36913         (WebCore::GraphicsLayerAnimation::boxSize):
36914         (WebCore::GraphicsLayerAnimation::startTime):
36915         (WebCore::GraphicsLayerAnimation::pauseTime):
36916         (WebCore::GraphicsLayerAnimation::animation):
36917         (WebCore::GraphicsLayerAnimation::keyframes):
36918         (WebCore::GraphicsLayerAnimation::listsMatch):
36919         (WebCore::GraphicsLayerAnimations::size):
36920         (WebCore::GraphicsLayerAnimations::animations):
36921             Add public accessors to GraphicsLayerAnimation properties.
36922
36923         (GraphicsLayerAnimation):
36924         (GraphicsLayerAnimations):
36925         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
36926         (WebCore::GraphicsLayerTextureMapper::addAnimation):
36927         (WebCore::GraphicsLayerTextureMapper::setAnimations):
36928             Allow replacing the entire list of animations.
36929
36930         (WebCore):
36931         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
36932         (GraphicsLayerTextureMapper):
36933         * platform/graphics/texmap/TextureMapperLayer.cpp:
36934         (WebCore::TextureMapperLayer::applyAnimationsRecursively):
36935         (WebCore):
36936         * platform/graphics/texmap/TextureMapperLayer.h:
36937         (TextureMapperLayer):
36938
36939 2012-10-23  Chris Rogers  <crogers@google.com>
36940
36941         Change setTargetValueAtTime() to setTargetAtTime()
36942         https://bugs.webkit.org/show_bug.cgi?id=100153
36943
36944         Reviewed by Adam Barth.
36945
36946         The AudioParam method name has changed due to Web Audio API spec review.
36947         Keep legacy support for the old name.
36948
36949         Test: webaudio/audioparam-setTargetAtTime.html
36950
36951         * Modules/webaudio/AudioParam.h:
36952         (WebCore::AudioParam::setTargetAtTime):
36953         * Modules/webaudio/AudioParam.idl:
36954         * Modules/webaudio/AudioParamTimeline.cpp:
36955         (WebCore::AudioParamTimeline::setTargetAtTime):
36956         (WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
36957         * Modules/webaudio/AudioParamTimeline.h:
36958         (AudioParamTimeline):
36959
36960 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
36961
36962         [Mac] Remove extraneous conversion to String->NSString
36963         https://bugs.webkit.org/show_bug.cgi?id=100044
36964
36965         Reviewed by Darin Adler.
36966
36967         Improve some unfortunate use of String->NSString.
36968
36969         * accessibility/mac/AXObjectCacheMac.mm:
36970         (WebCore::AXObjectCache::postPlatformNotification): The variable macNotification is ultimately
36971         needed as NSString, and all its value are or can be NSString.
36972         Convert the last 3 char* values to NSString literal and use NSString* all the way.
36973
36974         * loader/mac/LoaderNSURLExtras.h:
36975         * loader/mac/LoaderNSURLExtras.mm:
36976         (suggestedFilenameWithMIMEType):
36977         We converted the String to NSString to pass to suggestedFilenameWithMIMEType. There is no need
36978         for the string to be a NSSTring there, we can leave it in its original type.
36979
36980         The case checking for a nil MIMEType was dead code because the implicit conversion never returns nil.
36981
36982         * platform/mac/DragImageMac.mm:
36983         (WebCore::createDragImageForLink):
36984         Use String's nsStringNilIfEmpty().
36985
36986         * platform/mac/HTMLConverter.mm:
36987         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
36988         Fix the coding style. Do the conversion to NSString only when needed.
36989
36990 2012-10-23  Roger Fong  <roger_fong@apple.com>
36991
36992         [Win] Popup menus positioning needs to take multiple monitors into account.
36993         https://bugs.webkit.org/show_bug.cgi?id=100158
36994
36995         Reviewed by Timothy Horton.
36996
36997         Add screen.x() to repositioning check to account for position of current monitor.
36998
36999         * platform/win/PopupMenuWin.cpp:
37000         (WebCore::PopupMenuWin::calculatePositionAndSize):
37001
37002 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37003
37004         [CSS Shaders] Set FilterOperations on GraphicsLayer after the program of CSS Shaders is loaded.
37005         https://bugs.webkit.org/show_bug.cgi?id=99908
37006
37007         Reviewed by Dean Jackson.
37008
37009         CSS Shaders can not render anything until the program is loaded. If there is
37010         partial loaded shaders program, whole FilterOperations chain can not render
37011         anything. It occurs a flash. So We have to wait until the program is loaded, to
37012         prevent a flash as RenderLayerBacking::updateImageContents() waits until an
37013         image is fully loaded.
37014
37015         No new tests, CSS Shaders on Accelerated Compositing are not activated yet.
37016
37017         * rendering/RenderLayerBacking.cpp:
37018         (WebCore::RenderLayerBacking::updateFilters):
37019
37020 2012-10-23  Elliott Sprehn  <esprehn@chromium.org>
37021
37022         Generated should not be supported for things with a shadow
37023         https://bugs.webkit.org/show_bug.cgi?id=98836
37024
37025         Reviewed by Dimitri Glazkov.
37026
37027         As far as CSS is concerned inputs and things with shadow content inside
37028         shouldn't support pseudo elements like :before, :after or :first-letter.
37029         Neither Gecko or Presto supports it, and we only accidentally supported
37030         it.
37031
37032         Until the spec tells us what to do we should disable support. This is
37033         also neccesary because the new generated content implementation doesn't
37034         support shadows.
37035
37036         Test: fast/forms/pseudo-elements.html
37037
37038         * rendering/RenderBlock.cpp:
37039         (WebCore::RenderBlock::updateFirstLetter):
37040         * rendering/RenderListBox.h: Added missing canHaveGeneratedChildren() that returns false.
37041         * rendering/RenderObjectChildList.cpp:
37042         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
37043
37044 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37045
37046         [CSS Shaders] Implement overlay, color-dodge, color-burn, hard-light, soft-light blend modes.
37047         https://bugs.webkit.org/show_bug.cgi?id=98504
37048
37049         Reviewed by Dean Jackson.
37050
37051         Add expressions for the aforementioned blend modes. The expressions are lifted
37052         directly from the CSS Compositing and Blending spec [1]. WebKit adds these
37053         blending expressions to the author's shader.
37054
37055         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#blendingnormal
37056
37057         Test: css3/filters/custom/custom-filter-blend-modes.html
37058
37059         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37060         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader):
37061         (WebCore::CustomFilterValidatedProgram::blendFunctionString):
37062
37063 2012-10-23  Huang Dongsung  <luxtella@company100.net>
37064
37065         [CSS Shaders] Implement all composite operators except destination and lighter.
37066         https://bugs.webkit.org/show_bug.cgi?id=97859
37067
37068         Reviewed by Dean Jackson.
37069
37070         Add expressions for all composite operators except destination and
37071         lighter. The expressions are lifted directly from the CSS Compositing
37072         and Blending spec [1]. WebKit adds these compositing expressions to the
37073         author's shader.
37074
37075         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
37076
37077         Test: css3/filters/custom/custom-filter-composite-operators.html
37078
37079         * platform/graphics/filters/CustomFilterCompiledProgram.cpp:
37080         (WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
37081             Remove ASSERTION checking if glGetUniformLocation returns negative,
37082             because ASSERTION can fail with clear and copy composite operations.
37083             Clear and copy composite operations do not need "css_u_texture"
37084             representing the DOM element texture. If the driver compiler is
37085             smart, "css_u_texture" is not regarded as an active uniform, so
37086             glGetuniformLocation returns -1. glGetAttribLocation ditto.
37087         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
37088         (WebCore::CustomFilterValidatedProgram::compiledProgram):
37089             Move the above ASSERTION in CustomFilterCompiledProgram to here.
37090             ASSERTION checks if m_samplerLocation is not -1 when the author
37091             shader needs an input texture.
37092         (WebCore::CustomFilterValidatedProgram::needsInputTexture):
37093         (WebCore):
37094         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
37095         * platform/graphics/filters/CustomFilterValidatedProgram.h:
37096         (CustomFilterValidatedProgram):
37097
37098 2012-10-23  Max Vujovic  <mvujovic@adobe.com>
37099
37100         [CSS Shaders] Changing the blend mode in CSS doesn't update the custom filter rendering
37101         https://bugs.webkit.org/show_bug.cgi?id=99887
37102
37103         Reviewed by Dirk Schulze.
37104
37105         Before this patch, WebKit would not recompute an element's style when just its custom filter
37106         blend mode changed.
37107
37108         For example, suppose an element initially has the style:
37109         -webkit-filter: custom(none mix(url(shader.fs) multiply source-atop));
37110
37111         Then, we change the blend mode from "multiply" to "normal":
37112         -webkit-filter: custom(none mix(url(shader.fs) normal source-atop));
37113
37114         WebKit now detects this change and recomputes the style.
37115
37116         CustomFilterProgram now has an equals operator that considers the program type and the mix
37117         settings. The mix settings contain the blend mode.
37118
37119         Test: css3/filters/custom/custom-filter-change-blend-mode.html
37120
37121         * platform/graphics/filters/CustomFilterProgram.cpp:
37122         (WebCore::CustomFilterProgram::operator==):
37123             Previously, the equals operator was pure virtual in CustomFilterProgram. Now,
37124             CustomFilterProgram implements it and compares the program type and mix settings, if
37125             appropriate.
37126         (WebCore):
37127         * platform/graphics/filters/CustomFilterProgram.h:
37128         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
37129         (WebCore::CustomFilterProgramInfo::hash):
37130             Refactor a repeated condition into a boolean to improve readability.
37131         (WebCore::CustomFilterProgramInfo::operator==):
37132             Refactor repeated conditions to improve readability. Reorder the conditions so the less
37133             expensive ones occur first.
37134         * rendering/style/StyleCustomFilterProgram.h:
37135         (WebCore::StyleCustomFilterProgram::operator==):
37136             Call the base class's equals operator.
37137
37138 2012-10-23  David Barton  <dbarton@mathscribe.com>
37139
37140         [MathML] Symbol font uses greek letters for roman ones on linux and Windows
37141         https://bugs.webkit.org/show_bug.cgi?id=99921
37142
37143         Reviewed by Eric Seidel.
37144
37145         For parts of stretched parentheses and brackets, mathml.css currently uses the Symbol font,
37146         which on linux and Windows has greek letters at roman code points. To fix this, we switch
37147         to the STIXSizeOneSym font when available. However, this can cause vertical gaps between
37148         glyph parts, because of hard-coded constants in RenderMathMLOperator.cpp. We eliminate all
37149         these constants. We also shift glyphs upward by 1px and truncate them to avoid the gaps.
37150
37151         Tested by existing tests, and one test added to LayoutTests/mathml/presentation/mo.xhtml.
37152
37153         * css/mathml.css:
37154         (math, mfenced > *):
37155             - Set font-family for mn, mi, etc.
37156         (mo, mfenced):
37157             - Set font-family for mo and anonymous operators, including extension glyphs for
37158               stretched operators like parentheses and brackets.
37159         (math):
37160         * rendering/mathml/RenderMathMLOperator.cpp:
37161         (WebCore):
37162             - Change 0x23d0 to 0x23aa for STIX & Cambria Math fonts.
37163         (WebCore::RenderMathMLOperator::glyphHeightForCharacter):
37164         (WebCore::RenderMathMLOperator::updateFromElement):
37165         (WebCore::RenderMathMLOperator::createStackableStyle):
37166             - Eliminate unused lineHeight and topRelative parameters, and the hard-coded font size
37167               of 14.
37168         (WebCore::RenderMathMLOperator::createGlyph):
37169             - Eliminate unused lineHeight and topRelative parameters.
37170         * rendering/mathml/RenderMathMLOperator.h:
37171         (RenderMathMLOperator):
37172
37173 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
37174
37175         WTFURL: Implement KURL::setPort()
37176         https://bugs.webkit.org/show_bug.cgi?id=99898
37177
37178         Reviewed by Adam Barth.
37179
37180         * platform/KURLWTFURL.cpp:
37181         (WebCore::KURL::setPort):
37182
37183 2012-10-23  Nico Weber  <thakis@chromium.org>
37184
37185         In the open-source jpeg decoder, read image orientation from the exif data
37186         https://bugs.webkit.org/show_bug.cgi?id=100144
37187
37188         Reviewed by Eric Seidel.
37189
37190         This will be used to implement the shouldRespectImageOrientation
37191         setting (see bug 19688). Currently this isn't hooked up anywhere, so
37192         it has no observable effect for now.
37193
37194         Once it's hooked up, it will be tested by
37195         fast/images/exif-orientation.html
37196
37197         * platform/graphics/BitmapImage.h:
37198         * platform/image-decoders/ImageDecoder.h:
37199         (WebCore::ImageDecoder::orientation):
37200         (ImageDecoder):
37201         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
37202         (WebCore::readUint16):
37203         (WebCore):
37204         (WebCore::readUint32):
37205         (WebCore::checkExifHeader):
37206         (WebCore::readImageOrientation):
37207         (WebCore::JPEGImageReader::JPEGImageReader):
37208         (WebCore::JPEGImageReader::decode):
37209         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
37210         (WebCore::JPEGImageDecoder::setOrientation):
37211
37212 2012-10-23  Chris Rogers  <crogers@google.com>
37213
37214         Fix thread safety issue in AudioParamTimeline
37215         https://bugs.webkit.org/show_bug.cgi?id=100154
37216
37217         Reviewed by Kenneth Russell.
37218
37219         Add appropriate locking in AudioParamTimeline::valueForContextTime()
37220
37221         * Modules/webaudio/AudioParamTimeline.cpp:
37222         (WebCore::AudioParamTimeline::valueForContextTime):
37223
37224 2012-10-23  Alec Flett  <alecflett@chromium.org>
37225
37226         IndexedDB: refactor backend to use IDB*Metadata
37227         https://bugs.webkit.org/show_bug.cgi?id=100055
37228
37229         Reviewed by Tony Chang.
37230
37231         This further encapsulates the static data in
37232         IDBObjectStoreBackendImpl and IDBIndexBackendImp into their
37233         respective IDB*Metadata structs, in preparation for
37234         https://bugs.webkit.org/show_bug.cgi?id=99774.
37235
37236         No new tests as this is purely a refactor.
37237
37238         * Modules/indexeddb/IDBBackingStore.h:
37239         (IDBBackingStore):
37240         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
37241         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
37242         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
37243         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
37244         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
37245         (WebCore::IDBIndexBackendImpl::metadata):
37246         * Modules/indexeddb/IDBIndexBackendImpl.h:
37247         (WebCore::IDBIndexBackendImpl::create):
37248         (WebCore::IDBIndexBackendImpl::id):
37249         (WebCore::IDBIndexBackendImpl::setId):
37250         (WebCore::IDBIndexBackendImpl::hasValidId):
37251         (WebCore::IDBIndexBackendImpl::name):
37252         (WebCore::IDBIndexBackendImpl::keyPath):
37253         (WebCore::IDBIndexBackendImpl::unique):
37254         (WebCore::IDBIndexBackendImpl::multiEntry):
37255         (IDBIndexBackendImpl):
37256         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
37257         (WebCore::IDBLevelDBBackingStore::getObjectStores):
37258         (WebCore::IDBLevelDBBackingStore::getIndexes):
37259         * Modules/indexeddb/IDBLevelDBBackingStore.h:
37260         (IDBLevelDBBackingStore):
37261         * Modules/indexeddb/IDBMetadata.h:
37262         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
37263         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
37264         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
37265         (WebCore::IDBObjectStoreBackendImpl::metadata):
37266         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
37267         (WebCore::IDBObjectStoreBackendImpl::putInternal):
37268         (WebCore::IDBObjectStoreBackendImpl::createIndex):
37269         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
37270         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
37271         (WebCore::IDBObjectStoreBackendImpl::create):
37272         (WebCore::IDBObjectStoreBackendImpl::id):
37273         (WebCore::IDBObjectStoreBackendImpl::setId):
37274         (WebCore::IDBObjectStoreBackendImpl::name):
37275         (WebCore::IDBObjectStoreBackendImpl::keyPath):
37276         (WebCore::IDBObjectStoreBackendImpl::autoIncrement):
37277         (IDBObjectStoreBackendImpl):
37278
37279 2012-10-19  Roger Fong  <roger_fong@apple.com>
37280
37281         [WebGL] conformance/textures/texture-size.html is failing on Apple Mountain Lion
37282         https://bugs.webkit.org/show_bug.cgi?id=94041
37283
37284         Reviewed by Dean Jackson.
37285
37286         When binding a texture to GL_TEXTURE_2D when GL_ACTIVE_TEXTURE is 0, we set m_boundTexture0 to the texture unit. 
37287         However when we delete the texture, we need to be setting m_boundTexture0 to 0.
37288         Otherwise when we draw to the screen we bind m_boundTexture0 in the prepareTexture() method and since the associated texture 
37289         has already been deleted we end up in an error state.
37290
37291         Tested using Khronos WebGL conformance suite:
37292         conformance/textures/texture-size.html
37293
37294         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
37295         (WebCore::GraphicsContext3D::deleteTexture):
37296
37297 2012-10-22  Dirk Schulze  <krit@webkit.org>
37298
37299         BasicShapePolygon::path takes width instead of height for boundary calculation
37300         https://bugs.webkit.org/show_bug.cgi?id=99919
37301
37302         Reviewed by Darin Adler.
37303
37304         The 'y' parameters of polygon were calculated by the with of the bounding box of the object.
37305         This caused problems on percentage values for point positions. 
37306         Changed it to the height of the bounding box.
37307
37308         Test: css3/masking/clip-path-polygon-percentage.html
37309
37310         * rendering/style/BasicShapes.cpp:
37311         (WebCore::BasicShapePolygon::path):
37312
37313 2012-10-23  Dominik Röttsches  <dominik.rottsches@intel.com>
37314
37315         Add timeout support to XMLHttpRequest
37316         https://bugs.webkit.org/show_bug.cgi?id=74802
37317
37318         Reviewed by Nate Chapin.
37319
37320         An implementation of XHR2 timeouts by using ResourceRequest's setTimeoutInterval.
37321         This made several changes necessary in CachedResource and SubresourceLoader in order
37322         to distinguish and forward the timeout case from there.
37323
37324         The case of late updates to the timeout property, changing the timeout value after send()
37325         is not supported yet and handled separately in bug 98156.
37326
37327         XHR2 timeout tests were initially written by Mozilla's Alex Vincent's. He granted
37328         permission to reuse them under PD/BSD license
37329         in https://bugzilla.mozilla.org/show_bug.cgi?id=525816#c86 - big thanks!
37330         I adapted them for W3C testharness.js and split them into groups with shorter test running time
37331         so that they can be used as WebKit layout tests.
37332
37333         Tests: http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html
37334                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html
37335                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html
37336                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html
37337                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html
37338                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html
37339                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html
37340                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html
37341                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html
37342                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html
37343                http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html
37344
37345         * loader/DocumentThreadableLoader.cpp:
37346         (WebCore::DocumentThreadableLoader::notifyFinished): Forward information about timeout case.
37347         * loader/SubresourceLoader.cpp:
37348         (WebCore::SubresourceLoader::didFail): Distinguish timeout case when informing client.
37349         * loader/cache/CachedResource.h: Distinguishing timeout case for errors.
37350         (WebCore::CachedResource::errorOccurred):
37351         (WebCore::CachedResource::loadFailedOrCanceled):
37352         (WebCore::CachedResource::timedOut):
37353         * xml/XMLHttpRequest.cpp:
37354         (WebCore::XMLHttpRequest::XMLHttpRequest): Initializing m_timeout value to zero.
37355         (WebCore::XMLHttpRequest::setTimeout): Setter function, possibly raising JS exception.
37356         (WebCore):
37357         (WebCore::XMLHttpRequest::open): Open call may raise exception for synchronous requests when timeout value is set.
37358         (WebCore::XMLHttpRequest::createRequest): Assigning timeout value to ResourceRequest.
37359         (WebCore::XMLHttpRequest::didFail): Handling timeout case separately.
37360         (WebCore::XMLHttpRequest::didTimeout): Timeout case state transisition and event firing as spec'ed.
37361         * xml/XMLHttpRequest.h: New event listener, member and callback for handling timeout.
37362         (WebCore::XMLHttpRequest::timeout):
37363         (XMLHttpRequest):
37364         * xml/XMLHttpRequest.idl: New event listener and property added.
37365         * xml/XMLHttpRequestException.cpp:
37366         * xml/XMLHttpRequestException.h: Added an exception value for the timeout case.
37367
37368
37369 2012-10-23  Christophe Dumez  <christophe.dumez@intel.com>
37370
37371         Possible assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection()
37372         https://bugs.webkit.org/show_bug.cgi?id=99967
37373
37374         Reviewed by Tony Chang.
37375
37376         Fix assertion hit in WebCore::HTMLSelectElement::updateListBoxSelection() when
37377         pressing the left mouse button outside a multiselect and then moving the cursor
37378         over the multiselect element while holding the button down.
37379
37380         The issue is that the HTMLSelectElement handler for the mouse move event does
37381         not check if there is a selection before trying to extend the selection.
37382
37383         Test: fast/dom/HTMLSelectElement/select-selectedIndex-noAnchorIndex-crash.html
37384
37385         * html/HTMLSelectElement.cpp:
37386         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
37387
37388 2012-10-23  Adam Barth  <abarth@webkit.org>
37389
37390         [V8] ScriptWrappable should hold the wrapper handle directly (Dromaeo/dom-modify and dom-traverse get ~2.5% faster)
37391         https://bugs.webkit.org/show_bug.cgi?id=97974
37392
37393         Reviewed by Eric Seidel.
37394
37395         Previously, we stored a pointer to a handle to a wrapper in Node. That
37396         is an extra layer of indirection that slows down finding the wrapper
37397         for the node. A handle is just a pointer, so we might as we just store
37398         the handle in the Node directly. That speeds up dom-modify and
37399         dom-traverse by about 2.5%.
37400
37401         This change also lets us get rid of the ChunkedTable we were using to
37402         store all the wrappers because they're now stored in the Nodes
37403         directly.
37404
37405         * bindings/scripts/CodeGeneratorV8.pm:
37406         (GenerateHeader):
37407         * bindings/v8/IntrusiveDOMWrapperMap.h:
37408         (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap):
37409         (WebCore::IntrusiveDOMWrapperMap::get):
37410         (WebCore::IntrusiveDOMWrapperMap::set):
37411         (WebCore::IntrusiveDOMWrapperMap::contains):
37412         (WebCore::IntrusiveDOMWrapperMap::visit):
37413         (WebCore::IntrusiveDOMWrapperMap::removeIfPresent):
37414         (WebCore::IntrusiveDOMWrapperMap::clear):
37415         * bindings/v8/ScriptWrappable.h:
37416         (WebCore::ScriptWrappable::ScriptWrappable):
37417         (WebCore::ScriptWrappable::wrapper):
37418         (WebCore::ScriptWrappable::setWrapper):
37419         (WebCore::ScriptWrappable::disposeWrapper):
37420         (WebCore::ScriptWrappable::reportMemoryUsage):
37421         (ScriptWrappable):
37422         * bindings/v8/V8DOMWrapper.h:
37423         (WebCore::V8DOMWrapper::getCachedWrapper):
37424
37425 2012-10-23  Kentaro Hara  <haraken@chromium.org>
37426
37427         [V8] Replace SetGlobalGCPrologueCallback() with AddGCPrologueCallback()
37428         https://bugs.webkit.org/show_bug.cgi?id=100140
37429
37430         Reviewed by Adam Barth.
37431
37432         SetGlobalGCPrologueCallback() and SetGlobalGCEpilogueCallback()
37433         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)
37434         Instead we should use AddGCPrologueCallback()
37435         and AddGCEpilogueCallback().
37436
37437         No tests. No change in behavior.
37438
37439         * bindings/v8/V8DOMWindowShell.cpp:
37440         (WebCore::initializeV8IfNeeded):
37441         * bindings/v8/V8GCController.cpp:
37442         (WebCore::V8GCController::gcPrologue):
37443         (WebCore):
37444         (WebCore::V8GCController::minorGCPrologue):
37445         (WebCore::V8GCController::majorGCPrologue):
37446         (WebCore::V8GCController::gcEpilogue):
37447         (WebCore::V8GCController::minorGCEpilogue):
37448         (WebCore::V8GCController::majorGCEpilogue):
37449         * bindings/v8/V8GCController.h:
37450         (V8GCController):
37451         * bindings/v8/WorkerContextExecutionProxy.cpp:
37452         (WebCore::WorkerContextExecutionProxy::initIsolate):
37453
37454 2012-10-23  Adam Barth  <abarth@webkit.org>
37455
37456         [V8] Enumerate Nodes via the V8 heap rather than via a list in WebCore
37457         https://bugs.webkit.org/show_bug.cgi?id=100033
37458
37459         Reviewed by Eric Seidel.
37460
37461         This patch changes how we enumerate nodes during garbage collection.
37462         After this patch, we use V8's list of open handles to enumerate node
37463         wrappers rather than using a separate list that we maintain in WebCore
37464         for this purpose. A future patch will remove the list in WebCore for a
37465         DOM performance gain.
37466
37467         * bindings/js/ScriptProfiler.h:
37468         (WebCore):
37469         (WebCore::ScriptProfiler::visitNodeWrappers):
37470         * bindings/scripts/CodeGeneratorV8.pm:
37471         (GenerateToV8Converters):
37472         * bindings/scripts/test/V8/V8TestNode.cpp:
37473         (WebCore::V8TestNode::wrapSlow):
37474         * bindings/v8/IntrusiveDOMWrapperMap.h:
37475         (WebCore::IntrusiveDOMWrapperMap::set):
37476         * bindings/v8/ScriptProfiler.cpp:
37477         (WebCore::ScriptProfiler::visitNodeWrappers):
37478         * bindings/v8/ScriptProfiler.h:
37479         (WebCore):
37480         (ScriptProfiler):
37481         * bindings/v8/V8DOMMap.cpp:
37482         (WebCore::NodeWrapperVisitor::~NodeWrapperVisitor):
37483         (WebCore):
37484         (WebCore::visitAllDOMNodes):
37485         * bindings/v8/V8DOMMap.h:
37486         (WebCore):
37487         (NodeWrapperVisitor):
37488         * bindings/v8/V8DOMWrapper.cpp:
37489         (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
37490         (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode):
37491         * bindings/v8/V8GCController.cpp:
37492         (WebCore::NodeVisitor::visitNodeWrapper):
37493         (WebCore::V8GCController::gcPrologue):
37494         (WebCore::V8GCController::gcEpilogue):
37495         * inspector/BindingVisitors.h:
37496         (WebCore::WrappedNodeVisitor::~WrappedNodeVisitor):
37497         * inspector/InspectorMemoryAgent.cpp:
37498         (WebCore):
37499
37500 2012-10-22  Andrey Kosyakov  <caseq@chromium.org>
37501
37502         Web Inspector: paint rectangles are incorrectly shown in case subframes are present
37503         https://bugs.webkit.org/show_bug.cgi?id=99849
37504
37505         Reviewed by Pavel Feldman.
37506
37507         Move GraphicsContext and paint rectangle from willPaint() to didPaint(), so we don't have
37508         to store them as a state of InspectorPageAgent
37509
37510         * inspector/InspectorInstrumentation.cpp:
37511         (WebCore):
37512         (WebCore::InspectorInstrumentation::willPaintImpl):
37513         (WebCore::InspectorInstrumentation::didPaintImpl):
37514         * inspector/InspectorInstrumentation.h:
37515         (InspectorInstrumentation):
37516         (WebCore::InspectorInstrumentation::willPaint):
37517         (WebCore::InspectorInstrumentation::didPaint):
37518         * inspector/InspectorPageAgent.cpp:
37519         (WebCore::InspectorPageAgent::didPaint):
37520         * inspector/InspectorPageAgent.h:
37521         * inspector/InspectorTimelineAgent.cpp:
37522         (WebCore::InspectorTimelineAgent::willPaint):
37523         (WebCore::InspectorTimelineAgent::didPaint):
37524         * inspector/InspectorTimelineAgent.h:
37525         (InspectorTimelineAgent):
37526         * inspector/TimelineRecordFactory.cpp:
37527         * inspector/TimelineRecordFactory.h:
37528         (TimelineRecordFactory):
37529         * page/FrameView.cpp:
37530         (WebCore::FrameView::paintContents):
37531         * rendering/RenderLayerBacking.cpp:
37532         (WebCore::RenderLayerBacking::paintContents):
37533
37534 2012-10-23  Pavel Feldman  <pfeldman@chromium.org>
37535
37536         Web Inspector: array grouping does not work for arrays with exactly 10000 elements.
37537         https://bugs.webkit.org/show_bug.cgi?id=100131
37538
37539         Reviewed by Vsevolod Vlasov.
37540
37541         Using ceil() - 1 instead of floor() in bucket size calculation.
37542
37543         * inspector/front-end/ObjectPropertiesSection.js:
37544
37545 2012-10-23  Shinya Kawanaka  <shinyak@chromium.org>
37546
37547         The order of resolving distribution in tree composition is wrong.
37548         https://bugs.webkit.org/show_bug.cgi?id=99552
37549
37550         Reviewed by Dimitri Glazkov.
37551
37552         According to the current ShadowDOM spec, we have to resolve <content> first, then resolve <shadow>.
37553         However, the order of resolution is now the mixed tree order of <content> and <shadow>.
37554
37555         Test: fast/dom/shadow/content-reprojection-order.html
37556
37557         * html/shadow/ContentDistributor.cpp:
37558         (WebCore::ContentDistributor::distribute): We should resolve <content> before <shadow>.
37559         Only the first active shadow insertion point can select the rest of contents.
37560         * html/shadow/HTMLContentElement.h:
37561         (HTMLContentElement):
37562         * html/shadow/HTMLShadowElement.cpp:
37563         * html/shadow/HTMLShadowElement.h:
37564         (WebCore::isHTMLShadowElement):
37565         (WebCore):
37566         (WebCore::toHTMLShadowElement):
37567         * html/shadow/InsertionPoint.h:
37568         (InsertionPoint): We don't need doesSelectFromHostChildren() anymore.
37569
37570 2012-10-23  Vsevolod Vlasov  <vsevik@chromium.org>
37571
37572         Web Inspector: Move UISourceCode creation out of mappings to workspace.
37573         https://bugs.webkit.org/show_bug.cgi?id=100092
37574
37575         Reviewed by Pavel Feldman.
37576
37577         Moved uiSourceCode constructor calls out of mappings to workspace.
37578
37579         * inspector/front-end/CompilerScriptMapping.js:
37580         * inspector/front-end/NetworkUISourceCodeProvider.js:
37581         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
37582         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
37583         * inspector/front-end/ResourceScriptMapping.js:
37584         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
37585         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
37586         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
37587         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
37588         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
37589         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
37590         * inspector/front-end/SASSSourceMapping.js:
37591         (_bindUISourceCode):
37592         * inspector/front-end/ScriptSnippetModel.js:
37593         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
37594         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
37595         * inspector/front-end/Workspace.js:
37596         (WebInspector.Project.prototype.addUISourceCode):
37597         (WebInspector.Project.prototype.removeUISourceCode):
37598         (WebInspector.Workspace.prototype.addTemporaryUISourceCode):
37599         (WebInspector.Workspace.prototype.removeTemporaryUISourceCode):
37600
37601 2012-10-23  Emil A Eklund  <eae@chromium.org>
37602
37603         Remove unnecessary m_layoutDelta[XY]Saturated initialization
37604         https://bugs.webkit.org/show_bug.cgi?id=100018
37605
37606         Reviewed by Julien Chaffraix.
37607         
37608         Remove unnecessary initialization from LayoutState constructor
37609         added in r132105.
37610
37611         No new tests, no change in functionality.
37612
37613         * rendering/LayoutState.cpp:
37614         (WebCore::LayoutState::LayoutState):
37615
37616 2012-10-23  Zeno Albisser  <zeno@webkit.org>
37617
37618         [Texmap] Fix drawTextureRectangleARB after r131485.
37619         https://bugs.webkit.org/show_bug.cgi?id=100133
37620
37621         Consistently rename u_textureSize to u_samplerSize.
37622
37623         Reviewed by Noam Rosenthal.
37624
37625         * platform/graphics/texmap/TextureMapperGL.cpp:
37626         (WebCore::TextureMapperGL::drawTextureRectangleARB):
37627         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
37628         (WebCore::getShaderSpec):
37629         * platform/graphics/texmap/TextureMapperShaderManager.h:
37630         (TextureMapperShaderProgram):
37631
37632 2012-10-23  Mike West  <mkwst@chromium.org>
37633
37634         Web Inspector: 'data:' URLs should be properly trimmed for readability.
37635         https://bugs.webkit.org/show_bug.cgi?id=100083
37636
37637         Reviewed by Pavel Feldman.
37638
37639         We recently landed a patch to trim the middle out of long URLs in
37640         console messages in order to improve readability. That patch didn't
37641         effect 'data:' URLs, as they didn't match the regex in the linkifier.
37642         This patch ensures that 'data:' URLs are properly trimmed down to
37643         size.
37644
37645         This problem came to light while resolving a different, smaller issue:
37646         'image/jpg' wasn't whitelisted as an image MIME type. That trivial fix
37647         is included in this patch.
37648
37649         Test: http/tests/inspector/network/image-as-text-loading-data-url.html
37650
37651         * inspector/front-end/NetworkManager.js:
37652         (WebInspector.NetworkManager):
37653             Adds 'image/jpg' as a valid image type.
37654         * inspector/front-end/ResourceUtils.js:
37655         (WebInspector.linkifyStringAsFragmentWithCustomLinkifier):
37656             Supports 'data:' URLs in the linkifier's regex.
37657
37658 2012-10-23  Mike West  <mkwst@chromium.org>
37659
37660         Web Inspector: Floated anchor element sometimes overlaps following content.
37661         https://bugs.webkit.org/show_bug.cgi?id=100105
37662
37663         Reviewed by Pavel Feldman.
37664
37665         This patch ensures that each console message clears the
37666         potentially-overlapping floated anchor element.
37667
37668         * inspector/front-end/inspector.css:
37669         (#console-prompt):
37670         (.console-message, .console-user-command):
37671             Clear the float, and flip the border from the bottom of the
37672             message to the top. Do the same for the prompt.
37673         (.console-message:first-child):
37674             Ensure that the first message doesn't have a top border.
37675
37676 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37677
37678         Web Inspector: Crash when adding a keyframes rule in the Styles pane
37679         https://bugs.webkit.org/show_bug.cgi?id=99826
37680
37681         Reviewed by Pavel Feldman.
37682
37683         The client-supplied selector text is first parsed to make sure it results in a valid style rule selector.
37684
37685         Test: inspector/styles/add-new-rule-invalid-selector.html
37686
37687         * inspector/InspectorStyleSheet.cpp:
37688         (WebCore::createCSSParser):
37689         (WebCore):
37690         (WebCore::InspectorStyle::setPropertyText):
37691         (WebCore::checkStyleRuleSelector):
37692         (WebCore::InspectorStyleSheet::addRule):
37693         (WebCore::InspectorStyleSheet::ensureSourceData):
37694         (WebCore::InspectorStyleSheetForInlineStyle::getStyleAttributeRanges):
37695
37696 2012-10-15  Kenneth Rohde Christiansen  <kenneth@webkit.org>
37697
37698         Add support for resolution media query
37699         https://bugs.webkit.org/show_bug.cgi?id=99077
37700
37701         Reviewed by Antti Koivisto.
37702
37703         Add support for 'resolution' media query feature.
37704
37705         Background info:
37706         http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio
37707
37708         Related spec links:
37709         http://www.w3.org/TR/css3-mediaqueries/#resolution (recommendation)
37710         http://www.w3.org/TR/css3-values/#resolution (candidate recommentation)
37711
37712         Add infrastructure to make it testable.
37713
37714         Test: fast/media/mq-resolution.html
37715
37716         * css/CSSParser.cpp:
37717         (WebCore::CSSParser::validUnit):
37718         (WebCore::CSSParser::createPrimitiveNumericValue):
37719         (WebCore::CSSParser::parseValidPrimitive):
37720         (WebCore::CSSParser::detectNumberToken):
37721         * css/CSSParser.h:
37722         * css/CSSPrimitiveValue.cpp:
37723         (WebCore::isValidCSSUnitTypeForDoubleConversion):
37724         (WebCore::unitCategory):
37725         (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory):
37726         (WebCore::CSSPrimitiveValue::customCssText):
37727         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
37728         * css/CSSPrimitiveValue.h:
37729
37730             Enable dpi, dpcm and dppx units when RESOLUTION_MEDIA_QUERY
37731             is enabled.
37732
37733         * WebCore.exp.in:
37734
37735             Export the WebCore::Settings setting.
37736
37737         * css/CSSPrimitiveValue.h:
37738         (WebCore::CSSPrimitiveValue::isDotsPerInch):
37739         (WebCore::CSSPrimitiveValue::isDotsPerPixel):
37740         (WebCore::CSSPrimitiveValue::isDotsPerCentimeter):
37741         (CSSPrimitiveValue):
37742
37743             Add function for checking the recently added density types.
37744
37745         * css/MediaFeatureNames.h:
37746         (MediaFeatureNames):
37747
37748             Add support for resolution, min-resolution and max-resolution.
37749
37750         * css/MediaQueryEvaluator.cpp:
37751         (WebCore::compareResolution): Add methods for comparing resolutions.
37752         (WebCore):
37753         (WebCore::resolutionMediaFeatureEval):
37754         (WebCore::min_resolutionMediaFeatureEval):
37755         (WebCore::max_resolutionMediaFeatureEval):
37756
37757             Implement the resolution method evaluation.
37758
37759         * css/MediaQueryExp.cpp:
37760         (WebCore::featureWithValidPositiveDensity):
37761         (WebCore):
37762         (WebCore::featureWithoutValue):
37763         (WebCore::MediaQueryExp::MediaQueryExp):
37764
37765             Hook up resolution with the right pre-checks.
37766
37767        * page/Screen.cpp:
37768         (WebCore::Screen::horizontalDPI):
37769         (WebCore::Screen::verticalDPI):
37770
37771             Check whether an override exists, and if so, uses it.
37772             If not calculate the value given the device scale factor.
37773
37774         * page/Settings.cpp:
37775         (WebCore::Settings::setResolutionOverride):
37776         (WebCore):
37777         * page/Settings.h:
37778         (Settings):
37779         (WebCore::Settings::resolutionOverride):
37780
37781             Add a resolution override to settings.
37782
37783         * testing/InternalSettings.cpp:
37784         (WebCore::InternalSettings::Backup::Backup):
37785         (WebCore::InternalSettings::Backup::restoreTo):
37786         (WebCore::InternalSettings::setResolutionOverride):
37787         (WebCore):
37788         * testing/InternalSettings.h:
37789         (Backup):
37790         (InternalSettings):
37791         * testing/InternalSettings.idl:
37792
37793             Add a new setResolutionOverride method to internals.settings.
37794
37795 2012-10-23  Filip Spacek  <fspacek@rim.com>
37796
37797         [BlackBerry] Improve the use of stencil buffer during compositing
37798         https://bugs.webkit.org/show_bug.cgi?id=100020
37799
37800         We always want to scissor so remove the define.
37801         Only turn stenciling on if needed.
37802
37803         Reviewed by Rob Buis.
37804
37805         Reviewed internally by Arvid Nilsson.
37806
37807         * platform/graphics/blackberry/LayerRenderer.cpp:
37808         (WebCore::LayerRenderer::setViewport):
37809         (WebCore::LayerRenderer::compositeLayers):
37810         (WebCore::LayerRenderer::drawLayersOnSurfaces):
37811         (WebCore::LayerRenderer::compositeLayersRecursive):
37812         (WebCore::LayerRenderer::updateScissorIfNeeded):
37813
37814 2012-10-23  'Pavel Feldman'  <pfeldman@chromium.org>
37815
37816         Not reviewed: kick out non-chromium files from WebCore.gypi.
37817
37818         * WebCore.gypi:
37819
37820 2012-10-23  Alexander Shalamov  <alexander.shalamov@intel.com>
37821
37822         [EFL][WK2] ecore_x should be initialised in WebProcess to avoid re-initialization by PlatformScreenEfl utilities and systemBeep() function
37823         https://bugs.webkit.org/show_bug.cgi?id=100110
37824
37825         Reviewed by Kenneth Rohde Christiansen.
37826
37827         Removed initialization of ecore_x, since it is initialized when process starts.
37828
37829         test: fast/media/*
37830
37831         * platform/efl/PlatformScreenEfl.cpp:
37832         (WebCore::screenDepth):
37833         (WebCore::screenRect):
37834         * platform/efl/SoundEfl.cpp:
37835         (WebCore::systemBeep):
37836
37837 2012-10-23  Adam Klein  <adamk@chromium.org>
37838
37839         Always parse pasted fragments as HTML even on XHTML pages
37840         https://bugs.webkit.org/show_bug.cgi?id=99880
37841
37842         Reviewed by Ojan Vafai.
37843
37844         When pasting HTML into a page, using the XML parser is unlikely
37845         to work correctly, as the contents of the clipboard are unlikely
37846         to be properly-formed XHTML. Thus, for the pasting case, it's always
37847         better to use HTML parsing, which will properly parse either HTML
37848         (which is what's usually in the clipboard) or XHTML (which is
37849         sometimes there as well).
37850
37851         The Mac port previously worked around this problem by falling back to plain text
37852         when parsing failed, but switching to HTML seems like a clear improvement.
37853
37854         This also fixes a crash in Chromium (see http://webkit.org/b/99607
37855         and http://crbug.com/136218); it erroneously assumed that createFragmentFromMarkup()
37856         would never return null. This patch makes that true.
37857
37858         * editing/markup.cpp:
37859         (WebCore::createFragmentFromMarkup): Don't delegate to createContextualFragment:
37860         we already know our context element is safe (i.e., it's <body>),
37861         and we want to force HTML (not XML) parsing.
37862
37863 2012-10-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
37864
37865         [Qt] REGRESSION (r130851): fast/text/word-space-with-kerning.html fails
37866         https://bugs.webkit.org/show_bug.cgi?id=98876
37867
37868         Reviewed by Simon Hausmann.
37869
37870         Do not add word-spacing for leading space. This matches what simple path font-width does.
37871
37872         Tested by existing tests.
37873
37874         * platform/graphics/qt/FontQt.cpp:
37875         (WebCore::Font::floatWidthForComplexText):
37876
37877 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37878
37879         Web Inspector: Incorrect resolution of relative URLs containing a scheme in query parameters
37880         https://bugs.webkit.org/show_bug.cgi?id=100084
37881
37882         Reviewed by Vsevolod Vlasov.
37883
37884         Use the RFC 3986 grammar for the URL scheme.
37885
37886         * inspector/front-end/ParsedURL.js:
37887         (WebInspector.ParsedURL):
37888
37889 2012-10-23  Eugene Klyuchnikov  <eustas.bug@gmail.com>
37890
37891         Web Inspector: Elaborate source panel sidebar context menus.
37892         https://bugs.webkit.org/show_bug.cgi?id=99980
37893
37894         Reviewed by Vsevolod Vlasov.
37895
37896         - Watches: add "Add watch expression" item to items and empty element
37897         - Watches: hide "Remove watch expression" from editing prompt context menu
37898         - Watches: add titles to header buttons
37899         - XHR Breakpoints: add "Add Breakpoint" item to items and empty element
37900         - XHR Breakpoints: add "Remove all breakpoints" item to items (when >1)
37901         - XHR Breakpoints: add title to header button
37902         - JS Breakpoints: hide "Remove/(De)Activate breakpoints" when only 1 item present
37903         - JS Breakpoints: add "(De)Activate breakpoints" to empty element context menu
37904
37905         * English.lproj/localizedStrings.js: Added corresponding strings.
37906         * inspector/front-end/BreakpointsSidebarPane.js: Adjusted context menu.
37907         (WebInspector.XHRBreakpointsSidebarPane): Ditto.
37908         * inspector/front-end/ObjectPropertiesSection.js: Added "isEditing()"
37909         * inspector/front-end/WatchExpressionsSidebarPane.js: Adjusted context menu.
37910
37911 2012-10-23  Kent Tamura  <tkent@chromium.org>
37912
37913         Update binding test results for r132194
37914         https://bugs.webkit.org/show_bug.cgi?id=100097
37915
37916         * bindings/scripts/test/V8/V8TestObj.cpp:
37917         (WebCore::V8TestObj::installPerContextProperties):
37918
37919 2012-10-23  Alexander Pavlov  <apavlov@chromium.org>
37920
37921         Web Inspector: Sass can only resolve same folder paths
37922         https://bugs.webkit.org/show_bug.cgi?id=99259
37923
37924         Reviewed by Vsevolod Vlasov.
37925
37926         The actual reason is that the rule source location linkifier tries to linkify a resource (*.scss), which does not exist,
37927         and falls back to just stripping the main page URL prefix from the rule location URL. This change introduces LiveLocations
37928         for CSSRule locations and makes sure they are linkified using uiSourceCode's parsedURL.displayName.
37929
37930         * inspector/front-end/CSSStyleModel.js:
37931         (WebInspector.CSSStyleModel): Introduced LiveLocation management for CSSRules.
37932         (WebInspector.CSSStyleModel.prototype.setSourceMapping):
37933         (WebInspector.CSSStyleModel.prototype._updateLocations):
37934         (WebInspector.CSSStyleModel.prototype.createLiveLocation):
37935         (WebInspector.CSSStyleModel.prototype.updateLocations):
37936         (WebInspector.CSSStyleModel.LiveLocation): A LiveLocation for the CSS domain.
37937         (WebInspector.CSSStyleModel.LiveLocation.prototype.uiLocation):
37938         (WebInspector.CSSStyleModel.LiveLocation.prototype.dispose):
37939         * inspector/front-end/Linkifier.js:
37940         (WebInspector.Linkifier.prototype.linkifyCSSRuleLocation): CSSRule LiveLocation-based link builder.
37941         (WebInspector.Linkifier.DefaultFormatter.prototype.formatLiveAnchor): Add a title for anchors.
37942         (WebInspector.Linkifier.DefaultCSSFormatter): Formatter for CSS location links.
37943         (WebInspector.Linkifier.DefaultCSSFormatter.prototype.formatLiveAnchor):
37944         * inspector/front-end/ResourceUtils.js:
37945         (WebInspector.displayNameForURL): Use parsedURL.displayName if uiSourceCode is present for the specified URL.
37946         * inspector/front-end/SASSSourceMapping.js:
37947         * inspector/front-end/StylesSidebarPane.js:
37948         (WebInspector.StylesSidebarPane):
37949         (WebInspector.StylesSidebarPane.prototype._innerRebuildUpdate):
37950         * inspector/front-end/inspector.html:
37951
37952 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
37953
37954         Unreviewed, rolling out r132149.
37955         http://trac.webkit.org/changeset/132149
37956         https://bugs.webkit.org/show_bug.cgi?id=100098
37957
37958         Breaks inspector profiler tests in debug mode. (Requested by
37959         pfeldman1 on #webkit).
37960
37961         * rendering/AutoTableLayout.cpp:
37962         (WebCore::AutoTableLayout::recalcColumn):
37963         * rendering/FixedTableLayout.cpp:
37964         (WebCore::FixedTableLayout::calcWidthArray):
37965         * rendering/RenderTable.cpp:
37966         (WebCore::RenderTable::layout):
37967         * rendering/RenderTableCol.cpp:
37968         (WebCore::RenderTableCol::styleDidChange):
37969         (WebCore::RenderTableCol::updateFromElement):
37970         (WebCore::RenderTableCol::computePreferredLogicalWidths):
37971         * rendering/RenderTableCol.h:
37972         (RenderTableCol):
37973
37974 2012-10-23  Simon Hausmann  <simon.hausmann@digia.com>
37975
37976         Unreviewed trivial Qt build fix: Fix build without USE_3D_GRAPHICS
37977
37978         Move the #if USE(GRAPHICS_SURFACE) up to protect the inclusion of
37979         GraphicsContext3D.h to be done only if we use the surface.
37980
37981         * platform/graphics/surfaces/GraphicsSurface.h:
37982
37983 2012-10-23  Sheriff Bot  <webkit.review.bot@gmail.com>
37984
37985         Unreviewed, rolling out r132033.
37986         http://trac.webkit.org/changeset/132033
37987         https://bugs.webkit.org/show_bug.cgi?id=100097
37988
37989         Broke calendar picker (Requested by tkent on #webkit).
37990
37991         * bindings/scripts/CodeGeneratorV8.pm:
37992         (GenerateImplementation):
37993
37994 2012-10-23  Andras Becsi  <andras.becsi@digia.com>
37995
37996         Remove devicePixelRatio from ViewportAttributes
37997         https://bugs.webkit.org/show_bug.cgi?id=99845
37998
37999         Reviewed by Adam Barth.
38000
38001         Since r121555 the devicePixelRatio is not calculated any more
38002         and the scale factor is stored in Page::m_deviceScaleFactor,
38003         thus it can be removed from ViewportAttributes to reduce
38004         redundancy and unnecessary client code.
38005         Use a new parameter in viewport calculation functions using
38006         the visible viewport size (instead of passing the adjusted
38007         viewport size) so that after this change clients do not end
38008         up using the unadjusted viewport size for calculations.
38009
38010         No behavioural change, no new tests needed.
38011
38012         * WebCore.exp.in:
38013         * dom/ViewportArguments.cpp:
38014         (WebCore::computeViewportAttributes):
38015         (WebCore::computeMinimumScaleFactorForContentContained):
38016         Add the devicePixelRatio as a parameter.
38017         (WebCore::restrictMinimumScaleFactorToViewportSize): Ditto.
38018         * dom/ViewportArguments.h:
38019         (ViewportAttributes):
38020         (WebCore):
38021         * testing/InternalSettings.cpp:
38022         (WebCore::InternalSettings::configurationForViewport):
38023
38024 2012-10-23  Kent Tamura  <tkent@chromium.org>
38025
38026         Support full month names in DateTimeEditElement, and use them in input[type=month] by default
38027         https://bugs.webkit.org/show_bug.cgi?id=100060
38028
38029         Reviewed by Kentaro Hara.
38030
38031         According to https://plus.google.com/104770450049736549185/posts/4zsoeHoa7SM
38032         no one wants to show abbreviated month names for input[type=month].
38033         This change add support for full month names in DateTimeEditELement, and
38034         LocaleICU and LocaleMac retun month formats with full month names. Note
38035         that LocaleWin::monthFormat returns formats for full month names.
38036
38037         No new tests. Covered by fast/forms/month-multiple-fields/month-multiple-fields-appearance-*.html
38038
38039         * html/shadow/DateTimeEditElement.cpp:
38040         (WebCore::DateTimeEditBuilder::visitField):
38041         If count is 4, use Localizer::monthLabels or standAloneMonthLabels.
38042         * platform/text/LocaleICU.cpp:
38043         (WebCore::LocaleICU::monthFormat):
38044         Returns a format for full month names.
38045         * platform/text/mac/LocaleMac.mm:
38046         (WebCore::LocaleMac::monthFormat): Ditto.
38047
38048 2012-10-23  Mike West  <mkwst@chromium.org>
38049
38050         Viewport errors should be slightly friendlier with regard to ';'.
38051         https://bugs.webkit.org/show_bug.cgi?id=100003
38052
38053         Reviewed by Adam Barth.
38054
38055         This patch scans viewport values that cause errors for ';'. If found,
38056         a quick message is appended to the error, noting that semicolons are
38057         not valid separators in viewport contents, and that commas would be
38058         the proper substitute.
38059
38060         No functional changes, just a better error message.
38061
38062         * dom/ViewportArguments.cpp:
38063         (WebCore::reportViewportWarning):
38064
38065 2012-10-23  Timothy Hatcher  <timothy@apple.com>
38066
38067         Docking/undocking the Web Inspector does not work correctly in Safari.
38068
38069         The "docked" and "bottom" strings need quoted instead of being passed as identifiers.
38070
38071         https://bugs.webkit.org/show_bug.cgi?id=100080
38072
38073         Reviewed by Yury Semikhatsky.
38074
38075         * inspector/InspectorFrontendClientLocal.cpp:
38076         (WebCore::InspectorFrontendClientLocal::setAttachedWindow): Put quotes around the %s.
38077
38078 2012-10-23  Sudarsana Nagineni  <sudarsana.nagineni@intel.com>
38079
38080         [EFL][WK2] Compilation warning in GraphicsContext3DPrivate.cpp when AC is enabled
38081         https://bugs.webkit.org/show_bug.cgi?id=99723
38082
38083         Reviewed by Kenneth Rohde Christiansen.
38084
38085         Fix compilation warning in GraphicsContext3DPrivate.cpp when AC is
38086         enabled.
38087
38088         No new tests, no change in behavior.
38089
38090         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
38091         (WebCore::GraphicsContext3DPrivate::createSurface):
38092
38093 2012-10-23  Dan Carney  <dcarney@google.com>
38094
38095         When blocking localStorage, Firefox throws a security exception on access, and maybe so should we
38096         https://bugs.webkit.org/show_bug.cgi?id=63257
38097
38098         Reviewed by Jochen Eisinger.
38099
38100         Throw security exception when local storage is accessed
38101         under certain circumstances to match firefox.
38102
38103         No new tests. Existing tests modified.
38104
38105         * bindings/js/JSStorageCustom.cpp:
38106         (WebCore::JSStorage::canGetItemsForName):
38107         (WebCore::JSStorage::nameGetter):
38108         (WebCore::JSStorage::deleteProperty):
38109         (WebCore::JSStorage::getOwnPropertyNames):
38110         * bindings/v8/custom/V8StorageCustom.cpp:
38111         (WebCore):
38112         (WebCore::setDOMException):
38113         (WebCore::V8Storage::namedPropertyEnumerator):
38114         (WebCore::storageGetter):
38115         (WebCore::V8Storage::namedPropertyQuery):
38116         (WebCore::storageDeleter):
38117         * inspector/InspectorDOMStorageAgent.cpp:
38118         (WebCore::InspectorDOMStorageAgent::getDOMStorageEntries):
38119         (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
38120         * page/DOMWindow.cpp:
38121         (WebCore::DOMWindow::sessionStorage):
38122         (WebCore::DOMWindow::localStorage):
38123         * storage/Storage.cpp:
38124         * storage/Storage.h:
38125         (WebCore):
38126         (WebCore::Storage::length):
38127         (WebCore::Storage::key):
38128         (WebCore::Storage::getItem):
38129         (WebCore::Storage::setItem):
38130         (WebCore::Storage::removeItem):
38131         (WebCore::Storage::clear):
38132         (WebCore::Storage::contains):
38133         * storage/Storage.idl:
38134         * storage/StorageArea.h:
38135         (StorageArea):
38136         * storage/StorageAreaImpl.cpp:
38137         (WebCore::StorageAreaImpl::canAccessStorage): Checks whether access to storage is a security violation.
38138         (WebCore):
38139         (WebCore::StorageAreaImpl::disabledByPrivateBrowsingInFrame):
38140         (WebCore::StorageAreaImpl::length):
38141         (WebCore::StorageAreaImpl::key):
38142         (WebCore::StorageAreaImpl::getItem):
38143         (WebCore::StorageAreaImpl::setItem):
38144         (WebCore::StorageAreaImpl::removeItem):
38145         (WebCore::StorageAreaImpl::clear):
38146         (WebCore::StorageAreaImpl::contains):
38147         * storage/StorageAreaImpl.h:
38148         (StorageAreaImpl):
38149
38150 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38151
38152         IndexedDB: Remove custom binding code for IDBCursor.value
38153         https://bugs.webkit.org/show_bug.cgi?id=100034
38154
38155         Reviewed by Kentaro Hara.
38156
38157         Now that we're using ScriptValue instead of SerializedScriptValue we can just expose
38158         IDBCursor.value as an |any| (IDL) or |ScriptValue| (C++) to maintain the specified
38159         semantics that the object identity is retained across accesses.
38160
38161         Test: storage/indexeddb/cursor-value.html
38162
38163         * Modules/indexeddb/IDBCursor.cpp: Remove "dirty" tracking.
38164         (WebCore::IDBCursor::IDBCursor):
38165         (WebCore::IDBCursor::value):
38166         (WebCore::IDBCursor::setValueReady):
38167         * Modules/indexeddb/IDBCursor.h: IDBAny -> ScriptValue
38168         (IDBCursor):
38169         * Modules/indexeddb/IDBCursorWithValue.idl: IDBAny -> any
38170         * Modules/indexeddb/IDBObjectStore.cpp: No need to route through IDBAny to get ScriptValue.
38171         (WebCore):
38172         * UseV8.cmake: Remove references to IDBCustomBindings.cpp
38173         * WebCore.gypi: Ditto.
38174         * WebCore.vcproj/WebCore.vcproj: Ditto.
38175         * bindings/v8/IDBCustomBindings.cpp: Removed.
38176
38177 2012-10-22  Dan Bernstein  <mitz@apple.com>
38178
38179         Font’s fast code path is used for partial runs with kerning and ligatures, but shouldn’t be
38180         https://bugs.webkit.org/show_bug.cgi?id=100068
38181
38182         Reviewed by Sam Weinig.
38183
38184         As described in <http://webkit.org/b/100050>, the fast code path doesn’t handle partial runs
38185         correctly when kerning or ligatures are enabled. Since the partial-run case is uncommon,
38186         for now just use the complex code path in this case.
38187
38188         * platform/graphics/Font.cpp:
38189         (WebCore::Font::drawText): Changed to use the complex path for partial runs if there are any
38190         typesetting features.
38191         (WebCore::Font::drawEmphasisMarks): Ditto.
38192         (WebCore::Font::selectionRectForText): Ditto.
38193         (WebCore::Font::offsetForPosition): Changed to use the complex path if there are any
38194         typesetting features.
38195
38196 2012-10-22  Peter Wang  <peter.wang@torchmobile.com.cn>
38197
38198         [BlackBerry] Missing some cookies in HTTP response header when set several cookies in one "Set-Cookie" header.
38199         https://bugs.webkit.org/show_bug.cgi?id=99950
38200
38201         Reviewed by George Staikos.
38202
38203         In "NetworkJob::handleNotifyHeaderReceived", if there are several "Set-Cookie" headers, 
38204         we should combine the following ones with the first.
38205
38206         No new test case.
38207
38208         * platform/network/blackberry/NetworkJob.cpp:
38209         (WebCore::NetworkJob::handleNotifyHeaderReceived):
38210
38211 2012-10-22  MORITA Hajime  <morrita@google.com>
38212
38213         Assertion failed at WebCore::toInsertionPoint / WebCore::ContentDistributor::distribute
38214         https://bugs.webkit.org/show_bug.cgi?id=100038
38215
38216         Reviewed by Kent Tamura.
38217
38218         isHTMLContentElement() assumes that the content element always has
38219         a tag name "content" but it doesn't when Shadow DOM feature is
38220         disabled. This fix let the function see the correct tag name.
38221
38222         Test: fast/dom/shadow/insertion-points-with-shadow-disabled.html
38223
38224         * html/shadow/HTMLContentElement.cpp:
38225         (WebCore::HTMLContentElement::contentTagName):
38226         * html/shadow/HTMLContentElement.h:
38227         (HTMLContentElement):
38228         (WebCore::isHTMLContentElement):
38229
38230 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38231
38232         [Shadow] Fallback content should also be reprojection.
38233         https://bugs.webkit.org/show_bug.cgi?id=99750
38234
38235         Reviewed by Dimitri Glazkov.
38236
38237         Fallback content of InsertionPoint should be reprojected. The existing assumption that
38238         only the direct child of host element can be distributed to InsertionPoint does not hold anymore.
38239         So, if the parent of an element is InsertionPoint which should show fallback element, we have to
38240         check the grand parent of the element instead of the element.
38241
38242         Tests: fast/dom/shadow/content-reprojection-fallback-reprojection.html
38243                fast/dom/shadow/content-reprojection-fallback.html
38244
38245         * css/StyleResolver.cpp:
38246         (WebCore::shouldResetStyleInheritance): Checks the grandparent of the element if the parent is
38247         an InsertionPoint which uses fallback content.
38248         * dom/ComposedShadowTreeWalker.cpp:
38249         (WebCore::shadowOfParentForDistribution):
38250         (WebCore):
38251         (WebCore::resolveReprojection):
38252         (WebCore::ComposedShadowTreeWalker::traverseParent):
38253         * html/shadow/InsertionPoint.cpp:
38254         (WebCore::InsertionPoint::shouldUseFallbackElements): True if the InsertionPoint should use fallback content.
38255         (WebCore):
38256         * html/shadow/InsertionPoint.h:
38257         (WebCore::parentElementForDistribution): Returns the grandparent element if the parent is InsertionPoint which uses
38258         fallback content. Returns parent element otherwise.
38259         (WebCore):
38260
38261 2012-10-22  Keishi Hattori  <keishi@webkit.org>
38262
38263         Label position is wrong in the suggestion picker when all the suggestions have labels
38264         https://bugs.webkit.org/show_bug.cgi?id=99965
38265
38266         Reviewed by Kent Tamura.
38267
38268         Somehow the scrollbar was appearing and so the label element was being wrapped to the next line.
38269
38270         No new tests. Can't reproduce in layout test.
38271
38272         * Resources/pagepopups/suggestionPicker.css:
38273         (.suggestion-list):
38274         * Resources/pagepopups/suggestionPicker.js:
38275         (SuggestionPicker.prototype._fixWindowSize): Explicitly show the scroll bar.
38276
38277 2012-10-22  MORITA Hajime  <morrita@google.com>
38278
38279         [Chromium] Needs to track ShadowRoot usage
38280         https://bugs.webkit.org/show_bug.cgi?id=99955
38281
38282         Reviewed by Dimitri Glazkov.
38283
38284         Added an UMA instrumentation.
38285
38286         * dom/ShadowRoot.cpp:
38287         (WebCore::determineUsageType):
38288         (WebCore):
38289         (WebCore::ShadowRoot::create):
38290
38291 2012-10-22  Kent Tamura  <tkent@chromium.org>
38292
38293         Introduce Localizer::standAloneMonthLabels
38294         https://bugs.webkit.org/show_bug.cgi?id=99963
38295
38296         Reviewed by Kentaro Hara.
38297
38298         We realized full month names and full stand-alone month names were
38299         necessary for input[type=month] UI. We change the compile-flag for
38300         Localizer::monthLabels from "ENABLE(CALENDAR_PICKER)" to
38301         "ENABLE(CALENDAR_PICKER) || ENABLE(INPUT_MULTIPLE_FIELDS_UI)," and
38302         introduce Localizer::standAloneMonthLabels.
38303
38304         Tests: Add some test cases to Source/WebKit/chromium/LocaleMacTest.cpp
38305         and LocalizedDateICUTest.cpp.
38306
38307         * platform/text/Localizer.h:
38308         (Localizer):
38309         - Add pure virtual standAloneMonthLabels.
38310         - Change the condition for monthLabels.
38311
38312         * platform/text/LocaleNone.cpp:
38313         (LocaleNone): Declare monthLabels, standAloneMonthLabels, and m_monthLabels.
38314         (WebCore::LocaleNone::monthLabels):
38315         Added. It always returns English month names.
38316         (WebCore::LocaleNone::standAloneMonthLabels):
38317         Added. Just calls monthLabels.
38318
38319         * platform/text/LocaleWin.h:
38320         (LocaleWin):
38321         Declare standAloneMonthLabels, and change the condition for monthLabels.
38322         * platform/text/LocaleWin.cpp:
38323         (WebCore): Change the condition for monthLabels.
38324         (WebCore::LocaleWin::standAloneMonthLabels):
38325         Added. Just calls monthLabels.
38326
38327         * platform/text/mac/LocaleMac.h:
38328         (LocaleMac):
38329         - Add standAloneMonthLabels and m_standAloneMonthLabels
38330         - Change the condition for monthLabels and m_monthLabels.
38331         * platform/text/mac/LocaleMac.mm:
38332         (WebCore): Change the condition for monthLabels.
38333         (WebCore::LocaleMac::standAloneMonthLabels):
38334         Added. Get the information with NSDateFormatter::standaloneMonthSymbols.
38335
38336         * platform/text/LocaleICU.h:
38337         (LocaleICU):
38338         - Add standAloneMonthLabels and m_standAloneMonthLabels
38339         - Change the condition for monthLabels and m_monthLabels.
38340         * platform/text/LocaleICU.cpp:
38341         (WebCore::LocaleICU::initializeCalendar):
38342         Remove m_monthLabels initialization in order to avoid dependecy from monthLabels.
38343         (WebCore):
38344         (WebCore::createFallbackMonthLabels): Change the compile condition.
38345         (WebCore::LocaleICU::monthLabels):
38346         - Change the compile condition.
38347         - Don't depend on initializeCalendar to make the code for
38348         ENABLE(INPUT_MULTIPLE_FIELDS_UI) && !ENABLE(CALENDAR_PICKER) minimal.
38349         (WebCore::LocaleICU::standAloneMonthLabels):
38350         Added. The code is similar to shortStandAloneMonthLabels.
38351
38352 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
38353
38354         Refactoring around ContainerNode::attachChildren
38355         https://bugs.webkit.org/show_bug.cgi?id=99968
38356
38357         Reviewed by Hajime Morita.
38358
38359         Since ContainerNode::attach() is now equivalent to ContainerNode::attachChildren() + Node::attach(), we should call
38360         ContainerNode::attach() instead of calling them.
38361
38362         No new tests, no change in behavior.
38363
38364         * dom/ContainerNode.h:
38365         (ContainerNode):
38366         * dom/Element.cpp:
38367         (WebCore::Element::attach):
38368         * dom/ShadowRoot.cpp:
38369         (WebCore::ShadowRoot::attach):
38370
38371 2012-10-22  Michael Saboff  <msaboff@apple.com>
38372
38373         HTML Parser should produce 8 bit strings for doctype, comment and tagName tokens
38374         https://bugs.webkit.org/show_bug.cgi?id=99889
38375
38376         Reviewed by Geoffrey Garen.
38377
38378         Added 8 bit check for accumulating all token data in MarkupTokenBase.  Added code to convert
38379         "name" token data directly to a string (8 or 16 as appropriate).  Changed to accumulate
38380         m_bufferedEndTagName as LChar's.
38381
38382         No new tests, covered by existing tests.
38383
38384         * html/parser/HTMLToken.h:
38385         (HTMLToken):
38386         * html/parser/HTMLTokenizer.cpp:
38387         (WebCore::HTMLTokenizer::nextToken):
38388         (WebCore::HTMLTokenizer::addToPossibleEndTag):
38389         (WebCore::HTMLTokenizer::isAppropriateEndTag):
38390         * html/parser/HTMLTokenizer.h:
38391         (HTMLTokenizer):
38392         * html/parser/HTMLTreeBuilder.cpp:
38393         (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading):
38394         * xml/parser/MarkupTokenBase.h:
38395         (WebCore::MarkupTokenBase::beginStartTag):
38396         (WebCore::MarkupTokenBase::beginEndTag):
38397         (MarkupTokenBase):
38398         (WebCore::MarkupTokenBase::beginDOCTYPE):
38399         (WebCore::MarkupTokenBase::appendToComment):
38400         (WebCore::MarkupTokenBase::appendToName):
38401         (WebCore::MarkupTokenBase::nameString):
38402         (WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
38403
38404 2012-10-22  Tony Chang  <tony@chromium.org>
38405
38406         margin-top/bottom has no effect for child nodes of flex items
38407         https://bugs.webkit.org/show_bug.cgi?id=99923
38408
38409         Reviewed by Ojan Vafai.
38410
38411         Flexitems, like table cells, shouldn't collapse margins.
38412
38413         Test: css3/flexbox/flexitem-no-margin-collapsing.html
38414
38415         * rendering/RenderBlock.cpp:
38416         (WebCore::RenderBlock::MarginInfo::MarginInfo): Check to see if the parent is a flexible box.
38417         We should always have a parent if we make it this far in the check.
38418
38419 2012-10-22  Marja Hölttä  <marja@chromium.org>
38420
38421         Refactor CachedResourceLoader: add CachedResourceRequest
38422         https://bugs.webkit.org/show_bug.cgi?id=99736
38423
38424         Reviewed by Adam Barth.
38425
38426         For fixing bugs 84883 and 92761,
38427         CachedResourceLoader::requestResource should take as parameter
38428         information about who initiated the request. But the parameter
38429         list was already long. This gathers all the parameters into a
38430         separate class, CachedResourceRequest. The next step is to add
38431         information about who initiated the request into
38432         CachedResourceRequest.
38433
38434         No new tests because no changes in functionality, just moving code
38435         around.
38436
38437         * CMakeLists.txt:
38438         * GNUmakefile.list.am:
38439         * Target.pri:
38440         * WebCore.gypi:
38441         * WebCore.vcproj/WebCore.vcproj:
38442         * WebCore.xcodeproj/project.pbxproj:
38443         * css/CSSFontFaceSrcValue.cpp:
38444         (WebCore::CSSFontFaceSrcValue::cachedFont):
38445         * css/CSSImageSetValue.cpp:
38446         (WebCore::CSSImageSetValue::cachedImageSet):
38447         * css/CSSImageValue.cpp:
38448         (WebCore::CSSImageValue::cachedImage):
38449         * css/StyleRuleImport.cpp:
38450         (WebCore::StyleRuleImport::requestStyleSheet):
38451         * css/WebKitCSSSVGDocumentValue.cpp:
38452         (WebCore::WebKitCSSSVGDocumentValue::load):
38453         * css/WebKitCSSShaderValue.cpp:
38454         (WebCore::WebKitCSSShaderValue::cachedShader):
38455         * dom/ProcessingInstruction.cpp:
38456         (WebCore::ProcessingInstruction::checkStyleSheet):
38457         * dom/ScriptElement.cpp:
38458         (WebCore::ScriptElement::requestScript):
38459         * html/HTMLLinkElement.cpp:
38460         (WebCore::HTMLLinkElement::process):
38461         * loader/DocumentThreadableLoader.cpp:
38462         (WebCore::DocumentThreadableLoader::loadRequest):
38463         * loader/ImageLoader.cpp:
38464         (WebCore::ImageLoader::updateFromElement):
38465         * loader/LinkLoader.cpp:
38466         (WebCore::LinkLoader::loadLink):
38467         * loader/TextTrackLoader.cpp:
38468         (WebCore::TextTrackLoader::load):
38469         * loader/cache/CachedResourceLoader.cpp:
38470         (WebCore::CachedResourceLoader::requestImage):
38471         (WebCore::CachedResourceLoader::requestFont):
38472         (WebCore::CachedResourceLoader::requestTextTrack):
38473         (WebCore::CachedResourceLoader::requestShader):
38474         (WebCore::CachedResourceLoader::requestCSSStyleSheet):
38475         (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
38476         (WebCore::CachedResourceLoader::requestScript):
38477         (WebCore::CachedResourceLoader::requestXSLStyleSheet):
38478         (WebCore::CachedResourceLoader::requestSVGDocument):
38479         (WebCore::CachedResourceLoader::requestLinkResource):
38480         (WebCore::CachedResourceLoader::requestRawResource):
38481         (WebCore::CachedResourceLoader::requestResource):
38482         (WebCore::CachedResourceLoader::requestPreload):
38483         (WebCore::CachedResourceLoader::defaultCachedResourceOptions):
38484         (WebCore):
38485         * loader/cache/CachedResourceLoader.h:
38486         (WebCore):
38487         (CachedResourceLoader):
38488         * loader/cache/CachedResourceRequest.cpp: Added.
38489         (WebCore):
38490         (WebCore::CachedResourceRequest::CachedResourceRequest):
38491         * loader/cache/CachedResourceRequest.h: Added.
38492         (WebCore):
38493         (CachedResourceRequest):
38494         (WebCore::CachedResourceRequest::mutableResourceRequest):
38495         (WebCore::CachedResourceRequest::resourceRequest):
38496         (WebCore::CachedResourceRequest::charset):
38497         (WebCore::CachedResourceRequest::setCharset):
38498         (WebCore::CachedResourceRequest::options):
38499         (WebCore::CachedResourceRequest::priority):
38500         (WebCore::CachedResourceRequest::forPreload):
38501         (WebCore::CachedResourceRequest::setForPreload):
38502         (WebCore::CachedResourceRequest::defer):
38503         (WebCore::CachedResourceRequest::setDefer):
38504         * loader/icon/IconLoader.cpp:
38505         (WebCore::IconLoader::startLoading):
38506         * svg/SVGFEImageElement.cpp:
38507         (WebCore::SVGFEImageElement::requestImageResource):
38508         * svg/SVGFontFaceUriElement.cpp:
38509         (WebCore::SVGFontFaceUriElement::loadFont):
38510         * svg/SVGUseElement.cpp:
38511         (WebCore::SVGUseElement::svgAttributeChanged):
38512         * xml/XSLImportRule.cpp:
38513         (WebCore::XSLImportRule::loadSheet):
38514
38515 2012-10-22  Adam Barth  <abarth@webkit.org>
38516
38517         [V8] ASSERT that removeAllDOMObjects() is called only on worker threads
38518         https://bugs.webkit.org/show_bug.cgi?id=100046
38519
38520         Reviewed by Eric Seidel.
38521
38522         This function is called only on worker threads. We should ASSERT that
38523         fact and remove the dead code that tries to handle the main thread
38524         case.
38525
38526         * bindings/v8/V8DOMMap.cpp:
38527         (WebCore::removeAllDOMObjects):
38528
38529 2012-10-22  Adam Barth  <abarth@webkit.org>
38530
38531         [V8] We should call the faster v8::Integer::New APIs
38532         https://bugs.webkit.org/show_bug.cgi?id=100016
38533
38534         Reviewed by Eric Seidel.
38535
38536         In working to remove the integer cache, I added some faster APIs for
38537         creating v8::Integers. These APIs are faster than the old APIs, but not
38538         quite fast enough to replace the integer cache. We should still use
38539         them when we miss the integer cache.
38540
38541         I've also included a small refactoring to V8PerIsolateData to make it
38542         clearer when we're calling v8::Isolate::GetCurrent().
38543
38544         * bindings/v8/DOMData.cpp:
38545         (WebCore::DOMData::getCurrentStore):
38546         * bindings/v8/V8Binding.h:
38547         (WebCore::v8ExternalString):
38548         (WebCore::v8Integer):
38549         (WebCore::v8UnsignedInteger):
38550         * bindings/v8/V8PerIsolateData.h:
38551         (WebCore::V8PerIsolateData::current):
38552         (WebCore::V8PerIsolateData::from):
38553         * bindings/v8/V8ValueCache.cpp:
38554         (WebCore::StringCache::v8ExternalStringSlow):
38555         (WebCore::IntegerCache::createSmallIntegers):
38556         * bindings/v8/V8ValueCache.h:
38557         (WebCore::IntegerCache::v8Integer):
38558         (WebCore::IntegerCache::v8UnsignedInteger):
38559         (IntegerCache):
38560         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
38561         (WebCore::V8HTMLCanvasElement::getContextCallback):
38562
38563 2012-10-22  Julien Chaffraix  <jchaffraix@webkit.org>
38564
38565         RenderTableCol::computePreferredLogicalWidths and RenderTableCol::layout should never be called
38566         https://bugs.webkit.org/show_bug.cgi?id=99861
38567
38568         Reviewed by Ojan Vafai.
38569
38570         RenderTableCol's computePreferredLogicalWidths and layout's only purpose were to clear the preferred logical
38571         widths dirty / layout flag so that we would properly propagate the information to our containing table. This
38572         led to clunky code where the table layout code had to forcefully call RenderTableCol::computePreferredLogicalWidths
38573         or else we would ignore the next layout hint on the <col> or <colgroup>.
38574
38575         Test: fast/table/col-span-change-relayout.html
38576
38577         * rendering/AutoTableLayout.cpp:
38578         (WebCore::AutoTableLayout::recalcColumn):
38579         * rendering/RenderTable.cpp:
38580         (WebCore::RenderTable::layout):
38581         Simplified the code now that we only need to iterate over the sections.
38582
38583         * rendering/FixedTableLayout.cpp:
38584         (WebCore::FixedTableLayout::calcWidthArray):
38585         Removed call to computePreferredLogicalWidths.
38586
38587         * rendering/RenderTableCol.cpp:
38588         (WebCore::RenderTableCol::styleDidChange):
38589         (WebCore::RenderTableCol::updateFromElement):
38590         Forward a layout hint to the table so that we properly recompute the cell's logical withs.
38591
38592         (WebCore::RenderTableCol::computePreferredLogicalWidths):
38593         (WebCore::RenderTableCol::layout):
38594         Change our implementations of those 2 methods to be no-ops, while enforcing that they are
38595         never called.
38596
38597         (WebCore::RenderTableCol::propagateLayoutCueToTable):
38598         New helper function that forward any layout cue to the containing table, this works around
38599         us not clearing the flags which confuses RenderObject markContainingBlocksForLayout and
38600         invalidateContainerPreferredLogicalWidths.
38601
38602         * rendering/RenderTableCol.h:
38603         Made the function that we are not expected to be called private.
38604
38605 2012-10-22  Pan Deng  <pan.deng@intel.com>
38606
38607         [User Timing]Integrate with Perforamnce Timeline.
38608         https://bugs.webkit.org/show_bug.cgi?id=91072.
38609
38610         Reviewed by Tony Gentilcore.
38611
38612         This patch expose user timing entries via performance timeline interface. JavaScriptCore custom binding will be another patch
38613
38614         No new tests, user timing test cases have been landed.
38615
38616         * page/Performance.cpp:
38617         (WebCore::Performance::Performance):
38618         (WebCore::Performance::webkitGetEntries):
38619         (WebCore::Performance::webkitGetEntriesByType):
38620         (WebCore::Performance::webkitGetEntriesByName):
38621         * page/PerformanceEntry.h:
38622         (WebCore::PerformanceEntry::startTimeCompareLessThan):
38623         (PerformanceEntry):
38624         * page/PerformanceEntryList.cpp:
38625         (WebCore::PerformanceEntryList::sort):
38626         (WebCore):
38627         * page/PerformanceEntryList.h:
38628         (PerformanceEntryList):
38629         * page/PerformanceUserTiming.cpp:
38630         (WebCore::convertToEntrySequence):
38631         (WebCore):
38632         (WebCore::getEntrySequenceByName):
38633         (WebCore::UserTiming::getMarks):
38634         (WebCore::UserTiming::getMeasures):
38635         * page/PerformanceUserTiming.h:
38636         (UserTiming):
38637
38638 2012-10-22  Pan Deng  <pan.deng@intel.com>
38639
38640         Modify obsolete code in User Timing
38641         https://bugs.webkit.org/show_bug.cgi?id=99851
38642
38643         Reviewed by Tony Gentilcore.
38644
38645         Modify user timing implementation as PlatformString.h, prefix of webkitNow is removed, etc.
38646
38647         No new tests.
38648
38649         * page/PerformanceUserTiming.cpp:
38650         (WebCore::insertPerformanceEntry):
38651         (WebCore::UserTiming::mark):
38652         (WebCore::UserTiming::measure):
38653         * page/PerformanceUserTiming.h:
38654
38655 2012-10-22  Mark Lam  <mark.lam@apple.com>
38656
38657         Change stack recursion checks to be based on stack availability.
38658         https://bugs.webkit.org/show_bug.cgi?id=99872.
38659
38660         Reviewed by Filip Pizlo and Geoffrey Garen.
38661
38662         Removed the use of ThreadStackType. Enabled the reserved JSStack space
38663         for error processing before doing work in reportException().
38664
38665         * bindings/js/JSDOMBinding.cpp:
38666         (WebCore::reportException):
38667         * bindings/js/JSDOMWindowBase.cpp:
38668         (WebCore::JSDOMWindowBase::commonJSGlobalData):
38669         * bindings/js/WorkerScriptController.cpp:
38670         (WebCore::WorkerScriptController::WorkerScriptController):
38671
38672 2012-10-22  Andreas Kling  <kling@webkit.org>
38673
38674         REGRESSION(r131104): Heap-use-after-free in WebCore::Element::attributeChanged
38675         <http://webkit.org/b/99937>
38676
38677         Reviewed by Anders Carlsson.
38678
38679         Setting the "type" attribute on an HTMLInputElement that has no "value" attribute set will cause the
38680         input type changing mechanism to write a value attribute onto the element. This happens in
38681         HTMLInputElement::updateType(), below parseAttribute().
38682
38683         It's done via Element::setAttribute(), so we end up re-entering Element::setAttributeInternal()
38684         where the 'existingAttribute' pointer may now be invalid if adding the "value" attribute caused
38685         a reallocation in the ElementAttributeData's underlying Vector<Attribute>.
38686
38687         To make it harder to introduce this kind of bug in the future, I changed almost all functions that take
38688         a "const Attribute&" to take a QualifiedName/AtomicString couple instead (the idea being that the 
38689         fewer references into the attribute store we have, the better.)
38690
38691         Test: fast/html/input-type-change-crash.html
38692
38693         * dom/Attr.cpp:
38694         (WebCore::Attr::setValue):
38695         (WebCore::Attr::childrenChanged):
38696         * dom/Element.cpp:
38697         (WebCore::Element::setAttributeInternal):
38698         (WebCore::Element::attributeChanged):
38699         (WebCore::Element::parserSetAttributes):
38700         (WebCore::Element::addAttributeInternal):
38701         (WebCore::Element::didAddAttribute):
38702         (WebCore::Element::didModifyAttribute):
38703         (WebCore::Element::didRemoveAttribute):
38704         * dom/Element.h:
38705         (Element):
38706         * dom/ElementAttributeData.cpp:
38707         (WebCore::ElementAttributeData::cloneDataFrom):
38708         * dom/StyledElement.cpp:
38709         (WebCore::StyledElement::attributeChanged):
38710         * dom/StyledElement.h:
38711         * html/HTMLInputElement.cpp:
38712         (WebCore::HTMLInputElement::updateType):
38713         * svg/SVGElement.cpp:
38714         (WebCore::SVGElement::attributeChanged):
38715         * svg/SVGElement.h:
38716         (SVGElement):
38717
38718 2012-10-22  Joshua Bell  <jsbell@chromium.org>
38719
38720         IndexedDB: Bounds check for IDBCursor.advance() incorrect
38721         https://bugs.webkit.org/show_bug.cgi?id=100014
38722
38723         Reviewed by Tony Chang.
38724
38725         Fix introduced by trac.webkit.org/changeset/131658 restricted cursor.advance()'s argument
38726         as [EnforceRange] unsigned long long, but it's typed as [EnforceRange] unsigned long; the
38727         useless comparison was caught by a clang check.
38728
38729         In lieu of webkit.org/b/96798 make it long long and correct the range check.
38730
38731         Test: storage/indexeddb/cursor-advance.html
38732
38733         * Modules/indexeddb/IDBCursor.cpp:
38734         (WebCore::IDBCursor::advance):
38735         * Modules/indexeddb/IDBCursor.h:
38736         (IDBCursor):
38737         * Modules/indexeddb/IDBCursor.idl:
38738
38739 2012-10-22  Tony Chang  <tony@chromium.org>
38740
38741         WebKit does not support 'flex-wrap: nowrap'
38742         https://bugs.webkit.org/show_bug.cgi?id=99924
38743
38744         Reviewed by Ojan Vafai.
38745
38746         The spec changed back from using none to nowrap for the single-line
38747         flexbox case.
38748         http://dev.w3.org/csswg/css3-flexbox/#flex-wrap-property
38749
38750         No new tests, covered by css3/flexbox/css-properties.html and others.
38751
38752         * css/CSSParser.cpp:
38753         (WebCore::isValidKeywordPropertyAndValue):
38754         * css/CSSPrimitiveValueMappings.h:
38755         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
38756         (WebCore::CSSPrimitiveValue::operator EFlexWrap):
38757         * css/CSSValueKeywords.in:
38758         * rendering/RenderBox.cpp:
38759         (WebCore::isStretchingColumnFlexItem):
38760         (WebCore::RenderBox::sizesLogicalWidthToFitContent):
38761         * rendering/RenderFlexibleBox.cpp:
38762         (WebCore::RenderFlexibleBox::isMultiline):
38763         * rendering/style/RenderStyle.h:
38764         * rendering/style/RenderStyleConstants.h:
38765
38766 2012-10-22  Mike West  <mkwst@chromium.org>
38767
38768         'image/pjpeg' should be treated as an image by Web Inspector.
38769         https://bugs.webkit.org/show_bug.cgi?id=100001
38770
38771         Reviewed by Pavel Feldman.
38772
38773         It's not exactly a "real" MIME type, but it's in use.
38774
38775         * inspector/front-end/NetworkManager.js:
38776         (WebInspector.NetworkManager):
38777             Adding 'image/pjpeg' as an image MIME type.
38778
38779 2012-10-22  Sheriff Bot  <webkit.review.bot@gmail.com>
38780
38781         Unreviewed, rolling out r132119.
38782         http://trac.webkit.org/changeset/132119
38783         https://bugs.webkit.org/show_bug.cgi?id=100019
38784
38785         Fails its own test on Mac platforms. (Requested by leviw on
38786         #webkit).
38787
38788         * page/EventHandler.cpp:
38789         (WebCore::EventHandler::handleGestureEvent):
38790         (WebCore::EventHandler::sendContextMenuEventForGesture):
38791         * page/EventHandler.h:
38792         (EventHandler):
38793
38794 2012-10-22  Hans Muller  <hmuller@adobe.com>
38795
38796         [CSS Exclusions] Points on the bottom and right edges of an exclusion shape should be classified as "outside"
38797         https://bugs.webkit.org/show_bug.cgi?id=98967
38798
38799         Reviewed by Dirk Schulze.
38800
38801         Changed the way lines are represented in the ExclusionShapeInsideInfo and ExclusionShape classes
38802         so that they're consistent with the rendering code that depends on them.  Lines are now defined
38803         by logicalTop, logicalHeight, instead of logicalTop,logicalBottom.  This a clean-up, not a change
38804         in functionality. It's already covered by the existing fast/exclusions LayoutTests.
38805
38806         Test: fast/exclusions/shape-inside/shape-inside-bottom-edge.html
38807
38808         * rendering/ExclusionPolygon.cpp:
38809         (WebCore::ExclusionPolygon::getExcludedIntervals):
38810         (WebCore::ExclusionPolygon::getIncludedIntervals):
38811         * rendering/ExclusionPolygon.h:
38812         * rendering/ExclusionRectangle.cpp:
38813         (WebCore::ExclusionRectangle::getExcludedIntervals):
38814         (WebCore::ExclusionRectangle::getIncludedIntervals):
38815         * rendering/ExclusionRectangle.h:
38816         * rendering/ExclusionShape.h:
38817         (LineSegment): Moved the struct fields below the constructor per webkit style.
38818         (ExclusionShape):
38819         (WebCore::ExclusionShape::minYForLogicalLine):
38820         (WebCore::ExclusionShape::maxYForLogicalLine):
38821         * rendering/ExclusionShapeInsideInfo.cpp:
38822         (WebCore::ExclusionShapeInsideInfo::computeSegmentsForLine):
38823         * rendering/ExclusionShapeInsideInfo.h:
38824         (ExclusionShapeInsideInfo):
38825         (WebCore::ExclusionShapeInsideInfo::lineOverlapsShapeBounds): Changed the test to not include
38826             lines whose logicalTop is equal to the shape's top+height.
38827         * rendering/RenderBlockLineLayout.cpp:
38828         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
38829
38830 2012-10-22  Chris Rogers  <crogers@google.com>
38831
38832         Update some AudioContext create() method names to latest Web Audio spec
38833         https://bugs.webkit.org/show_bug.cgi?id=99888
38834
38835         Reviewed by Adam Barth.
38836
38837         The following AudioContext method names are being changed, with legacy support for the old names:
38838         createGainNode -> createGain
38839         createDelayNode -> createDelay
38840         createJavaScriptNode -> createScriptProcessor
38841
38842         For details:
38843         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18332
38844
38845         Tests changed: webaudio/delaynode.html, webaudio/gain.html, webaudio/javascriptaudionode.html
38846         to test coverage of the new names.
38847
38848         * Modules/webaudio/AudioBufferSourceNode.idl:
38849         * Modules/webaudio/AudioContext.cpp:
38850         (WebCore::AudioContext::createScriptProcessor):
38851         (WebCore::AudioContext::createGain):
38852         (WebCore::AudioContext::createDelay):
38853         * Modules/webaudio/AudioContext.h:
38854         (AudioContext):
38855         * Modules/webaudio/AudioContext.idl:
38856         * page/FeatureObserver.h:
38857
38858 2012-10-22  Varun Jain  <varunjain@chromium.org>
38859
38860         Context menu generated from touch gestures on textareas has
38861         context of the cursor position instead of the position where the event occurs.
38862         https://bugs.webkit.org/show_bug.cgi?id=99520
38863
38864         Reviewed by Kenneth Rohde Christiansen.
38865
38866         Send a synthetic mouse down event for context menu-summoning-gesture events so
38867         that textareas can correctly set cursors before receiving the context menu event.
38868
38869         Test: fast/events/touch/gesture/right-click-gestures-set-cursor-at-correct-position.html
38870
38871         * page/EventHandler.cpp:
38872         (WebCore::EventHandler::handleGestureEvent):
38873         (WebCore::EventHandler::handleGestureTwoFingerTap):
38874         (WebCore):
38875         (WebCore::EventHandler::sendContextMenuEventForGesture):
38876         * page/EventHandler.h:
38877         (EventHandler):
38878
38879 2012-10-22  Zeno Albisser  <zeno@webkit.org>
38880
38881         TextureMapperSurfaceBackingStore should check if GraphicsSurface is valid.
38882         https://bugs.webkit.org/show_bug.cgi?id=100002
38883
38884         Reviewed by Kenneth Rohde Christiansen.
38885
38886         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
38887         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
38888             Check if a surface has been created before accessing the pointer.
38889         (WebCore::TextureMapperSurfaceBackingStore::paintToTextureMapper):
38890             Check if m_graphicsSurface is a valid pointer before dereferencing it.
38891
38892 2012-10-22  Michael Saboff  <msaboff@apple.com>
38893
38894         r131955 is has improper function call in LinkHashChromium.cpp
38895         https://bugs.webkit.org/show_bug.cgi?id=100008
38896
38897         Reviewed by Alexey Proskuryakov.
38898
38899         Followup fix to r131955 for chromium platform.  Added call to 
38900         (const UChar*, unsigned) version of visitedLinkHash from String& version.
38901
38902         * platform/chromium/LinkHashChromium.cpp:
38903         (WebCore::visitedLinkHash):
38904
38905 2012-10-22  Aaron Colwell  <acolwell@chromium.org>
38906
38907         webkitsourceopen event doesn't always fire
38908         https://bugs.webkit.org/show_bug.cgi?id=99868
38909
38910         Reviewed by Adam Barth.
38911
38912         Changed MediaSource to derive from ActiveDOMObject so that event listeners
38913         will still fire even if all references to the object go out of scope.
38914
38915         Test: http/tests/media/media-source/video-media-source-garbage-collection-before-sourceopen.html
38916
38917         * Modules/mediasource/MediaSource.cpp:
38918         (WebCore::MediaSource::create):
38919         (WebCore::MediaSource::MediaSource):
38920         (WebCore::MediaSource::scriptExecutionContext):
38921         (WebCore):
38922         (WebCore::MediaSource::hasPendingActivity):
38923         (WebCore::MediaSource::stop): Clears m_player & m_asyncEventQueue so they don't indicate pending activity anymore.
38924         * Modules/mediasource/MediaSource.h:
38925         (MediaSource):
38926         * Modules/mediasource/MediaSource.idl:
38927         * Modules/mediasource/MediaSourceRegistry.cpp:
38928         (WebCore::MediaSourceRegistry::registerMediaSourceURL): Added setPendingActivity() call so the MediaSource object stays active while in the registry.
38929         (WebCore::MediaSourceRegistry::unregisterMediaSourceURL): Added unsetPendingActivity() call so the MediaSource object can become inactive after being removed from the registry.
38930
38931 2012-10-22  Adam Barth  <abarth@webkit.org>
38932
38933         [V8] Vastly simplify V8GCController's NodeVisitor
38934         https://bugs.webkit.org/show_bug.cgi?id=99884
38935
38936         Reviewed by Kentaro Hara.
38937
38938         NodeVisitor was vastly more complicated than necessary.
38939
38940         This patch improve performance on these new gc benchmarks:
38941
38942         gc-forest: 1.14% better
38943         gc-mini-tree: 5.09% better
38944         gc-tree: 4.60% better
38945
38946         * bindings/v8/V8GCController.cpp:
38947         (WebCore::ObjectVisitor::visitDOMWrapper):
38948         (WebCore::addImplicitReferencesForNodeWithEventListeners):
38949         (WebCore::rootForGC):
38950         (WebCore::NodeVisitor::visitDOMWrapper):
38951         (WebCore::NodeVisitor::applyGrouping):
38952         (NodeVisitor):
38953
38954 2012-10-22  Emil A Eklund  <eae@chromium.org>
38955
38956         Change baselinePosition and maxAscent/maxDescent to int
38957         https://bugs.webkit.org/show_bug.cgi?id=99767
38958
38959         Reviewed by Levi Weintraub.
38960
38961         Currently baselinePostion, maxAscent and maxDescent are
38962         LayoutUnits while ascent, descent and m_lineHeight are ints.
38963         This can lead to subtle alignment and rounding problems.
38964
38965         Change baselinePosition and maxAscent/maxDescent to int to avoid
38966         these issues.
38967
38968         Test: fast/sub-pixel/replaced-element-baseline.html
38969
38970         * editing/FrameSelection.cpp:
38971         (WebCore::repaintRectForCaret):
38972         Inflate Y dimension just like we do for X to ensure that the
38973         repaint rect fully contains the caret.
38974
38975         * rendering/InlineBox.cpp:
38976         (WebCore::InlineBox::baselinePosition):
38977         * rendering/InlineBox.h:
38978         (InlineBox):
38979         * rendering/InlineFlowBox.cpp:
38980         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
38981         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
38982         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
38983         Change maxAscent/maxDescent to int to match ascent/descent.
38984         
38985         * rendering/InlineFlowBox.h:
38986         (InlineFlowBox):
38987         * rendering/InlineTextBox.cpp:
38988         (WebCore::InlineTextBox::baselinePosition):
38989         * rendering/InlineTextBox.h:
38990         (InlineTextBox):
38991         * rendering/RenderBlock.cpp:
38992         (WebCore::RenderBlock::baselinePosition):
38993         (WebCore::RenderBlock::firstLineBoxBaseline):
38994         (WebCore::RenderBlock::lastLineBoxBaseline):
38995         * rendering/RenderBlock.h:
38996         (RenderBlock):
38997         * rendering/RenderBox.cpp:
38998         (WebCore::RenderBox::baselinePosition):
38999         * rendering/RenderBox.h:
39000         (WebCore::RenderBox::firstLineBoxBaseline):
39001         (WebCore::RenderBox::lastLineBoxBaseline):
39002         (RenderBox):
39003         * rendering/RenderBoxModelObject.h:
39004         (RenderBoxModelObject):
39005         * rendering/RenderFlexibleBox.cpp:
39006         (WebCore::RenderFlexibleBox::baselinePosition):
39007         (WebCore::RenderFlexibleBox::firstLineBoxBaseline):
39008         * rendering/RenderFlexibleBox.h:
39009         * rendering/RenderInline.cpp:
39010         (WebCore::RenderInline::baselinePosition):
39011         * rendering/RenderInline.h:
39012         (RenderInline):
39013         * rendering/RenderListBox.cpp:
39014         (WebCore::RenderListBox::baselinePosition):
39015         * rendering/RenderListBox.h:
39016         (RenderListBox):
39017         * rendering/RenderListMarker.cpp:
39018         (WebCore::RenderListMarker::baselinePosition):
39019         * rendering/RenderListMarker.h:
39020         (RenderListMarker):
39021         * rendering/RenderSlider.cpp:
39022         (WebCore::RenderSlider::baselinePosition):
39023         * rendering/RenderSlider.h:
39024         (RenderSlider):
39025         * rendering/RenderTable.cpp:
39026         (WebCore::RenderTable::baselinePosition):
39027         (WebCore::RenderTable::lastLineBoxBaseline):
39028         (WebCore::RenderTable::firstLineBoxBaseline):
39029         * rendering/RenderTable.h:
39030         (RenderTable):
39031         * rendering/RenderTableSection.cpp:
39032         (WebCore::RenderTableSection::firstLineBoxBaseline):
39033         * rendering/RenderTableSection.h:
39034         (RenderTableSection):
39035         * rendering/RenderTextControlMultiLine.cpp:
39036         (WebCore::RenderTextControlMultiLine::baselinePosition):
39037         * rendering/RenderTextControlMultiLine.h:
39038         (RenderTextControlMultiLine):
39039         * rendering/RenderTheme.cpp:
39040         (WebCore::RenderTheme::baselinePosition):
39041         * rendering/RenderTheme.h:
39042         (RenderTheme):
39043         * rendering/RenderThemeSafari.cpp:
39044         (WebCore::RenderThemeSafari::baselinePosition):
39045         * rendering/RenderThemeSafari.h:
39046         (RenderThemeSafari):
39047         * rendering/RootInlineBox.cpp:
39048         (WebCore::RootInlineBox::baselinePosition):
39049         (WebCore::RootInlineBox::alignBoxesInBlockDirection):
39050         * rendering/RootInlineBox.h:
39051         (RootInlineBox):
39052         * rendering/mathml/RenderMathMLBlock.cpp:
39053         (WebCore::RenderMathMLBlock::baselinePosition):
39054         (WebCore::RenderMathMLTable::firstLineBoxBaseline):
39055         * rendering/mathml/RenderMathMLBlock.h:
39056         (RenderMathMLBlock):
39057         (RenderMathMLTable):
39058         * rendering/mathml/RenderMathMLFraction.cpp:
39059         (WebCore::RenderMathMLFraction::firstLineBoxBaseline):
39060         * rendering/mathml/RenderMathMLFraction.h:
39061         (RenderMathMLFraction):
39062         * rendering/mathml/RenderMathMLOperator.cpp:
39063         (WebCore::RenderMathMLOperator::firstLineBoxBaseline):
39064         * rendering/mathml/RenderMathMLOperator.h:
39065         * rendering/mathml/RenderMathMLUnderOver.cpp:
39066         (WebCore::RenderMathMLUnderOver::firstLineBoxBaseline):
39067         * rendering/mathml/RenderMathMLUnderOver.h:
39068         (RenderMathMLUnderOver):
39069
39070 2012-10-22  Emil A Eklund  <eae@chromium.org>
39071
39072         Modify LayoutState ASSERTS to support SATURATED_LAYOUT_ARITHMETIC
39073         https://bugs.webkit.org/show_bug.cgi?id=98692
39074
39075         Reviewed by Dan Bernstein.
39076
39077         We currently overflow/wrap when computing the delta in
39078         RenderBlock::setLogicalTopForChild in cases where we have an
39079         element with a width or height exceeding maxLayoutUnit. When
39080         the delta is later added back in RenderBlock::layoutBlockChild
39081         the number wraps again getting us back to the correct value.
39082
39083         With SATURATED_LAYOUT_ARITHMETIC enabled the values no longer
39084         wraps, which seems like the correct thing to do however this
39085         causes the compare to fail for obvious reasons. By accounting
39086         for this we can keep the asserts (which have proven very
39087         helpful) even when SATURATED_LAYOUT_ARITHMETIC is turned on.
39088
39089         No new tests, covered by existing tests.
39090
39091         * rendering/LayoutState.cpp:
39092         (WebCore::LayoutState::LayoutState):
39093         * rendering/LayoutState.h:
39094         (WebCore::LayoutState::LayoutState):
39095         (LayoutState):
39096         * rendering/RenderBlock.cpp:
39097         (WebCore::RenderBlock::layoutBlockChild):
39098         * rendering/RenderView.cpp:
39099         (WebCore::RenderView::layout):
39100         * rendering/RenderView.h:
39101         (WebCore::RenderView::addLayoutDelta):
39102         (RenderView):
39103         (WebCore::RenderView::layoutDeltaMatches):
39104
39105 2012-10-22  Tony Chang  <tony@chromium.org>
39106
39107         Fix some baseline flexbox alignment
39108         https://bugs.webkit.org/show_bug.cgi?id=99879
39109
39110         Reviewed by Ojan Vafai.
39111
39112         Fix a bug where we weren't handling margin properly on inline-flexbox.
39113         Fix a bug where we weren't getting the edge of the content box properly when synthesizing
39114         a baseline.
39115
39116         Test: css3/flexbox/flexbox-baseline-margins.html
39117
39118         * rendering/RenderBlock.cpp:
39119         (WebCore::RenderBlock::baselinePosition):
39120         (WebCore::RenderBlock::inlineBlockBaseline): Add a new method that is used when calculating an inline-block's
39121         baseline. Previously we would use lastLineBoxBaseline.
39122         (WebCore::RenderBlock::lastLineBoxBaseline): Pass in direction and when searching children, use inlineBlockBaseline.
39123         * rendering/RenderBlock.h:
39124         (RenderBlock): Make lastLineBoxBaseline non-virtual.
39125         * rendering/RenderBox.h:
39126         (WebCore::RenderBox::inlineBlockBaseline): Replace lastLineBoxBaseline with inlineBlockBaseline.
39127         * rendering/RenderFlexibleBox.cpp:
39128         (WebCore::synthesizedBaselineFromContentBox): Helper method for getting the baseline from the content box.
39129         (WebCore::RenderFlexibleBox::baselinePosition): Always include the margin. This fixes the inline-flexbox case.
39130         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Fix a case where we didn't synthesize a baseline.  Returning -1 means there is no baseline, but we can
39131         synthesize a baseline if we have a flexitem without text.
39132         (WebCore::RenderFlexibleBox::inlineBlockBaseline):
39133         * rendering/RenderFlexibleBox.h:
39134         * rendering/RenderTable.cpp: Replace lastLineBoxBaseline with inlineBlockBaseline.
39135         (WebCore::RenderTable::inlineBlockBaseline): Try to make comment more direct.
39136         * rendering/RenderTable.h:
39137         (RenderTable): Replace lastLineBoxBaseline with inlineBlockBaseline.
39138
39139 2012-10-22  Levi Weintraub  <leviw@chromium.org>
39140
39141         Unreviewed Chromium build fix following r132074.
39142
39143         * WebCore.gypi:
39144
39145 2012-10-22  Mario Sanchez Prada  <msanchez@igalia.com>
39146
39147         [GTK] Don't use deprecated AccessibilityObject methods after r99502
39148         https://bugs.webkit.org/show_bug.cgi?id=99985
39149
39150         Reviewed by Chris Fleizach.
39151
39152         Update callers for AccessibilityObject's title() and
39153         accessibilityDescription() so they now use AccessibilityText.
39154
39155         * accessibility/gtk/WebKitAccessibleUtil.cpp:
39156         (titleTagShouldBeUsedInDescriptionField): Internal helper function.
39157         (accessibilityTitle): New helper function, returns an String with
39158         the title for a AccessibilityObject, using AccessibleText.
39159         (accessibilityDescription): New helper function, returns an String with
39160         the description for a AccessibilityObject, using AccessibleText.
39161         * accessibility/gtk/WebKitAccessibleUtil.h: Added public
39162         declarations for accessibilityTitle and accessibilityDescription.
39163
39164         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
39165         (webkitAccessibleGetName): Use new helpers for retrieving the title.
39166         (webkitAccessibleGetDescription): Use new helpers for retrieving
39167         the title and description.
39168
39169         * accessibility/gtk/WebKitAccessibleInterfaceImage.cpp:
39170         (webkitAccessibleImageGetImageDescription): Use new helpers for
39171         retrieving the title.
39172
39173 2012-10-16  Andrey Kosyakov  <caseq@chromium.org>
39174
39175         Web Inspector: add timeline instrumentation for scrolling of a layer
39176         https://bugs.webkit.org/show_bug.cgi?id=99461
39177
39178         Reviewed by Pavel Feldman.
39179
39180         - added timeline instrumentation for scrolling of a layer;
39181         - added TRACE_EVENT for ScrollableArea::scrollPositionChanged()
39182
39183         * inspector/InspectorInstrumentation.cpp:
39184         (WebCore):
39185         (WebCore::InspectorInstrumentation::willScrollLayerImpl):
39186         (WebCore::InspectorInstrumentation::didScrollLayerImpl):
39187         * inspector/InspectorInstrumentation.h:
39188         (InspectorInstrumentation):
39189         (WebCore::InspectorInstrumentation::willScrollLayer):
39190         (WebCore):
39191         (WebCore::InspectorInstrumentation::didScrollLayer):
39192         * inspector/InspectorTimelineAgent.cpp:
39193         (TimelineRecordType):
39194         (WebCore::InspectorTimelineAgent::willScroll):
39195         (WebCore):
39196         (WebCore::InspectorTimelineAgent::didScroll):
39197         * inspector/InspectorTimelineAgent.h:
39198         (InspectorTimelineAgent):
39199         * inspector/front-end/TimelineModel.js:
39200         * inspector/front-end/TimelinePresentationModel.js:
39201         (WebInspector.TimelinePresentationModel._initRecordStyles):
39202         * rendering/RenderLayer.cpp:
39203         (WebCore::RenderLayer::scrollTo):
39204         * platform/ScrollableArea.cpp:
39205         (WebCore::ScrollableArea::scrollPositionChanged):
39206
39207 2012-10-22  Jan Keromnes  <janx@linux.com>
39208
39209         Moved cmdevtools.js to folder cm/
39210
39211         Web Inspector: Move file `cmdevtools.css` to `cm/`
39212         https://bugs.webkit.org/show_bug.cgi?id=99956
39213
39214         Reviewed by Pavel Feldman.
39215
39216         The file cmdevtools.js belongs to the CodeMirror editor experiment in cm/.
39217
39218         * WebCore.gypi:
39219         * WebCore.vcproj/WebCore.vcproj:
39220         * inspector/front-end/WebKit.qrc:
39221         * inspector/front-end/cm/cmdevtools.css: Renamed from Source/WebCore/inspector/front-end/cmdevtools.css.
39222         (.CodeMirror):
39223         (.CodeMirror-scroll):
39224         (.cm-highlight):
39225         (@-webkit-keyframes fadeout):
39226         (to):
39227         (.cm-breakpoint):
39228         (.cm-breakpoint-disabled):
39229         (.cm-breakpoint-conditional):
39230         (.cm-execution-line):
39231         (.cm-s-web-inspector-js span.cm-keyword):
39232         (.cm-s-web-inspector-js span.cm-number):
39233         (.cm-s-web-inspector-js span.cm-comment):
39234         (.cm-s-web-inspector-js span.cm-string):
39235         (.cm-s-web-inspector-js span.cm-string-2):
39236         (.cm-s-web-inspector-css span.cm-keyword):
39237         (.cm-s-web-inspector-css span.cm-number):
39238         (.cm-s-web-inspector-css span.cm-comment):
39239         (.cm-s-web-inspector-css span.cm-string):
39240         (.cm-s-web-inspector-css span.cm-string-2):
39241         (.cm-s-web-inspector-css span.cm-link):
39242         (.cm-s-web-inspector-css span.cm-variable):
39243         (.cm-s-web-inspector-html span.cm-meta):
39244         (.cm-s-web-inspector-html span.cm-comment):
39245         (.cm-s-web-inspector-html span.cm-string):
39246         (.cm-s-web-inspector-html span.cm-tag):
39247         (.cm-s-web-inspector-html span.cm-attribute):
39248         (.cm-s-web-inspector-html span.cm-link):
39249         (.webkit-html-message-bubble):
39250         (.webkit-html-warning-message):
39251         (.webkit-html-error-message):
39252         (.webkit-html-message-line):
39253         (.webkit-html-message-line-hover):
39254
39255 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39256
39257         Web Inspector: Prepare mappings to moving uiSourceCodes creation out of them to workspace.
39258         https://bugs.webkit.org/show_bug.cgi?id=99997
39259
39260         Reviewed by Pavel Feldman.
39261
39262         Source mappings could now store a link to temporary uiSourceCodes only.
39263         Otherwise it should retrieve uiSourceCodes from workspace by URL.
39264         Original uiSourceCodes are now temporary in CompilerScriptMapping.
39265
39266         * inspector/front-end/CompilerScriptMapping.js:
39267         (WebInspector.CompilerScriptMapping):
39268         (WebInspector.CompilerScriptMapping.prototype.rawLocationToUILocation):
39269         (WebInspector.CompilerScriptMapping.prototype.loadSourceMapForScript):
39270         (WebInspector.CompilerScriptMapping.prototype._reset):
39271         * inspector/front-end/NetworkUISourceCodeProvider.js:
39272         (WebInspector.NetworkUISourceCodeProvider):
39273         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39274         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
39275         (WebInspector.NetworkUISourceCodeProvider.prototype._addUISourceCode):
39276         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
39277         * inspector/front-end/SASSSourceMapping.js:
39278         (WebInspector.SASSSourceMapping):
39279         (_bindUISourceCode):
39280         (_reset):
39281
39282 2012-10-22  Nicolas Dufresne <nicolas.dufresne@collabora.com>
39283
39284         Gstreamer 1.0 not working
39285         https://bugs.webkit.org/show_bug.cgi?id=99852
39286
39287         Reviewed by Philippe Normand.
39288
39289         There was a series of trivial issue, g_object_is_floating() was called
39290         on type GstCaps (which is not a GObject), webkitGstGetPadCaps() was
39291         returning non-fixed caps and GST_MESSAGE_DURATION has been renamed
39292         to GST_MESSAGE_DURATION_CHANGED.
39293
39294         Most failing test passes now.
39295
39296         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
39297         (WTF::adoptGRef):
39298         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
39299         (webkitGstGetPadCaps):
39300         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
39301         (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
39302
39303 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39304
39305         Web Inspector: Treat dynamic anonymous scripts as other anonymous and fix anonymous script editing and breakpoints.
39306         https://bugs.webkit.org/show_bug.cgi?id=99989
39307
39308         Reviewed by Pavel Feldman.
39309
39310         Dynamic anonymous scripts are now mapped to anonymous temporary uiSourceCodes.
39311         ResourceScriptMapping now supports two types of temporary uiSourceCodes:
39312          - original uiSourceCodes represent scripts while main uiSourceCodes are diverged;
39313          - temporary uiSourceCodes represent scripts for which resources are not yet loaded.
39314
39315         * inspector/front-end/BreakpointManager.js:
39316         (WebInspector.BreakpointManager.breakpointStorageId):
39317         (WebInspector.BreakpointManager.Storage.prototype._updateBreakpoint):
39318         * inspector/front-end/NetworkUISourceCodeProvider.js:
39319         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
39320         * inspector/front-end/ResourceScriptMapping.js:
39321         (WebInspector.ResourceScriptMapping):
39322         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
39323         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
39324         (WebInspector.ResourceScriptMapping.prototype.addScript):
39325         (WebInspector.ResourceScriptMapping.prototype._deleteOriginalUISourceCodeForScripts):
39326         (WebInspector.ResourceScriptMapping.prototype._deleteTemporaryUISourceCodeForScripts):
39327         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
39328         (WebInspector.ResourceScriptMapping.prototype._createUISourceCode):
39329         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
39330         (WebInspector.ResourceScriptMapping.prototype._getOrCreateOriginalUISourceCode):
39331         (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeAddedToWorkspace):
39332         (WebInspector.ResourceScriptMapping.prototype._scriptsForUISourceCode.get if):
39333         (WebInspector.ResourceScriptMapping.prototype._reset):
39334
39335 2012-10-22  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
39336
39337         [css3-text] Add rendering support for -webkit-text-decoration-style
39338         https://bugs.webkit.org/show_bug.cgi?id=94094
39339
39340         Reviewed by Julien Chaffraix.
39341
39342         This patch implements the "text-decoration-style" property rendering as
39343         specified in CSS3 working draft, with "-webkit-" prefix. The specification can
39344         be found here: http://dev.w3.org/csswg/css3-text/#text-decoration-style
39345
39346         Additionally, Mozilla implementation details can be found here:
39347         https://developer.mozilla.org/en/CSS/text-decoration-style
39348
39349         Tests: fast/css3-text/css3-text-decoration/repaint/repaint-text-decoration-style.html
39350                fast/css3-text/css3-text-decoration/text-decoration-style.html
39351
39352         * platform/graphics/GraphicsContext.h:
39353         * platform/graphics/cairo/GraphicsContextCairo.cpp:
39354         (WebCore::GraphicsContext::setPlatformStrokeStyle):
39355         * platform/graphics/cg/GraphicsContextCG.cpp:
39356         (WebCore::GraphicsContext::drawLine):
39357         * platform/graphics/qt/GraphicsContextQt.cpp:
39358         (WebCore::toQPenStyle):
39359         (WebCore::GraphicsContext::drawLine):
39360         * platform/graphics/skia/PlatformContextSkia.cpp:
39361         (WebCore::PlatformContextSkia::setupPaintForStroking):
39362         * platform/graphics/wince/GraphicsContextWinCE.cpp:
39363         (WebCore::createPen):
39364         * platform/graphics/wx/GraphicsContextWx.cpp:
39365         (WebCore::strokeStyleToWxPenStyle):
39366         Added 'DoubleStroke' and 'WavyStroke' to StrokeStyle enum and updated
39367         platform-specific stroke handling. Some styles requires
39368         platform-specific implementation (handled in bug 92868).
39369         * rendering/InlineTextBox.cpp:
39370         (WebCore::InlineTextBox::paint):
39371         (WebCore::textDecorationStyleToStrokeStyle): Added static function that
39372         translates text decoration to stroke styles.
39373         (WebCore::InlineTextBox::paintDecoration): Text decoration style does
39374         not specify a property for line thickness (like border-width does for
39375         border style), so we statically set it to 1 for now. The 'double' style
39376         implementation simply adds a parallel line (depending if it is
39377         underline, overline or line-through) and the space between lines follows
39378         the approach used by border's 'double' style.
39379         * rendering/InlineTextBox.h:
39380         (InlineTextBox):
39381         * rendering/style/RenderStyle.h:
39382         * rendering/style/RenderStyleConstants.h:
39383         Added text decoration style rendering support to
39384         InlineTextBox::paintDecoration().
39385
39386 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39387
39388         [Qt] Use the DNS resolve queue
39389         https://bugs.webkit.org/show_bug.cgi?id=99994
39390
39391         Reviewed by Simon Hausmann.
39392
39393         Use the DNS resolve queue, to ensure we can prefetch more than just the first 10 hostname encountered
39394         during parsing. It also ensure each hostname is only appears once in the queue.
39395
39396         * Target.pri:
39397         * platform/network/qt/DNSQt.cpp: Added.
39398         (DnsPrefetchHelper):
39399         (WebCore::DnsPrefetchHelper::DnsPrefetchHelper):
39400         (WebCore::DnsPrefetchHelper::lookup):
39401         (WebCore::DnsPrefetchHelper::lookedUp):
39402         (WebCore::prefetchDNS):
39403         (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
39404         (WebCore::DNSResolveQueue::platformResolve):
39405         * platform/network/qt/DnsPrefetchHelper.cpp: Removed.
39406         * platform/network/qt/DnsPrefetchHelper.h: Removed.
39407         (DnsPrefetchHelper):
39408
39409 2012-10-22  Erik Arvidsson  <arv@chromium.org>
39410
39411         HTMLBaseElement href attribute binding returns wrong URL
39412         https://bugs.webkit.org/show_bug.cgi?id=98184
39413
39414         Reviewed by Ojan Vafai.
39415
39416         Resolve the href attribute binding relative to the document URL instead of resolving it to the
39417         base element itself. If there is no href attribute this should return the fallback base URL.
39418
39419         http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#the-base-element
39420
39421         Tests: fast/dom/HTMLAnchorElement/set-href-attribute-rebase.html
39422                fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document.html
39423
39424         * html/HTMLBaseElement.cpp:
39425         (WebCore::HTMLBaseElement::href): Don't use completeURL. Resolve href based on document's URL instead
39426         of the generic [Reflect, URL] binding.
39427         (WebCore::HTMLBaseElement::setHref): Just sets the attribute.
39428         * html/HTMLBaseElement.h:
39429         * html/HTMLBaseElement.idl: We can no longer use [Reflect, URL]
39430
39431 2012-10-22  Vsevolod Vlasov  <vsevik@chromium.org>
39432
39433         Web Inspector: Revisions should not be restored and persisted for anonymous uiSourceCodes.
39434         https://bugs.webkit.org/show_bug.cgi?id=99991
39435
39436         Reviewed by Alexander Pavlov.
39437
39438         * inspector/front-end/UISourceCode.js:
39439         (WebInspector.UISourceCode):
39440
39441 2012-10-22  Florin Malita  <fmalita@chromium.org>
39442
39443         Incorrect embedded SVG image sizing on first load
39444         https://bugs.webkit.org/show_bug.cgi?id=99489
39445
39446         Reviewed by Nikolas Zimmermann.
39447
39448         RenderSVGImage::updateImageViewport() must be called after the image loader is finished,
39449         to ensure that a SVGImageCache::SizeAndScalesMap entry is created even if layout has
39450         already been performed.
39451
39452         Test: svg/custom/svg-image-initial-size.html
39453
39454         * rendering/svg/RenderSVGImage.cpp:
39455         (WebCore::RenderSVGImage::imageChanged):
39456
39457 2012-10-22  Keishi Hattori  <keishi@webkit.org>
39458
39459         Remove monthFormatInLDML
39460         https://bugs.webkit.org/show_bug.cgi?id=99971
39461
39462         Reviewed by Kent Tamura.
39463
39464         Removing monthFormatInLDML from localized strings because Localizer class now provides the same functionality.
39465
39466         No new tests. Just removing unused code.
39467
39468         * platform/LocalizedStrings.h:
39469         (WebCore):
39470
39471 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39472
39473         [GTK] Enable Microdata DOM API
39474         https://bugs.webkit.org/show_bug.cgi?id=99033
39475
39476         Reviewed by Martin Robinson.
39477
39478         Enable the Microdata DOM API, but still disable it when the unstable
39479         features should be disabled (for instance in release builds).
39480
39481         No new tests - related tests are being unskipped and are expected to pass.
39482
39483         * GNUmakefile.am:
39484         * GNUmakefile.features.am:
39485         * bindings/gobject/GNUmakefile.am: Add the required files so the Microdata
39486         API GObject bindings are generated and built.
39487
39488 2012-10-22  Zan Dobersek  <zandobersek@gmail.com>
39489
39490         [GTK] Enable CSP 1.1
39491         https://bugs.webkit.org/show_bug.cgi?id=99064
39492
39493         Reviewed by Martin Robinson.
39494
39495         Enable CSP 1.1 in development builds but keep it disabled when the
39496         unstable features should not be enabled (like in stable releases).
39497
39498         No new tests - they already exist and will be unskipped.
39499
39500         * GNUmakefile.am:
39501         * GNUmakefile.features.am:
39502
39503 2012-10-22  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
39504
39505         [Qt] Fix "ASSERTION FAILED: !document->inPageCache()" when loading a page
39506         https://bugs.webkit.org/show_bug.cgi?id=98514
39507
39508         Reviewed by Kenneth Rohde Christiansen.
39509
39510         The problem is that we call setFixedVisibleContentRect, which triggers
39511         a layout, after the document has been put in the page cache and before
39512         the load has been actually committed.
39513
39514         This applies the same trick as with setFixedLayoutSize by passing the rect
39515         in Frame::createView and calling setFixedVisibleContentRect before the
39516         new FrameView gets attached to the Frame/Document to prevent the layout.
39517
39518         * WebCore.exp.in:
39519         * page/Frame.cpp:
39520         (WebCore::Frame::createView): Give a default value to the fixedLayoutSize and
39521         useFixedLayout arguments as well since they are used exceptionally.
39522         * page/Frame.h:
39523         (Frame):
39524
39525 2012-10-22  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39526
39527         [Qt] Handle GET of blob URLs.
39528         https://bugs.webkit.org/show_bug.cgi?id=99053
39529
39530         Reviewed by Simon Hausmann.
39531
39532         Let BlobResourceHandle handle Blob request internally.
39533
39534         * platform/network/qt/ResourceHandleQt.cpp:
39535         (WebCore::ResourceHandle::loadResourceSynchronously):
39536
39537 2012-10-22  Kenichi Ishibashi  <bashi@chromium.org>
39538
39539         HarfBuzzShaper::shape() should return false when it adds no glyph to GlyphBuffer
39540         https://bugs.webkit.org/show_bug.cgi?id=99966
39541
39542         Reviewed by Kent Tamura.
39543
39544         If no glyph is added to GlyphBuffer, HarfBuzzShaper::shape() returns false.
39545
39546         No new tests. Confirmed the fix by using Address Sanitizer.
39547
39548         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
39549         (WebCore::HarfBuzzShaper::shape):
39550         (WebCore::HarfBuzzShaper::fillGlyphBuffer): Returns false when glyphBuffer.size() == 0
39551         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.h:
39552         (HarfBuzzShaper):
39553
39554 2012-10-22  Shinya Kawanaka  <shinyak@chromium.org>
39555
39556         [Shadow] ASSERT triggered when we try reprojecting fallback elements.
39557         https://bugs.webkit.org/show_bug.cgi?id=99815
39558
39559         Reviewed by Hajime Morita.
39560
39561         When fallback elements of InsertionPoint is reprojected, they were attached twice.
39562         We have to skip attaching them if they are attached. We also add a few ASSERT not to
39563         allow attaching twice if not necessary.
39564
39565         We have confirmed that this patch does not regress the performance. The summary of the
39566         performance test is the following:
39567
39568         Dromaeo/dom-modify.html [runs/s]:
39569                                median stdev    min    max
39570            without this patch:   3928   184   3655   4361
39571            with this patch   :   3925   178   3652   4350
39572
39573         Parser/html5-full-render.html [s]:
39574                                median stdev    min    max
39575            without this patch:   3821    17   3811   3850
39576            with this patch   :   3838   4.4   3833   3844
39577
39578         Test: fast/dom/shadow/content-reprojection-fallback-crash.html
39579
39580         * dom/ContainerNode.cpp:
39581         (WebCore):
39582         (WebCore::childAttachedAllowedWhenAttachingChildren): If true, children of this node might
39583         be attached in advance because of ShadowDOM attaching process.
39584         * dom/ContainerNode.h:
39585         (ContainerNode):
39586         (WebCore):
39587         (WebCore::ContainerNode::attachChildren):
39588         * dom/Element.cpp:
39589         (WebCore::Element::attach):
39590         * dom/ShadowRoot.cpp:
39591         (WebCore::ShadowRoot::attach):
39592
39593 2012-10-22  Pavel Feldman  <pfeldman@chromium.org>
39594
39595         Web Inspector: merge "docked" state into the "dock side" enum.
39596         https://bugs.webkit.org/show_bug.cgi?id=99717
39597
39598         Reviewed by Vsevolod Vlasov.
39599
39600         Otherwise, it is hard to manage these inter-dependent flags.
39601
39602         * WebCore.exp.in:
39603         * inspector/InspectorFrontendClient.h:
39604         (InspectorFrontendClient):
39605         * inspector/InspectorFrontendClientLocal.cpp:
39606         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
39607         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
39608         * inspector/InspectorFrontendClientLocal.h:
39609         (InspectorFrontendClientLocal):
39610         * inspector/InspectorFrontendHost.cpp:
39611         (WebCore::InspectorFrontendHost::requestSetDockSide):
39612         * inspector/InspectorFrontendHost.h:
39613         (InspectorFrontendHost):
39614         * inspector/InspectorFrontendHost.idl:
39615         * inspector/front-end/DockController.js:
39616         (WebInspector.DockController):
39617         (WebInspector.DockController.prototype._updateUI.get sides):
39618         (WebInspector.DockController.prototype._updateUI):
39619         (WebInspector.DockController.prototype._toggleDockState):
39620         * inspector/front-end/InspectorFrontendAPI.js:
39621         (InspectorFrontendAPI.setAttachedWindow):
39622         (InspectorFrontendAPI.setDockSide):
39623         * inspector/front-end/InspectorFrontendHostStub.js:
39624         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
39625         * inspector/front-end/externs.js:
39626
39627 2012-10-22  MORITA Hajime  <morrita@google.com>
39628
39629         Unreviewed follow up to update test result after r132033.
39630
39631         * bindings/scripts/test/V8/V8TestObj.cpp:
39632         (WebCore::V8TestObj::installPerContextProperties):
39633
39634 2012-10-21  MORITA Hajime  <morrita@google.com>
39635
39636         [V8] V8EnablePerContext shouldn't require document() accessor to the native object.
39637         https://bugs.webkit.org/show_bug.cgi?id=99954
39638
39639         Reviewed by Kentaro Hara.
39640
39641         It now refers ScriptExecutionContext of the creation context instead of document() of
39642         wrapped object.
39643
39644         No new tests. No behavior change at this time.
39645
39646         * bindings/scripts/CodeGeneratorV8.pm:
39647         (GenerateImplementation):
39648
39649 2012-10-21  Kent Tamura  <tkent@chromium.org>
39650
39651         Page popup: Fix crash by events after closing
39652         https://bugs.webkit.org/show_bug.cgi?id=99951
39653
39654         Reviewed by Hajime Morita.
39655
39656         WebCore should provide a way to uninstall a DOMWindowPagePopup supplement.
39657
39658         No new tests. The bug is timing-dependent.
39659
39660         * page/DOMWindowPagePopup.cpp:
39661         (WebCore::DOMWindowPagePopup::uninstall):
39662         Added. Calls Supplementable::removeSupplement.
39663         * page/DOMWindowPagePopup.h:
39664         (DOMWindowPagePopup): Declare uninstall.
39665         * platform/Supplementable.h:
39666         (WebCore::Supplementable::removeSupplement): Added.
39667
39668 2012-10-21  Keishi Hattori  <keishi@webkit.org>
39669
39670         Refactor picker tests to fix flakiness and share code
39671         https://bugs.webkit.org/show_bug.cgi?id=99671
39672
39673         Reviewed by Kent Tamura.
39674
39675         Disable transitions until the picker is fully ready. This should fix flakiness.
39676
39677         No new tests.
39678
39679         * Resources/pagepopups/calendarPicker.css:
39680         (.preparing .unavailable): Disable transitions.
39681         (.preparing .available): Disable transitions.
39682         * Resources/pagepopups/calendarPicker.js:
39683         (CalendarPicker): Set "preparing" class.
39684         (CalendarPicker.prototype._handleWindowResize): Remove the "preparing" class when the window finishes resizing.
39685
39686 2012-10-21  Shinya Kawanaka  <shinyak@chromium.org>
39687
39688         Web Inspector: Shadow DOM: Node removal doesn't reflect.
39689         https://bugs.webkit.org/show_bug.cgi?id=99567
39690
39691         Reviewed by Pavel Feldman.
39692
39693         We have to call InspectorInstrumentation::willRemoveDOMNode() even if a node is in a shadow tree.
39694         Otherwise, node won't be removed from the inspector.
39695
39696         Test: inspector/elements/update-shadowdom.html
39697
39698         * dom/ContainerNode.cpp:
39699         (WebCore::dispatchChildRemovalEvents):
39700
39701 2012-10-21  Andreas Kling  <kling@webkit.org>
39702
39703         Remove Page::javaScriptURLsAreAllowed setting.
39704         <http://webkit.org/b/99944>
39705
39706         Reviewed by Anders Carlsson.
39707
39708         This setting was exposed through internal WebView API in Apple's WebKit1.
39709         There are no longer any clients of that API.
39710
39711         This is a step towards preventing elements from modifying their own attributes
39712         below attributeChanged().
39713
39714         * WebCore.exp.in:
39715         * WebCore.order:
39716         * bindings/ScriptControllerBase.cpp:
39717         (WebCore::ScriptController::executeIfJavaScriptURL):
39718         * html/HTMLAnchorElement.cpp:
39719         (WebCore::HTMLAnchorElement::parseAttribute):
39720         * page/Page.cpp:
39721         (WebCore::Page::Page):
39722         * page/Page.h:
39723         (Page):
39724
39725 2012-10-21  Hyungchan Kim  <hyungchan2.kim@lge.com>
39726
39727         Add a separate flag for rgb swizzling whether it can be modified or not
39728         https://bugs.webkit.org/show_bug.cgi?id=98728
39729
39730         BitmapTexture swizzles the source image if the OpenGL driver
39731         doesn't support the BGRA extension.
39732         In case of directly composited images, the source image should not
39733         be modified.
39734
39735         http://www.satine.org/research/webkit/snowleopard/snowstack.html
39736
39737         Reviewed by Noam Rosenthal.
39738
39739         No new tests as this is only testable on specific hardware and
39740         currently not avaiable in the bots.
39741
39742         * platform/graphics/texmap/TextureMapper.h:
39743         (BitmapTexture):
39744         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
39745         (WebCore::TextureMapperTile::updateContents):
39746         (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
39747         (WebCore::TextureMapperTiledBackingStore::updateContents):
39748         * platform/graphics/texmap/TextureMapperBackingStore.h:
39749         (TextureMapperTile):
39750         (TextureMapperTiledBackingStore):
39751         (WebCore::TextureMapperTiledBackingStore::updateContents):
39752         * platform/graphics/texmap/TextureMapperGL.cpp:
39753         (WebCore::TextureMapperGL::drawRepaintCounter):
39754         (WebCore::BitmapTextureGL::updateContents):
39755         * platform/graphics/texmap/TextureMapperGL.h:
39756         (BitmapTextureGL):
39757         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
39758         (WebCore::BitmapTextureImageBuffer::updateContents):
39759         * platform/graphics/texmap/TextureMapperImageBuffer.h:
39760         (BitmapTextureImageBuffer):
39761         * platform/graphics/texmap/TextureMapperLayer.cpp:
39762         (WebCore::TextureMapperLayer::updateBackingStore):
39763
39764 2012-10-21  Antti Koivisto  <antti@apple.com>
39765
39766         Factor stylesheet invalidation analysis code into a class
39767         https://bugs.webkit.org/show_bug.cgi?id=99933
39768
39769         Reviewed by Sam Weinig.
39770
39771         Currently the stylesheet analysis code is all over the place. It should be factored into a class to make
39772         further progress easier.
39773
39774         The patch adds StyleInvalidationAnalysis class and moves a bunch of code from SelectorChecker, StyleResolver
39775         and DocumentStyleSheetCollection there. No functional changes.
39776
39777         * CMakeLists.txt:
39778         * GNUmakefile.list.am:
39779         * Target.pri:
39780         * WebCore.gypi:
39781         * WebCore.vcproj/WebCore.vcproj:
39782         * WebCore.xcodeproj/project.pbxproj:
39783         * css/SelectorChecker.cpp:
39784         (WebCore):
39785         * css/SelectorChecker.h:
39786         (WebCore):
39787         * css/StyleInvalidationAnalysis.cpp: Added.
39788         (WebCore):
39789         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
39790         (WebCore::StyleInvalidationAnalysis::create):
39791         (WebCore::determineSelectorScopes):
39792         (WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
39793         (WebCore::elementMatchesSelectorScopes):
39794         (WebCore::StyleInvalidationAnalysis::invalidateStyle):
39795         * css/StyleInvalidationAnalysis.h: Added.
39796         (WebCore):
39797         (StyleInvalidationAnalysis):
39798         (WebCore::StyleInvalidationAnalysis::dirtiesAllStyle):
39799         * css/StyleResolver.cpp:
39800         (WebCore::StyleResolver::checkRegionSelector):
39801         * css/StyleResolver.h:
39802         (StyleResolver):
39803         * dom/DocumentStyleSheetCollection.cpp:
39804         (WebCore):
39805         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
39806         * dom/DocumentStyleSheetCollection.h:
39807         (DocumentStyleSheetCollection):
39808
39809 2012-10-08  Robert Hogan  <robert@webkit.org>
39810
39811         In some float situations, the original layout is wrong and only corrects itself on repaint
39812         https://bugs.webkit.org/show_bug.cgi?id=18939
39813
39814         Reviewed by Levi Weintraub.
39815
39816         A <br> that follows collapsing spaces and has clearance set always needs to get a run and a linebox of its own.
39817         This allows the line below it to check for clearance from the <br> if it gets dirtied but the line with the <br>
39818         does not.
39819
39820         Test: fast/block/br-with-clearance-after-collapsing-space.html
39821
39822         * rendering/RenderBlockLineLayout.cpp:
39823         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
39824
39825 2012-10-08  Robert Hogan  <robert@webkit.org>
39826
39827         floated element with negative margin causes text wrap bug
39828         https://bugs.webkit.org/show_bug.cgi?id=94825
39829
39830         Reviewed by Levi Weintraub.
39831
39832         Avoid over-estimating the available width on the line by ensuring that the offset taken to avoid
39833         floats on the line is at least as much as the offset given by border, margin and padding. This only
39834         happens when a negative margin on the float brings its edge back before the offset
39835         given by the border, margin and padding of its parents.
39836
39837         Test: fast/block/float/float-on-line-obeys-container-padding.html
39838
39839         * rendering/RenderBlockLineLayout.cpp:
39840         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded):
39841
39842 2012-10-20  Martin Robinson  <mrobinson@igalia.com>
39843
39844         Fix 'make dist' for the GTK+ port
39845
39846         * GNUmakefile.am: Add missing files to the source list.
39847         * GNUmakefile.list.am: Ditto.
39848
39849 2012-10-20  Dan Bernstein  <mitz@apple.com>
39850
39851         <rdar://problem/12512710> [mac] Text with zero font size renders as 12px sometimes
39852         https://bugs.webkit.org/show_bug.cgi?id=99918
39853
39854         Reviewed by Geoff Garen.
39855
39856         -[NSFont fontWithName:size:] returns an NSFont of size 12 (the default User Font size) when
39857         asked for size 0, and this is what Font::drawGlyphs uses to draw the text.
39858
39859         Test: fast/text/zero-font-size-2.html
39860
39861         * platform/graphics/mac/FontMac.mm:
39862         (WebCore::Font::drawGlyphs): Added an early return if the size is zero.
39863
39864 2012-10-20  Andreas Kling  <kling@webkit.org>
39865
39866         Clean up QualifiedName-as-hash-key scenario.
39867         <http://webkit.org/b/99394>
39868
39869         Reviewed by Anders Carlsson.
39870
39871         Cache the hash on QualifiedNameImpl after the first time it's computed.
39872         This grows QualifiedNameImpl by 4 bytes on 32-bit (no change on 64-bit due to base class padding)
39873         which I believe is fine, since QualifiedName is a shared object.
39874
39875         Add a global nullQName() function that returns a QualifiedName(nullAtom, nullAtom, nullAtom)
39876         and use this to implement HashTraits<QualifiedName>::emptyValue(). The old implementation would
39877         create a new QualifiedName(nullAtom, nullAtom, nullAtom) each time, which had to be hashed,
39878         added to  the global QualifiedName cache, etc.
39879
39880         Finally, don't have SVGAttributeHashTranslator create a temporary QualifiedName just to compute
39881         the hash of a (namespace, prefix, localName) tuple, use QualifiedNameComponents and hashComponents()
39882         directly instead.
39883
39884         Altogether this shaves ~100ms off of the RoboHornet svgresize.html benchmark on my MBP.
39885
39886         * dom/QualifiedName.cpp:
39887         (WebCore::nullQName):
39888         (WebCore::QualifiedName::QualifiedNameImpl::computeHash):
39889         * dom/QualifiedName.h:
39890         (QualifiedNameImpl):
39891         (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
39892         (WebCore::QualifiedNameHash::hash):
39893         * svg/SVGElement.h:
39894         (WebCore::SVGAttributeHashTranslator::hash):
39895
39896 2012-10-20  Yael Aharon  <yael.aharon@intel.com>
39897
39898         [EFL][AC] Build fix after r131933
39899         https://bugs.webkit.org/show_bug.cgi?id=99901
39900
39901         Reviewed by Kentaro Hara.
39902
39903         Add ArrayBoundsClamper.cpp to WebCore/CMakeLists.txt.
39904
39905         No new tests.
39906
39907         * CMakeLists.txt:
39908
39909 2012-10-19  Adam Barth  <abarth@webkit.org>
39910
39911         [V8] V8DOMWrapper should avoid using its document parameter (so we can remove it soon)
39912         https://bugs.webkit.org/show_bug.cgi?id=99876
39913
39914         Reviewed by Kentaro Hara.
39915
39916         We want to remove the document parameter to instantiateV8Object. There
39917         isn't always a Document available, so it doesn't make sense to pass it
39918         as a parameter. We're just waiting for a V8 API change so we can still
39919         construct Node wrappers quickly.
39920
39921         This patch removes a use of the document that snuck in. Rather than
39922         passing the ScriptExecutionContext around, we get it from the
39923         CreationContext of the prototype object (and only when we actually need
39924         it).
39925
39926         * Modules/notifications/NotificationCenter.cpp:
39927         * Modules/notifications/NotificationCenter.h:
39928         (NotificationCenter):
39929         * bindings/scripts/CodeGeneratorV8.pm:
39930         (GenerateHeader):
39931         (GenerateConstructorGetter):
39932         (GenerateImplementation):
39933         (GenerateToV8Converters):
39934         * bindings/v8/V8DOMWindowShell.cpp:
39935         (WebCore::V8DOMWindowShell::installDOMWindow):
39936         * bindings/v8/V8DOMWrapper.cpp:
39937         (WebCore::V8DOMWrapper::instantiateV8Object):
39938         * bindings/v8/V8PerContextData.cpp:
39939         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
39940         (WebCore::V8PerContextData::constructorForTypeSlowCase):
39941         * bindings/v8/V8PerContextData.h:
39942         (WebCore::V8PerContextData::createWrapperFromCache):
39943         (WebCore::V8PerContextData::constructorForType):
39944         (V8PerContextData):
39945         * bindings/v8/WorkerContextExecutionProxy.cpp:
39946         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
39947         * bindings/v8/WrapperTypeInfo.h:
39948         (WebCore):
39949         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties):
39950
39951 2012-10-19  Florin Malita  <fmalita@chromium.org>
39952
39953         Incorrect pattern scaling
39954         https://bugs.webkit.org/show_bug.cgi?id=99870
39955
39956         Reviewed by Dirk Schulze.
39957
39958         The pattern space transform scale should reflect the tile_size(user space)
39959         to tile_image_size ratio, instead of tile_size to absolute_tile_size.
39960
39961         Test: svg/custom/pattern-scaling.svg
39962
39963         * rendering/svg/RenderSVGResourcePattern.cpp:
39964         (WebCore::RenderSVGResourcePattern::applyResource):
39965
39966 2012-10-19  Tony Chang  <tony@chromium.org>
39967
39968         RenderFlexibleBox::preferredMainAxisContentExtentForChild can return a negative value
39969         https://bugs.webkit.org/show_bug.cgi?id=97827
39970
39971         Reviewed by Ojan Vafai.
39972
39973         I'm pretty sure this isn't possible (logicalHeight and maxPreferredLogicalWidth should always include
39974         border and padding), so just add an assert.
39975
39976         No new tests, the assert is for code clarity.
39977
39978         * rendering/RenderFlexibleBox.cpp:
39979         (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
39980
39981 2012-10-19  Tony Chang  <tony@chromium.org>
39982
39983         Replace calls to updateLogicalHeight with calls to computeLogicalHeight
39984         https://bugs.webkit.org/show_bug.cgi?id=99883
39985
39986         Reviewed by Ojan Vafai.
39987
39988         In RenderBox and RenderBlock, switch to using computeLogicalHeight instead of
39989         saving the old height, calling update logical height, then restoring the old height.
39990
39991         No new tests, this is just a refactoring.
39992
39993         * rendering/RenderBlock.cpp:
39994         (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): Simple replace.
39995         * rendering/RenderBox.cpp:
39996         (WebCore::RenderBox::computePercentageLogicalHeight): Adjust for content height.
39997         (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Adjust for content height.
39998         (WebCore::RenderBox::availableLogicalHeightUsing): Adjust for content height.
39999
40000 2012-10-19  Pablo Flouret  <pablof@motorola.com>
40001
40002         Implement setRangeText() on text controls
40003         https://bugs.webkit.org/show_bug.cgi?id=91907
40004
40005         Reviewed by Kent Tamura.
40006
40007         setRangeText() replaces a range of text with some other text, and
40008         adjusts the existing selection according to its parameters.
40009
40010         Spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/association-of-controls-and-forms.html#dom-textarea/input-setrangetext
40011
40012         Tests: fast/forms/color/color-setrangetext.html
40013                fast/forms/date/date-setrangetext.html
40014                fast/forms/datetime/datetime-setrangetext.html
40015                fast/forms/datetimelocal/datetimelocal-setrangetext.html
40016                fast/forms/file/file-setrangetext.html
40017                fast/forms/hidden/hidden-setrangetext.html
40018                fast/forms/image/image-setrangetext.html
40019                fast/forms/month/month-setrangetext.html
40020                fast/forms/number/number-setrangetext.html
40021                fast/forms/range/range-setrangetext.html
40022                fast/forms/search/search-setrangetext.html
40023                fast/forms/setrangetext.html
40024                fast/forms/textarea/textarea-setrangetext.html
40025                fast/forms/time/time-setrangetext.html
40026                fast/forms/week/week-setrangetext.html
40027
40028
40029         * bindings/scripts/CodeGeneratorGObject.pm:
40030         (SkipFunction):
40031             The GObject generator doesn't support function overloads, so skip the
40032             version of setRangeText() that has only one argument, its behavior
40033             can be emulated with the four-argument version.
40034
40035         * html/InputType.cpp:
40036         (WebCore::InputType::supportsSelectionAPI):
40037         (WebCore):
40038         * html/InputType.h:
40039         (InputType):
40040             Add supportsSelectionAPI() which indicates whether the various
40041             selection api functions like setRangeText, setSelectionRange, etc.
40042             are supported by this input element.
40043
40044         * html/BaseTextInputType.cpp:
40045         (WebCore::BaseTextInputType::supportsSelectionAPI):
40046         (WebCore):
40047         * html/BaseTextInputType.h:
40048         (BaseTextInputType):
40049             Text-based input types support the selection APIs.
40050
40051         * html/EmailInputType.cpp:
40052         (WebCore::EmailInputType::supportsSelectionAPI):
40053         (WebCore):
40054         * html/EmailInputType.h:
40055         (EmailInputType):
40056             Email inputs don't support the selection APIs.
40057
40058         * html/HTMLInputElement.cpp:
40059         (WebCore::HTMLInputElement::setRangeText):
40060         * html/HTMLInputElement.h:
40061         (HTMLInputElement):
40062             Add a setRangeText override which checks if it should apply to the
40063             input type, and calls the actual implementation on the parent class.
40064         * html/HTMLInputElement.idl:
40065         * html/HTMLTextAreaElement.idl:
40066
40067         * html/HTMLTextFormControlElement.cpp:
40068         (WebCore::HTMLTextFormControlElement::setRangeText):
40069         * html/HTMLTextFormControlElement.h:
40070         (HTMLTextFormControlElement):
40071             setRangeText implementation.
40072
40073
40074 2012-10-19  Luke Macpherson   <macpherson@chromium.org>
40075
40076         Remove HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro in StyleResolver.
40077         https://bugs.webkit.org/show_bug.cgi?id=99782
40078
40079         Reviewed by Sam Weinig.
40080
40081         Removes last usage of HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE macro, so that in future there will be no temptation
40082         to use it instead of adding a line to StyleBuilder.
40083         Also removes redundant checks for inital and inherit (HANDLE_INHERIT_AND_INTIAL already returns in those cases).
40084         I don't want to move this code into StyleBuilder until the FIXME that is already there is fixed.
40085
40086         Covered by many existing writing mode tests (eg. fast/html/details-writing-mode.html)
40087
40088         * css/StyleResolver.cpp:
40089         (WebCore):
40090         (WebCore::StyleResolver::applyProperty):
40091
40092 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40093
40094         IndexedDB: Hidden indexing events are visible to script via bubbling/capture
40095         https://bugs.webkit.org/show_bug.cgi?id=96566
40096
40097         Reviewed by Tony Chang.
40098
40099         Stop propagation of error events fired at internal indexing requests as a result of
40100         aborting, as they should not be visible to scripts.
40101
40102         Test: storage/indexeddb/index-population.html
40103
40104         * Modules/indexeddb/IDBObjectStore.cpp:
40105         (WebCore::IDBObjectStore::createIndex):
40106         * Modules/indexeddb/IDBRequest.cpp:
40107         (WebCore::IDBRequest::IDBRequest):
40108         (WebCore::IDBRequest::dispatchEvent):
40109         * Modules/indexeddb/IDBRequest.h:
40110         (WebCore::IDBRequest::preventPropagation):
40111         (IDBRequest):
40112
40113 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40114
40115         Remove .get() calls in assertions as suggested by Darin Adler.
40116         
40117         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40118         (PlatformCALayer::appendSublayer):
40119         (PlatformCALayer::insertSublayer):
40120         (PlatformCALayer::replaceSublayer):
40121
40122 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40123
40124         Fix a hang when combining tile cache layers with preserve-3d or reflections
40125         https://bugs.webkit.org/show_bug.cgi?id=99890
40126         <rdar://problem/12539560>
40127
40128         Reviewed by Dean Jackson.
40129
40130         The new tile cache code added an updateSublayers() call when switching to/from
40131         tiled layers. This confused later sublayer rebuilding, causing us to attempt to
40132         add a layer as a child of itself, causing a hang in CA.
40133         
40134         Fix by removing all the explicit calls to updateFoo when updating the structural
40135         layer and switching to/from tiled layers. Instead, we set dirty flags, and rely
40136         on the fact that these flag-dirtying functions get called before the later functions
40137         that process those dirty flags. This is assured by some reordering of the update
40138         function calls.
40139         
40140         A final wrinkle is that ensureStructuralLayer() can change the layer that our
40141         parent GraphicsLayer put in its sublayer list. Rather than diddle with that sublayer
40142         list directly like we used to, just call noteSublayersChanged() on the parent, and have
40143         commitLayerChangesAfterSublayers() check the ChildrenChanged and do a second update
40144         of sublayers if necessary (we clear the flag in commitLayerChangesBeforeSublayers(), so
40145         only do this work if a sublayer requested it).
40146         
40147         Tests: compositing/tiling/preserve3d-tiled.html
40148                compositing/tiling/reflected-tiled.html
40149
40150         * platform/graphics/ca/GraphicsLayerCA.cpp:
40151         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
40152         (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
40153         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
40154         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
40155         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
40156         (PlatformCALayer::appendSublayer): Add assertion about adding a layer to itself.
40157         (PlatformCALayer::insertSublayer): Ditto.
40158         (PlatformCALayer::replaceSublayer): Ditto.
40159
40160 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
40161
40162         AX: aria-hidden=false does not work as expected
40163         https://bugs.webkit.org/show_bug.cgi?id=98787
40164
40165         Reviewed by Beth Dakin.
40166
40167         ARIA requires that aria-hidden=false override an element's native visibility and include that
40168         node in the AX hierarchy.
40169
40170         To accomplish this we have to allow invisible items to be included, as well as items that
40171         have no renderers associated with them.
40172
40173         Test: accessibility/aria-hidden-negates-no-visibility.html
40174
40175         * accessibility/AXObjectCache.cpp:
40176         (WebCore::AXObjectCache::getOrCreate):
40177         * accessibility/AccessibilityARIAGrid.cpp:
40178         (WebCore::AccessibilityARIAGrid::addTableCellChild):
40179         (WebCore::AccessibilityARIAGrid::addChildren):
40180         * accessibility/AccessibilityARIAGrid.h:
40181         (AccessibilityARIAGrid):
40182         * accessibility/AccessibilityNodeObject.cpp:
40183         (WebCore):
40184        (WebCore::AccessibilityNodeObject::boundingBoxRect):
40185         (WebCore::AccessibilityNodeObject::insertChild):
40186         (WebCore::AccessibilityNodeObject::addChild):
40187         (WebCore::AccessibilityNodeObject::addChildren):
40188         (WebCore::AccessibilityNodeObject::textUnderElement):
40189         * accessibility/AccessibilityNodeObject.h:
40190         (AccessibilityNodeObject):
40191         * accessibility/AccessibilityObject.cpp:
40192         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
40193         (WebCore):
40194         * accessibility/AccessibilityObject.h:
40195         (AccessibilityObject):
40196         (WebCore::AccessibilityObject::addChild):
40197         (WebCore::AccessibilityObject::insertChild):
40198         * accessibility/AccessibilityRenderObject.cpp:
40199         (WebCore):
40200         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40201         (WebCore::AccessibilityRenderObject::addHiddenChildren):
40202         (WebCore::AccessibilityRenderObject::addChildren):
40203         * accessibility/AccessibilityRenderObject.h:
40204         (AccessibilityRenderObject):
40205
40206 2012-10-19  Michael Saboff  <msaboff@apple.com>
40207
40208         Add String version of visitedLinkHash() to properly handle 8-bit URL Strings.
40209         https://bugs.webkit.org/show_bug.cgi?id=99735
40210
40211         Reviewed by Filip Pizlo.
40212
40213         Added String version of visitedLinkHash().  Made speculative addition of visitedLinkHash()
40214         to chromium platform version of LinkHashChromium.cpp.
40215         Changed calls in the form of visitedLinkHash(string.characters(), string.length()) to use the
40216         new form.
40217
40218         No changes to functionality, so no new tests.
40219
40220         * WebCore.exp.in:
40221         * loader/HistoryController.cpp:
40222         (WebCore::addVisitedLink):
40223         * page/PageGroup.cpp:
40224         (WebCore::PageGroup::addVisitedLink):
40225         * platform/LinkHash.cpp:
40226         (WebCore::visitedLinkHashInline):
40227         (WebCore::visitedLinkHash):
40228         * platform/LinkHash.h:
40229         * platform/chromium/LinkHashChromium.cpp:
40230         (WebCore::visitedLinkHash):
40231
40232 2012-10-19  Michael Saboff  <msaboff@apple.com>
40233
40234         String(CFStringRef) should try to converting to an 8 bit string before converting to  16 bit string
40235         https://bugs.webkit.org/show_bug.cgi?id=99794
40236
40237         Reviewed by Filip Pizlo.
40238
40239         Try getting a Latin1 byte string before getting a UTF16 (UChar*) string.
40240
40241         No new test, added 8 bit path.
40242
40243         * platform/text/cf/StringCF.cpp:
40244         (WTF::String::String):
40245
40246 2012-10-19  Dima Gorbik  <dgorbik@apple.com>
40247
40248         Page should be removed from the cache right after restore was called.
40249         https://bugs.webkit.org/show_bug.cgi?id=99737
40250
40251         Reviewed by Brady Eidson.
40252
40253         The pageCache was inconsistent after the restoration for a period of time because the cachedFrame is being nulled,
40254         but the page is still in the Cache. Now the page is being removed from the cache right after the restoration.
40255         This issue was spotted in a custom built application using WebKit and unfortunately there is no way to test this
40256         behavior in LayoutTests. All the current tests that exercise the page cache do pass.
40257
40258         No new tests.
40259
40260         * loader/FrameLoader.cpp:
40261         (WebCore::FrameLoader::commitProvisionalLoad):
40262
40263 2012-10-19  Max Vujovic  <mvujovic@adobe.com>
40264
40265         [WebGL] getUniformLocation fails for uniform array name without array brackets
40266         https://bugs.webkit.org/show_bug.cgi?id=99854
40267
40268         Reviewed by Dean Jackson.
40269
40270         Before this patch, gl.getUniformLocation(program, "array[0]") would return the array
40271         location, but gl.getUniformLocation(program, "array") would not. Now, the latter also
40272         returns the array location.
40273
40274         In the process of adding a check to the following Khronos WebGL conformance test:
40275         conformance/glsl/misc/glsl-long-variable-names.html
40276
40277         * platform/graphics/ANGLEWebKitBridge.cpp:
40278         (WebCore::getSymbolInfo):
40279             Before, we used to check that the symbol size was greater than one to determine that the
40280             symbol was an array. However, this doesn't identify arrays of length one. Now, we check
40281             if the symbol name ends in "[0]", since ANGLE appends this suffix to array symbol
40282             names.
40283             If the symbol is an array, we strip off the "[0]" and add a symbol with just the base
40284             name. We set the isArray flag on the symbol, so we don't lose the information that it is
40285             an array.
40286             Then, we create symbols for each array element like before. However, instead of
40287             replacing the "0" in array[0]" with each index, we take the base name "array" and
40288             append array brackets containing each index (e.g. "array" + "[7]").
40289         * platform/graphics/ANGLEWebKitBridge.h:
40290         (ANGLEShaderSymbol):
40291             Add isArray boolean to ANGLEShaderSymbol. Since array symbols don't end in "[0]"
40292             anymore, this is the only way to identify arrays.
40293
40294 2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
40295
40296         Unreviewed, rolling out r131915.
40297         http://trac.webkit.org/changeset/131915
40298         https://bugs.webkit.org/show_bug.cgi?id=98787
40299
40300         It broke the build on platforms with \!HAVE(ACCESSIBILITY)
40301
40302         * accessibility/AXObjectCache.cpp:
40303         (WebCore::AXObjectCache::getOrCreate):
40304         (WebCore::AXObjectCache::nodeIsTextControl):
40305         * accessibility/AXObjectCache.h:
40306         (WebCore):
40307         * accessibility/AccessibilityARIAGrid.cpp:
40308         (WebCore::AccessibilityARIAGrid::addChild):
40309         (WebCore::AccessibilityARIAGrid::addChildren):
40310         * accessibility/AccessibilityARIAGrid.h:
40311         (AccessibilityARIAGrid):
40312         * accessibility/AccessibilityNodeObject.cpp:
40313         (WebCore::AccessibilityNodeObject::elementRect):
40314         (WebCore::AccessibilityNodeObject::addChildren):
40315         (WebCore::AccessibilityNodeObject::textUnderElement):
40316         * accessibility/AccessibilityNodeObject.h:
40317         (AccessibilityNodeObject):
40318         * accessibility/AccessibilityObject.cpp:
40319         * accessibility/AccessibilityObject.h:
40320         (AccessibilityObject):
40321         * accessibility/AccessibilityRenderObject.cpp:
40322         (WebCore::textIteratorBehaviorForTextRange):
40323         (WebCore):
40324         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40325         (WebCore::AccessibilityRenderObject::addChildren):
40326         * accessibility/AccessibilityRenderObject.h:
40327         (AccessibilityRenderObject):
40328
40329 2012-10-19  Tony Chang  <tony@chromium.org>
40330
40331         Unreviewed, rolling out r131936.
40332         http://trac.webkit.org/changeset/131936
40333         https://bugs.webkit.org/show_bug.cgi?id=99717
40334
40335         Broke the clang build
40336
40337         * WebCore.exp.in:
40338         * inspector/InspectorFrontendClient.h:
40339         (InspectorFrontendClient):
40340         * inspector/InspectorFrontendClientLocal.cpp:
40341         (WebCore::InspectorFrontendClientLocal::requestAttachWindow):
40342         (WebCore):
40343         (WebCore::InspectorFrontendClientLocal::requestDetachWindow):
40344         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40345         * inspector/InspectorFrontendClientLocal.h:
40346         (InspectorFrontendClientLocal):
40347         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40348         * inspector/InspectorFrontendHost.cpp:
40349         (WebCore::InspectorFrontendHost::requestAttachWindow):
40350         (WebCore):
40351         (WebCore::InspectorFrontendHost::requestDetachWindow):
40352         (WebCore::InspectorFrontendHost::requestSetDockSide):
40353         * inspector/InspectorFrontendHost.h:
40354         (InspectorFrontendHost):
40355         * inspector/InspectorFrontendHost.idl:
40356         * inspector/front-end/DockController.js:
40357         (WebInspector.DockController):
40358         (WebInspector.DockController.prototype.setDocked):
40359         (WebInspector.DockController.prototype._innerSetDocked.set if):
40360         (WebInspector.DockController.prototype._innerSetDocked):
40361         (WebInspector.DockController.prototype._updateUI.get states):
40362         (WebInspector.DockController.prototype._updateUI):
40363         (WebInspector.DockController.prototype._toggleDockState):
40364         * inspector/front-end/InspectorFrontendAPI.js:
40365         (InspectorFrontendAPI.setAttachedWindow):
40366         (InspectorFrontendAPI.setDockSide):
40367         * inspector/front-end/InspectorFrontendHostStub.js:
40368         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
40369         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
40370         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40371         * inspector/front-end/externs.js:
40372         (InspectorFrontendHostAPI.prototype.requestAttachWindow):
40373         (InspectorFrontendHostAPI.prototype.requestDetachWindow):
40374
40375 2012-10-09  Martin Robinson  <mrobinson@igalia.com>
40376
40377         REGRESSION (r130699): 5 various fast/ tests started failing
40378         https://bugs.webkit.org/show_bug.cgi?id=98729
40379
40380         Reviewed by Xan Lopez.
40381
40382         Do not try to remove the URL fragment for data URLs. This will likely
40383         just corrupt the URL.
40384
40385         No new tests. This unskips some previously failing tests.
40386
40387         * platform/network/soup/ResourceRequestSoup.cpp:
40388         (WebCore::ResourceRequest::urlStringForSoup): Do nothing for data URLs.
40389
40390 2012-10-19  Simon Fraser  <simon.fraser@apple.com>
40391
40392         Use tile caches in place of CATiledLayer
40393         https://bugs.webkit.org/show_bug.cgi?id=99806
40394         <rdar://problem/6474145>
40395
40396         Reviewed by Tim Horton.
40397
40398         Have GraphicsLayerCA use TileCaches instead of CATiledLayer now for
40399         layers that exceed the 2000px size threshold.
40400
40401         * platform/graphics/TiledBacking.h:
40402         (TiledBacking): Have normal getter and setter for the visible rect.
40403         * platform/graphics/ca/GraphicsLayerCA.cpp:
40404         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly): We need
40405         to pass in an old visibleRect to commitLayerChangesBeforeSublayers(). Just use
40406         our current visible rect, which result in no tile area work.
40407         (WebCore::GraphicsLayerCA::computeVisibleRect): Make this const and have it
40408         return the rect, for clarity.
40409         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Keep track of the old
40410         visible rect, and use the change flags mechanism to ensure that we recompute
40411         tile areas later.
40412         When calling commitLayerChangesBeforeSublayers() on the mask layer, just pass
40413         its own visible rect as the old visible rect.
40414         (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Pass in the
40415         oldVisibleRect so that updateVisibleRect() can use this to see how the
40416         visibleRect is changing.
40417         (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect): This member function
40418         compares the old and new visible rects, and extends the tile coverage area
40419         in directions where more content is being exposed. It takes care to avoid
40420         "jitter" in the visible rect deltas causing edge tiles to get created then
40421         destroyed by keeping any extra padding that already exists in a direction
40422         where more content is being exposed.
40423         (WebCore::GraphicsLayerCA::updateVisibleRect): Call adjustTiledLayerVisibleRect()
40424         and use the result to update the TiledBacking's visibleRect.
40425         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Create layers of type
40426         LayerTypeTileCacheLayer instead of LayerTypeWebTiledLayer. Because tile
40427         cache layers involve adding an extra layer to the hierarchy (the tile container),
40428         we call updateSublayerList() when changing layer type.
40429         * platform/graphics/ca/GraphicsLayerCA.h: New m_sizeAtLastVisibleRectUpdate member
40430         that is used to prevent the adjustTiledLayerVisibleRect() logic being confused by
40431         size changes.
40432         (WebCore::GraphicsLayerCA::visibleRect):
40433         * platform/graphics/ca/mac/TileCache.h: Have normal getter and setter for the visible rect.
40434         * platform/graphics/ca/mac/TileCache.mm:
40435         (WebCore::TileCache::setVisibleRect): Renamed to setVisibleRect().
40436         * rendering/RenderLayerCompositor.cpp:
40437         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Avoid doing work
40438         for pages in the page cache, for which the root layer is unattached.
40439         (WebCore::RenderLayerCompositor::frameViewDidScroll): visibleRectChanged() was renamed
40440         to setVisibleRect().
40441
40442 2012-10-19  Beth Dakin  <bdakin@apple.com>
40443
40444         https://bugs.webkit.org/show_bug.cgi?id=99768
40445         We should limit the tile cache coverage when a page can't take 
40446         advantage of fast tile scrolling anyway
40447
40448         Reviewed by Simon Fraser.
40449
40450         When sites can't use fast-scrolling, there is no need to inflate the 
40451         tile cache. In fact, we get a performance boost by keeping it small 
40452         on painting-intensive sites. 
40453
40454         Instead of just looking a whether or not the FrameView 
40455         canHaveScrollbar(), consult 
40456         shouldUpdateScrollLayerPositionOnMainThread().
40457         * page/FrameView.cpp:
40458         (WebCore::FrameView::performPostLayoutTasks):
40459         * rendering/RenderLayerBacking.cpp:
40460         (WebCore::RenderLayerBacking::RenderLayerBacking):
40461         
40462         Expose shouldUpdateScrollLayerPositionOnMainThread().
40463         * page/scrolling/ScrollingCoordinator.cpp:
40464         (WebCore::ScrollingCoordinator::hasNonLayerFixedObjects):
40465         (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionOnMainThread):
40466         (WebCore):
40467         (WebCore::ScrollingCoordinator::updateShouldUpdateScrollLayerPositionOnMainThread):
40468         * page/scrolling/ScrollingCoordinator.h:
40469         (ScrollingCoordinator):
40470
40471         Bug fix. Should be bitwise and.
40472         * platform/graphics/ca/mac/TileCache.mm:
40473         (WebCore::TileCache::tileCoverageRect):
40474
40475 2012-10-19  Mark Lam  <mark.lam@apple.com>
40476
40477         Added WTF::StackStats mechanism.
40478         https://bugs.webkit.org/show_bug.cgi?id=99805.
40479
40480         Reviewed by Geoffrey Garen.
40481
40482         Added StackStats probes in layout methods.
40483
40484         * dom/Document.cpp:
40485         (WebCore::Document::updateLayout):
40486         * rendering/RenderBlock.cpp:
40487         (WebCore::RenderBlock::layout):
40488         * rendering/RenderBox.cpp:
40489         (WebCore::RenderBox::layout):
40490         * rendering/RenderDialog.cpp:
40491         (WebCore::RenderDialog::layout):
40492         * rendering/RenderEmbeddedObject.cpp:
40493         (WebCore::RenderEmbeddedObject::layout):
40494         * rendering/RenderFlowThread.cpp:
40495         (WebCore::RenderFlowThread::layout):
40496         * rendering/RenderFrameSet.cpp:
40497         (WebCore::RenderFrameSet::layout):
40498         * rendering/RenderIFrame.cpp:
40499         (WebCore::RenderIFrame::layout):
40500         * rendering/RenderImage.cpp:
40501         (WebCore::RenderImage::layout):
40502         * rendering/RenderListBox.cpp:
40503         (WebCore::RenderListBox::layout):
40504         * rendering/RenderListItem.cpp:
40505         (WebCore::RenderListItem::layout):
40506         * rendering/RenderListMarker.cpp:
40507         (WebCore::RenderListMarker::layout):
40508         * rendering/RenderMedia.cpp:
40509         (WebCore::RenderMedia::layout):
40510         * rendering/RenderObject.cpp:
40511         (WebCore::RenderObject::layout):
40512         * rendering/RenderObject.h:
40513         * rendering/RenderRegion.cpp:
40514         (WebCore::RenderRegion::layout):
40515         * rendering/RenderReplaced.cpp:
40516         (WebCore::RenderReplaced::layout):
40517         * rendering/RenderReplica.cpp:
40518         (WebCore::RenderReplica::layout):
40519         * rendering/RenderRubyRun.cpp:
40520         (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
40521         * rendering/RenderScrollbarPart.cpp:
40522         (WebCore::RenderScrollbarPart::layout):
40523         * rendering/RenderSlider.cpp:
40524         (WebCore::RenderSlider::layout):
40525         * rendering/RenderTable.cpp:
40526         (WebCore::RenderTable::layout):
40527         * rendering/RenderTableCell.cpp:
40528         (WebCore::RenderTableCell::layout):
40529         * rendering/RenderTableRow.cpp:
40530         (WebCore::RenderTableRow::layout):
40531         * rendering/RenderTableSection.cpp:
40532         (WebCore::RenderTableSection::layout):
40533         * rendering/RenderTextControlSingleLine.cpp:
40534         (WebCore::RenderTextControlSingleLine::layout):
40535         * rendering/RenderTextTrackCue.cpp:
40536         (WebCore::RenderTextTrackCue::layout):
40537         * rendering/RenderVideo.cpp:
40538         (WebCore::RenderVideo::layout):
40539         * rendering/RenderView.cpp:
40540         (WebCore::RenderView::layout):
40541         * rendering/RenderWidget.cpp:
40542         (WebCore::RenderWidget::layout):
40543         * rendering/svg/RenderSVGContainer.cpp:
40544         (WebCore::RenderSVGContainer::layout):
40545         * rendering/svg/RenderSVGForeignObject.cpp:
40546         (WebCore::RenderSVGForeignObject::layout):
40547         * rendering/svg/RenderSVGGradientStop.cpp:
40548         (WebCore::RenderSVGGradientStop::layout):
40549         * rendering/svg/RenderSVGHiddenContainer.cpp:
40550         (WebCore::RenderSVGHiddenContainer::layout):
40551         * rendering/svg/RenderSVGImage.cpp:
40552         (WebCore::RenderSVGImage::layout):
40553         * rendering/svg/RenderSVGResourceContainer.cpp:
40554         (WebCore::RenderSVGResourceContainer::layout):
40555         * rendering/svg/RenderSVGResourceMarker.cpp:
40556         (WebCore::RenderSVGResourceMarker::layout):
40557         * rendering/svg/RenderSVGRoot.cpp:
40558         (WebCore::RenderSVGRoot::layout):
40559         * rendering/svg/RenderSVGShape.cpp:
40560         (WebCore::RenderSVGShape::layout):
40561         * rendering/svg/RenderSVGText.cpp:
40562         (WebCore::RenderSVGText::layout):
40563
40564 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
40565
40566         Web Inspector: merge "docked" state into the "dock side" enum.
40567         https://bugs.webkit.org/show_bug.cgi?id=99717
40568
40569         Reviewed by Vsevolod Vlasov.
40570
40571         Otherwise, it is hard to manage these inter-dependent flags.
40572
40573         * inspector/InspectorFrontendClient.h:
40574         (InspectorFrontendClient):
40575         * inspector/InspectorFrontendClientLocal.cpp:
40576         (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
40577         (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
40578         * inspector/InspectorFrontendClientLocal.h:
40579         (InspectorFrontendClientLocal):
40580         * inspector/InspectorFrontendHost.cpp:
40581         (WebCore::InspectorFrontendHost::requestSetDockSide):
40582         * inspector/InspectorFrontendHost.h:
40583         (InspectorFrontendHost):
40584         * inspector/InspectorFrontendHost.idl:
40585         * inspector/front-end/DockController.js:
40586         (WebInspector.DockController):
40587         (WebInspector.DockController.prototype._updateUI.get sides):
40588         (WebInspector.DockController.prototype._updateUI):
40589         (WebInspector.DockController.prototype._toggleDockState):
40590         * inspector/front-end/InspectorFrontendAPI.js:
40591         (InspectorFrontendAPI.setAttachedWindow):
40592         * inspector/front-end/InspectorFrontendHostStub.js:
40593         (.WebInspector.InspectorFrontendHostStub.prototype.requestSetDockSide):
40594
40595 2012-10-19  Joshua Bell  <jsbell@chromium.org>
40596
40597         [V8] IndexedDB: Crash when lazy-indexing Date keys
40598         https://bugs.webkit.org/show_bug.cgi?id=99860
40599
40600         Reviewed by Adam Barth.
40601
40602         Missing a scope/context needed when digging values out of Date objects
40603         in an indexing callback.
40604
40605         Test: storage/indexeddb/lazy-index-types.html
40606
40607         * bindings/v8/IDBBindingUtilities.cpp:
40608         (WebCore::createIDBKeyFromScriptValueAndKeyPath):
40609
40610 2012-10-18  Dean Jackson  <dino@apple.com>
40611
40612         Shader translator needs option to clamp uniform array accesses in vertex shaders
40613         https://bugs.webkit.org/show_bug.cgi?id=98977
40614         https://code.google.com/p/angleproject/issues/detail?id=49
40615
40616         Reviewed by Alok Priyadarshi and Ken Russell.
40617
40618         WebGL forbids out-of-bounds array access in shaders. Rewrite any shaders to
40619         ensure that non-direct array indexing is clamped to the bounds of the array.
40620
40621         Test: fast/canvas/webgl/array-bounds-clamping.html
40622
40623         * platform/graphics/ANGLEWebKitBridge.cpp:
40624         (WebCore::ANGLEWebKitBridge::compileShaderSource): Pass new compiler option SH_CLAMP_INDIRECT_ARRAY_BOUNDS
40625
40626 2012-10-19  Justin Novosad  <junov@chromium.org>
40627
40628         [Chromium] Reduce memory footprint of canvas pattern object with deferred rendering
40629         https://bugs.webkit.org/show_bug.cgi?id=99856
40630
40631         Reviewed by Stephen White.
40632
40633         Marking internal bitmap copy as immutable to prevent it from being
40634         unnecessarily duplicated in skia by SkBitmapHeap.
40635
40636         No new tests: code path already well covered by existing layout tests 
40637         fast/canvas/canvas-pattern-*
40638
40639         * platform/graphics/skia/PatternSkia.cpp:
40640         (WebCore::Pattern::platformPattern):
40641
40642 2012-10-19  Antti Koivisto  <antti@apple.com>
40643
40644         Maintain a list of active CSS stylesheets
40645         https://bugs.webkit.org/show_bug.cgi?id=99843
40646
40647         Reviewed by Andreas Kling.
40648
40649         Currently we maintain a per-document list of stylesheets that matches what is returned by the StyleSheetList DOM API. 
40650         This list contains both CSS and XSLT stylesheets which internally have basically nothing in common. Maintaining 
40651         a list of active CSS stylesheets separately simplifies code in number of places.
40652
40653         * css/StyleResolver.cpp:
40654         (WebCore::StyleResolver::StyleResolver):
40655         (WebCore::StyleResolver::addStylesheetsFromSeamlessParents):
40656         (WebCore::StyleResolver::appendAuthorStyleSheets):
40657         (WebCore::collectCSSOMWrappers):
40658         * css/StyleResolver.h:
40659         (StyleResolver):
40660         * css/StyleSheetList.cpp:
40661         (WebCore::StyleSheetList::styleSheets):
40662         (WebCore::StyleSheetList::detachFromDocument):
40663         * dom/Document.cpp:
40664         (WebCore::Document::setCompatibilityMode):
40665         * dom/DocumentStyleSheetCollection.cpp:
40666         (WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
40667         (WebCore::styleSheetsUseRemUnits):
40668         (WebCore::filterEnabledCSSStyleSheets):
40669         (WebCore):
40670         (WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
40671         (WebCore::DocumentStyleSheetCollection::reportMemoryUsage):
40672         * dom/DocumentStyleSheetCollection.h:
40673         (WebCore::DocumentStyleSheetCollection::styleSheetsForStyleSheetList):
40674         (DocumentStyleSheetCollection):
40675         (WebCore::DocumentStyleSheetCollection::activeAuthorStyleSheets):
40676
40677 2012-09-08  Alpha Lam  <hclam@chromium.org>
40678
40679         [chromium] Implement deferred image decoding
40680         https://bugs.webkit.org/show_bug.cgi?id=94240
40681
40682         Reviewed by Stephen White.
40683
40684         Objectives:
40685
40686         To record image decoding operations during painting and to defer
40687         decoding operations until rasterization.
40688
40689         Rationale:
40690
40691         This is a key feature that enables impl-side painting which requires
40692         fast recording of drawing operations. The existing decode-on-draw
40693         restricts that recording has to block on expensive decoding operations.
40694         This change allows recording of image decoding operations during paint
40695         time.
40696
40697         Design:
40698
40699         Image decoding happens when a BitmapImage is drawn into a
40700         GraphicsContext. When per-tile painting is enabled GraphicsContext
40701         is backed by SkCanvas in recording mode. This SkCanvas records drawing
40702         and image decoding operations to minimize recording time.
40703
40704         An image decoding operation is recorded as a SkPixelRef object
40705         implemented by LazyDecodingPixelRef. This object references raw encoded
40706         data, regions to be decoded and scaling information.
40707
40708         When used in conjunction with per-tile painting this feature defers
40709         image decoding until the SkCanvas referencing the image is rasterized.
40710
40711         Both recording and rasterization happen on the main thread.
40712
40713         Performance Impact:
40714
40715         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
40716         and does not have an impact when disabled.
40717
40718         This feature is disabled by default.
40719
40720         Upcoming Changes:
40721
40722         1. Implement a full-featured image cache in ImageDecodingStore.
40723         2. Allow rasterization and decoding on impl thread.
40724
40725         Classes Involved:
40726
40727         BitmapImage
40728
40729         BitmapImage is the entry point for deferred image decoding. When
40730         drawing a BitmapImage into a GraphicsContext it makes a request to
40731         create a NativeImageSkia. We substitute the content in NativeImageSkia
40732         such that it is lazily decoded.
40733
40734         DeferredImageDecoder
40735
40736         This is the platform implementation of a image decoder for Chromium.
40737         This is a bridge layer that either delegates calls to the actual
40738         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
40739         to ImageDecodingStore.
40740
40741         ImageDecodingStore
40742
40743         This object manages all encoded images. It keeps track of encoded
40744         data and the corresponding ImageDecoder for doing actual decoding. It
40745         is also responsible for generating lazily decoded SkBitmaps. This
40746         SkBitmap contains a LazyDecodingPixelRef object which references to an
40747         image entry in ImageDecodingStore.
40748
40749         ScaledImageFragment
40750
40751         A container for a scaled image fragment. In addition to bitmap pixels
40752         it contains information about the ID of the image, scale and clipping.
40753
40754         ImageFrameGenerator
40755
40756         This object is responsible for generating decoded pixels. It is also
40757         a container for encoded image data and corresponding image decoder.
40758
40759         LazyDecodingPixelRef
40760
40761         This object is embedded in a SkBitmap to enable lazy decoding. When
40762         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
40763         contains information to locate an image and scaling info, these
40764         information is submitted to ImageDecodingStore to access actual pixels.
40765
40766         Layout tests. There are about 80 tests in this virtual test suite
40767         running this feature in this directory:
40768
40769         platform/chromium/virtual/deferred/fast/images
40770
40771         Unit tests. Added DeferredImageDecoderTest to verify deferred
40772         image decoding behavior.
40773
40774         * WebCore.gypi:
40775         * platform/graphics/ImageSource.cpp:
40776         (WebCore::ImageSource::setData):
40777         * platform/graphics/ImageSource.h:
40778         (WebCore):
40779         (ImageSource):
40780         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
40781         (WebCore):
40782         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
40783         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
40784         (WebCore::DeferredImageDecoder::create):
40785         (WebCore::DeferredImageDecoder::createForTesting):
40786         (WebCore::DeferredImageDecoder::filenameExtension):
40787         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
40788         (WebCore::DeferredImageDecoder::setData):
40789         (WebCore::DeferredImageDecoder::isSizeAvailable):
40790         (WebCore::DeferredImageDecoder::size):
40791         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
40792         (WebCore::DeferredImageDecoder::frameCount):
40793         (WebCore::DeferredImageDecoder::repetitionCount):
40794         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
40795         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
40796         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
40797         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
40798         (WebCore):
40799         (DeferredImageDecoder):
40800         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
40801         (WebCore::ImageDecodingStore::ImageDecodingStore):
40802         (WebCore):
40803         (WebCore::ImageDecodingStore::~ImageDecodingStore):
40804         (WebCore::ImageDecodingStore::instanceOnMainThread):
40805         (WebCore::ImageDecodingStore::initializeOnMainThread):
40806         (WebCore::ImageDecodingStore::shutdown):
40807         (WebCore::ImageDecodingStore::isLazyDecoded):
40808         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
40809         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
40810         (WebCore::ImageDecodingStore::setData):
40811         (WebCore::ImageDecodingStore::lockPixels):
40812         (WebCore::ImageDecodingStore::unlockPixels):
40813         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
40814         (WebCore::ImageDecodingStore::calledOnValidThread):
40815         (WebCore::ImageDecodingStore::lookupFrameCache):
40816         (WebCore::ImageDecodingStore::deleteFrameCache):
40817         * platform/graphics/chromium/ImageDecodingStore.h: Added.
40818         (WebCore):
40819         (ImageDecodingStore):
40820         (WebCore::ImageDecodingStore::create):
40821         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
40822         (WebCore):
40823         (WebCore::ScaledImageFragment::~ScaledImageFragment):
40824         (WebCore::ScaledImageFragment::ScaledImageFragment):
40825         (WebCore::ScaledImageFragment::isEqual):
40826         * platform/graphics/chromium/ScaledImageFragment.h: Added.
40827         (WebCore):
40828         (ScaledImageFragment):
40829         (WebCore::ScaledImageFragment::create):
40830         (WebCore::ScaledImageFragment::bitmap):
40831         (WebCore::ScaledImageFragment::isComplete):
40832         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
40833         (WebCore):
40834         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
40835         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
40836         (WebCore::ImageFrameGenerator::decoder):
40837         (WebCore::ImageFrameGenerator::setData):
40838         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
40839         (WebCore):
40840         (ImageFrameGenerator):
40841         (WebCore::ImageFrameGenerator::create):
40842         (WebCore::ImageFrameGenerator::size):
40843         (WebCore::ImageFrameGenerator::imageId):
40844         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
40845         (WebCore):
40846         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
40847         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
40848         (WebCore::LazyDecodingPixelRef::isScaled):
40849         (WebCore::LazyDecodingPixelRef::isClipped):
40850         (WebCore::LazyDecodingPixelRef::onLockPixels):
40851         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
40852         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
40853         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
40854         (WebCore):
40855         (LazyDecodingPixelRef):
40856         (WebCore::LazyDecodingPixelRef::frameGenerator):
40857         * platform/graphics/skia/NativeImageSkia.cpp:
40858         (WebCore::NativeImageSkia::resizedBitmap):
40859         * platform/image-decoders/ImageDecoder.h:
40860         (ImageFrame):
40861         (WebCore::ImageFrame::setSkBitmap):
40862         (WebCore::ImageFrame::getSkBitmap):
40863
40864 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
40865
40866         [EFL] GraphicsContext3D::m_renderStyle is not initialized
40867         https://bugs.webkit.org/show_bug.cgi?id=99721
40868
40869         Reviewed by Antonio Gomes.
40870
40871         Initialize GraphicsContext3D::m_renderStyle.
40872
40873         No new tests, no new functionality.
40874
40875         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
40876         (WebCore::GraphicsContext3D::GraphicsContext3D):
40877
40878 2012-10-19  Dongwoo Joshua Im  <dw.im@samsung.com>
40879
40880         Rename ENABLE_CSS3_TEXT_DECORATION to ENABLE_CSS3_TEXT
40881         https://bugs.webkit.org/show_bug.cgi?id=99804
40882
40883         Reviewed by Julien Chaffraix.
40884
40885         CSS3 text related properties will be implemented under this flag,
40886         including text decoration, text-align-last, and text-justify.
40887
40888         No new functionality, no new test.
40889
40890         * Configurations/FeatureDefines.xcconfig:
40891         * GNUmakefile.am:
40892         * GNUmakefile.features.am:
40893         * css/CSSComputedStyleDeclaration.cpp:
40894         (WebCore):
40895         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
40896         * css/CSSParser.cpp:
40897         (WebCore::CSSParser::parseValue):
40898         (WebCore::CSSParser::addTextDecorationProperty):
40899         (WebCore::CSSParser::parseTextDecoration):
40900         * css/CSSPrimitiveValueMappings.h:
40901         (WebCore):
40902         * css/CSSProperty.cpp:
40903         (WebCore::CSSProperty::isInheritedProperty):
40904         * css/CSSPropertyNames.in:
40905         * css/CSSValueKeywords.in:
40906         * css/StyleBuilder.cpp:
40907         (WebCore::StyleBuilder::StyleBuilder):
40908         * css/StyleResolver.cpp:
40909         (WebCore::StyleResolver::applyProperty):
40910         * rendering/style/RenderStyle.cpp:
40911         (WebCore::RenderStyle::diff):
40912         * rendering/style/RenderStyle.h:
40913         * rendering/style/RenderStyleConstants.h:
40914         (WebCore):
40915         * rendering/style/StyleRareNonInheritedData.cpp:
40916         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
40917         (WebCore::StyleRareNonInheritedData::operator==):
40918         * rendering/style/StyleRareNonInheritedData.h:
40919         (StyleRareNonInheritedData):
40920
40921 2012-10-19  Nate Chapin  <japhet@chromium.org>
40922
40923         Reorder some functions in SubresourceLoader to permit main resources
40924         https://bugs.webkit.org/show_bug.cgi?id=99769
40925
40926         Reviewed by Adam Barth.
40927
40928         Most resource types that go through the memory cache (and therefore
40929         through SubresourceLoader) are not sensitive to the exact ordering of
40930         the callbacks they receive, particularly as it relates to ResourceLoadNotifier
40931         calls.  Main resources are not so lenient.  For main resources to be cacheable
40932         and maintain the current behavior as precisely as possible, we will need to
40933         rearrange SubresourceLoader's willSendRequest() and didReceiveData().
40934
40935         No new tests, refactor only.
40936
40937         * loader/SubresourceLoader.cpp:
40938         (WebCore::SubresourceLoader::willSendRequest): There are a series of checks that can result
40939             in the request being canceled, plus calls to CachedResource::willSendRequest() and
40940             ResourceLoader::willSendRequest().  MainResourceLoader (which will be a
40941             CachedResourceClient) has work it expects to do before ResourceLoader::willSendRequest()
40942             is called, but the calls are out of order for that, so swap those.
40943         (WebCore::SubresourceLoader::didReceiveData): We need to populate ResourceLoader::m_resourceData
40944             before notifying CachedResource of new data, but we also want to do CachedResourceClients calls
40945             before calling ResourceLoadNotifier. This means we can't delegate to ResourceLoader.
40946
40947 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
40948
40949         AX: aria-hidden=false does not work as expected
40950         https://bugs.webkit.org/show_bug.cgi?id=98787
40951
40952         Reviewed by Beth Dakin.
40953
40954         ARIA requires that aria-hidden=false override an element's native visibility and include that
40955         node in the AX hierarchy.
40956  
40957         To accomplish this we have to allow invisible items to be included, as well as items that
40958         have no renderers associated with them.
40959
40960         Test: accessibility/aria-hidden-negates-no-visibility.html
40961
40962         * accessibility/AXObjectCache.cpp:
40963         (WebCore::AXObjectCache::getOrCreate):
40964         * accessibility/AccessibilityARIAGrid.cpp:
40965         (WebCore::AccessibilityARIAGrid::addTableCellChild):
40966         (WebCore::AccessibilityARIAGrid::addChildren):
40967         * accessibility/AccessibilityARIAGrid.h:
40968         (AccessibilityARIAGrid):
40969         * accessibility/AccessibilityNodeObject.cpp:
40970         (WebCore):
40971         (WebCore::AccessibilityNodeObject::boundingBoxRect):
40972         (WebCore::AccessibilityNodeObject::insertChild):
40973         (WebCore::AccessibilityNodeObject::addChild):
40974         (WebCore::AccessibilityNodeObject::addChildren):
40975         (WebCore::AccessibilityNodeObject::textUnderElement):
40976         * accessibility/AccessibilityNodeObject.h:
40977         (AccessibilityNodeObject):
40978         * accessibility/AccessibilityObject.cpp:
40979         (WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
40980         (WebCore):
40981         * accessibility/AccessibilityObject.h:
40982         (AccessibilityObject):
40983         (WebCore::AccessibilityObject::addChild):
40984         (WebCore::AccessibilityObject::insertChild):
40985         * accessibility/AccessibilityRenderObject.cpp:
40986         (WebCore):
40987         (WebCore::AccessibilityRenderObject::accessibilityIsIgnoredBase):
40988         (WebCore::AccessibilityRenderObject::addHiddenChildren):
40989         (WebCore::AccessibilityRenderObject::addChildren):
40990         * accessibility/AccessibilityRenderObject.h:
40991         (AccessibilityRenderObject):
40992
40993 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
40994
40995         MediaStream API: Rename owner to client in MediaStreamDescriptor
40996         https://bugs.webkit.org/show_bug.cgi?id=99593
40997
40998         Reviewed by Adam Barth.
40999
41000         This patch renames owner to client in MediaStreamDescriptor as discussed in #99080.
41001
41002         No new tests needed, covered by existing tests.
41003
41004         * Modules/mediastream/MediaStream.cpp:
41005         (WebCore::MediaStream::MediaStream):
41006         (WebCore::MediaStream::~MediaStream):
41007         * Modules/mediastream/MediaStream.h:
41008         (MediaStream):
41009         * Modules/mediastream/PeerConnection00.cpp:
41010         (WebCore::PeerConnection00::didRemoveRemoteStream):
41011         * Modules/mediastream/RTCPeerConnection.cpp:
41012         (WebCore::RTCPeerConnection::didRemoveRemoteStream):
41013         * platform/mediastream/MediaStreamCenter.cpp:
41014         (WebCore::MediaStreamCenter::endLocalMediaStream):
41015         (WebCore::MediaStreamCenter::addMediaStreamTrack):
41016         (WebCore::MediaStreamCenter::removeMediaStreamTrack):
41017         * platform/mediastream/MediaStreamDescriptor.h:
41018         (WebCore::MediaStreamDescriptorClient::~MediaStreamDescriptorClient):
41019         (WebCore::MediaStreamDescriptor::client):
41020         (WebCore::MediaStreamDescriptor::setClient):
41021         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
41022         (MediaStreamDescriptor):
41023
41024 2012-10-19  Shinya Kawanaka  <shinyak@chromium.org>
41025
41026         Elements assigned to <shadow> should not be reprojected.
41027         https://bugs.webkit.org/show_bug.cgi?id=99680
41028
41029         Reviewed by Dimitri Glazkov.
41030
41031         In the current spec, we don't have shadow reprojection, i.e. elements assigned to <shadow> should not be
41032         reprojected to content. However, we can select them by <shadow>.
41033
41034         Tests: fast/dom/shadow/content-reprojection-complex.html
41035                fast/dom/shadow/content-reprojection-shadow.html
41036                fast/dom/shadow/shadow-reprojection-prohibited.html
41037
41038         * html/shadow/ContentDistributor.cpp:
41039         (WebCore::ContentDistributor::distribute): When a node is <shadow>, we should not add elements assigned to <shadow>
41040         to POOL. Instead, <shadow> itself should be added to POOL.
41041         * html/shadow/HTMLContentElement.h:
41042         (WebCore::isHTMLContentElement):
41043         (WebCore):
41044
41045 2012-10-19  Chris Fleizach  <cfleizach@apple.com>
41046
41047         VO issues with hidden <legend> and last explicitly labelled element within a group <fieldset>
41048         https://bugs.webkit.org/show_bug.cgi?id=96325
41049
41050         Reviewed by Beth Dakin.
41051
41052          When finding a <legend> for accessibility, we need to consider those that are offscreen. This patch
41053          modifies the original findLegend method to take a parameter to determine what should be done.
41054
41055         Test: accessibility/hidden-legend.html
41056
41057         * accessibility/AccessibilityRenderObject.cpp:
41058         (WebCore::AccessibilityRenderObject::titleUIElement):
41059         * rendering/RenderFieldset.cpp:
41060         (WebCore::RenderFieldset::findLegend):
41061         * rendering/RenderFieldset.h:
41062
41063 2012-10-17  Chris Fleizach  <cfleizach@apple.com>
41064
41065         AX: Refactor accessibility name computation so it's more platform independent
41066         https://bugs.webkit.org/show_bug.cgi?id=99502
41067
41068         Reviewed by Beth Dakin.
41069
41070         The current model of determining the accessible text for an object has a lot of Mac biases built in
41071         due to legacy implementation. 
41072
41073         This change categorizes and orders accessibility text based on WAI-ARIA text computation rules and then
41074         allows the platform (only Mac right now) to decide how best to apply that text to its own AX API.
41075         http://www.w3.org/TR/wai-aria/roles#textalternativecomputation
41076
41077         This change tried very hard not to change any test behavior, even though it exposed a number of weird
41078         edge cases where we were treating attributes differently based on element type. 
41079
41080         Future patches will resolve those discrepancies.
41081
41082         * accessibility/AccessibilityImageMapLink.cpp:
41083         (WebCore::AccessibilityImageMapLink::accessibilityText):
41084         * accessibility/AccessibilityImageMapLink.h:
41085         (AccessibilityImageMapLink):
41086         * accessibility/AccessibilityMediaControls.cpp:
41087         (WebCore::AccessibilityMediaControl::accessibilityText):
41088         * accessibility/AccessibilityMediaControls.h:
41089         (AccessibilityMediaControl):
41090         (WebCore::AccessibilityMediaTimeDisplay::isMediaControlLabel):
41091         * accessibility/AccessibilityNodeObject.cpp:
41092         (WebCore::AccessibilityNodeObject::titleElementText):
41093         (WebCore::AccessibilityNodeObject::accessibilityText):
41094         (WebCore::AccessibilityNodeObject::ariaLabeledByText):
41095         (WebCore::AccessibilityNodeObject::alternativeText):
41096         (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
41097         (WebCore::AccessibilityNodeObject::visibleText):
41098         (WebCore::AccessibilityNodeObject::helpText):
41099         (WebCore::AccessibilityNodeObject::ariaDescribedByAttribute):
41100         * accessibility/AccessibilityNodeObject.h:
41101         (AccessibilityNodeObject):
41102         * accessibility/AccessibilityObject.h:
41103         (AccessibilityText):
41104         (WebCore::AccessibilityText::AccessibilityText):
41105         (WebCore::AccessibilityObject::isMediaControlLabel):
41106         (AccessibilityObject):
41107         (WebCore::AccessibilityObject::accessibilityText):
41108         (WebCore::AccessibilityObject::setAccessibleName):
41109         (WebCore::AccessibilityObject::accessibilityDescription):
41110         (WebCore::AccessibilityObject::title):
41111         (WebCore::AccessibilityObject::helpText):
41112         (WebCore::AccessibilityObject::stringValue):
41113         (WebCore::AccessibilityObject::textUnderElement):
41114         (WebCore::AccessibilityObject::text):
41115         (WebCore::AccessibilityObject::textLength):
41116         (WebCore::AccessibilityObject::setRoleValue):
41117         (WebCore::AccessibilityObject::roleValue):
41118         (WebCore::AccessibilityObject::selection):
41119         (WebCore::AccessibilityObject::hierarchicalLevel):
41120         * accessibility/AccessibilityRenderObject.cpp:
41121         * accessibility/AccessibilityRenderObject.h:
41122         (AccessibilityRenderObject):
41123         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41124         (-[WebAccessibilityObjectWrapper titleTagShouldBeUsedInDescriptionField]):
41125         (-[WebAccessibilityObjectWrapper accessibilityTitle]):
41126         (-[WebAccessibilityObjectWrapper accessibilityDescription]):
41127         (-[WebAccessibilityObjectWrapper accessibilityHelpText]):
41128         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
41129         * platform/LocalizedStrings.cpp:
41130         (WebCore::localizedMediaControlElementHelpText):
41131
41132 2012-10-19  Kent Tamura  <tkent@chromium.org>
41133
41134         Use Localizer::monthFormat to construct input[type=month] UI
41135         https://bugs.webkit.org/show_bug.cgi?id=99818
41136
41137         Reviewed by Kentaro Hara.
41138
41139         Use an LDML format returned by Localizer::monthFormat for
41140         input[type=month] UI.
41141
41142         Because the format may contain symbolic month names and symbolic
41143         stand-alone month names, we need to add:
41144          - Symbolic/numeric detection in DateTimeEditBuilder
41145          - Normal/stand-alone detection in DateTimeEditBuilder
41146          - Symbolic edit field for months
41147
41148         Test: fast/forms/month-multiple-fields/month-multiple-fields-appearance-l10n.html,
41149               fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
41150
41151         * html/MonthInputType.cpp:
41152         (WebCore::MonthInputType::setupLayoutParameters):
41153         Use Localizer::monthFormat.
41154
41155         * html/shadow/DateTimeEditElement.cpp:
41156         (WebCore::DateTimeEditBuilder::visitField):
41157         - If the number of continuous field character is greater than 2, use
41158         DateTimeSymbolicMonthFieldElement.
41159         - Supports stand-alone month field.
41160
41161         * html/shadow/DateTimeFieldElements.h:
41162         (DateTimeSymbolicMonthFieldElement): Added. A subclass of DateTimeSymbolicFieldElement.
41163         * html/shadow/DateTimeFieldElements.cpp:
41164         (WebCore::DateTimeSymbolicMonthFieldElement::DateTimeSymbolicMonthFieldElement):
41165         Added.
41166         (WebCore::DateTimeSymbolicMonthFieldElement::create): Added.
41167         (WebCore::DateTimeSymbolicMonthFieldElement::populateDateTimeFieldsState):
41168         We need to add 1 because the internal integer representation is 0-based
41169         and DateTimeFieldsState uses 1-based month.
41170         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDate):
41171         DateComponents::month is 0-based.
41172         (WebCore::DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState):
41173         We need to subtract 1 because the internal integer representation is 0-based
41174         and DateTimeFieldsState uses 1-based month.
41175
41176         * html/shadow/DateTimeSymbolicFieldElement.h:
41177         (WebCore::DateTimeSymbolicFieldElement::symbolsSize):
41178         Added for DateTimeSymbolicMonthFieldElement::setValueAsDateTimeFieldsState.
41179
41180 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41181
41182         Web Inspector: inspector/styles/styles-history.html is failing Text on Windows and Linux
41183         https://bugs.webkit.org/show_bug.cgi?id=99519
41184
41185         Reviewed by Alexander Pavlov.
41186
41187         Extracted _styleContentSet callback in a class method to make it sniffable by tests.
41188
41189         * inspector/front-end/StylesSourceMapping.js:
41190         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
41191         (WebInspector.StyleFile.prototype._styleContentSet):
41192
41193 2012-10-19  Pavel Feldman  <pfeldman@chromium.org>
41194
41195         Web Inspector: add object-src 'none' to the inspector.html
41196         https://bugs.webkit.org/show_bug.cgi?id=99728
41197
41198         Reviewed by Vsevolod Vlasov.
41199
41200         * inspector/front-end/inspector.html:
41201
41202 2012-10-19  Vsevolod Vlasov  <vsevik@chromium.org>
41203
41204         Web Inspector: Get rid of isSnippetEvaluation flag on UISourceCode
41205         https://bugs.webkit.org/show_bug.cgi?id=99823
41206
41207         Reviewed by Yury Semikhatsky.
41208
41209         Replaced isSnippetEvaluation flag with a pair of isSnippet and isTemporary set.
41210
41211         * inspector/front-end/ResourceScriptMapping.js:
41212         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
41213         * inspector/front-end/ScriptSnippetModel.js:
41214         (WebInspector.ScriptSnippetModel.prototype._releasedUISourceCodes):
41215         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
41216         * inspector/front-end/ScriptsNavigator.js:
41217         (WebInspector.ScriptsNavigator.prototype._snippetsNavigatorViewForUISourceCode):
41218         (WebInspector.ScriptsNavigator.prototype.revealUISourceCode):
41219         * inspector/front-end/ScriptsPanel.js:
41220         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
41221         * inspector/front-end/Workspace.js:
41222         (WebInspector.Project.prototype.addTemporaryUISourceCode):
41223
41224 2012-10-19  Alexander Pavlov  <apavlov@chromium.org>
41225
41226         Web Inspector: Invalid Regex in SASSSourceMapping/didRequestContent, breaks Support for Sass experiment
41227         https://bugs.webkit.org/show_bug.cgi?id=99729
41228
41229         Reviewed by Vsevolod Vlasov.
41230
41231         Decode only the first line number digit written in a six-character escaped Unicode format.
41232
41233         * inspector/front-end/SASSSourceMapping.js:
41234         (WebInspector.SASSSourceMapping.prototype._resourceAdded.didRequestContent):
41235         (WebInspector.SASSSourceMapping.prototype._resourceAdded):
41236
41237 2012-10-19  Tommy Widenflycht  <tommyw@google.com>
41238
41239         MediaStream API: Update the RuntimeEnabledFeatures flags
41240         https://bugs.webkit.org/show_bug.cgi?id=99714
41241
41242         Reviewed by Adam Barth.
41243
41244         Updating the RuntimeEnabledFeatures flags to match reality:
41245         isMediaStreamEnabled and isPeerConnectionEnabled should be true by default and
41246         isDeprecatedPeerConnectionEnabled false.
41247
41248         Patch covered by existing tests.
41249
41250         * bindings/generic/RuntimeEnabledFeatures.cpp:
41251         (WebCore):
41252
41253 2012-10-19  Adam Barth  <abarth@webkit.org>
41254
41255         [V8] Simplify GCPrologueVisitor
41256         https://bugs.webkit.org/show_bug.cgi?id=99819
41257
41258         Reviewed by Kentaro Hara.
41259
41260         Previously, GCPrologueVisitor used a complicated traits-based template
41261         design. That's not necessary. We can just implement it directly without
41262         template magic.
41263
41264         The one subtly here is that MessagePort is not actually a subclass of
41265         ActiveDOMObject. The next stage of this cleanup is to make MessagePort
41266         inherit from ActiveDOMObject and remove this special case entirely.
41267
41268         * bindings/v8/V8GCController.cpp:
41269         (WebCore::EnsureWeakDOMNodeVisitor::visitDOMWrapper):
41270         (WebCore):
41271         (WebCore::ActiveDOMObjectPrologueVisitor::visitDOMWrapper):
41272         (WebCore::NodeVisitor::visitDOMWrapper):
41273         (WebCore::V8GCController::gcPrologue):
41274
41275 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41276
41277         Web Inspector: Saving HAR, snapshots and timeline data do not work in remote debugging mode
41278         https://bugs.webkit.org/show_bug.cgi?id=99179
41279
41280         Reviewed by Yury Semikhatsky.
41281
41282         Added method "close" to InspectorFrontendHost.
41283         Symantically, this method forces to flush all unsaved buffers for
41284         specified file. In native implementation this turns to be no-op.
41285
41286         In stub implementation "close" causes compilation of blob object an
41287         navigating to blob-schema url.
41288
41289         Removed "canAppend", as appending in now suppurted
41290         by all implementations.
41291
41292         Repaced schema "data" with "blob" in InspectorFrontendHostStub "save"
41293         to avoid out-of-memory errors.
41294
41295         * inspector/InspectorFrontendHost.cpp:
41296         (WebCore::InspectorFrontendHost::close): Compiles blob object and
41297         navigates to blob-object url.
41298         (WebCore):
41299         * inspector/InspectorFrontendHost.h: Added "close" method.
41300         * inspector/InspectorFrontendHost.idl: Ditto.
41301         * inspector/front-end/FileManager.js:
41302         (WebInspector.FileManager.prototype.close): Proxy to InspectorFrontend.
41303         * inspector/front-end/FileUtils.js:
41304         (WebInspector.FileOutputStream.prototype.close):
41305         Invoke "close" on FileManager.
41306         (WebInspector.FileOutputStream.prototype._onAppendDone): Ditto.
41307         * inspector/front-end/HandlerRegistry.js: Added mandatory "close" call.
41308         * inspector/front-end/HeapSnapshotView.js:
41309         (WebInspector.HeapProfileHeader.prototype.canSaveToFile): Fixed check.
41310         * inspector/front-end/InspectorFrontendHostStub.js:
41311         (.WebInspector.InspectorFrontendHostStub):
41312         Added "appendable" behaviour emulation.
41313         * inspector/front-end/SourceFrame.js: Added mandatory "close" call.
41314         * inspector/front-end/externs.js: Replaced "canAppend" with "close"
41315
41316 2012-10-18  Dominic Mazzoni  <dmazzoni@google.com>
41317
41318         AX: labelForElement is slow when there are a lot of DOM elements
41319         https://bugs.webkit.org/show_bug.cgi?id=97825
41320
41321         Reviewed by Ryosuke Niwa.
41322
41323         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
41324         quickly map from an id to the label for that id. This speeds up
41325         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
41326         when accessibility was on.
41327
41328         Tests: accessibility/title-ui-element-correctness.html
41329                perf/accessibility-title-ui-element.html
41330
41331         * accessibility/AccessibilityNodeObject.cpp:
41332         (WebCore::AccessibilityNodeObject::labelForElement):
41333         * dom/DocumentOrderedMap.cpp:
41334         (WebCore::keyMatchesLabelForAttribute):
41335         (WebCore):
41336         (WebCore::DocumentOrderedMap::get):
41337         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
41338         * dom/DocumentOrderedMap.h:
41339         (DocumentOrderedMap):
41340         * dom/Element.cpp:
41341         (WebCore::Element::insertedInto):
41342         (WebCore::Element::removedFrom):
41343         (WebCore::Element::updateLabel):
41344         (WebCore):
41345         (WebCore::Element::willModifyAttribute):
41346         * dom/Element.h:
41347         (Element):
41348         * dom/TreeScope.cpp:
41349         (WebCore::TreeScope::TreeScope):
41350         (WebCore::TreeScope::destroyTreeScopeData):
41351         (WebCore::TreeScope::addLabel):
41352         (WebCore):
41353         (WebCore::TreeScope::removeLabel):
41354         (WebCore::TreeScope::labelElementForId):
41355         * dom/TreeScope.h:
41356         (WebCore):
41357         (TreeScope):
41358         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
41359
41360 2012-10-19  Eugene Klyuchnikov  <eustas.bug@gmail.com>
41361
41362         Web Inspector: Update localizedStrings.js
41363         https://bugs.webkit.org/show_bug.cgi?id=99701
41364
41365         Reviewed by Yury Semikhatsky.
41366
41367         Fixed most of missing strings and orphans.
41368
41369         * English.lproj/localizedStrings.js:
41370         * inspector/front-end/SettingsScreen.js:
41371
41372 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
41373
41374         Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
41375         https://bugs.webkit.org/show_bug.cgi?id=99457
41376
41377         Reviewed by Yury Semikhatsky.
41378
41379         countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
41380         getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
41381
41382         * inspector/InspectorClient.h:
41383         (WebCore::InspectorClient::dumpUncountedAllocatedObjects):
41384         * inspector/InspectorMemoryAgent.cpp:
41385         (WebCore::reportJSHeapInfo):
41386         (WebCore::reportRenderTreeInfo):
41387         (WebCore):
41388         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
41389         * inspector/MemoryInstrumentationImpl.cpp:
41390         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
41391         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage):
41392         * inspector/MemoryInstrumentationImpl.h:
41393         (MemoryInstrumentationClientImpl):
41394         (WebCore::MemoryInstrumentationClientImpl::countedObjects):
41395
41396 2012-10-19  Adam Barth  <abarth@webkit.org>
41397
41398         [V8] DOMObjectVisitor does nothing
41399         https://bugs.webkit.org/show_bug.cgi?id=99812
41400
41401         Reviewed by Kentaro Hara.
41402
41403         This code doesn't do anything, even in Debug! We should just remove it.
41404
41405         * bindings/v8/V8GCController.cpp:
41406         (WebCore):
41407         (WebCore::V8GCController::gcPrologue):
41408         (WebCore::V8GCController::gcEpilogue):
41409
41410 2012-10-19  Adam Barth  <abarth@webkit.org>
41411
41412         [V8] Remove unused typedef from V8GCController.cpp
41413         https://bugs.webkit.org/show_bug.cgi?id=99808
41414
41415         Reviewed by Kentaro Hara.
41416
41417         This typedef is not used.
41418
41419         * bindings/v8/V8GCController.cpp:
41420
41421 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
41422
41423         Web Inspector: [Styles] Property considered overridden if it is non-inherited important property in inherited style
41424         https://bugs.webkit.org/show_bug.cgi?id=99720
41425
41426         Reviewed by Yury Semikhatsky.
41427
41428         Non-inherited properties are now disregarded in inherited styles.
41429
41430         * inspector/front-end/StylesSidebarPane.js:
41431         (WebInspector.StylesSidebarPane.prototype._refreshStyleRules):
41432         (WebInspector.StylesSidebarPane.prototype._markUsedProperties):
41433
41434 2012-10-18  Adam Barth  <abarth@webkit.org>
41435
41436         [V8] GrouperVisitor is secretly two entirely separate objects
41437         https://bugs.webkit.org/show_bug.cgi?id=99810
41438
41439         Reviewed by Kentaro Hara.
41440
41441         We can separate out the two things that GrouperVisitor is trying to do
41442         because they have nothing to do with each other.
41443
41444         * bindings/v8/V8GCController.cpp:
41445         (ObjectVisitor):
41446         (WebCore::ObjectVisitor::visitDOMWrapper):
41447         (WebCore):
41448         (WebCore::V8GCController::gcPrologue):
41449
41450 2012-10-18  Kiran Muppala  <cmuppala@apple.com>
41451
41452         Automatically start plugins created within a user gesture, skipping snapshotting
41453         https://bugs.webkit.org/show_bug.cgi?id=99778
41454
41455         Reviewed by Alexey Proskuryakov.
41456
41457         If a user gesture is being processed, do not set the display state of
41458         HTMLPluginImageElement to WaitingForSnapshot.
41459
41460         No new tests, since it only affects when plugins switch from snapshot to running
41461         state.  Does not affect rendering of other elements.
41462
41463         * html/HTMLPlugInImageElement.cpp:
41464         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
41465
41466 2012-10-18  Kent Tamura  <tkent@chromium.org>
41467
41468         Add shortMonthLabels and shortStandAloneMonthLabels to Localizer
41469         https://bugs.webkit.org/show_bug.cgi?id=99787
41470
41471         Reviewed by Kentaro Hara.
41472
41473         This is going to be used for input[type=month] UI. This doesn't affect
41474         any bahevior yet.
41475
41476         Tests: Add some tests to Source/WebKit/chromium/tests/, and will add
41477         layout tests later.
41478
41479         * platform/text/Localizer.h:
41480         (Localizer): Add shortMonthLabels and shortStandAloneMonthLabels as pure
41481         virtual member functions.
41482
41483         * platform/text/LocaleICU.h:
41484         (LocaleICU): Declare shortMonthLabels and shortStandAloneMonthLabels.
41485         * platform/text/LocaleICU.cpp:
41486         (WebCore::LocaleICU::shortMonthLabels): Added.
41487         (WebCore::LocaleICU::shortStandAloneMonthLabels): Added.
41488
41489         * platform/text/LocaleNone.cpp:
41490         (LocaleNone): Declare shortMonthLabels and shortStandAloneMonthLabels.
41491         (WebCore::LocaleNone::shortMonthLabels):
41492         Added. Always returns English labels.
41493         (WebCore::LocaleNone::shortStandAloneMonthLabels):
41494         Addes. Just calls shortMonthLabels.
41495
41496         * platform/text/LocaleWin.h:
41497         (LocaleWin): Declare shortMonthLabels and shortStandAloneMonthLabels.
41498         * platform/text/LocaleWin.cpp:
41499         (WebCore::LocaleWin::shortMonthLabels): Added.
41500         (WebCore::LocaleWin::shortStandAloneMonthLabels):
41501         Added. Always returns shortMonthLabels.
41502
41503         * platform/text/mac/LocaleMac.h:
41504         (LocaleMac): Declare shortMonthLabels and shortStandAloneMonthLabels.
41505         * platform/text/mac/LocaleMac.mm:
41506         (WebCore::LocaleMac::shortMonthLabels): Added.
41507         (WebCore::LocaleMac::shortStandAloneMonthLabels): Added.
41508
41509 2012-10-18  Kunihiko Sakamoto  <ksakamoto@chromium.org>
41510
41511         Implement value sanitization algorithm for type=datetime
41512         https://bugs.webkit.org/show_bug.cgi?id=76893
41513
41514         Reviewed by Kent Tamura.
41515
41516         Implement the value sanitization algorithm for type=datetime that adjusts
41517         the value to a valid normalized forced-UTC global date and time string.
41518         See http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#valid-normalized-forced-utc-global-date-and-time-string
41519
41520         Test: fast/forms/datetime/datetime-value-sanitization.html
41521
41522         * html/DateTimeInputType.cpp:
41523         (WebCore::DateTimeInputType::sanitizeValue): Implemented.
41524         (WebCore):
41525         * html/DateTimeInputType.h:
41526         (DateTimeInputType): Add sanitizeValue.
41527         * platform/DateComponents.cpp:
41528         (WebCore::DateComponents::addMinute): Fixed a bug that caused wrong adjustment
41529         of timezone offset (e.g. 2012-10-17T01:00+01:00 -> 2012-10-17T01:-60Z).
41530
41531 2012-10-18  Byungwoo Lee  <bw80.lee@samsung.com>
41532
41533         Fix build warning.
41534         https://bugs.webkit.org/show_bug.cgi?id=99788
41535
41536         Reviewed by Kentaro Hara.
41537
41538         Use UNUSED_PARAM macro for removing -Wunused-parameter.
41539
41540         * rendering/RenderLayer.cpp:
41541         (WebCore::RenderLayer::currentTransform):
41542
41543 2012-10-18  Benjamin Poulain  <bpoulain@apple.com>
41544
41545         [WK2] WebKit2 does not build without PLUGIN_PROCESS on Mac
41546         https://bugs.webkit.org/show_bug.cgi?id=99771
41547
41548         Reviewed by Anders Carlsson.
41549
41550         * WebCore.exp.in: The symbol is used by WebCore Test Support, move it
41551         to the general section.
41552
41553 2012-10-18  Adam Barth  <abarth@webkit.org>
41554
41555         [V8] fast/dom/gc-9.html fails for document.styleSheets
41556         https://bugs.webkit.org/show_bug.cgi?id=99786
41557
41558         Reviewed by Kentaro Hara.
41559
41560         V8 needs to know about this IDL attribute as well.
41561
41562         * css/StyleSheetList.idl:
41563
41564 2012-10-18  Adam Barth  <abarth@webkit.org>
41565
41566         [V8] fast/dom/gc-9.html fails for document.implementation
41567         https://bugs.webkit.org/show_bug.cgi?id=99783
41568
41569         Reviewed by Kentaro Hara.
41570
41571         In order to correctly manage the lifetime of document.implementation,
41572         we need to implement GenerateIsReachable=ImplDocument.
41573
41574         * bindings/scripts/CodeGeneratorV8.pm:
41575         (GenerateVisitDOMWrapper):
41576         * bindings/scripts/IDLAttributes.txt:
41577         * dom/DOMImplementation.idl:
41578
41579 2012-10-18  Chris Fleizach  <cfleizach@apple.com>
41580
41581         AX: Crashes in WebProcess at com.apple.WebCore: -[AccessibilityObjectWrapper remoteAccessibilityParentObject] + 78
41582         https://bugs.webkit.org/show_bug.cgi?id=96443
41583
41584         Reviewed by Beth Dakin.
41585
41586         Separate out the chain of calls so that the number of times document() is called is reduced and it will be easier
41587         to determine which line this crash is happening on.
41588
41589         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
41590         (-[WebAccessibilityObjectWrapper remoteAccessibilityParentObject]):
41591
41592 2012-10-18  Alec Flett  <alecflett@chromium.org>
41593
41594         IndexedDB: Refactor IDBDatabaseBackendImpl to use IDBDatabaseMetadata
41595         https://bugs.webkit.org/show_bug.cgi?id=99773
41596
41597         Reviewed by Tony Chang.
41598
41599         Refactor to begin separating out metadata from stateful backend objects,
41600         in preparation for https://bugs.webkit.org/show_bug.cgi?id=99774.
41601
41602         Also includes some #include dependency cleanup so that the backing store
41603         depends less on the stateful backend objects.
41604
41605         No new tests as this is purely a refactor.
41606
41607         * Modules/indexeddb/IDBBackingStore.h:
41608         (WebCore):
41609         (IDBBackingStore):
41610         * Modules/indexeddb/IDBCursor.h:
41611         * Modules/indexeddb/IDBCursorBackendImpl.h:
41612         (WebCore):
41613         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
41614         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
41615         (WebCore::IDBDatabaseBackendImpl::openInternal):
41616         (WebCore::IDBDatabaseBackendImpl::metadata):
41617         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
41618         (WebCore::IDBDatabaseBackendImpl::setVersion):
41619         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
41620         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
41621         (WebCore::IDBDatabaseBackendImpl::processPendingCalls):
41622         (WebCore::IDBDatabaseBackendImpl::openConnection):
41623         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
41624         (WebCore::IDBDatabaseBackendImpl::openConnectionWithVersion):
41625         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
41626         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
41627         (WebCore::IDBDatabaseBackendImpl::resetVersion):
41628         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
41629         (WebCore::IDBDatabaseBackendImpl::id):
41630         (IDBDatabaseBackendImpl):
41631         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
41632         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
41633         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
41634         * Modules/indexeddb/IDBLevelDBBackingStore.h:
41635         (IDBLevelDBBackingStore):
41636         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
41637         * Modules/indexeddb/IDBTransaction.h:
41638         (WebCore):
41639
41640 2012-10-18  Peter Kasting  <pkasting@google.com>
41641
41642         [Skia] Set m_hasAlpha correctly in ImageFrame::copyBitmapData.
41643         https://bugs.webkit.org/show_bug.cgi?id=99781
41644
41645         Reviewed by Adam Barth.
41646
41647         No tests, since the actual effects of this bug are fickle and it's not
41648         clear how to extract and check particular subframes of an animated GIF.
41649
41650         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
41651         (WebCore::ImageFrame::copyBitmapData):
41652
41653 2012-10-18  Pan Deng  <pan.deng@intel.com>
41654
41655         [Resource Timing]Implementation of resource timing buffer size restriction functionality
41656         https://bugs.webkit.org/show_bug.cgi?id=84885.
41657
41658         Reviewed by Tony Gentilcore.
41659
41660         http://www.w3.org/TR/2012/CR-resource-timing-20120522/
41661         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. 
41662
41663         Tests: http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_populate_entries.html
41664                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_full_when_shrink_buffer_size.html
41665                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_buffer_size_restriction.html
41666                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_clear_resource_timing_functionality.html
41667                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_on_shrink_buffer_size.html
41668                http/tests/w3c/webperf/submission/Intel/resource-timing/test_resource_timing_store_and_clear_during_callback.html
41669
41670         * page/Performance.cpp:
41671         (WebCore):
41672         (WebCore::Performance::Performance):
41673         (WebCore::Performance::webkitSetResourceTimingBufferSize):
41674         (WebCore::Performance::addResourceTiming):
41675         (WebCore::Performance::isResourceTimingBufferFull):
41676         * page/Performance.h:
41677         (Performance):
41678
41679 2012-10-18  Ryosuke Niwa  <rniwa@webkit.org>
41680
41681         REGRESSION(r130411): Copying & pasting the first line of text can move caret to the end of text area
41682         https://bugs.webkit.org/show_bug.cgi?id=99663
41683
41684         Reviewed by Enrica Casucci and Levi Weintraub.
41685
41686         The bug was caused by positionOnlyToBeUpdated's offset not being shifted correctly in
41687         ReplaceSelectionCommand::mergeTextNodesAroundPosition. Suppose we have text nodes t1 and t2 and
41688         positionOnlyToBeUpdated had offset k in t2. When t2 is merged into t1, positionOnlyToBeUpdated should be
41689         moved to (t1, n + k) where n is the ORIGINAL length of t1 before t2 is merged. But we were using
41690         the length after t2 is merged.
41691
41692         Fixed the bug by saving the original length of t1 and using that in the offset adjustment.
41693         Also use the right offset.
41694
41695         Test: editing/pasteboard/copy-paste-first-line-in-textarea.html
41696
41697         * editing/ReplaceSelectionCommand.cpp:
41698         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
41699
41700 2012-10-18  Claudio Saavedra  <csaavedra@igalia.com>
41701
41702         [GTK] Invalid read from WebKit::DOMObjectCache::clearByFrame
41703         https://bugs.webkit.org/show_bug.cgi?id=82882
41704
41705         Reviewed by Xan Lopez.
41706
41707         Based on a patch by Milan Crha <mcrha@redhat.com>
41708
41709         Prevent an invalid access to a pointer while clearing the DOM
41710         object cache.
41711         * bindings/gobject/DOMObjectCache.cpp:
41712         (WebKit::DOMObjectCache::clearByFrame): Prevent an invalid access.
41713
41714 2012-10-18  Sheriff Bot  <webkit.review.bot@gmail.com>
41715
41716         Unreviewed, rolling out r131810.
41717         http://trac.webkit.org/changeset/131810
41718         https://bugs.webkit.org/show_bug.cgi?id=99762
41719
41720         Broke linux debug webkit_unit_tests (Requested by
41721         danakj|gardening on #webkit).
41722
41723         * WebCore.gypi:
41724         * platform/graphics/ImageSource.cpp:
41725         (WebCore::ImageSource::setData):
41726         * platform/graphics/ImageSource.h:
41727         (WebCore):
41728         (ImageSource):
41729         * platform/graphics/chromium/DeferredImageDecoder.cpp: Removed.
41730         * platform/graphics/chromium/DeferredImageDecoder.h: Removed.
41731         * platform/graphics/chromium/ImageDecodingStore.cpp: Removed.
41732         * platform/graphics/chromium/ImageDecodingStore.h: Removed.
41733         * platform/graphics/chromium/ImageFrameGenerator.cpp: Removed.
41734         * platform/graphics/chromium/ImageFrameGenerator.h: Removed.
41735         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Removed.
41736         * platform/graphics/chromium/LazyDecodingPixelRef.h: Removed.
41737         * platform/graphics/chromium/ScaledImageFragment.cpp: Removed.
41738         * platform/graphics/chromium/ScaledImageFragment.h: Removed.
41739         * platform/graphics/skia/NativeImageSkia.cpp:
41740         (WebCore::NativeImageSkia::resizedBitmap):
41741         * platform/image-decoders/ImageDecoder.h:
41742         (ImageFrame):
41743
41744 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
41745
41746         MediaStream API: Do some cleanup in the chromium WebKit API
41747         https://bugs.webkit.org/show_bug.cgi?id=99713
41748
41749         Reviewed by Adam Barth.
41750
41751         Removing the deprecated version of WebMediaStreamDescriptor::initialize.
41752
41753         No testing needed since only an unused function is removed.
41754
41755         * platform/chromium/support/WebMediaStreamDescriptor.cpp:
41756
41757 2012-10-18  Alpha Lam  <hclam@chromium.org>
41758
41759         [chromium] Implement deferred image decoding
41760         https://bugs.webkit.org/show_bug.cgi?id=94240
41761
41762         Reviewed by Stephen White.
41763
41764         Objectives:
41765
41766         To record image decoding operations during painting and to defer
41767         decoding operations until rasterization.
41768
41769         Rationale:
41770
41771         This is a key feature that enables impl-side painting which requires
41772         fast recording of drawing operations. The existing decode-on-draw
41773         restricts that recording has to block on expensive decoding operations.
41774         This change allows recording of image decoding operations during paint
41775         time.
41776
41777         Design:
41778
41779         Image decoding happens when a BitmapImage is drawn into a
41780         GraphicsContext. When per-tile painting is enabled GraphicsContext
41781         is backed by SkCanvas in recording mode. This SkCanvas records drawing
41782         and image decoding operations to minimize recording time.
41783
41784         An image decoding operation is recorded as a SkPixelRef object
41785         implemented by LazyDecodingPixelRef. This object references raw encoded
41786         data, regions to be decoded and scaling information.
41787
41788         When used in conjunction with per-tile painting this feature defers
41789         image decoding until the SkCanvas referencing the image is rasterized.
41790
41791         Both recording and rasterization happen on the main thread.
41792
41793         Performance Impact:
41794
41795         This feature is enabled by WebKit::setDeferredImageDecodingEnabled()
41796         and does not have an impact when disabled.
41797
41798         This feature is disabled by default.
41799
41800         Upcoming Changes:
41801
41802         1. Implement a full-featured image cache in ImageDecodingStore.
41803         2. Allow rasterization and decoding on impl thread.
41804
41805         Classes Involved:
41806
41807         BitmapImage
41808
41809         BitmapImage is the entry point for deferred image decoding. When
41810         drawing a BitmapImage into a GraphicsContext it makes a request to
41811         create a NativeImageSkia. We substitute the content in NativeImageSkia
41812         such that it is lazily decoded.
41813
41814         DeferredImageDecoder
41815
41816         This is the platform implementation of a image decoder for Chromium.
41817         This is a bridge layer that either delegates calls to the actual
41818         ImageDecoder or create a lazily-decoded SkBitmap and delegates calls
41819         to ImageDecodingStore.
41820
41821         ImageDecodingStore
41822
41823         This object manages all encoded images. It keeps track of encoded
41824         data and the corresponding ImageDecoder for doing actual decoding. It
41825         is also responsible for generating lazily decoded SkBitmaps. This
41826         SkBitmap contains a LazyDecodingPixelRef object which references to an
41827         image entry in ImageDecodingStore.
41828
41829         ScaledImageFragment
41830
41831         A container for a scaled image fragment. In addition to bitmap pixels
41832         it contains information about the ID of the image, scale and clipping.
41833
41834         ImageFrameGenerator
41835
41836         This object is responsible for generating decoded pixels. It is also
41837         a container for encoded image data and corresponding image decoder.
41838
41839         LazyDecodingPixelRef
41840
41841         This object is embedded in a SkBitmap to enable lazy decoding. When
41842         SkBitmap needs to access pixels LazyDecodingPixelRef is locked. It
41843         contains information to locate an image and scaling info, these
41844         information is submitted to ImageDecodingStore to access actual pixels.
41845
41846         Layout tests. There are about 80 tests in this virtual test suite
41847         running this feature in this directory:
41848
41849         platform/chromium/virtual/deferred/fast/images
41850
41851         Unit tests. Added DeferredImageDecoderTest to verify deferred
41852         image decoding behavior.
41853
41854         * WebCore.gypi:
41855         * platform/graphics/ImageSource.cpp:
41856         (WebCore::ImageSource::setData):
41857         * platform/graphics/ImageSource.h:
41858         (WebCore):
41859         (ImageSource):
41860         * platform/graphics/chromium/DeferredImageDecoder.cpp: Added.
41861         (WebCore):
41862         (WebCore::DeferredImageDecoder::DeferredImageDecoder):
41863         (WebCore::DeferredImageDecoder::~DeferredImageDecoder):
41864         (WebCore::DeferredImageDecoder::create):
41865         (WebCore::DeferredImageDecoder::createForTesting):
41866         (WebCore::DeferredImageDecoder::filenameExtension):
41867         (WebCore::DeferredImageDecoder::frameBufferAtIndex):
41868         (WebCore::DeferredImageDecoder::setData):
41869         (WebCore::DeferredImageDecoder::isSizeAvailable):
41870         (WebCore::DeferredImageDecoder::size):
41871         (WebCore::DeferredImageDecoder::frameSizeAtIndex):
41872         (WebCore::DeferredImageDecoder::frameCount):
41873         (WebCore::DeferredImageDecoder::repetitionCount):
41874         (WebCore::DeferredImageDecoder::clearFrameBufferCache):
41875         (WebCore::DeferredImageDecoder::frameHasAlphaAtIndex):
41876         (WebCore::DeferredImageDecoder::frameBytesAtIndex):
41877         * platform/graphics/chromium/DeferredImageDecoder.h: Added.
41878         (WebCore):
41879         (DeferredImageDecoder):
41880         * platform/graphics/chromium/ImageDecodingStore.cpp: Added.
41881         (WebCore::ImageDecodingStore::ImageDecodingStore):
41882         (WebCore):
41883         (WebCore::ImageDecodingStore::~ImageDecodingStore):
41884         (WebCore::ImageDecodingStore::instanceOnMainThread):
41885         (WebCore::ImageDecodingStore::initializeOnMainThread):
41886         (WebCore::ImageDecodingStore::shutdown):
41887         (WebCore::ImageDecodingStore::isLazyDecoded):
41888         (WebCore::ImageDecodingStore::createLazyDecodedSkBitmap):
41889         (WebCore::ImageDecodingStore::resizeLazyDecodedSkBitmap):
41890         (WebCore::ImageDecodingStore::setData):
41891         (WebCore::ImageDecodingStore::lockPixels):
41892         (WebCore::ImageDecodingStore::unlockPixels):
41893         (WebCore::ImageDecodingStore::frameGeneratorBeingDestroyed):
41894         (WebCore::ImageDecodingStore::calledOnValidThread):
41895         (WebCore::ImageDecodingStore::lookupFrameCache):
41896         (WebCore::ImageDecodingStore::deleteFrameCache):
41897         * platform/graphics/chromium/ImageDecodingStore.h: Added.
41898         (WebCore):
41899         (ImageDecodingStore):
41900         (WebCore::ImageDecodingStore::create):
41901         * platform/graphics/chromium/ScaledImageFragment.cpp: Added.
41902         (WebCore):
41903         (WebCore::ScaledImageFragment::~ScaledImageFragment):
41904         (WebCore::ScaledImageFragment::ScaledImageFragment):
41905         (WebCore::ScaledImageFragment::isEqual):
41906         * platform/graphics/chromium/ScaledImageFragment.h: Added.
41907         (WebCore):
41908         (ScaledImageFragment):
41909         (WebCore::ScaledImageFragment::create):
41910         (WebCore::ScaledImageFragment::bitmap):
41911         (WebCore::ScaledImageFragment::isComplete):
41912         * platform/graphics/chromium/ImageFrameGenerator.cpp: Added.
41913         (WebCore):
41914         (WebCore::ImageFrameGenerator::ImageFrameGenerator):
41915         (WebCore::ImageFrameGenerator::~ImageFrameGenerator):
41916         (WebCore::ImageFrameGenerator::decoder):
41917         (WebCore::ImageFrameGenerator::setData):
41918         * platform/graphics/chromium/ImageFrameGenerator.h: Added.
41919         (WebCore):
41920         (ImageFrameGenerator):
41921         (WebCore::ImageFrameGenerator::create):
41922         (WebCore::ImageFrameGenerator::size):
41923         (WebCore::ImageFrameGenerator::imageId):
41924         * platform/graphics/chromium/LazyDecodingPixelRef.cpp: Added.
41925         (WebCore):
41926         (WebCore::LazyDecodingPixelRef::LazyDecodingPixelRef):
41927         (WebCore::LazyDecodingPixelRef::~LazyDecodingPixelRef):
41928         (WebCore::LazyDecodingPixelRef::isScaled):
41929         (WebCore::LazyDecodingPixelRef::isClipped):
41930         (WebCore::LazyDecodingPixelRef::onLockPixels):
41931         (WebCore::LazyDecodingPixelRef::onUnlockPixels):
41932         (WebCore::LazyDecodingPixelRef::onLockPixelsAreWritable):
41933         * platform/graphics/chromium/LazyDecodingPixelRef.h: Added.
41934         (WebCore):
41935         (LazyDecodingPixelRef):
41936         (WebCore::LazyDecodingPixelRef::frameGenerator):
41937         * platform/graphics/skia/NativeImageSkia.cpp:
41938         (WebCore::NativeImageSkia::resizedBitmap):
41939         * platform/image-decoders/ImageDecoder.h:
41940         (ImageFrame):
41941         (WebCore::ImageFrame::setSkBitmap):
41942         (WebCore::ImageFrame::getSkBitmap):
41943
41944 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
41945
41946         [EFL] GraphicsContext3D::m_renderStyle is not initialized
41947         https://bugs.webkit.org/show_bug.cgi?id=99721
41948
41949         Reviewed by Antonio Gomes.
41950
41951         Initialize GraphicsContext3D::m_renderStyle.
41952
41953         No new tests, no new functionality.
41954
41955         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
41956         (WebCore::GraphicsContext3D::GraphicsContext3D):
41957
41958 2012-10-18  Max Vujovic  <mvujovic@adobe.com>
41959
41960         [CSS Shaders] Validate types of built-in vertex attributes
41961         https://bugs.webkit.org/show_bug.cgi?id=98972
41962
41963         Reviewed by Dean Jackson.
41964
41965         Reject custom filters in which the author defined built-in attributes with the wrong type.
41966         For example, the GLSL declaration "attribute float a_position" is incorrect because
41967         a_position should be a vec4, not a float.
41968
41969         Test: css3/filters/custom/invalid-custom-filter-attribute-types.html
41970
41971         * platform/graphics/ANGLEWebKitBridge.h:
41972         (WebCore::ANGLEShaderSymbol::isSampler):
41973             Add const qualifier to isSampler method.
41974         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
41975         (WebCore):
41976         (WebCore::builtInAttributeNameToTypeMap):
41977             New file static function. Returns a map of the CSS Custom Filters built-in attribute
41978             names and their expected types.
41979         (WebCore::validateSymbols):
41980             New file static function. Loop through all of the symbols. Reject the shader if we find
41981             a built-in attribute defined with the wrong type.
41982         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
41983             Call the new validateSymbols function. If it returns false, exit the constructor early,
41984             which rejects the program.
41985             Move the loop that checks if any uniform is a sampler into the the validateSymbols
41986             function.
41987
41988 2012-10-18  Mike Reed  <reed@google.com>
41989
41990         Handle if we fail to allocate nonPlatformCanvas in ImageBuffer constructor
41991         https://bugs.webkit.org/show_bug.cgi?id=99752
41992
41993         Reviewed by Stephen White.
41994
41995         Current code does not check if we were able to allocate the pixels, but still returns the canvas.
41996         However, the caller explicitly is checking for null on failure, so it will continue (and possibly
41997         crash later on).
41998         This change brings the nonPlatformCanvas behavior inline with createAcceleratedCanvas and
41999         TryCreateBitmapCanvas, both of which are also called by ImageBuffer's constructor.
42000
42001         No new tests. Existing tests exercise ImageBuffer constructor.
42002
42003         * platform/graphics/skia/ImageBufferSkia.cpp:
42004         (WebCore::createNonPlatformCanvas):
42005
42006 2012-10-18  Beth Dakin  <bdakin@apple.com>
42007
42008         https://bugs.webkit.org/show_bug.cgi?id=99668
42009         REGRESSION: Crash in 
42010         WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion
42011         -and corresponding-
42012         <rdar://problem/12491901>
42013
42014         Reviewed by Simon Fraser.
42015
42016         http://trac.webkit.org/changeset/130783 changed the lifetime of the 
42017         ScrollingStateTree's rootStateNode. Before that patch, the root state 
42018         node was never destroyed. It was just constantly re-used for 
42019         different RenderLayerBackings. This crash is just one of a few bugs 
42020         that has occurred because of that change. I have fixed the other bugs 
42021         individually, but I think that long-term, it is the safest solution 
42022         to go back to the original ownership model.
42023
42024         So this patch ensures that the state tree will always have a root 
42025         state node. Instead of destroying and re-creating the root node when 
42026         it's scroll ID changes, we just update the ID.
42027
42028         attachToStateTree() now takes an additional ID representing the ID of 
42029         the parent node.
42030         * page/scrolling/ScrollingCoordinator.h:
42031         (WebCore::ScrollingCoordinator::attachToStateTree):
42032
42033         Add a way to set the scrolling node ID.
42034         * page/scrolling/ScrollingStateNode.h:
42035         (WebCore::ScrollingStateNode::setScrollingNodeID):
42036
42037         This code that provided a way to mark all properties as having 
42038         changed was added in http://trac.webkit.org/changeset/130989 as a way 
42039         to ensure we would re-set ScrollingThread's nodes when we destroyed 
42040         and re-created the rootStateNode. Now that we are no longer 
42041         destroying and re-creating the rootStateNode, this code is no longer 
42042         necessary.
42043         * page/scrolling/ScrollingStateScrollingNode.cpp:
42044         * page/scrolling/ScrollingStateScrollingNode.h:
42045
42046         create m_rootStateNode right in the ScrollingStateTree's constructor.
42047         * page/scrolling/ScrollingStateTree.cpp:
42048         (WebCore::ScrollingStateTree::ScrollingStateTree):
42049
42050         Don't let removeNode() destroy m_rootStateNode.
42051         (WebCore::ScrollingStateTree::removeNode):
42052
42053         Also a part of r130989 that is no longer needed.
42054         (WebCore::ScrollingStateTree::rootLayerDidChange():
42055         * page/scrolling/ScrollingStateTree.h:
42056         (WebCore::ScrollingStateTree::rootStateNode):
42057         (ScrollingStateTree):
42058         (WebCore::ScrollingStateTree::setRootStateNode):
42059
42060         attachToStateTree() now takes an additional ID representing the ID of 
42061         the parent node.
42062         * page/scrolling/mac/ScrollingCoordinatorMac.h:
42063         (ScrollingCoordinatorMac):
42064
42065         We no longer need ScrollingStateTree::rootLayerDidChange()
42066         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
42067         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
42068
42069         Do not destroy and re-create the state node. Just update its ID. When 
42070         we support child nodes soon, we will create them in this function.
42071         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
42072
42073         No need to null-check the rootStateNode.
42074         (WebCore::ScrollingCoordinatorMac::clearStateTree):
42075
42076         Send 0 as the parent node ID to attachToStateTree() to represent the 
42077         root node.
42078         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
42079         * rendering/RenderLayerBacking.cpp:
42080
42081         RenderLayerBacking::attachToScrollingCoordinator() now takes a parent 
42082         layer.
42083         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
42084         * rendering/RenderLayerBacking.h:
42085         (RenderLayerBacking):
42086
42087         Since this is the root, send 0 to represent the parent layer.
42088         * rendering/RenderLayerCompositor.cpp:
42089         (WebCore::RenderLayerCompositor::updateBacking):
42090
42091 2012-10-18  Yael Aharon  <yael.aharon@intel.com>
42092
42093         [EFL] GraphicsContext3D::m_renderStyle is not initialized
42094         https://bugs.webkit.org/show_bug.cgi?id=99721
42095
42096         Reviewed by Antonio Gomes.
42097
42098         Initialize GraphicsContext3D::m_renderStyle.
42099
42100         No new tests, no new functionality.
42101
42102         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
42103         (WebCore::GraphicsContext3D::GraphicsContext3D):
42104
42105 2012-10-18  Brian White  <bcwhite@chromium.org>
42106
42107         WebKit Doesn't Recognize Content-Language HTTP Header
42108         https://bugs.webkit.org/show_bug.cgi?id=97929
42109
42110         Reviewed by Alexey Proskuryakov.
42111
42112         The HTTP "Content-Language" header may be present and include the
42113         language of the page contents (as opposed to an embedded meta tag).
42114
42115         * loader/FrameLoader.cpp:
42116         (WebCore::FrameLoader::didBeginDocument):
42117
42118 2012-10-18  Jer Noble  <jer.noble@apple.com>
42119
42120         Crash in WebCore::Document::webkitExitFullscreen + 618
42121         https://bugs.webkit.org/show_bug.cgi?id=99496
42122
42123         Reviewed by Eric Carlson.
42124
42125         Prospective fix for null-dereference crash in Document::webkitExitFullscreen().
42126
42127         * dom/Document.cpp:
42128         (WebCore::Document::webkitExitFullscreen): Null check page() before calling page()->chrome.
42129
42130 2012-10-18  Pablo Flouret  <pablof@motorola.com>
42131
42132         Implement css3-conditional's @supports rule
42133         https://bugs.webkit.org/show_bug.cgi?id=86146
42134
42135         Reviewed by Antti Koivisto.
42136
42137         The "@supports" rule is a conditional group rule whose condition tests
42138         whether the user agent supports CSS property:value pairs.
42139
42140         http://dev.w3.org/csswg/css3-conditional/#at-supports
42141
42142         Test: css3/supports.html
42143
42144         * Configurations/FeatureDefines.xcconfig:
42145         * GNUmakefile.am:
42146         * GNUmakefile.features.am:
42147             Add an ENABLE_CSS3_CONDITIONAL_RULES flag.
42148
42149         * css/CSSGrammar.y.in:
42150         * css/CSSParser.cpp:
42151         (WebCore):
42152         (WebCore::CSSParser::detectSupportsToken): Tries to find 'and', 'not' and 'or' tokens.
42153         (WebCore::CSSParser::detectAtToken): Enter SupportsMode if @supports is detected.
42154         (WebCore::CSSParser::realLex): Try to detect supports tokens when in SupportsMode.
42155         * css/CSSParser.h: Added new SupportsMode parsing mode.
42156         (CSSParser):
42157
42158 2012-10-18  Marja Hölttä  <marja@chromium.org>
42159
42160         Fix: CachedResourceLoader::requestSVGDocument was passing an URL as charset
42161         https://bugs.webkit.org/show_bug.cgi?id=99730
42162
42163         Reviewed by Jochen Eisinger.
42164
42165         * loader/cache/CachedResourceLoader.cpp:
42166         (WebCore::CachedResourceLoader::requestSVGDocument):
42167
42168 2012-10-18  Jer Noble  <jer.noble@apple.com>
42169
42170         Fullscreen movie controls behave incorrectly when clicked (and dragged)
42171         https://bugs.webkit.org/show_bug.cgi?id=99610
42172
42173         Reviewed by Eric Carlson.
42174
42175         Do not reset the relative drag position to 0,0 at the beginning of every drag.  Instead,
42176         store the cumulative drag offset and accumulate during each additional drag.
42177
42178         No new tests; modified the fullscreen/video-controls-drag.html test.
42179
42180         * html/shadow/MediaControlElements.cpp:
42181         (WebCore::MediaControlPanelElement::startDrag): Reset m_lastDragEventLocation.
42182         (WebCore::MediaControlPanelElement::continueDrag): Accumulate drag distance in m_cumulativeDragOffset.
42183         (WebCore::MediaControlPanelElement::resetPosition): Reset m_cumulativeDragOffset.
42184         * html/shadow/MediaControlElements.h:
42185
42186 2012-10-18  Brandon Jones  <bajones@google.com>
42187
42188         Implement OES_element_index_uint / WEBKIT_OES_element_index_uint
42189         https://bugs.webkit.org/show_bug.cgi?id=97400
42190
42191         Reviewed by Kenneth Russell.
42192
42193         Implemented OES_element_index_uint WebGL extension
42194
42195         Test: fast/canvas/webgl/oes-element-index-uint.html
42196
42197         * CMakeLists.txt:
42198         * DerivedSources.make:
42199         * DerivedSources.pri:
42200         * GNUmakefile.list.am:
42201         * Target.pri:
42202         * WebCore.gypi:
42203         * WebCore.xcodeproj/project.pbxproj:
42204         * bindings/js/JSWebGLRenderingContextCustom.cpp:
42205         (WebCore::toJS):
42206         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
42207         (WebCore::toV8Object):
42208         * html/canvas/OESElementIndexUint.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42209         (WebCore):
42210         (WebCore::OESElementIndexUint::OESElementIndexUint):
42211         (WebCore::OESElementIndexUint::~OESElementIndexUint):
42212         (WebCore::OESElementIndexUint::getName):
42213         (WebCore::OESElementIndexUint::create):
42214         * html/canvas/OESElementIndexUint.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42215         (WebCore):
42216         (OESElementIndexUint):
42217         * html/canvas/OESElementIndexUint.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
42218         * html/canvas/WebGLExtension.h:
42219         * html/canvas/WebGLRenderingContext.cpp:
42220         (WebCore):
42221         (WebCore::WebGLRenderingContext::validateElementArraySize):
42222         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
42223         (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
42224         (WebCore::WebGLRenderingContext::validateRenderingState):
42225         (WebCore::WebGLRenderingContext::drawElements):
42226         (WebCore::WebGLRenderingContext::getExtension):
42227         (WebCore::WebGLRenderingContext::getSupportedExtensions):
42228         * html/canvas/WebGLRenderingContext.h:
42229         (WebCore):
42230         (WebGLRenderingContext):
42231         * platform/graphics/Extensions3D.h:
42232         (Extensions3D):
42233         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
42234         (WebCore::Extensions3DOpenGL::supportsExtension):
42235
42236 2012-10-18  Jer Noble  <jer.noble@apple.com>
42237
42238         Add diagnostic logging to track per-page media engine usage.
42239         https://bugs.webkit.org/show_bug.cgi?id=99615
42240         <rdar://problem/12476473>
42241
42242         Reviewed by Eric Carlson.
42243
42244         Add diagnostic logging triggered only once-per-page and once-per-page-per-engine.
42245
42246         * html/HTMLMediaElement.cpp:
42247         (WebCore::logMediaLoadRequest): Encapsulate diagnostic logging into single static method.
42248         (WebCore::HTMLMediaElement::mediaLoadingFailed): Call logMediaLoadRequest.
42249         (WebCore::HTMLMediaElement::setReadyState): Ditto.
42250         * loader/FrameLoader.cpp:
42251         (WebCore::FrameLoader::dispatchDidCommitLoad): Reset the set of seen media engines.
42252
42253         Add new methods to Page to track per-page media engine diagnostic info, similar to plugin diagnostic info.
42254         * page/Page.cpp:
42255         (WebCore::Page::hasSeenAnyMediaEngine):
42256         (WebCore::Page::hasSeenMediaEngine):
42257         (WebCore::Page::sawMediaEngine):
42258         (WebCore::Page::resetSeenMediaEngines):
42259         * page/Page.h:
42260
42261         Add new static logging key definitions:
42262         * page/DiagnosticLoggingKeys.cpp:
42263         (WebCore::DiagnosticLoggingKeys::pageContainsMediaEngineKey):
42264         (WebCore::DiagnosticLoggingKeys::pageContainsAtLeastOneMediaEngineKey):
42265         * page/DiagnosticLoggingKeys.h:
42266
42267 2012-10-18  Michael Saboff  <msaboff@apple.com>
42268
42269         Add 8-bit path to RenderBlock::handleTrailingSpaces()
42270         https://bugs.webkit.org/show_bug.cgi?id=99731
42271
42272         Reviewed by Dan Bernstein.
42273
42274         Factored out and added findFirstTrailingSpace() templated helper function that is called with the 
42275         approriate character pointer type.
42276
42277         No tests needed, change covered by existing tests.
42278
42279         * rendering/RenderBlockLineLayout.cpp:
42280         (WebCore::findFirstTrailingSpace):
42281         (WebCore::RenderBlock::handleTrailingSpaces):
42282
42283 2012-10-18  Hans Muller  <hmuller@adobe.com>
42284
42285         [CSS Exclusions] Add ExclusionShape::shapeBoundingBox() method
42286         https://bugs.webkit.org/show_bug.cgi?id=99216
42287
42288         Reviewed by Dirk Schulze.
42289
42290         Added a FloatRect::extend() method which simplifies writing loops that
42291         accumulate the bounding box for a sequence of FloatPoints. The new method
42292         is used by ExclusionPolygon to initialize the shape's logical and physical
42293         bounding boxes. This a clean-up, not a change in functionality. It's already
42294         covered by the existing fast/exclusions LayoutTests.
42295
42296         * platform/graphics/FloatRect.cpp:
42297         (WebCore::FloatRect::extend): Extend the FloatRect's bounds to include a FloatPoint.
42298         (WebCore):
42299         * platform/graphics/FloatRect.h:
42300         (FloatRect): Added extend() method.
42301         * rendering/ExclusionPolygon.cpp:
42302         (WebCore::ExclusionPolygon::ExclusionPolygon): Use FloatRect::extend() to compute the polygon's internal bounding box.
42303         * rendering/ExclusionShape.cpp:
42304         (WebCore::ExclusionShape::createExclusionShape): Use FloatRect::extend() to compute the polygon's physical bounding box.
42305         * rendering/ExclusionShape.h:
42306         (WebCore::ExclusionShape::shapeBoundingBox): Return the shape's bounding box in physical coordinates.
42307         (ExclusionShape):
42308
42309 2012-10-18  Hans Muller  <hmuller@adobe.com>
42310
42311         [CSS Exclusions] Handle special case "empty" shapes
42312         https://bugs.webkit.org/show_bug.cgi?id=99342
42313
42314         Reviewed by Dirk Schulze.
42315
42316         Provide expclit coverage of the simple "empty" shape-inside shapes.
42317         Shapes will be considered "empty" in the sense that ExclusionShape::getIncludedIntervals()
42318         and ExclusionShape::getExcludedIntervals() will always return empty lists of intervals.
42319         This patch covers rectangles of zero width or height, circles with 0 radius, ellipses
42320         with 0 radiusX or radiusY, polygons with less than 3 vertices.
42321
42322         Test: fast/exclusions/shape-inside/shape-inside-empty.html
42323
42324         * rendering/ExclusionPolygon.cpp:
42325         (WebCore::ExclusionPolygon::ExclusionPolygon): Initialize the m_empty flag.
42326         (WebCore::ExclusionPolygon::getExcludedIntervals): Added short-circuit return when the polygon is empty.
42327         (WebCore::ExclusionPolygon::getIncludedIntervals): Added short-circuit return when the polygon is empty.
42328         * rendering/ExclusionPolygon.h: Added the isEmpty() method.
42329         * rendering/ExclusionRectangle.cpp:
42330         (WebCore::ExclusionRectangle::getExcludedIntervals): Added short-circuit return when the rectangle is empty.
42331         (WebCore::ExclusionRectangle::getIncludedIntervals): Added short-circuit return when the rectangle is empty.
42332         * rendering/ExclusionRectangle.h: Added the isEmpty() method.
42333         * rendering/ExclusionShape.h: Added a virtual isEmpty() ExclusionShape method.
42334         (ExclusionShape):
42335
42336 2012-10-18  Takashi Sakamoto  <tasak@google.com>
42337
42338         REGRESSION(r131464): Null-pointer crash in StyleResolver::styleForElement
42339         https://bugs.webkit.org/show_bug.cgi?id=99587
42340
42341         Reviewed by Dimitri Glazkov.
42342
42343         Since contents in datalist are not shown, summary in datalist is not
42344         shown either. So the summary has no render style. On the other hand,
42345         the summary is implemented by shadow DOM and it has some insertion
42346         point. Its child, e.g. title in the below test, is distributed.
42347         To solve the child's user-modify, looking at shadow host(=summary)'s
42348         style causes null-pointer crash.
42349
42350         Test: fast/dom/shadow/user-modify-in-datalist-crash.html
42351
42352         * css/StyleResolver.cpp:
42353         (WebCore::StyleResolver::styleForElement):
42354         Added a code to check whether the shadow host has any style or not.
42355
42356 2012-10-17  Philippe Normand  <pnormand@igalia.com>
42357
42358         [GTK] AudioBusGtk sometimes fails to load the HRTF database
42359         https://bugs.webkit.org/show_bug.cgi?id=99601
42360
42361         Reviewed by Martin Robinson.
42362
42363         AudioBusGtk now first lookup for the uninstalled resource files,
42364         if the AUDIO_RESOURCES_PATH environment variable is
42365         set. Additionally the audio file reader is now better dealing with
42366         errors, returning an empty AudioBus in such cases and issuing
42367         warnings on the console output. The cleanup of some member
42368         variables was also moved to the destructor.
42369
42370         * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
42371         (AudioFileReader):
42372         (WebCore::AudioFileReader::AudioFileReader):
42373         (WebCore::AudioFileReader::~AudioFileReader): Clear and free
42374         member variables. This was done in createBus before.
42375         (WebCore::AudioFileReader::handleMessage): Issue warnings in case
42376         of error and exit from the main loop so the pipeline is not
42377         forever stuck.
42378         (WebCore::AudioFileReader::createBus): Return an empty bus in case
42379         of error.
42380         * platform/audio/gtk/AudioBusGtk.cpp:
42381         (WebCore::AudioBus::loadPlatformResource): Load uninstalled
42382         resources first if AUDIO_RESOURCES_PATH is set.
42383
42384 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42385
42386         Web Inspector: provisional change for merging "doced" state into the "dock side" enum.
42387         https://bugs.webkit.org/show_bug.cgi?id=99718
42388
42389         Reviewed by Vsevolod Vlasov.
42390
42391         Adds stub method that could be executed from the embedder.
42392
42393         * inspector/front-end/InspectorFrontendAPI.js:
42394         (InspectorFrontendAPI.setDockSide):
42395
42396 2012-10-18  Kent Tamura  <tkent@chromium.org>
42397
42398         Add Localizer::monthFormat and implementations
42399         https://bugs.webkit.org/show_bug.cgi?id=99704
42400
42401         Reviewed by Kentaro Hara.
42402
42403         Localizer::monthFormat will be used for constructing input[type=month] UI.
42404
42405         Tests: Add unit tests to Source/WebKit/chromium/tests/.
42406
42407         * platform/text/Localizer.h:
42408         (Localizer): Declare pure virtual monthFormat function.
42409
42410         * platform/text/LocaleNone.cpp:
42411         (LocaleNone): Declare monthFormat.
42412         (WebCore::LocaleNone::monthFormat):
42413         Added. Always reutrns an ISO-8601 format, "yyyy-MM"
42414
42415         * platform/text/LocaleICU.h:
42416         (LocaleICU): Declare monthFormat.
42417         * platform/text/LocaleICU.cpp:
42418         (WebCore::getFormatForSkeleton):
42419         A helper to get a format for the specified skeleton.
42420         The overflow-allocalte-try-again pattern is similar to
42421         LocaleICU::decimalSymbol and LocaleICU::decimalTextAttribute.
42422         (WebCore::LocaleICU::monthFormat):
42423         Added. Calls getFormatForSkeleton with "yyyyMMM".
42424
42425         * platform/text/mac/LocaleMac.h:
42426         (LocaleMac): Declare monthFormat.
42427         * platform/text/mac/LocaleMac.mm:
42428         (WebCore::LocaleMac::monthFormat):
42429         Added. Calls NSDateFormatter::dateFormatFromTemplate with "yyyyMMM".
42430
42431         * platform/text/LocaleWin.h:
42432         (LocaleWin): Declare monthFormat.
42433         * platform/text/LocaleWin.cpp:
42434         (WebCore::LocaleWin::monthFormat):
42435         Get a format by LOCALE_SYEARMONTH, and convert it to an LDML format.
42436
42437 2012-10-18  Pavel Feldman  <pfeldman@chromium.org>
42438
42439         Web Inspector: add X-WebKit-CSP header into inspector.html
42440         https://bugs.webkit.org/show_bug.cgi?id=99710
42441
42442         Reviewed by Vsevolod Vlasov.
42443
42444         A simple sanity measure.
42445
42446         * inspector/front-end/inspector.html:
42447
42448 2012-10-18  Huang Dongsung  <luxtella@company100.net>
42449
42450         [WK2] Add CustomFilterOperation serialization in ArgumentCoder.
42451         https://bugs.webkit.org/show_bug.cgi?id=98733
42452
42453         Reviewed by Noam Rosenthal.
42454
42455         Change CustomFilterOperation::parameters() to const function, because
42456         this method is a getter and a const instance needs to call this method.
42457
42458         No new tests because there is no change in behavior.
42459
42460         * platform/graphics/filters/CustomFilterOperation.h:
42461         (WebCore::CustomFilterOperation::parameters):
42462
42463 2012-10-18  Hayato Ito  <hayato@chromium.org>
42464
42465         treeScopeOfParent doesn't return the TreeScope of the parent
42466         https://bugs.webkit.org/show_bug.cgi?id=98207
42467
42468         Reviewed by Hajime Morita.
42469
42470         A minor clean up. Remove treeScopeOfParent() in Element.cpp.
42471
42472         No tests needed, this is just a clean up.
42473
42474         * dom/Element.cpp:
42475         (WebCore::Element::removedFrom):
42476
42477 2012-10-18  Alexander Pavlov  <apavlov@chromium.org>
42478
42479         Web Inspector: [Styles] Forcibly invoke property names suggestion box for empty prefix
42480         https://bugs.webkit.org/show_bug.cgi?id=99711
42481
42482         Reviewed by Vsevolod Vlasov.
42483
42484         Suggestions should be returned unconditionally for CSS property names, regardless of the prefix.
42485
42486         * inspector/front-end/CSSCompletions.js:
42487         (WebInspector.CSSCompletions):
42488         (WebInspector.CSSCompletions.requestCSSNameCompletions):
42489         (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix):
42490         * inspector/front-end/CSSKeywordCompletions.js:
42491         (WebInspector.CSSKeywordCompletions.forProperty):
42492
42493 2012-10-18  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
42494
42495         Unreviewed, do not make UseV8.cmake executable.
42496
42497         * UseV8.cmake: Removed property svn:executable.
42498
42499 2012-10-18  Tommy Widenflycht  <tommyw@google.com>
42500
42501         MediaStream API: Add better RTCPeerConnectionHandler creation logic
42502         https://bugs.webkit.org/show_bug.cgi?id=99308
42503
42504         Reviewed by Adam Barth.
42505
42506         This patch makes sure that if the RTCPeerConnectionHandler can't be fully initialized/created
42507         the RTCPeerConnection constructor throws an exception.
42508
42509         Not full testable, existing tests cover the normal case though.
42510
42511         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
42512         (WebCore::RTCPeerConnectionHandler::create):
42513         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
42514         (WebCore::RTCPeerConnectionHandlerChromium::createWebHandler):
42515         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
42516         (WebCore::RTCPeerConnectionHandlerChromium::createOffer):
42517         (WebCore::RTCPeerConnectionHandlerChromium::createAnswer):
42518         (WebCore::RTCPeerConnectionHandlerChromium::setLocalDescription):
42519         (WebCore::RTCPeerConnectionHandlerChromium::setRemoteDescription):
42520         (WebCore::RTCPeerConnectionHandlerChromium::updateIce):
42521         (WebCore::RTCPeerConnectionHandlerChromium::addIceCandidate):
42522         (WebCore::RTCPeerConnectionHandlerChromium::localDescription):
42523         (WebCore::RTCPeerConnectionHandlerChromium::remoteDescription):
42524         (WebCore::RTCPeerConnectionHandlerChromium::addStream):
42525         (WebCore::RTCPeerConnectionHandlerChromium::removeStream):
42526         (WebCore::RTCPeerConnectionHandlerChromium::getStats):
42527         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
42528         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
42529         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
42530         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
42531         (WebCore::RTCPeerConnectionHandlerChromium::stop):
42532         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
42533         (RTCPeerConnectionHandlerChromium):
42534
42535 2012-10-19  Zeno Albisser  <zeno@webkit.org>
42536
42537         Temporarily disable use of QCocoaNativeInterface in GraphicsSurfaceMac.
42538         https://bugs.webkit.org/show_bug.cgi?id=99320
42539
42540         The current version of Qt5 deployed on the buildbots does not yet have
42541         an implementation for QCocoaNativeInterface::nativeResourceForContext().
42542         Therefore we disable this code path until Qt5/qtbase has been updated to
42543         a revision above Change-Id: Id00efc88a73d7df04a68c022f19d9d1c4f6d386b.
42544
42545         Once Qt5 has been updated, this patch must be reverted.
42546
42547         Reviewed by Noam Rosenthal.
42548
42549         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42550         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42551
42552 2012-10-18  Zeno Albisser  <zeno@webkit.org>
42553
42554         GraphicsSurface should not modify the current GL context.
42555         https://bugs.webkit.org/show_bug.cgi?id=99320
42556
42557         Instead of reusing the currently bound GL context for drawing
42558         the texture onto the GraphicsSurface, GraphicsSurface should
42559         create a new context that shares the texture names with a context
42560         provided by the caller.
42561         This way the OpenGL states are clearly separated and we do not
42562         risk interfeering with the currently bound GL context.
42563
42564         Reviewed by Noam Rosenthal.
42565
42566         * platform/graphics/qt/GraphicsContext3DQt.cpp:
42567         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
42568             When creating a GraphicsSurface pass the platform GL context
42569             as a parameter, so it can be used for sharing textures with.
42570         (WebCore::GraphicsContext3DPrivate::copyToGraphicsSurface):
42571             Pass the texture instead of the FBO. A Texture can be drawn
42572             directly or bound to another FBO, where a framebuffer
42573             always needs to be blit onto the surface.
42574         (WebCore::GraphicsContext3DPrivate::createGraphicsSurfaces):
42575             Pass the platform GL context as a parameter.
42576         * platform/graphics/surfaces/GraphicsSurface.cpp:
42577         (WebCore::GraphicsSurface::create):
42578         (WebCore::GraphicsSurface::copyFromTexture):
42579         * platform/graphics/surfaces/GraphicsSurface.h:
42580         (GraphicsSurface):
42581         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
42582         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42583             Create a new GL context that shares the textures with the
42584             context provided by the caller.
42585         (WebCore::GraphicsSurfacePrivate::~GraphicsSurfacePrivate):
42586         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42587             Add a convenience function to make the context that
42588             belongs to the surface current.
42589         (GraphicsSurfacePrivate):
42590         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42591             Add a convenience function to make the previously
42592             bound context current again.
42593         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42594             Move blitting of the texture onto the surface
42595             into a separate function within GraphicsSurfacePrivate.
42596         (WebCore::GraphicsSurface::platformCopyFromTexture):
42597             Rename function platformCopyFromFramebuffer to
42598             platformCopyFromTexture, as we are now passing the texture only.
42599         (WebCore::GraphicsSurface::platformCreate):
42600         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
42601         (WebCore):
42602         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
42603         (WebCore::GraphicsSurfacePrivate::makeCurrent):
42604             Add a convenience function to make the context that
42605             belongs to the surface current.
42606         (GraphicsSurfacePrivate):
42607         (WebCore::GraphicsSurfacePrivate::doneCurrent):
42608             Add a convenience function to make the previously
42609         (WebCore::GraphicsSurfacePrivate::copyFromTexture):
42610             Move blitting of the texture onto the surface
42611             into a separate function within GraphicsSurfacePrivate.
42612         (WebCore::resolveGLMethods):
42613             Resolve additional GL methods necessary for this change.
42614         (WebCore::GraphicsSurface::platformCopyFromTexture):
42615             Rename function platformCopyFromFramebuffer to
42616             platformCopyFromTexture, as we are now passing the texture only.
42617         (WebCore::GraphicsSurface::platformCreate):
42618
42619 2012-10-18  Kent Tamura  <tkent@chromium.org>
42620
42621         Set min-width property instead of width property for date/time fields
42622         https://bugs.webkit.org/show_bug.cgi?id=99673
42623
42624         Reviewed by Hajime Morita.
42625
42626         A field can have a text wider than pre-computed width because of
42627         :first-letter property. So, we should set min-width, not width.
42628
42629         Tests: Covered by fast/forms/*-multiple-fields/*-multipe-fields-appearance-style.html
42630
42631         * html/shadow/DateTimeNumericFieldElement.cpp:
42632         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
42633         Set min-width instead of width.
42634         * html/shadow/DateTimeSymbolicFieldElement.cpp:
42635         (WebCore::DateTimeSymbolicFieldElement::customStyleForRenderer): Ditto.
42636
42637 2012-10-18  MORITA Hajime  <morrita@google.com>
42638
42639         Assertion failure at TreeScopeAdopter::moveNodeToNewDocument()
42640         https://bugs.webkit.org/show_bug.cgi?id=99510
42641
42642         Reviewed by Kent Tamura.
42643
42644         Shadow DOM notification call didn't have checks for mutation detection.
42645         This change adds such checks.
42646
42647         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html
42648
42649         * dom/ContainerNodeAlgorithms.cpp:
42650         (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
42651         (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
42652
42653 2012-10-17  Kentaro Hara  <haraken@chromium.org>
42654
42655         Unreviewed. Rebaselined run-bindings-tests.
42656
42657         * bindings/scripts/test/V8/V8Float64Array.h:
42658         (V8Float64Array):
42659         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
42660         (V8TestActiveDOMObject):
42661         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
42662         (V8TestCustomNamedGetter):
42663         * bindings/scripts/test/V8/V8TestEventConstructor.h:
42664         (V8TestEventConstructor):
42665         * bindings/scripts/test/V8/V8TestEventTarget.h:
42666         (V8TestEventTarget):
42667         * bindings/scripts/test/V8/V8TestException.h:
42668         (V8TestException):
42669         * bindings/scripts/test/V8/V8TestInterface.h:
42670         (V8TestInterface):
42671         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
42672         (V8TestMediaQueryListListener):
42673         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
42674         (V8TestNamedConstructor):
42675         * bindings/scripts/test/V8/V8TestNode.h:
42676         (V8TestNode):
42677         * bindings/scripts/test/V8/V8TestObj.h:
42678         (V8TestObj):
42679         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
42680         (V8TestSerializedScriptValueInterface):
42681
42682 2012-10-17  Mike West  <mkwst@chromium.org>
42683
42684         Move mixed content logic out of FrameLoader
42685         https://bugs.webkit.org/show_bug.cgi?id=45638
42686
42687         Reviewed by Eric Seidel.
42688
42689         This change moves checks for mixed content out of FrameLoader, and into
42690         a new MixedContentChecker object. It's a pretty straightforward
42691         refactoring with no change to the overall logic, and only minor changes
42692         to the code to reduce repetition.
42693
42694         The only substantive change is renaming the methods from 'checkIf*' to
42695         'can*' to reflect the value of the boolean they return.
42696
42697         The visible functionality shouldn't change; this change should be
42698         covered by existing tests in http/tests/security/mixedContent.
42699
42700         This patch is mostly a revitalization of Eric Sidel's original
42701         patch: https://bugs.webkit.org/attachment.cgi?id=67432&action=prettypatch
42702
42703         * CMakeLists.txt:
42704         * GNUmakefile.list.am:
42705         * Target.pri:
42706         * WebCore.gypi:
42707         * WebCore.vcproj/WebCore.vcproj:
42708         * WebCore.xcodeproj/project.pbxproj:
42709             Hey, look! A new file!
42710         * loader/FrameLoader.cpp:
42711         (WebCore::FrameLoader::FrameLoader):
42712         * loader/FrameLoader.h:
42713         (WebCore::FrameLoader::mixedContentChecker):
42714         (FrameLoader):
42715         * loader/MixedContentChecker.cpp: Added.
42716         (WebCore):
42717         (WebCore::MixedContentChecker::MixedContentChecker):
42718         (WebCore::MixedContentChecker::client):
42719         (WebCore::asUTF8):
42720         (WebCore::MixedContentChecker::isMixedContent):
42721         (WebCore::MixedContentChecker::canDisplayInsecureContent):
42722         (WebCore::MixedContentChecker::canRunInsecureContent):
42723         (WebCore::MixedContentChecker::logWarning):
42724         * loader/MixedContentChecker.h: Added.
42725         (WebCore):
42726         (MixedContentChecker):
42727             Migrate functionality from FrameLoader::checkIf* to
42728             MixedContentChecker::can*.
42729         * loader/MainResourceLoader.cpp:
42730         (WebCore::MainResourceLoader::willSendRequest):
42731         * loader/SubframeLoader.cpp:
42732         (WebCore::SubframeLoader::pluginIsLoadable):
42733         (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin):
42734         * loader/cache/CachedResourceLoader.cpp:
42735         (WebCore::CachedResourceLoader::checkInsecureContent):
42736             Use the new method locations.
42737
42738 2012-10-17  Dan Bernstein  <mitz@apple.com>
42739
42740         REGRESSION (r95391): ComplexTextController is unnecessarily slow with characters with combining marks when the base character is not covered by any font
42741         https://bugs.webkit.org/show_bug.cgi?id=99654
42742
42743         Reviewed by Adele Peterson.
42744
42745         When the base character of a combining character sequence is not covered by any one of the
42746         available fonts, there is no point looking for a font that covers the entire sequence, nor
42747         to try to use a combination of fallback fonts for the entire sequence.
42748
42749         * platform/graphics/SimpleFontData.h:
42750         (WebCore::SimpleFontData::systemFallback): Moved ComplexTextController::systemFallbackFontData
42751         here and renamed it.
42752         * platform/graphics/mac/ComplexTextController.cpp:
42753         (WebCore::ComplexTextController::collectComplexTextRuns): This function used to use
42754         systemFallbackFontData() whenever Font::fontDataForCombiningCharacterSequence returned 0
42755         for a base character with combining marks, regardless of whether the base character was
42756         covered by any font. Changed it to preserve the return value of
42757         fontDataForCombiningCharacterSequence, which is now 0 only if the base charcater is not in
42758         any font, while systemFallbackFontData() is used to indicate that no single font in the
42759         fallback list covers all characters in the sequence, but the base character is in some font.
42760         * platform/graphics/mac/ComplexTextController.h:
42761         (ComplexTextController): Moved systemFallbackFontData from here to SimpleFontData.
42762         * platform/graphics/mac/ComplexTextControllerCoreText.mm:
42763         (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Updated for the above
42764         move.
42765         * platform/graphics/mac/FontComplexTextMac.cpp:
42766         (WebCore::Font::fontDataForCombiningCharacterSequence): Changed to return
42767         systemFallbackFontData() if no single font in the fallback list covers all characters in the
42768         sequence, while using 0 to signal the base character does not exist in any font.
42769
42770 2012-10-17  Dan Bernstein  <mitz@apple.com>
42771
42772         Try to fix the build after r131701.
42773
42774         * WebCore.exp.in:
42775
42776 2012-10-17  Hayato Ito  <hayato@chromium.org>
42777
42778         Content element does not expose distributedNodes property.
42779         https://bugs.webkit.org/show_bug.cgi?id=99232
42780
42781         Reviewed by Dimitri Glazkov.
42782
42783         Add getDistributedNodes() to HTMLContentElement's IDL, which returns a
42784         static NodeList whose node are distributed to the content element.
42785
42786         Test: fast/dom/shadow/content-element-distributed-nodes.html
42787
42788         * html/shadow/HTMLContentElement.idl:
42789         * html/shadow/InsertionPoint.cpp:
42790         (WebCore::InsertionPoint::getDistributedNodes):
42791         * html/shadow/InsertionPoint.h:
42792         (InsertionPoint):
42793         * testing/Internals.cpp:
42794         * testing/Internals.h:
42795         (Internals):
42796         * testing/Internals.idl:
42797
42798 2012-10-17  Pan Deng  <pan.deng@intel.com>
42799
42800         [User Timing] implement main interface in of User Timing, according to http://www.w3.org/TR/2012/CR-user-timing-20120726/
42801         https://bugs.webkit.org/show_bug.cgi?id=90963
42802
42803         Reviewed by Tony Gentilcore.
42804
42805         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.
42806
42807         Tests: http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMarks.html
42808                http/tests/w3c/webperf/submission/user-timing/test_user_timing_clearMeasures.html
42809                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark.html
42810                http/tests/w3c/webperf/submission/user-timing/test_user_timing_mark_exception.html
42811                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure.html
42812                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_associate_with_navigation_timing.html
42813                http/tests/w3c/webperf/submission/user-timing/test_user_timing_measure_exception.html
42814                http/tests/w3c/webperf/submission/user-timing/test_user_timing_method_exist.html
42815
42816         * GNUmakefile.list.am:
42817         * WebCore.gypi:
42818         * page/Performance.cpp:
42819         (WebCore::Performance::webkitGetEntries):
42820         (WebCore::Performance::webkitGetEntriesByType):
42821         (WebCore::Performance::webkitGetEntriesByName):
42822         (WebCore):
42823         (WebCore::Performance::webkitMark):
42824         (WebCore::Performance::webkitClearMarks):
42825         (WebCore::Performance::webkitMeasure):
42826         (WebCore::Performance::webkitClearMeasures):
42827         * page/Performance.h:
42828         (WebCore):
42829         (Performance):
42830         * page/Performance.idl:
42831         * page/PerformanceMark.h: Added.
42832         (WebCore):
42833         (PerformanceMark):
42834         (WebCore::PerformanceMark::create):
42835         (WebCore::PerformanceMark::PerformanceMark):
42836         (WebCore::PerformanceMark::~PerformanceMark):
42837         * page/PerformanceMark.idl: Added.
42838         * page/PerformanceMeasure.h: Added.
42839         (WebCore):
42840         (PerformanceMeasure):
42841         (WebCore::PerformanceMeasure::create):
42842         (WebCore::PerformanceMeasure::PerformanceMeasure):
42843         (WebCore::PerformanceMeasure::~PerformanceMeasure):
42844         * page/PerformanceMeasure.idl: Added.
42845         * page/PerformanceUserTiming.cpp: Added.
42846         (WebCore):
42847         (WebCore::UserTiming::UserTiming):
42848         (WebCore::insertPerformanceEntry):
42849         (WebCore::clearPeformanceEntries):
42850         (WebCore::UserTiming::mark):
42851         (WebCore::UserTiming::clearMarks):
42852         (WebCore::UserTiming::findExistingMarkStartTime):
42853         (WebCore::UserTiming::measure):
42854         (WebCore::UserTiming::clearMeasures):
42855         * page/PerformanceUserTiming.h: Added.
42856         (WebCore):
42857         (UserTiming):
42858         (WebCore::UserTiming::create):
42859
42860 2012-10-17  James Robinson  <jamesr@chromium.org>
42861
42862         Unreviewed clang compile fix - GraphicsLayerUpdater needs a virtual destructor.
42863
42864         * platform/graphics/GraphicsLayerUpdater.h:
42865         (GraphicsLayerUpdater):
42866
42867 2012-10-17  Ryuan Choi  <ryuan.choi@samsung.com>
42868
42869         Attempt to fix the build after r131680.
42870
42871         Unreviewed build fix.
42872
42873         * dom/Document.cpp: Guard ACCELERATED_COMPOSITING for RenderLayerCompositor.h
42874
42875 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42876
42877         StyleRareNonInheritedData::contentDataEquivalent only looks at the first ContentData
42878         https://bugs.webkit.org/show_bug.cgi?id=99560
42879
42880         Reviewed by Eric Seidel.
42881
42882         Previously we only compared the first ContentData in the linked
42883         list of ContentData's which meant that if the resolved style
42884         for content had the same prefix we wouldn't update the content.
42885
42886         This patch adds a loop to compare each of the ContentData objects
42887         in the linked list.
42888
42889         Test: fast/css-generated-content/content-property-change.html
42890
42891         * rendering/style/StyleRareNonInheritedData.cpp:
42892         (WebCore::StyleRareNonInheritedData::contentDataEquivalent):
42893
42894 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
42895
42896         Remove StyleContentType since it's not used anymore
42897         https://bugs.webkit.org/show_bug.cgi?id=99659
42898
42899         Reviewed by Eric Seidel.
42900
42901         Remove StyleContentType enum since it's not used anymore and
42902         make the is*() type checking methods on ContentData public.
42903
42904         No new tests needed, this is just deleting dead code.
42905
42906         * rendering/style/ContentData.h:
42907         (ContentData):
42908         * rendering/style/RenderStyleConstants.h:
42909
42910 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
42911
42912         Create a GraphicsLayerUpdater class that will do periodic layer flushes for layer trees containing tile caches
42913         https://bugs.webkit.org/show_bug.cgi?id=99518
42914
42915         Reviewed by Dean Jackson.
42916
42917         When using tile caches in place of tiled layers, we need to recompute their
42918         visible area periodically while animations and scrolling are happening.
42919         Make a new class, GraphicsLayerUpdater, to handle this updating.
42920         Internally, it uses DisplayRefreshMonitor to generate the periodic updates.
42921         
42922         GraphicsLayer clients are notified that layers need periodic updates. Clients
42923         are free to make use of GraphicsLayerUpdater to handle this updating, as
42924         RenderLayerCompositor does.
42925         
42926         Also do some minor refactoring of methods in RenderLayerCompositor that
42927         get to Page.
42928
42929         * CMakeLists.txt: Add GraphicsLayerUpdater.cpp to the build.
42930         * GNUmakefile.list.am: Ditto.
42931         * PlatformBlackBerry.cmake: Ditto.
42932         * Target.pri: Ditto.
42933         * WebCore.gypi: Ditto.
42934         * WebCore.vcproj/WebCore.vcproj: Ditto.
42935         * WebCore.xcodeproj/project.pbxproj: Ditto.
42936         * dom/Document.cpp:
42937         (WebCore::Document::windowScreenDidChange): Tell the compositor that the screen
42938         changed, so it can tell the GraphicsLayerUpdater if it has one.
42939         * platform/graphics/GraphicsLayerClient.h:
42940         (WebCore::GraphicsLayerClient::notifyFlushBeforeDisplayRefresh): Method called
42941         for layers that need periodic updates, like tile cache layers.
42942         * platform/graphics/GraphicsLayerUpdater.cpp: Added. Uses DisplayRefreshMonitorManager
42943         to flush layers before the next refresh.
42944         (WebCore::GraphicsLayerUpdater::GraphicsLayerUpdater):
42945         (WebCore::GraphicsLayerUpdater::~GraphicsLayerUpdater):
42946         (WebCore::GraphicsLayerUpdater::scheduleUpdate):
42947         (WebCore::GraphicsLayerUpdater::screenDidChange):
42948         (WebCore::GraphicsLayerUpdater::displayRefreshFired):
42949         * platform/graphics/GraphicsLayerUpdater.h: Added.
42950         (GraphicsLayerUpdaterClient): Clients need to implement flushLayers().
42951         (WebCore::GraphicsLayerUpdaterClient::~GraphicsLayerUpdaterClient):
42952         * platform/graphics/ca/GraphicsLayerCA.cpp:
42953         (WebCore::GraphicsLayerCA::recursiveCommitChanges): For tile cache layers,
42954         tell the client that this layer should be updated soon to update the visible rect.
42955         * rendering/RenderLayerBacking.cpp:
42956         (WebCore::RenderLayerBacking::notifyFlushBeforeDisplayRefresh): Pass this message
42957         on to the compositor.
42958         * rendering/RenderLayerBacking.h:
42959         (RenderLayerBacking): Implement notifyFlushBeforeDisplayRefresh.
42960         Add OVERRIDE to all the client overrides.
42961         * rendering/RenderLayerCompositor.cpp:
42962         (WebCore::RenderLayerCompositor::cacheAcceleratedCompositingFlags): Use helper to get to Page.
42963         (WebCore::RenderLayerCompositor::scheduleLayerFlush): Ditto.
42964         (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Soon we're going to be asking
42965         about the current state of animations inside the flush (for visible rect computation), so we
42966         need a AnimationUpdateBlock to make sure all the animation times are in sync.
42967         (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh): Make a GraphicsLayerUpdater
42968         if necessary, and tell it to update soon.
42969         (WebCore::RenderLayerCompositor::flushLayers): The GraphicsLayerUpdater client method.
42970         Just does a flush. For now, considers this Frame as the flush root, which will need fixing for iframes.
42971         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame): Use helper to get to Page.
42972         (WebCore::RenderLayerCompositor::deviceScaleFactor): Ditto.
42973         (WebCore::RenderLayerCompositor::pageScaleFactor): Ditto.
42974         (WebCore::RenderLayerCompositor::destroyRootLayer): Ditto.
42975         (WebCore::RenderLayerCompositor::windowScreenDidChange): Tell the updater if we have one.
42976         (WebCore::RenderLayerCompositor::scrollingCoordinator): Use helper to get to Page.
42977         (WebCore::RenderLayerCompositor::graphicsLayerFactory): Use helper to get to Page.
42978         (WebCore::RenderLayerCompositor::page): The helper.
42979         * rendering/RenderLayerCompositor.h:
42980         (RenderLayerCompositor): Add OVERRIDE to all the client overrides.
42981
42982 2012-10-17  Eric Seidel  <eric@webkit.org>
42983
42984         Make dom-query.html slightly faster by removing unnecessary ref-churn in StringTraits
42985         https://bugs.webkit.org/show_bug.cgi?id=99652
42986
42987         Reviewed by Adam Barth.
42988
42989         My testing showed this moved dom-query.html from  465560 runs/s to 479019
42990         which is about 2% if I'm doing my math correctly.
42991
42992         I suspect that's due to avoiding the ref-churn we were incurring by using
42993         return-by-value symantics here.
42994
42995         This is just the tip of the iceburg. :)
42996
42997         * bindings/v8/V8StringResource.cpp:
42998         (StringTraits):
42999         * bindings/v8/V8ValueCache.h:
43000         (WebCore::WebCoreStringResource::webcoreString):
43001         (WebCore::WebCoreStringResource::atomicString):
43002
43003 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43004
43005         Move handling of CSSPropertyWebkitLineClamp from StyleResolver into StyleBuilder.
43006         https://bugs.webkit.org/show_bug.cgi?id=99534
43007
43008         Reviewed by Alexis Menard.
43009
43010         One small step towards removing the giant switch statement in StyleResolver, this patch moves line clamp handling into StyleBuilder.
43011
43012         Covered by fast/overflow/line-clamp.html
43013
43014         * css/StyleBuilder.cpp:
43015         (WebCore::StyleBuilder::StyleBuilder):
43016         * css/StyleResolver.cpp:
43017         (WebCore::StyleResolver::applyProperty):
43018
43019 2012-10-17  Andy Estes  <aestes@apple.com>
43020
43021         [WebKit2] Add removeChild: to WKDOMNode and make WKDOMText.data read/write
43022         https://bugs.webkit.org/show_bug.cgi?id=99662
43023
43024         Reviewed by Sam Weinig.
43025
43026         Export needed symbols.
43027
43028         * WebCore.exp.in:
43029
43030 2012-10-17  Adam Barth  <abarth@webkit.org>
43031
43032         [V8] Don't generate code that declares visitDOMWrapper if we're not going to generate the implementation
43033         https://bugs.webkit.org/show_bug.cgi?id=99653
43034
43035         Reviewed by Eric Seidel.
43036
43037         * bindings/scripts/CodeGeneratorV8.pm:
43038         (GenerateHeader):
43039
43040 2012-10-17  David Grogan  <dgrogan@chromium.org>
43041
43042         IndexedDB: Destroy leveldb directory if unknown schema is detected
43043         https://bugs.webkit.org/show_bug.cgi?id=99636
43044
43045         Reviewed by Tony Chang.
43046
43047         chromium browser test in progress at
43048         https://codereview.chromium.org/11196029
43049
43050         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
43051         (WebCore):
43052         (WebCore::isSchemaKnown):
43053         Return true when the schema key doesn't exist because new databases
43054         won't have one.
43055
43056         (WebCore::setUpMetadata):
43057         (WebCore::IDBLevelDBBackingStore::open):
43058         Piggy-back on existing leveldb::destroy code.
43059
43060 2012-10-17  Arpita Bahuguna  <arpitabahuguna@gmail.com>
43061
43062         Incorrect rendering of borders on <col> with span > 1
43063         https://bugs.webkit.org/show_bug.cgi?id=76246
43064
43065         Reviewed by Julien Chaffraix.
43066
43067         The HTML5 rendering specification [10.2.2 - Display Types] states that
43068         "For the purposes of the CSS table model, the col element is expected to
43069         be treated as if it was present as many times as its span attribute
43070         specifies."
43071         We should thus apply a col element's border as if the element is present
43072         as many number of times as its span attribute.
43073
43074         Apart from this, we should also treat the col and its enclosing colgroup
43075         separately while computing the collapsed borders.
43076
43077         Test: fast/table/border-collapsing/collapsed-border-with-col-colgroup-span.html
43078
43079         * rendering/RenderTableCell.cpp:
43080         (WebCore::RenderTableCell::computeCollapsedStartBorder):
43081         (WebCore::RenderTableCell::computeCollapsedEndBorder):
43082         Borders from col and its enclosing colgroup element should be handled
43083         separately, while considering the preceeding col's end border (for start
43084         border computation) and the next col's start border (for end border
43085         computation).
43086
43087         Also, have made changes for handling of col elements with span attribute as
43088         per the specification. We now apply the border (start or end) of the col
43089         element irrespective of whether it has any span specified for it or not.
43090
43091 2012-10-17  Tom Sepez  <tsepez@chromium.org>
43092
43093         Crash in ContainerNode::removeAllChildren()
43094         https://bugs.webkit.org/show_bug.cgi?id=98443
43095
43096         Reviewed by Eric Carlson.
43097
43098         This patch makes the errorEventSender added in WebKit Revision 112190 interact
43099         with the updatedHasPendingLoadEvent() mechanism in the same manner as the other
43100         existing event senders.
43101
43102         Test: http/tests/security/video-poster-cross-origin-crash2.html
43103
43104         * loader/ImageLoader.cpp:
43105         (WebCore::ImageLoader::setImage):
43106         (WebCore::ImageLoader::updateFromElement):
43107         (WebCore::ImageLoader::notifyFinished):
43108         (WebCore::ImageLoader::updatedHasPendingEvent):
43109         (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
43110         (WebCore::ImageLoader::dispatchPendingLoadEvent):
43111         * loader/ImageLoader.h:
43112         (ImageLoader):
43113
43114 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43115
43116         IndexedDB: Closing connection in upgradeneeded should result in error event
43117         https://bugs.webkit.org/show_bug.cgi?id=99486
43118
43119         Reviewed by Tony Chang.
43120
43121         The IDB spec requires that "...if connection is closed, return a DOMError of type AbortError".
43122         This was being handled during the "enqueue" phase, which was too early either for synchronously
43123         executing scripts or asynchronous messaging in multiprocess ports (crbug.com/150691). Move the
43124         logic to the "dispatch" phase.
43125
43126         Test: storage/indexeddb/intversion-close-in-oncomplete.html
43127
43128         * Modules/indexeddb/IDBOpenDBRequest.cpp:
43129         (WebCore::IDBOpenDBRequest::onSuccess): Move success to error morphing from here...
43130         (WebCore::IDBOpenDBRequest::dispatchEvent): To here.
43131         * Modules/indexeddb/IDBOpenDBRequest.h:
43132         (IDBOpenDBRequest):
43133
43134 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
43135
43136         Use virtual dispatch to create ContentData renderers
43137         https://bugs.webkit.org/show_bug.cgi?id=99646
43138
43139         Reviewed by Eric Seidel.
43140
43141         ContentData are conceptually very similar to Nodes and we can use
43142         the same createRenderer pattern on them to simplify creating
43143         renderers for generated content. Now each ContentData class knows
43144         how to create its own renderer.
43145
43146         Previously we switched over the StyleContentType which required a
43147         case for CONTENT_NONE and made the code look like it could return
43148         null, but this case is actually impossible because no ContentData
43149         class ever has a type of CONTENT_NONE and no null checks are really
43150         needed.
43151
43152         This is the final step in removing dependence on StyleContentType.
43153
43154         No new tests needed, this is just a refactor.
43155
43156         * rendering/RenderObjectChildList.cpp: Remove createRendererForBeforeAfterContent.
43157         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
43158         * rendering/style/ContentData.cpp:
43159         (WebCore::ImageContentData::createRenderer):
43160         (WebCore):
43161         (WebCore::TextContentData::createRenderer):
43162         (WebCore::CounterContentData::createRenderer):
43163         (WebCore::QuoteContentData::createRenderer):
43164         * rendering/style/ContentData.h: Added a new virtual method createRenderer.
43165         (WebCore):
43166         (ContentData):
43167         (ImageContentData):
43168         (TextContentData):
43169         (CounterContentData):
43170         (QuoteContentData):
43171
43172 2012-10-17  Julien Chaffraix  <jchaffraix@webkit.org>
43173
43174         RenderLayer subtrees without any self-painting layer shouldn't be walked during hit testing
43175         https://bugs.webkit.org/show_bug.cgi?id=89393
43176
43177         Reviewed by Eric Seidel.
43178
43179         Performance optimization, covered by existing tests.
43180
43181         Bug 88888 added an peformance optimization for painting. As hit testing is very similar to
43182         painting, it would benefit from the same optimization.
43183
43184         On http://dglazkov.github.com/performance-tests/biggrid.html, with a 10,000 * 100 tables,
43185         it reduces the time to select some text inside a cell from 1-2 seconds to a usable time
43186         (I didn't measure the exact timing).
43187
43188         Note that as in bug 88888, the multi-column code is not covered by this optimization.
43189
43190         * rendering/RenderLayer.cpp:
43191         (WebCore::RenderLayer::hitTest):
43192         This is the entrance to the hit testing code so we check if we can bail out early.
43193
43194         (WebCore::RenderLayer::hitTestList):
43195         If we have no self-painting descendant layers, we can bail out.
43196
43197         (WebCore::RenderLayer::hitTestContents):
43198         (WebCore::RenderLayer::hitTestLayer):
43199         hitTest should filter the layers that call these functions. Added some ASSERT to
43200         make sure we don't mistakenly call them when could avoid it.
43201
43202 2012-10-17  Allan Sandfeld Jensen  <allan.jensen@digia.com>
43203
43204         [Qt] Certain SVG content freezes QtWebKit
43205         https://bugs.webkit.org/show_bug.cgi?id=97258
43206
43207         Reviewed by Simon Hausmann.
43208
43209         Ensure dashpattern is well-formed by avoiding divisions by zero.
43210
43211         Test: svg/stroke/zero-width-hang.html
43212
43213         * platform/graphics/qt/GraphicsContextQt.cpp:
43214         (WebCore::GraphicsContext::setLineDash):
43215
43216 2012-10-17  Alec Flett  <alecflett@chromium.org>
43217
43218         IndexedDB: Explicitly send null/undefined/integers to frontend IDBCallbacks
43219         https://bugs.webkit.org/show_bug.cgi?id=99619
43220
43221         Reviewed by Adam Barth.
43222
43223         Rather than pass SerializedScriptValue tokens from the backend,
43224         send explicit null, (as onSuccess(static_cast<SerializedScriptValue*>(0)))
43225         undefined, (as onSucess()), and integers (as onSuccess(long long))
43226
43227         This reduces backend dependency on things that might require a JS
43228         interpreter on the backend.
43229
43230         No new tests, this is a refactor and existing tests cover
43231         correctness. Tests that might fail include:
43232
43233         Test: storage/indexeddb/index-count.html
43234         Test: storage/indexeddb/objectstore-count.html
43235         Test: storage/indexeddb/database-basics.html
43236
43237         * Modules/indexeddb/IDBCallbacks.h:
43238         (IDBCallbacks):
43239         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
43240         (WebCore::IDBCursorBackendImpl::advanceInternal):
43241         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
43242         (WebCore::IDBCursorBackendImpl::prefetchContinueInternal):
43243         * Modules/indexeddb/IDBCursorBackendImpl.h:
43244         (WebCore::IDBCursorBackendImpl::value):
43245         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
43246         (WebCore::IDBDatabaseBackendImpl::deleteDatabase):
43247         * Modules/indexeddb/IDBIndex.cpp:
43248         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
43249         (WebCore::IDBIndexBackendImpl::openCursorInternal):
43250         (WebCore::IDBIndexBackendImpl::countInternal):
43251         (WebCore::IDBIndexBackendImpl::getInternal):
43252         * Modules/indexeddb/IDBObjectStore.cpp:
43253         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
43254         (WebCore::IDBObjectStoreBackendImpl::getInternal):
43255         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
43256         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
43257         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
43258         (WebCore::IDBObjectStoreBackendImpl::countInternal):
43259         * Modules/indexeddb/IDBRequest.cpp:
43260         (WebCore::IDBRequest::onSuccess):
43261         (WebCore):
43262         * Modules/indexeddb/IDBRequest.h:
43263         * Modules/indexeddb/IDBTransaction.cpp:
43264         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
43265         * Modules/indexeddb/IDBTransactionBackendImpl.h:
43266         * Modules/indexeddb/IDBTransactionBackendInterface.h:
43267         * bindings/v8/IDBBindingUtilities.cpp:
43268         (WebCore::deserializeIDBValue):
43269         * inspector/InspectorIndexedDBAgent.cpp:
43270         (WebCore):
43271
43272 2012-10-17  Nate Chapin  <japhet@chromium.org>
43273
43274         Move ResourceRequest construction out of SubresourceLoader
43275         https://bugs.webkit.org/show_bug.cgi?id=99627
43276
43277         Reviewed by Adam Barth.
43278
43279         CachedResource::load() fills out a bunch of http headers.
43280         SubresourceLoader::create() adds a bunch more. Merge them.
43281         Note that this merge requires a bit more care in CachedRawResource::canReuse(),
43282         because more headers are set directly on CachedResource::m_resourceRequest, rather
43283         than on a copy of it.
43284
43285         No new tests, no functionality change intended.
43286
43287         * loader/SubresourceLoader.cpp:
43288         (WebCore::SubresourceLoader::create):
43289         * loader/cache/CachedRawResource.cpp:
43290         (WebCore::shouldIgnoreHeaderForCacheReuse):
43291         (WebCore):
43292         (WebCore::CachedRawResource::canReuse):
43293         * loader/cache/CachedResource.cpp:
43294         (WebCore::CachedResource::failBeforeStarting):
43295         (WebCore):
43296         (WebCore::CachedResource::addAdditionalRequestHeaders):
43297         (WebCore::CachedResource::load):
43298         * loader/cache/CachedResource.h:
43299         (CachedResource):
43300
43301 2012-10-17  Anders Carlsson  <andersca@apple.com>
43302
43303         Clean up Vector.h
43304         https://bugs.webkit.org/show_bug.cgi?id=99622
43305
43306         Reviewed by Benjamin Poulain.
43307
43308         Fix fallout from removing std::max and std::min using declarations.
43309
43310         * loader/cache/CachedResource.cpp:
43311         (WebCore::CachedResource::currentAge):
43312
43313 2012-10-17  Joshua Bell  <jsbell@chromium.org>
43314
43315         IndexedDB: Enforce unsigned long/unsigned long long ranges
43316         https://bugs.webkit.org/show_bug.cgi?id=99637
43317
43318         Reviewed by Tony Chang.
43319
43320         The IndexedDB spec has [EnforceRange] specified on unsigned long and unsigned long long
43321         arguments, which requires the implementation to throw TypeError for negative values or
43322         values that exceed 2^53-1 (maximum JS number that behaves like an integer) - and 0 is
43323         specifically forbidden by the APIs as well.
43324
43325         A more correct fix in the binding layer is in webkit.org/b/96798 but we can temporarily
43326         address this in the implementation.
43327
43328         Also refactor to prevent IDBFactory.open(name, -1) from triggering an internal code path.
43329
43330         Tests: storage/indexeddb/cursor-advance.html
43331                storage/indexeddb/intversion-bad-parameters.html
43332                storage/indexeddb/intversion-encoding.html
43333
43334         * Modules/indexeddb/IDBCursor.cpp:
43335         (WebCore::IDBCursor::advance): Validate argument range.
43336         * Modules/indexeddb/IDBCursor.h:
43337         (IDBCursor):
43338         * Modules/indexeddb/IDBCursor.idl: Drop "unsigned" qualifier as the binding code is
43339         not yet doing the correct validation.
43340         * Modules/indexeddb/IDBFactory.cpp: Refactor to prevent open(name, -1)
43341         (WebCore):
43342         (WebCore::IDBFactory::open): Validate the int version here, then pass to...
43343         (WebCore::IDBFactory::openInternal): ... this method.
43344         * Modules/indexeddb/IDBFactory.h:
43345         (IDBFactory):
43346         * Modules/indexeddb/IDBFactory.idl: Drop "unsigned" qualifier; meaningless to binding
43347         code right now, can be re-added once webkit.org/b/96798 lands.
43348
43349 2012-10-17  Tony Chang  <tony@chromium.org>
43350
43351         fast/forms/range/input-appearance-range-rtl.html off by one pixel
43352         https://bugs.webkit.org/show_bug.cgi?id=99625
43353
43354         Reviewed by Ojan Vafai.
43355
43356         Previously, we would assume that a vertical slider in RTL would render identically to
43357         a vertical slider in LTR. Due to differing thumb sizes, there is an off by one.
43358
43359         This worked in deprecated flexbox because it doesn't adjust for RTL when applying
43360         box-align: center.
43361
43362         Tests: fast/forms/range/input-appearance-range-rtl.html
43363
43364         * html/shadow/SliderThumbElement.cpp:
43365         (WebCore::RenderSliderContainer::layout): Force LTR for flexbox layout when vertical. We have to restore the old value
43366         just in case the user switches from vertical to horizontal.
43367
43368 2012-10-17  Michael Saboff  <msaboff@apple.com>
43369
43370         Creating a String from an NSString should check for all 8 bit strings
43371         https://bugs.webkit.org/show_bug.cgi?id=99392
43372
43373         Reviewed by Geoffrey Garen.
43374
43375         Use CFStringGetBytes() to try to get Latin1 data to create an 8 bit string.
43376
43377         No functional change, change covered by existing tests.
43378
43379         * platform/text/mac/StringMac.mm:
43380         (WTF::String::String):
43381
43382 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43383
43384         [EFL] Remove redundant OpenGL library addition from the build system.
43385         https://bugs.webkit.org/show_bug.cgi?id=99629
43386
43387         Reviewed by Rob Buis.
43388
43389         * PlatformEfl.cmake: Do not add OPENGL_gl_LIBRARY to
43390         WebCore_LIBRARIES, this is already done in CMakeLists.txt these
43391         days.
43392
43393 2012-10-17  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
43394
43395         [CMake] Set WebCore_LIBRARIES earlier.
43396         https://bugs.webkit.org/show_bug.cgi?id=99630
43397
43398         Reviewed by Rob Buis.
43399
43400         * CMakeLists.txt: Follow the style we use in other CMakeList.txt
43401         files and set the Foo_LIBRARIES variables before we start checking
43402         for optional features, as they might append other libraries to the
43403         list (it already happens with WTF_USE_3D_GRAPHICS, for example).
43404
43405 2012-10-17  Philip Rogers  <pdr@google.com>
43406
43407         Allow lazy initialization of SVG XML animated properties.
43408         https://bugs.webkit.org/show_bug.cgi?id=84657
43409
43410         Reviewed by Tim Horton.
43411
43412         When animating a property in the shadow tree, instance properties and tearoffs are created
43413         but they simply reference the animated element's animating properties.
43414
43415         When starting an animation for the first time (see SVGAnimateElement::resetAnimatedType),
43416         we initialize the root property and instance properties using startAnimValAnimation(...).
43417         If an instance property is added while the root property is animating, this initialization
43418         will not occur and we crash.
43419
43420         This patch updates the resetAnimValToBaseVal codepath to start (and initialize) an animated
43421         property if it is not already animating. After this patch, instance properties can be added
43422         in the middle of animation and they will be properly started/initialized.
43423
43424         Test: svg/animations/use-while-animating-crash.html
43425
43426         * svg/SVGAnimatedTypeAnimator.h:
43427         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
43428         (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
43429         (WebCore::SVGAnimatedTypeAnimator::executeAction):
43430
43431 2012-10-17  Dan Carney  <dcarney@google.com>
43432
43433         Bind isolatedWorldSecurityOrigin to world
43434         https://bugs.webkit.org/show_bug.cgi?id=99582
43435
43436         Reviewed by Adam Barth.
43437
43438         Security origin of isolated worlds was not previously set at the world
43439         level, although it could have been. 
43440
43441         No new tests. No change in functionality.
43442
43443         * bindings/v8/DOMWrapperWorld.cpp:
43444         (WebCore::DOMWrapperWorld::deallocate):
43445         (WebCore):
43446         (WebCore::isolatedWorldSecurityOrigins):
43447         (WebCore::DOMWrapperWorld::isolatedWorldSecurityOrigin):
43448         (WebCore::DOMWrapperWorld::setIsolatedWorldSecurityOrigin):
43449         (WebCore::DOMWrapperWorld::clearIsolatedWorldSecurityOrigin):
43450         * bindings/v8/DOMWrapperWorld.h:
43451         (DOMWrapperWorld):
43452         (WebCore::DOMWrapperWorld::isIsolatedWorldId):
43453         (WebCore::DOMWrapperWorld::isIsolatedWorld):
43454         * bindings/v8/ScriptController.cpp:
43455         (WebCore::ScriptController::resetIsolatedWorlds):
43456         (WebCore::ScriptController::evaluateInIsolatedWorld):
43457         (WebCore::ScriptController::collectIsolatedContexts):
43458         * bindings/v8/ScriptController.h:
43459         (ScriptController):
43460         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
43461         * bindings/v8/V8DOMWindowShell.cpp:
43462         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43463         * bindings/v8/V8DOMWindowShell.h:
43464         (V8DOMWindowShell):
43465         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
43466         (WebCore::V8XMLHttpRequest::constructorCallback):
43467
43468 2012-10-17  Simon Fraser  <simon.fraser@apple.com>
43469
43470         GraphicsLayer visible rect computation needs to use the current animating transform
43471         https://bugs.webkit.org/show_bug.cgi?id=99529
43472
43473         Reviewed by Dean Jackson.
43474
43475         If we're running an accelerated animation of transform
43476         on a GraphicsLayerCA, the current value of the transform won't
43477         be reflected in the GraphicsLayer's m_transform. However,
43478         we need the current value of the transform in order to correctly
43479         compute the visible rect of this layer and descendants.
43480         
43481         Add a function to GraphicsLayerClient to retrieve the current
43482         value of the transform from the client.
43483         
43484         RenderLayer's currentTransform() used to return a transform
43485         with transform-origin baked in; GraphicsLayerClient needs one
43486         that excludes transform-origin, so enhance RenderLayer::currentTransform()
43487         to be able to produce either.
43488
43489         Tests: compositing/visible-rect/animated-from-none.html
43490                compositing/visible-rect/animated.html
43491
43492         * platform/graphics/GraphicsLayerClient.h:
43493         (WebCore):
43494         (GraphicsLayerClient):
43495         (WebCore::GraphicsLayerClient::getCurrentTransform):
43496         * platform/graphics/ca/GraphicsLayerCA.cpp:
43497         (WebCore::GraphicsLayerCA::computeVisibleRect):
43498         * rendering/RenderLayer.cpp:
43499         (WebCore::RenderLayer::currentTransform):
43500         * rendering/RenderLayer.h:
43501         * rendering/RenderLayerBacking.cpp:
43502         (WebCore::RenderLayerBacking::currentTransform):
43503         * rendering/RenderLayerBacking.h:
43504         (RenderLayerBacking):
43505
43506 2012-10-17  Sadrul Habib Chowdhury  <sadrul@chromium.org>
43507
43508         plugins: Allow a plugin to dictate whether it can receive drag events or not.
43509         https://bugs.webkit.org/show_bug.cgi?id=99355
43510
43511         Reviewed by Tony Chang.
43512
43513         When doing a drag over a plugin, ask the plugin whether it can accept
43514         drag/drop to decide whether drag/drop is possible or not. At present,
43515         plugins do not receive drag events through WebCore (i.e. various
43516         implementations of PluginView::handleMouseEvent ignores the
43517         drop-events). This change makes it possible for the ports to ask the
43518         plugin first to decide whether it can (or wants to) accept drag events.
43519         The default implementation remains the same, i.e. plugins do not receive
43520         drag events. For chromium, the overridden implementation uses the
43521         WebPlugin interface to check whether the plugin can accept drag events.
43522
43523         * html/HTMLPlugInElement.cpp:
43524         (WebCore::HTMLPlugInElement::canProcessDrag):
43525         (WebCore):
43526         * html/HTMLPlugInElement.h:
43527         (WebCore):
43528         (HTMLPlugInElement):
43529         * page/DragController.cpp:
43530         (WebCore::DragController::canProcessDrag):
43531         * plugins/PluginViewBase.h:
43532         (WebCore):
43533         (WebCore::PluginViewBase::canProcessDrag):
43534
43535 2012-10-17  Andreas Kling  <kling@webkit.org>
43536
43537         Shrink EventTargetData by making firingEventListeners vector optional.
43538         <http://webkit.org/b/99532>
43539         <rdar://problem/12515099>
43540
43541         Reviewed by Anders Carlsson.
43542
43543         The majority of event listeners never actually fire, and EventTargetData::firingEventListeners
43544         is just sitting there taking up space. Make it an OwnPtr instead, shrinking EventTargetData
43545         by 48 bytes and progressing Membuster3 by 395kB.
43546
43547         * dom/EventTarget.cpp:
43548         (WebCore::EventTarget::removeEventListener):
43549         (WebCore::EventTarget::fireEventListeners):
43550         (WebCore::EventTarget::removeAllEventListeners):
43551         * dom/EventTarget.h:
43552         (WebCore::EventTarget::isFiringEventListeners):
43553
43554 2012-10-17  Christophe Dumez  <christophe.dumez@intel.com>
43555
43556         xss-DENIED-xsl-document-securityOrigin.xml crashes with icon assertion
43557         https://bugs.webkit.org/show_bug.cgi?id=99571
43558
43559         Reviewed by Kenneth Rohde Christiansen.
43560
43561         Check that the iconURL is not empty in IconController::continueLoadWithDecision()
43562         to avoid hitting assertions later when trying to commit this empty URL to the
43563         database. IconController::url() may indeed return an empty URL but there was
43564         no check for it.
43565
43566         No new tests, already covered by http/tests/security/xss-DENIED-xsl-document-securityOrigin.xml.
43567
43568         * loader/icon/IconController.cpp:
43569         (WebCore::IconController::continueLoadWithDecision):
43570
43571 2012-10-17  Byungwoo Lee  <bw80.lee@samsung.com>
43572
43573         Fix build warnings : -Wunused-parameter, -Wunused-variable
43574         https://bugs.webkit.org/show_bug.cgi?id=99539
43575
43576         Reviewed by Kentaro Hara.
43577
43578         Fix build warnings about unused parameter or unused variable when
43579         WTF_USE_TILED_BACKING_STORE option is enabled.
43580
43581         * html/shadow/HTMLContentElement.cpp:
43582         (WebCore::contentTagName):
43583         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
43584         (WebCore::GraphicsContext3D::getImageData):
43585         * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
43586         (WebCore::GraphicsContext3DPrivate::createSurface):
43587         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
43588         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
43589         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
43590         * platform/graphics/texmap/TextureMapper.h:
43591         (WebCore::BitmapTexture::canReuseWith):
43592         (WebCore::TextureMapper::beginPainting):
43593         * platform/graphics/texmap/TextureMapperGL.cpp:
43594         (WebCore::TextureMapperGL::drawRepaintCounter):
43595         * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
43596         (WebCore::BitmapTextureImageBuffer::updateContents):
43597         * platform/graphics/texmap/TextureMapperImageBuffer.h:
43598         * platform/graphics/texmap/TextureMapperLayer.cpp:
43599         (WebCore::TextureMapperLayer::sortByZOrder):
43600         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
43601         * rendering/RenderLayerCompositor.cpp:
43602         (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
43603
43604 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
43605
43606         Dynamically added elements do not get re-projected.
43607         https://bugs.webkit.org/show_bug.cgi?id=99227
43608
43609         Reviewed by Dimitri Glazkov.
43610
43611         When distribution happens, we have to invalidate its host shadow's distribution, since the children of the host
43612         is changed.
43613
43614         Test: fast/dom/shadow/content-reprojection-dynamic.html
43615
43616         * html/shadow/ContentDistributor.cpp:
43617         (WebCore::ContentDistributor::distribute):
43618
43619 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43620
43621         Web Inspector: no "delete watch expression" context menu item when clicking on the expression value
43622         https://bugs.webkit.org/show_bug.cgi?id=99602
43623
43624         Reviewed by Pavel Feldman.
43625
43626         Add delete items to the watch expression's value's context menu.
43627
43628         * inspector/front-end/ObjectPropertiesSection.js:
43629         (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuFired):
43630         (WebInspector.ObjectPropertyTreeElement.prototype.populateContextMenu):
43631         * inspector/front-end/WatchExpressionsSidebarPane.js:
43632         (WebInspector.WatchExpressionTreeElement.prototype.populateContextMenu):
43633         (WebInspector.WatchExpressionTreeElement.prototype._contextMenu):
43634
43635 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43636
43637         Web Inspector: [Regression] Undoing script changes does not restore breakpoints.
43638         https://bugs.webkit.org/show_bug.cgi?id=99598
43639
43640         Reviewed by Pavel Feldman.
43641
43642         workingCopyChanged now dispatches did/willMergeToVM instead of did/willDivergeFromVM
43643         when change returns uiSourceCode to non dirty state.
43644         Added wasDirty parameter to workingCopyChanged event.
43645
43646         Test: inspector/debugger/live-edit-breakpoints.html
43647
43648         * inspector/front-end/ResourceScriptMapping.js:
43649         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
43650         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
43651         * inspector/front-end/UISourceCode.js:
43652         (WebInspector.UISourceCode.prototype.setWorkingCopy):
43653
43654 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43655
43656         [Qt] Avoid re-creating CSSGrammar.cpp with each (incremental) build
43657
43658         Reviewed by Tor Arne Vestbø.
43659
43660         The expected output is CSSGrammar.cpp and the input file used to be CSSGrammar.y,
43661         so ${QMAKE_FILE_BASE}.cpp did the correct transformation. Recently the input has
43662         changed to CSSGrammar.y.in, in which case the ${QMAKE_FILE_BASE} is CSSGrammar.y
43663         unfortunately. The resulting target CSSGrammar.y.cpp will never be created and
43664         therefore the target will always run.
43665
43666         * DerivedSources.pri:
43667
43668 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43669
43670         Unreviewed fix for ImageSourceCG.
43671
43672         * platform/graphics/cg/ImageSourceCG.cpp:
43673         (WebCore::ImageSource::reportMemoryUsage):
43674
43675 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
43676
43677         Unreviewed fix for compilation on CG bots.
43678
43679         * platform/graphics/cg/ImageSourceCG.cpp:
43680
43681 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
43682
43683         Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
43684         https://bugs.webkit.org/show_bug.cgi?id=99540
43685
43686         Reviewed by Yury Semikhatsky.
43687
43688         * platform/graphics/ImageSource.cpp:
43689         (WebCore::ImageSource::reportMemoryUsage):
43690         (WebCore):
43691         * platform/graphics/ImageSource.h:
43692         (ImageSource):
43693         * platform/image-decoders/ImageDecoder.cpp:
43694         (WebCore::ImageFrame::reportMemoryUsage):
43695         (WebCore):
43696         (WebCore::ImageDecoder::reportMemoryUsage):
43697         * platform/image-decoders/ImageDecoder.h:
43698         (ImageFrame):
43699         (ImageDecoder):
43700         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
43701         (WebCore::ImageFrame::reportMemoryUsage):
43702         (WebCore):
43703
43704 2012-10-17  Zeno Albisser  <zeno@webkit.org>
43705
43706         [Qt] Fix build on Mac OSX 10.6 and earlier.
43707         https://bugs.webkit.org/show_bug.cgi?id=99595
43708
43709         Reviewed by Simon Hausmann.
43710
43711         * Target.pri:
43712
43713 2012-10-17  Pavel Feldman  <pfeldman@chromium.org>
43714
43715         Web Inspector: display "disconnected" message when remote debugging terminates
43716         https://bugs.webkit.org/show_bug.cgi?id=99316
43717
43718         Reviewed by Yury Semikhatsky.
43719
43720         Otherwise, it is not clear that the front-end is no longer functional.
43721
43722         * inspector/front-end/InspectorFrontendHostStub.js:
43723         (WebInspector.RemoteDebuggingTerminatedScreen):
43724         * inspector/front-end/inspector.js:
43725         (WebInspector.loaded.WebInspector.socket.onclose):
43726         (WebInspector.loaded):
43727
43728 2012-10-17  Yury Semikhatsky  <yurys@chromium.org>
43729
43730         Web Inspector: delete watch expression button overlaps with the expression value
43731         https://bugs.webkit.org/show_bug.cgi?id=99569
43732
43733         Reviewed by Vsevolod Vlasov.
43734
43735         Delete watch expression button now doesn't overlap with the watch expression.
43736
43737         * inspector/front-end/inspector.css:
43738         (.properties-tree.watch-expressions > li > .value):
43739
43740 2012-10-17  Luke Macpherson   <macpherson@chromium.org>
43741
43742         Move handling of CSSPropertyPointerEvents from StyleResolver into StyleBuilder.
43743         https://bugs.webkit.org/show_bug.cgi?id=99536
43744
43745         Reviewed by Alexis Menard.
43746
43747         One small step towards removing the giant switch statement in StyleResolver,
43748         this patch moves pointer event property into StyleBuilder.
43749
43750         Covered by fast/events/pointer-events.html and fast/events/pointer-events-2.html.
43751
43752         * css/StyleBuilder.cpp:
43753         (WebCore::StyleBuilder::StyleBuilder):
43754         * css/StyleResolver.cpp:
43755         (WebCore::StyleResolver::applyProperty):
43756
43757 2012-10-17  Keishi Hattori  <keishi@webkit.org>
43758
43759         Localized date should be based on LDML
43760         https://bugs.webkit.org/show_bug.cgi?id=99570
43761
43762         Reviewed by Kent Tamura.
43763
43764         Localized date should be based on LDML to match the format inside DateTimeEditElement.
43765
43766         No new tests. Covered by LocaleMacTest.formatDate and LocaleWinTest.formatDate.
43767
43768         * platform/text/LocaleICU.cpp: Removed formatDateTime.
43769         * platform/text/LocaleICU.h:
43770         (LocaleICU):
43771         * platform/text/LocaleNone.cpp: Removed formatDateTime.
43772         (LocaleNone):
43773         * platform/text/LocaleWin.cpp: Removed formatDateTime and formatDate.
43774         (WebCore):
43775         * platform/text/LocaleWin.h:
43776         (LocaleWin):
43777         * platform/text/Localizer.cpp:
43778         (WebCore::DateTimeStringBuilder::visitField): Added support for year/month/day.
43779         (WebCore::Localizer::formatDateTime): Creates the formatted string based on the format from dateFormat().
43780         * platform/text/Localizer.h:
43781         * platform/text/mac/LocaleMac.h:
43782         (LocaleMac):
43783         * platform/text/mac/LocaleMac.mm: Removed formatDateTime.
43784
43785 2012-10-17  Harald Alvestrand  <hta@google.com>
43786
43787         Implement the Selector argument to RTCPeerConnection.getStats
43788         https://bugs.webkit.org/show_bug.cgi?id=99460
43789
43790         Reviewed by Adam Barth.
43791
43792         The change adds two new parameters to the RTCStatsRequest object:
43793         stream and component. Together these are enough to identify a
43794         MediaStreamTrack.
43795
43796         Test: fast/mediastream/RTCPeerConnection-statsSelector.html
43797
43798         * Modules/mediastream/MediaStreamTrack.cpp:
43799         (WebCore::MediaStreamTrack::streamDescriptor):
43800         (WebCore):
43801         * Modules/mediastream/MediaStreamTrack.h:
43802         * Modules/mediastream/RTCPeerConnection.cpp:
43803         (WebCore::RTCPeerConnection::getStats):
43804         * Modules/mediastream/RTCStatsRequestImpl.cpp:
43805         (WebCore::RTCStatsRequestImpl::create):
43806         (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
43807         (WebCore::RTCStatsRequestImpl::hasSelector):
43808         (WebCore):
43809         (WebCore::RTCStatsRequestImpl::stream):
43810         (WebCore::RTCStatsRequestImpl::component):
43811         * Modules/mediastream/RTCStatsRequestImpl.h:
43812         (RTCStatsRequestImpl):
43813         * platform/chromium/support/WebRTCStatsRequest.cpp:
43814         (WebKit):
43815         (WebKit::WebRTCStatsRequest::hasSelector):
43816         (WebKit::WebRTCStatsRequest::stream):
43817         (WebKit::WebRTCStatsRequest::component):
43818         * platform/mediastream/RTCStatsRequest.h:
43819         (WebCore):
43820         (RTCStatsRequest):
43821
43822 2012-10-17  Simon Hausmann  <simon.hausmann@digia.com>
43823
43824         [Qt] Enable use of more AllInOne files
43825         https://bugs.webkit.org/show_bug.cgi?id=99579
43826
43827         Reviewed by Tor Arne Vestbø.
43828
43829         The AllInOne files reduce pressure during final link time because the object files contain less duplicated
43830         symbols.
43831
43832         * Target.pri: Add HTMLElementsAllInOne, EditingAllInOne and RenderingAllInOne to the build
43833         * editing/EditingAllInOne.cpp: Place a #if USE(CF) around the inclusion of SmartReplaceCF.cpp
43834         * html/HTMLElementsAllInOne.cpp: Move HTMLPlugInElement.cpp to the top to fix builds on X11 based platforms
43835         where the X headers get confused by the "Region" type that's also declared in WebCore.
43836         * rendering/RenderingAllInOne.cpp: Fix build on case-sensitive file systems (Plugin -> PlugIn) and added a
43837         #if PLATFORM(WIN) around the inclusion of RenderThemeWin.cpp.
43838
43839 2012-10-17  Kent Tamura  <tkent@chromium.org>
43840
43841         REGRESSION(r131421): Text baseline becomes incorrect after re-layout of input[type=time]
43842         https://bugs.webkit.org/show_bug.cgi?id=99572
43843
43844         Reviewed by Kentaro Hara.
43845
43846         We use flexible box since r131421, and it seems text baseline becomes
43847         incorrect if there are text nodes in a flex container.
43848
43849         Test: fast/forms/time-multiple-fields/time-multiple-fields-static-relayout.html
43850
43851         * css/html.css:
43852         (input::-webkit-datetime-edit-text): Added.
43853         * html/shadow/DateTimeEditElement.cpp:
43854         (WebCore::DateTimeEditBuilder::visitLiteral):
43855         Wrap text with an element with ::-webkit-datetime-edit-text.
43856
43857 2012-10-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>, Michal Roj <m.roj@samsung.com>
43858
43859         [WK2][EFL] Implementation of spellchecking feature.
43860         https://bugs.webkit.org/show_bug.cgi?id=91854
43861
43862         Reviewed by Gyuyoung Kim.
43863
43864         * PlatformEfl.cmake:
43865         Add enchant-related compiler flags: header paths and the library flag.
43866
43867 2012-10-17  Alexander Pavlov  <apavlov@chromium.org>
43868
43869         Web Inspector: Avoid style updates when retrieving the inline stylesheet text
43870         https://bugs.webkit.org/show_bug.cgi?id=99576
43871
43872         Reviewed by Vsevolod Vlasov.
43873
43874         Avoid using innerText() to retrieve inline stylesheet text, which may result in style and layout updates.
43875
43876         * inspector/InspectorStyleSheet.cpp:
43877         (WebCore::InspectorStyleSheet::inlineStyleSheetText):
43878
43879 2012-10-17  Patrick Gansterer  <paroga@webkit.org>
43880
43881         Build fix for WinCE after r131365.
43882
43883         * platform/graphics/GlyphBuffer.h:
43884         (WebCore::GlyphBufferAdvance::width):
43885         * platform/graphics/wince/FontWinCE.cpp:
43886         (WebCore::cursorToX):
43887         * platform/graphics/wince/GraphicsContextWinCE.cpp:
43888         (WebCore::GraphicsContext::drawText):
43889
43890 2012-10-17  Mike West  <mkwst@chromium.org>
43891
43892         V8 should throw a more descriptive exception when blocking 'eval' via CSP.
43893         https://bugs.webkit.org/show_bug.cgi?id=94332
43894
43895         Reviewed by Adam Barth.
43896
43897         Following up on https://bugs.webkit.org/show_bug.cgi?id=94331, this
43898         patch wires up the new error message mechanism to V8, and updates the
43899         Chromium test expectations accordingly.
43900
43901         * bindings/v8/ScriptController.cpp:
43902         (WebCore::ScriptController::disableEval):
43903             Pass 'errorMessage' through to V8.
43904         * bindings/v8/V8DOMWindowShell.cpp:
43905         (WebCore::V8DOMWindowShell::initializeIfNeeded):
43906             Grab the error message from ContentSecurityPolicy, and pass it
43907             through to V8.
43908         * bindings/v8/WorkerContextExecutionProxy.cpp:
43909         (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
43910         (WebCore::WorkerContextExecutionProxy::evaluate):
43911         (WebCore::WorkerContextExecutionProxy::setEvalAllowed):
43912         * bindings/v8/WorkerContextExecutionProxy.h:
43913         (WorkerContextExecutionProxy):
43914             Convert 'm_disableEvalPending' to a string to store the current
43915             error message, and use it to set the eval state.
43916         * bindings/v8/WorkerScriptController.cpp:
43917         (WebCore::WorkerScriptController::disableEval):
43918             Pass 'errorMessage' through to V8.
43919
43920 2012-10-17  MORITA Hajime  <morrita@google.com>
43921
43922         Assertion failed on HTMLFormControlElement.cpp: updateFromElementCallback()
43923         https://bugs.webkit.org/show_bug.cgi?id=99566
43924
43925         Reviewed by Kent Tamura.
43926
43927         It had a too optimistic assertion. This change removes it.
43928
43929         Test: fast/forms/textarea/textarea-autofocus-removal-while-focusing.html
43930
43931         * html/HTMLFormControlElement.cpp:
43932         (WebCore::updateFromElementCallback):
43933
43934 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43935
43936         Web Inspector: When dirty uiSourceCode is saved to disk from scripts navigator context menu working copy is not committed.
43937         https://bugs.webkit.org/show_bug.cgi?id=99555
43938
43939         Reviewed by Yury Semikhatsky.
43940
43941         Save As context menu handler now commits working copy for dirty UISourceCodes.
43942
43943         * inspector/front-end/HandlerRegistry.js:
43944
43945 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43946
43947         Web Inspector: Stylesheets saved with FileManager are not saved to disk when edited from Elements panel.
43948         https://bugs.webkit.org/show_bug.cgi?id=99554
43949
43950         Reviewed by Yury Semikhatsky.
43951
43952         Moved saving to disk from SourceFrame to UISourceCode.
43953
43954         * inspector/front-end/SourceFrame.js:
43955         (WebInspector.SourceFrame.prototype._commitEditing):
43956         * inspector/front-end/UISourceCode.js:
43957         (WebInspector.UISourceCode.prototype._commitContent):
43958
43959 2012-10-17  Vsevolod Vlasov  <vsevik@chromium.org>
43960
43961         Web Inspector: [Regression] SASS sources are not saved to disk.
43962         https://bugs.webkit.org/show_bug.cgi?id=99551
43963
43964         Reviewed by Yury Semikhatsky.
43965
43966         Added resource null checks.
43967
43968         * inspector/front-end/StylesSourceMapping.js:
43969         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
43970
43971 2012-10-17  Elliott Sprehn  <esprehn@chromium.org>
43972
43973         Clean up ContentData operator overloads
43974         https://bugs.webkit.org/show_bug.cgi?id=99556
43975
43976         Reviewed by Eric Seidel.
43977
43978         Use virtual dispatch for checking ContentData equality instead
43979         of a switch over the type. This the first step in getting rid
43980         of the StyleContentType enum and all the switch statements over
43981         the type().
43982
43983         No tests needed, this is just a refactor.        
43984
43985         * rendering/style/ContentData.cpp:
43986         * rendering/style/ContentData.h:
43987         (ContentData):
43988         (WebCore::operator==):
43989         (WebCore):
43990         (WebCore::operator!=):
43991
43992 2012-10-17  Gabor Rapcsanyi  <rgabor@webkit.org>
43993
43994         NEON intrinsics Gauss filter does not work properly
43995         https://bugs.webkit.org/show_bug.cgi?id=98875
43996
43997         Reviewed by Zoltan Herczeg.
43998
43999         Fixing the NEON intrinsics Gauss filter. The stride parameter
44000         was missing from the intrinsics algorithm. Tested with pixel
44001         checks, now it's working properly.
44002
44003         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44004         (WebCore::boxBlurNEON):
44005
44006 2012-10-17  MORITA Hajime  <morrita@google.com>
44007
44008         Crash on Frame::inScope() part 2
44009         https://bugs.webkit.org/show_bug.cgi?id=99543
44010
44011         Reviewed by Kent Tamura.
44012
44013         FrameTree::scopedChildCount() can be called even when the one of child frames
44014         is in orphan state. This change added a guard for that case.
44015
44016         No new tests. A hard-to-test timing issue.
44017
44018         * page/Frame.cpp:
44019         (WebCore::Frame::inScope):
44020
44021 2012-10-17  Shinya Kawanaka  <shinyak@chromium.org>
44022
44023         Remove shadowAncestorNode() from VisibleSelection
44024         https://bugs.webkit.org/show_bug.cgi?id=99544
44025
44026         Reviewed by Hajime Morita.
44027
44028         An effort to replace shadowAncestorNode() with shadowHost(), since shadowAncestorNode() is now deprecated.
44029
44030         No new tests, no change in behavior.
44031
44032         * editing/VisibleSelection.cpp:
44033         (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): Since shadowHost() returns 0 if
44034         an element is not in shadowRoot, it's ok to compare shadowAncestor to 0.
44035
44036 2012-10-17  Douglas Stockwell  <dstockwell@chromium.org>
44037
44038         Content of replaced elements should be trimmed to the content edge curve.
44039         https://bugs.webkit.org/show_bug.cgi?id=63899
44040
44041         Reviewed by Simon Fraser.
44042
44043         When a border-radius is specified the content of replaced elements needs to be clipped to avoid
44044         being painted over the padding or border in the corners. Previously the clip that was applied
44045         was set to the border-edge curve, this patch contracts the clip by the size of the border and
44046         padding (the content-edge curve) to match the css3 spec.
44047         Spec: http://www.w3.org/TR/css3-background/#corner-clipping
44048
44049         Test: fast/replaced/border-radius-clip-content-edge.html
44050
44051         * rendering/RenderBoxModelObject.h:
44052         (RenderBoxModelObject):
44053         * rendering/RenderReplaced.cpp:
44054         (WebCore::RenderReplaced::paint):
44055         * rendering/RenderWidget.cpp:
44056         (WebCore::RenderWidget::paint):
44057
44058 2012-10-17  Kunihiko Sakamoto  <ksakamoto@chromium.org>
44059
44060         The HTML5 formtarget/formaction/formenctyp/formmethod/formnovalidate attributes don't work in button tags with nested elements
44061         https://bugs.webkit.org/show_bug.cgi?id=90539
44062
44063         Reviewed by Kent Tamura.
44064
44065         Fix a bug where form(action|enctype|method|target) attributes of <button> are not
44066         honored if the target of the click event is an element nested within the button.
44067
44068         Test: fast/forms/formaction-attribute.html
44069
44070         * loader/FormSubmission.cpp:
44071         (WebCore::FormSubmission::create): Looks for the attributes for form submission
44072         from the nearest FormControlElement ancestor of the event target.
44073
44074 2012-10-16  MORITA Hajime  <morrita@google.com>
44075
44076         [Shadow DOM][V8] WebCore::V8DOMWindow::installPerContextProperties() is slow when shadowDOMEnabled flag is on.
44077         https://bugs.webkit.org/show_bug.cgi?id=99428
44078
44079         Reviewed by Adam Barth.
44080
44081         A benchmark unveiled that installPerContextProperties() could have made DOMWindow setup slower when
44082         - Some properties are added per-context basis by turnin the flag on and
44083         - There are bunch of DOMWindow object in the page (that is, there are many iframes.)
44084
44085         This change eliminates Shadow DOM related per-context properties from DOMWindow for getting rid of that slowness.
44086
44087         * dom/ContextFeatures.cpp:
44088         * dom/ContextFeatures.h: Removed shadowDOMEnabled() method and related enum entry.
44089         * dom/Position.cpp:
44090         (WebCore::Position::Position):
44091         (WebCore::Position::findParent):
44092         * dom/TreeScope.cpp:
44093         (WebCore::TreeScope::getSelection):
44094         * dom/make_names.pl: Re-introduced "runtimeConditional" directive.
44095         (defaultTagPropertyHash):
44096         (printConstructorInterior):
44097         (printFactoryCppFile):
44098         (printWrapperFunctions):
44099         (printWrapperFactoryCppFile):
44100         * html/HTMLTagNames.in:
44101         * html/shadow/HTMLContentElement.cpp:
44102         (WebCore::contentTagName):
44103         * page/DOMWindow.idl:
44104
44105 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
44106
44107         Make RenderObject destruction during detach a top-down operation
44108         https://bugs.webkit.org/show_bug.cgi?id=98336
44109
44110         Reviewed by Eric Seidel.
44111
44112         detach() is a DOM-driven operation that destroys the renderers bottom-up.
44113         While this is correct, it causes extra-work to be done (tree cleaning, ...)
44114         as it doesn't know about the render tree's structure.
44115
44116         The render tree on the other side already supports top-down operations
44117         but it was overriden by the DOM side of detach.
44118
44119         This change only makes ContainerNode::detach do a top-down render tree
44120         destruction. This is a required step towards doing smarter destruction.
44121
44122         Refactoring covered by existing tests.
44123
44124         * dom/ContainerNode.cpp:
44125         (WebCore::ContainerNode::detach):
44126         Changed the method to do a top-down destruction.
44127
44128         * dom/Node.cpp:
44129         (WebCore::Node::detach):
44130         Added this ASSERT that ensures that we have properly cleaned up the
44131         whole DOM subtree. The only exception is child content belonging to a
44132         flow-thread as the code will shuffle the renderers under the flow-thread.
44133
44134         * rendering/RenderObject.cpp:
44135         (WebCore::RenderObject::willBeDestroyed):
44136         As we don't update the node's renderer on the DOM side, do it here.
44137         The upside is that it ensures that we don't left any stray renderer
44138         in the tree.
44139
44140         * rendering/RenderObjectChildList.cpp:
44141         (WebCore::RenderObjectChildList::destroyLeftoverChildren):
44142         Removed the calls to setRenderer as they are redundant with what we do
44143         in willBeDestroyed.
44144
44145         * rendering/RenderTextFragment.cpp:
44146         (WebCore::RenderTextFragment::setText):
44147         Removed some now unneeded code, replaced by an ASSERT. This is because
44148         destroying m_firstLetter would automatically reset the node's renderer
44149         in destroyLeftoverChildren.
44150
44151 2012-10-16  Joseph Pecoraro  <pecoraro@apple.com>
44152
44153         HTMLSelectElement::optionSelectedByUser confuses listIndex and optionIndex
44154         https://bugs.webkit.org/show_bug.cgi?id=99523
44155
44156         Reviewed by Simon Fraser.
44157
44158         There was a call site where the optionIndex was being passed to a
44159         function that expected the listIndex. Convert appropriately.
44160
44161         Extends Test: platform/mac/fast/objc/dom-html-select-activate.html
44162
44163         * html/HTMLSelectElement.cpp:
44164         (WebCore::HTMLSelectElement::optionSelectedByUser):
44165
44166 2012-10-16  Jian Li  <jianli@chromium.org>
44167
44168         Rename feature define ENABLE_WIDGET_REGION to ENABLE_DRAGGBALE_REGION
44169         https://bugs.webkit.org/show_bug.cgi?id=98975
44170
44171         Reviewed by Adam Barth.
44172
44173         Renaming is needed to better match with the draggable region code.
44174
44175         No new tests due to no functional change.
44176
44177         * Configurations/FeatureDefines.xcconfig:
44178         * DerivedSources.make:
44179         * WebCore.exp.in:
44180         * css/CSSComputedStyleDeclaration.cpp:
44181         (WebCore):
44182         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
44183         * css/CSSParser.cpp:
44184         (WebCore::CSSParser::parseValue):
44185         * css/CSSProperty.cpp:
44186         (WebCore::CSSProperty::isInheritedProperty):
44187         * css/CSSPropertyNames.in:
44188         * css/CSSValueKeywords.in:
44189         * css/StyleResolver.cpp:
44190         (WebCore::StyleResolver::applyProperty):
44191         * dom/Document.cpp:
44192         (WebCore::Document::Document):
44193         (WebCore):
44194         (WebCore::Document::reportMemoryUsage):
44195         * dom/Document.h:
44196         (WebCore):
44197         (Document):
44198         * page/Chrome.cpp:
44199         (WebCore):
44200         * page/ChromeClient.h:
44201         (ChromeClient):
44202         * page/FrameView.cpp:
44203         (WebCore::FrameView::layout):
44204         (WebCore):
44205         (WebCore::FrameView::paintContents):
44206         * page/FrameView.h:
44207         (FrameView):
44208         * rendering/RenderInline.cpp:
44209         (WebCore):
44210         (WebCore::RenderInline::addAnnotatedRegions):
44211         * rendering/RenderInline.h:
44212         (RenderInline):
44213         * rendering/RenderLayer.cpp:
44214         (WebCore::RenderLayer::scrollTo):
44215         (WebCore::RenderLayer::setHasHorizontalScrollbar):
44216         (WebCore::RenderLayer::setHasVerticalScrollbar):
44217         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
44218         * rendering/RenderListBox.cpp:
44219         (WebCore::RenderListBox::setHasVerticalScrollbar):
44220         * rendering/RenderObject.cpp:
44221         (WebCore::RenderObject::styleWillChange):
44222         (WebCore):
44223         (WebCore::RenderObject::addAnnotatedRegions):
44224         * rendering/RenderObject.h:
44225         (WebCore::AnnotatedRegionValue::operator==):
44226         (AnnotatedRegionValue):
44227         (RenderObject):
44228         * rendering/style/RenderStyle.h:
44229         * rendering/style/RenderStyleConstants.h:
44230         * rendering/style/StyleRareNonInheritedData.cpp:
44231         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
44232         (WebCore::StyleRareNonInheritedData::operator==):
44233         * rendering/style/StyleRareNonInheritedData.h:
44234         (StyleRareNonInheritedData):
44235
44236 2012-10-16  James Simonsen  <simonjam@chromium.org>
44237
44238         [Page Visibility API] View-less documents should report as hidden
44239         https://bugs.webkit.org/show_bug.cgi?id=99410
44240
44241         Reviewed by Tony Gentilcore.
44242
44243         Test: fast/events/page-visibility-null-view.html
44244
44245         * dom/Document.cpp:
44246         (WebCore::Document::visibilityState):
44247
44248 2012-10-16  Michael Saboff  <msaboff@apple.com>
44249
44250         Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
44251         https://bugs.webkit.org/show_bug.cgi?id=99484
44252
44253         Reviewed by Eric Seidel.
44254
44255         Changed macro name to align with it's purpose, therefore changed USE(8BIT_TEXTRUN) to ENABLE(8BIT_TEXTRUN).
44256
44257         No new tests.  Changed macro name, no functional change.
44258
44259         * platform/graphics/TextRun.h:
44260         (WebCore::TextRun::TextRun):
44261         (WebCore::TextRun::subRun):
44262         * rendering/RenderBlock.cpp:
44263         (WebCore::RenderBlock::constructTextRun):
44264         * rendering/RenderBlock.h:
44265         (RenderBlock):
44266
44267 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44268
44269         [Qt] REGRESSION(r131485): It broke the build
44270         https://bugs.webkit.org/show_bug.cgi?id=99499
44271
44272         Unreviewed build (warning) fix.
44273
44274         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44275         (WebCore::TextureMapperShaderProgram::getLocation):
44276
44277 2012-10-16  David Grogan  <dgrogan@chromium.org>
44278
44279         Inspector: Don't fire assert when inspecting an empty db
44280         https://bugs.webkit.org/show_bug.cgi?id=99370
44281
44282         Reviewed by Vsevolod Vlasov.
44283
44284         * inspector/InspectorIndexedDBAgent.cpp:
44285         (WebCore):
44286
44287 2012-10-16  Tony Chang  <tony@chromium.org>
44288
44289         Unreviewed, try to fix the Apple Win build by forcing a rebuild of RenderingAllInOne.cpp.
44290
44291         * rendering/RenderingAllInOne.cpp:
44292
44293 2012-10-16  Andrew Scherkus  <scherkus@chromium.org>
44294
44295         Fix crash in WebCore::MediaControlPanelElement::makeTransparent()
44296         https://bugs.webkit.org/show_bug.cgi?id=97951
44297
44298         Reviewed by Simon Fraser.
44299
44300         No new tests as it's a speculative fix based on crash dump analysis.
44301      
44302         Despite MediaControlPanelElement checking for document()->page() nullity in other places, it forgot one check in makeTransparent().
44303
44304         * html/shadow/MediaControlElements.cpp:
44305         (WebCore::MediaControlPanelElement::makeTransparent):
44306
44307 2012-10-16  Emil A Eklund  <eae@chromium.org>
44308
44309         Remove special-case flooring of baselinePosition for replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44310         https://bugs.webkit.org/show_bug.cgi?id=99376
44311
44312         Reviewed by Levi Weintraub.
44313
44314         In r122769 (bug 91410) we added a special-case handling for
44315         replaced elements in InlineFlowBox::placeBoxesInBlockDirection
44316         to work around positioning issues in a couple of svg tests.
44317         This was needed to compensate for a workaround in the table
44318         painting code that was fixed in r131358 (bug 99364). As such the
44319         special-case handling for replaced elements is no longer needed
44320         in InlineFlowBox::placeBoxesInBlockDirection.
44321
44322         Furthermore this caused problems with caret repainting leaving
44323         residual pixels which motivated this change.
44324
44325         No new tests, have not been able to write a repaint test to
44326         demonstrate the caret repaint issue.
44327
44328         * rendering/InlineFlowBox.cpp:
44329         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
44330
44331 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44332
44333         Some #include hygiene
44334         https://bugs.webkit.org/show_bug.cgi?id=99500
44335
44336         Reviewed by Tony Chang.
44337
44338         Clean up some #includes, mostly related to GraphicsLayer.h. In many
44339         cases this can be replaced by PlatformLayer.h.
44340         
44341         Remove an #include of PluginViewBase.h from Page.h, which was a source
44342         of #include fan-out.
44343
44344         * html/canvas/CanvasRenderingContext2D.h:
44345         * page/Page.h:
44346         * page/scrolling/ScrollingCoordinator.h:
44347         * page/scrolling/ScrollingStateNode.h:
44348         * page/scrolling/mac/ScrollingStateNodeMac.mm:
44349         * platform/graphics/GraphicsContext3D.h:
44350         * platform/graphics/MediaPlayer.h:
44351         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
44352         * platform/graphics/gpu/DrawingBuffer.h:
44353         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
44354         * plugins/PluginViewBase.h:
44355
44356 2012-10-16  Adam Barth  <abarth@webkit.org>
44357
44358         Document::adoptNode shouldn't special-case <iframe>
44359         https://bugs.webkit.org/show_bug.cgi?id=99247
44360
44361         Reviewed by Ryosuke Niwa.
44362
44363         The special case was added in http://trac.webkit.org/changeset/75293 to
44364         fix a bug with magic iframes. Originally, I planned to remove this
44365         special case, but further investigation reveals that other browsers
44366         throw exceptions for other frame owner elements as well. Now we treat
44367         all frame owner elements the same way.
44368
44369         Test: fast/frames/adopt-object-into-itself.html
44370
44371         * dom/Document.cpp:
44372         (WebCore::Document::adoptNode):
44373
44374 2012-10-16  Dominik Röttsches  <dominik.rottsches@intel.com>
44375
44376         Init timeout flag in ResourceErrorMac
44377         https://bugs.webkit.org/show_bug.cgi?id=99478
44378
44379         Reviewed by Alexey Proskuryakov.
44380
44381         On construction from platform error types, initialize the timeout flag 
44382         to true if the error results from a timeout.
44383
44384         No new tests, covered by tests that will be added in bug 74802.
44385
44386         * platform/network/mac/ResourceErrorMac.mm:
44387         (WebCore::ResourceError::platformLazyInit): Initializing timeout flag if the error was a timeout.
44388
44389 2012-10-16  Tony Chang  <tony@chromium.org>
44390
44391         input[type=range] as a flex item renders thumb at wrong position
44392         https://bugs.webkit.org/show_bug.cgi?id=98666
44393
44394         Reviewed by Ojan Vafai.
44395
44396         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
44397         The previous code was trying to set the height to 100% and had a bunch of hacks in
44398         the renderer code to set an explicit height. Using the new flexbox allows us to
44399         remove these renderer hacks.
44400
44401         Test: css3/flexbox/flexitem-stretch-range.html
44402
44403         * css/html.css:
44404         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
44405         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
44406         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
44407         no longer setting top/left in the layout code.
44408         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
44409         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
44410         * html/RangeInputType.cpp:
44411         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
44412         since the height of the control should change when adding/removing a datalist.
44413         * html/shadow/SliderThumbElement.cpp:
44414         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
44415         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
44416         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
44417         we use the intrinsic size.
44418         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
44419         This used to be handled in the thumb's layout method, but I deleted that.
44420         * html/shadow/SliderThumbElement.h:
44421         * rendering/RenderSlider.cpp:
44422         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
44423         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
44424         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
44425         and expects the input to also have a height of 1px.  It worked before because the height of the input
44426         didn't depend on the height of its children.
44427         * rendering/RenderSlider.h: Fix indentation.
44428         (RenderSlider): Use new flexible box.
44429
44430 2012-10-16  Dima Gorbik  <dgorbik@apple.com>
44431
44432         Remove Platform.h include from the header files.
44433         https://bugs.webkit.org/show_bug.cgi?id=98665
44434
44435         Reviewed by Eric Seidel.
44436
44437         We don't want other clients that include WebKit headers to know about Platform.h.
44438
44439         No new tests.
44440
44441         * platform/MemoryPressureHandler.h:
44442         * platform/graphics/filters/arm/FECompositeArithmeticNEON.h:
44443         * platform/graphics/filters/arm/FEGaussianBlurNEON.h:
44444         * platform/graphics/filters/arm/FELightingNEON.h:
44445
44446 2012-10-16  Xianzhu Wang  <wangxianzhu@chromium.org>
44447
44448         [Chromium] Android: Need a way to get appropriate font for some specific characters.
44449         https://bugs.webkit.org/show_bug.cgi?id=67587
44450
44451         Reviewed by Adam Barth.
44452
44453         Use the new Skia API SkGetFallbackFamilyNameForChar() to get the family name for individual characters.
44454
44455         No new tests. The following existing tests pass with the change:
44456         fast/writing-mode/vertical-subst-font-vert-no-dflt.html
44457         fast/dynamic/text-combine.html
44458         fast/writing-mode/japanese-rl-text.html
44459         fast/writing-mode/japanese-rl-selection.html
44460         fast/writing-mode/japanese-lr-text.html
44461         fast/repaint/japanese-rl-selection-repaint.html
44462         fast/writing-mode/border-vertical-lr.html
44463
44464         * platform/graphics/chromium/FontCacheAndroid.cpp:
44465         (WebCore::FontCache::getFontDataForCharacters):
44466
44467 2012-10-16  Tommy Widenflycht  <tommyw@google.com>
44468
44469         MediaStream API: Add the chromium API for RTCDataChannel
44470         https://bugs.webkit.org/show_bug.cgi?id=99435
44471
44472         Reviewed by Adam Barth.
44473
44474         Adding WebRTCDataChannel.
44475
44476         Test: fast/mediastream/RTCPeerConnection-datachannel.html
44477
44478         * WebCore.gypi:
44479         * platform/chromium/support/WebRTCDataChannel.cpp: Added.
44480         (WebKit):
44481         (ExtraDataContainer):
44482         (WebKit::ExtraDataContainer::ExtraDataContainer):
44483         (WebKit::ExtraDataContainer::extraData):
44484         (WebKit::WebRTCDataChannel::WebRTCDataChannel):
44485         (WebKit::WebRTCDataChannel::initialize):
44486         (WebKit::WebRTCDataChannel::assign):
44487         (WebKit::WebRTCDataChannel::reset):
44488         (WebKit::WebRTCDataChannel::operator PassRefPtr<WebCore::RTCDataChannelDescriptor>):
44489         (WebKit::WebRTCDataChannel::operator WebCore::RTCDataChannelDescriptor*):
44490         (WebKit::WebRTCDataChannel::extraData):
44491         (WebKit::WebRTCDataChannel::setExtraData):
44492         (WebKit::WebRTCDataChannel::label):
44493         (WebKit::WebRTCDataChannel::reliable):
44494         (WebKit::WebRTCDataChannel::setBufferedAmount):
44495         (WebKit::WebRTCDataChannel::readyStateChanged):
44496         (WebKit::WebRTCDataChannel::dataArrived):
44497         (WebKit::WebRTCDataChannel::error):
44498         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
44499         (WebCore::RTCPeerConnectionHandlerChromium::negotiationNeeded):
44500         (WebCore::RTCPeerConnectionHandlerChromium::didGenerateICECandidate):
44501         (WebCore):
44502         (WebCore::RTCPeerConnectionHandlerChromium::didChangeReadyState):
44503         (WebCore::RTCPeerConnectionHandlerChromium::didChangeICEState):
44504         (WebCore::RTCPeerConnectionHandlerChromium::didRemoveRemoteStream):
44505
44506 2012-10-16  Brady Eidson  <beidson@apple.com>
44507
44508         Update indentation in *ResourceLoader headers to match modern WebKit style
44509         https://bugs.webkit.org/show_bug.cgi?id=99487
44510
44511         Reviewed by Beth Dakin.
44512
44513         I'm going to be working on these classes and the indentation is driving me crazy.
44514
44515         * loader/MainResourceLoader.h:
44516         (WebCore):
44517         (MainResourceLoader):
44518         (WebCore::MainResourceLoader::isLoadingMultipartContent):
44519
44520         * loader/NetscapePlugInStreamLoader.h:
44521         (WebCore):
44522         (NetscapePlugInStreamLoaderClient):
44523         (WebCore::NetscapePlugInStreamLoaderClient::didFinishLoading):
44524         (WebCore::NetscapePlugInStreamLoaderClient::wantsAllStreams):
44525         (WebCore::NetscapePlugInStreamLoaderClient::~NetscapePlugInStreamLoaderClient):
44526         (NetscapePlugInStreamLoader):
44527
44528         * loader/ResourceLoader.h:
44529         (WebCore):
44530         (ResourceLoader):
44531         (WebCore::ResourceLoader::documentLoader):
44532         (WebCore::ResourceLoader::originalRequest):
44533         (WebCore::ResourceLoader::identifier):
44534         (WebCore::ResourceLoader::didReceiveCachedMetadata):
44535         (WebCore::ResourceLoader::willStopBufferingData):
44536         (WebCore::ResourceLoader::shouldUseCredentialStorage):
44537         (WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
44538         (WebCore::ResourceLoader::didCancelAuthenticationChallenge):
44539         (WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
44540         (WebCore::ResourceLoader::receivedCancellation):
44541         (WebCore::ResourceLoader::url):
44542         (WebCore::ResourceLoader::handle):
44543         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
44544         (WebCore::ResourceLoader::reachedTerminalState):
44545         (WebCore::ResourceLoader::request):
44546         (WebCore::ResourceLoader::cancelled):
44547         (WebCore::ResourceLoader::defersLoading):
44548
44549 2012-10-16  Beth Dakin  <bdakin@apple.com>
44550
44551         https://bugs.webkit.org/show_bug.cgi?id=99254
44552         Make ScrollingTree an actual tree of nodes, and have it reflect the 
44553         ScrollingStateTree
44554
44555         Reviewed by Simon Fraser.
44556
44557         This patch finally makes the ScrollingTree over on the 
44558         ScrollingThread aware of the changes that we have been making to the 
44559         ScrollingStateTree.
44560
44561         First, it makes ScrollingTreeNode a much more generic class, similar 
44562         to ScrollingStateNode. It is an abstract class and we will add other 
44563         types of nodes such as ScrollingTreeFixedNodes that will inherit from 
44564         this class. 
44565
44566         All of the scrolling functionality that was in ScrollingTreeNode has 
44567         been moved to ScrollingTreeScrollingNode. And likewise, 
44568         ScrollingTreeNodeMac has been re-named to 
44569         ScrollingTreeScrollingNodeMac. 
44570
44571         And finally, instead of just updating and creating the root node, 
44572         ScrollingTree now recurses through the whole ScrollingStateTree to 
44573         create and update a full tree of nodes.
44574
44575         New files and moves files.
44576         * WebCore.xcodeproj/project.pbxproj:
44577
44578         Add a getter for the children vector since we need to recurse it in 
44579         ScrollingTree.
44580         * page/scrolling/ScrollingStateNode.h:
44581         (WebCore::ScrollingStateNode::children):
44582         (ScrollingStateNode):
44583
44584         m_rootNode is now a ScrollingTreeScrollingNode.
44585         * page/scrolling/ScrollingTree.cpp:
44586         (WebCore::ScrollingTree::ScrollingTree):
44587
44588         Instead of just updating the root node, call two new functions that 
44589         will take care of updating the whole tree.
44590         (WebCore::ScrollingTree::commitNewTreeState):
44591
44592         This function ecurses through the ScrollingStateTree and updates the 
44593         corresponding ScrollingTreeNodes.
44594         (WebCore::ScrollingTree::updateNodesFromStateNode):
44595
44596         This function takes the ScrollingStateTree's list of removed nodes 
44597         and removes the corresponding nodes from the ScrollingTree. It will 
44598         destroy the nodes after removing it as long as it's not the root 
44599         node. I think it's the safest choice for now to never remove the root 
44600         node. 
44601         (WebCore::ScrollingTree::removeDestroyedNodes):
44602
44603         ScrollingTree now keeps a HashMap mapping ScrollingNodeIDs to 
44604         ScrollingTreeNodes.
44605         * page/scrolling/ScrollingTree.h:
44606
44607         All of the scrolling-related functionality has been moved from this 
44608         class to new class ScrollingTreeScrollingNode. And some basic tree 
44609         traversal functionality has been added.
44610         * page/scrolling/ScrollingTreeNode.cpp:
44611         (WebCore::ScrollingTreeNode::ScrollingTreeNode):
44612         (WebCore::ScrollingTreeNode::appendChild):
44613         (WebCore::ScrollingTreeNode::removeChild):
44614         * page/scrolling/ScrollingTreeNode.h:
44615         (WebCore):
44616         (ScrollingTreeNode):
44617         (WebCore::ScrollingTreeNode::scrollingNodeID):
44618         (WebCore::ScrollingTreeNode::setScrollingNodeID):
44619         (WebCore::ScrollingTreeNode::parent):
44620         (WebCore::ScrollingTreeNode::setParent):
44621         (WebCore::ScrollingTreeNode::scrollingTree):
44622
44623         This class contains all of the scrolling-related work that used to be 
44624         done in ScrollingTreeNode.
44625         * page/scrolling/ScrollingTreeScrollingNode.cpp: Added.
44626         (WebCore):
44627         (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
44628         (WebCore::ScrollingTreeScrollingNode::~ScrollingTreeScrollingNode):
44629         (WebCore::ScrollingTreeScrollingNode::update):
44630         * page/scrolling/ScrollingTreeScrollingNode.h: Added.
44631         (WebCore):
44632         (ScrollingTreeScrollingNode):
44633         (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionOnMainThread):
44634         (WebCore::ScrollingTreeScrollingNode::viewportRect):
44635         (WebCore::ScrollingTreeScrollingNode::contentsSize):
44636         (WebCore::ScrollingTreeScrollingNode::horizontalScrollElasticity):
44637         (WebCore::ScrollingTreeScrollingNode::verticalScrollElasticity):
44638         (WebCore::ScrollingTreeScrollingNode::hasEnabledHorizontalScrollbar):
44639         (WebCore::ScrollingTreeScrollingNode::hasEnabledVerticalScrollbar):
44640         (WebCore::ScrollingTreeScrollingNode::canHaveScrollbars):
44641         (WebCore::ScrollingTreeScrollingNode::scrollOrigin):
44642
44643         I noticed this whitespace error and had to fix it.
44644         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
44645         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
44646
44647         Include ScrollingTreeScrollingNodeMac.h instead of 
44648         ScrollingTreeNodeMac.h
44649         * page/scrolling/mac/ScrollingTreeMac.mm:
44650
44651         This class was just re-named.
44652         * page/scrolling/mac/ScrollingTreeNodeMac.h: Removed.
44653         * page/scrolling/mac/ScrollingTreeNodeMac.mm: Removed.
44654         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h: Copied from page/scrolling/mac/ScrollingTreeNodeMac.h.
44655         (ScrollingTreeScrollingNodeMac):
44656         * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm: Copied from page/scrolling/mac/ScrollingTreeNodeMac.mm.
44657         (WebCore::ScrollingTreeScrollingNode::create):
44658         (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
44659         (WebCore::ScrollingTreeScrollingNodeMac::~ScrollingTreeScrollingNodeMac):
44660         (WebCore::ScrollingTreeScrollingNodeMac::update):
44661         (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
44662         (WebCore::ScrollingTreeScrollingNodeMac::allowsHorizontalStretching):
44663         (WebCore::ScrollingTreeScrollingNodeMac::allowsVerticalStretching):
44664         (WebCore::ScrollingTreeScrollingNodeMac::stretchAmount):
44665         (WebCore::ScrollingTreeScrollingNodeMac::pinnedInDirection):
44666         (WebCore::ScrollingTreeScrollingNodeMac::canScrollHorizontally):
44667         (WebCore::ScrollingTreeScrollingNodeMac::canScrollVertically):
44668         (WebCore::ScrollingTreeScrollingNodeMac::shouldRubberBandInDirection):
44669         (WebCore::ScrollingTreeScrollingNodeMac::absoluteScrollPosition):
44670         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollBy):
44671         (WebCore::ScrollingTreeScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
44672         (WebCore::ScrollingTreeScrollingNodeMac::startSnapRubberbandTimer):
44673         (WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
44674         (WebCore::ScrollingTreeScrollingNodeMac::scrollPosition):
44675         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPosition):
44676         (WebCore::ScrollingTreeScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
44677         (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
44678         (WebCore::ScrollingTreeScrollingNodeMac::minimumScrollPosition):
44679         (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
44680         (WebCore::ScrollingTreeScrollingNodeMac::scrollBy):
44681         (WebCore::ScrollingTreeScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
44682         (WebCore::ScrollingTreeScrollingNodeMac::updateMainFramePinState):
44683         (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
44684
44685 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44686
44687         Add a new layer type for the page tiled cache layer
44688         https://bugs.webkit.org/show_bug.cgi?id=99491
44689
44690         Reviewed by Dean Jackson.
44691
44692         In preparation for using tile cache layers in place of CATiledLayer,
44693         add a new PlatformCALayer layer type LayerTypePageTileCacheLayer,
44694         since the page tile cache will have some different behavior from
44695         other tile cache layers.
44696         
44697         Generalize code that was looking at LayerTypeTileCacheLayer to use
44698         usesTileCacheLayer() if it applies to both types of tile caches.
44699
44700         * platform/graphics/ca/GraphicsLayerCA.cpp:
44701         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
44702         (WebCore::GraphicsLayerCA::recursiveCommitChanges): Show the tile
44703         wash for tiled layers as well as layers with transforms (the tile
44704         wash is just for debugging).
44705         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
44706         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
44707         * platform/graphics/ca/PlatformCALayer.h:
44708         (WebCore::PlatformCALayer::usesTileCacheLayer):
44709         (PlatformCALayer):
44710         * platform/graphics/ca/mac/PlatformCALayerMac.mm:
44711         (PlatformCALayer::PlatformCALayer):
44712         (PlatformCALayer::~PlatformCALayer):
44713         (PlatformCALayer::tiledBacking):
44714         * platform/graphics/mac/WebLayer.mm:
44715         (drawLayerContents): Avoid double-drawing the repaint counter in tile cache layers.
44716
44717 2012-10-16  Stephen Chenney  <schenney@chromium.org> 
44718         An feImage that tries to render itself should be stopped
44719         https://bugs.webkit.org/show_bug.cgi?id=94652
44720
44721         Reviewed by Eric Seidel.
44722
44723         An SVG feImage filter element will accept, as the src to render, an
44724         SVG document that makes use of the feImage itself. This causes the
44725         feImage to try to draw itself while already in the process of drawing
44726         itself. Various problems arise from this. The invariant we wish to
44727         maintain is that no element in the src tree of an feImage element
44728         refers to that feImage.
44729
44730         This patch adds a flag to all FilterData objects that tracks whether or
44731         not the filter is currently applying itself, and avoids applying the
44732         filter recursively.
44733
44734         While it may seem better to catch this problem when the src is set, or
44735         when the filter is built, that turns out to be challenging and
44736         inefficient. Say we choose to test when the src atttribute is set. To
44737         do so would require looking through all of the DOM nodes that will be
44738         rendered for the src, finding all resources used, and checking if any
44739         of them make use fo the feImage element that we are setting the source
44740         for. The infrastructure is not in place to do that, and it would
44741         involve walking a potentially very large portion of the DOM in order
44742         to detect a very rare situation. Note that it is not enough just to
44743         walk the DOM directly under the src; we also need to recursively follow any
44744         resource links to see if they use the feImage (e.g. patterns or
44745         masks or use or ...).
44746
44747         If we instead try to use the renderer node to find self referencing,
44748         we need to recursively walk a potentially very large render tree,
44749         tracing all resources in search of the feImage. This would need to be
44750         done every time the filter is built, which is again a significant
44751         overhead for a situation that is very unlikely to occur. And we do not
44752         have methods that make it easy to find feImage filter effect nodes; they are
44753         hidden behind filter resource nodes.
44754
44755         Hence the runtime check to catch the problem. The check must be in
44756         FilterData and RenderSVGResourceFilter code because we must prevent
44757         the destruction of the feImage when we encounter it recursively.
44758
44759         This patch also renames FilterData::builded to FilterData::isBuilt.
44760
44761         Test: svg/filters/feImage-self-referencing.html
44762
44763         * rendering/svg/RenderSVGResourceFilter.cpp:
44764         (WebCore::ApplyingFilterEffectGuard): Guard to ensure that, in the future, we always
44765         clear the isApplying flag even if the postApplyResource method returns early.
44766         (WebCore::RenderSVGResourceFilter::applyResource): Do not apply a resource that is already applying and
44767         rename builded to isBuilt.
44768         (WebCore::RenderSVGResourceFilter::postApplyResource): Mark a resource as applying and clear after
44769         it is done. Abort if a resource is already applying when the method begins. Rename builded to isBuilt.
44770         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): Rename builded to isBuilt.
44771         * rendering/svg/RenderSVGResourceFilter.h:
44772         (WebCore::FilterData::FilterData):
44773         (FilterData): Add isApplying and rename builded to isBuilt.
44774
44775 2012-10-16  Nate Chapin  <japhet@chromium.org>
44776
44777         sendResourceLoadCallbacks() is poorly named
44778         https://bugs.webkit.org/show_bug.cgi?id=99482
44779
44780         Reviewed by Alexey Proskuryakov.
44781
44782         In both CachedResource and ResourceLoader, rename sendResourceLoadCallbacks()
44783         to shouldSendResourceLoadCallbacks() to better indicate that it is a simple getter.
44784
44785         No new tests, simple renaming.
44786
44787         * loader/FrameLoader.cpp:
44788         (WebCore::FrameLoader::loadedResourceFromMemoryCache):
44789         * loader/ResourceLoader.h:
44790         (WebCore::ResourceLoader::shouldSendResourceLoadCallbacks):
44791         * loader/cache/CachedResource.h:
44792         (WebCore::CachedResource::shouldSendResourceLoadCallbacks):
44793
44794 2012-10-16  Chris Rogers  <crogers@google.com>
44795
44796         Rename some AudioNodes
44797         https://bugs.webkit.org/show_bug.cgi?id=99358
44798
44799         Reviewed by Daniel Bates.
44800
44801         Here's a list of the node names, showing the changing ones:
44802             AudioBufferSourceNode
44803             MediaElementAudioSourceNode
44804             MediaStreamAudioSourceNode
44805             JavaScriptAudioNode ------------> ScriptProcessorNode
44806             RealtimeAnalyserNode ------------> AnalyserNode
44807             AudioGainNode ------------> GainNode
44808             DelayNode
44809             BiquadFilterNode
44810             AudioPannerNode ------------> PannerNode
44811             ConvolverNode
44812             AudioChannelSplitter ------------> ChannelSplitterNode
44813             AudioChannelMerger ------------> ChannelMergerNode
44814             DynamicsCompressorNode
44815             Oscillator ------------> OscillatorNode
44816
44817         * CMakeLists.txt:
44818         * DerivedSources.make:
44819         * DerivedSources.pri:
44820         * GNUmakefile.list.am:
44821         * Modules/webaudio/AnalyserNode.cpp: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.cpp.
44822         * Modules/webaudio/AnalyserNode.idl: Renamed from Source/WebCore/Modules/webaudio/RealtimeAnalyserNode.idl.
44823         * Modules/webaudio/AudioBufferSourceNode.cpp:
44824         (WebCore::AudioBufferSourceNode::setPannerNode):
44825         * Modules/webaudio/AudioBufferSourceNode.h:
44826         (AudioBufferSourceNode):
44827         * Modules/webaudio/AudioContext.cpp:
44828         (WebCore::AudioContext::createJavaScriptNode):
44829         (WebCore::AudioContext::createPanner):
44830         (WebCore::AudioContext::createAnalyser):
44831         (WebCore::AudioContext::createGainNode):
44832         (WebCore::AudioContext::createChannelSplitter):
44833         (WebCore::AudioContext::createChannelMerger):
44834         (WebCore::AudioContext::createOscillator):
44835         * Modules/webaudio/AudioContext.h:
44836         (WebCore):
44837         (AudioContext):
44838         * Modules/webaudio/AudioContext.idl:
44839         * Modules/webaudio/ChannelMergerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.cpp.
44840         * Modules/webaudio/ChannelMergerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.h.
44841         (WebCore):
44842         (ChannelMergerNode):
44843         * Modules/webaudio/ChannelMergerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelMerger.idl.
44844         * Modules/webaudio/ChannelSplitterNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.cpp.
44845         * Modules/webaudio/ChannelSplitterNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.h.
44846         (WebCore):
44847         (ChannelSplitterNode):
44848         * Modules/webaudio/ChannelSplitterNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioChannelSplitter.idl.
44849         * Modules/webaudio/DOMWindowWebAudio.idl:
44850         * Modules/webaudio/GainNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.cpp.
44851         * Modules/webaudio/GainNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.h.
44852         * Modules/webaudio/GainNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioGainNode.idl.
44853         * Modules/webaudio/OscillatorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/Oscillator.cpp.
44854         * Modules/webaudio/OscillatorNode.h: Renamed from Source/WebCore/Modules/webaudio/Oscillator.h.
44855         * Modules/webaudio/OscillatorNode.idl: Renamed from Source/WebCore/Modules/webaudio/Oscillator.idl.
44856         * Modules/webaudio/PannerNode.cpp: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.cpp.
44857         * Modules/webaudio/PannerNode.h: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.h.
44858         (WebCore):
44859         * Modules/webaudio/PannerNode.idl: Renamed from Source/WebCore/Modules/webaudio/AudioPannerNode.idl.
44860         * Modules/webaudio/ScriptProcessorNode.cpp: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.cpp.
44861         * Modules/webaudio/ScriptProcessorNode.h: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.h.
44862         (WebCore):
44863         * Modules/webaudio/ScriptProcessorNode.idl: Renamed from Source/WebCore/Modules/webaudio/JavaScriptAudioNode.idl.
44864         * Modules/webaudio/WaveTable.cpp:
44865         (WebCore::WaveTable::createSine):
44866         (WebCore::WaveTable::createSquare):
44867         (WebCore::WaveTable::createSawtooth):
44868         (WebCore::WaveTable::createTriangle):
44869         (WebCore::WaveTable::generateBasicWaveform):
44870         * Target.pri:
44871         * UseJSC.cmake:
44872         * WebCore.gypi:
44873         * WebCore.xcodeproj/project.pbxproj:
44874         * bindings/js/JSScriptProcessorNodeCustom.cpp: Renamed from Source/WebCore/bindings/js/JSJavaScriptAudioNodeCustom.cpp.
44875         (WebCore):
44876         (WebCore::JSScriptProcessorNode::visitChildren):
44877         * dom/EventTarget.h:
44878         (WebCore):
44879         * dom/EventTargetFactory.in:
44880
44881 2012-10-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
44882
44883         [Texmap] Refactor TextureMapperShaderManager to be clearer
44884         https://bugs.webkit.org/show_bug.cgi?id=86048
44885
44886         Reviewed by Martin Robinson.
44887
44888         Previous implementation of TextureMapperShaderManager was very verbose, calling for too
44889         many casts and ambiguous ownership.
44890         This refactor does the following:
44891         1. TextureMapperShaderProgram is one class without subclasses.
44892         2. Uniform/Attribute accessors are generated by special macros (TEXMAP_DECLARE_...) that
44893            generate both the C++ access function, as well as the GLSL name of the variable. This
44894            allows adding/removing variables from a shader without adding broiler-plate code like
44895            before.
44896
44897         After this change TextureMapperShaderManager has only one responsibility - dealing with
44898         TextureMapperGL's built-in shaders and their lifecycle. Preparing filters etc. is done
44899         in TextureMapperGL.
44900
44901         This is a refactor without new functionality. It has been verified to not break any existing
44902         relevant test.
44903
44904         * platform/graphics/texmap/TextureMapperGL.cpp:
44905         (WebCore::TextureMapperGL::drawBorder):
44906         (WebCore::TextureMapperGL::drawQuad):
44907         (WebCore::TextureMapperGL::drawTextureRectangleARB):
44908         (WebCore::TextureMapperGL::drawTexture):
44909         (WebCore::TextureMapperGL::drawTextureWithAntialiasing):
44910         (WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
44911         (WebCore::TextureMapperGL::beginClip):
44912             Use the MACRO-generated uniform accessors.
44913
44914         (WebCore):
44915         (WebCore::keyForFilterType):
44916         (WebCore::getPassesRequiredForFilter):
44917         (WebCore::gauss):
44918         (WebCore::gaussianKernel):
44919         (WebCore::prepareFilterProgram):
44920         (WebCore::TextureMapperGL::drawFiltered):
44921         (WebCore::BitmapTextureGL::applyFilters):
44922             Move the filter logic to TextureMapperGL
44923
44924         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
44925         (WebCore::TextureMapperShaderProgram::TextureMapperShaderProgram):
44926         (WebCore::TextureMapperShaderProgram::getLocation):
44927         (ShaderSpec):
44928         (WebCore::ShaderSpec::ShaderSpec):
44929         (WebCore::getShaderSpec):
44930         (WebCore::TextureMapperShaderManager::TextureMapperShaderManager):
44931         (WebCore::TextureMapperShaderManager::~TextureMapperShaderManager):
44932         (WebCore::TextureMapperShaderManager::getShaderProgram):
44933         * platform/graphics/texmap/TextureMapperShaderManager.h:
44934         (WebCore):
44935         (WebCore::TextureMapperShaderProgram::programID):
44936         (WebCore::TextureMapperShaderProgram::context):
44937         (WebCore::TextureMapperShaderProgram::create):
44938         (TextureMapperShaderProgram):
44939         (TextureMapperShaderManager):
44940             See description.
44941
44942 2012-10-16  Nico Weber  <thakis@chromium.org>
44943
44944         [chromium/mac] Make spelling indicator HighDPI
44945         https://bugs.webkit.org/show_bug.cgi?id=99417
44946
44947         Reviewed by Stephen White.
44948
44949         This is the mac version of http://trac.webkit.org/changeset/130940
44950         Since the mac and non-mac code are very similar again, merge the two
44951         code paths again.
44952
44953         Covered by editing/spelling/(inline-spelling|grammar)-markers-hidpi.html
44954
44955         * platform/graphics/skia/GraphicsContextSkia.cpp:
44956         (WebCore::GraphicsContext::drawLineForDocumentMarker):
44957
44958 2012-10-16  Tony Chang  <tony@chromium.org>
44959
44960         in a column flexbox, input overflows the box when stretched
44961         https://bugs.webkit.org/show_bug.cgi?id=99273
44962
44963         Reviewed by Ojan Vafai.
44964
44965         Fix a bug where we didn't properly subtract padding and border when overriding the child size.
44966         We didn't see this because of a performance optimization in RenderBox where we stretch children.
44967         Also apply this performance optimization in new flexbox for form controls.
44968
44969         Test: css3/flexbox/stretch-input-in-column.html
44970
44971         * rendering/RenderBox.cpp:
44972         (WebCore::flexboxChildHasStretchAlignment):
44973         (WebCore::isStretchingVerticalFlexboxChild):
44974         (WebCore::RenderBox::sizesLogicalWidthToFitContent): Apply performance optimization to form controls in new flexbox.
44975         * rendering/RenderFlexibleBox.cpp:
44976         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Properly subtract border and padding.
44977
44978 2012-10-16  Simon Fraser  <simon.fraser@apple.com>
44979
44980         REGRESSION (r128787): Fixed position div causes other elements to not update correctly
44981         https://bugs.webkit.org/show_bug.cgi?id=98579
44982
44983         Reviewed by Beth Dakin.
44984
44985         RenderLayers cache repaint rects which are computed relative to the repaint container.
44986         Repaint containers depend on whether a RenderLayerBacking has its own backing store,
44987         so if that changes, we need to recompute repaint rects for all descendants.
44988         
44989         Test: compositing/repaint/requires-backing-repaint.html
44990
44991         * rendering/RenderLayerBacking.cpp:
44992         (WebCore::RenderLayerBacking::setRequiresOwnBackingStore):
44993
44994 2012-10-16  Zan Dobersek  <zandobersek@gmail.com>
44995
44996         [GStreamer] GstBuffer ref race in WebKitWebAudioSrcLoop
44997         https://bugs.webkit.org/show_bug.cgi?id=95833
44998
44999         Reviewed by Philippe Normand.
45000
45001         The render bus used in GStreamer's implementation of AudioDestination no longer
45002         allocates memory for each of its channels. Rather than that, when looping, the
45003         data is rendered into a channel-specific GstBuffer. Each buffer is then chained
45004         to the appropriate GstPad, as has been the case before.
45005
45006         No new tests - there are tests covering this change but they are not yet working
45007         on the GTK port or any other GStreamer implementation of Web Audio.
45008
45009         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
45010         (WebCore::AudioDestinationGStreamer::AudioDestinationGStreamer):
45011         * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
45012         (_WebKitWebAudioSourcePrivate): Remove an unused member variable.
45013         (webkit_web_audio_src_init): Remove an unnecessary line.
45014         (webKitWebAudioSrcConstructed): Ditto.
45015         (webKitWebAudioSrcLoop):
45016
45017 2012-10-16  Pablo Flouret  <pablof@motorola.com>
45018
45019         Pre-process CSSGrammar.y before running through bison.
45020         https://bugs.webkit.org/show_bug.cgi?id=94290
45021
45022         Reviewed by Tony Chang.
45023
45024         Running CSSGrammar.y through a preprocessor allows the use of feature
45025         defines in all places of the yacc file (i.e. not just in C blocks).
45026         Mostly useful to be able to keep every part of a feature under feature
45027         flags for self-documenting purposes.
45028
45029         No new tests, CSSGrammar.y should be generated correctly and everything
45030         should keep working as before.
45031
45032         * CMakeLists.txt:
45033         * DerivedSources.make:
45034         * DerivedSources.pri:
45035         * GNUmakefile.am:
45036             Modify build systems to use makegrammar.pl to generate the .y files
45037             and run those through bison.
45038
45039         * WebCore.gyp/WebCore.gyp:
45040             Add a new action to preprocess the CSSGrammar.y.in file before the
45041             bison rule is run.
45042
45043         * WebCore.vcproj/WebCore.vcproj:
45044         * WebCore.xcodeproj/project.pbxproj:
45045             Add the new .y.in / .y.includes files.
45046
45047         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
45048             Also moved the top declarations section that has includes, defines,
45049             etc. to its own file. These shouldn't be touched by the first
45050             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
45051             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
45052             yet.
45053         * css/CSSGrammar.y.includes: Added.
45054             The aforementioned declarations header section. After the .y.in file
45055             is processed it will be concatenated with this one to make the
45056             CSSGrammar.y file.
45057
45058         * css/makegrammar.pl:
45059             Modify the script to handle .y.in files.
45060
45061 2012-10-16  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
45062
45063         Implement testRunner.dumpSelectionRect() in WebKitTestRunner
45064         https://bugs.webkit.org/show_bug.cgi?id=69545
45065
45066         Reviewed by Simon Fraser.
45067
45068         * WebCore.exp.in:
45069
45070 2012-10-16  Allan Sandfeld Jensen  <allan.jensen@digia.com>
45071
45072         [Qt] Implement fastBoundingPath/boundingPath distinction.
45073         https://bugs.webkit.org/show_bug.cgi?id=99471
45074
45075         Reviewed by Noam Rosenthal.
45076
45077         Tested by existing test: svg/custom/getBBox-path.svg
45078
45079         * platform/graphics/Path.cpp:
45080         * platform/graphics/qt/PathQt.cpp:
45081         (WebCore::Path::fastBoundingRect):
45082         (WebCore::Path::boundingRect):
45083
45084 2012-10-16  Rob Buis  <rbuis@rim.com>
45085
45086         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
45087         https://bugs.webkit.org/show_bug.cgi?id=99302
45088
45089         Reviewed by Yong Li.
45090
45091         Fix a warning introduced by r131335. Since in release BBLOG is empty, only enable this block in debug builds.
45092
45093         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
45094         (WebCore::GraphicsContext3D::compileShader):
45095
45096 2012-10-16  Antoine Quint  <graouts@apple.com>
45097
45098         Inspector should allow reading the compositing debug settings
45099         https://bugs.webkit.org/show_bug.cgi?id=99458
45100
45101         Reviewed by Timothy Hatcher.
45102
45103         * inspector/Inspector.json:
45104         * inspector/InspectorPageAgent.cpp:
45105         (WebCore::InspectorPageAgent::getCompositingBordersVisible):
45106         * inspector/InspectorPageAgent.h:
45107
45108 2012-10-16  Dan Bernstein  <mitz@apple.com>
45109
45110         Code to reverse a GlyphBuffer range is repeated in several places
45111         https://bugs.webkit.org/show_bug.cgi?id=99424
45112
45113         Reviewed by Adele Peterson.
45114
45115         * platform/graphics/FontFastPath.cpp:
45116         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced for loop with a call to
45117         GlyphBuffer::reverse.
45118         * platform/graphics/GlyphBuffer.h:
45119         (WebCore::GlyphBuffer::reverse): Added. Reverses the given range.
45120         (WebCore::GlyphBuffer::swap): Made private.
45121         * platform/graphics/WidthIterator.cpp:
45122         (WebCore::applyFontTransforms): Replaced for loops with calls to GlyphBuffer::reverse and
45123         corrected their bounds.
45124         * platform/graphics/mac/FontComplexTextMac.cpp:
45125         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Replaced for loop with a call to
45126         GlyphBuffer::range.
45127
45128 2012-10-16  Nate Chapin  <japhet@chromium.org>
45129
45130         Re-order CachedRawResource::data() to set m_data earlier
45131         https://bugs.webkit.org/show_bug.cgi?id=99361
45132
45133         Reviewed by Adam Barth.
45134
45135         Currently, we calculate the diff between the data parameter and m_data, call
45136         dataReceived(), then set m_data to data. If something inside dataReceived()
45137         tries to access m_data via CachedResource::resourceBuffer(), it will see the
45138         old data instead of the new data, which seems inconsistent.
45139
45140         No new tests, as no one appears to try to access m_data within dataReceived() currently.
45141
45142         * loader/cache/CachedRawResource.cpp:
45143         (WebCore::CachedRawResource::data):
45144
45145 2012-10-16  Julien Chaffraix  <jchaffraix@webkit.org>
45146
45147         Fold setCellLogicalWidths logic into RenderTableSection layout
45148         https://bugs.webkit.org/show_bug.cgi?id=99382
45149
45150         Reviewed by Eric Seidel.
45151
45152         setCellLogicalWidths was implemented as a pre-phase to laying out
45153         the table's sections. This split was artificial as any change in
45154         the columns' logical width should trigger a sections' relayout, which
45155         could propagate and mark the cells / rows as needed.
45156
45157         Merging setCellLogicalWidths into RenderTableSection::layout removes
45158         an unneeded cells walking and some clunkiness from our implementation.
45159
45160         Refactoring covered by the existing tests.
45161
45162         * rendering/RenderTable.cpp:
45163         (WebCore::RenderTable::RenderTable): Initialize our new boolean.
45164         (WebCore::RenderTable::layout):
45165         If m_columnLogicalWidthChanged, we force a relayout on our sections so that the cells and rows
45166         are marked for layout if there is the logical width change.
45167
45168         * rendering/RenderTable.h:
45169         (WebCore::RenderTable):
45170         Added a new boolean to track if a column logical width changed (m_columnLogicalWidthChanged).
45171
45172         (WebCore::RenderTable::setColumnPosition):
45173         If a column position changed, register that our column logical widths changed. This is not
45174         totally true, so added a comment about when it will be wrong.
45175
45176         * rendering/RenderTableCell.h:
45177         * rendering/RenderTableCell.cpp:
45178         (WebCore::RenderTableCell::setCellLogicalWidth):
45179         Updated the function to mark the cell and the row for layout. Also changed the argument to
45180         be an 'int' as this was what was passed in.
45181
45182         * rendering/RenderTableSection.cpp:
45183         (WebCore::RenderTableSection::layout):
45184         * rendering/RenderTableSection.h:
45185         Removed setCellLogicalWidths and merged the logic into RenderTableSection::layout. We propagate
45186         the table layout's logical widths first so that rows are marked as needing layout as appropriate.
45187
45188 2012-10-16  Takashi Sakamoto  <tasak@google.com>
45189
45190         [Meta] [Shadow] contenteditable attribute for distributed nodes.
45191         https://bugs.webkit.org/show_bug.cgi?id=90017
45192
45193         Reviewed by Dimitri Glazkov.
45194
45195         If an element is distributed to an insertion point, the element's
45196         webkit-user-modify is inherited from its shadow host.
45197
45198         No new tests, because the existing test: user-modify-inheritance.html
45199         covers this change.
45200
45201         * css/StyleResolver.cpp:
45202         (WebCore::StyleResolver::styleForElement):
45203         After an element inherits a style from its parent, override user-modify
45204         by using the shadow host's style if the element is distributed.
45205
45206 2012-10-16  Vsevolod Vlasov  <vsevik@chromium.org>
45207
45208         Web Inspector: Get rid of (now empty) JavaScriptSource and StyleSource, rename all usages to UISourceCode.
45209         https://bugs.webkit.org/show_bug.cgi?id=99469
45210
45211         Reviewed by Pavel Feldman.
45212
45213         * WebCore.gypi:
45214         * WebCore.vcproj/WebCore.vcproj:
45215         * inspector/compile-front-end.py:
45216         * inspector/front-end/BreakpointManager.js:
45217         (WebInspector.BreakpointManager.prototype._uiSourceCodeAdded):
45218         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
45219         * inspector/front-end/CompilerScriptMapping.js:
45220         * inspector/front-end/JavaScriptSource.js: Removed.
45221         * inspector/front-end/JavaScriptSourceFrame.js:
45222         (WebInspector.JavaScriptSourceFrame):
45223         (WebInspector.JavaScriptSourceFrame.prototype.canEditSource):
45224         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
45225         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
45226         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
45227         (WebInspector.JavaScriptSourceFrame.prototype.populateLineGutterContextMenu):
45228         (WebInspector.JavaScriptSourceFrame.prototype.populateTextAreaContextMenu):
45229         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45230         (WebInspector.JavaScriptSourceFrame.prototype._supportsEnabledBreakpointsWhileEditing):
45231         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45232         (WebInspector.JavaScriptSourceFrame.prototype._breakpointAdded):
45233         (WebInspector.JavaScriptSourceFrame.prototype._breakpointRemoved):
45234         (WebInspector.JavaScriptSourceFrame.prototype.onTextEditorContentLoaded):
45235         (WebInspector.JavaScriptSourceFrame.prototype._handleGutterClick):
45236         (WebInspector.JavaScriptSourceFrame.prototype._toggleBreakpoint):
45237         (WebInspector.JavaScriptSourceFrame.prototype._setBreakpoint):
45238         (WebInspector.JavaScriptSourceFrame.prototype._continueToLine):
45239         * inspector/front-end/NetworkUISourceCodeProvider.js:
45240         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
45241         (WebInspector.NetworkUISourceCodeProvider.prototype._resourceAdded):
45242         * inspector/front-end/ResourceScriptMapping.js:
45243         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
45244         * inspector/front-end/ScriptSnippetModel.js:
45245         (WebInspector.ScriptSnippetModel):
45246         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
45247         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.get var):
45248         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet.compileCallback):
45249         (WebInspector.ScriptSnippetModel.prototype.evaluateScriptSnippet):
45250         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
45251         (WebInspector.ScriptSnippetModel.prototype._removeBreakpoints):
45252         (WebInspector.ScriptSnippetModel.prototype._projectWillReset):
45253         (WebInspector.SnippetScriptFile):
45254         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45255         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45256         * inspector/front-end/ScriptsNavigator.js:
45257         (WebInspector.SnippetsNavigatorView.prototype._handleEvaluateSnippet):
45258         (WebInspector.SnippetsNavigatorView.prototype._handleRemoveSnippet):
45259         * inspector/front-end/ScriptsPanel.js:
45260         (WebInspector.ScriptsPanel.prototype._createSourceFrame):
45261         (WebInspector.ScriptsPanel.prototype._uiSourceCodeFormatted):
45262         (WebInspector.ScriptsPanel.prototype._showOutlineDialog):
45263         (WebInspector.ScriptsPanel.prototype.set _fileRenamed):
45264         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested.callback):
45265         (WebInspector.ScriptsPanel.prototype._snippetCreationRequested):
45266         * inspector/front-end/SnippetJavaScriptSourceFrame.js:
45267         (WebInspector.SnippetJavaScriptSourceFrame):
45268         (WebInspector.SnippetJavaScriptSourceFrame.prototype._runButtonClicked):
45269         * inspector/front-end/StyleSheetOutlineDialog.js:
45270         (WebInspector.StyleSheetOutlineDialog):
45271         (WebInspector.StyleSheetOutlineDialog.show):
45272         (WebInspector.StyleSheetOutlineDialog.prototype.requestItems):
45273         * inspector/front-end/StyleSource.js: Removed.
45274         * inspector/front-end/WebKit.qrc:
45275         * inspector/front-end/inspector.html:
45276
45277 2012-10-15  Jer Noble  <jer.noble@apple.com>
45278
45279         WebAudio: limit output level to 0db
45280         https://bugs.webkit.org/show_bug.cgi?id=95792
45281         <rdar://problem/11966135>
45282
45283         Reviewed by Chris Rogers.
45284
45285         Clamp the output buffer data to the range of [-1,1], which limits
45286         output volume to 0db. This ensures that malicious or poorly-written
45287         pages will not be able to blow through the system volume limit by
45288         creating >0db buffers and effects.
45289
45290         No new tests; added ManualTests/webaudio/limit-level-0db.html.
45291
45292         Clamp the output vector to values of [-1,1]:
45293         * platform/audio/mac/AudioDestinationMac.cpp:
45294         (WebCore::AudioDestinationMac::render):
45295
45296         Add a VectorMath wrapper for vDSP_clip to provide accelerated vector threshold operations:
45297         * platform/audio/VectorMath.h:
45298         * platform/audio/VectorMath.cpp:
45299         (VectorMath):
45300         (WebCore::VectorMath::vclip):
45301
45302 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
45303
45304         Web Inspector: Extract domain specific editing handling logic from UISourceCode (step 2).
45305         https://bugs.webkit.org/show_bug.cgi?id=99301
45306
45307         Reviewed by Pavel Feldman.
45308
45309         StyleFile and ScriptFile now listen for the UISourceCode WorkingCopyChanged/Committed events and process
45310         them instead of being called explicitly.
45311
45312         * inspector/front-end/JavaScriptSourceFrame.js:
45313         (WebInspector.JavaScriptSourceFrame):
45314         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
45315         (WebInspector.JavaScriptSourceFrame.prototype._willMergeToVM):
45316         (WebInspector.JavaScriptSourceFrame.prototype._didMergeToVM):
45317         (WebInspector.JavaScriptSourceFrame.prototype._willDivergeFromVM):
45318         (WebInspector.JavaScriptSourceFrame.prototype._didDivergeFromVM):
45319         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
45320         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
45321         * inspector/front-end/ResourceScriptMapping.js:
45322         (WebInspector.ResourceScriptMapping.prototype._hasMergedToVM):
45323         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVM):
45324         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
45325         (WebInspector.ResourceScriptFile):
45326         (WebInspector.ResourceScriptFile.prototype._workingCopyCommitted):
45327         (WebInspector.ResourceScriptFile.prototype._workingCopyChanged):
45328         * inspector/front-end/ScriptSnippetModel.js:
45329         (WebInspector.SnippetScriptFile):
45330         (WebInspector.SnippetScriptFile.prototype._workingCopyCommitted):
45331         (WebInspector.SnippetScriptFile.prototype._workingCopyChanged):
45332         * inspector/front-end/StylesSourceMapping.js:
45333         (WebInspector.StyleFile):
45334         (WebInspector.StyleFile.prototype._workingCopyCommitted):
45335         (WebInspector.StyleFile.prototype._workingCopyChanged):
45336         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
45337         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
45338         (WebInspector.StyleFile.prototype.addRevision):
45339         (WebInspector.StyleContentBinding.prototype._innerStyleSheetChanged):
45340         * inspector/front-end/UISourceCode.js:
45341         (WebInspector.UISourceCode.prototype.setWorkingCopy):
45342         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
45343
45344 2012-10-16  Alexander Pavlov  <apavlov@chromium.org>
45345
45346         Web Inspector: [Elements] Double-click to live edit style tags changes text to 'undefined' in some situations
45347         https://bugs.webkit.org/show_bug.cgi?id=99336
45348
45349         Reviewed by Vsevolod Vlasov.
45350
45351         Before editing text nodes, set their textContent to the nodeValue() of the corresponding WebInspector.DOMNode in the UI.
45352         Drive-by: fix text node editing artifact in the DOM tree.
45353
45354         * inspector/front-end/ElementsTreeOutline.js:
45355         (WebInspector.ElementsTreeElement.prototype._startEditingTextNode):
45356         (WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
45357
45358 2012-10-16  Mike West  <mkwst@chromium.org>
45359
45360         Web Inspector: Whitelist safe styles for 'console.log('%c...', ...)'.
45361         https://bugs.webkit.org/show_bug.cgi?id=98945
45362
45363         Reviewed by Pavel Feldman.
45364
45365         Support for styling console messages via '%c' landed without any
45366         parsing of the style information provided. This means that it's fairly
45367         simple to accidentally or maliciously break the console with cleverly
45368         styled messages. To mitigate this risk, whitelisting a safe subset of
45369         CSS seems appropriate.
45370
45371         As a first pass at a reasonable whitelist, this patch allows
45372         'background[-*]', 'border[-*]', 'color[-*]', 'font[-*]',
45373         'margin[-*]', 'padding[-*]', 'text[-*]', '-webkit-background[-*]',
45374         '-webkit-border[-*]', '-webkit-font[-*]', '-webkit-margin[-*]',
45375         '-webkit-padding[-*]', and '-webkit-text[-*]'.
45376
45377         Test: inspector/console/console-format-style-whitelist.html
45378
45379         * inspector/front-end/ConsoleMessage.js:
45380         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
45381             Create a buffer element onto which the user-provided styles are
45382             applied. Whitelisted styles are transfered from the buffer onto
45383             the actual console message.
45384         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.isWhitelistedProperty):
45385              Returns true if the specific style is whitelisted. Expects styles
45386              in the hyphenated form (that is, '-webkit-padding-start' rather than
45387              CSSOM's 'webkitPaddingStart').
45388
45389 2012-10-16  Luke Macpherson   <macpherson@chromium.org>
45390
45391         Handle CSSPropertyOpacity in StyleBuilder.
45392         https://bugs.webkit.org/show_bug.cgi?id=99418
45393
45394         Reviewed by Alexis Menard.
45395
45396         One small step in moving from the huge switch in StyleResolver::applyProperty() to the StyleBuilder approach.
45397
45398         Covered by many existing tests, for example fast/text/complex-text-opacity.html.
45399
45400         * css/StyleBuilder.cpp:
45401         (WebCore::StyleBuilder::StyleBuilder):
45402         * css/StyleResolver.cpp:
45403         (WebCore::StyleResolver::applyProperty):
45404
45405 2012-10-16  Kent Tamura  <tkent@chromium.org>
45406
45407         Fix some appearance glitches of multiple fields input elements
45408         https://bugs.webkit.org/show_bug.cgi?id=99412
45409
45410         A follow-up change for r131421.
45411
45412         * css/themeWin.css:
45413         (input[type="text"]): Don't reset paddings for date/time types.
45414
45415 2012-10-16  Kenichi Ishibashi  <bashi@chromium.org>
45416
45417         hb_face_t instances should not depend on FontPlatformData
45418         https://bugs.webkit.org/show_bug.cgi?id=99430
45419
45420         Reviewed by Kent Tamura.
45421
45422         Use platform specific font data (e.g. SkTypeface) to get
45423         font tables for harfbuzz-ng.
45424
45425         No new tests. No changes in behavior.
45426
45427         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCairo.cpp:
45428         (WebCore::harfbuzzCairoGetTable): Takes cairo_scaled_font_t* as userData.
45429         (WebCore::HarfBuzzNGFace::createFace):
45430         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceCoreText.cpp:
45431         (WebCore::harfbuzzCoreTextGetTable): Takes CGFontRef as userData.
45432         (WebCore::HarfBuzzNGFace::createFace):
45433         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
45434         (WebCore::harfbuzzSkiaGetTable): Takes SkFontID as userData.
45435         (WebCore::HarfBuzzNGFace::createFace):
45436
45437 2012-10-16  Sheriff Bot  <webkit.review.bot@gmail.com>
45438
45439         Unreviewed, rolling out r131418.
45440         http://trac.webkit.org/changeset/131418
45441         https://bugs.webkit.org/show_bug.cgi?id=99431
45442
45443         since 131403 seems innocent (Requested by shinyak|_ on
45444         #webkit).
45445
45446         * dom/Document.cpp:
45447         (WebCore::isValidNameNonASCII):
45448         (WebCore):
45449         (WebCore::Document::isValidName):
45450
45451 2012-10-16  Ilya Tikhonovsky  <loislo@chromium.org>
45452
45453         Web Inspector: NMI Instrument InspectorOverlay. It costs us ~9Mb because it creates page size canvas.
45454         https://bugs.webkit.org/show_bug.cgi?id=99426
45455
45456         Reviewed by Yury Semikhatsky.
45457
45458         New object type InspectorOverlay was added. InspectorOverlay was instrumented.
45459         The instrumentation code automatically visits all the objects that can be reached via m_overlayPage.
45460
45461         * dom/WebCoreMemoryInstrumentation.cpp:
45462         (WebCore):
45463         * dom/WebCoreMemoryInstrumentation.h:
45464         (WebCoreMemoryTypes):
45465         * inspector/InspectorOverlay.cpp:
45466         (WebCore::InspectorOverlay::reportMemoryUsage):
45467         (WebCore):
45468         * inspector/InspectorOverlay.h:
45469         (InspectorOverlay):
45470
45471 2012-10-16  Kent Tamura  <tkent@chromium.org>
45472
45473         Remove unused functions in Locale* classes
45474         https://bugs.webkit.org/show_bug.cgi?id=99425
45475
45476         Reviewed by Yuta Kitamura.
45477
45478         Locale*::currentLocale has been unused since LocalizedDate* and
45479         LocalizedNumber* were removed.
45480
45481         No new tests. This shouldn't change any behavior.
45482
45483         * platform/text/LocaleICU.cpp: Remove createForCurrentLocale and currentLocale.
45484         * platform/text/LocaleICU.h: Ditto.
45485         * platform/text/LocaleWin.cpp: Remove currentLocale.
45486         * platform/text/LocaleWin.h: Ditto.
45487         * platform/text/mac/LocaleMac.h: Remove currentLocale.
45488         * platform/text/mac/LocaleMac.mm: Ditto.
45489
45490 2012-10-15  Kent Tamura  <tkent@chromium.org>
45491
45492         Fix some appearance glitches of multiple fields input elements
45493         https://bugs.webkit.org/show_bug.cgi?id=99412
45494
45495         Reviewed by Kentaro Hara.
45496
45497         1. If CSS-specified width is wider than the intrinsic width of an input,
45498         the spin button and the picker indicator triangle should be put at the
45499         right side of the content area.
45500
45501         2. Remove top, right, and bottom paddings to match input[type=number]
45502         appearance as possible.
45503
45504         3. Remove unnecessary position:relative for spin buttons.
45505
45506         4. Center content vertically if the height is taller than the intrinsic height.
45507
45508         Tests: Update all of rendering tests for input element with multiple fields UI.
45509
45510         * css/html.css:
45511         (input[type="date"]):
45512         - Specify display:-webkit-inline-flex and -webkit-align-items:stretch to center contents.
45513         - Remove top/right/bottom paddings.
45514         (input[type="datetime"]): Ditto.
45515         (input[type="datetime-local"]): Ditto.
45516         (input[type="month"]): Ditto.
45517         (input[type="time"]): Ditto.
45518         (input[type="week"]): Ditto.
45519         (input::-webkit-datetime-edit):
45520         - Switch to the starndard flexible box from the legacy one.
45521         - Add white-space:pre to avoid to collapse white spaces.
45522         (input::-webkit-datetime-edit-gap):
45523         Added. This element is added to push a spin button to the right side.
45524         (input::-webkit-date-and-time-container):
45525         Add -webkit-flex:1 for the input flexible box.
45526         Sort properties.
45527         (input[type="week"]::-webkit-inner-spin-button):
45528         - Use this in date, datetime, datetime-local, and week types.
45529         - Add display:inline-block because other elements in -webkit-datetime-edit is inilne.
45530         - Add position:static to cancel position:relative below.
45531
45532         * html/shadow/DateTimeEditElement.cpp:
45533         (WebCore::DateTimeEditElement::layout):
45534         Add an element with -webkit-datetime-edit-gap before a spin button.
45535
45536 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45537
45538         Web Inspector: can't click delete button if watch expression is very long
45539         https://bugs.webkit.org/show_bug.cgi?id=99414
45540
45541         Reviewed by Vsevolod Vlasov.
45542
45543         Minus button in watch expression section doesn't overlap with the
45544         expression/value anymore.
45545
45546         * inspector/front-end/inspector.css:
45547         (.properties-tree.watch-expressions > li.hovered):
45548
45549 2012-10-15  Sheriff Bot  <webkit.review.bot@gmail.com>
45550
45551         Unreviewed, rolling out r131403.
45552         http://trac.webkit.org/changeset/131403
45553         https://bugs.webkit.org/show_bug.cgi?id=99420
45554
45555         Suspicious to cause Performance test failing (Requested by
45556         shinyak|gardenin on #webkit).
45557
45558         * dom/Document.cpp:
45559         (WebCore::Document::isValidName):
45560
45561 2012-10-15  Yury Semikhatsky  <yurys@chromium.org>
45562
45563         Web Inspector: restore watch expression expansion state
45564         https://bugs.webkit.org/show_bug.cgi?id=99304
45565
45566         Reviewed by Pavel Feldman.
45567
45568         Expand watch expression value and its properties if they were expanded
45569         before update.
45570
45571         Test: inspector/debugger/watch-expressions-preserve-expansion.html
45572
45573         * inspector/front-end/WatchExpressionsSidebarPane.js:
45574         (WebInspector.WatchExpressionTreeElement.prototype.onexpand):
45575         (WebInspector.WatchExpressionTreeElement.prototype.oncollapse):
45576         (WebInspector.WatchExpressionTreeElement.prototype.onattach):
45577         (WebInspector.WatchExpressionTreeElement.prototype._expression):
45578         (WebInspector.WatchedPropertyTreeElement):
45579         (WebInspector.WatchedPropertyTreeElement.prototype.onattach):
45580         (WebInspector.WatchedPropertyTreeElement.prototype.onexpand):
45581         (WebInspector.WatchedPropertyTreeElement.prototype.oncollapse):
45582         (WebInspector.WatchedPropertyTreeElement.prototype._propertyPath):
45583
45584 2012-10-15  Mike West  <mkwst@chromium.org>
45585
45586         Warn when CSP headers don't separate directives with ';'.
45587         https://bugs.webkit.org/show_bug.cgi?id=99274
45588
45589         Reviewed by Adam Barth.
45590
45591         A recent bug report exhibited confusion as to what role, exactly,
45592         semicolons play in Content Security Policy definitions. This patch
45593         adjusts the parser to warn web authors if a directive name is
45594         encountered while parsing a source list, which would almost certainly
45595         point to a missing semicolon. For example, something like:
45596
45597             script-src 'self' object-src 'self' style-src *
45598
45599         would throw two warnings, noting that 'object-src' and 'style-src' are
45600         probably meant as directives, and not as source expressions in the
45601         'script-src' source list.
45602
45603         Test: http/tests/security/contentSecurityPolicy/source-list-parsing-no-semicolon.html
45604
45605         * page/ContentSecurityPolicy.cpp:
45606         (WebCore::CSPSourceList::parse):
45607             Throw the new warning onto the console if the hostname of a source
45608             expression matches a CSP directive name.
45609         (WebCore::CSPDirectiveList::addDirective):
45610             Use the exciting new static variables so that the names of various
45611             directives are available outside of CSPDirectiveList::addDirective.
45612             These were previously defined as local static ASCIILiterals. Now
45613             they're static const char[] in an anonymous namespace.
45614         (WebCore::ContentSecurityPolicy::isDirectiveName):
45615             Static method that compares a string to all the known directive
45616             names, returning true if there's a (case-insensitive) match.
45617         (WebCore):
45618         (WebCore::ContentSecurityPolicy::reportDirectiveAsSourceExpression):
45619             A new warning message which should be printed when a directive name
45620             is encountered as a source expression. Matching the directive name
45621             is done via a new 'isDirectiveName' function which lives in an
45622             anonymous namespace along with the other CSP helper functions.
45623         * page/ContentSecurityPolicy.h:
45624             Added 'reportDirectiveAsSourceExpression' signature.
45625
45626 2012-10-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
45627
45628         Unreviewed, rolling out r131349.
45629         http://trac.webkit.org/changeset/131349
45630         https://bugs.webkit.org/show_bug.cgi?id=97173
45631
45632         Revert r131349 because API test is broken by this commit.
45633
45634         * platform/efl/RunLoopEfl.cpp:
45635         (WebCore::RunLoop::RunLoop):
45636         (WebCore::RunLoop::~RunLoop):
45637
45638 2012-10-15  Nate Chapin  <japhet@chromium.org>
45639
45640         ResourceLoader::sendResourceLoadCallbacks() is backwards
45641         https://bugs.webkit.org/show_bug.cgi?id=99366
45642
45643         Reviewed by Daniel Bates.
45644
45645         No new tests, this function is uncalled but will be used
45646         in a later patch.
45647
45648         * loader/ResourceLoader.h:
45649         (WebCore::ResourceLoader::sendResourceLoadCallbacks):
45650
45651 2012-10-15  Dan Bernstein  <mitz@apple.com>
45652
45653         REGRESSION (r131365): WidthIterator::advance() is needlessly passed a GlyphBuffer in many cases
45654         https://bugs.webkit.org/show_bug.cgi?id=99413
45655
45656         Reviewed by Adele Peterson.
45657
45658         r131365 made Font::width() always pass a GlyphBuffer pointer to floatWidthForSimpleText and
45659         from there down to WidthIterator::advance(). However, when measuring the width of a run, a
45660         GlyphBuffer is only needed if font transforms (kerning and ligatures) need to be applied.
45661
45662         No new test, because there is no change in behavior.
45663
45664         * platform/graphics/Font.cpp:
45665         (WebCore::Font::width): Removed the local GlyphBuffer that was passed down to
45666         floatWidthForSimpleText().
45667         * platform/graphics/Font.h: Removed the GlyphBuffer* parameter to floatWidthForSimpleText.
45668         All but the above caller were passing 0.
45669         * platform/graphics/FontFastPath.cpp:
45670         (WebCore::Font::floatWidthForSimpleText): Removed the GlyphBuffer* parameter and added a
45671         local GlyphBuffer, which is passed by reference to WidthIterator::advance() only if
45672         typesetting features require it.
45673         (WebCore::Font::offsetForPositionForSimpleText): Updated for change to
45674         floatWidthForSimpleText.
45675         * platform/graphics/pango/FontPango.cpp:
45676         (WebCore::Font::floatWidthForComplexText): Ditto.
45677
45678 2012-10-15  Pablo Flouret  <pablof@motorola.com>
45679
45680         Add force parameter to DOMTokenList.toggle
45681         https://bugs.webkit.org/show_bug.cgi?id=99375
45682
45683         Reviewed by Darin Adler.
45684
45685         See http://dom.spec.whatwg.org/#dom-domtokenlist-toggle and
45686         https://www.w3.org/Bugs/Public/show_bug.cgi?id=18463
45687
45688         Essentially, the optional boolean force parameter, if present, makes
45689         toggle always add or remove a class.
45690
45691         No new tests, modified fast/dom/HTMLElement/script-tests/class-list.js
45692
45693         * html/DOMTokenList.cpp:
45694         (WebCore::DOMTokenList::toggle):
45695         (WebCore):
45696         * html/DOMTokenList.h:
45697         (DOMTokenList):
45698         * html/DOMTokenList.idl:
45699             New toggle() overload that takes a force parameter and calls
45700             addInternal() or removeInternal() based on it.
45701
45702 2012-10-15  Dan Bernstein  <mitz@apple.com>
45703
45704         Layout Test fast/text/justify-ideograph-leading-expansion.html is failing an assertion chromium mac
45705         https://bugs.webkit.org/show_bug.cgi?id=99406
45706
45707         Reviewed by Darin Adler.
45708
45709         * platform/graphics/WidthIterator.cpp:
45710         * platform/graphics/WidthIterator.h:
45711         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
45712         shorter than 2 characters. 1-character runs are invariant under font transforms, and therefore
45713         Font::codePath() sends them through WidthIterator even on platforms where WidthIterator
45714         does not support kerning and ligatures.
45715
45716 2012-10-15  Michael Saboff  <msaboff@apple.com>
45717
45718         Add 8 bit patch to Document::isValidName() for the non ASCII case
45719         https://bugs.webkit.org/show_bug.cgi?id=99402
45720
45721         Reviewed by Darin Adler.
45722
45723         Added 8 bit path to complete the processing of an 8 bit names without up-converting.
45724
45725         * dom/Document.cpp:
45726         (WebCore::isValidNameNonASCII):
45727         (WebCore::Document::isValidName):
45728
45729 2012-10-15  Vlad Grecescu  <igrecesc@adobe.com>, Douglas Stockwell  <dstockwell@chromium.org>
45730
45731         Support for background-clip:content-box and padding-box with border-radius
45732         https://bugs.webkit.org/show_bug.cgi?id=23166
45733
45734         Reviewed by Simon Fraser.
45735
45736         Test: fast/css/background-clip-radius-values.html
45737
45738         * rendering/RenderBoxModelObject.cpp:
45739         (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
45740         (WebCore):
45741         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
45742         * rendering/RenderBoxModelObject.h:
45743
45744 2012-10-15  Byungwoo Lee  <bw80.lee@samsung.com>
45745
45746         Fix unused parameter build warning.
45747         https://bugs.webkit.org/show_bug.cgi?id=99400
45748
45749         Reviewed by Gyuyoung Kim.
45750
45751         Remove the name of unused parameters to fix the build warning (-Wunused-parameter).
45752
45753         * platform/network/soup/ResourceErrorSoup.cpp:
45754         (WebCore::ResourceError::tlsError):
45755
45756 2012-10-15  Kenichi Ishibashi  <bashi@chromium.org>
45757
45758         [WebSocket] WebSocketInflater should handle BFINAL = 1 blocks
45759         https://bugs.webkit.org/show_bug.cgi?id=99282
45760
45761         Reviewed by Yuta Kitamura.
45762
45763         Reset decompression state if WebSocketInflater decompress a block with
45764         BFINAL set to 1.
45765
45766         Test: http/tests/websocket/tests/hybi/deflate-frame-set-bfinal.html
45767
45768         * Modules/websockets/WebSocketDeflater.cpp:
45769         (WebCore::WebSocketInflater::addBytes):
45770         Reset decompression state if inflate() returns Z_STREAM_END, which means the BFINAL
45771         of the current block was set to 1.
45772         (WebCore::WebSocketInflater::finish): Add an assertion.
45773
45774 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
45775
45776         Fix GraphicsLayer visible rect computation when scrolling in WebKit1
45777         https://bugs.webkit.org/show_bug.cgi?id=99385
45778
45779         Reviewed by Dean Jackson, Tim Horton.
45780
45781         RenderLayerCompositor always used frameView->frameRect() as the visible
45782         rect on the root used for GraphicsLayer visibleRect computation. This
45783         was wrong for subframes, which require a rect with an origin of (0,0)
45784         and size of the contentsSize().
45785         
45786         It was also wrong when the scrolling is not represented in the GraphicsLayer
45787         tree. When scrolling is done elsewhere, we need to use the ScrollView's
45788         visibleContentRect().
45789
45790         Tests: compositing/visible-rect/scrolled.html
45791                compositing/visible-rect/iframe-and-layers.html
45792                compositing/visible-rect/iframe-no-layers.html
45793
45794         * rendering/RenderLayerCompositor.cpp:
45795         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
45796
45797 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
45798
45799         Remove page visibility hidden histograms
45800         https://bugs.webkit.org/show_bug.cgi?id=99360
45801
45802         Reviewed by Ojan Vafai.
45803
45804         The 2 page visibility hidden histograms were added in http://webkit.org/b/85537 to
45805         investigate a potential optimization where we would destroy the render tree when
45806         a tab was hidden. The optimization was abandoned but the histograms were never
45807         removed. They are too narrow to be reused so this change removes them.
45808
45809         * page/Page.cpp:
45810         (WebCore::Page::setVisibilityState):
45811
45812 2012-10-15  Ryuan Choi  <ryuan.choi@samsung.com>
45813
45814         REGRESSION: Build break after r131373 when ACCELERATED_COMPOSITING disabled
45815         https://bugs.webkit.org/show_bug.cgi?id=99397
45816
45817         Unreviewed, build fix.
45818
45819         * page/scrolling/ScrollingCoordinator.cpp:
45820         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
45821
45822 2012-10-14  Kent Tamura  <tkent@chromium.org>
45823
45824         Input elements with multiple fields UI should set appropriate direction for browser locale automatically
45825         https://bugs.webkit.org/show_bug.cgi?id=99291
45826
45827         Reviewed by Hajime Morita.
45828
45829         Input elemnts with multiple fields UI ignores HTML dir attribute or CSS
45830         direction property, and their direction should be decided by the browser
45831         locale. If the browser locale is a RTL language, date/time input fields
45832         show formats/digits for the RTL language. The layout should be always
45833         RTL regardless of the direction in such case.
45834
45835         Test: fast/forms/date-multiple-fields/date-multiple-fields-appearance-l10n.html
45836
45837         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
45838         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updateInnerTextValue):
45839         Set approriate dir attribute value to the child element of the UA shadow root.
45840
45841 2012-10-15  Andreas Kling  <kling@webkit.org>
45842
45843         StyleResolver: Garbage collect the matched properties cache on a timer.
45844         <http://webkit.org/b/98625>
45845
45846         Reviewed by Eric Seidel.
45847
45848         Sweeping the matched properties cache once every 100 additions ended up choking RoboHornet's
45849         svgresize.html benchmark. Move it to a single-shot timer that's refreshed every 100 additions
45850         and defers the actual sweep for 60 seconds.
45851
45852         * css/StyleResolver.cpp:
45853         (WebCore::StyleResolver::StyleResolver):
45854         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
45855         (WebCore::StyleResolver::addToMatchedPropertiesCache):
45856         * css/StyleResolver.h:
45857         (StyleResolver):
45858
45859 2012-10-15  Arnaud Renevier  <a.renevier@sisa.samsung.com>
45860
45861         [GStreamer] GstCaps are leaked when building with gstreamer-1.0
45862         https://bugs.webkit.org/show_bug.cgi?id=99362
45863
45864         Reviewed by Martin Robinson.
45865
45866         Implement GRefPtr<GstCaps> adoptGRef(GstCaps*).
45867
45868         Change webkitGstGetPadCaps signature to return a GRefPtr<GstCaps>, and
45869         use GRefPtr<GstCaps> also in webkitVideoSinkRender to simply GstCaps
45870         refeference count.
45871
45872         Covered by existing tests.
45873
45874         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
45875         (WTF::adoptGRef):
45876         (WTF):
45877         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
45878         (WTF):
45879         * platform/graphics/gstreamer/GStreamerVersioning.cpp:
45880         (webkitGstGetPadCaps):
45881         * platform/graphics/gstreamer/GStreamerVersioning.h:
45882         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
45883         (WebCore::MediaPlayerPrivateGStreamer::naturalSize):
45884         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
45885         (webkitVideoSinkRender):
45886
45887 2012-10-15  Tony Chang  <tony@chromium.org>
45888
45889         Unreviewed, rolling out r131367.
45890         http://trac.webkit.org/changeset/131367
45891         https://bugs.webkit.org/show_bug.cgi?id=98666
45892
45893         crashes on Apple Mac
45894
45895         * css/html.css:
45896         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
45897         (input[type="range"]::-webkit-slider-runnable-track):
45898         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
45899         * css/mediaControlsChromium.css:
45900         (input[type="range"]::-webkit-media-slider-thumb):
45901         * css/mediaControlsChromiumAndroid.css:
45902         (input[type="range"]::-webkit-media-slider-thumb):
45903         * html/RangeInputType.cpp:
45904         (WebCore::RangeInputType::listAttributeTargetChanged):
45905         * html/shadow/SliderThumbElement.cpp:
45906         (WebCore::RenderSliderThumb::layout):
45907         (WebCore):
45908         (WebCore::RenderSliderContainer::RenderSliderContainer):
45909         (RenderSliderContainer):
45910         (WebCore::RenderSliderContainer::layout):
45911         * html/shadow/SliderThumbElement.h:
45912         (RenderSliderThumb):
45913         * rendering/RenderSlider.cpp:
45914         (WebCore):
45915         (WebCore::RenderSlider::RenderSlider):
45916         (WebCore::RenderSlider::layout):
45917         * rendering/RenderSlider.h:
45918         (WebCore):
45919         (RenderSlider):
45920         (WebCore::RenderSlider::renderName):
45921         (WebCore::RenderSlider::isSlider):
45922         (WebCore::RenderSlider::requiresForcedStyleRecalcPropagation):
45923         (WebCore::toRenderSlider):
45924
45925 2012-10-15  Dan Bernstein  <mitz@apple.com>
45926
45927         Try to fix the build again after r131375.
45928
45929         * platform/graphics/WidthIterator.h:
45930         (WebCore::WidthIterator::shouldApplyFontTransforms): Removed the length check from here.
45931
45932 2012-10-15  Dan Bernstein  <mitz@apple.com>
45933
45934         Try to fix assertion failures on ports that do not support kerning and ligatures on the fast
45935         code path after r131365.
45936
45937         * platform/graphics/WidthIterator.cpp:
45938         (WebCore::applyFontTransforms): Changed the early return condition to not bother with 1-glyph
45939         sequences.
45940         * platform/graphics/WidthIterator.h:
45941         (WebCore::WidthIterator::shouldApplyFontTransforms): Changed to return false if the run is
45942         shorter than 2 characters.
45943
45944 2012-10-15  Dan Bernstein  <mitz@apple.com>
45945
45946         Try to fix the Chromium Mac build after r131365.
45947
45948         * platform/graphics/GlyphBuffer.h:
45949         (WebCore::GlyphBufferAdvance::height): Added.
45950         * platform/graphics/skia/FontSkia.cpp:
45951         (WebCore::Font::drawGlyphs): Changed to use accessors for the GlyphBufferAdvance’s width and height.
45952
45953 2012-10-15  Simon Fraser  <simon.fraser@apple.com>
45954
45955         Ensure that GraphicsLayer positions are updated while doing threaded scrolling
45956         https://bugs.webkit.org/show_bug.cgi?id=99372
45957
45958         Reviewed by Anders Carlsson.
45959
45960         When doing threaded scrolling, the scrolling thread updates the positions of CALayers,
45961         but doesn't update GraphicsLayers. This means that code that relies on GraphicsLayer positions
45962         works incorrectly.
45963         
45964         Threaded scrolling is not testabled in layout tests.
45965
45966         * page/scrolling/ScrollingCoordinator.cpp:
45967         (WebCore::ScrollingCoordinator::updateMainFrameScrollPosition):
45968         * platform/graphics/GraphicsLayer.h:
45969         (GraphicsLayer):
45970         (WebCore::GraphicsLayer::syncPosition):
45971
45972 2012-10-15  Tommy Widenflycht  <tommyw@google.com>
45973
45974         MediaStream API: Implement RTCDataChannel
45975         https://bugs.webkit.org/show_bug.cgi?id=99080
45976
45977         Reviewed by Adam Barth.
45978
45979         This patch introduces RTCDataChannel which is a pipe for sending data between two RTCPeerConnections.
45980         Since the data channel belongs to a peer connection object I have reused part of its infrastructure.
45981
45982         Not currently testable. My next patch will add the chromium WebKit functionality, together with mocks and tests.
45983
45984         * CMakeLists.txt:
45985         * GNUmakefile.list.am:
45986         * Modules/mediastream/RTCDataChannel.cpp: Added.
45987         (WebCore):
45988         (WebCore::RTCDataChannel::create):
45989         (WebCore::RTCDataChannel::RTCDataChannel):
45990         (WebCore::RTCDataChannel::~RTCDataChannel):
45991         (WebCore::RTCDataChannel::label):
45992         (WebCore::RTCDataChannel::reliable):
45993         (WebCore::RTCDataChannel::readyState):
45994         (WebCore::RTCDataChannel::bufferedAmount):
45995         (WebCore::RTCDataChannel::binaryType):
45996         (WebCore::RTCDataChannel::setBinaryType):
45997         (WebCore::RTCDataChannel::send):
45998         (WebCore::RTCDataChannel::close):
45999         (WebCore::RTCDataChannel::readyStateChanged):
46000         (WebCore::RTCDataChannel::dataArrived):
46001         (WebCore::RTCDataChannel::error):
46002         (WebCore::RTCDataChannel::descriptor):
46003         (WebCore::RTCDataChannel::interfaceName):
46004         (WebCore::RTCDataChannel::scriptExecutionContext):
46005         (WebCore::RTCDataChannel::stop):
46006         (WebCore::RTCDataChannel::eventTargetData):
46007         (WebCore::RTCDataChannel::ensureEventTargetData):
46008         * Modules/mediastream/RTCDataChannel.h: Added.
46009         (WebCore):
46010         (RTCDataChannel):
46011         (WebCore::RTCDataChannel::refEventTarget):
46012         (WebCore::RTCDataChannel::derefEventTarget):
46013         * Modules/mediastream/RTCDataChannel.idl: Added.
46014         * Modules/mediastream/RTCDataChannelEvent.cpp: Added.
46015         (WebCore):
46016         (WebCore::RTCDataChannelEvent::create):
46017         (WebCore::RTCDataChannelEvent::RTCDataChannelEvent):
46018         (WebCore::RTCDataChannelEvent::~RTCDataChannelEvent):
46019         (WebCore::RTCDataChannelEvent::channel):
46020         (WebCore::RTCDataChannelEvent::interfaceName):
46021         * Modules/mediastream/RTCDataChannelEvent.h: Added.
46022         (WebCore):
46023         (RTCDataChannelEvent):
46024         * Modules/mediastream/RTCDataChannelEvent.idl: Added.
46025         * Modules/mediastream/RTCPeerConnection.cpp:
46026         (WebCore::RTCPeerConnection::createDataChannel):
46027         (WebCore):
46028         (WebCore::RTCPeerConnection::close):
46029         (WebCore::RTCPeerConnection::didAddRemoteDataChannel):
46030         (WebCore::RTCPeerConnection::stop):
46031         * Modules/mediastream/RTCPeerConnection.h:
46032         (WebCore):
46033         (RTCPeerConnection):
46034         * Modules/mediastream/RTCPeerConnection.idl:
46035         * WebCore.gypi:
46036         * dom/EventNames.h:
46037         (WebCore):
46038         * dom/EventNames.in:
46039         * dom/EventTargetFactory.in:
46040         * platform/mediastream/RTCDataChannelDescriptor.cpp: Added.
46041         (WebCore):
46042         (WebCore::RTCDataChannelDescriptor::create):
46043         (WebCore::RTCDataChannelDescriptor::RTCDataChannelDescriptor):
46044         (WebCore::RTCDataChannelDescriptor::~RTCDataChannelDescriptor):
46045         (WebCore::RTCDataChannelDescriptor::readyStateChanged):
46046         (WebCore::RTCDataChannelDescriptor::dataArrived):
46047         (WebCore::RTCDataChannelDescriptor::error):
46048         * platform/mediastream/RTCDataChannelDescriptor.h: Added.
46049         (WebCore):
46050         (RTCDataChannelDescriptorClient):
46051         (WebCore::RTCDataChannelDescriptorClient::~RTCDataChannelDescriptorClient):
46052         (RTCDataChannelDescriptor):
46053         (ExtraData):
46054         (WebCore::RTCDataChannelDescriptor::ExtraData::~ExtraData):
46055         (WebCore::RTCDataChannelDescriptor::client):
46056         (WebCore::RTCDataChannelDescriptor::setClient):
46057         (WebCore::RTCDataChannelDescriptor::label):
46058         (WebCore::RTCDataChannelDescriptor::reliable):
46059         (WebCore::RTCDataChannelDescriptor::readyState):
46060         (WebCore::RTCDataChannelDescriptor::bufferedAmount):
46061         (WebCore::RTCDataChannelDescriptor::setBufferedAmount):
46062         (WebCore::RTCDataChannelDescriptor::extraData):
46063         (WebCore::RTCDataChannelDescriptor::setExtraData):
46064         * platform/mediastream/RTCPeerConnectionHandler.cpp:
46065         (RTCPeerConnectionHandlerDummy):
46066         (WebCore::RTCPeerConnectionHandlerDummy::openDataChannel):
46067         (WebCore):
46068         (WebCore::RTCPeerConnectionHandlerDummy::sendStringData):
46069         (WebCore::RTCPeerConnectionHandlerDummy::sendRawData):
46070         (WebCore::RTCPeerConnectionHandlerDummy::closeDataChannel):
46071         * platform/mediastream/RTCPeerConnectionHandler.h:
46072         (WebCore):
46073         (RTCPeerConnectionHandler):
46074         * platform/mediastream/RTCPeerConnectionHandlerClient.h:
46075         (WebCore):
46076         (RTCPeerConnectionHandlerClient):
46077         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
46078         (WebCore::RTCPeerConnectionHandlerChromium::openDataChannel):
46079         (WebCore):
46080         (WebCore::RTCPeerConnectionHandlerChromium::sendStringData):
46081         (WebCore::RTCPeerConnectionHandlerChromium::sendRawData):
46082         (WebCore::RTCPeerConnectionHandlerChromium::closeDataChannel):
46083         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
46084         (RTCPeerConnectionHandlerChromium):
46085
46086 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46087
46088         IndexedDB: Pass type of error causing abort to IDBTransaction::onAbort
46089         https://bugs.webkit.org/show_bug.cgi?id=99097
46090
46091         Reviewed by Tony Chang.
46092
46093         Include the error causing the abort in the callback from back end to
46094         front end so it can be exposed on the IDBTransaction.error property.
46095
46096         Test: lazy-index-population.html
46097
46098         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
46099         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
46100         (WebCore::IDBDatabaseBackendImpl::setIntVersionInternal):
46101         * Modules/indexeddb/IDBDatabaseCallbacks.h:
46102         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
46103         (WebCore::IDBObjectStoreBackendImpl::setIndexKeys):
46104         (WebCore::IDBObjectStoreBackendImpl::putInternal):
46105         * Modules/indexeddb/IDBTransaction.cpp:
46106         (WebCore::IDBTransaction::onAbort):
46107         * Modules/indexeddb/IDBTransaction.h:
46108         (IDBTransaction):
46109         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
46110         (WebCore::IDBTransactionBackendImpl::abort):
46111         (WebCore):
46112         (WebCore::IDBTransactionBackendImpl::commit):
46113         * Modules/indexeddb/IDBTransactionBackendImpl.h:
46114         (IDBTransactionBackendImpl):
46115         * Modules/indexeddb/IDBTransactionCallbacks.h:
46116         (IDBTransactionCallbacks):
46117         * inspector/InspectorIndexedDBAgent.cpp:
46118         (WebCore):
46119
46120 2012-10-15  Mike Reed  <reed@google.com>
46121
46122         In Skia's ImageFrame, only set the isOpaque flag when the frame is complete
46123         https://bugs.webkit.org/show_bug.cgi?id=99326
46124
46125         Reviewed by Stephen White.
46126
46127         No new tests -- existing layouttests exercise this, esp. 
46128           png-partial-load-no-alpha.html
46129           webp-partial-load.html
46130         These two fail if skia is told that these are opaque, which it is w/o this CL.
46131
46132         At the moment, Skia has a hack to ignore the opaque-setting, so that these tests will pass as is.
46133         This change is to first, correct webkit to only set isOpaque when the frame is complete, so that
46134         in a later change, Skia can remove the hack, and re-enable its opaqueness optimization.
46135
46136         * platform/image-decoders/skia/ImageDecoderSkia.cpp:
46137         (WebCore::ImageFrame::ImageFrame):
46138         (WebCore::ImageFrame::operator=):
46139         (WebCore::ImageFrame::zeroFillPixelData):
46140         (WebCore::ImageFrame::hasAlpha):
46141         (WebCore::ImageFrame::setHasAlpha):
46142         (WebCore::ImageFrame::setStatus):
46143
46144 2012-10-12  Tony Chang  <tony@chromium.org>
46145
46146         input[type=range] as a flex item renders thumb at wrong position
46147         https://bugs.webkit.org/show_bug.cgi?id=98666
46148
46149         Reviewed by Ojan Vafai.
46150
46151         Replace RenderSlider implementation with new flexbox and clean up the shadow DOM.
46152         The previous code was trying to set the height to 100% and had a bunch of hacks in
46153         the renderer code to set an explicit height. Using the new flexbox allows us to
46154         remove these renderer hacks.
46155
46156         Test: css3/flexbox/flexitem-stretch-range.html
46157
46158         * css/html.css:
46159         (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container): Use new flexbox.
46160         (input[type="range"]::-webkit-slider-runnable-track): Use new flexbox.
46161         (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb): Remove relative positioning since we're
46162         no longer setting top/left in the layout code.
46163         * css/mediaControlsChromium.css: Remove redundant styles and bottom: 1px hack.
46164         * css/mediaControlsChromiumAndroid.css: Remove redundant styles and bottom: 1px hack.
46165         * html/RangeInputType.cpp:
46166         (WebCore::RangeInputType::listAttributeTargetChanged): We need to force a layout
46167         since the height of the control should change when adding/removing a datalist.
46168         * html/shadow/SliderThumbElement.cpp:
46169         (WebCore::RenderSliderContainer::RenderSliderContainer): Use new flexbox.
46170         (WebCore::RenderSliderContainer::computeLogicalHeight): Rather than setting style()->height() in layout, just compute the correct
46171         height when asked.  If we have a datalist, we increase the height (same code as before).  If we're vertical,
46172         we use the intrinsic size.
46173         (WebCore::RenderSliderContainer::layout): Remove extra layout code, but handle the position of the thumb.
46174         This used to be handled in the thumb's layout method, but I deleted that.
46175         * html/shadow/SliderThumbElement.h:
46176         * rendering/RenderSlider.cpp:
46177         (WebCore::RenderSlider::RenderSlider): Use new flexbox.
46178         (WebCore::RenderSlider::layout): Set the limiter size to the size of the thumb. This is necessary
46179         for fast/css/unknown-pseudo-element-matching.html which tries to set the height of the thumb to 1px
46180         and expects the input to also have a height of 1px.  It worked before because the height of the input
46181         didn't depend on the height of its children.
46182         * rendering/RenderSlider.h: Fix indentation.
46183         (RenderSlider): Use new flexible box.
46184
46185 2012-10-15  Julien Chaffraix  <jchaffraix@webkit.org>
46186
46187         Make RenderTable columns() and columnPositions() return a const reference
46188         https://bugs.webkit.org/show_bug.cgi?id=99339
46189
46190         Reviewed by Abhishek Arya.
46191
46192         The 2 getters were returning a non-const reference. This means that callers
46193         could have modified the Vector's where only FixedTableLayout and AutoTableLayout
46194         were expected to (for columnPositions(), no one should modify columns()).
46195
46196         Refactoring covered by existing tests.
46197
46198         * rendering/AutoTableLayout.cpp:
46199         (WebCore::AutoTableLayout::layout):
46200         * rendering/FixedTableLayout.cpp:
46201         (WebCore::FixedTableLayout::layout):
46202         Updated those functions to use the new setter.
46203
46204         * rendering/RenderTable.h:
46205         (WebCore::RenderTable::columns):
46206         (WebCore::RenderTable::columnPositions):
46207         Made the 2 functions return a const reference. They are also const now!
46208
46209         (WebCore::RenderTable::setColumnPosition):
46210         Added this setter.
46211
46212         * rendering/RenderTableSection.cpp:
46213         (WebCore::RenderTableSection::addCell):
46214         (WebCore::RenderTableSection::setCellLogicalWidths):
46215         (WebCore::RenderTableSection::dirtiedColumns):
46216         Updated to use a const reference.
46217
46218 2012-10-15  Dan Bernstein  <mitz@apple.com>
46219
46220         WebCore part of <rdar://problem/12470680> Font’s fast code path doesn’t support kerning and ligatures
46221         https://bugs.webkit.org/show_bug.cgi?id=99113
46222
46223         Reviewed by Tim Horton.
46224
46225         * WebCore.exp.in: Exported wkCTFontTransformGlyphs.
46226         * platform/graphics/Font.cpp:
46227         (WebCore::Font::width): Added a local GlyphBuffer to pass to floatWidthForSimpleText().
46228         (WebCore::Font::codePath): Rather than always use the complex code path when any typesetting
46229         features are enabled, changed to do so only if WidthIterator doesn’t support this Font’s
46230         typesetting features.
46231         * platform/graphics/FontFastPath.cpp:
46232         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Added a local GlyphBuffer to pass to
46233         WidthIterator::advance() when advancing to or from the range of interest. Added a FIXME
46234         about how this is not entirely correct when kerning or ligatures are enabled.
46235         (WebCore::Font::selectionRectForSimpleText): Added a local GlyphBuffer to pass to
46236         WidthIterator::advance() when advancing to or from the range of interest.
46237         (WebCore::Font::offsetForPositionForSimpleText): Updated for the change to
46238         WidthIterator::advanceOneCharacter().
46239         * platform/graphics/SimpleFontData.h:
46240         (WebCore::SimpleFontData::applyTransforms): Added. Calls wkCTFontTransformGlyphs() where
46241         available.
46242         * platform/graphics/WidthIterator.cpp:
46243         (WebCore::WidthIterator::WidthIterator): Added initializer for the new m_typesettingFeatures
46244         data member.
46245         (OriginalAdvancesForCharacterTreatedAsSpace): Added this data type, used to track spaces and
46246         characters treated as spaces.
46247         (WebCore::applyFontTransforms): Added. Applies shaping and positioning transforms, as
46248         required by the typesetting features, to the glyphs recently added to a GlyphBuffer, while
46249         maintaining the advances of characters that are treated as spaces and the characters
46250         preceding them, if necessary.
46251         (WebCore::WidthIterator::advanceInternal): Added calls to applyFontTransforms() at the end
46252         of each contiguous run of glyphs from the same font. Also added code to maintain a vector
46253         of spaces and characters treated as space.
46254         (WebCore::WidthIterator::advanceOneCharacter): Changed the parameter type from a pointer to
46255         a reference.
46256         * platform/graphics/WidthIterator.h:
46257         (WebCore::WidthIterator::supportsTypesettingFeatures): Added. Returns whether WidthIterator
46258         instances support the typesetting features of the given font. Returns true if the font is
46259         not a screen font and its typesetting features are kerning, ligatures or both.
46260         (WebCore::WidthIterator::shouldApplyFontTransforms): Added. Returns true if the typesetting
46261         features include kerning or ligatures.
46262         * platform/mac/WebCoreSystemInterface.h: Defined wkCTFontTransformOptions and declared
46263         wkCTFontTransformGlyphs.
46264         * platform/mac/WebCoreSystemInterface.mm: Defined wkCTFontTransformGlyphs.
46265         * rendering/svg/SVGTextMetricsBuilder.cpp:
46266         (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Added a local GlyphBuffer to pass to
46267         WidthIterator::advance().
46268         * rendering/svg/SVGTextRunRenderingContext.cpp:
46269         (WebCore::SVGTextRunRenderingContext::floatWidthUsingSVGFont): Ditto.
46270
46271 2012-10-15  Mark Lam  <mark.lam@apple.com>
46272
46273         Fix build broken by r131348.
46274         https://bugs.webkit.org/show_bug.cgi?id=97533.
46275
46276         Not reviewed.
46277
46278         * rendering/RenderView.cpp:
46279         (WebCore::RenderView::layoutContent):
46280
46281 2012-10-15  Andreas Kling  <kling@webkit.org>
46282
46283         Remove WTF::fastDeleteAllValues().
46284         <http://webkit.org/b/99345>
46285
46286         Reviewed by Eric Seidel.
46287
46288         It was only used to fastDelete() a class that was already overriding operator delete
46289         by way of WTF_MAKE_FAST_ALLOCATED anyway.
46290
46291         * css/CSSParser.cpp:
46292         (WebCore::CSSParser::~CSSParser):
46293
46294 2012-10-15  Levi Weintraub  <leviw@chromium.org>
46295
46296         Regression r130057: incorrect block pref width for alternating InlineFlow and inline Replaced
46297         https://bugs.webkit.org/show_bug.cgi?id=99194
46298
46299         Reviewed by Eric Seidel.
46300
46301         Correctly breaking lines after inline replaced elements that follow inline flows. Previously, alternating
46302         these two types of elements would cause us to increase our preferred width forever.
46303
46304         Test: fast/block/block-with-inline-replaced-children-in-inline-flows.html
46305
46306         * rendering/RenderBlock.cpp:
46307         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
46308
46309 2012-10-15  Emil A Eklund  <eae@chromium.org>
46310
46311         Revert rounding change in RenderTable::paintObject
46312         https://bugs.webkit.org/show_bug.cgi?id=99364
46313
46314         Reviewed by Levi Weintraub.
46315
46316         Bug 91410 changed RenderTable::paintObject to round the offset
46317         in order to avoid table-background bleed through. The root cause
46318         for that has since been fixed and the rounding workaround is no
46319         longer needed. This change reverts the code change from bug
46320         91410 while preserving the test added as a part of that change
46321         as it now passes without the workaround.
46322
46323         No new tests, covered by fast/sub-pixel/table-rows-no-gaps-expected.html
46324
46325         * rendering/RenderTable.cpp:
46326         (WebCore::RenderTable::paintObject):
46327         Remove unnecessary rounding.
46328
46329 2012-10-15  Michelangelo De Simone  <michelangelo@webkit.org>
46330
46331         [CSS Shaders] Add CustomFilterProgramType to CustomFilterProgramInfo
46332         https://bugs.webkit.org/show_bug.cgi?id=96448
46333
46334         Reviewed by Kenneth Rohde Christiansen.
46335
46336         CustomFilterProgramInfo has been refactored to decouple the CustomFilterProgramType from
46337         the CustomFilterProgramMixSetting: m_mixSettings.enabled was redundant in light of the fact
46338         that m_programType encoded the very same information. Dependencies have been updated to reflect
46339         this change.
46340
46341         Current tests already cover this code.
46342
46343         * css/CSSComputedStyleDeclaration.cpp: 
46344         (WebCore::CSSComputedStyleDeclaration::valueForFilter): The check for mixSettings.enabled has been replaced
46345         by an explicit check for PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE program type.
46346         * css/StyleResolver.cpp:
46347         (WebCore::StyleResolver::createCustomFilterOperation): Setting the program type explicitly while creating a
46348         new filter program.
46349         * platform/graphics/filters/CustomFilterProgram.cpp:
46350         (WebCore::CustomFilterProgram::CustomFilterProgram): CustomFilterProgram's constructor has been updated to
46351         reflect the need of setting the program type explicitly.
46352         (WebCore::CustomFilterProgram::programInfo): Updated to create new CustomFilterProgramInfo setting the program
46353         type explicitly.
46354         * platform/graphics/filters/CustomFilterProgram.h:
46355         * platform/graphics/filters/CustomFilterProgramInfo.cpp:
46356         (WebCore::CustomFilterProgramInfo::CustomFilterProgramInfo): Added m_programType and udpated the related getter.
46357         (WebCore::CustomFilterProgramInfo::hash): ditto
46358         (WebCore::CustomFilterProgramInfo::operator==): MixSettings' equality check is being performed only whether
46359         the CustomFilterProgramInfo's program type is PROGRAM_TYPE_BLENDS_ELEMENT_TEXTURE.
46360         * platform/graphics/filters/CustomFilterProgramInfo.h:
46361         (WebCore::CustomFilterProgramMixSettings::CustomFilterProgramMixSettings): Got rid of the redundant enabled flag.
46362         (WebCore::CustomFilterProgramMixSettings::operator==): ditto
46363         (CustomFilterProgramInfo):
46364         (WebCore::CustomFilterProgramInfo::programType):
46365         * platform/graphics/filters/CustomFilterValidatedProgram.cpp: The right shader validator is now being
46366         created according to the program type.
46367         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram):
46368         (WebCore::CustomFilterValidatedProgram::rewriteMixVertexShader): The reference to MixSettings' enabled flag
46369         has been replaced with a check for the program type.
46370         (WebCore::CustomFilterValidatedProgram::rewriteMixFragmentShader): ditto
46371         * rendering/style/StyleCustomFilterProgram.h:
46372         (WebCore::StyleCustomFilterProgram::create): Updated to be aware of the program type.
46373         (WebCore::StyleCustomFilterProgram::StyleCustomFilterProgram): ditto
46374
46375 2012-10-15  Joshua Bell  <jsbell@chromium.org>
46376
46377         IndexedDB: Key paths should support non-ASCII identifiers
46378         https://bugs.webkit.org/show_bug.cgi?id=98814
46379
46380         Reviewed by Kentaro Hara.
46381
46382         Update the parser for key paths to use the unicode classes from
46383         the IdentifierName production in ECMA-262.
46384
46385         Test: storage/indexeddb/keypath-basics.html
46386
46387         * Modules/indexeddb/IDBKeyPath.cpp:
46388         (WebCore):
46389         (WebCore::IDBKeyPathLexer::lexIdentifier):
46390
46391 2012-10-15  Yael Aharon  <yael.aharon@intel.com>
46392
46393         [EFL][WK2][Texmap] Set gl context in GraphicsContext3DPrivate
46394         https://bugs.webkit.org/show_bug.cgi?id=99325
46395
46396         Reviewed by Kenneth Rohde Christiansen.
46397
46398         Based on a patch from Regina Chung.
46399         This piece of code was lost in the final patch of https://bugs.webkit.org/show_bug.cgi?id=96627.
46400         The gl context is used as key in a hash map and cannot be NULL.
46401
46402         No new tests. Accelerated compositing is not yet enabled in the EFL port.
46403
46404         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
46405         (WebCore::GraphicsContext3D::GraphicsContext3D):
46406
46407 2012-10-15  Mike West  <mkwst@chromium.org>
46408
46409         Console messages containing long URLs should cut at some reasonable length.
46410         https://bugs.webkit.org/show_bug.cgi?id=97980
46411
46412         Reviewed by Pavel Feldman.
46413
46414         This patch lightly modifies the current styling of linkified URLs inside
46415         console messages in order to cut them down to some reasonable size for
46416         viewing. The middle of the URL is snipped out such that the whole
46417         thing fits into 150 characters. This only effects the displayed text;
46418         the link's href isn't changed; the link remains available via the
46419         context menu, accessible via the title attribute, and clicking it still
46420         takes the user directly to the resource in question.
46421
46422         Test: inspector/console/console-trim-long-urls.html
46423
46424         * inspector/front-end/ResourceUtils.js:
46425         (WebInspector.linkifyURLAsNode):
46426             Trim the middle of the URL to bring the whole string down to  down
46427             to 150 characters, and set the link's title to the full URL.
46428
46429 2012-10-15  Tony Chang  <tony@chromium.org>
46430
46431         Add computeLogicalHeight override methods to RenderView and RenderMultiColumnSet
46432         https://bugs.webkit.org/show_bug.cgi?id=99348
46433
46434         Reviewed by Ojan Vafai.
46435
46436         Add computeLogicalHeight to the last 2 RenderBoxes that override the method.
46437         I'm unable to remove RenderMultiColumnSet::updateLogicalHeight and make the method
46438         non-virtual since it sets ComputedColumnHeight.  I'd like to remove this
46439         eventually.
46440
46441         No new tests, this is just a code refactor.
46442
46443         * rendering/RenderMultiColumnSet.cpp:
46444         (WebCore::RenderMultiColumnSet::updateLogicalHeight): Set computedColumnHeight.
46445         (WebCore::RenderMultiColumnSet::computeLogicalHeight):
46446         (WebCore):
46447         * rendering/RenderMultiColumnSet.h:
46448         (RenderMultiColumnSet):
46449         * rendering/RenderView.cpp:
46450         (WebCore::RenderView::computeLogicalHeight):
46451         * rendering/RenderView.h:
46452
46453 2012-10-15  Eunmi Lee  <eunmi15.lee@samsung.com>
46454
46455         [EFL][WK2] Refactoring initialization and shutdown codes of EFL libraries.
46456         https://bugs.webkit.org/show_bug.cgi?id=97173
46457
46458         Reviewed by Gyuyoung Kim.
46459
46460         Remove codes to initialize and shutdown the EFL libraries from
46461         RunLoopEfl.cpp. Initialization and shutdown will be done in the
46462         ewk_main.cpp for ui process and WebProcessMainEfl.cpp for web
46463         process.
46464
46465         No new tests. This patch doesn't change behavior.
46466
46467         * platform/efl/RunLoopEfl.cpp:
46468         (WebCore::RunLoop::RunLoop):
46469         (WebCore::RunLoop::~RunLoop):
46470
46471 2012-10-15  Mihnea Ovidenie  <mihnea@adobe.com>
46472
46473         [CSSRegions]Add support for auto-height regions (without region-breaks)
46474         https://bugs.webkit.org/show_bug.cgi?id=97533
46475
46476         Reviewed by Julien Chaffraix.
46477
46478         Implement the 2pass layout algorithm for computing the height of regions with auto logical height, without taking region breaks into account.
46479         The algorithm is described in the CSSRegions spec: http://dev.w3.org/csswg/css3-regions/#regions-visual-formatting-steps
46480
46481         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.
46482         In each step of the layout, the regions are laid out before the flow thread is laid out.
46483
46484         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
46485         displays all the corresponding content from the flow thread (taking min-height and max-height into account), and the height of the content displayed
46486         determines the overridden logical content height. Thus, after the first pass of layout, each auto logical height region will store the logical height
46487         value for the second pass in its overridden logical content height property.
46488
46489         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
46490         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,
46491         for which the auto logical height regions have proper logical height.
46492
46493         A future patch will properly take region breaks into account for the first pass of layout.
46494
46495         Tests: fast/regions/autoheight-abspos-region.html
46496                fast/regions/autoheight-floatright-region.html
46497                fast/regions/autoheight-horizontal-bt.html
46498                fast/regions/autoheight-inlineblock-normalflow-region.html
46499                fast/regions/autoheight-maxheight-region.html
46500                fast/regions/autoheight-minheight-region.html
46501                fast/regions/autoheight-normalflow-region.html
46502                fast/regions/autoheight-vertical-lr.html
46503                fast/regions/autoheight-vertical-rl.html
46504
46505         * rendering/FlowThreadController.cpp:
46506         (WebCore::FlowThreadController::resetRegionsOverrideLogicalContentHeight):
46507         For all the auto logical height regions, resets their associated overrideLogicalContentHeight.
46508         Those regions are marked as needing layout (along with their ancestors).
46509         (WebCore::FlowThreadController::markAutoLogicalHeightRegionsForLayout):
46510         Mark all the auto logical height regions and their associated flow thread as needing layout (along with their ancestors).
46511         * rendering/FlowThreadController.h:
46512         * rendering/RenderBox.cpp:
46513         Add helper functions to clear out individual logical content width/height.
46514         (WebCore::RenderBox::clearOverrideLogicalContentHeight):
46515         (WebCore::RenderBox::clearOverrideLogicalContentWidth):
46516         (WebCore::RenderBox::clearOverrideSize):
46517         * rendering/RenderBox.h:
46518         * rendering/RenderFlowThread.cpp:
46519         (WebCore::RenderFlowThread::layout):
46520         (WebCore::RenderFlowThread::computeLogicalHeight):
46521         If the flow thread has an auto logical height region for which we did not yet compute the overrideLogicalContentHeight value,
46522         bail out early since we cannot compute the flow thread logical height.
46523         (WebCore::RenderFlowThread::regionAtBlockOffset):
46524         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
46525         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
46526         the logicalHeight if we are in the second layout phase (because the overriderLogicalContentHeight was already transferred into region logical height).
46527         (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
46528         (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
46529         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
46530         (WebCore::RenderFlowThread::resetRegionsOverrideLogicalContentHeight):
46531         (WebCore::RenderFlowThread::markAutoLogicalHeightRegionsForLayout):
46532         (WebCore::RenderFlowThread::updateRegionsFlowThreadPortionRect):
46533         (WebCore::RenderFlowThread::addForcedRegionBreak):
46534         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
46535         can have its height properly computed.
46536         * rendering/RenderFlowThread.h:
46537         * rendering/RenderNamedFlowThread.cpp:
46538         (WebCore::boxIntersectsRegion):
46539         * rendering/RenderRegion.cpp:
46540         (WebCore::RenderRegion::updateLogicalHeight):
46541         If the auto logical height region has an overrideLogicalContentHeight and we are in the second pass of layout,
46542         we use the overrideLogicalContentHeight to update the region logical height.
46543         (WebCore::RenderRegion::needsOverrideLogicalContentHeightComputation):
46544         * rendering/RenderRegion.h:
46545         * rendering/RenderView.cpp:
46546         (WebCore::RenderView::RenderView):
46547         (WebCore::RenderView::layoutContent):
46548         Added a new function to contain the RenderView block layout and flow threads layout.
46549         (WebCore::RenderView::checkLayoutState):
46550         Helper function keeping the original asserts from RenderView, used in more than one place.
46551         (WebCore::RenderView::layout):
46552         * rendering/RenderView.h:
46553         (WebCore::RenderView::normalLayoutPhase):
46554         (WebCore::RenderView::constrainedFlowThreadsLayoutPhase):
46555
46556 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46557
46558         Web Inspector: Fix memory leak in TreeOutline
46559         https://bugs.webkit.org/show_bug.cgi?id=99307
46560
46561         Reviewed by Alexander Pavlov.
46562
46563         Added cleanup of empty buckets in elements cache.
46564
46565         * inspector/front-end/treeoutline.js:
46566
46567 2012-10-15  Eugene Klyuchnikov  <eustas.bug@gmail.com>
46568
46569         Web Inspector: Hide useless controls in remote-debugging mode.
46570         https://bugs.webkit.org/show_bug.cgi?id=99300
46571
46572         Reviewed by Vsevolod Vlasov.
46573
46574         "Close inspector" and "change docking mode" buttons seem to be rather
46575         useless in remote debugging mode.
46576
46577         * inspector/front-end/inspector.css:
46578         (body.remote .toolbar-item.close-left, body.remote .toolbar-item.close-right):
46579         (body.remote .dock-status-bar-item):
46580
46581 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46582
46583         [EFL][WK2] Implement Favicons API
46584         https://bugs.webkit.org/show_bug.cgi?id=99087
46585
46586         Reviewed by Kenneth Rohde Christiansen.
46587
46588         Moved ewk_util from WebKit to WebCore and rename it
46589         to CairoUtilityEfl so that the code can be shared
46590         between WebKit1 and WebKit2. Some related utility
46591         code was also moved from RenderThemeEfl to
46592         CairoUtilityEfl.
46593
46594         No new tests, no behavior change.
46595
46596         * PlatformEfl.cmake:
46597         * platform/efl/RenderThemeEfl.cpp:
46598         * platform/graphics/efl/CairoUtilitiesEfl.cpp: Renamed from Source/WebKit/efl/ewk/ewk_util.cpp.
46599         (WebCore):
46600         (WebCore::evasObjectFromCairoImageSurface):
46601         (WebCore::createSurfaceForBackingStore):
46602         * platform/graphics/efl/CairoUtilitiesEfl.h: Renamed from Source/WebKit/efl/ewk/ewk_util_private.h.
46603         (WebCore):
46604
46605 2012-10-15  Beth Dakin  <bdakin@apple.com>
46606
46607         https://bugs.webkit.org/show_bug.cgi?id=99350
46608         REGRESSION (r131238): Repro crash in 
46609        WebCore::ScrollingStateTree::removeNode(WebCore::ScrollingStateNode*) 
46610         opening pdf page
46611         -and corresponding-
46612         <rdar://problem/12499839>
46613
46614         Reviewed by Simon Fraser.
46615
46616         We have to null-check node here. It won't be found if  
46617         clearStateTree() was recently called.
46618         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
46619         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
46620
46621 2012-10-15  Jonathan Dong  <jonathan.dong@torchmobile.com.cn>
46622
46623         [BlackBerry] replace BlackBerry::Platform::log() with BBLOG()
46624         https://bugs.webkit.org/show_bug.cgi?id=99302
46625
46626         Reviewed by Rob Buis.
46627
46628         RIM PR: 210884
46629         The marco BBLOG() is defined as a no-op in release mode which will
46630         save a function call in the release build.
46631         Internally reviewed by Charles Wei.
46632
46633         No new tests since there's no functional change.
46634
46635         * platform/blackberry/PlatformKeyboardEventBlackBerry.cpp:
46636         (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
46637         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
46638         (WebCore::GraphicsContext3D::logFrameBufferStatus):
46639         * platform/graphics/blackberry/LayerCompositingThread.cpp:
46640         (WebCore::LayerCompositingThread::getTransformedHolePunchRect):
46641         * platform/graphics/blackberry/VideoLayerWebKitThread.cpp:
46642         (WebCore::VideoLayerWebKitThread::setHolePunchRect):
46643         (WebCore::VideoLayerWebKitThread::boundsChanged):
46644         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
46645         (WebCore::GraphicsContext3D::compileShader):
46646
46647 2012-10-15  Christophe Dumez  <christophe.dumez@intel.com>
46648
46649         [EFL] Provide logging for OnlineState detection code
46650         https://bugs.webkit.org/show_bug.cgi?id=99299
46651
46652         Reviewed by Kenneth Rohde Christiansen.
46653
46654         Add logging to NetworkStateNotifierEfl.cpp to facilitate
46655         debugging of this functionality.
46656
46657         No new tests, no behavior change.
46658
46659         * platform/network/efl/NetworkStateNotifierEfl.cpp:
46660         (WebCore::NetworkStateNotifier::updateState):
46661
46662 2012-10-15  MORITA Hajime  <morrita@google.com>
46663
46664         [Regression r131167] run-webkit-tests fails
46665         https://bugs.webkit.org/show_bug.cgi?id=99279
46666
46667         Reviewed by Kentaro Hara.
46668
46669         CodeGeneratorV8.pm assumed that there are only two objects which have constructor getters and
46670         overlooked TestObj. This fix relaxes that assumption to accept it.
46671
46672         No new tests. Fixing an existing test.
46673
46674         * bindings/scripts/CodeGeneratorV8.pm:
46675         (GenerateConstructorGetter):
46676         * bindings/scripts/test/V8/V8TestObj.cpp:
46677         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
46678
46679 2012-10-15  Joe Mason  <jmason@rim.com>
46680
46681         [BlackBerry] Fix WebSockets which was disabled by recent string changes
46682         https://bugs.webkit.org/show_bug.cgi?id=99248
46683
46684         Reviewed by George Staikos.
46685
46686         PR 223681: The signature of FilterStream::notifyStatusReceived changed to take a
46687         BlackBerry::Platform::String instead of a char *. But SocketStreamHandleBlackBerry was not
46688         updated to the new signature, so the status message is not getting passed on because it is
46689         not calling the correct override.
46690
46691         No new tests because this is fixing a regression.
46692
46693         * platform/network/blackberry/SocketStreamHandle.h:
46694         (SocketStreamHandle):
46695         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46696         (WebCore::SocketStreamHandle::notifyStatusReceived):
46697
46698 2012-10-15  Rob Buis  <rbuis@rim.com>
46699
46700         Remove RenderTextControl::isSelectableElement
46701         https://bugs.webkit.org/show_bug.cgi?id=99334
46702
46703         Reviewed by Andreas Kling.
46704
46705         It seems this method is not used anymore.
46706
46707         * WebCore.order:
46708         * rendering/RenderTextControl.h:
46709
46710 2012-10-15  Mike West  <mkwst@chromium.org>
46711
46712         CSP source expressions should support paths at file-level granularity.
46713         https://bugs.webkit.org/show_bug.cgi?id=99250
46714
46715         Reviewed by Adam Barth.
46716
46717         After a bit of discussion on public-webappsec[1], path support for CSP
46718         source expressions has been tuned to support file-level granularity. In
46719         particular, this means that:
46720
46721         - 'example.com/js' matches a file named 'js'
46722         - 'example.com/js/' matches all files under a directory named 'js'
46723           (note the trailing slash)
46724         - 'example.com/js/file.js' matches only a file named 'file.js'
46725           inside a directory named 'js'
46726
46727         Though this is part of the CSP 1.1 spec, it continues to be exposed
46728         outside the CSP_NEXT flag for back-compatibility.
46729
46730         Test cases have been added to the existing
46731         http/tests/security/contentSecurityPolicy/source-list-parsing-paths-*
46732         in order ensure that the new functionality works correctly.
46733
46734         * page/ContentSecurityPolicy.cpp:
46735         (WebCore::CSPSource::pathMatches):
46736             If the path ends with '/', do a prefix check. If not, check for an
46737             exact match.
46738         (WebCore::CSPSourceList::parsePath):
46739             Don't automatically append a '/' to paths.
46740
46741 2012-10-15  George Staikos  <staikos@webkit.org>
46742
46743         [BlackBerry] Adapt to Platform API changes in string handling
46744         https://bugs.webkit.org/show_bug.cgi?id=99248
46745
46746         Reviewed by Yong Li.
46747
46748         Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.
46749
46750         * html/track/TextTrack.cpp:
46751         (WebCore::TextTrack::TextTrack): Fix the build for BlackBerry.
46752         * page/blackberry/SettingsBlackBerry.cpp:
46753         (WebCore):
46754         (WebCore::Settings::initializeDefaultFontFamilies):
46755         * platform/blackberry/LocalizedStringsBlackBerry.cpp:
46756         * platform/blackberry/MIMETypeRegistryBlackBerry.cpp:
46757         (WebCore::MIMETypeRegistry::getMIMETypeForExtension):
46758         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
46759         * platform/blackberry/PasteboardBlackBerry.cpp:
46760         (WebCore::Pasteboard::writeSelection):
46761         (WebCore::Pasteboard::writeURL):
46762         (WebCore::Pasteboard::writePlainText):
46763         (WebCore::Pasteboard::plainText):
46764         (WebCore::Pasteboard::documentFragment):
46765         * platform/blackberry/ReadOnlyLatin1String.h: Removed.
46766         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
46767         (WebCore::MediaPlayerPrivate::getSupportedTypes):
46768         (WebCore::MediaPlayerPrivate::supportsType):
46769         (WebCore::MediaPlayerPrivate::setCertificatePath):
46770         (WebCore::MediaPlayerPrivate::load):
46771         (WebCore::generateProtectionSpaceFromMMRAuthChallenge):
46772         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
46773         (WebCore::MediaPlayerPrivate::onAuthenticationAccepted):
46774         (WebCore::MediaPlayerPrivate::lookupMediaStream):
46775         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
46776         (MediaPlayerPrivate):
46777         (WebCore::MediaPlayerPrivate::engineDescription):
46778         * platform/network/blackberry/DNSBlackBerry.cpp:
46779         (WebCore::prefetchDNS):
46780         * platform/network/blackberry/NetworkJob.cpp:
46781         (WebCore::NetworkJob::initialize):
46782         (WebCore::NetworkJob::notifyStatusReceived):
46783         (WebCore::NetworkJob::notifyHeadersReceived):
46784         (WebCore::NetworkJob::handleNotifyClose):
46785         (WebCore::NetworkJob::sendRequestWithCredentials):
46786         * platform/network/blackberry/NetworkJob.h:
46787         (NetworkJob):
46788         * platform/network/blackberry/NetworkManager.cpp:
46789         (WebCore::NetworkManager::startJob):
46790         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
46791         (WebCore::ResourceRequest::initializePlatformRequest):
46792         * platform/network/blackberry/SocketStreamHandleBlackBerry.cpp:
46793         (WebCore::SocketStreamHandle::SocketStreamHandle):
46794         * platform/text/blackberry/StringBlackBerry.cpp:
46795         (WTF::String::String):
46796         (WTF::String::operator BlackBerry::Platform::String):
46797         * platform/text/blackberry/TextBreakIteratorInternalICUBlackBerry.cpp:
46798
46799 2012-10-15  Jay Civelli  <jcivelli@chromium.org>
46800
46801         Calling WebCore::SharedBuffer::append(data, 0) on a shared buffer when
46802         its current position is at a segment boundary (4096) ends up adding an
46803         unitialized segment (with uninitialized memory) to the SharedBuffer.
46804         https://bugs.webkit.org/show_bug.cgi?id=99000
46805
46806         Reviewed by Adam Barth.
46807
46808         * platform/SharedBuffer.cpp:
46809         (WebCore::SharedBuffer::append):
46810
46811 2012-10-15  Luke Macpherson   <macpherson@chromium.org>
46812
46813         Make CSS variable names case-insensitive.
46814         https://bugs.webkit.org/show_bug.cgi?id=98712
46815
46816         Reviewed by Tony Chang.
46817
46818         This patch modifies the parser to normalize all variable names to lower case,
46819         making variable definitions consistent with other property names, which are also case insensitive.
46820         Spec: http://dev.w3.org/csswg/css-variables/#defining-variables
46821
46822         Test: fast/css/variables/case-insensitive.html
46823
46824         * css/CSSParser.cpp:
46825         (WebCore::CSSParser::createPrimitiveNumericValue):
46826         (WebCore):
46827         (WebCore::CSSParser::createPrimitiveVariableNameValue):
46828         (WebCore::CSSParser::parseValidPrimitive):
46829         (WebCore::CSSParser::parseValue):
46830         (WebCore::CSSParser::storeVariableDeclaration):
46831         (WebCore::CSSParserString::lowerSubstring):
46832         Added function to compute a lower case substring as an AtomicString from a CSSParserString.
46833         * css/CSSParser.h:
46834         (CSSParser):
46835         * css/CSSParserValues.h:
46836         (CSSParserString):
46837         (WebCore::CSSParserString::lowerSubstring):
46838
46839 2012-10-15  Michael Saboff  <msaboff@apple.com>
46840
46841         Update RenderText to use String instead of UChar* for text
46842         https://bugs.webkit.org/show_bug.cgi?id=96979
46843
46844         Reviewed by Dan Bernstein.
46845
46846         RenderText now uses a String for text.  It keeps a cached LCHar* or UChar* pointer to the
46847         actual text data for performance.  Added a characterAt() indexed accessor to RenderText to avoid the
46848         somewhat confusing construct for a RenderText* rt, e.g. (*re)[n] or rt->characters()[n].  This is
46849         now written as rt->characterAt(n).
46850         Enabled patch in the HTML parser to create 8 bit text data.  Modified TextRun to create 
46851         text runs using 8 bit string data where possible.  Added several flavors of RenderBlock::constructTextRun
46852         to create TextRuns from RenderText objects including with an offset.  Added an LChar flavor of constructTextRun()
46853         as well.  Eliminated the TextRunFlags argument to all but the String flavor as all other flavors used the default
46854         parameter.  
46855         Encased the code that creates 8 bit TextRun's in #if USE(8BIT_TEXTRUN).  Enabled WTF_USE_8BIT_TEXTRUN
46856         for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific code is
46857         updated to TextRun's with 8 bit data.
46858         Added many 8/16 bit aware paths.  Cleanup up some int / unsigned confusion in RenderBlockLineLayout.cpp.
46859
46860         No function change therefore no new tests.
46861
46862         * html/parser/HTMLTokenizer.cpp:
46863         (WebCore::vectorEqualsString):
46864         (WebCore::HTMLTokenizer::nextToken):
46865         * html/parser/HTMLTokenizer.h:
46866         (HTMLTokenizer):
46867         * html/track/WebVTTTokenizer.cpp:
46868         (WebCore::vectorEqualsString):
46869         (WebCore::WebVTTTokenizer::nextToken):
46870         * html/track/WebVTTTokenizer.h:
46871         (WebVTTTokenizer):
46872         * platform/graphics/Font.h:
46873         (WebCore::Font::glyphDataForCharacter):
46874         * platform/graphics/FontFastPath.cpp:
46875         (WebCore):
46876         * platform/graphics/TextRun.h:
46877         (WebCore::TextRun::TextRun):
46878         (WebCore::TextRun::subRun):
46879         (TextRun):
46880         * platform/graphics/mac/ComplexTextController.cpp:
46881         (WebCore::TextLayout::isNeeded):
46882         (WebCore::TextLayout::constructTextRun):
46883         * rendering/InlineFlowBox.cpp:
46884         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
46885         * rendering/InlineIterator.h:
46886         (WebCore::InlineIterator::atTextParagraphSeparator):
46887         (WebCore::InlineIterator::current):
46888         (WebCore::InlineIterator::previousInSameNode):
46889         * rendering/InlineTextBox.cpp:
46890         (WebCore::adjustCharactersAndLengthForHyphen):
46891         (WebCore::InlineTextBox::paint):
46892         (WebCore::InlineTextBox::paintSelection):
46893         (WebCore::InlineTextBox::constructTextRun):
46894         * rendering/InlineTextBox.h:
46895         (InlineTextBox):
46896         * rendering/RenderBlock.cpp:
46897         (WebCore::constructTextRunInternal):
46898         (WebCore::RenderBlock::constructTextRun):
46899         * rendering/RenderBlock.h:
46900         (RenderBlock):
46901         * rendering/RenderBlockLineLayout.cpp:
46902         (WebCore::endsWithASCIISpaces):
46903         (WebCore::reachedEndOfTextRenderer):
46904         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
46905         (WebCore::shouldSkipWhitespaceAfterStartObject):
46906         (WebCore::textWidth):
46907         (WebCore::tryHyphenating):
46908         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
46909         * rendering/RenderCombineText.cpp:
46910         (WebCore::RenderCombineText::getStringToRender):
46911         (WebCore::RenderCombineText::combineText):
46912         * rendering/RenderCombineText.h:
46913         (RenderCombineText):
46914         * rendering/RenderText.cpp:
46915         (SameSizeAsRenderText):
46916         (WebCore::RenderText::RenderText):
46917         (WebCore::RenderText::widthFromCache):
46918         (WebCore::RenderText::computePreferredLogicalWidths):
46919         (WebCore::RenderText::setTextInternal):
46920         (WebCore::RenderText::width):
46921         * rendering/RenderText.h:
46922         (WebCore::RenderText::is8Bit):
46923         (WebCore::RenderText::characters8):
46924         (WebCore::RenderText::characters16):
46925         (WebCore::RenderText::characterAt):
46926         (WebCore::RenderText::operator[]):
46927         (RenderText):
46928         * xml/parser/MarkupTokenBase.h:
46929         (WebCore::MarkupTokenBase::appendToCharacter):
46930         (MarkupTokenBase):
46931         (WebCore::MarkupTokenBase::isAll8BitData):
46932
46933 2012-10-15  Vsevolod Vlasov  <vsevik@chromium.org>
46934
46935         Web Inspector: Scripts for dynamically added script elements are not shown in sources panel.
46936         https://bugs.webkit.org/show_bug.cgi?id=99324
46937
46938         Reviewed by Pavel Feldman.
46939
46940         NetworkUISourceCodeProvider now adds uiSourceCodes for dynamic anonymous scripts
46941         and dynamic scripts loaded before inspector was opened.
46942
46943         Tests: http/tests/inspector-enabled/dynamic-scripts.html
46944                inspector/debugger/dynamic-scripts.html
46945
46946         * inspector/front-end/NetworkLog.js:
46947         (WebInspector.NetworkLog.prototype.requestForURL):
46948         * inspector/front-end/NetworkUISourceCodeProvider.js:
46949         (WebInspector.NetworkUISourceCodeProvider):
46950         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
46951         (WebInspector.NetworkUISourceCodeProvider.prototype._projectWillReset):
46952
46953 2012-10-15  Dominik Röttsches  <dominik.rottsches@intel.com>
46954
46955         REGRESSION(130613): Reintroduces crashes when using soup's timeout functionality
46956         https://bugs.webkit.org/show_bug.cgi?id=99311
46957
46958         Reviewed by Gustavo Noronha Silva.
46959
46960         Removing the cleanupSoupRequestOperation call, since the cancel() call will eventually trigger the
46961         cleanup already setting the right flag. Cleaning the handle already here will result in crashes when
46962         using the soup timeout functionality.
46963         The explicit cleanup call reintroduced in r130613, after it had been previously removed in r130348.
46964
46965         No new tests, tests that catch this will be part of bug 74802 for XHR timeout support.
46966
46967         * platform/network/soup/ResourceHandleSoup.cpp:
46968         (WebCore::requestTimeoutCallback):
46969
46970 2012-10-15  Ilya Tikhonovsky  <loislo@chromium.org>
46971
46972         Web Inspector: convert manual size calculation of different WebKit things into MemoryInstrumentation.
46973         https://bugs.webkit.org/show_bug.cgi?id=99309
46974
46975         Reviewed by Yury Semikhatsky.
46976
46977         JSHeap, DOMStorage and HeapProfiler data were counted manually.
46978         Now we count the sizes more generic way.
46979
46980         * dom/WebCoreMemoryInstrumentation.cpp:
46981         * dom/WebCoreMemoryInstrumentation.h:
46982         (WebCoreMemoryTypes): new string identifiers were added for Inspector's data.
46983         * inspector/InspectorBaseAgent.cpp:
46984         (WebCore::InspectorBaseAgentInterface::InspectorBaseAgentInterface): common data members were moved from template to base class.
46985         (WebCore::InspectorBaseAgentInterface::reportMemoryUsage): NMI instrumentation was added to the base template.
46986         * inspector/InspectorBaseAgent.h:
46987         (InspectorBaseAgentInterface): ditto
46988         (WebCore::InspectorBaseAgent::InspectorBaseAgent): ditto
46989         * inspector/InspectorController.cpp:
46990         (WebCore::InspectorController::reportMemoryUsage): NMI instrumentation was added to the class.
46991         * inspector/InspectorController.h:
46992         * inspector/InspectorDOMStorageAgent.cpp:
46993         (WebCore::InspectorDOMStorageAgent::reportMemoryUsage): NMI instrumentation was added to the class.
46994         * inspector/InspectorDOMStorageAgent.h:
46995         * inspector/InspectorDOMStorageResource.cpp:
46996         (WebCore::InspectorDOMStorageResource::reportMemoryUsage): NMI instrumentation was added to the class.
46997         * inspector/InspectorDOMStorageResource.h:
46998         * inspector/InspectorMemoryAgent.cpp:
46999         (WebCore::reportJSHeapInfo): these methods now use MemoryInstrumentation for reporting the size of underlying data.
47000         (WebCore::reportRenderTreeInfo):
47001         (WebCore::collectDomTreeInfo):
47002         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47003         (WebCore::InspectorMemoryAgent::reportMemoryUsage): NMI instrumentation was added to the class.
47004         * inspector/InspectorMemoryAgent.h:
47005         * inspector/InspectorProfilerAgent.cpp:
47006         (WebCore::InspectorProfilerAgent::reportMemoryUsage):
47007         * inspector/InspectorProfilerAgent.h:
47008         (InspectorProfilerAgent): NMI instrumentation was added to the class.
47009         * inspector/MemoryInstrumentationImpl.cpp: allocatedObjects map was converted from InspectorMemoryAgent::getProcessMemoryDistribution local variable to member variable.
47010         (WebCore::MemoryInstrumentationClientImpl::checkCountedObject):
47011         (WebCore::MemoryInstrumentationClientImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47012         (WebCore::MemoryInstrumentationImpl::reportMemoryUsage): NMI instrumentation was added to the class.
47013         * inspector/MemoryInstrumentationImpl.h:
47014         (WebCore::MemoryInstrumentationClientImpl::MemoryInstrumentationClientImpl):
47015         (WebCore::MemoryInstrumentationClientImpl::allocatedObjects):
47016         (WebCore::MemoryInstrumentationClientImpl::checkInstrumentedObjects):
47017         * inspector/front-end/NativeMemorySnapshotView.js:
47018         (WebInspector.MemoryBlockViewProperties._initialize):
47019         (WebInspector.NativeMemoryBarChart.prototype._updateView):
47020         * page/Page.cpp:
47021         (WebCore::Page::reportMemoryUsage): NMI instrumentation was added to the class.
47022         * page/Page.h:
47023
47024 2012-10-15  Kent Tamura  <tkent@chromium.org>
47025
47026         Improve code of LocaleMac.mm
47027         https://bugs.webkit.org/show_bug.cgi?id=98383
47028
47029         Reviewed by Darin Adler.
47030
47031         - Use isNull instead of isEmpty because isNull is more efficient.
47032         - create*Formatter should return RetainPtr to avoid to retain in each of callsites.
47033         - Explicit String conversion is not needed.
47034
47035         No new tests. This doesn't change any behavior.
47036
47037         * platform/text/mac/LocaleMac.h:
47038         (LocaleMac):
47039         - Change the return types of createShortDateFormatter,
47040         createTimeFormatter, and createShortTimeFormatter from NSDateFormatter*
47041         to RetainPtr<NSDateFormatter>.
47042         - Omit 'create' from their names.
47043         - Add m_gregorianCalendar.
47044         * platform/text/mac/LocaleMac.mm:
47045         (WebCore::createDateTimeFormatter):
47046         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47047         Add an NSCalendar argument.
47048         (WebCore::LocaleMac::shortDateFormatter):
47049         Renamed from createShortTimeFormatter.
47050         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47051         (WebCore::LocaleMac::parseDateTime): Follow the return type change and the renaming.
47052         (WebCore::LocaleMac::formatDateTime): Ditto. Also, remove explicit String construction.
47053         (WebCore::LocaleMac::dateFormatText): Ditto. Also, use isNull.
47054         (WebCore::LocaleMac::monthLabels): Follow the return type change and the renaming.
47055         (WebCore::LocaleMac::weekDayShortLabels): Ditto.
47056         (WebCore::LocaleMac::timeFormatter):
47057         Change the return type from NSDateFormatter* to RetainPtr<NSDateFormatter>.
47058         Renamed from createTimeFormatter.
47059         (WebCore::LocaleMac::shortTimeFormatter): Ditto.
47060         (WebCore::LocaleMac::dateFormat):
47061         Use isNull. Remove explicit String construction. Follow the return type
47062         change and the renaming.
47063         (WebCore::LocaleMac::timeFormat): ditto.
47064         (WebCore::LocaleMac::shortTimeFormat): ditto.
47065         (WebCore::LocaleMac::timeAMPMLabels):
47066         Remove explicit String construction. Follow the return type change.
47067         (WebCore::LocaleMac::initializeLocalizerData):
47068         Remove explicit String construction.
47069
47070 2012-10-12  Ilya Tikhonovsky  <loislo@chromium.org>
47071
47072         Web Inspector: NMI remove hand made object builders with automatic builder.
47073         https://bugs.webkit.org/show_bug.cgi?id=99186
47074
47075         Reviewed by Yury Semikhatsky.
47076
47077         Old builders were replaced with single automatic builder.
47078         It does the next things:
47079         a) deduplicates entries in the MemoryInstrumentationClient's map and converts objectType pointers to String;
47080         b) creates parent entries and assigns their aggregated sizes;
47081         c) creates the hierarchy of MemoryBlocks recursively.
47082
47083         * dom/WebCoreMemoryInstrumentation.cpp:
47084         (WebCore):
47085         * dom/WebCoreMemoryInstrumentation.h:
47086         (WebCoreMemoryTypes):
47087         * inspector/InspectorMemoryAgent.cpp:
47088         (WebCore):
47089         (WebCore::jsHeapInfo):
47090         (WebCore::renderTreeInfo):
47091         (WebCore::addPlatformComponentsInfo):
47092         (WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):
47093         * inspector/MemoryInstrumentationImpl.cpp:
47094         (WebCore::MemoryInstrumentationClientImpl::sizesMap):
47095         (WebCore):
47096         * inspector/MemoryInstrumentationImpl.h:
47097         (WebCore):
47098         (MemoryInstrumentationClientImpl):
47099
47100 2012-10-14  Sam Weinig  <sam@webkit.org>
47101
47102         Simplify user content in WebKit2 by using WebCore::UserStyleSheet and WebCore::UserScript directly
47103         https://bugs.webkit.org/show_bug.cgi?id=99276
47104
47105         Reviewed by Anders Carlsson.
47106
47107         Add default constructors for UserScript and UserStyleSheet so they can be used in CoreIPC encoding/decoding.
47108
47109         * page/UserScript.h:
47110         (WebCore::UserScript::UserScript):
47111         (UserScript):
47112         * page/UserStyleSheet.h:
47113         (WebCore::UserStyleSheet::UserStyleSheet):
47114         (UserStyleSheet):
47115
47116 2012-10-14  Jon Lee  <jonlee@apple.com>
47117
47118         Allow notification origin permission request when no js callback is provided
47119         https://bugs.webkit.org/show_bug.cgi?id=63615
47120         <rdar://problem/11059590>
47121
47122         Reviewed by Sam Weinig.
47123
47124         Instead of throwing a type error when no callback is provided, we pass a null callback.
47125
47126         Test: http/tests/notifications/legacy/request-no-callback.html
47127
47128         * bindings/js/JSDesktopNotificationsCustom.cpp:
47129         (WebCore::JSNotificationCenter::requestPermission):
47130
47131 2012-10-12  Anders Carlsson  <andersca@apple.com>
47132
47133         Move QDataStream functions into HistoryItemQt.cpp
47134         https://bugs.webkit.org/show_bug.cgi?id=99203
47135
47136         Reviewed by Andreas Kling.
47137
47138         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47139         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47140         be moved into a separate header instead of polluting headers unnecessarily.
47141
47142         * history/qt/HistoryItemQt.cpp:
47143         (operator<<):
47144         (operator>>):
47145         * platform/FractionalLayoutUnit.h:
47146         * platform/graphics/IntPoint.h:
47147
47148 2012-10-14  Sam Weinig  <sam@webkit.org>
47149
47150         Make UserScript and UserStyleSheet value objects that are copyable
47151         https://bugs.webkit.org/show_bug.cgi?id=99275
47152
47153         Reviewed by Tim Horton.
47154
47155         Simplify UserScript and UserStyleSheet and make them more easily usable
47156         without sticking them in an OwnPtr.
47157
47158         * WebCore.exp.in:
47159         Update exports.
47160
47161         * page/PageGroup.cpp:
47162         (WebCore::PageGroup::addUserScriptToWorld):
47163         (WebCore::PageGroup::addUserStyleSheetToWorld):
47164         * page/PageGroup.h:
47165         (PageGroup):
47166         * page/UserContentURLPattern.cpp:
47167         (WebCore::UserContentURLPattern::matchesPatterns):
47168         * page/UserContentURLPattern.h:
47169         (UserContentURLPattern):
47170         Update to not assume whitelist and blacklist are in Vector<String>*.
47171
47172         * page/UserScript.h:
47173         (UserScript):
47174         (WebCore::UserScript::UserScript):
47175         (WebCore::UserScript::whitelist):
47176         (WebCore::UserScript::blacklist):
47177         * page/UserStyleSheet.h:
47178         (UserStyleSheet):
47179         (WebCore::UserStyleSheet::UserStyleSheet):
47180         (WebCore::UserStyleSheet::whitelist):
47181         (WebCore::UserStyleSheet::blacklist):
47182         Switch OwnPtr<Vector<String> > to Vector<String> and remove Noncopyable restriction.
47183
47184 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47185
47186         [wk2] Implement PDFPlugin
47187         https://bugs.webkit.org/show_bug.cgi?id=99206
47188
47189         Unreviewed build fix, export __ZN7WebCore8IntPointC1ERK7CGPoint.
47190
47191         * WebCore.exp.in:
47192
47193 2012-10-14  Tim Horton  <timothy_horton@apple.com>
47194
47195         [wk2] Implement PDFPlugin
47196         https://bugs.webkit.org/show_bug.cgi?id=99206
47197
47198         Reviewed by Dan Bernstein.
47199
47200         Add a plug-in that uses PDFKit to display PDFs, instead of using PDFKit in the
47201         UIProcess for full-page PDFs. This new plugin will also be used for inline PDFs
47202         in place of SimplePDFPlugin (née BuiltInPDFView).
47203
47204         * WebCore.exp.in:
47205         Export a few more methods to WebKit(2).
47206
47207         * WebCore.xcodeproj/project.pbxproj:
47208         Expose Pasteboard.h as a private header so PDFPlugin can use it.
47209
47210         * platform/ScrollableArea.h:
47211         Make invalidateScrollbar/invalidateScrollCorner virtual.
47212
47213 2012-10-14  Antoine Quint  <graouts@apple.com>
47214
47215         InspectorPageAgent should expose a method to control the compositing debug settings.
47216         https://bugs.webkit.org/show_bug.cgi?id=99253
47217
47218         Reviewed by Timothy Hatcher.
47219
47220         * inspector/Inspector.json:
47221         * inspector/InspectorPageAgent.cpp:
47222         (WebCore::InspectorPageAgent::setCompositingBordersVisible):
47223         * inspector/InspectorPageAgent.h:
47224
47225 2012-10-13  Chris Rogers  <crogers@google.com>
47226
47227         WebAudioBus needs support for resizing bus to a smaller size
47228         https://bugs.webkit.org/show_bug.cgi?id=99215
47229
47230         Reviewed by Dimitri Glazkov.
47231
47232         Upgrade AudioBus and WebAudioBus to support resizing to a smaller size, once it has been created.
47233         This is useful, for example, when decoding VBR formats and the actual length can't be exactly determined
47234         until the entire file is decoded.
47235
47236         * platform/audio/AudioBus.cpp:
47237         (WebCore::AudioBus::resizeSmaller):
47238         (WebCore):
47239         * platform/audio/AudioBus.h:
47240         (AudioBus):
47241         * platform/audio/AudioChannel.cpp:
47242         (WebCore::AudioChannel::resizeSmaller):
47243         (WebCore):
47244         * platform/audio/AudioChannel.h:
47245         (AudioChannel):
47246         * platform/chromium/support/WebAudioBus.cpp:
47247         (WebKit::WebAudioBus::resizeSmaller):
47248         (WebKit):
47249
47250 2012-10-13  Gregg Tavares  <gman@google.com>
47251
47252         Add warning for unrenderable textures
47253         https://bugs.webkit.org/show_bug.cgi?id=99235
47254
47255         Reviewed by Kenneth Russell.
47256
47257         Unrenderable textures are often hard to debug. Adds a message to that
47258         appears in the JavaScript console to help developers find the issue.
47259
47260         No new tests as no new functionality.
47261
47262         * html/canvas/WebGLRenderingContext.cpp:
47263         (WebCore):
47264         (WebCore::WebGLRenderingContext::drawArrays):
47265         (WebCore::WebGLRenderingContext::drawElements):
47266         (WebCore::WebGLRenderingContext::handleNPOTTextures):
47267         * html/canvas/WebGLRenderingContext.h:
47268         (WebGLRenderingContext):
47269
47270 2012-10-13  Geoffrey Garen  <ggaren@apple.com>
47271
47272         Not reviewed.
47273
47274         Updated bindings test results.
47275
47276         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
47277         (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
47278
47279 2012-10-12  Geoffrey Garen  <ggaren@apple.com>
47280
47281         I pity da foo' who's converting numbers to strings
47282         https://bugs.webkit.org/show_bug.cgi?id=99197
47283
47284         Reviewed by Gavin Barraclough.
47285
47286         40% speedup on PerformanceTests/Dromaeo/dom-traverse.html. Probably speeds
47287         some other things up too.
47288
47289         Credit to Eric Seidel for spotting this.
47290
47291         * bindings/scripts/CodeGeneratorJS.pm:
47292         (GenerateImplementation): getOwnPropertySlotByIndex doesn't need to prefer
47293         string lookup in the static table because our static tables don't contain
47294         properties that are numbers.
47295
47296         I believe this is low-hanging fruit left behind by Phil's
47297         getOwnPropertySlotByIndex optimization, but it's also possible that this was a
47298         regression at some point. I didn't check.
47299
47300 2012-10-13  Adam Barth  <abarth@webkit.org>
47301
47302         Remove dead code in Node.idl
47303         https://bugs.webkit.org/show_bug.cgi?id=99237
47304
47305         Reviewed by Maciej Stachowiak.
47306
47307         We don't implement this feature. This code is dead and should be
47308         removed.
47309
47310         * dom/Node.idl:
47311
47312 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47313
47314         Fix GraphicsLayerCA visible rect computation in the face of perspective and preserve-3d
47315         https://bugs.webkit.org/show_bug.cgi?id=99212
47316
47317         Reviewed by Tim Horton.
47318
47319         GraphicsLayerCA::computeVisibleRect() was incorrect for layer trees with perspective
47320         and preserve-3d, so fix that, and add some tests.
47321         
47322         Perspective is implemented via childrenTransform(); if our parent has one,
47323         we have to left-multiply this into the transformation matrix.
47324         
47325         We have to test both this layer and its parent when deciding whether to accumulate
47326         or flatten.
47327         
47328         Use state.mappedQuad() rather than state.lastPlanarQuad(), because the last planar
47329         quad might be for some distant ancestor, and there may be intermediate preserve-3d
47330         layers.
47331
47332         Tests: compositing/visible-rect/3d-transform-style.html
47333                compositing/visible-rect/3d-transformed.html
47334                compositing/visible-rect/nested-transform.html
47335
47336         * platform/graphics/ca/GraphicsLayerCA.cpp:
47337         (WebCore::GraphicsLayerCA::computeVisibleRect):
47338
47339 2012-10-11  Simon Fraser  <simon.fraser@apple.com>
47340
47341         Move TransformState code into its own member function, and remove a test that was prematurely added
47342         https://bugs.webkit.org/show_bug.cgi?id=99117
47343
47344         Reviewed by Tim Horton.
47345
47346         The code that manipulates the TransformState and computes the visible rect is going to get
47347         more complex, so move it into a new member function.
47348
47349         * platform/graphics/ca/GraphicsLayerCA.cpp:
47350         (WebCore::GraphicsLayerCA::computeVisibleRect):
47351         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47352         * platform/graphics/ca/GraphicsLayerCA.h:
47353         (GraphicsLayerCA):
47354
47355 2012-10-12  Simon Fraser  <simon.fraser@apple.com>
47356
47357         Add some initial visible rect tests and tweak the visible wash layer
47358         https://bugs.webkit.org/show_bug.cgi?id=99095
47359
47360         Reviewed by Tim Horton.
47361
47362         Make the m_visibleTileWashLayer more useful by showing it for all
47363         layers with transforms, not just tiled layers. This is a debugging
47364         layer normally disabled, but enabled by #defining VISIBLE_TILE_WASH.
47365
47366         Tests: compositing/visible-rect/2d-transformed.html
47367                compositing/visible-rect/3d-transformed.html
47368                compositing/visible-rect/clipped-by-viewport copy.html
47369                compositing/visible-rect/clipped-by-viewport.html
47370                compositing/visible-rect/clipped-visible-rect.html
47371
47372         * platform/graphics/ca/GraphicsLayerCA.cpp:
47373         (WebCore::GraphicsLayerCA::recursiveCommitChanges):
47374         (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
47375         * platform/graphics/ca/GraphicsLayerCA.h:
47376
47377 2012-10-12  Pablo Flouret  <pablof@motorola.com>
47378
47379         Teach GeneratorGObject about [ImplementedAs] extended attribute in functions
47380         https://bugs.webkit.org/show_bug.cgi?id=99214
47381
47382         Reviewed by Kentaro Hara.
47383
47384         No new tests, updated the binding tests results.
47385
47386         * bindings/scripts/CodeGeneratorGObject.pm:
47387         (GenerateFunction):
47388         * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
47389         (webkit_dom_test_obj_orange):
47390
47391 2012-10-12  Beth Dakin  <bdakin@apple.com>
47392
47393         https://bugs.webkit.org/show_bug.cgi?id=99211
47394         When ScrollingStateNodes are destroyed, they should be removed 
47395         ScrollingCoordinator's HashMap
47396
47397         Reviewed by Sam Weinig.
47398
47399         This patch adds a new member variable to ScrollingStateTree. It's a 
47400         Vector of ScrollingNodeIDs. It will contain the IDs of nodes that 
47401         have been removed from the tree since the last time the tree was 
47402         committed.
47403         * page/scrolling/ScrollingStateTree.cpp:
47404         (WebCore::ScrollingStateTree::ScrollingStateTree):
47405
47406         When we do commit, copy the Vector over into the cloned tree, and 
47407         then clear our own Vector.
47408         (WebCore::ScrollingStateTree::commit):
47409
47410         Call didRemoveNode().
47411         (WebCore::ScrollingStateTree::removeNode):
47412
47413         Append the removed node's id to the vector.
47414         (WebCore::ScrollingStateTree::didRemoveNode):
47415         (WebCore):
47416         * page/scrolling/ScrollingStateTree.h:
47417         (ScrollingStateTree):
47418
47419         Call didRemoveNode().
47420         * page/scrolling/ScrollingStateNode.cpp:
47421         (WebCore::ScrollingStateNode::removeChild):
47422
47423         Fix the FIXME!
47424         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47425         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
47426
47427 2012-10-12  Brady Eidson  <beidson@apple.com>
47428
47429         Setup basic NetworkProcess messaging and initialization.
47430         https://bugs.webkit.org/show_bug.cgi?id=99198
47431
47432         Reviewed by Sam Weinig.
47433
47434         * English.lproj/Localizable.strings: Update for the Network Process UI name.
47435
47436 2012-10-12  Levi Weintraub  <leviw@chromium.org>
47437
47438         Remove unnecessary mode identifiers added in r131111
47439         https://bugs.webkit.org/show_bug.cgi?id=99208
47440
47441         Reviewed by Emil A Eklund.
47442
47443         Removing unnecessary mode identifiers from coordinate conversion methods. These
47444         were added in http://trac.webkit.org/changeset/131111
47445
47446         No new tests. No change in behavior.
47447
47448         * rendering/RenderBox.h:
47449         (RenderBox):
47450         * rendering/RenderBoxModelObject.h:
47451         (RenderBoxModelObject):
47452         * rendering/RenderInline.h:
47453         (RenderInline):
47454         * rendering/RenderObject.h:
47455         (RenderObject):
47456         * rendering/RenderView.h:
47457         (RenderView):
47458         * rendering/svg/RenderSVGForeignObject.h:
47459         (RenderSVGForeignObject):
47460         * rendering/svg/RenderSVGInline.h:
47461         (RenderSVGInline):
47462         * rendering/svg/RenderSVGModelObject.h:
47463         (RenderSVGModelObject):
47464         * rendering/svg/RenderSVGRoot.h:
47465         (RenderSVGRoot):
47466         * rendering/svg/RenderSVGText.h:
47467         (RenderSVGText):
47468
47469 2012-10-12  Sheriff Bot  <webkit.review.bot@gmail.com>
47470
47471         Unreviewed, rolling out r131224.
47472         http://trac.webkit.org/changeset/131224
47473         https://bugs.webkit.org/show_bug.cgi?id=99210
47474
47475         It broke the build (Requested by andersca on #webkit).
47476
47477         * history/qt/HistoryItemQt.cpp:
47478         * platform/FractionalLayoutUnit.h:
47479         (WebCore):
47480         (WebCore::operator<<):
47481         (WebCore::operator>>):
47482         * platform/graphics/IntPoint.h:
47483         (WebCore):
47484         (WebCore::operator<<):
47485         (WebCore::operator>>):
47486
47487 2012-10-12  Anders Carlsson  <andersca@apple.com>
47488
47489         Move QDataStream functions into HistoryItemQt.cpp
47490         https://bugs.webkit.org/show_bug.cgi?id=99203
47491
47492         Reviewed by Andreas Kling.
47493
47494         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
47495         inside WebCore, so move them there. If in the future they are required elsewhere, they should
47496         be moved into a separate header instead of polluting headers unnecessarily.
47497
47498         * history/qt/HistoryItemQt.cpp:
47499         (operator<<):
47500         (operator>>):
47501         * platform/FractionalLayoutUnit.h:
47502         * platform/graphics/IntPoint.h:
47503
47504 2012-10-12  Beth Dakin  <bdakin@apple.com>
47505
47506         https://bugs.webkit.org/show_bug.cgi?id=99204
47507         ScrollingStateNodes should keep track of their IDs
47508
47509         Reviewed by Simon Fraser.
47510
47511         There is a HashMap in ScrollingCoordinatorMac that maps 
47512         ScrollingNodeIDs to ScrollingStateNodes. The nodes themselves should 
47513         keep track of this id. Then the id can be used to make sure 
47514         ScrollingStateNodes remove themselves from the HashMap when they are 
47515         destroyed, and it will also be useful for associating 
47516         ScrollingStateNodes with ScrollingTreeNodes over on the scrolling 
47517         thread.
47518   
47519         This patch only has the ScrollingStateNodes cache the id. I will 
47520         actually make use of the id in follow-up patches.
47521
47522         * page/scrolling/ScrollingStateNode.cpp:
47523         (WebCore::ScrollingStateNode::ScrollingStateNode):
47524         * page/scrolling/ScrollingStateNode.h:
47525         (ScrollingStateNode):
47526         (WebCore::ScrollingStateNode::scrollingNodeID):
47527         * page/scrolling/ScrollingStateScrollingNode.cpp:
47528         (WebCore::ScrollingStateScrollingNode::create):
47529         (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
47530         * page/scrolling/ScrollingStateScrollingNode.h:
47531         (ScrollingStateScrollingNode):
47532         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
47533         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
47534
47535 2012-10-01  Jer Noble  <jer.noble@apple.com>
47536
47537         Add LSKD support to MediaPlayerPrivateAVFoundation.
47538         https://bugs.webkit.org/show_bug.cgi?id=98090
47539
47540         Reviewed by Anders Carlsson.
47541
47542         Add support for LSKD key system to MediaPlayerPrivateAVFoundation.
47543
47544         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47545         (MediaPlayerPrivateAVFoundationObjC): Add m_loaderDelegate, m_keyURIToRequestMap, and m_sessionToRequestMap.
47546         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47547         (globalLoaderDelegateQueue): Static accessor for the dispatch queue to use for the loader delegate.
47548         (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
47549         (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Add the loader delegate to the AVURLAsset.
47550         (WebCore::keySystemIsSupported): Convenience function; checks that the key system matches "com.apple.lskd"
47551         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Check the key system matches.
47552         (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource): Fire a needkey event with an initData containing
47553             the key URI.
47554         (WebCore::extractKeyURIKeyIdAndCertificateFromInitData): Extract the keyURI, keyID, and the app certificate from the initData.
47555         (WebCore::MediaPlayerPrivateAVFoundationObjC::generateKeyRequest): Generate a streaming key request from AVFoundation and 
47556             fire a keymessage event.
47557         (WebCore::MediaPlayerPrivateAVFoundationObjC::addKey): Pass to AVFoundation through the AVAssetResourceLoader.
47558         (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelKeyRequest): Release the loader delegate.
47559         (-[WebCoreAVFLoaderDelegate initWithCallback:]): Simple constructor.
47560         (-[WebCoreAVFLoaderDelegate resourceLoader:shouldWaitForLoadingOfRequestedResource:]): Pass to the MediaPlayerPrivateAVFoundationObjC.
47561
47562 2012-10-12  James Simonsen  <simonjam@chromium.org>
47563
47564         [RequestAnimationFrame] Remove vendor prefix
47565         https://bugs.webkit.org/show_bug.cgi?id=99116
47566
47567         Reviewed by Adam Barth.
47568
47569         Test: Existing rAF tests without prefix.
47570
47571         * dom/Document.cpp:
47572         (WebCore::Document::requestAnimationFrame):
47573         (WebCore::Document::cancelAnimationFrame):
47574         * dom/Document.h:
47575         (Document):
47576         * page/DOMWindow.cpp:
47577         (WebCore::DOMWindow::requestAnimationFrame):
47578         (WebCore::DOMWindow::cancelAnimationFrame):
47579         * page/DOMWindow.h:
47580         (DOMWindow):
47581         * page/DOMWindow.idl:
47582
47583 2012-10-12  Andreas Kling  <kling@webkit.org>
47584
47585         REGRESSION: Rapid memory growth calling DOM APIs with large strings.
47586         <http://webkit.org/b/98498>
47587         <rdar://problem/12443926>
47588
47589         Reviewed by Geöff Gären and Änders Cärlssön.
47590
47591         Prevent the selector query cache from growing indefinitely by setting a relaxed limit of 256 entries.
47592         If the cache fills up, remove a random entry before inserting a new one.
47593
47594         While this is unlikely to be a problem on real websites, we definitely shouldn't be adding boundless
47595         caches to WebKit.
47596
47597         * dom/SelectorQuery.cpp:
47598         (WebCore::SelectorQueryCache::add):
47599
47600 2012-10-12  Roger Fong  <roger_fong@apple.com>
47601
47602         Update method signature for platformCALayerShowRepaintCounter in MediaPlayerPlayerPrivateAVFoundationCF's LayerClient class.
47603         https://bugs.webkit.org/show_bug.cgi?id=99190
47604
47605         Reviewed by Simon Fraser.
47606
47607         LayerClient's base class (PlatformCALayerClient) method signature for abstract method platformCALayerShowRepaintCounter
47608         was updated in http://trac.webkit.org/changeset/130676 so it needs to be changed in LayerClient as well.
47609
47610         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
47611         (WebCore::LayerClient::platformCALayerShowRepaintCounter):
47612
47613 2012-10-12  Scott Graham  <scottmg@chromium.org>
47614
47615         Local disable of stack corruption warning when compiling on VS2012
47616         https://bugs.webkit.org/show_bug.cgi?id=99106
47617
47618         Reviewed by Ryosuke Niwa.
47619
47620         Warning is:
47621
47622         ...\FEConvolveMatrix.cpp(274) : warning C4789: buffer 'totals' of size 12 bytes will be overrun; 4 bytes will be written starting at offset 12.
47623
47624         And similar at lines 281, 355, and 365. This appears to be incorrect
47625         as the writes at offset 12 occur only when preserveAlphaValues is
47626         false, and when it's false, totals will be 16 bytes long.
47627
47628         No new tests.
47629
47630         * platform/graphics/filters/FEConvolveMatrix.cpp:
47631         (WebCore):
47632
47633 2012-10-11  Emil A Eklund  <eae@chromium.org>
47634
47635         [Sub pixel layout] Change RenderBox to not round logicalTop/Left for RenderReplaced
47636         https://bugs.webkit.org/show_bug.cgi?id=99108
47637
47638         Reviewed by Levi Weintraub.
47639
47640         Change RenderBox::computePositionedLogicalHeightReplaced and
47641         computePositionedLogicalWidthReplaced to not round position.
47642
47643         Covered by existing tests.
47644
47645         * rendering/InlineFlowBox.cpp:
47646         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
47647         Floor baselinePosition for replaced elements to match logic in
47648         RootInlineBox::ascentAndDescentForBox where the ascent is
47649         computed from the floored baselinePosition.
47650         
47651         * rendering/RenderBox.cpp:
47652         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
47653         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
47654         Remove .round() call for m_position, preserving precision.
47655
47656 2012-10-01  Jer Noble  <jer.noble@apple.com>
47657
47658         Enable ENCRYPTED_MEDIA support on Mac.
47659         https://bugs.webkit.org/show_bug.cgi?id=98044
47660
47661         Reviewed by Anders Carlsson.
47662
47663         Enable the ENCRYPTED_MEDIA conditional on the Mac port.
47664
47665         No new tests; Existing media/encrypted-media tests require org.w3.clearkey support, which is not implemented.
47666
47667         * Configurations/FeatureDefines.xcconfig: Enable the ENCRYPTED_MEDIA flag.
47668         * DerivedSources.make: Add the MediaKeyError and MediaKeyEvent classes.
47669         * WebCore.xcodeproj/project.pbxproj: Ditto.
47670         * bindings/js/JSDictionary.cpp:
47671         (WebCore::JSDictionary::convertValue): Add convertValue functions for Uint8Array and MediaKeyError.
47672         * bindings/js/JSDictionary.h:
47673         * html/HTMLMediaElement.cpp:
47674         (WebCore::HTMLMediaElement::mediaPlayerKeyNeeded): Throw an error if no "needkey"
47675             handler is registered.
47676         * html/HTMLMediaElement.h:
47677         * html/HTMLMediaElement.idl: Change keySystem to DefaultIsUndefined.
47678         * platform/graphics/MediaPlayer.cpp:
47679         (WebCore::MediaPlayer::keyNeeded): Return a bool indicating whether the process was aborted
47680             due to a lack of "needkey" listener.
47681         * platform/graphics/MediaPlayer.h:
47682         (WebCore::MediaPlayerClient::mediaPlayerKeyAdded): Remove unused parameter names.
47683         (WebCore::MediaPlayerClient::mediaPlayerKeyError): Ditto.
47684         (WebCore::MediaPlayerClient::mediaPlayerKeyMessage): Ditto.
47685         (WebCore::MediaPlayerClient::mediaPlayerKeyNeeded): Ditto.
47686         * platform/graphics/MediaPlayerPrivate.h:
47687         (WebCore::MediaPlayerPrivateInterface::addKey): Ditto.
47688         (WebCore::MediaPlayerPrivateInterface::generateKeyRequest): Ditto.
47689         (WebCore::MediaPlayerPrivateInterface::cancelKeyRequest): Ditto.
47690         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
47691         * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
47692         (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Call extendedSupportsType.
47693         (WebCore::MediaPlayerPrivateAVFoundationObjC::extendedSupportsType): Stub. Pass through to supportsType.
47694         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
47695         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
47696         (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Call extendedSupportsType.
47697         (WebCore::MediaPlayerPrivateQTKit::extendedSupportsType): Stub. Pass through to supportsType.
47698
47699 2012-10-12  Jaehun Lim  <ljaehun.lim@samsung.com>
47700
47701         Check parameter's safety first
47702         https://bugs.webkit.org/show_bug.cgi?id=99136
47703
47704         Reviewed by Chris Rogers.
47705
47706         Pointer parameter was used before NULL checking.
47707         This patch moves safety checking statements to the head of the function.
47708
47709         No new tests. No behavior change.
47710
47711         * platform/audio/AudioChannel.cpp:
47712         (WebCore::AudioChannel::copyFromRange):
47713         (WebCore::AudioChannel::sumFrom):
47714         * platform/audio/EqualPowerPanner.cpp:
47715         (WebCore::EqualPowerPanner::pan):
47716
47717 2012-10-12  Andreas Kling  <kling@webkit.org>
47718
47719         RenderBR should share its constant newline string between instances.
47720         <http://webkit.org/b/99121>
47721
47722         Reviewed by Anders Carlsson.
47723
47724         * rendering/RenderBR.cpp:
47725         (WebCore::newlineString):
47726         (WebCore::RenderBR::RenderBR):
47727
47728 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47729
47730         Web Inspector: [Styles] !important priority not honored inside the same declaration
47731         https://bugs.webkit.org/show_bug.cgi?id=99170
47732
47733         Reviewed by Yury Semikhatsky.
47734
47735         Property priorities were not considered inside the same CSS rule. !important properties should stay active
47736         even if followed by non-!important properties with the same name.
47737
47738         * inspector/InspectorStyleSheet.cpp:
47739         (WebCore::InspectorStyle::styleWithProperties):
47740         * inspector/front-end/StylesSidebarPane.js:
47741         (WebInspector.StylePropertiesSection.prototype.onpopulate):
47742         (WebInspector.ComputedStylePropertiesSection.prototype.rebuildComputedTrace):
47743
47744 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47745
47746         Web Inspector: use hard-coded zoom factors instead of 1.2 powers.
47747         https://bugs.webkit.org/show_bug.cgi?id=99173
47748
47749         Reviewed by Vsevolod Vlasov.
47750
47751         Overwise we step too fast.
47752
47753         * inspector/front-end/inspector.js:
47754         (WebInspector._zoomIn):
47755         (WebInspector._zoomOut):
47756         (WebInspector):
47757
47758 2012-10-12  Yury Semikhatsky  <yurys@chromium.org>
47759
47760         Web Inspector: move delete watch expression farther from the expand triangle
47761         https://bugs.webkit.org/show_bug.cgi?id=99166
47762
47763         Reviewed by Pavel Feldman.
47764
47765         Aligned 'delete watch expression' button on the right side (was on the left) so
47766         that it is hard to click it when expanding watched value.
47767
47768         * inspector/front-end/inspector.css:
47769         (.properties-tree.watch-expressions):
47770         (.section .properties .delete-button):
47771
47772 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47773
47774         Web Inspector: trim filename in the call stack sidebar
47775         https://bugs.webkit.org/show_bug.cgi?id=99169
47776
47777         Reviewed by Yury Semikhatsky.
47778
47779         Otherwise long file names are rendered poorly.
47780
47781         * inspector/front-end/CallStackSidebarPane.js:
47782         (WebInspector.CallStackSidebarPane.Placard.prototype._update):
47783         * inspector/front-end/inspector.css:
47784         (.placard .subtitle):
47785
47786 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
47787
47788         Web Inspector: Resume button in element inspector -> scripts has tooltip 'pause script execution'
47789         https://bugs.webkit.org/show_bug.cgi?id=99165
47790
47791         Reviewed by Pavel Feldman.
47792
47793         Pause/resume button title is now updated when debugger is paused/resumed.
47794
47795         * English.lproj/localizedStrings.js:
47796         * inspector/front-end/ScriptsPanel.js:
47797         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
47798         (WebInspector.ScriptsPanel.prototype._createDebugToolbar):
47799         (WebInspector.ScriptsPanel.prototype._updateButtonTitle):
47800         (WebInspector.ScriptsPanel.prototype._createButtonAndRegisterShortcuts):
47801
47802 2012-10-12  Kentaro Hara  <haraken@chromium.org>
47803
47804         Unreviewed. Fix run-binding-tests failures introduced in r131167.
47805
47806         * bindings/scripts/CodeGeneratorV8.pm:
47807         (GenerateConstructorGetter):
47808         * bindings/scripts/test/V8/V8TestObj.cpp:
47809         (WebCore):
47810         (WebCore::TestObjV8Internal::TestObjConstructorGetter):
47811         (WebCore::V8TestObj::installPerContextProperties):
47812         (WebCore::V8TestObj::installPerContextPrototypeProperties):
47813         (WebCore::V8TestObj::wrapSlow):
47814         * bindings/scripts/test/V8/V8TestObj.h:
47815         (V8TestObj):
47816
47817 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
47818
47819         Web Inspector: relies on current Function.prototype.bind in the frame
47820         https://bugs.webkit.org/show_bug.cgi?id=99164
47821
47822         Reviewed by Yury Semikhatsky.
47823
47824         InjectedScriptSource should not depend on the bind override.
47825
47826         Test: inspector/console/console-bind-fake.html
47827
47828         * inspector/InjectedScriptSource.js:
47829         (.):
47830
47831 2012-10-12  Alexander Pavlov  <apavlov@chromium.org>
47832
47833         Web Inspector: [Styles] Colors should be "As authored" by default
47834         https://bugs.webkit.org/show_bug.cgi?id=99017
47835
47836         Reviewed by Vsevolod Vlasov.
47837
47838         Use "original" as the default value of WebInspector.settings.colorFormat.
47839
47840         * inspector/front-end/Settings.js:
47841
47842 2012-10-12  Takashi Sakamoto  <tasak@google.com>
47843
47844         [WebKit IDL] move extended attributes to left of interface, exception...
47845         https://bugs.webkit.org/show_bug.cgi?id=99012
47846
47847         Reviewed by Kentaro Hara.
47848
47849         According to WebIDL spec, moved all extended attributes to the left
47850         of interface / attribute / readonly attribute / exception.
47851
47852         No new tests. I ran run-bindings-tests and all tests passed.
47853
47854         * Modules/battery/BatteryManager.idl:
47855         * Modules/battery/NavigatorBattery.idl:
47856         * Modules/filesystem/DOMFileSystem.idl:
47857         * Modules/filesystem/DOMFileSystemSync.idl:
47858         * Modules/filesystem/DOMWindowFileSystem.idl:
47859         * Modules/filesystem/DataTransferItemFileSystem.idl:
47860         * Modules/filesystem/DirectoryEntry.idl:
47861         * Modules/filesystem/DirectoryEntrySync.idl:
47862         * Modules/filesystem/DirectoryReader.idl:
47863         * Modules/filesystem/DirectoryReaderSync.idl:
47864         * Modules/filesystem/EntriesCallback.idl:
47865         * Modules/filesystem/Entry.idl:
47866         * Modules/filesystem/EntryArray.idl:
47867         * Modules/filesystem/EntryArraySync.idl:
47868         * Modules/filesystem/EntryCallback.idl:
47869         * Modules/filesystem/EntrySync.idl:
47870         * Modules/filesystem/ErrorCallback.idl:
47871         * Modules/filesystem/FileCallback.idl:
47872         * Modules/filesystem/FileEntry.idl:
47873         * Modules/filesystem/FileEntrySync.idl:
47874         * Modules/filesystem/FileSystemCallback.idl:
47875         * Modules/filesystem/FileWriter.idl:
47876         * Modules/filesystem/FileWriterCallback.idl:
47877         * Modules/filesystem/FileWriterSync.idl:
47878         * Modules/filesystem/HTMLInputElementFileSystem.idl:
47879         * Modules/filesystem/Metadata.idl:
47880         * Modules/filesystem/MetadataCallback.idl:
47881         * Modules/filesystem/WorkerContextFileSystem.idl:
47882         * Modules/gamepad/Gamepad.idl:
47883         * Modules/gamepad/GamepadList.idl:
47884         * Modules/gamepad/NavigatorGamepad.idl:
47885         * Modules/geolocation/Geolocation.idl:
47886         * Modules/geolocation/Geoposition.idl:
47887         * Modules/geolocation/NavigatorGeolocation.idl:
47888         * Modules/geolocation/PositionCallback.idl:
47889         * Modules/geolocation/PositionError.idl:
47890         * Modules/geolocation/PositionErrorCallback.idl:
47891         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
47892         * Modules/indexeddb/IDBAny.idl:
47893         * Modules/indexeddb/IDBCursor.idl:
47894         * Modules/indexeddb/IDBCursorWithValue.idl:
47895         * Modules/indexeddb/IDBDatabase.idl:
47896         * Modules/indexeddb/IDBDatabaseException.idl:
47897         * Modules/indexeddb/IDBFactory.idl:
47898         * Modules/indexeddb/IDBIndex.idl:
47899         * Modules/indexeddb/IDBKey.idl:
47900         * Modules/indexeddb/IDBKeyRange.idl:
47901         * Modules/indexeddb/IDBObjectStore.idl:
47902         * Modules/indexeddb/IDBOpenDBRequest.idl:
47903         * Modules/indexeddb/IDBRequest.idl:
47904         * Modules/indexeddb/IDBTransaction.idl:
47905         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
47906         * Modules/indexeddb/IDBVersionChangeEvent.idl:
47907         * Modules/indexeddb/IDBVersionChangeRequest.idl:
47908         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
47909         * Modules/intents/DOMWindowIntents.idl:
47910         * Modules/intents/DeliveredIntent.idl:
47911         * Modules/intents/NavigatorIntents.idl:
47912         * Modules/mediasource/MediaSource.idl:
47913         * Modules/mediasource/SourceBuffer.idl:
47914         * Modules/mediasource/SourceBufferList.idl:
47915         * Modules/mediastream/DOMWindowMediaStream.idl:
47916         * Modules/mediastream/IceCallback.idl:
47917         * Modules/mediastream/IceCandidate.idl:
47918         * Modules/mediastream/LocalMediaStream.idl:
47919         * Modules/mediastream/MediaStream.idl:
47920         * Modules/mediastream/MediaStreamEvent.idl:
47921         * Modules/mediastream/MediaStreamList.idl:
47922         * Modules/mediastream/MediaStreamTrack.idl:
47923         * Modules/mediastream/MediaStreamTrackEvent.idl:
47924         * Modules/mediastream/MediaStreamTrackList.idl:
47925         * Modules/mediastream/NavigatorMediaStream.idl:
47926         * Modules/mediastream/NavigatorUserMediaError.idl:
47927         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
47928         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
47929         * Modules/mediastream/PeerConnection00.idl:
47930         * Modules/mediastream/RTCErrorCallback.idl:
47931         * Modules/mediastream/RTCIceCandidate.idl:
47932         * Modules/mediastream/RTCIceCandidateEvent.idl:
47933         * Modules/mediastream/RTCPeerConnection.idl:
47934         * Modules/mediastream/RTCSessionDescription.idl:
47935         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
47936         * Modules/mediastream/RTCStatsCallback.idl:
47937         * Modules/mediastream/RTCStatsElement.idl:
47938         * Modules/mediastream/RTCStatsReport.idl:
47939         * Modules/mediastream/RTCStatsResponse.idl:
47940         * Modules/mediastream/SessionDescription.idl:
47941         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
47942         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
47943         * Modules/networkinfo/NetworkInfoConnection.idl:
47944         * Modules/notifications/DOMWindowNotifications.idl:
47945         * Modules/notifications/Notification.idl:
47946         * Modules/notifications/NotificationCenter.idl:
47947         * Modules/notifications/NotificationPermissionCallback.idl:
47948         * Modules/notifications/WorkerContextNotifications.idl:
47949         * Modules/proximity/DeviceProximityEvent.idl:
47950         * Modules/quota/DOMWindowQuota.idl:
47951         * Modules/quota/StorageInfo.idl:
47952         * Modules/quota/StorageInfoErrorCallback.idl:
47953         * Modules/quota/StorageInfoQuotaCallback.idl:
47954         * Modules/quota/StorageInfoUsageCallback.idl:
47955         * Modules/speech/DOMWindowSpeech.idl:
47956         * Modules/speech/SpeechGrammar.idl:
47957         * Modules/speech/SpeechGrammarList.idl:
47958         * Modules/speech/SpeechRecognition.idl:
47959         * Modules/speech/SpeechRecognitionAlternative.idl:
47960         * Modules/speech/SpeechRecognitionError.idl:
47961         * Modules/speech/SpeechRecognitionEvent.idl:
47962         * Modules/speech/SpeechRecognitionResult.idl:
47963         * Modules/speech/SpeechRecognitionResultList.idl:
47964         * Modules/vibration/NavigatorVibration.idl:
47965         * Modules/webaudio/AudioBuffer.idl:
47966         * Modules/webaudio/AudioBufferCallback.idl:
47967         * Modules/webaudio/AudioBufferSourceNode.idl:
47968         * Modules/webaudio/AudioChannelMerger.idl:
47969         * Modules/webaudio/AudioChannelSplitter.idl:
47970         * Modules/webaudio/AudioContext.idl:
47971         * Modules/webaudio/AudioDestinationNode.idl:
47972         * Modules/webaudio/AudioGain.idl:
47973         * Modules/webaudio/AudioGainNode.idl:
47974         * Modules/webaudio/AudioListener.idl:
47975         * Modules/webaudio/AudioNode.idl:
47976         * Modules/webaudio/AudioPannerNode.idl:
47977         * Modules/webaudio/AudioParam.idl:
47978         * Modules/webaudio/AudioProcessingEvent.idl:
47979         * Modules/webaudio/AudioSourceNode.idl:
47980         * Modules/webaudio/BiquadFilterNode.idl:
47981         * Modules/webaudio/ConvolverNode.idl:
47982         * Modules/webaudio/DOMWindowWebAudio.idl:
47983         * Modules/webaudio/DelayNode.idl:
47984         * Modules/webaudio/DynamicsCompressorNode.idl:
47985         * Modules/webaudio/JavaScriptAudioNode.idl:
47986         * Modules/webaudio/MediaElementAudioSourceNode.idl:
47987         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
47988         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
47989         * Modules/webaudio/Oscillator.idl:
47990         * Modules/webaudio/RealtimeAnalyserNode.idl:
47991         * Modules/webaudio/WaveShaperNode.idl:
47992         * Modules/webaudio/WaveTable.idl:
47993         * Modules/webdatabase/DOMWindowWebDatabase.idl:
47994         * Modules/webdatabase/Database.idl:
47995         * Modules/webdatabase/DatabaseCallback.idl:
47996         * Modules/webdatabase/DatabaseSync.idl:
47997         * Modules/webdatabase/SQLError.idl:
47998         * Modules/webdatabase/SQLException.idl:
47999         * Modules/webdatabase/SQLResultSet.idl:
48000         * Modules/webdatabase/SQLResultSetRowList.idl:
48001         * Modules/webdatabase/SQLStatementCallback.idl:
48002         * Modules/webdatabase/SQLStatementErrorCallback.idl:
48003         * Modules/webdatabase/SQLTransaction.idl:
48004         * Modules/webdatabase/SQLTransactionCallback.idl:
48005         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
48006         * Modules/webdatabase/SQLTransactionSync.idl:
48007         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
48008         * Modules/webdatabase/WorkerContextWebDatabase.idl:
48009         * Modules/websockets/CloseEvent.idl:
48010         * Modules/websockets/DOMWindowWebSocket.idl:
48011         * Modules/websockets/WebSocket.idl:
48012         * Modules/websockets/WorkerContextWebSocket.idl:
48013         * bindings/scripts/test/TestCallback.idl:
48014         * bindings/scripts/test/TestCustomNamedGetter.idl:
48015         * bindings/scripts/test/TestDomainSecurity.idl:
48016         * bindings/scripts/test/TestEventConstructor.idl:
48017         * bindings/scripts/test/TestEventTarget.idl:
48018         * bindings/scripts/test/TestInterface.idl:
48019         * bindings/scripts/test/TestNamedConstructor.idl:
48020         * bindings/scripts/test/TestNode.idl:
48021         * bindings/scripts/test/TestObj.idl:
48022         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
48023         * bindings/scripts/test/TestSupplemental.idl:
48024         * bindings/scripts/test/TestTypedArray.idl:
48025         * css/CSSCharsetRule.idl:
48026         * css/CSSImportRule.idl:
48027         * css/CSSPageRule.idl:
48028         * css/CSSRule.idl:
48029         * css/CSSRuleList.idl:
48030         * css/CSSStyleDeclaration.idl:
48031         * css/CSSStyleRule.idl:
48032         * css/CSSStyleSheet.idl:
48033         * css/CSSUnknownRule.idl:
48034         * css/CSSValue.idl:
48035         * css/CSSValueList.idl:
48036         * css/MediaList.idl:
48037         * css/MediaQueryListListener.idl:
48038         * css/StyleMedia.idl:
48039         * css/StyleSheet.idl:
48040         * css/StyleSheetList.idl:
48041         * css/WebKitCSSFilterValue.idl:
48042         * css/WebKitCSSKeyframesRule.idl:
48043         * css/WebKitCSSMatrix.idl:
48044         * css/WebKitCSSRegionRule.idl:
48045         * css/WebKitCSSTransformValue.idl:
48046         * dom/Attr.idl:
48047         * dom/BeforeLoadEvent.idl:
48048         * dom/CharacterData.idl:
48049         * dom/ClientRectList.idl:
48050         * dom/Clipboard.idl:
48051         * dom/CustomEvent.idl:
48052         * dom/DOMCoreException.idl:
48053         * dom/DOMImplementation.idl:
48054         * dom/DOMNamedFlowCollection.idl:
48055         * dom/DOMStringList.idl:
48056         * dom/DOMStringMap.idl:
48057         * dom/DataTransferItem.idl:
48058         * dom/DataTransferItemList.idl:
48059         * dom/DeviceMotionEvent.idl:
48060         * dom/DeviceOrientationEvent.idl:
48061         * dom/Document.idl:
48062         * dom/DocumentType.idl:
48063         * dom/Element.idl:
48064         * dom/Entity.idl:
48065         * dom/ErrorEvent.idl:
48066         * dom/Event.idl:
48067         * dom/EventException.idl:
48068         * dom/EventListener.idl:
48069         * dom/EventTarget.idl:
48070         * dom/HashChangeEvent.idl:
48071         * dom/MessageChannel.idl:
48072         * dom/MessageEvent.idl:
48073         * dom/MessagePort.idl:
48074         * dom/MouseEvent.idl:
48075         * dom/MutationCallback.idl:
48076         * dom/MutationObserver.idl:
48077         * dom/MutationRecord.idl:
48078         * dom/NamedNodeMap.idl:
48079         * dom/Node.idl:
48080         * dom/NodeFilter.idl:
48081         * dom/NodeIterator.idl:
48082         * dom/NodeList.idl:
48083         * dom/Notation.idl:
48084         * dom/OverflowEvent.idl:
48085         * dom/PageTransitionEvent.idl:
48086         * dom/PopStateEvent.idl:
48087         * dom/ProcessingInstruction.idl:
48088         * dom/ProgressEvent.idl:
48089         * dom/PropertyNodeList.idl:
48090         * dom/RangeException.idl:
48091         * dom/RequestAnimationFrameCallback.idl:
48092         * dom/ShadowRoot.idl:
48093         * dom/StringCallback.idl:
48094         * dom/Touch.idl:
48095         * dom/TouchEvent.idl:
48096         * dom/TouchList.idl:
48097         * dom/TreeWalker.idl:
48098         * dom/WebKitAnimationEvent.idl:
48099         * dom/WebKitNamedFlow.idl:
48100         * dom/WebKitTransitionEvent.idl:
48101         * editing/DOMTransaction.idl:
48102         * editing/UndoManager.idl:
48103         * fileapi/Blob.idl:
48104         * fileapi/File.idl:
48105         * fileapi/FileError.idl:
48106         * fileapi/FileException.idl:
48107         * fileapi/FileList.idl:
48108         * fileapi/FileReader.idl:
48109         * fileapi/FileReaderSync.idl:
48110         * html/DOMFormData.idl:
48111         * html/DOMSettableTokenList.idl:
48112         * html/DOMTokenList.idl:
48113         * html/DOMURL.idl:
48114         * html/HTMLAllCollection.idl:
48115         * html/HTMLAnchorElement.idl:
48116         * html/HTMLAppletElement.idl:
48117         * html/HTMLAreaElement.idl:
48118         * html/HTMLAudioElement.idl:
48119         * html/HTMLBRElement.idl:
48120         * html/HTMLBaseElement.idl:
48121         * html/HTMLBaseFontElement.idl:
48122         * html/HTMLBodyElement.idl:
48123         * html/HTMLButtonElement.idl:
48124         * html/HTMLCanvasElement.idl:
48125         * html/HTMLCollection.idl:
48126         * html/HTMLDListElement.idl:
48127         * html/HTMLDataListElement.idl:
48128         * html/HTMLDetailsElement.idl:
48129         * html/HTMLDialogElement.idl:
48130         * html/HTMLDirectoryElement.idl:
48131         * html/HTMLDivElement.idl:
48132         * html/HTMLDocument.idl:
48133         * html/HTMLElement.idl:
48134         * html/HTMLEmbedElement.idl:
48135         * html/HTMLFieldSetElement.idl:
48136         * html/HTMLFontElement.idl:
48137         * html/HTMLFormElement.idl:
48138         * html/HTMLFrameElement.idl:
48139         * html/HTMLFrameSetElement.idl:
48140         * html/HTMLHRElement.idl:
48141         * html/HTMLHeadElement.idl:
48142         * html/HTMLHeadingElement.idl:
48143         * html/HTMLHtmlElement.idl:
48144         * html/HTMLIFrameElement.idl:
48145         * html/HTMLImageElement.idl:
48146         * html/HTMLInputElement.idl:
48147         * html/HTMLIntentElement.idl:
48148         * html/HTMLKeygenElement.idl:
48149         * html/HTMLLIElement.idl:
48150         * html/HTMLLabelElement.idl:
48151         * html/HTMLLegendElement.idl:
48152         * html/HTMLLinkElement.idl:
48153         * html/HTMLMapElement.idl:
48154         * html/HTMLMarqueeElement.idl:
48155         * html/HTMLMediaElement.idl:
48156         * html/HTMLMenuElement.idl:
48157         * html/HTMLMetaElement.idl:
48158         * html/HTMLMeterElement.idl:
48159         * html/HTMLModElement.idl:
48160         * html/HTMLOListElement.idl:
48161         * html/HTMLObjectElement.idl:
48162         * html/HTMLOptGroupElement.idl:
48163         * html/HTMLOptionElement.idl:
48164         * html/HTMLOptionsCollection.idl:
48165         * html/HTMLOutputElement.idl:
48166         * html/HTMLParagraphElement.idl:
48167         * html/HTMLParamElement.idl:
48168         * html/HTMLPreElement.idl:
48169         * html/HTMLProgressElement.idl:
48170         * html/HTMLPropertiesCollection.idl:
48171         * html/HTMLQuoteElement.idl:
48172         * html/HTMLScriptElement.idl:
48173         * html/HTMLSelectElement.idl:
48174         * html/HTMLSourceElement.idl:
48175         * html/HTMLStyleElement.idl:
48176         * html/HTMLTableCaptionElement.idl:
48177         * html/HTMLTableCellElement.idl:
48178         * html/HTMLTableColElement.idl:
48179         * html/HTMLTableElement.idl:
48180         * html/HTMLTableRowElement.idl:
48181         * html/HTMLTableSectionElement.idl:
48182         * html/HTMLTextAreaElement.idl:
48183         * html/HTMLTitleElement.idl:
48184         * html/HTMLTrackElement.idl:
48185         * html/HTMLUListElement.idl:
48186         * html/HTMLVideoElement.idl:
48187         * html/ImageData.idl:
48188         * html/MediaController.idl:
48189         * html/MediaError.idl:
48190         * html/MediaKeyError.idl:
48191         * html/MediaKeyEvent.idl:
48192         * html/MicroDataItemValue.idl:
48193         * html/RadioNodeList.idl:
48194         * html/TimeRanges.idl:
48195         * html/ValidityState.idl:
48196         * html/VoidCallback.idl:
48197         * html/canvas/ArrayBuffer.idl:
48198         * html/canvas/ArrayBufferView.idl:
48199         * html/canvas/CanvasRenderingContext.idl:
48200         * html/canvas/CanvasRenderingContext2D.idl:
48201         * html/canvas/DataView.idl:
48202         * html/canvas/EXTTextureFilterAnisotropic.idl:
48203         * html/canvas/Float32Array.idl:
48204         * html/canvas/Float64Array.idl:
48205         * html/canvas/Int16Array.idl:
48206         * html/canvas/Int32Array.idl:
48207         * html/canvas/Int8Array.idl:
48208         * html/canvas/OESStandardDerivatives.idl:
48209         * html/canvas/OESTextureFloat.idl:
48210         * html/canvas/OESVertexArrayObject.idl:
48211         * html/canvas/Uint16Array.idl:
48212         * html/canvas/Uint32Array.idl:
48213         * html/canvas/Uint8Array.idl:
48214         * html/canvas/Uint8ClampedArray.idl:
48215         * html/canvas/WebGLActiveInfo.idl:
48216         * html/canvas/WebGLBuffer.idl:
48217         * html/canvas/WebGLCompressedTextureS3TC.idl:
48218         * html/canvas/WebGLContextAttributes.idl:
48219         * html/canvas/WebGLContextEvent.idl:
48220         * html/canvas/WebGLDebugRendererInfo.idl:
48221         * html/canvas/WebGLDebugShaders.idl:
48222         * html/canvas/WebGLDepthTexture.idl:
48223         * html/canvas/WebGLFramebuffer.idl:
48224         * html/canvas/WebGLLoseContext.idl:
48225         * html/canvas/WebGLProgram.idl:
48226         * html/canvas/WebGLRenderbuffer.idl:
48227         * html/canvas/WebGLRenderingContext.idl:
48228         * html/canvas/WebGLShader.idl:
48229         * html/canvas/WebGLShaderPrecisionFormat.idl:
48230         * html/canvas/WebGLTexture.idl:
48231         * html/canvas/WebGLUniformLocation.idl:
48232         * html/canvas/WebGLVertexArrayObjectOES.idl:
48233         * html/shadow/HTMLContentElement.idl:
48234         * html/shadow/HTMLShadowElement.idl:
48235         * html/track/TextTrack.idl:
48236         * html/track/TextTrackCue.idl:
48237         * html/track/TextTrackCueList.idl:
48238         * html/track/TextTrackList.idl:
48239         * html/track/TrackEvent.idl:
48240         * inspector/InjectedScriptHost.idl:
48241         * inspector/InspectorFrontendHost.idl:
48242         * inspector/JavaScriptCallFrame.idl:
48243         * inspector/ScriptProfile.idl:
48244         * inspector/ScriptProfileNode.idl:
48245         * loader/appcache/DOMApplicationCache.idl:
48246         * page/AbstractView.idl:
48247         * page/BarInfo.idl:
48248         * page/Console.idl:
48249         * page/Coordinates.idl:
48250         * page/Crypto.idl:
48251         * page/DOMSecurityPolicy.idl:
48252         * page/DOMSelection.idl:
48253         * page/DOMWindow.idl:
48254         * page/DOMWindowPagePopup.idl:
48255         * page/EventSource.idl:
48256         * page/History.idl:
48257         * page/Location.idl:
48258         * page/MemoryInfo.idl:
48259         * page/Navigator.idl:
48260         * page/PagePopupController.idl:
48261         * page/Performance.idl:
48262         * page/PerformanceEntry.idl:
48263         * page/PerformanceEntryList.idl:
48264         * page/PerformanceNavigation.idl:
48265         * page/PerformanceResourceTiming.idl:
48266         * page/PerformanceTiming.idl:
48267         * page/Screen.idl:
48268         * page/SpeechInputEvent.idl:
48269         * page/SpeechInputResult.idl:
48270         * page/SpeechInputResultList.idl:
48271         * page/WebKitAnimation.idl:
48272         * page/WebKitAnimationList.idl:
48273         * page/WebKitPoint.idl:
48274         * page/WorkerNavigator.idl:
48275         * plugins/DOMMimeType.idl:
48276         * plugins/DOMMimeTypeArray.idl:
48277         * plugins/DOMPlugin.idl:
48278         * plugins/DOMPluginArray.idl:
48279         * storage/Storage.idl:
48280         * storage/StorageEvent.idl:
48281         * svg/ElementTimeControl.idl:
48282         * svg/SVGAElement.idl:
48283         * svg/SVGAltGlyphDefElement.idl:
48284         * svg/SVGAltGlyphElement.idl:
48285         * svg/SVGAltGlyphItemElement.idl:
48286         * svg/SVGAngle.idl:
48287         * svg/SVGAnimateColorElement.idl:
48288         * svg/SVGAnimateElement.idl:
48289         * svg/SVGAnimateMotionElement.idl:
48290         * svg/SVGAnimateTransformElement.idl:
48291         * svg/SVGAnimatedAngle.idl:
48292         * svg/SVGAnimatedBoolean.idl:
48293         * svg/SVGAnimatedEnumeration.idl:
48294         * svg/SVGAnimatedInteger.idl:
48295         * svg/SVGAnimatedLength.idl:
48296         * svg/SVGAnimatedLengthList.idl:
48297         * svg/SVGAnimatedNumber.idl:
48298         * svg/SVGAnimatedNumberList.idl:
48299         * svg/SVGAnimatedPreserveAspectRatio.idl:
48300         * svg/SVGAnimatedRect.idl:
48301         * svg/SVGAnimatedString.idl:
48302         * svg/SVGAnimatedTransformList.idl:
48303         * svg/SVGAnimationElement.idl:
48304         * svg/SVGCircleElement.idl:
48305         * svg/SVGClipPathElement.idl:
48306         * svg/SVGColor.idl:
48307         * svg/SVGComponentTransferFunctionElement.idl:
48308         * svg/SVGCursorElement.idl:
48309         * svg/SVGDefsElement.idl:
48310         * svg/SVGDescElement.idl:
48311         * svg/SVGDocument.idl:
48312         * svg/SVGElement.idl:
48313         * svg/SVGElementInstance.idl:
48314         * svg/SVGElementInstanceList.idl:
48315         * svg/SVGEllipseElement.idl:
48316         * svg/SVGException.idl:
48317         * svg/SVGExternalResourcesRequired.idl:
48318         * svg/SVGFEBlendElement.idl:
48319         * svg/SVGFEColorMatrixElement.idl:
48320         * svg/SVGFEComponentTransferElement.idl:
48321         * svg/SVGFECompositeElement.idl:
48322         * svg/SVGFEConvolveMatrixElement.idl:
48323         * svg/SVGFEDiffuseLightingElement.idl:
48324         * svg/SVGFEDisplacementMapElement.idl:
48325         * svg/SVGFEDistantLightElement.idl:
48326         * svg/SVGFEDropShadowElement.idl:
48327         * svg/SVGFEFloodElement.idl:
48328         * svg/SVGFEFuncAElement.idl:
48329         * svg/SVGFEFuncBElement.idl:
48330         * svg/SVGFEFuncGElement.idl:
48331         * svg/SVGFEFuncRElement.idl:
48332         * svg/SVGFEGaussianBlurElement.idl:
48333         * svg/SVGFEImageElement.idl:
48334         * svg/SVGFEMergeElement.idl:
48335         * svg/SVGFEMergeNodeElement.idl:
48336         * svg/SVGFEMorphologyElement.idl:
48337         * svg/SVGFEOffsetElement.idl:
48338         * svg/SVGFEPointLightElement.idl:
48339         * svg/SVGFESpecularLightingElement.idl:
48340         * svg/SVGFESpotLightElement.idl:
48341         * svg/SVGFETileElement.idl:
48342         * svg/SVGFETurbulenceElement.idl:
48343         * svg/SVGFilterElement.idl:
48344         * svg/SVGFilterPrimitiveStandardAttributes.idl:
48345         * svg/SVGFitToViewBox.idl:
48346         * svg/SVGFontElement.idl:
48347         * svg/SVGFontFaceElement.idl:
48348         * svg/SVGFontFaceFormatElement.idl:
48349         * svg/SVGFontFaceNameElement.idl:
48350         * svg/SVGFontFaceSrcElement.idl:
48351         * svg/SVGFontFaceUriElement.idl:
48352         * svg/SVGForeignObjectElement.idl:
48353         * svg/SVGGElement.idl:
48354         * svg/SVGGlyphElement.idl:
48355         * svg/SVGGlyphRefElement.idl:
48356         * svg/SVGGradientElement.idl:
48357         * svg/SVGHKernElement.idl:
48358         * svg/SVGImageElement.idl:
48359         * svg/SVGLangSpace.idl:
48360         * svg/SVGLength.idl:
48361         * svg/SVGLengthList.idl:
48362         * svg/SVGLineElement.idl:
48363         * svg/SVGLinearGradientElement.idl:
48364         * svg/SVGLocatable.idl:
48365         * svg/SVGMPathElement.idl:
48366         * svg/SVGMarkerElement.idl:
48367         * svg/SVGMaskElement.idl:
48368         * svg/SVGMatrix.idl:
48369         * svg/SVGMetadataElement.idl:
48370         * svg/SVGMissingGlyphElement.idl:
48371         * svg/SVGNumber.idl:
48372         * svg/SVGNumberList.idl:
48373         * svg/SVGPaint.idl:
48374         * svg/SVGPathElement.idl:
48375         * svg/SVGPathSeg.idl:
48376         * svg/SVGPathSegArcAbs.idl:
48377         * svg/SVGPathSegArcRel.idl:
48378         * svg/SVGPathSegClosePath.idl:
48379         * svg/SVGPathSegCurvetoCubicAbs.idl:
48380         * svg/SVGPathSegCurvetoCubicRel.idl:
48381         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
48382         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
48383         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
48384         * svg/SVGPathSegCurvetoQuadraticRel.idl:
48385         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
48386         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
48387         * svg/SVGPathSegLinetoAbs.idl:
48388         * svg/SVGPathSegLinetoHorizontalAbs.idl:
48389         * svg/SVGPathSegLinetoHorizontalRel.idl:
48390         * svg/SVGPathSegLinetoRel.idl:
48391         * svg/SVGPathSegLinetoVerticalAbs.idl:
48392         * svg/SVGPathSegLinetoVerticalRel.idl:
48393         * svg/SVGPathSegList.idl:
48394         * svg/SVGPathSegMovetoAbs.idl:
48395         * svg/SVGPathSegMovetoRel.idl:
48396         * svg/SVGPatternElement.idl:
48397         * svg/SVGPoint.idl:
48398         * svg/SVGPointList.idl:
48399         * svg/SVGPolygonElement.idl:
48400         * svg/SVGPolylineElement.idl:
48401         * svg/SVGPreserveAspectRatio.idl:
48402         * svg/SVGRadialGradientElement.idl:
48403         * svg/SVGRect.idl:
48404         * svg/SVGRectElement.idl:
48405         * svg/SVGRenderingIntent.idl:
48406         * svg/SVGSVGElement.idl:
48407         * svg/SVGScriptElement.idl:
48408         * svg/SVGSetElement.idl:
48409         * svg/SVGStopElement.idl:
48410         * svg/SVGStringList.idl:
48411         * svg/SVGStylable.idl:
48412         * svg/SVGStyleElement.idl:
48413         * svg/SVGSwitchElement.idl:
48414         * svg/SVGSymbolElement.idl:
48415         * svg/SVGTRefElement.idl:
48416         * svg/SVGTSpanElement.idl:
48417         * svg/SVGTests.idl:
48418         * svg/SVGTextContentElement.idl:
48419         * svg/SVGTextElement.idl:
48420         * svg/SVGTextPathElement.idl:
48421         * svg/SVGTextPositioningElement.idl:
48422         * svg/SVGTitleElement.idl:
48423         * svg/SVGTransform.idl:
48424         * svg/SVGTransformList.idl:
48425         * svg/SVGTransformable.idl:
48426         * svg/SVGURIReference.idl:
48427         * svg/SVGUnitTypes.idl:
48428         * svg/SVGUseElement.idl:
48429         * svg/SVGVKernElement.idl:
48430         * svg/SVGViewElement.idl:
48431         * svg/SVGViewSpec.idl:
48432         * svg/SVGZoomAndPan.idl:
48433         * svg/SVGZoomEvent.idl:
48434         * testing/InternalSettings.idl:
48435         * testing/Internals.idl:
48436         * testing/MallocStatistics.idl:
48437         * workers/AbstractWorker.idl:
48438         * workers/DedicatedWorkerContext.idl:
48439         * workers/SharedWorker.idl:
48440         * workers/SharedWorkerContext.idl:
48441         * workers/Worker.idl:
48442         * workers/WorkerContext.idl:
48443         * workers/WorkerLocation.idl:
48444         * xml/DOMParser.idl:
48445         * xml/XMLHttpRequest.idl:
48446         * xml/XMLHttpRequestException.idl:
48447         * xml/XMLHttpRequestProgressEvent.idl:
48448         * xml/XMLHttpRequestUpload.idl:
48449         * xml/XMLSerializer.idl:
48450         * xml/XPathEvaluator.idl:
48451         * xml/XPathException.idl:
48452         * xml/XPathNSResolver.idl:
48453         * xml/XPathResult.idl:
48454         * xml/XSLTProcessor.idl:
48455         Moved extended attributes.
48456
48457 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48458
48459         Web Inspector: never expand global scope automatically
48460         https://bugs.webkit.org/show_bug.cgi?id=99159
48461
48462         Reviewed by Vsevolod Vlasov.
48463
48464         Otherwise, stepping is slow.
48465
48466         * inspector/front-end/ScopeChainSidebarPane.js:
48467         (WebInspector.ScopeChainSidebarPane.prototype.update):
48468
48469 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
48470
48471         Web Inspector: Refactor UISourceCode, make it possible to distinguish working copy changes/commits from formatting.
48472         https://bugs.webkit.org/show_bug.cgi?id=98911
48473
48474         Reviewed by Pavel Feldman.
48475
48476         ContentChanged was dispatched both when working copy was committed and UISourceCode was formatted before.
48477         WorkingCopyChanged event was dispatched when working copy was set.
48478         Now there are three explicit events: WorkingCopyChanged, WorkingCopyCommitted, FormattedChanged.
48479         No events are dispatched now during revisions restoring.
48480         Reverting to revisions is now implemented based on the working copy editing.
48481
48482         * inspector/front-end/JavaScriptSourceFrame.js:
48483         (WebInspector.JavaScriptSourceFrame):
48484         (WebInspector.JavaScriptSourceFrame.prototype._onFormattedChanged):
48485         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyChanged):
48486         (WebInspector.JavaScriptSourceFrame.prototype._onWorkingCopyCommitted):
48487         (WebInspector.JavaScriptSourceFrame.prototype._innerSetContent):
48488         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48489         * inspector/front-end/NavigatorView.js:
48490         (WebInspector.NavigatorView.prototype._uiSourceCodeWorkingCopyCommitted):
48491         (WebInspector.NavigatorView.prototype._uiSourceCodeFormattedChanged):
48492         (WebInspector.NavigatorView.prototype._addUISourceCodeListeners):
48493         (WebInspector.NavigatorView.prototype._removeUISourceCodeListeners):
48494         * inspector/front-end/TabbedEditorContainer.js:
48495         (WebInspector.TabbedEditorContainer.prototype._addUISourceCodeListeners):
48496         (WebInspector.TabbedEditorContainer.prototype._removeUISourceCodeListeners):
48497         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeWorkingCopyCommitted):
48498         (WebInspector.TabbedEditorContainer.prototype._uiSourceCodeFormattedChanged):
48499         * inspector/front-end/UISourceCode.js:
48500         (WebInspector.UISourceCode):
48501         (WebInspector.UISourceCode.prototype._commitContent):
48502         (WebInspector.UISourceCode.prototype.addRevision):
48503         (WebInspector.UISourceCode.prototype._restoreRevisionHistory):
48504         (WebInspector.UISourceCode.prototype.revertToOriginal):
48505         (WebInspector.UISourceCode.prototype.revertAndClearHistory):
48506         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48507         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48508         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent.formattedChanged):
48509         (WebInspector.UISourceCode.prototype.setFormatted.didGetContent):
48510         (WebInspector.UISourceCode.prototype.setFormatted):
48511         (WebInspector.Revision.prototype.revertToThis):
48512         * inspector/front-end/UISourceCodeFrame.js:
48513         (WebInspector.UISourceCodeFrame):
48514         (WebInspector.UISourceCodeFrame.prototype.onTextChanged):
48515         (WebInspector.UISourceCodeFrame.prototype._onFormattedChanged):
48516         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyChanged):
48517         (WebInspector.UISourceCodeFrame.prototype._onWorkingCopyCommitted):
48518         (WebInspector.UISourceCodeFrame.prototype._innerSetContent):
48519
48520 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48521
48522         [WK2] Serialization of Resource[Request,Response,Error] should be shared across ports
48523         https://bugs.webkit.org/show_bug.cgi?id=90142
48524
48525         Reviewed by Simon Hausmann.
48526
48527         Added a setter for the certificate of ResourceError.
48528
48529         No change in behavior so no new tests.
48530
48531         * platform/network/cf/ResourceError.h:
48532         (ResourceError):
48533         * platform/network/cf/ResourceErrorCF.cpp:
48534         (WebCore):
48535         (WebCore::ResourceError::setCertificate):
48536
48537 2012-10-12  MORITA Hajime  <morrita@google.com>
48538
48539         [V8] PerContextEnabled methods should be installed when the constructor is created
48540         https://bugs.webkit.org/show_bug.cgi?id=99129
48541
48542         Reviewed by Kentaro Hara.
48543
48544         Before this change, generated installPerContextProperties() method
48545         injected both per-context attributes and functions, and functions
48546         were injected into the prototye object.  This means that the
48547         functions are injected into the prototype repeatedly for each
48548         intance creation.  This injection can be happened only once per
48549         prototype object, which is clearer and is faster.
48550
48551         This change introduces installPerContextPrototypeProperties()
48552         generated method, which is designed to be called for each time when the prototype
48553         object is created.
48554
48555         To do that, WrapperTypeInfo is extended to hold an additional
48556         function pointer to an installPerContextPrototypeProperties()
48557         implementation so that we call it from V8PerContextData::constructorForTypeSlowCase(),
48558         where the prototype instance is created.
48559
48560         Other changes:
48561         - Added some modification to pass around the parameter to constructorForTypeSlowCase().
48562         - installPerContextProperties() are now always generated for simplicity. Empty implementations are inlined thus
48563           no speed penalty.
48564
48565         No new tests. Covered by existing tests.
48566
48567         * Modules/notifications/NotificationCenter.cpp:
48568         (WebCore::NotificationCenter::document):
48569         * Modules/notifications/NotificationCenter.h:
48570         (NotificationCenter):
48571         * bindings/scripts/CodeGeneratorV8.pm:
48572         (GenerateHeader):
48573         (GenerateConstructorGetter):
48574         (GenerateNamedConstructorCallback):
48575         (GenerateImplementation): Extracted per-context function additions to new installPerContextPrototypeProperties() function.
48576         (GenerateToV8Converters):
48577         * bindings/scripts/test/V8/V8Float64Array.cpp:
48578         (WebCore):
48579         (WebCore::V8Float64Array::wrapSlow):
48580         * bindings/scripts/test/V8/V8Float64Array.h:
48581         (WebCore::V8Float64Array::installPerContextProperties):
48582         (WebCore::V8Float64Array::installPerContextPrototypeProperties):
48583         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
48584         (WebCore):
48585         (WebCore::V8TestActiveDOMObject::wrapSlow):
48586         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
48587         (WebCore::V8TestActiveDOMObject::installPerContextProperties):
48588         (WebCore::V8TestActiveDOMObject::installPerContextPrototypeProperties):
48589         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
48590         (WebCore):
48591         (WebCore::V8TestCustomNamedGetter::wrapSlow):
48592         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
48593         (WebCore::V8TestCustomNamedGetter::installPerContextProperties):
48594         (WebCore::V8TestCustomNamedGetter::installPerContextPrototypeProperties):
48595         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
48596         (WebCore):
48597         (WebCore::V8TestEventConstructor::wrapSlow):
48598         * bindings/scripts/test/V8/V8TestEventConstructor.h:
48599         (WebCore::V8TestEventConstructor::installPerContextProperties):
48600         (WebCore::V8TestEventConstructor::installPerContextPrototypeProperties):
48601         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
48602         (WebCore):
48603         (WebCore::V8TestEventTarget::wrapSlow):
48604         * bindings/scripts/test/V8/V8TestEventTarget.h:
48605         (WebCore::V8TestEventTarget::installPerContextProperties):
48606         (WebCore::V8TestEventTarget::installPerContextPrototypeProperties):
48607         * bindings/scripts/test/V8/V8TestException.cpp:
48608         (WebCore):
48609         (WebCore::V8TestException::wrapSlow):
48610         * bindings/scripts/test/V8/V8TestException.h:
48611         (WebCore::V8TestException::installPerContextProperties):
48612         (WebCore::V8TestException::installPerContextPrototypeProperties):
48613         * bindings/scripts/test/V8/V8TestInterface.cpp:
48614         (WebCore):
48615         (WebCore::V8TestInterface::wrapSlow):
48616         * bindings/scripts/test/V8/V8TestInterface.h:
48617         (WebCore::V8TestInterface::installPerContextProperties):
48618         (WebCore::V8TestInterface::installPerContextPrototypeProperties):
48619         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
48620         (WebCore):
48621         (WebCore::V8TestMediaQueryListListener::wrapSlow):
48622         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
48623         (WebCore::V8TestMediaQueryListListener::installPerContextProperties):
48624         (WebCore::V8TestMediaQueryListListener::installPerContextPrototypeProperties):
48625         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
48626         (WebCore):
48627         (WebCore::V8TestNamedConstructor::wrapSlow):
48628         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
48629         (WebCore::V8TestNamedConstructor::installPerContextProperties):
48630         (WebCore::V8TestNamedConstructor::installPerContextPrototypeProperties):
48631         * bindings/scripts/test/V8/V8TestNode.cpp:
48632         (WebCore):
48633         (WebCore::V8TestNode::wrapSlow):
48634         * bindings/scripts/test/V8/V8TestNode.h:
48635         (WebCore::V8TestNode::installPerContextProperties):
48636         (WebCore::V8TestNode::installPerContextPrototypeProperties):
48637         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
48638         (WebCore):
48639         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
48640         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
48641         (WebCore::V8TestSerializedScriptValueInterface::installPerContextProperties):
48642         (WebCore::V8TestSerializedScriptValueInterface::installPerContextPrototypeProperties):
48643         * bindings/v8/NPV8Object.cpp:
48644         (WebCore::npObjectTypeInfo):
48645         * bindings/v8/V8DOMWindowShell.cpp:
48646         (WebCore::V8DOMWindowShell::installDOMWindow):
48647         * bindings/v8/V8DOMWrapper.cpp:
48648         (WebCore::V8DOMWrapper::instantiateV8Object):
48649         * bindings/v8/V8PerContextData.cpp:
48650         (WebCore::V8PerContextData::createWrapperFromCacheSlowCase):
48651         (WebCore::V8PerContextData::constructorForTypeSlowCase): Now invokes installPerContextPrototypeProperties()
48652         * bindings/v8/V8PerContextData.h:
48653         (WebCore::V8PerContextData::createWrapperFromCache):
48654         (WebCore::V8PerContextData::constructorForType):
48655         (V8PerContextData):
48656         * bindings/v8/WorkerContextExecutionProxy.cpp:
48657         (WebCore::WorkerContextExecutionProxy::initializeIfNeeded):
48658         * bindings/v8/WrapperTypeInfo.h:
48659         (WebCore):
48660         (WebCore::WrapperTypeInfo::installPerContextPrototypeProperties): Added.
48661         (WrapperTypeInfo):
48662         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
48663         (WebCore):
48664
48665 2012-10-12  Pavel Feldman  <pfeldman@chromium.org>
48666
48667         Web Inspector: Add "goto tab 1,2,3" hotkeys
48668         https://bugs.webkit.org/show_bug.cgi?id=99157
48669
48670         Reviewed by Alexander Pavlov.
48671
48672         Ctrl/Cmd + digit shortcuts should select corresponding tabs
48673
48674         * inspector/front-end/InspectorView.js:
48675         (WebInspector.InspectorView.prototype._keyDown):
48676         (WebInspector.InspectorView.prototype._keyDownInternal):
48677
48678 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48679
48680         Web Inspector: Extract domain specific editing handling logic from UISourceCode descendants (step 1).
48681         https://bugs.webkit.org/show_bug.cgi?id=98912
48682
48683         Reviewed by Pavel Feldman.
48684
48685         This is the first step that introduces StyleFile and ScriptFile and extracts domain specific editing handling logic.
48686         StyleFile and ScriptFile should listen for the UISourceCode events and process them, this will be done in the next patch.
48687
48688         * inspector/front-end/BreakpointManager.js:
48689         (WebInspector.BreakpointManager.Breakpoint.prototype._updateBreakpoint):
48690         * inspector/front-end/JavaScriptSource.js:
48691         * inspector/front-end/JavaScriptSourceFrame.js:
48692         (WebInspector.JavaScriptSourceFrame):
48693         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
48694         * inspector/front-end/ResourceScriptMapping.js:
48695         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
48696         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
48697         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
48698         (WebInspector.ScriptFile):
48699         (WebInspector.ScriptFile.prototype.hasDivergedFromVM):
48700         (WebInspector.ScriptFile.prototype.isDivergingFromVM):
48701         (WebInspector.ScriptFile.prototype.addEventListener):
48702         (WebInspector.ScriptFile.prototype.removeEventListener):
48703         (WebInspector.ResourceScriptFile):
48704         (WebInspector.ResourceScriptFile.prototype.workingCopyCommitted):
48705         (WebInspector.ResourceScriptFile.prototype.workingCopyChanged):
48706         (WebInspector.ResourceScriptFile.prototype.fireHasDivergedFromVMChanged):
48707         (WebInspector.ResourceScriptFile.prototype.hasDivergedFromVM):
48708         (WebInspector.ResourceScriptFile.prototype.isDivergingFromVM):
48709         * inspector/front-end/ScriptSnippetModel.js:
48710         (WebInspector.ScriptSnippetModel.prototype._addScriptSnippet):
48711         (WebInspector.SnippetScriptFile):
48712         (WebInspector.SnippetScriptFile.prototype.hasDivergedFromVM):
48713         (WebInspector.SnippetScriptFile.prototype.setHasDivergedFromVM):
48714         (WebInspector.SnippetScriptFile.prototype.isDivergingFromVM):
48715         (WebInspector.SnippetScriptFile.prototype.setIsDivergingFromVM):
48716         (WebInspector.SnippetScriptFile.prototype.workingCopyCommitted):
48717         (WebInspector.SnippetScriptFile.prototype.workingCopyChanged):
48718         * inspector/front-end/ScriptsPanel.js:
48719         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
48720         * inspector/front-end/StyleSource.js:
48721         * inspector/front-end/StylesSourceMapping.js:
48722         (WebInspector.StylesSourceMapping.prototype._uiSourceCodeAddedToWorkspace):
48723         (WebInspector.StylesSourceMapping.prototype._addUISourceCode):
48724         (WebInspector.StyleFile):
48725         (WebInspector.StyleFile.prototype.workingCopyCommitted):
48726         (WebInspector.StyleFile.prototype.workingCopyChanged):
48727         (WebInspector.StyleFile.prototype._callOrSetTimeout):
48728         (WebInspector.StyleFile.prototype._commitIncrementalEdit):
48729         (WebInspector.StyleFile.prototype._clearIncrementalUpdateTimer):
48730         * inspector/front-end/UISourceCode.js:
48731         (WebInspector.UISourceCode.prototype.scriptFile):
48732         (WebInspector.UISourceCode.prototype.setScriptFile):
48733         (WebInspector.UISourceCode.prototype.styleFile):
48734         (WebInspector.UISourceCode.prototype.setStyleFile):
48735         (WebInspector.UISourceCode.prototype.setWorkingCopy):
48736         (WebInspector.UISourceCode.prototype.commitWorkingCopy):
48737
48738 2012-10-12  Zeno Albisser  <zeno@webkit.org>
48739
48740         [Qt][WK2] GraphicsSurfaceGLX should keep track of previous GL context.
48741         https://bugs.webkit.org/show_bug.cgi?id=99076
48742
48743         In GraphicsSurfaceGLX/GraphicsSurfacePrivate we create a new
48744         QOpenGLContext for resolving GL methods.
48745         This context is implicitly made current on creation.
48746         Therefore we need to keep track of the previously bound context
48747         and make that one current again after calling create.
48748
48749         Reviewed by Kenneth Rohde Christiansen.
48750
48751         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
48752         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
48753
48754 2012-10-12  Balazs Kelemen  <kbalazs@webkit.org>
48755
48756         Unreviewed, rolling out r130389.
48757         http://trac.webkit.org/changeset/130389
48758         https://bugs.webkit.org/show_bug.cgi?id=98048
48759
48760         It broke chromium
48761
48762         * WebCore.exp.in:
48763         * page/Settings.cpp:
48764         (WebCore::Settings::setAcceleratedCompositingEnabled):
48765         * page/Settings.h:
48766         (WebCore::Settings::setForceCompositingMode):
48767         (WebCore::Settings::forceCompositingMode):
48768
48769 2012-10-12  Vsevolod Vlasov  <vsevik@chromium.org>
48770
48771         Web Inspector: Show request body source in request headers view.
48772         https://bugs.webkit.org/show_bug.cgi?id=99145
48773
48774         Reviewed by Pavel Feldman.
48775
48776         Added view source toggle to query parameters and form data elements.
48777
48778         * inspector/front-end/NetworkPanel.js: fixed queryString getter usage.
48779         (WebInspector.NetworkDataGridNode.prototype._fileName):
48780         (WebInspector.NetworkDataGridNode.NameComparator):
48781         * inspector/front-end/NetworkRequest.js: Extracted queryString getter.
48782         (WebInspector.NetworkRequest.prototype.queryString):
48783         (WebInspector.NetworkRequest.prototype.get queryParameters):
48784         * inspector/front-end/RequestHeadersView.js:
48785         (WebInspector.RequestHeadersView.prototype._refreshQueryString):
48786         (WebInspector.RequestHeadersView.prototype._refreshFormData):
48787         (WebInspector.RequestHeadersView.prototype._populateTreeElementWithSourceText):
48788         extracted common method to populate elememnt with raw source text.
48789         (WebInspector.RequestHeadersView.prototype._refreshParams.toggleViewSource):
48790         (WebInspector.RequestHeadersView.prototype._refreshParams):
48791         (WebInspector.RequestHeadersView.prototype._toggleURLDecoding):
48792         (WebInspector.RequestHeadersView.prototype._refreshHeadersText):
48793         * inspector/front-end/networkPanel.css:A removed redundant raw-form-data style rule.
48794
48795 2012-10-12  Shinya Kawanaka  <shinyak@chromium.org>
48796
48797         Optimzie SelectorCheckingContext memory layout
48798         https://bugs.webkit.org/show_bug.cgi?id=99139
48799
48800         Reviewed by Hajime Morita.
48801
48802         Since VisitedMatchType and PseudoId are both enum, we can make SelectorChecker more compact
48803         if these two fields are continuously placed.
48804
48805         No new tests, no change in behavior.
48806
48807         * css/SelectorChecker.h:
48808         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
48809         (SelectorCheckingContext):
48810
48811 2012-10-12  Kenichi Ishibashi  <bashi@chromium.org>
48812
48813         [WebSocket] Add "Cache-Control: no-cache" to handshake request
48814         https://bugs.webkit.org/show_bug.cgi?id=98000
48815
48816         Reviewed by Yuta Kitamura.
48817
48818         Add no-cache headers to opening handshake.
48819         This is for compatibility improvement.
48820         Some proxies rewrite "Connection: upgrade" to "Connection: close"
48821         when a request doesn't contain no-cache headers.
48822
48823         Test: http/tests/websocket/tests/hybi/nocache.html
48824
48825         * Modules/websockets/WebSocketHandshake.cpp:
48826         (WebCore::WebSocketHandshake::clientHandshakeMessage):
48827         (WebCore::WebSocketHandshake::clientHandshakeRequest):
48828
48829 2012-10-11  Andy Estes  <aestes@apple.com>
48830
48831         Add some basic methods and properties to the injected bundle Objective-C DOM API
48832         https://bugs.webkit.org/show_bug.cgi?id=99137
48833
48834         Reviewed by Sam Weinig.
48835
48836         Export needed symbols.
48837
48838         * WebCore.exp.in:
48839
48840 2012-10-11  Rik Cabanier  <cabanier@adobe.com>
48841
48842         Bad copy constructor in StyleRareNonInheritedData
48843         https://bugs.webkit.org/show_bug.cgi?id=98950
48844
48845         Reviewed by Eric Seidel.
48846
48847         Typo in copy constructor caused blendmode to always be the default.
48848
48849         * rendering/style/StyleRareNonInheritedData.cpp:
48850         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
48851
48852 2012-10-11  Takashi Sakamoto  <tasak@google.com>
48853
48854         [WebKit IDL] remove all module from idl files.
48855         https://bugs.webkit.org/show_bug.cgi?id=99007
48856
48857         Reviewed by Kentaro Hara.
48858
48859         Since current WebIDL spec doesn't support "module", remove
48860         module from all idl files.
48861
48862         No new tests. I ran run-bindings-tests and no error was reported.
48863
48864         * Modules/battery/BatteryManager.idl:
48865         * Modules/battery/NavigatorBattery.idl:
48866         * Modules/filesystem/DOMFileSystem.idl:
48867         * Modules/filesystem/DOMFileSystemSync.idl:
48868         * Modules/filesystem/DOMWindowFileSystem.idl:
48869         * Modules/filesystem/DataTransferItemFileSystem.idl:
48870         * Modules/filesystem/DirectoryEntry.idl:
48871         * Modules/filesystem/DirectoryEntrySync.idl:
48872         * Modules/filesystem/DirectoryReader.idl:
48873         * Modules/filesystem/DirectoryReaderSync.idl:
48874         * Modules/filesystem/EntriesCallback.idl:
48875         * Modules/filesystem/Entry.idl:
48876         * Modules/filesystem/EntryArray.idl:
48877         * Modules/filesystem/EntryArraySync.idl:
48878         * Modules/filesystem/EntryCallback.idl:
48879         * Modules/filesystem/EntrySync.idl:
48880         * Modules/filesystem/ErrorCallback.idl:
48881         * Modules/filesystem/FileCallback.idl:
48882         * Modules/filesystem/FileEntry.idl:
48883         * Modules/filesystem/FileEntrySync.idl:
48884         * Modules/filesystem/FileSystemCallback.idl:
48885         * Modules/filesystem/FileWriter.idl:
48886         * Modules/filesystem/FileWriterCallback.idl:
48887         * Modules/filesystem/FileWriterSync.idl:
48888         * Modules/filesystem/HTMLInputElementFileSystem.idl:
48889         * Modules/filesystem/Metadata.idl:
48890         * Modules/filesystem/MetadataCallback.idl:
48891         * Modules/filesystem/WorkerContextFileSystem.idl:
48892         * Modules/gamepad/Gamepad.idl:
48893         * Modules/gamepad/GamepadList.idl:
48894         * Modules/gamepad/NavigatorGamepad.idl:
48895         * Modules/geolocation/Geolocation.idl:
48896         * Modules/geolocation/Geoposition.idl:
48897         * Modules/geolocation/NavigatorGeolocation.idl:
48898         * Modules/geolocation/PositionCallback.idl:
48899         * Modules/geolocation/PositionError.idl:
48900         * Modules/geolocation/PositionErrorCallback.idl:
48901         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
48902         * Modules/indexeddb/IDBAny.idl:
48903         * Modules/indexeddb/IDBCursor.idl:
48904         * Modules/indexeddb/IDBCursorWithValue.idl:
48905         * Modules/indexeddb/IDBDatabase.idl:
48906         * Modules/indexeddb/IDBDatabaseException.idl:
48907         * Modules/indexeddb/IDBFactory.idl:
48908         * Modules/indexeddb/IDBIndex.idl:
48909         * Modules/indexeddb/IDBKey.idl:
48910         * Modules/indexeddb/IDBKeyRange.idl:
48911         * Modules/indexeddb/IDBObjectStore.idl:
48912         * Modules/indexeddb/IDBOpenDBRequest.idl:
48913         * Modules/indexeddb/IDBRequest.idl:
48914         * Modules/indexeddb/IDBTransaction.idl:
48915         * Modules/indexeddb/IDBUpgradeNeededEvent.idl:
48916         * Modules/indexeddb/IDBVersionChangeEvent.idl:
48917         * Modules/indexeddb/IDBVersionChangeRequest.idl:
48918         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
48919         * Modules/intents/DOMWindowIntents.idl:
48920         * Modules/intents/DeliveredIntent.idl:
48921         * Modules/intents/Intent.idl:
48922         * Modules/intents/IntentResultCallback.idl:
48923         * Modules/intents/NavigatorIntents.idl:
48924         * Modules/mediasource/MediaSource.idl:
48925         * Modules/mediasource/SourceBuffer.idl:
48926         * Modules/mediasource/SourceBufferList.idl:
48927         * Modules/mediastream/DOMWindowMediaStream.idl:
48928         * Modules/mediastream/IceCallback.idl:
48929         * Modules/mediastream/IceCandidate.idl:
48930         * Modules/mediastream/LocalMediaStream.idl:
48931         * Modules/mediastream/MediaStream.idl:
48932         * Modules/mediastream/MediaStreamEvent.idl:
48933         * Modules/mediastream/MediaStreamList.idl:
48934         * Modules/mediastream/MediaStreamTrack.idl:
48935         * Modules/mediastream/MediaStreamTrackEvent.idl:
48936         * Modules/mediastream/MediaStreamTrackList.idl:
48937         * Modules/mediastream/NavigatorMediaStream.idl:
48938         * Modules/mediastream/NavigatorUserMediaError.idl:
48939         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl:
48940         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl:
48941         * Modules/mediastream/PeerConnection00.idl:
48942         * Modules/mediastream/RTCErrorCallback.idl:
48943         * Modules/mediastream/RTCIceCandidate.idl:
48944         * Modules/mediastream/RTCIceCandidateEvent.idl:
48945         * Modules/mediastream/RTCPeerConnection.idl:
48946         * Modules/mediastream/RTCSessionDescription.idl:
48947         * Modules/mediastream/RTCSessionDescriptionCallback.idl:
48948         * Modules/mediastream/RTCStatsCallback.idl:
48949         * Modules/mediastream/RTCStatsElement.idl:
48950         * Modules/mediastream/RTCStatsReport.idl:
48951         * Modules/mediastream/RTCStatsResponse.idl:
48952         * Modules/mediastream/SessionDescription.idl:
48953         * Modules/navigatorcontentutils/NavigatorContentUtils.idl:
48954         * Modules/networkinfo/NavigatorNetworkInfoConnection.idl:
48955         * Modules/networkinfo/NetworkInfoConnection.idl:
48956         * Modules/notifications/DOMWindowNotifications.idl:
48957         * Modules/notifications/Notification.idl:
48958         * Modules/notifications/NotificationCenter.idl:
48959         * Modules/notifications/NotificationPermissionCallback.idl:
48960         * Modules/notifications/WorkerContextNotifications.idl:
48961         * Modules/proximity/DeviceProximityEvent.idl:
48962         * Modules/quota/DOMWindowQuota.idl:
48963         * Modules/quota/StorageInfo.idl:
48964         * Modules/quota/StorageInfoErrorCallback.idl:
48965         * Modules/quota/StorageInfoQuotaCallback.idl:
48966         * Modules/quota/StorageInfoUsageCallback.idl:
48967         * Modules/speech/DOMWindowSpeech.idl:
48968         * Modules/speech/SpeechGrammar.idl:
48969         * Modules/speech/SpeechGrammarList.idl:
48970         * Modules/speech/SpeechRecognition.idl:
48971         * Modules/speech/SpeechRecognitionAlternative.idl:
48972         * Modules/speech/SpeechRecognitionError.idl:
48973         * Modules/speech/SpeechRecognitionEvent.idl:
48974         * Modules/speech/SpeechRecognitionResult.idl:
48975         * Modules/speech/SpeechRecognitionResultList.idl:
48976         * Modules/vibration/NavigatorVibration.idl:
48977         * Modules/webaudio/AudioBuffer.idl:
48978         * Modules/webaudio/AudioBufferCallback.idl:
48979         * Modules/webaudio/AudioBufferSourceNode.idl:
48980         * Modules/webaudio/AudioChannelMerger.idl:
48981         * Modules/webaudio/AudioChannelSplitter.idl:
48982         * Modules/webaudio/AudioContext.idl:
48983         * Modules/webaudio/AudioDestinationNode.idl:
48984         * Modules/webaudio/AudioGain.idl:
48985         * Modules/webaudio/AudioGainNode.idl:
48986         * Modules/webaudio/AudioListener.idl:
48987         * Modules/webaudio/AudioNode.idl:
48988         * Modules/webaudio/AudioPannerNode.idl:
48989         * Modules/webaudio/AudioParam.idl:
48990         * Modules/webaudio/AudioProcessingEvent.idl:
48991         * Modules/webaudio/AudioSourceNode.idl:
48992         * Modules/webaudio/BiquadFilterNode.idl:
48993         * Modules/webaudio/ConvolverNode.idl:
48994         * Modules/webaudio/DOMWindowWebAudio.idl:
48995         * Modules/webaudio/DelayNode.idl:
48996         * Modules/webaudio/DynamicsCompressorNode.idl:
48997         * Modules/webaudio/JavaScriptAudioNode.idl:
48998         * Modules/webaudio/MediaElementAudioSourceNode.idl:
48999         * Modules/webaudio/MediaStreamAudioSourceNode.idl:
49000         * Modules/webaudio/OfflineAudioCompletionEvent.idl:
49001         * Modules/webaudio/Oscillator.idl:
49002         * Modules/webaudio/RealtimeAnalyserNode.idl:
49003         * Modules/webaudio/WaveShaperNode.idl:
49004         * Modules/webaudio/WaveTable.idl:
49005         * Modules/webdatabase/DOMWindowWebDatabase.idl:
49006         * Modules/webdatabase/Database.idl:
49007         * Modules/webdatabase/DatabaseCallback.idl:
49008         * Modules/webdatabase/DatabaseSync.idl:
49009         * Modules/webdatabase/SQLError.idl:
49010         * Modules/webdatabase/SQLException.idl:
49011         * Modules/webdatabase/SQLResultSet.idl:
49012         * Modules/webdatabase/SQLResultSetRowList.idl:
49013         * Modules/webdatabase/SQLStatementCallback.idl:
49014         * Modules/webdatabase/SQLStatementErrorCallback.idl:
49015         * Modules/webdatabase/SQLTransaction.idl:
49016         * Modules/webdatabase/SQLTransactionCallback.idl:
49017         * Modules/webdatabase/SQLTransactionErrorCallback.idl:
49018         * Modules/webdatabase/SQLTransactionSync.idl:
49019         * Modules/webdatabase/SQLTransactionSyncCallback.idl:
49020         * Modules/webdatabase/WorkerContextWebDatabase.idl:
49021         * Modules/websockets/CloseEvent.idl:
49022         * Modules/websockets/DOMWindowWebSocket.idl:
49023         * Modules/websockets/WebSocket.idl:
49024         * Modules/websockets/WorkerContextWebSocket.idl:
49025         * bindings/scripts/test/TestCallback.idl:
49026         * bindings/scripts/test/TestCustomNamedGetter.idl:
49027         * bindings/scripts/test/TestDomainSecurity.idl:
49028         * bindings/scripts/test/TestEventConstructor.idl:
49029         * bindings/scripts/test/TestEventTarget.idl:
49030         * bindings/scripts/test/TestException.idl:
49031         * bindings/scripts/test/TestInterface.idl:
49032         * bindings/scripts/test/TestMediaQueryListListener.idl:
49033         * bindings/scripts/test/TestNamedConstructor.idl:
49034         * bindings/scripts/test/TestNode.idl:
49035         * bindings/scripts/test/TestObj.idl:
49036         * bindings/scripts/test/TestSerializedScriptValueInterface.idl:
49037         * bindings/scripts/test/TestSupplemental.idl:
49038         * bindings/scripts/test/TestTypedArray.idl:
49039         * css/CSSCharsetRule.idl:
49040         * css/CSSFontFaceRule.idl:
49041         * css/CSSImportRule.idl:
49042         * css/CSSMediaRule.idl:
49043         * css/CSSPageRule.idl:
49044         * css/CSSPrimitiveValue.idl:
49045         * css/CSSRule.idl:
49046         * css/CSSRuleList.idl:
49047         * css/CSSStyleDeclaration.idl:
49048         * css/CSSStyleRule.idl:
49049         * css/CSSStyleSheet.idl:
49050         * css/CSSUnknownRule.idl:
49051         * css/CSSValue.idl:
49052         * css/CSSValueList.idl:
49053         * css/Counter.idl:
49054         * css/MediaList.idl:
49055         * css/MediaQueryList.idl:
49056         * css/MediaQueryListListener.idl:
49057         * css/RGBColor.idl:
49058         * css/Rect.idl:
49059         * css/StyleMedia.idl:
49060         * css/StyleSheet.idl:
49061         * css/StyleSheetList.idl:
49062         * css/WebKitCSSFilterValue.idl:
49063         * css/WebKitCSSKeyframeRule.idl:
49064         * css/WebKitCSSKeyframesRule.idl:
49065         * css/WebKitCSSMatrix.idl:
49066         * css/WebKitCSSRegionRule.idl:
49067         * css/WebKitCSSTransformValue.idl:
49068         * dom/Attr.idl:
49069         * dom/BeforeLoadEvent.idl:
49070         * dom/CDATASection.idl:
49071         * dom/CharacterData.idl:
49072         * dom/ClientRect.idl:
49073         * dom/ClientRectList.idl:
49074         * dom/Clipboard.idl:
49075         * dom/Comment.idl:
49076         * dom/CompositionEvent.idl:
49077         * dom/CustomEvent.idl:
49078         * dom/DOMCoreException.idl:
49079         * dom/DOMError.idl:
49080         * dom/DOMImplementation.idl:
49081         * dom/DOMNamedFlowCollection.idl:
49082         * dom/DOMStringList.idl:
49083         * dom/DOMStringMap.idl:
49084         * dom/DataTransferItem.idl:
49085         * dom/DataTransferItemList.idl:
49086         * dom/DeviceMotionEvent.idl:
49087         * dom/DeviceOrientationEvent.idl:
49088         * dom/Document.idl:
49089         * dom/DocumentFragment.idl:
49090         * dom/DocumentType.idl:
49091         * dom/Element.idl:
49092         * dom/Entity.idl:
49093         * dom/EntityReference.idl:
49094         * dom/ErrorEvent.idl:
49095         * dom/Event.idl:
49096         * dom/EventException.idl:
49097         * dom/EventListener.idl:
49098         * dom/EventTarget.idl:
49099         * dom/HashChangeEvent.idl:
49100         * dom/KeyboardEvent.idl:
49101         * dom/MessageChannel.idl:
49102         * dom/MessageEvent.idl:
49103         * dom/MessagePort.idl:
49104         * dom/MouseEvent.idl:
49105         * dom/MutationCallback.idl:
49106         * dom/MutationEvent.idl:
49107         * dom/MutationObserver.idl:
49108         * dom/MutationRecord.idl:
49109         * dom/NamedNodeMap.idl:
49110         * dom/Node.idl:
49111         * dom/NodeFilter.idl:
49112         * dom/NodeIterator.idl:
49113         * dom/NodeList.idl:
49114         * dom/Notation.idl:
49115         * dom/OverflowEvent.idl:
49116         * dom/PageTransitionEvent.idl:
49117         * dom/PopStateEvent.idl:
49118         * dom/ProcessingInstruction.idl:
49119         * dom/ProgressEvent.idl:
49120         * dom/PropertyNodeList.idl:
49121         * dom/Range.idl:
49122         * dom/RangeException.idl:
49123         * dom/RequestAnimationFrameCallback.idl:
49124         * dom/ShadowRoot.idl:
49125         * dom/StringCallback.idl:
49126         * dom/Text.idl:
49127         * dom/TextEvent.idl:
49128         * dom/Touch.idl:
49129         * dom/TouchEvent.idl:
49130         * dom/TouchList.idl:
49131         * dom/TreeWalker.idl:
49132         * dom/UIEvent.idl:
49133         * dom/WebKitAnimationEvent.idl:
49134         * dom/WebKitNamedFlow.idl:
49135         * dom/WebKitTransitionEvent.idl:
49136         * dom/WheelEvent.idl:
49137         * editing/DOMTransaction.idl:
49138         * editing/UndoManager.idl:
49139         * fileapi/Blob.idl:
49140         * fileapi/File.idl:
49141         * fileapi/FileError.idl:
49142         * fileapi/FileException.idl:
49143         * fileapi/FileList.idl:
49144         * fileapi/FileReader.idl:
49145         * fileapi/FileReaderSync.idl:
49146         * html/DOMFormData.idl:
49147         * html/DOMSettableTokenList.idl:
49148         * html/DOMTokenList.idl:
49149         * html/DOMURL.idl:
49150         * html/HTMLAllCollection.idl:
49151         * html/HTMLAnchorElement.idl:
49152         * html/HTMLAppletElement.idl:
49153         * html/HTMLAreaElement.idl:
49154         * html/HTMLAudioElement.idl:
49155         * html/HTMLBRElement.idl:
49156         * html/HTMLBaseElement.idl:
49157         * html/HTMLBaseFontElement.idl:
49158         * html/HTMLBodyElement.idl:
49159         * html/HTMLButtonElement.idl:
49160         * html/HTMLCanvasElement.idl:
49161         * html/HTMLCollection.idl:
49162         * html/HTMLDListElement.idl:
49163         * html/HTMLDataListElement.idl:
49164         * html/HTMLDetailsElement.idl:
49165         * html/HTMLDialogElement.idl:
49166         * html/HTMLDirectoryElement.idl:
49167         * html/HTMLDivElement.idl:
49168         * html/HTMLDocument.idl:
49169         * html/HTMLElement.idl:
49170         * html/HTMLEmbedElement.idl:
49171         * html/HTMLFieldSetElement.idl:
49172         * html/HTMLFontElement.idl:
49173         * html/HTMLFormElement.idl:
49174         * html/HTMLFrameElement.idl:
49175         * html/HTMLFrameSetElement.idl:
49176         * html/HTMLHRElement.idl:
49177         * html/HTMLHeadElement.idl:
49178         * html/HTMLHeadingElement.idl:
49179         * html/HTMLHtmlElement.idl:
49180         * html/HTMLIFrameElement.idl:
49181         * html/HTMLImageElement.idl:
49182         * html/HTMLInputElement.idl:
49183         * html/HTMLIntentElement.idl:
49184         * html/HTMLKeygenElement.idl:
49185         * html/HTMLLIElement.idl:
49186         * html/HTMLLabelElement.idl:
49187         * html/HTMLLegendElement.idl:
49188         * html/HTMLLinkElement.idl:
49189         * html/HTMLMapElement.idl:
49190         * html/HTMLMarqueeElement.idl:
49191         * html/HTMLMediaElement.idl:
49192         * html/HTMLMenuElement.idl:
49193         * html/HTMLMetaElement.idl:
49194         * html/HTMLMeterElement.idl:
49195         * html/HTMLModElement.idl:
49196         * html/HTMLOListElement.idl:
49197         * html/HTMLObjectElement.idl:
49198         * html/HTMLOptGroupElement.idl:
49199         * html/HTMLOptionElement.idl:
49200         * html/HTMLOptionsCollection.idl:
49201         * html/HTMLOutputElement.idl:
49202         * html/HTMLParagraphElement.idl:
49203         * html/HTMLParamElement.idl:
49204         * html/HTMLPreElement.idl:
49205         * html/HTMLProgressElement.idl:
49206         * html/HTMLPropertiesCollection.idl:
49207         * html/HTMLQuoteElement.idl:
49208         * html/HTMLScriptElement.idl:
49209         * html/HTMLSelectElement.idl:
49210         * html/HTMLSourceElement.idl:
49211         * html/HTMLSpanElement.idl:
49212         * html/HTMLStyleElement.idl:
49213         * html/HTMLTableCaptionElement.idl:
49214         * html/HTMLTableCellElement.idl:
49215         * html/HTMLTableColElement.idl:
49216         * html/HTMLTableElement.idl:
49217         * html/HTMLTableRowElement.idl:
49218         * html/HTMLTableSectionElement.idl:
49219         * html/HTMLTextAreaElement.idl:
49220         * html/HTMLTitleElement.idl:
49221         * html/HTMLTrackElement.idl:
49222         * html/HTMLUListElement.idl:
49223         * html/HTMLUnknownElement.idl:
49224         * html/HTMLVideoElement.idl:
49225         * html/ImageData.idl:
49226         * html/MediaController.idl:
49227         * html/MediaError.idl:
49228         * html/MediaKeyError.idl:
49229         * html/MediaKeyEvent.idl:
49230         * html/MicroDataItemValue.idl:
49231         * html/RadioNodeList.idl:
49232         * html/TextMetrics.idl:
49233         * html/TimeRanges.idl:
49234         * html/ValidityState.idl:
49235         * html/VoidCallback.idl:
49236         * html/canvas/ArrayBuffer.idl:
49237         * html/canvas/ArrayBufferView.idl:
49238         * html/canvas/CanvasGradient.idl:
49239         * html/canvas/CanvasPattern.idl:
49240         * html/canvas/CanvasRenderingContext.idl:
49241         * html/canvas/CanvasRenderingContext2D.idl:
49242         * html/canvas/DataView.idl:
49243         * html/canvas/EXTTextureFilterAnisotropic.idl:
49244         * html/canvas/Float32Array.idl:
49245         * html/canvas/Float64Array.idl:
49246         * html/canvas/Int16Array.idl:
49247         * html/canvas/Int32Array.idl:
49248         * html/canvas/Int8Array.idl:
49249         * html/canvas/OESStandardDerivatives.idl:
49250         * html/canvas/OESTextureFloat.idl:
49251         * html/canvas/OESVertexArrayObject.idl:
49252         * html/canvas/Uint16Array.idl:
49253         * html/canvas/Uint32Array.idl:
49254         * html/canvas/Uint8Array.idl:
49255         * html/canvas/Uint8ClampedArray.idl:
49256         * html/canvas/WebGLActiveInfo.idl:
49257         * html/canvas/WebGLBuffer.idl:
49258         * html/canvas/WebGLCompressedTextureS3TC.idl:
49259         * html/canvas/WebGLContextAttributes.idl:
49260         * html/canvas/WebGLContextEvent.idl:
49261         * html/canvas/WebGLDebugRendererInfo.idl:
49262         * html/canvas/WebGLDebugShaders.idl:
49263         * html/canvas/WebGLDepthTexture.idl:
49264         * html/canvas/WebGLFramebuffer.idl:
49265         * html/canvas/WebGLLoseContext.idl:
49266         * html/canvas/WebGLProgram.idl:
49267         * html/canvas/WebGLRenderbuffer.idl:
49268         * html/canvas/WebGLRenderingContext.idl:
49269         * html/canvas/WebGLShader.idl:
49270         * html/canvas/WebGLShaderPrecisionFormat.idl:
49271         * html/canvas/WebGLTexture.idl:
49272         * html/canvas/WebGLUniformLocation.idl:
49273         * html/canvas/WebGLVertexArrayObjectOES.idl:
49274         * html/shadow/HTMLContentElement.idl:
49275         * html/shadow/HTMLShadowElement.idl:
49276         * html/track/TextTrack.idl:
49277         * html/track/TextTrackCue.idl:
49278         * html/track/TextTrackCueList.idl:
49279         * html/track/TextTrackList.idl:
49280         * html/track/TrackEvent.idl:
49281         * inspector/InjectedScriptHost.idl:
49282         * inspector/InspectorFrontendHost.idl:
49283         * inspector/JavaScriptCallFrame.idl:
49284         * inspector/ScriptProfile.idl:
49285         * inspector/ScriptProfileNode.idl:
49286         * loader/appcache/DOMApplicationCache.idl:
49287         * page/AbstractView.idl:
49288         * page/BarInfo.idl:
49289         * page/Console.idl:
49290         * page/Coordinates.idl:
49291         * page/Crypto.idl:
49292         * page/DOMSecurityPolicy.idl:
49293         * page/DOMSelection.idl:
49294         * page/DOMWindow.idl:
49295         * page/DOMWindowPagePopup.idl:
49296         * page/EventSource.idl:
49297         * page/History.idl:
49298         * page/Location.idl:
49299         * page/MemoryInfo.idl:
49300         * page/Navigator.idl:
49301         * page/PagePopupController.idl:
49302         * page/Performance.idl:
49303         * page/PerformanceEntry.idl:
49304         * page/PerformanceEntryList.idl:
49305         * page/PerformanceNavigation.idl:
49306         * page/PerformanceResourceTiming.idl:
49307         * page/PerformanceTiming.idl:
49308         * page/Screen.idl:
49309         * page/SpeechInputEvent.idl:
49310         * page/SpeechInputResult.idl:
49311         * page/SpeechInputResultList.idl:
49312         * page/WebKitAnimation.idl:
49313         * page/WebKitAnimationList.idl:
49314         * page/WebKitPoint.idl:
49315         * page/WorkerNavigator.idl:
49316         * plugins/DOMMimeType.idl:
49317         * plugins/DOMMimeTypeArray.idl:
49318         * plugins/DOMPlugin.idl:
49319         * plugins/DOMPluginArray.idl:
49320         * storage/Storage.idl:
49321         * storage/StorageEvent.idl:
49322         * svg/ElementTimeControl.idl:
49323         * svg/SVGAElement.idl:
49324         * svg/SVGAltGlyphDefElement.idl:
49325         * svg/SVGAltGlyphElement.idl:
49326         * svg/SVGAltGlyphItemElement.idl:
49327         * svg/SVGAngle.idl:
49328         * svg/SVGAnimateColorElement.idl:
49329         * svg/SVGAnimateElement.idl:
49330         * svg/SVGAnimateMotionElement.idl:
49331         * svg/SVGAnimateTransformElement.idl:
49332         * svg/SVGAnimatedAngle.idl:
49333         * svg/SVGAnimatedBoolean.idl:
49334         * svg/SVGAnimatedEnumeration.idl:
49335         * svg/SVGAnimatedInteger.idl:
49336         * svg/SVGAnimatedLength.idl:
49337         * svg/SVGAnimatedLengthList.idl:
49338         * svg/SVGAnimatedNumber.idl:
49339         * svg/SVGAnimatedNumberList.idl:
49340         * svg/SVGAnimatedPreserveAspectRatio.idl:
49341         * svg/SVGAnimatedRect.idl:
49342         * svg/SVGAnimatedString.idl:
49343         * svg/SVGAnimatedTransformList.idl:
49344         * svg/SVGAnimationElement.idl:
49345         * svg/SVGCircleElement.idl:
49346         * svg/SVGClipPathElement.idl:
49347         * svg/SVGColor.idl:
49348         * svg/SVGComponentTransferFunctionElement.idl:
49349         * svg/SVGCursorElement.idl:
49350         * svg/SVGDefsElement.idl:
49351         * svg/SVGDescElement.idl:
49352         * svg/SVGDocument.idl:
49353         * svg/SVGElement.idl:
49354         * svg/SVGElementInstance.idl:
49355         * svg/SVGElementInstanceList.idl:
49356         * svg/SVGEllipseElement.idl:
49357         * svg/SVGException.idl:
49358         * svg/SVGExternalResourcesRequired.idl:
49359         * svg/SVGFEBlendElement.idl:
49360         * svg/SVGFEColorMatrixElement.idl:
49361         * svg/SVGFEComponentTransferElement.idl:
49362         * svg/SVGFECompositeElement.idl:
49363         * svg/SVGFEConvolveMatrixElement.idl:
49364         * svg/SVGFEDiffuseLightingElement.idl:
49365         * svg/SVGFEDisplacementMapElement.idl:
49366         * svg/SVGFEDistantLightElement.idl:
49367         * svg/SVGFEDropShadowElement.idl:
49368         * svg/SVGFEFloodElement.idl:
49369         * svg/SVGFEFuncAElement.idl:
49370         * svg/SVGFEFuncBElement.idl:
49371         * svg/SVGFEFuncGElement.idl:
49372         * svg/SVGFEFuncRElement.idl:
49373         * svg/SVGFEGaussianBlurElement.idl:
49374         * svg/SVGFEImageElement.idl:
49375         * svg/SVGFEMergeElement.idl:
49376         * svg/SVGFEMergeNodeElement.idl:
49377         * svg/SVGFEMorphologyElement.idl:
49378         * svg/SVGFEOffsetElement.idl:
49379         * svg/SVGFEPointLightElement.idl:
49380         * svg/SVGFESpecularLightingElement.idl:
49381         * svg/SVGFESpotLightElement.idl:
49382         * svg/SVGFETileElement.idl:
49383         * svg/SVGFETurbulenceElement.idl:
49384         * svg/SVGFilterElement.idl:
49385         * svg/SVGFilterPrimitiveStandardAttributes.idl:
49386         * svg/SVGFitToViewBox.idl:
49387         * svg/SVGFontElement.idl:
49388         * svg/SVGFontFaceElement.idl:
49389         * svg/SVGFontFaceFormatElement.idl:
49390         * svg/SVGFontFaceNameElement.idl:
49391         * svg/SVGFontFaceSrcElement.idl:
49392         * svg/SVGFontFaceUriElement.idl:
49393         * svg/SVGForeignObjectElement.idl:
49394         * svg/SVGGElement.idl:
49395         * svg/SVGGlyphElement.idl:
49396         * svg/SVGGlyphRefElement.idl:
49397         * svg/SVGGradientElement.idl:
49398         * svg/SVGHKernElement.idl:
49399         * svg/SVGImageElement.idl:
49400         * svg/SVGLangSpace.idl:
49401         * svg/SVGLength.idl:
49402         * svg/SVGLengthList.idl:
49403         * svg/SVGLineElement.idl:
49404         * svg/SVGLinearGradientElement.idl:
49405         * svg/SVGLocatable.idl:
49406         * svg/SVGMPathElement.idl:
49407         * svg/SVGMarkerElement.idl:
49408         * svg/SVGMaskElement.idl:
49409         * svg/SVGMatrix.idl:
49410         * svg/SVGMetadataElement.idl:
49411         * svg/SVGMissingGlyphElement.idl:
49412         * svg/SVGNumber.idl:
49413         * svg/SVGNumberList.idl:
49414         * svg/SVGPaint.idl:
49415         * svg/SVGPathElement.idl:
49416         * svg/SVGPathSeg.idl:
49417         * svg/SVGPathSegArcAbs.idl:
49418         * svg/SVGPathSegArcRel.idl:
49419         * svg/SVGPathSegClosePath.idl:
49420         * svg/SVGPathSegCurvetoCubicAbs.idl:
49421         * svg/SVGPathSegCurvetoCubicRel.idl:
49422         * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
49423         * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
49424         * svg/SVGPathSegCurvetoQuadraticAbs.idl:
49425         * svg/SVGPathSegCurvetoQuadraticRel.idl:
49426         * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
49427         * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
49428         * svg/SVGPathSegLinetoAbs.idl:
49429         * svg/SVGPathSegLinetoHorizontalAbs.idl:
49430         * svg/SVGPathSegLinetoHorizontalRel.idl:
49431         * svg/SVGPathSegLinetoRel.idl:
49432         * svg/SVGPathSegLinetoVerticalAbs.idl:
49433         * svg/SVGPathSegLinetoVerticalRel.idl:
49434         * svg/SVGPathSegList.idl:
49435         * svg/SVGPathSegMovetoAbs.idl:
49436         * svg/SVGPathSegMovetoRel.idl:
49437         * svg/SVGPatternElement.idl:
49438         * svg/SVGPoint.idl:
49439         * svg/SVGPointList.idl:
49440         * svg/SVGPolygonElement.idl:
49441         * svg/SVGPolylineElement.idl:
49442         * svg/SVGPreserveAspectRatio.idl:
49443         * svg/SVGRadialGradientElement.idl:
49444         * svg/SVGRect.idl:
49445         * svg/SVGRectElement.idl:
49446         * svg/SVGRenderingIntent.idl:
49447         * svg/SVGSVGElement.idl:
49448         * svg/SVGScriptElement.idl:
49449         * svg/SVGSetElement.idl:
49450         * svg/SVGStopElement.idl:
49451         * svg/SVGStringList.idl:
49452         * svg/SVGStylable.idl:
49453         * svg/SVGStyleElement.idl:
49454         * svg/SVGSwitchElement.idl:
49455         * svg/SVGSymbolElement.idl:
49456         * svg/SVGTRefElement.idl:
49457         * svg/SVGTSpanElement.idl:
49458         * svg/SVGTests.idl:
49459         * svg/SVGTextContentElement.idl:
49460         * svg/SVGTextElement.idl:
49461         * svg/SVGTextPathElement.idl:
49462         * svg/SVGTextPositioningElement.idl:
49463         * svg/SVGTitleElement.idl:
49464         * svg/SVGTransform.idl:
49465         * svg/SVGTransformList.idl:
49466         * svg/SVGTransformable.idl:
49467         * svg/SVGURIReference.idl:
49468         * svg/SVGUnitTypes.idl:
49469         * svg/SVGUseElement.idl:
49470         * svg/SVGVKernElement.idl:
49471         * svg/SVGViewElement.idl:
49472         * svg/SVGViewSpec.idl:
49473         * svg/SVGZoomAndPan.idl:
49474         * svg/SVGZoomEvent.idl:
49475         * testing/InternalSettings.idl:
49476         * testing/Internals.idl:
49477         * testing/MallocStatistics.idl:
49478         * workers/AbstractWorker.idl:
49479         * workers/DedicatedWorkerContext.idl:
49480         * workers/SharedWorker.idl:
49481         * workers/SharedWorkerContext.idl:
49482         * workers/Worker.idl:
49483         * workers/WorkerContext.idl:
49484         * workers/WorkerLocation.idl:
49485         * xml/DOMParser.idl:
49486         * xml/XMLHttpRequest.idl:
49487         * xml/XMLHttpRequestException.idl:
49488         * xml/XMLHttpRequestProgressEvent.idl:
49489         * xml/XMLHttpRequestUpload.idl:
49490         * xml/XMLSerializer.idl:
49491         * xml/XPathEvaluator.idl:
49492         * xml/XPathException.idl:
49493         * xml/XPathExpression.idl:
49494         * xml/XPathNSResolver.idl:
49495         * xml/XPathResult.idl:
49496         * xml/XSLTProcessor.idl:
49497         Removed "module".
49498
49499 2012-10-11  Beth Dakin  <bdakin@apple.com>
49500
49501         https://bugs.webkit.org/show_bug.cgi?id=98700
49502         ScrollingCoordinator is a hot mess of if-defs
49503
49504         Reviewed by Anders Carlsson.
49505
49506         This patch moves all of the threaded scrolling code in 
49507         ScrollingCoordinator into a new class called ScrollingCoordinatorMac 
49508         which inherits from ScrollingCoordinator. 
49509
49510         It also adds ScrollingCoordinatorChromium to do Chromium-specific work. 
49511         ScrollingCoordinator itself does work that is cross-platform. 
49512         
49513         Finally, this patch also eliminates ScrollingCoordinatorNone. 
49514         ScrollingCoordinator is now sufficient for platforms that relied on 
49515         ScrollingCoordinatorNone to build.
49516
49517         * CMakeLists.txt:
49518         * GNUmakefile.list.am:
49519         * Target.pri:
49520         * WebCore.exp.in:
49521         * WebCore.xcodeproj/project.pbxproj:
49522         * page/scrolling/ScrollingCoordinator.cpp:
49523         (WebCore::ScrollingCoordinator::create):
49524         (WebCore):
49525         (WebCore::ScrollingCoordinator::ScrollingCoordinator):
49526         (WebCore::ScrollingCoordinator::~ScrollingCoordinator):
49527         (WebCore::ScrollingCoordinator::pageDestroyed):
49528         (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion):
49529         (WebCore::ScrollingCoordinator::computeCurrentWheelEventHandlerCount):
49530         (WebCore::ScrollingCoordinator::scrollLayerForFrameView):
49531         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
49532         * page/scrolling/ScrollingCoordinator.h:
49533         (WebCore):
49534         (ScrollingCoordinator):
49535         (WebCore::ScrollingCoordinator::scrollingTree):
49536         (WebCore::ScrollingCoordinator::commitTreeStateIfNeeded):
49537         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
49538         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
49539         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
49540         (WebCore::ScrollingCoordinator::handleWheelEvent):
49541         (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
49542         (WebCore::ScrollingCoordinator::attachToStateTree):
49543         (WebCore::ScrollingCoordinator::detachFromStateTree):
49544         (WebCore::ScrollingCoordinator::clearStateTree):
49545         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
49546         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
49547         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
49548         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
49549         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
49550         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
49551         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
49552         * page/scrolling/ScrollingCoordinatorNone.cpp: Removed.
49553         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
49554         (WebCore::ScrollingCoordinatorChromium::ScrollingCoordinatorChromium):
49555         (WebCore::ScrollingCoordinatorChromium::~ScrollingCoordinatorChromium):
49556         (WebCore::ScrollingCoordinatorChromium::frameViewLayoutUpdated):
49557         (WebCore):
49558         (WebCore::ScrollingCoordinatorChromium::frameViewRootLayerDidChange):
49559         (WebCore::ScrollingCoordinatorChromium::frameViewHorizontalScrollbarLayerDidChange):
49560         (WebCore::ScrollingCoordinatorChromium::frameViewVerticalScrollbarLayerDidChange):
49561         (WebCore::ScrollingCoordinatorChromium::setScrollLayer):
49562         (WebCore::ScrollingCoordinatorChromium::setNonFastScrollableRegion):
49563         (WebCore::ScrollingCoordinatorChromium::setWheelEventHandlerCount):
49564         (WebCore::ScrollingCoordinatorChromium::setShouldUpdateScrollLayerPositionOnMainThread):
49565         (WebCore::ScrollingCoordinatorChromium::setLayerIsContainerForFixedPositionLayers):
49566         (WebCore::ScrollingCoordinatorChromium::setLayerIsFixedToContainerLayer):
49567         (WebCore::ScrollingCoordinatorChromium::scrollableAreaScrollLayerDidChange):
49568         (WebCore::ScrollingCoordinatorChromium::recomputeWheelEventHandlerCountForFrameView):
49569         * page/scrolling/chromium/ScrollingCoordinatorChromium.h: Added.
49570         (WebCore):
49571         (ScrollingCoordinatorChromium):
49572         (WebCore::ScrollingCoordinatorChromium::supportsFixedPositionLayers):
49573         * page/scrolling/mac/ScrollingCoordinatorMac.h: Added.
49574         (WebCore):
49575         (ScrollingCoordinatorMac):
49576         (ScrollParameters):
49577         * page/scrolling/mac/ScrollingCoordinatorMac.mm:
49578         (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
49579         (WebCore::ScrollingCoordinatorMac::~ScrollingCoordinatorMac):
49580         (WebCore::ScrollingCoordinatorMac::pageDestroyed):
49581         (WebCore):
49582         (WebCore::ScrollingCoordinatorMac::scrollingTree):
49583         (WebCore::ScrollingCoordinatorMac::commitTreeStateIfNeeded):
49584         (WebCore::ScrollingCoordinatorMac::frameViewLayoutUpdated):
49585         (WebCore::ScrollingCoordinatorMac::recomputeWheelEventHandlerCountForFrameView):
49586         (WebCore::ScrollingCoordinatorMac::frameViewRootLayerDidChange):
49587         (WebCore::ScrollingCoordinatorMac::frameViewHorizontalScrollbarLayerDidChange):
49588         (WebCore::ScrollingCoordinatorMac::frameViewVerticalScrollbarLayerDidChange):
49589         (WebCore::ScrollingCoordinatorMac::requestScrollPositionUpdate):
49590         (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
49591         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollPositionAndScrollLayerPosition):
49592         (WebCore::ScrollingCoordinatorMac::attachToStateTree):
49593         (WebCore::ScrollingCoordinatorMac::detachFromStateTree):
49594         (WebCore::ScrollingCoordinatorMac::clearStateTree):
49595         (WebCore::ScrollingCoordinatorMac::stateNodeForID):
49596         (WebCore::ScrollingCoordinatorMac::ensureRootStateNodeForFrameView):
49597         (WebCore::ScrollingCoordinatorMac::setScrollLayerForNode):
49598         (WebCore::ScrollingCoordinatorMac::setNonFastScrollableRegionForNode):
49599         (WebCore::ScrollingCoordinatorMac::setScrollParametersForNode):
49600         (WebCore::ScrollingCoordinatorMac::setWheelEventHandlerCountForNode):
49601         (WebCore::ScrollingCoordinatorMac::setShouldUpdateScrollLayerPositionOnMainThread):
49602         (WebCore::ScrollingCoordinatorMac::updateMainFrameScrollLayerPosition):
49603         (WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):
49604         (WebCore::ScrollingCoordinatorMac::scrollingStateTreeCommitterTimerFired):
49605         (WebCore::ScrollingCoordinatorMac::commitTreeState):
49606
49607 2012-10-11  Takashi Sakamoto  <tasak@google.com>
49608
49609         [Shadow DOM] Insertion points need resetStyleInheritance
49610         https://bugs.webkit.org/show_bug.cgi?id=93922
49611
49612         Reviewed by Dimitri Glazkov.
49613
49614         Implemented resetStyleInheritance of insertion points.
49615         Its spec link is http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#api-html-content-element-reset-style-inheritance
49616
49617         Test: fast/dom/shadow/insertion-point-resetStyleInheritance.html
49618
49619         * css/StyleResolver.cpp:
49620         (WebCore::isResetStyleInheritance):
49621         Added a new function to check whether there exists any insertion
49622         point which has reset-style-inhertiance flag set to be true.
49623         (WebCore::StyleResolver::initForStyleResolve):
49624         Modified to use the above function to check reset-style-inheritance.
49625         * html/shadow/HTMLContentElement.idl:
49626         * html/shadow/HTMLShadowElement.idl:
49627         Added a new attribute for reset-style-inheritance.
49628         * html/shadow/InsertionPoint.cpp:
49629         (WebCore::InsertionPoint::InsertionPoint):
49630         Initialized a new member variable for reset-style-inheritance.
49631         (WebCore::InsertionPoint::resetStyleInheritance):
49632         (WebCore::InsertionPoint::setResetStyleInheritance):
49633         Implemented setter/getter for reset-style-inheritance.
49634         * html/shadow/InsertionPoint.h:
49635         (InsertionPoint):
49636         Added a new member variable for reset-style-inheritance.
49637
49638 2012-10-11  Anders Carlsson  <andersca@apple.com>
49639
49640         Attempt to fix build broken by r131125.
49641
49642         * page/PageSerializer.cpp:
49643         (WebCore::PageSerializer::addImageToResources):
49644         KURL::utf8String() is apparently a USE(GOOGLEURL) feature. Call url.string().utf8() instead.
49645
49646 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49647
49648         [Chromium] Use harfbuzz-ng by default on Linux
49649         https://bugs.webkit.org/show_bug.cgi?id=97281
49650
49651         Reviewed by Tony Chang.
49652
49653         Switch old harfbuzz to harfbuzz-ng on chromium linux port.
49654
49655         No new tests. Existing tests should cover this switch.
49656         Test expectations will be updated.
49657
49658         * WebCore.gyp/WebCore.gyp:
49659
49660 2012-10-11  Nat Duca  <nduca@chromium.org>
49661
49662         Expose high-resolution on requestAnimationFrame callback
49663         https://bugs.webkit.org/show_bug.cgi?id=66683
49664
49665         This changes requestAnimationFrame's animationStartTime argument
49666         to be a high resolution DOM timestamp, per disucssion here:
49667         http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html
49668
49669         Reviewed by James Robinson.
49670
49671         Covered by existing requestAnimationFrame tests.
49672
49673         * dom/Document.cpp:
49674         (WebCore::Document::serviceScriptedAnimations):
49675         * dom/Document.h:
49676         (Document):
49677         * dom/ScriptedAnimationController.cpp:
49678         (WebCore::ScriptedAnimationController::ScriptedAnimationController):
49679         (WebCore::ScriptedAnimationController::serviceScriptedAnimations):
49680         (WebCore):
49681         (WebCore::ScriptedAnimationController::windowScreenDidChange):
49682         (WebCore::ScriptedAnimationController::scheduleAnimation):
49683         (WebCore::ScriptedAnimationController::animationTimerFired):
49684         (WebCore::ScriptedAnimationController::displayRefreshFired):
49685         * dom/ScriptedAnimationController.h:
49686         (ScriptedAnimationController):
49687         * page/FrameView.cpp:
49688         (WebCore::FrameView::serviceScriptedAnimations):
49689         * page/FrameView.h:
49690         (FrameView):
49691         * platform/graphics/DisplayRefreshMonitor.cpp:
49692         (WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
49693         (WebCore::DisplayRefreshMonitor::notifyClients):
49694         * platform/graphics/DisplayRefreshMonitor.h:
49695         (DisplayRefreshMonitor):
49696         * platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:
49697         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49698         * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
49699         (WebCore):
49700         (WebCore::DisplayRefreshMonitor::requestRefreshCallback):
49701         (WebCore::DisplayRefreshMonitor::displayLinkFired):
49702
49703 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49704
49705         Unreviewed, rolling out r131100.
49706         http://trac.webkit.org/changeset/131100
49707         https://bugs.webkit.org/show_bug.cgi?id=99127
49708
49709         Caused an ASSERT (Requested by abarth|gardening on #webkit).
49710
49711         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
49712         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
49713
49714 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49715
49716         [Chromium] Improve vertical text rendering of HarfBuzzShaper (Re-land)
49717         https://bugs.webkit.org/show_bug.cgi?id=98979
49718
49719         Reviewed by Tony Chang.
49720
49721         - Specify 'vert' and 'vrt2' features when we render vertical text.
49722         - Set appropriate script so that harfbuzz-ng can use the features.
49723
49724         No new tests. fast/text/international/text-spliced-font.html should cover this change.
49725         This change will affect after switching to harfbuzz-ng.
49726
49727         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49728         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49729         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
49730         (WebCore):
49731         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
49732         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49733         (HarfBuzzNGFace): Added m_scriptForVerticalText.
49734         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49735         (WebCore::HarfBuzzShaper::setFontFeatures):
49736         Set 'vert' and 'vrt2' features when orientation() == Vertical.
49737         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49738         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
49739
49740 2012-10-11  Jay Civelli  <jcivelli@chromium.org>
49741
49742         Fix for a crasher when generating MHTML for a page containing SVG images.
49743         https://bugs.webkit.org/show_bug.cgi?id=99105
49744
49745         Reviewed by Adam Barth.
49746
49747         * page/PageSerializer.cpp:
49748         (WebCore::PageSerializer::serializeCSSStyleSheet):
49749         (WebCore::PageSerializer::addImageToResources):
49750
49751 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49752
49753         Unreviewed, rolling out r131107.
49754         http://trac.webkit.org/changeset/131107
49755         https://bugs.webkit.org/show_bug.cgi?id=99126
49756
49757         Causes an ASSERT (Requested by abarth|gardening on #webkit).
49758
49759         * accessibility/AccessibilityNodeObject.cpp:
49760         (WebCore::AccessibilityNodeObject::labelForElement):
49761         * dom/DocumentOrderedMap.cpp:
49762         * dom/DocumentOrderedMap.h:
49763         (DocumentOrderedMap):
49764         * dom/Element.cpp:
49765         (WebCore::Element::insertedInto):
49766         (WebCore::Element::removedFrom):
49767         (WebCore):
49768         (WebCore::Element::willModifyAttribute):
49769         * dom/Element.h:
49770         (Element):
49771         * dom/TreeScope.cpp:
49772         (WebCore::TreeScope::TreeScope):
49773         * dom/TreeScope.h:
49774         (WebCore):
49775         (TreeScope):
49776
49777 2012-10-11  Tim Horton  <timothy_horton@apple.com>
49778
49779         LocalCurrentGraphicsContext will never restore the current context to null
49780         https://bugs.webkit.org/show_bug.cgi?id=99122
49781
49782         Reviewed by Simon Fraser.
49783
49784         LocalCurrentGraphicsContext is meant to cause temporary changes to
49785         NSGraphicsContext's currentContext. However, if it is entered when
49786         currentContext is null, it will not restore to null, as a null
49787         m_savedNSGraphicsContext was being used to indicate that the current and
49788         passed-in graphics contexts were equal (and thus no save/restore was required).
49789
49790         Add a separate flag for whether or not we need to restore the context.
49791
49792         Also flip the order of calls to restore graphics context state so that
49793         exiting LocalCurrentGraphicsContext does things in exactly the opposite
49794         of entry.
49795
49796         * platform/mac/LocalCurrentGraphicsContext.h:
49797         (LocalCurrentGraphicsContext):
49798         * platform/mac/LocalCurrentGraphicsContext.mm:
49799         (WebCore::LocalCurrentGraphicsContext::LocalCurrentGraphicsContext):
49800         (WebCore::LocalCurrentGraphicsContext::~LocalCurrentGraphicsContext):
49801
49802 2012-10-11  Sheriff Bot  <webkit.review.bot@gmail.com>
49803
49804         Unreviewed, rolling out r131109.
49805         http://trac.webkit.org/changeset/131109
49806         https://bugs.webkit.org/show_bug.cgi?id=99124
49807
49808         Does not compile on chromium-mac (Requested by
49809         abarth|gardening on #webkit).
49810
49811         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49812         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49813         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49814         (HarfBuzzNGFace):
49815         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49816         (WebCore::HarfBuzzShaper::setFontFeatures):
49817         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49818
49819 2012-10-11  Beth Dakin  <bdakin@apple.com>
49820
49821         https://bugs.webkit.org/show_bug.cgi?id=99111
49822         ScrollingStateNode should keep its Vector of children in an OwnPtr
49823
49824         Reviewed by Ada Chan.
49825
49826         Vector<OwnPtr<ScrollingStateNode> >* m_children; is now:
49827          OwnPtr<Vector<OwnPtr<ScrollingStateNode> > > m_children;
49828         * page/scrolling/ScrollingStateNode.cpp:
49829         (WebCore::ScrollingStateNode::ScrollingStateNode):
49830         (WebCore::ScrollingStateNode::~ScrollingStateNode):
49831         (WebCore::ScrollingStateNode::appendChild):
49832         * page/scrolling/ScrollingStateNode.h:
49833         (ScrollingStateNode):
49834
49835 2012-10-11  Levi Weintraub  <leviw@chromium.org>
49836
49837         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
49838         https://bugs.webkit.org/show_bug.cgi?id=98571
49839
49840         Reviewed by Emil A Eklund.
49841
49842         Refactoring all coordinate-switching functionality to use a single "mode" flag
49843         as opposed to having a bunch of boolean values. This enables the same set of
49844         options across the board, and a consistent interface. This was previously
49845         done for mapLocalToContainer.
49846
49847         The imptetus for this for this stems from the one logical change in this patch
49848         which only effects sub-pixel layout. FrameView::convertToRenderer and
49849         convertFromRenderer return IntPoint coordinates, and need to also snap transform
49850         offsets to determine proper rects for scrolling.
49851
49852         Unlabeled functions below are simply being updated to these new interfaces.
49853
49854         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
49855
49856         * WebCore.exp.in:
49857         * dom/ContainerNode.cpp:
49858         (WebCore::ContainerNode::getUpperLeftCorner):
49859         (WebCore::ContainerNode::getLowerRightCorner):
49860         * dom/Element.cpp:
49861         (WebCore::Element::boundsInRootViewSpace):
49862         * dom/MouseRelatedEvent.cpp:
49863         (WebCore::MouseRelatedEvent::computeRelativePosition):
49864         * dom/Node.cpp:
49865         (WebCore::Node::convertToPage):
49866         (WebCore::Node::convertFromPage):
49867         * html/HTMLSelectElement.cpp:
49868         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
49869         * html/shadow/SliderThumbElement.cpp:
49870         (WebCore::SliderThumbElement::setPositionFromPoint):
49871         * html/shadow/SpinButtonElement.cpp:
49872         (WebCore::SpinButtonElement::defaultEventHandler):
49873         * page/FrameView.cpp:
49874         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
49875         them to TransformState, which transforms the coordinates.
49876         (WebCore::FrameView::convertFromRenderer): Ditto.
49877         * rendering/LayoutState.cpp:
49878         (WebCore::LayoutState::LayoutState):
49879         * rendering/RenderBlock.cpp:
49880         (WebCore::RenderBlock::absoluteQuads):
49881         * rendering/RenderBox.cpp:
49882         (WebCore::RenderBox::absoluteQuads):
49883         (WebCore::RenderBox::mapLocalToContainer):
49884         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
49885         * rendering/RenderBox.h:
49886         (RenderBox):
49887         * rendering/RenderBoxModelObject.cpp:
49888         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
49889         * rendering/RenderBoxModelObject.h:
49890         (RenderBoxModelObject):
49891         * rendering/RenderEmbeddedObject.cpp:
49892         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
49893         * rendering/RenderFrameSet.cpp:
49894         (WebCore::RenderFrameSet::userResize):
49895         * rendering/RenderGeometryMap.cpp:
49896         (WebCore::RenderGeometryMap::absolutePoint):
49897         * rendering/RenderInline.cpp:
49898         (WebCore::RenderInline::mapLocalToContainer):
49899         * rendering/RenderInline.h:
49900         (RenderInline):
49901         * rendering/RenderLayer.cpp:
49902         (WebCore::RenderLayer::absoluteToContents):
49903         (WebCore::RenderLayer::calculateClipRects):
49904         * rendering/RenderMediaControls.cpp:
49905         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
49906         * rendering/RenderMenuList.cpp:
49907         (WebCore::RenderMenuList::showPopup):
49908         * rendering/RenderObject.cpp:
49909         (WebCore::RenderObject::localToAbsolute):
49910         (WebCore::RenderObject::absoluteToLocal):
49911         (WebCore::RenderObject::mapLocalToContainer):
49912         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
49913         (WebCore::RenderObject::localToContainerQuad):
49914         (WebCore::RenderObject::localToContainerPoint):
49915         * rendering/RenderObject.h:
49916         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
49917         now used for other conversion methods.
49918         (WebCore::RenderObject::localToAbsoluteQuad):
49919         * rendering/RenderTheme.cpp:
49920         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
49921         * rendering/RenderView.cpp:
49922         (WebCore::RenderView::mapLocalToContainer):
49923         (WebCore::RenderView::mapAbsoluteToLocalPoint):
49924         * rendering/RenderView.h:
49925         (RenderView):
49926         * rendering/svg/RenderSVGForeignObject.cpp:
49927         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
49928         * rendering/svg/RenderSVGForeignObject.h:
49929         (RenderSVGForeignObject):
49930         * rendering/svg/RenderSVGInline.cpp:
49931         (WebCore::RenderSVGInline::mapLocalToContainer):
49932         * rendering/svg/RenderSVGInline.h:
49933         (RenderSVGInline):
49934         * rendering/svg/RenderSVGModelObject.cpp:
49935         (WebCore::RenderSVGModelObject::mapLocalToContainer):
49936         * rendering/svg/RenderSVGModelObject.h:
49937         (RenderSVGModelObject):
49938         * rendering/svg/RenderSVGRoot.cpp:
49939         (WebCore::RenderSVGRoot::mapLocalToContainer):
49940         * rendering/svg/RenderSVGRoot.h:
49941         (RenderSVGRoot):
49942         * rendering/svg/RenderSVGText.cpp:
49943         (WebCore::RenderSVGText::mapLocalToContainer):
49944         * rendering/svg/RenderSVGText.h:
49945         (RenderSVGText):
49946         * rendering/svg/SVGRenderSupport.cpp:
49947         (WebCore::SVGRenderSupport::mapLocalToContainer):
49948         * svg/SVGSVGElement.cpp:
49949         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
49950
49951 2012-10-11  Adam Barth  <abarth@webkit.org>
49952
49953         Incorrect/Illegal static cast in FrameView.cpp
49954         https://bugs.webkit.org/show_bug.cgi?id=98943
49955
49956         Reviewed by Eric Seidel.
49957
49958         HTMLFrameElementBase is the common base class for <frame> and <iframe>.
49959
49960         * page/FrameView.cpp:
49961         (WebCore::FrameView::init):
49962
49963 2012-10-11  Kenichi Ishibashi  <bashi@chromium.org>
49964
49965         [Chromium] Improve vertical text rendering of HarfBuzzShaper
49966         https://bugs.webkit.org/show_bug.cgi?id=98979
49967
49968         Reviewed by Tony Chang.
49969
49970         - Specify 'vert' and 'vrt2' features when we render vertical text.
49971         - Set appropriate script so that harfbuzz-ng can use the features.
49972
49973         No new tests. fast/text/international/text-spliced-font.html should cover this change.
49974         This change will affect after switching to harfbuzz-ng.
49975
49976         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
49977         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
49978         (WebCore::findScriptForVerticalGlyphSubstitution): Added.
49979         (WebCore):
49980         (WebCore::HarfBuzzNGFace::setScriptForVerticalGlyphSubstitution): Added.
49981         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.h:
49982         (HarfBuzzNGFace): Added m_scriptForVerticalText.
49983         * platform/graphics/harfbuzz/ng/HarfBuzzShaper.cpp:
49984         (WebCore::HarfBuzzShaper::setFontFeatures):
49985         Set 'vert' and 'vrt2' features when orientation() == Vertical.
49986         (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns):
49987         Call setScriptForVerticalGlyphSubstitution() when orientation() == Vertical.
49988
49989 2012-10-11  Dominic Mazzoni  <dmazzoni@google.com>
49990
49991         AX: labelForElement is slow when there are a lot of DOM elements
49992         https://bugs.webkit.org/show_bug.cgi?id=97825
49993
49994         Reviewed by Ryosuke Niwa.
49995
49996         Adds a DocumentOrderedMap to TreeScope that allows accessibility to
49997         quickly map from an id to the label for that id. This speeds up
49998         AccessibilityNode::labelForElement, which was a bottleneck in Chromium
49999         when accessibility was on.
50000
50001         Tests: accessibility/title-ui-element-correctness.html
50002                perf/accessibility-title-ui-element.html
50003
50004         * accessibility/AccessibilityNodeObject.cpp:
50005         (WebCore::AccessibilityNodeObject::labelForElement):
50006         * dom/DocumentOrderedMap.cpp:
50007         (WebCore::keyMatchesLabelForAttribute):
50008         (WebCore):
50009         (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
50010         * dom/DocumentOrderedMap.h:
50011         (DocumentOrderedMap):
50012         * dom/Element.cpp:
50013         (WebCore::Element::insertedInto):
50014         (WebCore::Element::removedFrom):
50015         (WebCore::Element::updateLabel):
50016         (WebCore):
50017         (WebCore::Element::willModifyAttribute):
50018         * dom/Element.h:
50019         (Element):
50020         * dom/TreeScope.cpp:
50021         (WebCore::TreeScope::TreeScope):
50022         (WebCore::TreeScope::addLabel):
50023         (WebCore):
50024         (WebCore::TreeScope::removeLabel):
50025         (WebCore::TreeScope::labelElementForId):
50026         * dom/TreeScope.h:
50027         (WebCore):
50028         (TreeScope):
50029         (WebCore::TreeScope::shouldCacheLabelsByForAttribute):
50030
50031 2012-10-11  James Simonsen  <simonjam@chromium.org>
50032
50033         unprefix window.performance.webkitNow()
50034         https://bugs.webkit.org/show_bug.cgi?id=88278
50035
50036         Reviewed by Tony Gentilcore.
50037
50038         Test: fast/dom/Window/window-properties-performance.html
50039               fast/performance/performance-now-timestamps.html
50040
50041         * page/Performance.cpp:
50042         (WebCore::Performance::now):
50043         * page/Performance.h:
50044         (Performance):
50045         * page/Performance.idl:
50046
50047 2012-10-11  Roger Fong  <roger_fong@apple.com>
50048
50049         [WebGL] [Mac] only the mapped symbol for the first element of a uniform/attribute array is stored.
50050         https://bugs.webkit.org/show_bug.cgi?id=98966
50051
50052         Reviewed by Dean Jackson.
50053
50054         We currently do not add name/mappedName symbol pairs for each element of a uniform/attribute array.
50055         This is because we only add a number of symbols equal to how many symbols the shader compiler tells us there are.
50056         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.
50057         The mappedName of each array element is the same between elements except for the "[index]" at the end so this is easy to do.
50058
50059         Tested using Khronos WebGL conformance suite:
50060         conformance/glsl/misc/glsl-long-variable-names.html
50061
50062         * platform/graphics/ANGLEWebKitBridge.cpp:
50063         (WebCore::getSymbolInfo):
50064
50065 2012-10-11  Andreas Kling  <kling@webkit.org>
50066
50067         ElementAttributeData shouldn't be managing Element's callbacks.
50068         <http://webkit.org/b/98987>
50069
50070         Reviewed by Anders Carlsson.
50071
50072         Dispatch the following attribute-related Element callbacks from within Element
50073         instead of ElementAttributeData. Also made them private.
50074
50075             - willModifyAttribute
50076             - didModifyAttribute
50077             - didAddAttribute
50078             - didRemoveAttribute
50079
50080         No behavior change, just making ElementAttributeData a bit dumber (a good thing.)
50081
50082         * dom/Element.cpp:
50083         (WebCore::Element::detachAttribute):
50084         (WebCore::Element::removeAttribute):
50085         (WebCore::Element::setAttributeInternal):
50086         (WebCore::Element::removeAttributeInternal):
50087         (WebCore::Element::addAttributeInternal):
50088         * dom/Element.h:
50089         * dom/ElementAttributeData.cpp:
50090         (WebCore::ElementAttributeData::addAttribute):
50091         (WebCore::ElementAttributeData::removeAttribute):
50092         * dom/ElementAttributeData.h:
50093
50094 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50095
50096         [CSS Shaders] Make custom filters use a premultiplied buffer.
50097         https://bugs.webkit.org/show_bug.cgi?id=98396
50098
50099         Reviewed by Dean Jackson.
50100
50101         Currently, a GLSL css_Composite function returns a premultiplied color, so
50102         FECustomFilter must make a premultiplied buffer in the case when an author is
50103         using the CSS mix function.
50104
50105         In addition, there are two performance benefits when FECustomFilter uses a premultiplied buffer.
50106         1. FilterEffect::asImageBuffer is faster.
50107         2. In the future when Accelerated Compositing implementations use
50108         FECustomFilter, they do not need to convert an unmultiplied buffer to a
50109         premultiplied buffer.
50110
50111         Test: css3/filters/custom/custom-filter-composite-fractional-source-alpha.html
50112
50113         * platform/graphics/filters/FECustomFilter.cpp:
50114         (WebCore::FECustomFilter::applyShader):
50115
50116 2012-10-11  Rob Buis  <rbuis@rim.com>
50117
50118         [CMAKE] Do not add include dirs twice
50119         https://bugs.webkit.org/show_bug.cgi?id=99099
50120
50121         Reviewed by Yong Li.
50122
50123         Do not add WebCore_INCLUDE_DIRECTORIES to WebCoreTestSupport_INCLUDE_DIRECTORIES, the includes_directory
50124         call does this for us.
50125
50126         * CMakeLists.txt:
50127
50128 2012-10-11  Huang Dongsung  <luxtella@company100.net>
50129
50130         [CSS Shaders] Implement all composite operators except destination and lighter.
50131         https://bugs.webkit.org/show_bug.cgi?id=97859
50132
50133         Reviewed by Dean Jackson.
50134
50135         Add expressions for all composite operators except destination and
50136         lighter. The expressions are lifted directly from the CSS Compositing
50137         and Blending spec [1]. WebKit adds these compositing expressions to the
50138         author's shader.
50139
50140         [1]: https://dvcs.w3.org/hg/FXTF/rawfile/tip/compositing/index.html#advancedcompositing
50141
50142         Test: css3/filters/custom/custom-filter-composite-operators.html
50143
50144         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
50145         (WebCore::CustomFilterValidatedProgram::compositeFunctionString):
50146
50147 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50148
50149         IndexedDB: IDL types defined in spec should be visible to scripts
50150         https://bugs.webkit.org/show_bug.cgi?id=99093
50151
50152         Reviewed by Adam Barth.
50153
50154         Interfaces defined in the spec WebIDL, such as IDBCursorWithValue, should be exposed
50155         to scripts as properties of the global object. A few types were missing - add them.
50156
50157         Test: storage/indexeddb/interfaces.html
50158
50159         * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
50160         * Modules/indexeddb/WorkerContextIndexedDatabase.idl:
50161
50162 2012-10-11  Geoffrey Garen  <ggaren@apple.com>
50163
50164         Removed ASSERT_CLASS_FITS_IN_CELL
50165         https://bugs.webkit.org/show_bug.cgi?id=97634
50166
50167         Reviewed by Mark Hahnenberg.
50168
50169         * bindings/js/JSDOMWindowShell.cpp:
50170         (WebCore):
50171         * bindings/js/JSImageConstructor.cpp:
50172         (WebCore):
50173         * bindings/js/JSNodeFilterCondition.cpp:
50174         (WebCore):
50175         * bindings/js/JSWorkerContextBase.cpp:
50176         (WebCore):
50177         * bindings/scripts/CodeGeneratorJS.pm:
50178         (GenerateImplementation):
50179         * bindings/scripts/test/JS/JSFloat64Array.cpp:
50180         (WebCore):
50181         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
50182         (WebCore):
50183         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
50184         (WebCore):
50185         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
50186         (WebCore):
50187         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
50188         (WebCore):
50189         * bindings/scripts/test/JS/JSTestException.cpp:
50190         (WebCore):
50191         * bindings/scripts/test/JS/JSTestInterface.cpp:
50192         (WebCore):
50193         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
50194         (WebCore):
50195         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
50196         (WebCore):
50197         * bindings/scripts/test/JS/JSTestNode.cpp:
50198         (WebCore):
50199         * bindings/scripts/test/JS/JSTestObj.cpp:
50200         (WebCore):
50201         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
50202         (WebCore):
50203         * bridge/runtime_method.cpp:
50204         (JSC):
50205
50206 2012-10-10  Brady Eidson  <beidson@apple.com>
50207
50208         Switch ResourceLoader::resourceData() from SharedBuffer to ResourceBuffer
50209         https://bugs.webkit.org/show_bug.cgi?id=98976
50210
50211         Reviewed by Anders Carlsson.
50212
50213         No new tests (No change in behavior).
50214
50215         * WebCore.exp.in:
50216         * html/ImageDocument.cpp:
50217         (WebCore::ImageDocumentParser::appendBytes):
50218         (WebCore::ImageDocumentParser::finish):
50219         * inspector/InspectorPageAgent.cpp:
50220         (WebCore::InspectorPageAgent::mainResourceContent):
50221         (WebCore::InspectorPageAgent::sharedBufferContent):
50222         (WebCore):
50223         (WebCore::InspectorPageAgent::dataContent):
50224         * inspector/InspectorPageAgent.h:
50225         * inspector/InspectorResourceAgent.cpp:
50226         (WebCore::InspectorResourceAgent::didFinishLoading):
50227         (WebCore::InspectorResourceAgent::didFailLoading):
50228         * loader/DocumentLoader.cpp:
50229         (WebCore::DocumentLoader::mainResourceData):
50230         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
50231         (WebCore::DocumentLoader::maybeCreateArchive):
50232         (WebCore::DocumentLoader::mainResource):
50233         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent):
50234         * loader/DocumentLoader.h:
50235         (WebCore):
50236         (DocumentLoader):
50237         * loader/ResourceBuffer.cpp:
50238         (WebCore::ResourceBuffer::append):
50239         (WebCore):
50240         (WebCore::ResourceBuffer::clear):
50241         * loader/ResourceBuffer.h:
50242         (ResourceBuffer):
50243         * loader/ResourceLoader.cpp:
50244         (WebCore::ResourceLoader::resourceData):
50245         (WebCore::ResourceLoader::addData):
50246         (WebCore::ResourceLoader::willStopBufferingData):
50247         * loader/ResourceLoader.h:
50248         (WebCore):
50249         (ResourceLoader):
50250         * loader/SubresourceLoader.cpp:
50251         (WebCore::SubresourceLoader::didReceiveResponse):
50252         (WebCore::SubresourceLoader::sendDataToResource):
50253         (WebCore::SubresourceLoader::didFinishLoading):
50254         * loader/appcache/ApplicationCacheGroup.cpp:
50255         (WebCore::ApplicationCacheGroup::finishedLoadingMainResource):
50256
50257 2012-10-11  Konrad Piascik  <kpiascik@rim.com>
50258
50259         Web Inspector: node search does not work with elements on touch start listener
50260         https://bugs.webkit.org/show_bug.cgi?id=95252
50261
50262         Reviewed by Pavel Feldman.
50263
50264         Added new InspectorInstrumentation::handleTouchEvent() method which
50265         will prevent a touch handler from firing and inspect and element if we
50266         are already searching for a node to highlight.
50267         Now when a user has chosen to inspect element (magnifying glass icon)
50268         and touches on a page the event will be directed to inspector and
50269         handled appropriately.
50270
50271         Not testable.
50272
50273         * inspector/InspectorDOMAgent.cpp:
50274         (WebCore::InspectorDOMAgent::handleTouchEvent):
50275         (WebCore):
50276         * inspector/InspectorDOMAgent.h:
50277         (InspectorDOMAgent):
50278         * inspector/InspectorInstrumentation.cpp:
50279         (WebCore):
50280         (WebCore::InspectorInstrumentation::handleTouchEventImpl):
50281         * inspector/InspectorInstrumentation.h:
50282         (InspectorInstrumentation):
50283         (WebCore::InspectorInstrumentation::handleTouchEvent):
50284         (WebCore):
50285         * page/EventHandler.cpp:
50286         (WebCore::EventHandler::handleTouchEvent):
50287
50288 2012-10-11  Otto Derek Cheung  <otcheung@rim.com>
50289
50290         [BlackBerry] Credentials for HTTPS urls are saved in the HTTP protection space
50291         https://bugs.webkit.org/show_bug.cgi?id=99082
50292
50293         Reviewed by Rob Buis.
50294
50295         Adding support for secure ProtectionSpaces in Credentials
50296         to prevent credentials from being overwritten/used when the user
50297         accesses both versions of the same url.
50298
50299         PR 199457
50300
50301         The issue was the secure/non-secure version of the same protocol
50302         were using the same ProtectionSpace enum in the network stack. When
50303         the credentials are saved, it will overwrite each other since the
50304         protection object is identical.
50305
50306         The fix is to use the WebKit provided secure enums when the protcol is secure.
50307
50308         To test this, access a restricted site that is running on http. Save the
50309         password and access the same restricted site (same domain
50310         and path) but on https. The browser should prompt for credentials.
50311
50312         * platform/network/blackberry/NetworkJob.cpp:
50313         (WebCore::NetworkJob::notifyAuthReceived):
50314         (WebCore::NetworkJob::handleFTPHeader):
50315         (WebCore::NetworkJob::sendRequestWithCredentials):
50316         (WebCore::NetworkJob::storeCredentials):
50317         * platform/network/blackberry/NetworkManager.cpp:
50318         (WebCore::NetworkManager::startJob):
50319
50320 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50321
50322         [texmap] logic error in BitmapTextureGL::updateContents
50323         https://bugs.webkit.org/show_bug.cgi?id=98969
50324
50325         Reviewed by Noam Rosenthal.
50326
50327         Incorrect test (bytesPerLine == targetRect.width() / 4) never
50328         evaluates to true. Change it to correct test 
50329         (bytesPerLine == targetRect.width() * 4)
50330
50331         No new tests because no functional change.
50332
50333         * platform/graphics/texmap/TextureMapperGL.cpp:
50334         (WebCore::BitmapTextureGL::updateContents):
50335
50336 2012-10-11  Dan Bernstein  <mitz@apple.com>
50337
50338         <rdar://problem/12477191> Combined text reverts to full-width font after a style change
50339         https://bugs.webkit.org/show_bug.cgi?id=99009
50340
50341         Reviewed by John Sullivan.
50342
50343         Test: fast/text/text-combine-width-after-style-change.html
50344
50345         * rendering/RenderCombineText.cpp:
50346         (WebCore::RenderCombineText::styleDidChange): Changed to reset m_isCombined to false, to
50347         ensure that combineText() is called on the next layout.
50348
50349 2012-10-11  Arnaud Renevier  <a.renevier@sisa.samsung.com>
50350
50351         accelerated compositing does not work with ati driver
50352         https://bugs.webkit.org/show_bug.cgi?id=97472
50353
50354         Reviewed by Martin Robinson.
50355
50356         Create m_parentWindow at positive position. Otherwise, parts of it are
50357         not displayed on ati drivers.
50358
50359         Covered by existing tests.
50360
50361         * platform/gtk/RedirectedXCompositeWindow.cpp:
50362         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
50363
50364 2012-10-11  Jaehun Lim  <ljaehun.lim@samsung.com>
50365
50366         Fix JPEG decoding faiure when IMAGE_DECODER_DOWN_SAMPLING is enabled
50367         https://bugs.webkit.org/show_bug.cgi?id=98878
50368
50369         Reviewed by Kenneth Russell.
50370
50371         When using libjpeg-turbo and enabling IMAGE_DECODER_DOWN_SAMPLING,
50372         JPEG decoding failed because of no support for JCS_EXT_RGBA, JCS_EXT_BGRA.
50373         Set RGBA values when color space is JCS_EXT_RGBA or JCS_EXT_BGRA.
50374
50375         No new tests.
50376
50377         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
50378         (WebCore::JPEGImageDecoder::outputScanlines):
50379
50380 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50381
50382         Web Inspector: Preview HTML in ajax responses in network panel
50383         https://bugs.webkit.org/show_bug.cgi?id=99066
50384
50385         Reviewed by Yury Semikhatsky.
50386
50387         HTML preview is now shown for XHR responses with text/html mime types.
50388         Also RequestHTMLView is refactored to use sandbox iframe correctly.
50389         Also extracted a method to generate dataURL from resource/request content.
50390
50391         * inspector/front-end/NetworkRequest.js:
50392         (WebInspector.NetworkRequest):
50393         (WebInspector.NetworkRequest.prototype.populateImageSource):
50394         (WebInspector.NetworkRequest.prototype.asDataURL):
50395         * inspector/front-end/RequestHTMLView.js:
50396         (WebInspector.RequestHTMLView):
50397         (WebInspector.RequestHTMLView.prototype._createIFrame):
50398         * inspector/front-end/RequestPreviewView.js:
50399         (WebInspector.RequestPreviewView.prototype._createPreviewView):
50400         * inspector/front-end/Resource.js:
50401         (WebInspector.Resource.prototype.populateImageSource):
50402         * inspector/front-end/ResourceUtils.js:
50403         (WebInspector.contentAsDataURL):
50404
50405 2012-10-11  Christophe Dumez  <christophe.dumez@intel.com>
50406
50407         Regression(r131058): Broke EFL build
50408         https://bugs.webkit.org/show_bug.cgi?id=99079
50409
50410         Unreviewed build fix.
50411
50412         Use iterator::value instead of iterator::second to fix
50413         build break after r131058.
50414
50415         * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
50416         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50417
50418 2012-10-11  Mihai Balan  <mibalan@adobe.com>
50419
50420         Always enable the experiments tab for WebKit nightly
50421
50422         Web Inspector: Enabling experiments tab in WebKit nightly.
50423         https://bugs.webkit.org/show_bug.cgi?id=98923
50424
50425         Reviewed by Pavel Feldman.
50426
50427         Enabling Web Inspector experiments tab in WebKit nightly. This is done by adding a new
50428         Preference key, Preferences.experimentsEnabled. Default values are true for WebKit and false
50429         for Chromium. They can also be overridden as before (in Chromium)
50430
50431         * inspector/front-end/Settings.js:
50432         (WebInspector.ExperimentsSettings.prototype.get experimentsEnabled):
50433
50434 2012-10-11  Hayato Ito  <hayato@chromium.org>
50435
50436         Support re-projection for Shadow DOM.
50437         https://bugs.webkit.org/show_bug.cgi?id=97151
50438
50439         Reviewed by Dimitri Glazkov.
50440
50441         Update node distribution algorithm so that nodes can be re-projected to insertion points
50442         in nested shadow subtree.
50443
50444         See the latest Shadow DOM spec for what 're-projected' means:
50445         - http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html
50446         Also see the related W3C bug:
50447         - http://www.w3.org/Bugs/Public/show_bug.cgi?id=18513
50448
50449         Since this change breaks existing behavior, we have to update several code at once, which includes:
50450         - ContentDistributer: ContentDistributor now re-projects distributed nodes.
50451         - ComposedShadowTreeWalker: ComposedShadowTreeWalker is now aware of re-projection. That can
50452           resolve re-projection transparently.
50453         - AncestorChainWalker (formerly named ComposedShadowTreeParentWallker):
50454           AncestorChainWalker is now aware of re-projection. I've also added a crossingInsertionPoint()
50455           member function so that clients of the walker can know whether the walker is just crossing
50456           insertion points for a re-projected node.
50457         - EventDispatcher: EventDispatcher now uses the updated AncestorChainWalker and its
50458           crossingInsertionPoint() so that EventDispatcher can compute relative target for each ancestor correctly.
50459
50460         I've also updated existing layout tests and added some layout tests for re-projection.
50461         Re-projection for multiple shadow root is not supported yet. I'll address that in another bug.
50462
50463         Tests: fast/dom/shadow/composed-shadow-tree-walker.html
50464                fast/dom/shadow/shadow-dom-event-dispatching.html
50465                fast/dom/shadow/shadowdom-reprojection-1.html
50466                fast/dom/shadow/shadowdom-reprojection-2.html
50467
50468         * dom/ComposedShadowTreeWalker.cpp:
50469         (WebCore::resolveReprojection):
50470         (WebCore):
50471         (WebCore::ComposedShadowTreeWalker::traverseSiblingOrBackToInsertionPoint):
50472         (WebCore::ComposedShadowTreeWalker::traverseParent):
50473         (WebCore::AncestorChainWalker::AncestorChainWalker):
50474         (WebCore::AncestorChainWalker::parent):
50475         * dom/ComposedShadowTreeWalker.h:
50476         (AncestorChainWalker):
50477         (WebCore::AncestorChainWalker::crossingInsertionPoint):
50478         * dom/EventDispatcher.cpp:
50479         (WebCore::EventRelatedTargetAdjuster::adjust):
50480         (WebCore::EventDispatcher::ensureEventAncestors):
50481         * dom/TreeScope.cpp:
50482         (WebCore::TreeScope::focusedNode):
50483         * html/HTMLLIElement.cpp:
50484         (WebCore::HTMLLIElement::attach):
50485         * html/shadow/ContentDistributor.cpp:
50486         (WebCore::ContentDistributor::distribute):
50487         * page/EventHandler.cpp:
50488         (WebCore::EventHandler::updateMouseEventTargetNode):
50489
50490 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50491
50492         Make ContentSelectorQuery work when siblings are passed explicitly.
50493         https://bugs.webkit.org/show_bug.cgi?id=96990
50494
50495         Reviewed by Dimitri Glazkov.
50496
50497         When we implement content reprojection in ShadowDOM, we have to pass a node pool to SelectorChecker.
50498         We introdue ShadowDOMSiblingTraversalStrategy, which traverses a node pool instead of real node siblings.
50499
50500         Since ContentSelector is a very hot place, we don't want to regress performance. In the previous patch,
50501         we've make ContentSelector::checkOneSelector template to take SiblingTraversalStrategy as an argument.
50502
50503         We also move DOMSiblingTraversalStrategy to SiblingTraversalStrategies.h.
50504
50505         * GNUmakefile.list.am:
50506         * Target.pri:
50507         * WebCore.gypi:
50508         * WebCore.vcproj/WebCore.vcproj:
50509         * WebCore.xcodeproj/project.pbxproj:
50510         * css/SelectorChecker.cpp:
50511         (WebCore):
50512         * css/SelectorChecker.h:
50513         * css/SiblingTraversalStrategies.h: Added.
50514         (WebCore):
50515         (DOMSiblingTraversalStrategy): Moved from SelectorChecker.
50516         (WebCore::DOMSiblingTraversalStrategy::isFirstChild):
50517         (WebCore::DOMSiblingTraversalStrategy::isLastChild):
50518         (WebCore::DOMSiblingTraversalStrategy::isFirstOfType):
50519         (WebCore::DOMSiblingTraversalStrategy::isLastOfType):
50520         (WebCore::DOMSiblingTraversalStrategy::countElementsBefore):
50521         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50522         (WebCore::DOMSiblingTraversalStrategy::countElementsAfter):
50523         (WebCore::DOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50524         (WebCore::ShadowDOMSiblingTraversalStrategy::ShadowDOMSiblingTraversalStrategy):
50525         (ShadowDOMSiblingTraversalStrategy): SiblingTraversalStrategy which uses a node pool instead of a real element
50526         siblings. This strategy takes a vector of node which we traverse.
50527         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstChild):
50528         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastChild):
50529         (WebCore::ShadowDOMSiblingTraversalStrategy::isFirstOfType):
50530         (WebCore::ShadowDOMSiblingTraversalStrategy::isLastOfType):
50531         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsBefore):
50532         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsAfter):
50533         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeBefore):
50534         (WebCore::ShadowDOMSiblingTraversalStrategy::countElementsOfTypeAfter):
50535         * css/StyleResolver.cpp:
50536         * html/shadow/ContentDistributor.cpp:
50537         (WebCore::ContentDistributor::distributeSelectionsTo):
50538         * html/shadow/ContentSelectorQuery.cpp: Uses ShadowDOMSiblingTraversalStrategy instead of DOMSiblingTraversalStrategy.
50539         (WebCore::ContentSelectorChecker::ContentSelectorChecker):
50540         (WebCore):
50541         (WebCore::ContentSelectorChecker::checkContentSelector):
50542         (WebCore::ContentSelectorDataList::initialize):
50543         (WebCore::ContentSelectorDataList::matches):
50544         (WebCore::ContentSelectorQuery::ContentSelectorQuery):
50545         (WebCore::ContentSelectorQuery::matches):
50546         * html/shadow/ContentSelectorQuery.h:
50547         (ContentSelectorChecker):
50548         (WebCore):
50549         (ContentSelectorDataList):
50550         (ContentSelectorQuery):
50551
50552 2012-10-11  Balazs Kelemen  <kbalazs@webkit.org>
50553
50554         [Qt] GraphicsContextPlatformPrivate is leaking it's ShadowBlur
50555         https://bugs.webkit.org/show_bug.cgi?id=99073
50556
50557         Reviewed by Noam Rosenthal.
50558
50559         Stop leaking GraphicsContextPlatformPrivate::shadow.
50560
50561         No change in behavior so no new tests.
50562
50563         * platform/graphics/qt/GraphicsContextQt.cpp:
50564         (WebCore::GraphicsContextPlatformPrivate::~GraphicsContextPlatformPrivate):
50565         Always destroy shadow. It is obviously owned by the context so it has
50566         nothing to do with the erly return.
50567
50568 2012-10-11  Joshua Bell  <jsbell@chromium.org>
50569
50570         WebIDL: overloaded methods prevent number -> string conversion
50571         https://bugs.webkit.org/show_bug.cgi?id=85326
50572
50573         Reviewed by Kentaro Hara.
50574
50575         Make the default behavior for overloaded methods matching DOMString arguments match the
50576         default behavior for non-overloaded methods, which more closely matches the WebIDL spec.
50577         Enable legacy behavior of only matching undefined/null/string/object(and not number,
50578         boolean, etc) via the StrictTypeChecking attribute.
50579
50580         Tests: storage/indexeddb/cursor-overloads.html
50581                storage/indexeddb/legacy-constants.html
50582                ... and run-bindings-tests
50583
50584         * Modules/indexeddb/IDBCursor.cpp:
50585         (WebCore::IDBCursor::stringToDirection): Handle "0"..."4" as stringified legacy constants.
50586         * Modules/indexeddb/IDBCursor.h:
50587         * Modules/indexeddb/IDBDatabase.cpp: Remove redundant overloads.
50588         (WebCore::IDBDatabase::transaction): Remove redundant overloads.
50589         * Modules/indexeddb/IDBDatabase.h:
50590         (IDBDatabase):
50591         * Modules/indexeddb/IDBDatabase.idl: Remove redundant overloads.
50592         * Modules/indexeddb/IDBIndex.cpp: Remove redundant overloads.
50593         (WebCore::IDBIndex::openCursor):
50594         (WebCore::IDBIndex::openKeyCursor):
50595         * Modules/indexeddb/IDBIndex.h: Remove redundant overloads.
50596         (IDBIndex):
50597         * Modules/indexeddb/IDBIndex.idl: Remove redundant overloads.
50598         * Modules/indexeddb/IDBObjectStore.cpp: Remove redundant overloads.
50599         (WebCore::IDBObjectStore::openCursor):
50600         * Modules/indexeddb/IDBObjectStore.h: Remove redundant overloads.
50601         (IDBObjectStore):
50602         * Modules/indexeddb/IDBObjectStore.idl: Remove redundant overloads.
50603         * Modules/indexeddb/IDBTransaction.cpp:
50604         (WebCore::IDBTransaction::stringToMode): Handle "0"..."4" as stringified legacy constants.
50605         * Modules/indexeddb/IDBTransaction.h:
50606         * bindings/scripts/CodeGeneratorJS.pm: Check for StrictTypeChecking attribute.
50607         (GenerateParametersCheckExpression):
50608         * bindings/scripts/CodeGeneratorV8.pm: Ditto.
50609         (GenerateParametersCheckExpression):
50610         * bindings/scripts/test/JS/JSTestObj.cpp: Rebaselined.
50611         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
50612         (WebCore):
50613         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
50614         * bindings/scripts/test/TestObj.idl: Added [StrictTypeChecking] to DOMString overloads,
50615         plus a new DOMString overload w/o it.
50616         * bindings/scripts/test/V8/V8TestObj.cpp: Rebaselined.
50617         (WebCore::TestObjV8Internal::overloadedMethod11Callback):
50618         (TestObjV8Internal):
50619         (WebCore::TestObjV8Internal::overloadedMethodCallback):
50620         * html/canvas/CanvasRenderingContext2D.idl: Tag legacy overloads with [StrictTypeChecking].
50621         * xml/XMLHttpRequest.idl: Ditto.
50622
50623 2012-10-11  Justin Novosad  <junov@chromium.org>
50624
50625         [Chromium][Mac] r130994 seems to break chromium gpu test
50626         https://bugs.webkit.org/show_bug.cgi?id=98995
50627
50628         Reviewed by Stephen White.
50629
50630         Removing unnecessary assertion that was based on an invalid assumption
50631         that 2d canvas draw operations were always called from within WebThread
50632         tasks.
50633
50634         Test: Canvas2DAllowed chromium gpu_test
50635
50636         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
50637         (WebCore::Canvas2DLayerManager::willProcessTask):
50638
50639 2012-10-11  Kenichi Ishibashi <bashi@chromium.org>
50640
50641         REGRESSION(130231): Causes 3 complex font test failures on EFL / Harfbuzz+Freetype
50642         https://bugs.webkit.org/show_bug.cgi?id=98247
50643
50644         Reviewed by Kenneth Rohde Christiansen.
50645
50646         Implement canRenderCombiningCharacterSequence() for the Freetype case.
50647
50648         No new tests, covered by existing tests. Actually the lack of the implementation made
50649         fast/text/atsui-multiple-renderers.html,  fast/text/atsui-spacing-features.html and
50650         fast/text/wide-zero-width-space.html fail on EFL.
50651
50652         * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Implement canRenderCombiningCharacterSequence().
50653         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
50654
50655 2012-10-11  Keishi Hattori  <keishi@webkit.org>
50656
50657         F4 key should open the picker popup on Windows and Linux
50658         https://bugs.webkit.org/show_bug.cgi?id=98754
50659
50660         Reviewed by Kent Tamura.
50661
50662         On Windows, F4 key is used to open the combo box popup. We will introduce the same keybinding for picker popups.
50663
50664         Added test to calendar-picker-key-operations.html, date-suggestion-picker-key-operations.html, time-suggestion-picker-key-operations.html.
50665
50666         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
50667         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open picker on F4 key if it is enabled.
50668         * rendering/RenderTheme.cpp:
50669         (WebCore::RenderTheme::shouldOpenPickerWithF4Key): Returns true if we want to enable the F4 key binding on this platform. Return false for default.
50670         (WebCore):
50671         * rendering/RenderTheme.h:
50672         (RenderTheme):
50673         * rendering/RenderThemeChromiumLinux.cpp:
50674         (WebCore::RenderThemeChromiumLinux::shouldOpenPickerWithF4Key): Returns true.
50675         (WebCore):
50676         * rendering/RenderThemeChromiumLinux.h:
50677         * rendering/RenderThemeChromiumWin.cpp:
50678         (WebCore):
50679         (WebCore::RenderThemeChromiumWin::shouldOpenPickerWithF4Key): Returns true.
50680         * rendering/RenderThemeChromiumWin.h:
50681         (RenderThemeChromiumWin):
50682
50683 2012-10-11  John J. Barton  <johnjbarton@chromium.org>
50684
50685         Web Inspector: Zebra stripe the console
50686         https://bugs.webkit.org/show_bug.cgi?id=98701
50687
50688         Reviewed by Pavel Feldman.
50689
50690         Add .console-message:hover rule to lightly highlight the message line.
50691
50692         * inspector/front-end/inspector.css:
50693         (.console-message:hover):
50694
50695 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
50696
50697         Web Inspector: Filter out embedder injected content scripts
50698         https://bugs.webkit.org/show_bug.cgi?id=99039
50699
50700         Reviewed by Yury Semikhatsky.
50701
50702         * inspector/front-end/NetworkUISourceCodeProvider.js:
50703         (WebInspector.NetworkUISourceCodeProvider.prototype._parsedScriptSource):
50704
50705 2012-10-11  Pavel Feldman  <pfeldman@chromium.org>
50706
50707         Not reviewed: revert 131004, 131012, 131016, 131042, 131043 for breaking inspector console
50708         https://bugs.webkit.org/show_bug.cgi?id=99042
50709
50710         One can't type in the inspector console after 131004.
50711
50712         * CMakeLists.txt:
50713         * GNUmakefile.list.am:
50714         * Target.pri:
50715         * WebCore.gypi:
50716         * WebCore.vcproj/WebCore.vcproj:
50717         * WebCore.xcodeproj/project.pbxproj:
50718         * dom/DOMAllInOne.cpp:
50719         * dom/Element.cpp:
50720         (WebCore::Element::attach):
50721         (WebCore::Element::detach):
50722         (WebCore::Element::recalcStyle):
50723         * dom/Element.h:
50724         (WebCore):
50725         (Element):
50726         * dom/ElementRareData.h:
50727         (ElementRareData):
50728         * dom/Node.cpp:
50729         (WebCore::checkAcceptChild):
50730         * dom/Node.h:
50731         (Node):
50732         * dom/NodeRenderingContext.cpp:
50733         (WebCore::NodeRenderingContext::nextRenderer):
50734         * dom/PseudoElement.cpp: Removed.
50735         * dom/PseudoElement.h: Removed.
50736         * rendering/HitTestResult.cpp:
50737         (WebCore::HitTestResult::setInnerNode):
50738         (WebCore::HitTestResult::setInnerNonSharedNode):
50739         * rendering/RenderBlock.cpp:
50740         (WebCore::RenderBlock::styleDidChange):
50741         (WebCore::RenderBlock::updateBeforeAfterContent):
50742         (WebCore):
50743         (WebCore::RenderBlock::splitBlocks):
50744         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
50745         (WebCore::RenderBlock::createReplacementRunIn):
50746         (WebCore::RenderBlock::renderName):
50747         * rendering/RenderBlock.h:
50748         (RenderBlock):
50749         * rendering/RenderButton.cpp:
50750         (WebCore::RenderButton::updateBeforeAfterContent):
50751         (WebCore):
50752         * rendering/RenderButton.h:
50753         (RenderButton):
50754         * rendering/RenderCounter.cpp:
50755         (WebCore::RenderCounter::originalText):
50756         * rendering/RenderDeprecatedFlexibleBox.cpp:
50757         (WebCore::RenderDeprecatedFlexibleBox::renderName):
50758         * rendering/RenderGrid.cpp:
50759         (WebCore::RenderGrid::renderName):
50760         * rendering/RenderInline.cpp:
50761         (WebCore::RenderInline::styleDidChange):
50762         (WebCore::RenderInline::addChildIgnoringContinuation):
50763         (WebCore::RenderInline::splitInlines):
50764         (WebCore::RenderInline::renderName):
50765         * rendering/RenderListItem.cpp:
50766         (WebCore::RenderListItem::updateMarkerLocation):
50767         * rendering/RenderMultiColumnBlock.cpp:
50768         (WebCore::RenderMultiColumnBlock::renderName):
50769         * rendering/RenderObject.cpp:
50770         (WebCore::RenderObject::createObject):
50771         * rendering/RenderObject.h:
50772         (WebCore::RenderObject::generatingNode):
50773         * rendering/RenderObjectChildList.cpp:
50774         (WebCore):
50775         (WebCore::findBeforeAfterParent):
50776         (WebCore::RenderObjectChildList::updateBeforeAfterStyle):
50777         (WebCore::createRendererForBeforeAfterContent):
50778         (WebCore::ensureBeforeAfterContainer):
50779         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
50780         * rendering/RenderObjectChildList.h:
50781         (RenderObjectChildList):
50782         * rendering/RenderRubyText.cpp:
50783         (WebCore::RenderRubyText::updateBeforeAfterContent):
50784         (WebCore):
50785         * rendering/RenderRubyText.h:
50786         (RenderRubyText):
50787         * rendering/RenderTableCell.h:
50788         (WebCore::RenderTableCell::renderName):
50789         * rendering/RenderTableRow.cpp:
50790         (WebCore::RenderTableRow::updateBeforeAndAfterContent):
50791         (WebCore):
50792         (WebCore::RenderTableRow::styleDidChange):
50793         * rendering/RenderTableRow.h:
50794         (RenderTableRow):
50795         (WebCore::RenderTableRow::renderName):
50796         * rendering/RenderTableSection.cpp:
50797         (WebCore::RenderTableSection::addChild):
50798         * rendering/RenderTableSection.h:
50799         (WebCore::RenderTableSection::renderName):
50800         * rendering/RenderTreeAsText.cpp:
50801         (WebCore::RenderTreeAsText::writeRenderObject):
50802
50803 2012-10-11  Arpita Bahuguna  <arpitabahuguna@gmail.com>
50804
50805         REGRESSION (r96393): In some cases, generated content is never shown
50806         https://bugs.webkit.org/show_bug.cgi?id=88196
50807
50808         Reviewed by Antti Koivisto.
50809
50810         Elements with style specified from an attribute selector in conjunction
50811         with a pseudo-element should not take on the shared style of their
50812         previous matching sibling (if any).
50813
50814         The problem here is that an attribute selector appended by a pseudo-element
50815         does not return any matched rules for the call (matchesRuleSet(m_uncommonAttributeRuleSet.get()))
50816         in StyleResolver::locateSharedStyle().
50817
50818         This is because of the way pseudo-elements are handled in
50819         SelectorChecker::checkSelector(). For a pseudo-element selector we check
50820         for the condition (!context.elementStyle && m_mode == ResolvingStyle) and
50821         since for this particular flow the SelectorChecker mode is set to ResolvingStyle
50822         and since the current element's style is still not available we fail this
50823         initial check and return SelectorFailsLocally from checkSelector(). This is
50824         incorrect behavior since the element does have an attribute selector specified
50825         for it.
50826
50827         Have thus introduced another enum value: SharingRules for SelectorChecker's Mode.
50828         SelectorChecker's mode should be set to SharingRules before making the
50829         call to collectMatchingRules() and then reset (back to ResolvingStyle) thereafter.
50830
50831         Existing Mode value: CollectingRules although appropriate cannot be used in this
50832         scenario because we also don't want to set any value to dynamicPseudo for this flow.
50833
50834         Test: fast/selectors/style-sharing-attribute-selector-with-pseudo-element.html
50835
50836         * css/SelectorChecker.cpp:
50837         (WebCore::SelectorChecker::checkSelector):
50838         Added additional check for SelectorChecker's mode: SharingRules when
50839         trying to match for the pseudo-element selector.
50840
50841         * css/SelectorChecker.h:
50842         Added SharingRules to Mode enum.
50843
50844         * css/StyleResolver.cpp:
50845         (WebCore::StyleResolver::styleSharingCandidateMatchesRuleSet):
50846         (WebCore::StyleResolver::locateSharedStyle):
50847         * css/StyleResolver.h:
50848         (StyleResolver):
50849         Renamed matchesRuleSet() to a more descriptive styleSharingCandidateMatchesRuleSet().
50850         Also, setting the SelectorChecker's mode to SharingRules before calling
50851         on collectMatchingRules() from styleSharingCandidateMatchesRuleSet().
50852
50853 2012-10-11  Shinya Kawanaka  <shinyak@chromium.org>
50854
50855         Some shadow roots are not showing up in Inspector.
50856         https://bugs.webkit.org/show_bug.cgi?id=88251
50857
50858         Reviewed by Pavel Feldman.
50859
50860         When an element has only text node, its shadow root is not showing up in Inspector, since
50861         child text is shown in oneline. We had to prevent from inlining child text when a shadow root is
50862         added.
50863
50864         Test: inspector/elements/shadow-root.html
50865
50866         * inspector/front-end/DOMAgent.js:
50867         (WebInspector.DOMNode):
50868         (WebInspector.DOMNode.prototype.hasShadowRoots):
50869         * inspector/front-end/ElementsTreeOutline.js:
50870
50871 2012-10-11  Allan Sandfeld Jensen  <allan.jensen@digia.com>
50872
50873         [Qt] More responsive scroll animations
50874         https://bugs.webkit.org/show_bug.cgi?id=99016
50875
50876         Reviewed by Jocelyn Turcotte.
50877
50878         Changes the scrolling animations so they accelerate faster than they deccelerate,
50879         making the animation respond faster to user input.
50880
50881         * platform/ScrollAnimatorNone.cpp:
50882         (WebCore::ScrollAnimatorNone::parametersForScrollGranularity):
50883         * platform/ScrollAnimatorNone.h:
50884         (ScrollAnimatorNone):
50885
50886 2012-10-11  Alexander Shalamov  <alexander.shalamov@intel.com>
50887
50888         [CSS3 Media Queries] Aspect ratio value re-parsed when media query expression is evaluated
50889         https://bugs.webkit.org/show_bug.cgi?id=99003
50890
50891         Reviewed by Kenneth Rohde Christiansen.
50892
50893         Use CSSAspectRatioValue instead of CSSValueList to store aspect ratio value
50894         in order to avoid re-parsing of aspect ratio data during media expression evaluation.
50895
50896         test: fast/media/w3c/test_media_queries.html
50897
50898         * css/MediaQueryEvaluator.cpp:
50899         (WebCore::compareAspectRatioValue):
50900         (WebCore):
50901         (WebCore::aspect_ratioMediaFeatureEval):
50902         (WebCore::device_aspect_ratioMediaFeatureEval):
50903         * css/MediaQueryExp.cpp:
50904         (WebCore::MediaQueryExp::MediaQueryExp):
50905
50906 2012-10-11  Zeno Albisser  <zeno@webkit.org>
50907
50908         [Qt] Implement GraphicsSurfaceToken to replace uint64_t as token type.
50909         https://bugs.webkit.org/show_bug.cgi?id=98501
50910
50911         Replace the token type for GraphicsSurface with a new class GraphicsSurfaceToken.
50912         This is necessary in order to implement GraphicsSurface for Windows.
50913         Depending on the platform a GraphicsSurfaceToken might contain a
50914         WindowID (Linux/GLX), two IOSurfaceIDs (Mac) or in the future two HANDLEs (Windows).
50915         The simple uint64_t is not sufficient anymore, since a single HANDLE in windows
50916         can be 64bit already.
50917
50918         Reviewed by Noam Rosenthal.
50919
50920         * Target.pri:
50921         * platform/graphics/qt/GraphicsContext3DQt.cpp:
50922         (GraphicsContext3DPrivate):
50923         (WebCore::GraphicsContext3DPrivate::graphicsSurfaceToken):
50924         * platform/graphics/surfaces/GraphicsSurface.cpp:
50925         (WebCore::GraphicsSurface::create):
50926         (WebCore::GraphicsSurface::exportToken):
50927         * platform/graphics/surfaces/GraphicsSurface.h:
50928         (GraphicsSurface):
50929         * platform/graphics/surfaces/GraphicsSurfaceToken.h: Added.
50930         (WebCore):
50931         (GraphicsSurfaceToken):
50932         (WebCore::GraphicsSurfaceToken::GraphicsSurfaceToken):
50933         (WebCore::GraphicsSurfaceToken::operator!=):
50934         (WebCore::GraphicsSurfaceToken::isValid):
50935         * platform/graphics/surfaces/mac/GraphicsSurfaceMac.cpp:
50936         (WebCore::GraphicsSurfacePrivate::GraphicsSurfacePrivate):
50937         (WebCore::GraphicsSurfacePrivate::token):
50938         (GraphicsSurfacePrivate):
50939         (WebCore::GraphicsSurface::platformExport):
50940         (WebCore::GraphicsSurface::platformImport):
50941         * platform/graphics/surfaces/qt/GraphicsSurfaceGLX.cpp:
50942         (WebCore::GraphicsSurface::platformExport):
50943         (WebCore::GraphicsSurface::platformImport):
50944         * platform/graphics/texmap/TextureMapperBackingStore.cpp:
50945         (WebCore::TextureMapperSurfaceBackingStore::setGraphicsSurface):
50946         (WebCore::TextureMapperSurfaceBackingStore::setSurface):
50947         * platform/graphics/texmap/TextureMapperBackingStore.h:
50948         (TextureMapperSurfaceBackingStore):
50949         (WebCore::TextureMapperSurfaceBackingStore::TextureMapperSurfaceBackingStore):
50950         * platform/graphics/texmap/TextureMapperPlatformLayer.h:
50951         (WebCore::TextureMapperPlatformLayer::graphicsSurfaceToken):
50952
50953 2012-10-11  Alexander Pavlov  <apavlov@chromium.org>
50954
50955         Web Inspector: [Elements] Breadcrumbs are not updated upon involved elements' className changes
50956         https://bugs.webkit.org/show_bug.cgi?id=98887
50957
50958         Reviewed by Vsevolod Vlasov.
50959
50960         Breadcrumbs should be updated upon the "class" and "id" attribute changes of elements participating in the breadcrumb path.
50961
50962         Test: inspector/elements/breadcrumb-updates.html
50963
50964         * inspector/front-end/ElementsPanel.js:
50965         (WebInspector.ElementsPanel):
50966         (WebInspector.ElementsPanel.prototype._updateBreadcrumbIfNeeded):
50967
50968 2012-10-11  Kunihiko Sakamoto  <ksakamoto@chromium.org>
50969
50970         Final newline (LF or CRLF) in paste buffer is converted to space
50971         https://bugs.webkit.org/show_bug.cgi?id=80838
50972
50973         Reviewed by Ryosuke Niwa.
50974
50975         Currently newline characters are replaced with spaces when pasted
50976         to text input. This behavior was introduced in r37539, with the
50977         intention to follow the FireFox's behavior (see
50978         https://bugs.webkit.org/show_bug.cgi?id=20461). However, FireFox
50979         truncates newlines at the end of pasted text, instead of replacing
50980         them with spaces. So this patch changes TextFieldInputType to cut
50981         trailing newlines of inserted text.
50982
50983         Test: fast/forms/paste-multiline-text-input.html
50984
50985         * html/TextFieldInputType.cpp:
50986         (WebCore::TextFieldInputType::handleBeforeTextInsertedEvent):
50987         Truncates trailing newlines.
50988
50989 2012-10-11  Kent Tamura  <tkent@chromium.org>
50990
50991         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
50992         https://bugs.webkit.org/show_bug.cgi?id=98992
50993
50994         * platform/text/LocaleICU.cpp:
50995         (WebCore::LocaleICU::isRTL): Need to initialize 'status'.
50996
50997 2012-10-11  Eugene Klyuchnikov  <eustas.bug@gmail.com>
50998
50999         Web Inspector: The 'X' of the close button of Settings view is not centered
51000         https://bugs.webkit.org/show_bug.cgi?id=99008
51001
51002         Reviewed by Alexander Pavlov.
51003
51004         Fixed text positioning in CSS.
51005
51006         * inspector/front-end/helpScreen.css:
51007         (.help-close-button):
51008
51009 2012-10-11  Kent Tamura  <tkent@chromium.org>
51010
51011         Introduce Localizer::isRTL, and use it in DateTimeChooserImpl
51012         https://bugs.webkit.org/show_bug.cgi?id=98992
51013
51014         Reviewed by Kentaro Hara.
51015
51016         - Move the RTL detection code in
51017           WebKit/chromium/src/DateTimeChooserImpl.cpp to LocaleWin::isRTL()
51018         - Introduce Localizer::isRTL as a pure virtual function
51019         - Implement LocaleMac::isRTL with native API
51020         - Implement LocaleICU::isRTL with ICU API
51021         - Add dummy implementation: LocaleNone::isRTL
51022
51023         Add some tests to WebKit/chromium/tests/.
51024
51025         * platform/text/Localizer.h:
51026         (Localizer): Declare pure virtual isRTL.
51027
51028         * platform/text/LocaleICU.h:
51029         (LocaleICU): Declare isRTL.
51030         * platform/text/LocaleICU.cpp:
51031         (WebCore::LocaleICU::isRTL): Implemented with uloc_getCharacterOrientation.
51032
51033         * platform/text/LocaleNone.cpp:
51034         (LocaleNone): Declare isRTL.
51035         (WebCore::LocaleNone::isRTL): Added.
51036
51037         * platform/text/LocaleWin.h:
51038         (LocaleWin): Declare isRTL.
51039         * platform/text/LocaleWin.cpp:
51040         (WebCore::LocaleWin::isRTL): Implemented.
51041
51042         * platform/text/mac/LocaleMac.h:
51043         (LocaleMac): Declare isRTL.
51044         * platform/text/mac/LocaleMac.mm:
51045         (WebCore::LocaleMac::isRTL): Implemented.
51046
51047 2012-10-11  Vsevolod Vlasov  <vsevik@chromium.org>
51048
51049         Web Inspector: TypeError in ConsoleMessage.js
51050         https://bugs.webkit.org/show_bug.cgi?id=98999
51051
51052         Reviewed by Alexander Pavlov.
51053
51054         This patch is based on patch by John J. Barton.
51055         Added a check that stack length is equal.
51056
51057         * inspector/front-end/ConsoleMessage.js:
51058         (WebInspector.ConsoleMessageImpl.prototype.isEqual):
51059
51060 2012-10-10  Jer Noble  <jer.noble@apple.com>
51061
51062         Disallow full screen mode keyboard access by default.
51063         https://bugs.webkit.org/show_bug.cgi?id=98971
51064         <rdar://problem/12474226>
51065
51066         Reviewed by Sam Weinig.
51067
51068         Fall back to requesting non-keyboard access if the client refuses to allow keyboard access.
51069
51070         * dom/Document.cpp:
51071         (WebCore::Document::requestFullScreenForElement):
51072
51073 2012-10-10  Ilya Tikhonovsky  <loislo@chromium.org>
51074
51075         Web Inspector: NMI instrument HTMLCanvas element.
51076         https://bugs.webkit.org/show_bug.cgi?id=98917
51077
51078         Reviewed by Yury Semikhatsky.
51079
51080         It also includes non intrusive instrumentation for skia classes.
51081
51082         Test: inspector/profiler/memory-instrumentation-canvas.html
51083
51084         * WebCore.gypi:
51085         * html/HTMLCanvasElement.cpp:
51086         (WebCore::HTMLCanvasElement::reportMemoryUsage):
51087         (WebCore):
51088         * html/HTMLCanvasElement.h:
51089         (HTMLCanvasElement):
51090         * platform/graphics/ImageBuffer.cpp:
51091         (WebCore::ImageBuffer::reportMemoryUsage):
51092         (WebCore):
51093         * platform/graphics/ImageBuffer.h:
51094         (ImageBuffer):
51095         * platform/graphics/chromium/ImageBufferDataSkia.h:
51096         (ImageBufferData):
51097         * platform/graphics/skia/ImageBufferSkia.cpp:
51098         (WebCore::ImageBufferData::reportMemoryUsage):
51099         (WebCore):
51100         * platform/graphics/skia/MemoryInstrumentationSkia.cpp: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51101         (reportMemoryUsage):
51102         * platform/graphics/skia/MemoryInstrumentationSkia.h: Copied from Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h.
51103         * platform/graphics/skia/NativeImageSkia.cpp:
51104
51105 2012-10-10  Mike West  <mkwst@google.com>
51106
51107         Document calls createElement with the wrong parameters.
51108         https://bugs.webkit.org/show_bug.cgi?id=98907
51109
51110         Reviewed by Kent Tamura.
51111
51112         Document::importNode calls Document::createElement with a QualifiedName
51113         and ExceptionCode. The Document::createElement that takes a
51114         QualifiedName doesn't generate an exception; the second argument is a
51115         bool, which the ExceptionCode autocasts into.
51116
51117         Changing the argument to an explicit bool shouldn't have any visible
51118         effect; no new tests are required.
51119
51120         * dom/Document.cpp:
51121         (WebCore::Document::importNode):
51122
51123 2012-10-10  Lianghui Chen  <liachen@rim.com>
51124
51125         [BlackBerry] Fix assertion in NetworkJob::notifyChallengeResult.
51126         https://bugs.webkit.org/show_bug.cgi?id=97397
51127         Internal PR: 186597.
51128
51129         Internally reviewed by Yong Li, Joe Mason.
51130         Reviewed by George Staikos.
51131
51132         Add a singleton AuthenticationChallengeManager to manage authentication
51133         challenge dialog. It does following things:
51134         Record page creation/deletion, so it knows what page is present or not.
51135         Record page visibility change so it knows when to display a dialog or not.
51136         Accept authentication challenge, and decide whether to postpone the
51137             challenge dialog based on whether there is active authentication challenge
51138             dialog already and whether its page is visible or not.
51139         When a challenge result comes back, notify the result to all clients
51140             authenticating for the same protection space, and then start the next
51141             authentication challenge from the same page, if there is one.
51142         When a page becomes visible, start the first authentication challenge
51143             dialog that has been blocked before.
51144         When an authentication challenge is requested, the NetworkJob will be
51145             deferred so its initial response will be saved while waiting for
51146             user decision on the challenge.
51147
51148         No new tests for platform specific internal change.
51149
51150         * PlatformBlackBerry.cmake:
51151         * platform/blackberry/AuthenticationChallengeManager.cpp: Added.
51152         (WebCore):
51153         (ChallengeInfo):
51154         (WebCore::ChallengeInfo::ChallengeInfo):
51155         (AuthenticationChallengeManagerPrivate):
51156         (WebCore::AuthenticationChallengeManagerPrivate::AuthenticationChallengeManagerPrivate):
51157         (WebCore::AuthenticationChallengeManagerPrivate::resumeAuthenticationChallenge):
51158         (WebCore::AuthenticationChallengeManagerPrivate::startAuthenticationChallenge):
51159         (WebCore::AuthenticationChallengeManagerPrivate::pageExists):
51160         (WebCore::AuthenticationChallengeManager::AuthenticationChallengeManager):
51161         (WebCore::AuthenticationChallengeManager::pageCreated):
51162         (WebCore::AuthenticationChallengeManager::pageDeleted):
51163         (WebCore::AuthenticationChallengeManager::pageVisibilityChanged):
51164         (WebCore::AuthenticationChallengeManager::authenticationChallenge):
51165         (WebCore::AuthenticationChallengeManager::cancelAuthenticationChallenge):
51166         (WebCore::AuthenticationChallengeManager::notifyChallengeResult):
51167         (WebCore::AuthenticationChallengeManager::instance):
51168         (WebCore::AuthenticationChallengeManager::init):
51169         * platform/blackberry/AuthenticationChallengeManager.h:
51170         (WebCore):
51171         (AuthenticationChallengeManager):
51172         * platform/blackberry/PageClientBlackBerry.h:
51173         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
51174         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
51175         (WebCore::MediaPlayerPrivate::~MediaPlayerPrivate):
51176         (WebCore::MediaPlayerPrivate::onAuthenticationNeeded):
51177         (WebCore::MediaPlayerPrivate::notifyChallengeResult):
51178         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
51179         (MediaPlayerPrivate):
51180         * platform/network/blackberry/NetworkJob.cpp:
51181         (WebCore::NetworkJob::NetworkJob):
51182         (WebCore::NetworkJob::~NetworkJob):
51183         (WebCore):
51184         (WebCore::NetworkJob::handleNotifyStatusReceived):
51185         (WebCore::NetworkJob::handleNotifyClose):
51186         (WebCore::NetworkJob::shouldReleaseClientResource):
51187         (WebCore::NetworkJob::sendRequestWithCredentials):
51188         (WebCore::NetworkJob::notifyChallengeResult):
51189         * platform/network/blackberry/NetworkJob.h:
51190         (NetworkJob):
51191
51192 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
51193
51194         compositing/tiling/crash-reparent-tiled-layer.html is flakey
51195         https://bugs.webkit.org/show_bug.cgi?id=82546
51196
51197         Reviewed by Beth Dakin.
51198
51199         When calling layerTreeAsText() inside the document load event,
51200         GraphicsLayerCA may have not flushed layers yet, so layer tree
51201         properties that are affected by flushing (tiled layer, visible
51202         rects) appeared flakey in tests.
51203         
51204         Fix by forcing a flush before dumping the layer tree.        
51205         
51206         * rendering/RenderLayerCompositor.cpp:
51207         (WebCore::RenderLayerCompositor::layerTreeAsText):
51208
51209 2012-10-10  Beth Dakin  <bdakin@apple.com>
51210
51211         https://bugs.webkit.org/show_bug.cgi?id=98984
51212         REGRESSION: Crash happens after we add non-top-level frame to the 
51213         ScrollingStateTree
51214
51215         Reviewed by Simon Fraser.
51216
51217         isRootLayer() can return true for layers that do not correspond to 
51218         the main frame. But we only want the ones that DO correspond to the 
51219         main frame!
51220         * rendering/RenderLayerCompositor.cpp:
51221         (WebCore::RenderLayerCompositor::updateBacking):
51222
51223 2012-10-10  Dan Bernstein  <mitz@apple.com>
51224
51225         <rdar://problem/12472460> text-combine doesn’t use third- and quarter-width variants when used with @font-face
51226         https://bugs.webkit.org/show_bug.cgi?id=98961
51227
51228         Reviewed by Tim Horton.
51229
51230         Test: fast/text/text-combine-with-font-face.html
51231
51232         * css/CSSSegmentedFontFace.cpp:
51233         (WebCore::CSSSegmentedFontFace::getFontData): Added the width variant to the
51234         key used for entries in the font data table, so that we can return different
51235         font data for different width variants.
51236         * platform/graphics/FontWidthVariant.h: Defined FontWidthVariantWidth for
51237         use in the computation of the above key.
51238         * rendering/RenderCombineText.cpp:
51239         (WebCore::RenderCombineText::combineText): Added a local variable to store
51240         the font selector before changing the font description. Previously, by the time
51241         we tried to get the font selector from the font, it had already been cleared,
51242         so we called Font::update() with a 0 font selector, meaning @font-face fonts
51243         could not be selected.
51244
51245 2012-10-10  Elliott Sprehn  <esprehn@chromium.org>
51246
51247         Move :before and :after into the DOM        
51248         https://bugs.webkit.org/show_bug.cgi?id=95117
51249
51250         Reviewed by Eric Seidel.
51251
51252         Reimplement generated content :before and :after as DOM Elements. Now ElementRareData has
51253         two RefPtrs to PseudoElements for the generated content and Node has methods for traversing
51254         the tree including generated content.
51255
51256         This allows the generated content to be treated as real nodes instead of anonymous and take
51257         part in the usual recalcStyle and attach flow which fixes many bugs and vastly simplifies the
51258         lifecycle of generated content.
51259
51260         No new tests needed for now.
51261
51262         * CMakeLists.txt:
51263         * GNUmakefile.list.am:
51264         * Target.pri:
51265         * WebCore.gypi:
51266         * WebCore.vcproj/WebCore.vcproj:
51267         * WebCore.xcodeproj/project.pbxproj:
51268         * dom/DOMAllInOne.cpp:
51269         * dom/Element.cpp:
51270         (WebCore::Element::attach): Add generated content if needed.
51271         (WebCore::Element::detach): Remove all child generated content.
51272         (WebCore::Element::recalcStyle): Add or remove generated content based on the new style.
51273         (WebCore::Element::updatePseudoElement): Updates pseudo content based on a pseudoId.
51274         (WebCore):
51275         (WebCore::Element::createPseudoElementIfNeeded):
51276         (WebCore::Element::beforePseudoElement):
51277         (WebCore::Element::afterPseudoElement):
51278         * dom/Element.h:
51279         (WebCore):
51280         (Element):
51281         * dom/ElementRareData.h:
51282         (ElementRareData):
51283         (WebCore::ElementRareData::setPseudoElement):
51284         (WebCore):
51285         (WebCore::ElementRareData::pseudoElement):
51286         * dom/Node.cpp:
51287         (WebCore::Node::pseudoAwarePreviousSibling):
51288         (WebCore):
51289         (WebCore::Node::pseudoAwareNextSibling):
51290         (WebCore::checkAcceptChild): Forbid moving PseudoElements for sanity. The code never does this.
51291         * dom/Node.h:
51292         (Node):
51293         (WebCore::Node::isPseudoElement):
51294         (WebCore::Node::pseudoId): Fast path that only calls virtualPseudoId if the node has custom callbacks so isPseudoElement is fast.
51295         (WebCore::Node::virtualPseudoId):
51296         (WebCore::Node::isBeforePseudoElement):
51297         (WebCore::Node::isAfterPseudoElement):
51298         * dom/NodeRenderingContext.cpp:
51299         (WebCore::NodeRenderingContext::nextRenderer): Changed to find the next sibling of pseudos for insertion.
51300         * dom/PseudoElement.cpp: Added.
51301         (WebCore):
51302         (WebCore::pseudoElementName):
51303         (WebCore::PseudoElement::PseudoElement):
51304         (WebCore::PseudoElement::pseudoRendererIsNeeded):
51305         (WebCore::PseudoElement::customStyleForRenderer):
51306         (WebCore::PseudoElement::attach):
51307         (WebCore::PseudoElement::rendererIsNeeded):
51308         (WebCore::PseudoElement::updateChildStyle): Propagates the style downward into the anonymous renderers for the content.
51309         (WebCore::PseudoElement::didRecalcStyle):
51310         (WebCore::PseudoElement::createRendererForContent): Refactored from RenderObjectChildList.
51311         * dom/PseudoElement.h: Added.
51312         (WebCore):
51313         (PseudoElement):
51314         (WebCore::PseudoElement::create):
51315         (WebCore::toPseudoElement):
51316         * rendering/HitTestResult.cpp:
51317         (WebCore::HitTestResult::setInnerNode): Hit testing a PseudoElement should really hit the parent.
51318         (WebCore::HitTestResult::setInnerNonSharedNode): Same as above.
51319         * rendering/RenderBlock.cpp:
51320         (WebCore::RenderBlock::styleDidChange): Remove old generated content code, same for below.
51321         (WebCore::RenderBlock::splitBlocks):
51322         (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
51323         (WebCore::RenderBlock::createReplacementRunIn):
51324         (WebCore::RenderBlock::renderName):
51325         * rendering/RenderBlock.h:
51326         (RenderBlock):
51327         * rendering/RenderButton.cpp:
51328         * rendering/RenderButton.h:
51329         (RenderButton):
51330         * rendering/RenderCounter.cpp:
51331         (WebCore::RenderCounter::originalText):
51332         * rendering/RenderDeprecatedFlexibleBox.cpp:
51333         (WebCore::RenderDeprecatedFlexibleBox::renderName):
51334         * rendering/RenderGrid.cpp:
51335         (WebCore::RenderGrid::renderName):
51336         * rendering/RenderInline.cpp:
51337         (WebCore::RenderInline::styleDidChange):
51338         (WebCore::RenderInline::addChildIgnoringContinuation):
51339         (WebCore::RenderInline::splitInlines):
51340         (WebCore::RenderInline::renderName):
51341         * rendering/RenderListItem.cpp:
51342         (WebCore::RenderListItem::updateMarkerLocation):
51343         * rendering/RenderMultiColumnBlock.cpp:
51344         (WebCore::RenderMultiColumnBlock::renderName):
51345         * rendering/RenderObject.cpp:
51346         (WebCore::RenderObject::createObject):
51347         * rendering/RenderObject.h:
51348         (WebCore::RenderObject::isPseudoElement):
51349         (RenderObject):
51350         (WebCore::RenderObject::generatingNode):
51351         * rendering/RenderObjectChildList.cpp:
51352         * rendering/RenderObjectChildList.h:
51353         (RenderObjectChildList):
51354         * rendering/RenderRubyText.cpp:
51355         * rendering/RenderRubyText.h:
51356         (RenderRubyText):
51357         * rendering/RenderTableCell.h:
51358         (WebCore::RenderTableCell::renderName):
51359         * rendering/RenderTableRow.cpp:
51360         (WebCore::RenderTableRow::styleDidChange):
51361         * rendering/RenderTableRow.h:
51362         (WebCore::RenderTableRow::renderName):
51363         * rendering/RenderTableSection.cpp:
51364         (WebCore::RenderTableSection::addChild):
51365         * rendering/RenderTableSection.h:
51366         (WebCore::RenderTableSection::renderName):
51367         * rendering/RenderTreeAsText.cpp:
51368         (WebCore::RenderTreeAsText::writeRenderObject):
51369
51370 2012-10-10  Sam Weinig  <sam@webkit.org>
51371
51372         Add more Objective-C WebKit2 DOM API skeletons.
51373         https://bugs.webkit.org/show_bug.cgi?id=98981
51374
51375         Reviewed by Anders Carlsson.
51376
51377         * WebCore.exp.in:
51378         Add necessary export.
51379
51380 2012-10-10  Dimitri Glazkov  <dglazkov@chromium.org>
51381
51382         Minimize the recent template explosion in SelectorChecker.
51383         https://bugs.webkit.org/show_bug.cgi?id=98829
51384
51385         Reviewed by Antti Koivisto.
51386
51387         We've recently added the capability to switch sibling traversal strategy to SelectorChecker, at some readability/clarity expense.
51388         This patch tries to minimize the surface of this expense to SelectorChecker::checkOneSelector. 
51389
51390         No new tests, no change in behavior.
51391
51392         * css/SelectorChecker.cpp:
51393         (WebCore::SelectorChecker::checkSelector): Turned back into a function.
51394         (WebCore::SelectorChecker::checkOneSelector): Changed to specialize on traversal strategy, rather than the context, which was less clear.
51395         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild): Turned into a function.
51396         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild): Ditto.
51397         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType): Ditto.
51398         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType): Ditto.
51399         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore): Ditto.
51400         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore): Ditto.
51401         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter): Ditto.
51402         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter): Ditto.
51403         * css/SelectorChecker.h:
51404         (DOMTraversalStrategy): Changed into a class, rather than a template.
51405         (SelectorChecker): Turned back into a function.
51406
51407 2012-10-10  James Simonsen  <simonjam@chromium.org>
51408
51409         High res times should start at 0
51410         https://bugs.webkit.org/show_bug.cgi?id=84912
51411
51412         Reviewed by Tony Gentilcore.
51413
51414         Test: Existing Navigation Timing tests.
51415
51416         * inspector/InspectorInstrumentation.cpp: Use legacy document time, pending 98223.
51417         (WebCore):
51418         (WebCore::InspectorInstrumentation::didFinishLoadingImpl):
51419         * inspector/InspectorResourceAgent.cpp:
51420         (WebCore::buildObjectForTiming):
51421         * loader/DocumentLoadTiming.cpp:
51422         (WebCore::DocumentLoadTiming::convertMonotonicTimeToLegacyDocumentTime):
51423         (WebCore):
51424         (WebCore::DocumentLoadTiming::convertMonotonicTimeToZeroBasedDocumentTime):
51425         (WebCore::DocumentLoadTiming::markNavigationStart):
51426         * loader/DocumentLoadTiming.h:
51427         (DocumentLoadTiming):
51428         (WebCore::DocumentLoadTiming::navigationStart): These just report raw monotonic times now.
51429         (WebCore::DocumentLoadTiming::unloadEventStart):
51430         (WebCore::DocumentLoadTiming::unloadEventEnd):
51431         (WebCore::DocumentLoadTiming::redirectStart):
51432         (WebCore::DocumentLoadTiming::redirectEnd):
51433         (WebCore::DocumentLoadTiming::fetchStart):
51434         (WebCore::DocumentLoadTiming::responseEnd):
51435         (WebCore::DocumentLoadTiming::loadEventStart):
51436         (WebCore::DocumentLoadTiming::loadEventEnd):
51437         * page/PerformanceTiming.cpp:
51438         (WebCore::PerformanceTiming::navigationStart): Convert these back to legacy document times.
51439         (WebCore::PerformanceTiming::unloadEventStart):
51440         (WebCore::PerformanceTiming::unloadEventEnd):
51441         (WebCore::PerformanceTiming::redirectStart):
51442         (WebCore::PerformanceTiming::redirectEnd):
51443         (WebCore::PerformanceTiming::fetchStart):
51444         (WebCore::PerformanceTiming::responseEnd):
51445         (WebCore::PerformanceTiming::loadEventStart):
51446         (WebCore::PerformanceTiming::loadEventEnd):
51447         (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
51448         (WebCore::PerformanceTiming::monotonicTimeToIntegerMilliseconds):
51449         * platform/network/ResourceLoadTiming.cpp:
51450         (WebCore::ResourceLoadTiming::convertResourceLoadTimeToMonotonicTime):
51451         * platform/network/ResourceLoadTiming.h:
51452         (ResourceLoadTiming):
51453
51454 2012-10-10  Levi Weintraub  <leviw@chromium.org>
51455
51456         Tests failure on Chromium Mac after r130821
51457         https://bugs.webkit.org/show_bug.cgi?id=98865
51458
51459         Reviewed by Adam Barth.
51460
51461         Updating the check for USE(HARFBUZZ_NG) to check for Mac Chromium, as the HARFBUZZ_NG flag isn't
51462         actually set, despite us using Harfbuzz. This unbreaks Chromium Mac as we diagnose the root
51463         cause of this issue.
51464
51465         * rendering/RenderBlockLineLayout.cpp:
51466         (WebCore::setLogicalWidthForTextRun):
51467
51468 2012-10-10  Stephen Chenney  <schenney@chromium.org>
51469
51470         SVGTextRunRenderingContext changes font data in the glyph page, but it shouldn't
51471         https://bugs.webkit.org/show_bug.cgi?id=98755
51472
51473         Reviewed by Eric Seidel.
51474
51475         The code in SVGTextRunRenderingContext::glyphDataForCharacter, when it
51476         encounters an <altglyph> tag, immediately replaces the font data for a
51477         glyph with font data for the primary font, presumably to meet the SVG
51478         spec requirement: "If the references to alternate glyphs do not result
51479         in successful identification of alternate glyphs to use, then the
51480         character(s) that are inside of the ‘altGlyph’ element are rendered as
51481         if the ‘altGlyph’ element were a ‘tspan’ element instead."
51482
51483         If the alt glyph is not then found we are in the case from the spec
51484         and indeed we should use the primary font. However, we end up replacing the GlyphPage
51485         entry for the character with primary font data, which we should not do
51486         because the glyph page might be used in some place that does not have
51487         the alt glyph tag.
51488
51489         Furthermore, this causes object lifetime problems for font data, because
51490         in cases where the font data that is replaced is for the system fallback
51491         font the GlyphPage will live forever with no knowldege that it contains
51492         font data pointers into font data other that the system fallback. The
51493         replaced font data may be deleted while the pointer lives on in the
51494         system fallback page.
51495
51496         The fix is simply not to replace the font data in the page.
51497
51498         Test: svg/text/alt-glpyh-on-fallback-font-crash.html
51499
51500         * rendering/svg/SVGTextRunRenderingContext.cpp:
51501         (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Keep track of the original font data and put it back
51502         in the glyph page when the method has finished.
51503
51504 2012-10-10  Tab Atkins  <jackalmage@gmail.com>
51505
51506         column-count: 0 should not prevent margin-collapse through
51507         https://bugs.webkit.org/show_bug.cgi?id=65159
51508
51509         Reviewed by Tony Chang.
51510
51511         This patch makes "column-count:0" be properly recognized as invalid syntax,
51512         as it violates the property grammar in the spec.
51513
51514         Tests: fast/multicol/zeroColumnCount.html
51515
51516         * css/CSSParser.cpp:
51517         (WebCore::CSSParser::validUnit):
51518         (WebCore::CSSParser::parseValue):
51519         * css/CSSParser.h:
51520
51521 2012-10-10  Benjamin Poulain  <bpoulain@apple.com>
51522
51523         [WK2] Safari crashes on error when using CFNetwork
51524         https://bugs.webkit.org/show_bug.cgi?id=98965
51525
51526         Reviewed by Sam Weinig.
51527
51528         The code of ResourceErrorMac when using CFNetwork was assuming
51529         there is always either a CFError or an NSError associated with
51530         any ResourceError.
51531
51532         This is not true on WebKit2 where error can be generic errors
51533         in the WebProcess (for example a cannotShowURLError).
51534         The code was crashing when trying to invoke function on the
51535         non-existing CFError.
51536
51537         This patch fixes the issue by handling that third case separately.
51538         If the ResourceError is a generic error, a new NSError is created,
51539         similarily to what is done in the non-CFNetwork case.
51540
51541         * platform/network/mac/ResourceErrorMac.mm:
51542         (WebCore::ResourceError::nsError):
51543
51544 2012-10-10  Alexander Shalamov  <alexander.shalamov@intel.com>
51545
51546         Invalid values for media query features are not handled
51547         https://bugs.webkit.org/show_bug.cgi?id=97006
51548
51549         Reviewed by Kenneth Rohde Christiansen.
51550
51551         This patch improves pass rate of CSS3 Media Queries test suite
51552         by making media expressions compliant with W3C specification. Few
51553         performance issues are fixed by removal of string comparison during
51554         media expression evaluation.
51555
51556         Tests: fast/media/w3c/test_media_queries.html
51557
51558         * css/CSSGrammar.y: Handle media query expression with specified media restrictor as invalid.
51559         * css/MediaQuery.cpp:
51560         (WebCore::MediaQuery::serialize): Serialize invalid query according to specification.
51561         * css/MediaQueryEvaluator.cpp:
51562         (WebCore::orientationMediaFeatureEval): Compare CSSValueID instead of strings.
51563         (WebCore::view_modeMediaFeatureEval): Compare CSSValueID instead of strings.
51564         (WebCore::pointerMediaFeatureEval): Compare CSSValueID instead of strings.
51565         * css/MediaQueryExp.cpp:
51566         (WebCore::MediaQueryExp::MediaQueryExp): Check that media features initialized with correct values.
51567
51568 2012-10-10  Justin Novosad  <junov@chromium.org>
51569
51570         [Chromium] Smoother animation for non-RAF 2D canvas animations
51571         https://bugs.webkit.org/show_bug.cgi?id=97918
51572
51573         Reviewed by Stephen White.
51574
51575         Reduces animation jank by preventing the accumulation of multiple
51576         frames of backlog in the deferred canvas rendering queue. When the
51577         animation is more than one full frame ahead of the compositor, an
51578         immediate flush is triggered.  This takes into account overdraw
51579         elimination by the skip-on-clear optimization that is built-in to
51580         SkDeferredCanvas, to allow non-RAF animations that clear the canvas at
51581         each frame to run without any rate limiting. This change also
51582         incidentally improves frame rate in many cases by providing more
51583         granular batching of GPU API calls, resulting in better pipelining
51584         through the command buffer.
51585
51586         Test: webkit_unit_test Canvas2DLayerManagerTest.testDeferredFrame
51587
51588         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
51589         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
51590         (WebCore::Canvas2DLayerBridge::limitPendingFrames):
51591         Called at the end of a task (usually a scheduled script action) that
51592         invoked 2d canvas rendering context methods. The end of the task
51593         marks the completion of a displayable frame. This method will trigger
51594         a flush if it detects that the layer has pending draw commands that
51595         are more that one frame old.
51596         (WebCore):
51597         (WebCore::Canvas2DLayerBridge::flushedDrawCommands):
51598         (WebCore::Canvas2DLayerBridge::didFlushPendingCommands):
51599         (WebCore::Canvas2DLayerBridge::skippedPendingDrawCommands):
51600         (WebCore::Canvas2DLayerBridge::flush):
51601         (WebCore::Canvas2DLayerBridge::contextAcquired):
51602         * platform/graphics/chromium/Canvas2DLayerBridge.h:
51603         (Canvas2DLayerBridge):
51604         * platform/graphics/chromium/Canvas2DLayerManager.cpp:
51605         (WebCore::Canvas2DLayerManager::~Canvas2DLayerManager):
51606         (WebCore::Canvas2DLayerManager::willProcessTask):
51607         (WebCore):
51608         (WebCore::Canvas2DLayerManager::didProcessTask):
51609         (WebCore::Canvas2DLayerManager::layerDidDraw):
51610         * platform/graphics/chromium/Canvas2DLayerManager.h:
51611         (Canvas2DLayerManager):
51612
51613 2012-10-10  Beth Dakin  <bdakin@apple.com>
51614
51615         https://bugs.webkit.org/show_bug.cgi?id=98968
51616         REGRESSION: Unable to scroll with trackpad on some websites after 
51617         r130783
51618
51619         Reviewed by Simon Fraser.
51620
51621         This bug seems to reproduce mostly on web pages that require login. 
51622         The re-routing causes extra churn of the RenderLayerBacking, and we 
51623         end up destroying and re-creating the backing and therefore the 
51624         ScrollingStateNodes, and when the timing is just wrong we get into a 
51625         state where the ScrollingTree has a set of incorrect information. 
51626         This patch fixes the bug by making sure the ScrollingStateNodes keep 
51627         the ScrollingTree in synch with their re-set data.
51628
51629         Tell the ScrollingStateTree that the root layer has changed.
51630         * page/scrolling/ScrollingCoordinator.cpp:
51631         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
51632
51633         New virtual function will set every property as having changed.
51634         * page/scrolling/ScrollingStateNode.h:
51635         (WebCore::ScrollingStateNode::setHasChangedProperties):
51636         * page/scrolling/ScrollingStateScrollingNode.cpp:
51637         (WebCore::ScrollingStateScrollingNode::setHasChangedProperties):
51638         (WebCore):
51639         * page/scrolling/ScrollingStateScrollingNode.h:
51640
51641         When the root layer changes, make sure we update the ScrollingTree 
51642         appropriately by indicating that every property could have changed.
51643         * page/scrolling/ScrollingStateTree.cpp:
51644         (WebCore::ScrollingStateTree::rootLayerDidChange):
51645         (WebCore):
51646         * page/scrolling/ScrollingStateTree.h:
51647         (ScrollingStateTree):
51648
51649 2012-10-10  MORITA Hajime  <morrita@google.com>
51650
51651         [Chromium] Crash on SpellChecker::didCheck()
51652         https://bugs.webkit.org/show_bug.cgi?id=98476
51653
51654         Reviewed by Kent Tamura.
51655
51656         SpellChecker::didCheck() assumed m_processingRequest is non-NULL. However, SpellChecker::invokeRequest()
51657         calls SpellCheckRequest::didCancel(), which results didCheck() with NULL m_processingRequest.
51658         This chagne eliminates the problematic didCheck().
51659
51660         No new tests. The case depends on specific timing and is hard to hit by automated testing.
51661
51662         * editing/SpellChecker.cpp:
51663         (WebCore::SpellChecker::didCheck):
51664
51665 2012-10-10  MORITA Hajime  <morrita@google.com>
51666
51667         https://bugs.webkit.org/show_bug.cgi?id=95664
51668         [Shadow DOM] should be able to be available without <style scoped>
51669
51670         Reviewed by Dimitri Glazkov.
51671
51672         This change relaxes ENABLE(STYLE_SCOPED) compilation guard
51673         and styleScopedEnabled() runtime guard. The flags now masks
51674         user visible bits of the code, rather than all of it.
51675         This change also eliminates some redundant guards for simplicity.
51676
51677         Test: fast/dom/shadow/style-scoped-not-enabled.html
51678
51679         * css/StyleResolver.cpp:
51680         (WebCore::StyleResolver::matchScopedAuthorRules):
51681         (WebCore::StyleResolver::locateCousinList):
51682         (WebCore::StyleResolver::canShareStyleWithElement):
51683         (WebCore::StyleResolver::locateSharedStyle):
51684         * css/StyleScopeResolver.cpp:
51685         (WebCore::StyleScopeResolver::scopeFor):
51686         * css/StyleScopeResolver.h:
51687         (WebCore):
51688         * html/HTMLStyleElement.cpp:
51689         (WebCore::HTMLStyleElement::HTMLStyleElement):
51690         (WebCore::HTMLStyleElement::parseAttribute):
51691         (WebCore::HTMLStyleElement::scopedAttributeChanged):
51692         (WebCore::HTMLStyleElement::isRegisteredAsScoped):
51693         (WebCore::HTMLStyleElement::registerWithScopingNode):
51694         (WebCore::HTMLStyleElement::unregisterWithScopingNode):
51695         (WebCore::HTMLStyleElement::insertedInto):
51696         (WebCore::HTMLStyleElement::removedFrom):
51697         (WebCore::HTMLStyleElement::scoped):
51698         (WebCore::HTMLStyleElement::scopingElement):
51699         * html/HTMLStyleElement.h:
51700         (HTMLStyleElement):
51701         * testing/InternalSettings.cpp: Exporsing a flag for testing.
51702         (WebCore::InternalSettings::Backup::Backup):
51703         (WebCore::InternalSettings::Backup::restoreTo):
51704         (WebCore::InternalSettings::setStyleScopedEnabled):
51705         (WebCore):
51706         * testing/InternalSettings.h: Exporsing a flag for testing.
51707         (Backup):
51708         (InternalSettings):
51709         * testing/InternalSettings.idl: Exporsing a flag for testing.
51710
51711 2012-10-10  Roger Fong  <roger_fong@apple.com>
51712
51713         [WebGL] [On Mac] queried attributes and uniforms need to return the original variable name, not the mapped name.
51714         https://bugs.webkit.org/show_bug.cgi?id=98470
51715
51716         Reviewed by Timothy Horton.
51717
51718         When a variable name is too long we translate to a shorter version and keep a mapping between the long and short names.
51719         However, when querying for a variable client side using getActiveAttrib or getActiveUniform, we accidentally return the 
51720         translated names. This fix makes these methods return the original variable names.
51721
51722         Tested using Khronos WebGL conformance suite:
51723         conformance/glsl/misc/glsl-long-variable-names.html
51724
51725         * platform/graphics/GraphicsContext3D.h:
51726         (GraphicsContext3D):
51727         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp: getActiveAttrib and getActiveUniform
51728         now use GraphicsContext3D::originalSymbolName to find the original variable name.
51729         (WebCore::GraphicsContext3D::getActiveAttrib):
51730         (WebCore::GraphicsContext3D::getActiveUniform):
51731         (WebCore):
51732         (WebCore::GraphicsContext3D::originalSymbolName): This method returns the original variable name given 
51733         the mapped name.
51734
51735 2012-10-10 Brady Eidson  <beidson@apple.com>
51736
51737         Switch over CachedResource::data() from taking a SharedBuffer to taking a ResourceBuffer.
51738         https://bugs.webkit.org/show_bug.cgi?id=98952
51739
51740         Reviewed by Anders Carlsson.
51741
51742         No new tests (No behavior change).
51743
51744         * html/ImageDocument.cpp:
51745         (WebCore::ImageDocumentParser::appendBytes):
51746         (WebCore::ImageDocumentParser::finish):
51747         * loader/SubresourceLoader.cpp:
51748         (WebCore::SubresourceLoader::sendDataToResource):
51749         (WebCore::SubresourceLoader::didFinishLoading):
51750         * loader/cache/CachedCSSStyleSheet.cpp:
51751         (WebCore::CachedCSSStyleSheet::data):
51752         * loader/cache/CachedCSSStyleSheet.h:
51753         (WebCore):
51754         (CachedCSSStyleSheet):
51755         * loader/cache/CachedFont.cpp:
51756         (WebCore::CachedFont::data):
51757         * loader/cache/CachedFont.h:
51758         (WebCore):
51759         (CachedFont):
51760         * loader/cache/CachedImage.cpp:
51761         (WebCore::CachedImage::data):
51762         * loader/cache/CachedImage.h:
51763         (CachedImage):
51764         * loader/cache/CachedRawResource.cpp:
51765         (WebCore::CachedRawResource::data):
51766         * loader/cache/CachedRawResource.h:
51767         (CachedRawResource):
51768         * loader/cache/CachedResource.cpp:
51769         (WebCore::CachedResource::data):
51770         * loader/cache/CachedResource.h:
51771         (CachedResource):
51772         * loader/cache/CachedSVGDocument.cpp:
51773         (WebCore::CachedSVGDocument::data):
51774         * loader/cache/CachedSVGDocument.h:
51775         (CachedSVGDocument):
51776         * loader/cache/CachedScript.cpp:
51777         (WebCore::CachedScript::data):
51778         * loader/cache/CachedScript.h:
51779         (CachedScript):
51780         * loader/cache/CachedShader.cpp:
51781         (WebCore::CachedShader::data):
51782         * loader/cache/CachedShader.h:
51783         (CachedShader):
51784         * loader/cache/CachedTextTrack.cpp:
51785         (WebCore::CachedTextTrack::data):
51786         * loader/cache/CachedTextTrack.h:
51787         (CachedTextTrack):
51788         * loader/cache/CachedXSLStyleSheet.cpp:
51789         (WebCore::CachedXSLStyleSheet::data):
51790         * loader/cache/CachedXSLStyleSheet.h:
51791         (CachedXSLStyleSheet):
51792
51793 2012-10-10  Jon Lee  <jonlee@apple.com>
51794
51795         [WK2] Activate plugins when user clicks on snapshot
51796         https://bugs.webkit.org/show_bug.cgi?id=98328
51797         <rdar://problem/12426681>
51798
51799         Reviewed by Brady Eidson.
51800
51801         Extend the default event handler to deal with plugins with snapshots.
51802         When the user clicks on the placeholder, the plugin is recreated and displayed.
51803
51804         * loader/FrameLoaderClient.h: Add new client function recreatePlugin(), which is
51805         expected to re-create the plugin with the same parameters as when it was run to
51806         obtain the plugin's snapshot placeholder.
51807
51808         * loader/EmptyClients.cpp: Stub implementation of recreatePlugin().
51809         * loader/EmptyClients.h:
51810         * WebCore.exp.in: Expose HTMLPlugInElement::pluginWidget().
51811
51812         * html/HTMLPlugInElement.cpp:
51813         (WebCore::HTMLPlugInElement::defaultEventHandler): Update to look for
51814         RenderSnapshottedPlugIn. If the plugin is not playing, have the renderer handle the
51815         event.
51816
51817         * rendering/RenderSnapshottedPlugIn.cpp:
51818         (WebCore::RenderSnapshottedPlugin::getCursor): Set to hand cursor when the plugin is not
51819         playing.
51820         (WebCore::RenderSnapshottedPlugIn::handleEvent): If the user clicked on the plugin using the
51821         left button, update the state of the element to playing. Recreate the plugin if the widget exists
51822         to begin with. The cached snapshot image will be saved for possible reuse on back/forward navigation.
51823         * rendering/RenderSnapshottedPlugIn.h:
51824         (RenderSnapshottedPlugIn):
51825
51826 2012-10-10  Kenichi Ishibashi  <bashi@chromium.org>
51827
51828         FontVerticalDataCache should allow zero as a key value
51829         https://bugs.webkit.org/show_bug.cgi?id=98877
51830
51831         Reviewed by Tony Chang.
51832
51833         Use WTF::UnsignedWithZeroKeyHashTraits for type definition of
51834         FontVerticalDataCache.
51835
51836         No new tests because there is no certain way to make
51837         FontPlatformDataHarfBuzz::uniqueID() be zero.
51838
51839         * platform/graphics/FontCache.cpp:
51840         (WebCore):
51841         * platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:
51842         (WebCore::FontPlatformData::verticalData): Removed zero check of uniqueID().
51843         (WebCore::FontPlatformData::openTypeTable): Ditto.
51844
51845 2012-10-10  Regina Chung  <heejin.r.chung@samsung.com>
51846
51847         [EFL] Use the shareable GraphicsContext3DOpenGL* implementation.
51848         https://bugs.webkit.org/show_bug.cgi?id=96627
51849
51850         Reviewed by Kenneth Rohde Christiansen.
51851
51852         Changed EFL implementation of GraphicsContext3D(GC3D) to use GraphicsContext3DOpenGL*.
51853         It was initially implemented in a different way, due to characteristics of Evas,
51854         but it would be better to use the common implementation and find another way
51855         to deal with Evas, especially because all the duplicated code.
51856
51857         No new tests. No functional changes.
51858
51859         * PlatformEfl.cmake: Removed cairo implementation of GC3D and added efl files to WebCore_SOURCES.
51860         * platform/graphics/efl/GraphicsContext3DEfl.cpp: Modified code so GC3DOpenGL* can be used.
51861         (WebCore::GraphicsContext3D::create):
51862         (WebCore::GraphicsContext3D::GraphicsContext3D):
51863         (WebCore::GraphicsContext3D::platformLayer):
51864         (WebCore::GraphicsContext3D::makeContextCurrent):
51865         (WebCore::GraphicsContext3D::setContextLostCallback):
51866         (WebCore::GraphicsContext3D::setErrorMessageCallback):
51867         (WebCore::GraphicsContext3D::paintToCanvas):
51868         (WebCore):
51869         (WebCore::GraphicsContext3D::createGraphicsSurfaces):
51870         (WebCore::GraphicsContext3D::releaseShaderCompiler):
51871         (WebCore::GraphicsContext3D::getImageData):
51872         * platform/graphics/efl/GraphicsContext3DPrivate.cpp: Removed functions implemented in GC3DOpenGL*
51873         (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
51874         (WebCore):
51875         (WebCore::GraphicsContext3DPrivate::~GraphicsContext3DPrivate):
51876         (WebCore::GraphicsContext3DPrivate::createSurface):
51877         (WebCore::GraphicsContext3DPrivate::platformGraphicsContext3D):
51878         (WebCore::GraphicsContext3DPrivate::makeContextCurrent):
51879         (WebCore::GraphicsContext3DPrivate::isGLES2Compliant):
51880         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
51881         * platform/graphics/efl/GraphicsContext3DPrivate.h: Removed functions implemented in GC3DOpenGL*
51882         (GraphicsContext3DPrivate):
51883
51884 2012-10-10  Tony Chang  <tony@chromium.org>
51885
51886         Unreviewed, rolling out r130937, r130949, r130955, and
51887         r130957.
51888         http://trac.webkit.org/changeset/130937
51889         http://trac.webkit.org/changeset/130949
51890         http://trac.webkit.org/changeset/130955
51891         http://trac.webkit.org/changeset/130957
51892         https://bugs.webkit.org/show_bug.cgi?id=94290
51893
51894         Breaks Qt build
51895
51896         * CMakeLists.txt:
51897         * DerivedSources.make:
51898         * DerivedSources.pri:
51899         * GNUmakefile.am:
51900         * WebCore.gyp/WebCore.gyp:
51901         * WebCore.gyp/scripts/action_preprocessgrammar.py: Removed.
51902         * WebCore.vcproj/WebCore.vcproj:
51903         * WebCore.xcodeproj/project.pbxproj:
51904         * css/CSSGrammar.y: Renamed from Source/WebCore/css/CSSGrammar.y.in.
51905         * css/CSSGrammar.y.includes: Removed.
51906         * css/makegrammar.pl:
51907
51908 2012-10-10  Rob Buis  <rbuis@rim.com>
51909
51910         [BlackBerry] Adapt to new image for search-cancel
51911         https://bugs.webkit.org/show_bug.cgi?id=98954
51912
51913         Reviewed by Antonio Gomes.
51914
51915         The new image for search-cancel is bigger than the old one, so invert the scaling.
51916
51917         * platform/blackberry/RenderThemeBlackBerry.cpp:
51918         (WebCore::RenderThemeBlackBerry::adjustSearchFieldCancelButtonStyle):
51919
51920 2012-10-10  Tony Chang  <tony@chromium.org>
51921
51922         Unreviewed, another speculative fix for Qt Win.
51923
51924         * DerivedSources.pri: Pass --preprocessor to the perl script.
51925         * css/makegrammar.pl: Use --preprocessor instead of /usr/bin/gcc.
51926
51927 2012-10-10  Tony Chang  <tony@chromium.org>
51928
51929         Unreviewed, another speculative fix for Qt Win.
51930
51931         * DerivedSources.pri: Make the path slash marks be forward slashes to the .in file.
51932
51933 2012-10-10  David Barton  <dbarton@mathscribe.com>
51934
51935         Turn on ENABLE_MATHML for Chromium
51936         https://bugs.webkit.org/show_bug.cgi?id=96960
51937
51938         Reviewed by Adam Barth.
51939
51940         Add the rendering/mathml directory to search.
51941
51942         * WebCore.gyp/WebCore.gyp:
51943
51944 2012-10-10  Tony Chang  <tony@chromium.org>
51945
51946         Unreviewed, speculative build fix for Qt Win.
51947
51948         * css/makegrammar.pl: Rather than making a temp file, use a pipe to
51949         pass data from gcc to the final output file.
51950
51951 2012-10-10  Brady Eidson  <beidson@apple.com>
51952
51953         Switch CachedResource over from SharedBuffer to a new ResourceBuffer
51954         https://bugs.webkit.org/show_bug.cgi?id=98541
51955
51956         Reviewed by Anders Carlsson.
51957
51958         As part of preparation for a WebKit2 NetworkProcess, we need to change the data handle shared
51959         between CachedResources and ResourceLoaders to be one that can be backed by something other
51960         than a SharedBuffer.
51961
51962         ResourceBuffer is this new object. Right now it is directly backed by a SharedBuffer and there
51963         should be no change in behavior.
51964
51965         No new tests (No behavior change).
51966
51967         * WebCore.exp.in:
51968         * WebCore.xcodeproj/project.pbxproj:
51969         * WebCore.vcproj/WebCore.vcproj:
51970         * CMakeLists.txt:
51971         * GNUmakefile.list.am:
51972         * Target.pri:
51973         * WebCore.gypi:
51974
51975         Implementation of the new ResourceBuffer, backed directly by a SharedBuffer:
51976         * loader/ResourceBuffer.cpp: Added.
51977         (WebCore):
51978         (WebCore::ResourceBuffer::ResourceBuffer):
51979         (WebCore::ResourceBuffer::~ResourceBuffer):
51980         (WebCore::ResourceBuffer::data):
51981         (WebCore::ResourceBuffer::size):
51982         (WebCore::ResourceBuffer::isEmpty):
51983         (WebCore::ResourceBuffer::getSomeData):
51984         (WebCore::ResourceBuffer::sharedBuffer):
51985         (WebCore::ResourceBuffer::copy):
51986         (WebCore::ResourceBuffer::hasPurgeableBuffer):
51987         (WebCore::ResourceBuffer::releasePurgeableBuffer):
51988         (WebCore::ResourceBuffer::createCFData):
51989
51990         * loader/ResourceBuffer.h: Added.
51991         (WebCore):
51992         (ResourceBuffer):
51993         (WebCore::ResourceBuffer::create):
51994         (WebCore::ResourceBuffer::adoptSharedBuffer):
51995         * loader/mac/ResourceBuffer.mm: Added.
51996
51997         (WebCore):
51998         (WebCore::ResourceBuffer::createNSData):
51999
52000         Switch CachedResource over to using it:
52001         * loader/cache/CachedResource.cpp:
52002         (WebCore::CachedResource::makePurgeable):
52003
52004         * loader/cache/CachedResource.h:
52005         (WebCore):
52006         (WebCore::CachedResource::resourceBuffer):
52007         (CachedResource):
52008
52009         Switch all the other CachedResource subclasses over to using it:
52010         * loader/cache/CachedCSSStyleSheet.cpp:
52011         (WebCore::CachedCSSStyleSheet::data):
52012
52013         * loader/cache/CachedFont.cpp:
52014         (WebCore::CachedFont::data):
52015         (WebCore::CachedFont::ensureCustomFontData):
52016
52017         * loader/cache/CachedImage.cpp:
52018         (WebCore::CachedImage::didAddClient):
52019         (WebCore::CachedImage::data):
52020
52021         * loader/cache/CachedRawResource.cpp:
52022         (WebCore::CachedRawResource::data):
52023
52024         * loader/cache/CachedScript.cpp:
52025         (WebCore::CachedScript::data):
52026
52027         * loader/cache/CachedShader.cpp:
52028         (WebCore::CachedShader::data):
52029
52030         * loader/cache/CachedTextTrack.cpp:
52031         (WebCore::CachedTextTrack::data):
52032         
52033         * loader/cache/CachedXSLStyleSheet.cpp:
52034         (WebCore::CachedXSLStyleSheet::data):
52035
52036         Switch other affect parties over to using it:
52037         * inspector/InspectorPageAgent.cpp:
52038         (WebCore::decodeBuffer):
52039         (WebCore::InspectorPageAgent::cachedResourceContent):
52040         (WebCore::InspectorPageAgent::sharedBufferContent):
52041
52042         * loader/DocumentLoader.cpp:
52043         (WebCore::DocumentLoader::subresource):
52044
52045         * loader/TextTrackLoader.cpp:
52046         (WebCore::TextTrackLoader::processNewCueData):
52047         (WebCore::TextTrackLoader::didReceiveData):
52048
52049         * loader/archive/cf/LegacyWebArchive.cpp:
52050         (WebCore::LegacyWebArchive::create):
52051
52052         * loader/icon/IconLoader.cpp:
52053         (WebCore::IconLoader::notifyFinished):
52054
52055         * platform/mac/PasteboardMac.mm:
52056         (WebCore::fileWrapperForImage):
52057
52058 2012-10-10  Julien Chaffraix  <jchaffraix@webkit.org>
52059
52060         Unreviewed build fix after r130940.
52061
52062         * platform/graphics/skia/GraphicsContextSkia.cpp:
52063         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52064         Avoid redefining the same variable twice.
52065
52066 2012-10-10  Alexis Menard  <alexis@webkit.org>
52067
52068         [Mac] Deprecate getPropertyShorthand from objective c bindings for future removal
52069         https://bugs.webkit.org/show_bug.cgi?id=98916
52070
52071         Reviewed by Timothy Hatcher.
52072
52073         Mark getPropertyShorthand as deprecated so we can remove it later. It will allow us
52074         to remove getPropertyShorthand from the web exposed API (this function is not part of
52075         any specification, it was there for historical reason).
52076
52077         No new tests : just mark a function as deprecated.
52078
52079         * bindings/objc/PublicDOMInterfaces.h:
52080
52081 2012-10-10  Mike West  <mkwst@chromium.org>
52082
52083         Web Inspector: add support for %c (style) in console API
52084         https://bugs.webkit.org/show_bug.cgi?id=69401
52085
52086         Reviewed by Pavel Feldman.
52087
52088         This patch mimics Firebug's '%c' option when calling 'console.log'
52089         messages. 'console.log("%cBlue!", "color: blue;");' will write blue
52090         text to the console, and so on.
52091
52092         To match Firebug's behavior, multiple '%c' entries will overwrite each
52093         other: only one style will be applied. Sorry, folks.
52094
52095         Test: inspector/console/console-format-style.html
52096
52097         * inspector/front-end/ConsoleMessage.js:
52098         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.styleFormatter):
52099         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString.append):
52100         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
52101
52102 2012-10-10  Varun Jain  <varunjain@chromium.org>
52103
52104         [chromium] Spelling and grammar markers are pixelated in hidpi.
52105         https://bugs.webkit.org/show_bug.cgi?id=98339
52106
52107         Reviewed by Stephen White.
52108
52109         We create separate bitmaps for markers in normal and hidpi mode as per
52110         specification from UX and choose the right bitmap based on the current
52111         device scale factor.
52112
52113         Tests: editing/spelling/grammar-markers-hidpi.html
52114                editing/spelling/inline-spelling-markers-hidpi.html
52115
52116         * platform/graphics/skia/GraphicsContextSkia.cpp:
52117         (WebCore::draw2xMarker):
52118         (WebCore):
52119         (WebCore::draw1xMarker):
52120         (WebCore::GraphicsContext::drawLineForDocumentMarker):
52121         * platform/graphics/skia/PlatformContextSkia.cpp:
52122         (WebCore::PlatformContextSkia::PlatformContextSkia):
52123         * platform/graphics/skia/PlatformContextSkia.h:
52124         (WebCore::PlatformContextSkia::deviceScaleFactor):
52125         (WebCore::PlatformContextSkia::setDeviceScaleFactor):
52126         (PlatformContextSkia):
52127
52128 2012-10-10  Pablo Flouret  <pablof@motorola.com>
52129
52130         Pre-process CSSGrammar.y before running through bison.
52131         https://bugs.webkit.org/show_bug.cgi?id=94290
52132
52133         Reviewed by Tony Chang.
52134
52135         Running CSSGrammar.y through a preprocessor allows the use of feature
52136         defines in all places of the yacc file (i.e. not just in C blocks).
52137         Mostly useful to be able to keep every part of a feature under feature
52138         flags for self-documenting purposes.
52139
52140         No new tests, CSSGrammar.y should be generated correctly and everything
52141         should keep working as before.
52142
52143         * CMakeLists.txt:
52144         * DerivedSources.make:
52145         * DerivedSources.pri:
52146         * GNUmakefile.am:
52147             Modify build systems to use makegrammar.pl to generate the .y files
52148             and run those through bison.
52149
52150         * WebCore.gyp/WebCore.gyp:
52151         * WebCore.gyp/scripts/action_preprocessgrammar.py: Added.
52152             Add a new action to preprocess the CSSGrammar.y.in file before the
52153             bison rule is run.
52154
52155         * WebCore.vcproj/WebCore.vcproj:
52156         * WebCore.xcodeproj/project.pbxproj:
52157             Add the new .y.in / .y.includes files.
52158
52159         * css/CSSGrammar.y.in: Renamed from Source/WebCore/css/CSSGrammar.y.
52160             Also moved the top declarations section that has includes, defines,
52161             etc. to its own file. These shouldn't be touched by the first
52162             pass of the preprocessor. And changed the existing ENABLE(FEATURE)
52163             ifdefs to ENABLE_FEATURE since the ENABLE() macro is not available
52164             yet.
52165         * css/CSSGrammar.y.includes: Added.
52166             The aforementioned declarations header section. After the .y.in file
52167             is processed it will be concatenated with this one to make the
52168             CSSGrammar.y file.
52169
52170         * css/makegrammar.pl:
52171             Modify the script to handle .y.in files.
52172
52173 2012-10-10  Luciano Wolf  <luciano.wolf@openbossa.org>
52174
52175         EventHandler::handleGestureLongPress breaks compilation if CONTEXT_MENUS isn't set
52176         https://bugs.webkit.org/show_bug.cgi?id=98890
52177
52178         Reviewed by Caio Marcelo de Oliveira Filho.
52179
52180         * page/EventHandler.cpp:
52181         (WebCore::EventHandler::handleGestureLongPress):
52182
52183 2012-10-10  David Grogan  <dgrogan@chromium.org>
52184
52185         Inspector: display IndexedDB integer versions
52186         https://bugs.webkit.org/show_bug.cgi?id=95816
52187
52188         Reviewed by Vsevolod Vlasov.
52189
52190         Added basic test to database-structure.html
52191
52192         * inspector/Inspector.json:
52193         * inspector/InspectorIndexedDBAgent.cpp:
52194         (WebCore):
52195         * inspector/front-end/IndexedDBModel.js:
52196         (WebInspector.IndexedDBModel.prototype._loadDatabase.callback):
52197         (WebInspector.IndexedDBModel.prototype._loadDatabase):
52198         (WebInspector.IndexedDBModel.Database):
52199         * inspector/front-end/IndexedDBViews.js:
52200         (WebInspector.IDBDatabaseView):
52201         (WebInspector.IDBDatabaseView.prototype._refreshDatabase):
52202
52203 2012-10-10  Simon Fraser  <simon.fraser@apple.com>
52204
52205         Store a visible rect in GraphicsLayers, and optionally dump it in layerTreeAsText
52206         https://bugs.webkit.org/show_bug.cgi?id=98839
52207
52208         Reviewed by Sam Weinig.
52209
52210         To replace CATiledLayer with TileCaches, we need to be able to compute the visible part of a GraphicsLayer,
52211         in order to limit the extent of TileCache tiles. Reuse the existing code in GraphicsLayerCA for this,
52212         but store the computed rect in m_visibleRect.
52213         
52214         Add a flag to layerTreeAsText() so that tests can optionally include this visible rect in
52215         layer tree dumps. This output will be platform-specific, so we don't want to do it unconditionally.
52216
52217         * WebCore.exp.in: Signature of Frame::layerTreeAsText() changed.
52218         * page/Frame.cpp:
52219         (WebCore::Frame::layerTreeAsText): Change to take some enum flags rather than just a bool.
52220         * page/Frame.h:
52221         * platform/graphics/GraphicsLayer.cpp:
52222         (WebCore::GraphicsLayer::writeIndent): Make into a static class method so subclasses can use it.
52223         (WebCore::GraphicsLayer::dumpProperties): Call a virtual dumpAdditionalProperties() for subclasses.
52224         (showGraphicsLayerTree):
52225         * platform/graphics/GraphicsLayer.h:
52226         (GraphicsLayer): New LayerTreeAsTextIncludeVisibleRects flag.
52227         (WebCore::GraphicsLayer::dumpAdditionalProperties): New virtual method.
52228         * platform/graphics/ca/GraphicsLayerCA.cpp:
52229         (WebCore::GraphicsLayerCA::recursiveCommitChanges): clipRectForChildren and clipRectForSelf
52230         were previously unused and buggy. Fix to correctly compute clipRectForSelf, to assign
52231         to m_visibleRect.
52232         (WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump m_visibleRect.
52233         * platform/graphics/ca/GraphicsLayerCA.h:
52234         (GraphicsLayerCA):
52235         * rendering/RenderLayerCompositor.cpp:
52236         (WebCore::RenderLayerCompositor::layerTreeAsText): Convert the flags from Frame flags
52237         to GraphicsLayerFlags and pass them along.
52238         * rendering/RenderLayerCompositor.h:
52239         (RenderLayerCompositor):
52240         * testing/Internals.cpp:
52241         (WebCore::Internals::layerTreeAsText): Overloaded method to handle the optional IDL arguments.
52242         * testing/Internals.h: Add enum.
52243         * testing/Internals.idl: Add optional flags, and a const short to describe the flags.
52244
52245 2012-10-10  Shinya Kawanaka  <shinyak@chromium.org>
52246
52247         Needs internal API to return distributed nodes for InsertionPoint
52248         https://bugs.webkit.org/show_bug.cgi?id=98868
52249
52250         Reviewed by Hajime Morita.
52251
52252         When testing insertion points, we would like to have an internal API which returns a node list
52253         distributed to an insertion point.
52254
52255         We've added the API in Internals.
52256
52257         Test: fast/dom/shadow/distributed-nodes.html
52258
52259         * WebCore.exp.in:
52260         * html/shadow/InsertionPoint.cpp:
52261         (WebCore::InsertionPoint::distributedNodes): Returns the distributed nodes. When InsertionPoint is not
52262         attached, the result will be null, since the distribution is not calculated correctly.
52263         (WebCore):
52264         * html/shadow/InsertionPoint.h:
52265         (InsertionPoint):
52266         * testing/Internals.cpp:
52267         (WebCore::Internals::distributedNodes):
52268         (WebCore):
52269         * testing/Internals.h:
52270         (Internals):
52271         * testing/Internals.idl:
52272
52273 2012-10-10  Wei James  <james.wei@intel.com>
52274
52275         [Chromium]Android x86 content shell debug build warning for uninitialized value used as error with gcc 4.6
52276         https://bugs.webkit.org/show_bug.cgi?id=98629
52277
52278         Reviewed by Adam Barth.
52279
52280         Warning was taken as error for uninitialized value being used when
52281         building content shell for Android x86 with gcc 4.6.
52282
52283         * WebCore.gyp/WebCore.gyp:
52284
52285 2012-10-10  Andrei Bucur  <abucur@adobe.com>
52286
52287         [CSS Regions] Create a separate list for the invalid regions
52288         https://bugs.webkit.org/show_bug.cgi?id=98752
52289
52290         Reviewed by Andreas Kling.
52291
52292         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:
52293         - iterations through the region list don't need to worry about invalid regions
52294         - accessing the first/last region is straightforward
52295         - list manipulations are easier to implement (e.g. binary search for a region)
52296
52297         Tests: Adapted fast/regions/flows-dependency-same-flow.html to use the new dump format for the region chain.
52298
52299         * dom/WebKitNamedFlow.cpp:
52300         (WebCore::WebKitNamedFlow::getRegionsByContent): Now returns only the valid regions.
52301         (WebCore::WebKitNamedFlow::getRegions): Now returns only the valid regions.
52302         * rendering/RenderFlowThread.cpp:
52303         (WebCore::RenderFlowThread::RenderFlowThread):
52304         (WebCore::RenderFlowThread::layout):
52305         (WebCore::RenderFlowThread::updateLogicalWidth):
52306         (WebCore::RenderFlowThread::computeLogicalHeight):
52307         (WebCore::RenderFlowThread::repaintRectangleInRegions):
52308         (WebCore::RenderFlowThread::regionAtBlockOffset):
52309         (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
52310         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
52311         (WebCore::RenderFlowThread::firstRegion):
52312         (WebCore::RenderFlowThread::lastRegion):
52313         (WebCore::RenderFlowThread::computeOverflowStateForRegions):
52314         (WebCore::RenderFlowThread::regionInRange):
52315         (WebCore::RenderFlowThread::checkRegionsWithStyling):
52316         (WebCore::RenderFlowThread::objectInFlowRegion):
52317         (WebCore::RenderFlowThread::autoLogicalHeightRegionsCount):
52318         * rendering/RenderFlowThread.h:
52319         * rendering/RenderNamedFlowThread.cpp:
52320         (WebCore):
52321         (WebCore::addRegionToList):
52322         (WebCore::RenderNamedFlowThread::addRegionToThread):
52323         (WebCore::RenderNamedFlowThread::removeRegionFromThread):
52324         (WebCore::RenderNamedFlowThread::checkInvalidRegions):
52325         * rendering/RenderNamedFlowThread.h:
52326         (WebCore::RenderNamedFlowThread::invalidRenderRegionList):
52327         (RenderNamedFlowThread):
52328         (WebCore::RenderNamedFlowThread::canBeDestroyed):
52329         * rendering/RenderTreeAsText.cpp:
52330         (WebCore::writeRenderRegionList):
52331         (WebCore):
52332         (WebCore::writeRenderNamedFlowThreads): The valid regions are listed first followed by the invalid regions.
52333
52334 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52335
52336         Web Inspector: [Regression] Stale revisions are not cleared when inspector is opened for the already loaded page.
52337         https://bugs.webkit.org/show_bug.cgi?id=98915
52338
52339         Reviewed by Alexander Pavlov.
52340
52341         WorkspaceController now clears stale revisions on navigation as well.
52342
52343         * inspector/front-end/Workspace.js:
52344         (WebInspector.WorkspaceController):
52345         (WebInspector.WorkspaceController.prototype._mainFrameNavigated):
52346
52347 2012-10-10  Vsevolod Vlasov  <vsevik@chromium.org>
52348
52349         Web Inspector: Exception when committing java script editing with revision history view open.
52350         https://bugs.webkit.org/show_bug.cgi?id=98908
52351
52352         Reviewed by Alexander Pavlov.
52353
52354         Added null check.
52355
52356         * inspector/front-end/RevisionHistoryView.js:
52357
52358 2012-10-10  Pavel Feldman  <pfeldman@chromium.org>
52359
52360         Web Inspector: protect node in the InspectorDOMNode::inspect
52361         https://bugs.webkit.org/show_bug.cgi?id=98914
52362
52363         Reviewed by Yury Semikhatsky.
52364
52365         * inspector/InspectorDOMAgent.cpp:
52366         (WebCore::InspectorDOMAgent::inspect):
52367
52368 2012-10-10  Mike West  <mkwst@google.com>
52369
52370         EditorCommand calls setProperty with the wrong parameters.
52371         https://bugs.webkit.org/show_bug.cgi?id=98896
52372
52373         Reviewed by Jochen Eisinger.
52374
52375         EditorCommand::executeToggleStyleInList calls
52376         StylePropertySet::setProperty with an ExceptionCode as the final
52377         argument. This only succeeds because it's automagically cast to a bool,
52378         which is what the method actually expects.
52379
52380         Implicitly passing in 'false' by dropping the parameter shouldn't change
52381         any visible functionality; no new tests are required.
52382
52383         * editing/EditorCommand.cpp:
52384         (WebCore::executeToggleStyleInList):
52385
52386 2012-10-10  Mike West  <mkwst@google.com>
52387
52388         HTMLTextFormControlElement calls setInlineStyleProperty with the wrong parameters.
52389         https://bugs.webkit.org/show_bug.cgi?id=98892
52390
52391         Reviewed by Jochen Eisinger.
52392
52393         HTMLTextFormControlElement::updatePlaceholderVisibility calls
52394         HTMLElement::setInlineStyleProperty with an ExceptionCode as the last
52395         parameter. This only succeeds because it's automagically cast to a bool,
52396         which is what the method actually expects.
52397
52398         Implicitly passing in 'false' by dropping the parameter shouldn't change
52399         any functionality; so no new tests are required.
52400
52401         * html/HTMLTextFormControlElement.cpp:
52402         (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
52403
52404 2012-10-10  Christophe Dumez  <christophe.dumez@intel.com>
52405
52406         SQLResultSet.rowsAffected not cleared
52407         https://bugs.webkit.org/show_bug.cgi?id=46070
52408
52409         Reviewed by Kenneth Rohde Christiansen.
52410
52411         SQLResultSet.rowsAffected is supposed to return the number
52412         of rows that were changed by the statement. For "SELECT"
52413         statements, it should return 0.
52414
52415         However, our implementation currently relies on sqlite3_changes()
52416         to compute this value. sqlite3_changes() returns the number of
52417         direct row changes in the most recent INSERT, UPDATE, or DELETE
52418         statement within the same trigger context. Unfortunately, the
52419         most recent INSERT, UPDATE, or DELETE statement may not be the
52420         last statement. As a consequence, if you INSERT 1 row, then
52421         do a SELECT, SQLResultSet.rowsAffected will be 1 for both the
52422         INSERT and the SELECT statements.
52423
52424         The proposed solution is to use sqlite3_total_changes() instead
52425         of sqlite3_changes(). sqlite3_total_changes() returns the number
52426         of row changes caused by INSERT, UPDATE or DELETE statements since
52427         the database connection was opened. We now store the value
52428         returned by sqlite3_total_changes() before each statement in
52429         order to return the count difference in
52430         SQLiteDatabase::lastChanges().
52431
52432         Test: storage/websql/execute-sql-rowsAffected.html
52433
52434         * platform/sql/SQLiteDatabase.cpp:
52435         (WebCore::SQLiteDatabase::SQLiteDatabase):
52436         (WebCore::SQLiteDatabase::updateLastChangesCount):
52437         (WebCore):
52438         (WebCore::SQLiteDatabase::lastChanges):
52439         * platform/sql/SQLiteDatabase.h:
52440         (SQLiteDatabase):
52441         * platform/sql/SQLiteStatement.cpp:
52442         (WebCore::SQLiteStatement::step):
52443
52444 2012-10-10  Keishi Hattori  <keishi@webkit.org>
52445
52446         REGRESSION (r129738): Calendar picker is too wide when the input is rtl
52447         https://bugs.webkit.org/show_bug.cgi?id=98881
52448
52449         Reviewed by Kent Tamura.
52450
52451         Calendar picker should use param.isCalendarRTL instead of param.isRTL but some were left.
52452
52453         No new tests. Covered by ManualTests/forms/calendar-picker.html.
52454
52455         * Resources/pagepopups/calendarPicker.js:
52456         (CalendarPicker.prototype.fixWindowSize): Calendar picker should use param.isCalendarRTL instead of param.isRTL.
52457         (DaysTable.prototype._handleKey): Ditto.
52458
52459 2012-10-10  Alexander Pavlov  <apavlov@chromium.org>
52460
52461         Web Inspector: Semantically incorrect CSS rules result in broken source code data
52462         https://bugs.webkit.org/show_bug.cgi?id=98520
52463
52464         Reviewed by Vsevolod Vlasov.
52465
52466         Pop and throw away rule data from the stack when data have been collected for a semantically invalid CSS rule
52467         (which is not going to be created).
52468
52469         * css/CSSParser.cpp:
52470         (WebCore::CSSParser::createImportRule):
52471         (WebCore::CSSParser::createFontFaceRule):
52472         (WebCore::CSSParser::createPageRule):
52473         (WebCore::CSSParser::createRegionRule):
52474
52475 2012-10-10  Zeno Albisser  <zeno@webkit.org>
52476
52477         [Qt][Mac] GL_ARB_texture_rectangle must be activated when using ANGLE.
52478         https://bugs.webkit.org/show_bug.cgi?id=98387
52479
52480         Check for the availability of GL_ARB_texture_rectangle extension.
52481         In case it is available, we activate the extension for ANGLE.
52482         This is necessary for WebGL on mac, because the GraphicsSurface
52483         on this platform is based on an IOSurface, which requires this extension.
52484
52485         Reviewed by Noam Rosenthal.
52486
52487         * platform/graphics/qt/GraphicsContext3DQt.cpp:
52488         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
52489
52490 2012-10-10  Andreas Kling  <kling@webkit.org>
52491
52492         ElementAttributeData: tighten member packing on 64-bit.
52493         <http://webkit.org/b/98861>
52494
52495         Reviewed by Anders Carlsson.
52496
52497         Pack m_isMutable and m_arraySize into the slack from the RefCounted base on 64-bit.
52498         218kB progression on Membuster3.
52499
52500         * dom/ElementAttributeData.h:
52501         (ElementAttributeData):
52502
52503 2012-10-10  Alexandre Elias  <aelias@chromium.org>
52504
52505         Text Autosizing: Counteract funky window sizing on Android.
52506         https://bugs.webkit.org/show_bug.cgi?id=98809
52507
52508         Reviewed by Adam Barth.
52509
52510         In Chrome for Android, the window sizes provided to WebCore are
52511         currently in physical screen pixels instead of
52512         device-scale-adjusted units. For example window width on a
52513         Galaxy Nexus is 720 instead of 360.  Text autosizing expects
52514         device-independent pixels.  When Chrome for Android cuts over to
52515         the new coordinate space, it will be tied to the setting
52516         applyPageScaleFactorInCompositor.
52517
52518         No new tests.
52519
52520         * rendering/TextAutosizer.cpp:
52521         (WebCore::TextAutosizer::processSubtree):
52522
52523 2012-10-09  Philip Rogers  <pdr@google.com>
52524
52525         Recursively detach SVGElementInstances
52526         https://bugs.webkit.org/show_bug.cgi?id=98851
52527
52528         Reviewed by Ryosuke Niwa and Abhishek Arya
52529
52530         Before this patch, SVGElementInstance child nodes were not being detached. This
52531         patch makes detach() recursively detach SVGElementInstances.
52532
52533         * svg/SVGElementInstance.cpp:
52534         (WebCore::SVGElementInstance::detach):
52535
52536 2012-10-09  Kenichi Ishibashi  <bashi@chromium.org>
52537
52538         [Chromium] Fix harfbuzz-ng related code after r130231
52539         https://bugs.webkit.org/show_bug.cgi?id=98858
52540
52541         Reviewed by Kent Tamura.
52542
52543         Replace first/second with key/value.
52544
52545         No new tests. No changes in behavior.
52546
52547         * platform/graphics/harfbuzz/ng/HarfBuzzNGFaceSkia.cpp:
52548         (WebCore::harfbuzzGetGlyph):
52549         * platform/graphics/skia/SimpleFontDataSkia.cpp:
52550         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
52551
52552 2012-10-09  Enrica Casucci  <enrica@apple.com>
52553
52554         Only measure text once instead of twice when performing line layout.
52555         https://bugs.webkit.org/show_bug.cgi?id=98317
52556         <rdar://problem/12080821>
52557
52558         Reviewed by Dan Bernstein.
52559
52560         Since we are measuring each word to find out where the line break should occur,
52561         we should cache that information to avoid measuring the run again when
52562         creating the line box. The bulk of the change is in nextLineBreak, where
52563         the measurements are collected and placed in a vector so that they can
52564         be consumed in setLogicalWidthForTextRun where we used to measure the
52565         text one more time.
52566         Each entry in the vector is a WordMeasurement object that contains information
52567         about the start and end offset in the run, the renderer, the measured width
52568         and, possibly, a list of fallback fonts.
52569         When we need to compute the width of the run to create the line box, we add
52570         all the measurements for the given renderer in the run to get the total width.
52571         This optiomization is currently disabled for platforms using HarfBuzz.
52572
52573         * platform/graphics/Font.cpp:
52574         (WebCore::Font::width): Added fallback fonts parameter.
52575         * platform/graphics/Font.h:
52576         (Font): Added fallback fonts parameter to the width static member function.
52577         This method is called when we compute the width using TextLayout.
52578         * platform/graphics/mac/ComplexTextController.cpp:
52579         (WebCore::TextLayout::width): Added fallback fonts parameter.
52580         (WebCore::Font::width):
52581         (WebCore::ComplexTextController::advance):
52582         * platform/graphics/mac/ComplexTextController.h:
52583         (ComplexTextController): Added fallback fonts parameter to advance method.
52584         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
52585         * rendering/RenderBlockLineLayout.cpp:
52586         (WordMeasurement): Added new class to hold measurement information.
52587         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
52588         cached information.
52589         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
52590         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
52591         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
52592         vector and its use.
52593         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
52594         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
52595         the measurements of the individual words and add them to the vector.
52596
52597 2012-10-09  Andreas Kling  <kling@webkit.org>
52598
52599         GlyphPageTreeNode should use HashMap<OwnPtr>.
52600         <http://webkit.org/b/98845>
52601
52602         Reviewed by Dan Bernstein.
52603
52604         - Replace manual memory management by OwnPtrs.
52605         - Added a GlyphPageTreeNodeMap typedef to make call sites look a bit nicer.
52606         = Changed some hashmap get()/remove() pairs to use the more efficient take() instead.
52607         - Made the constructor private, it has no external clients.
52608
52609         * platform/graphics/GlyphPageTreeNode.cpp:
52610         (WebCore::GlyphPageTreeNode::getRoot):
52611         (WebCore::GlyphPageTreeNode::pageCount):
52612         (WebCore::GlyphPageTreeNode::getChild):
52613         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
52614         (WebCore::GlyphPageTreeNode::pruneFontData):
52615         (WebCore::GlyphPageTreeNode::showSubtree):
52616         * platform/graphics/GlyphPageTreeNode.h:
52617         (GlyphPageTreeNode):
52618         (WebCore::GlyphPageTreeNode::GlyphPageTreeNode):
52619
52620 2012-10-09  Kent Tamura  <tkent@chromium.org>
52621
52622         Sub-fields in input[type=time] should not be focusable if the input is disabled or read-only
52623         https://bugs.webkit.org/show_bug.cgi?id=98850
52624
52625         Reviewed by Kentaro Hara.
52626
52627         Covered by additional test cases of
52628         time-multiple-fields/time-multiple-fields-keyboard-events.html and
52629         time-multiple-fields/time-multiple-fields-mouse-events.html.
52630
52631         * html/shadow/DateTimeFieldElement.h:
52632         (FieldOwner): Add isFieldOwnerDisabledOrReadOnly.
52633         * html/shadow/DateTimeFieldElement.cpp:
52634         (WebCore::DateTimeFieldElement::isFocusable):
52635         Check isFieldOwnerDisabledOrReadOnly, and calls HTMLElement::isFocusable()
52636         just in case.
52637         * html/shadow/DateTimeEditElement.cpp:
52638         (WebCore::DateTimeEditElement::isFieldOwnerDisabledOrReadOnly): Added.
52639         * html/shadow/DateTimeEditElement.h:
52640         (DateTimeEditElement): Declare isFieldOwnerDisabledOrReadOnly.
52641
52642 2012-10-09  Robert Kroeger  <rjkroege@chromium.org>
52643
52644         [chromium] revert fling deacceleration parameter change
52645         https://bugs.webkit.org/show_bug.cgi?id=98820
52646
52647         Reviewed by Adrienne Walker.
52648
52649         After an extended discussion, it has been decided that a previous
52650         adjustment to fling deacceleration parameters should be reverted.
52651
52652         Tested by existing unit tests.
52653
52654         * platform/TouchFlingPlatformGestureCurve.cpp:
52655         (WebCore::TouchFlingPlatformGestureCurve::createForTouchPad):
52656         (WebCore::TouchFlingPlatformGestureCurve::createForTouchScreen):
52657
52658 2012-10-09  Kent Tamura  <tkent@chromium.org>
52659
52660         Should reject invalid dates constructed with multiple fields UI
52661         https://bugs.webkit.org/show_bug.cgi?id=98727
52662
52663         Reviewed by Hajime Morita.
52664
52665         In input[type=date] with multiple fields UI, we allow users to set
52666         day-of-month value to 1-31 regardless of the month value. So users can
52667         construct an invalid date such as "2012-02-31". We should sanitize such
52668         values.
52669
52670         This change affects platforms with ENABLE_INPUT_TYPE_DATE &&
52671         ENABLE_INPUT_MULTIPLE_FIELDS_UI.
52672
52673         Test: fast/forms/date-multiple-fields/date-multiple-fields-keyboard-events.html
52674
52675         * html/BaseDateAndTimeInputType.h:
52676         (BaseDateAndTimeInputType): Make sanitizeValue protected to be called from
52677         BaseMultipleFieldsDateAndTimeInputType.
52678         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
52679         (WebCore::BaseMultipleFieldsDateAndTimeInputType::editControlValueChanged):
52680         Apply sanitizeValue to a value constructed in UI.
52681         (WebCore::BaseMultipleFieldsDateAndTimeInputType::restoreFormControlState):
52682         Ditto.
52683
52684 2012-10-09  Joe Mason  <jmason@rim.com>
52685
52686         Check for null m_frame in NetworkJob
52687         https://bugs.webkit.org/show_bug.cgi?id=98830
52688
52689         Reviewed by George Staikos.
52690
52691         PR 220025
52692
52693         * platform/network/blackberry/NetworkJob.cpp:
52694         (WebCore::NetworkJob::sendRequestWithCredentials):
52695         (WebCore::NetworkJob::storeCredentials):
52696
52697 2012-10-09  Jian Li  <jianli@chromium.org>
52698
52699         Update the CSS property used to support draggable regions.
52700         https://bugs.webkit.org/show_bug.cgi?id=97156
52701
52702         Reviewed by Adam Barth.
52703
52704         The CSS property to support draggable regions has been changed from
52705         "-webkit-widget-region" to "-webkit-app-region" in the following syntax:
52706            -webkit-app-region: drag|no-drag
52707
52708         The CSS parsing code for draggable regions is now different from the CSS
52709         parsing code for dashboard regions since we have quite different syntax.
52710
52711         We still try to share as much rendering update code as possible for
52712         these two features. To make the shared code easier to understand for
52713         both features, the name "DashboardRegions" in the shared code is changed
52714         to "AnnotatedRegions" to work for both dashboard regions and draggable
52715         regions.
52716
52717         Note that we still using WIDGET_REGION as feature name in order not to
52718         add more changes to this patch. It will be renamed to a more appropriate
52719         name in next patch. WIDGET_REGION is now only turned on for the chromium
52720         port.
52721
52722         Test: fast/css/draggable-region-parser.html
52723
52724         * Configurations/FeatureDefines.xcconfig: Disable WIDGET_REGION feature.
52725         * WebCore.exp.in: Update the exported symbol due to renaming.
52726         * css/CSSComputedStyleDeclaration.cpp: Update the CSS parsing.
52727         (WebCore):
52728         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
52729         * css/CSSParser.cpp: Update the CSS parsing.
52730         (WebCore::CSSParser::parseValue):
52731         (WebCore):
52732         (WebCore::CSSParser::parseDashboardRegions):
52733         * css/CSSParserValues.cpp: Update the CSS parsing.
52734         (WebCore::CSSParserValue::createCSSValue):
52735         * css/CSSPrimitiveValue.cpp: Update the CSS parsing.
52736         (WebCore::isValidCSSUnitTypeForDoubleConversion):
52737         (WebCore):
52738         (WebCore::CSSPrimitiveValue::cleanup):
52739         (WebCore::CSSPrimitiveValue::customCssText):
52740         (WebCore::CSSPrimitiveValue::cloneForCSSOM):
52741         (WebCore::CSSPrimitiveValue::reportDescendantMemoryUsage):
52742         * css/CSSPrimitiveValue.h: Update the CSS parsing.
52743         (CSSPrimitiveValue):
52744         * css/CSSProperty.cpp:
52745         (WebCore::CSSProperty::isInheritedProperty):
52746         * css/CSSPropertyNames.in: Rename the CSS property for draggable region.
52747         * css/CSSValueKeywords.in: Add the keywords supported for the draggable region.
52748         * css/DashboardRegion.h: Remove WIDGET_REGION guard.
52749         (DashboardRegion):
52750         * css/StyleResolver.cpp: Update the CSS parsing.
52751         (WebCore::StyleResolver::collectMatchingRulesForList):
52752         * dom/Document.cpp: Rename dashboardRegions to annotatedRegions.
52753         (WebCore::Document::Document):
52754         (WebCore::Document::annotatedRegions):
52755         (WebCore::Document::setAnnotatedRegions):
52756         (WebCore::Document::reportMemoryUsage):
52757         * dom/Document.h: Rename dashboardRegions to annotatedRegions.
52758         (WebCore):
52759         (WebCore::Document::setAnnotatedRegionsDirty):
52760         (WebCore::Document::annotatedRegionsDirty):
52761         (WebCore::Document::hasAnnotatedRegions):
52762         (WebCore::Document::setHasAnnotatedRegions):
52763         (Document):
52764         * page/Chrome.cpp: Rename dashboardRegions to annotatedRegions.
52765         (WebCore::ChromeClient::annotatedRegionsChanged):
52766         * page/ChromeClient.h: Rename dashboardRegions to annotatedRegions.
52767         (ChromeClient):
52768         * page/FrameView.cpp: Rename dashboardRegions to annotatedRegions.
52769         (WebCore::FrameView::layout):
52770         (WebCore::FrameView::updateAnnotatedRegions):
52771         (WebCore::FrameView::paintContents):
52772         * page/FrameView.h: Rename dashboardRegions to annotatedRegions.
52773         (FrameView):
52774         * rendering/RenderInline.cpp:
52775         (WebCore::RenderInline::addAnnotatedRegions):
52776         * rendering/RenderInline.h: Rename dashboardRegions to annotatedRegions.
52777         (RenderInline):
52778         * rendering/RenderLayer.cpp: Rename dashboardRegions to annotatedRegions.
52779         (WebCore::RenderLayer::scrollTo):
52780         (WebCore::RenderLayer::setHasHorizontalScrollbar):
52781         (WebCore::RenderLayer::setHasVerticalScrollbar):
52782         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
52783         * rendering/RenderListBox.cpp: Rename dashboardRegions to annotatedRegions.
52784         (WebCore::RenderListBox::setHasVerticalScrollbar):
52785         * rendering/RenderObject.cpp: Rename dashboardRegions to annotatedRegions.
52786         (WebCore::RenderObject::styleWillChange):
52787         (WebCore::RenderObject::addAnnotatedRegions):
52788         (WebCore::RenderObject::collectAnnotatedRegions):
52789         * rendering/RenderObject.h: Rename dashboardRegions to annotatedRegions.
52790         (WebCore::AnnotatedRegionValue::operator==):
52791         (WebCore::AnnotatedRegionValue::operator!=):
52792         (AnnotatedRegionValue):
52793         (RenderObject):
52794         * rendering/style/RenderStyle.cpp: Update the CSS parsing.
52795         (WebCore::RenderStyle::diff):
52796         (WebCore):
52797         * rendering/style/RenderStyle.h: Update the CSS parsing.
52798         * rendering/style/RenderStyleConstants.h: Update the CSS parsing.
52799         * rendering/style/StyleDashboardRegion.h: Update the CSS parsing.
52800         * rendering/style/StyleRareNonInheritedData.cpp: Update the CSS parsing.
52801         (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
52802         (WebCore::StyleRareNonInheritedData::operator==):
52803         * rendering/style/StyleRareNonInheritedData.h: Update the CSS parsing.
52804         (WebCore):
52805         (StyleRareNonInheritedData):
52806
52807 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
52808
52809         Unreviewed, rolling out r130811 and r130821.
52810         http://trac.webkit.org/changeset/130811
52811         http://trac.webkit.org/changeset/130821
52812         https://bugs.webkit.org/show_bug.cgi?id=98831
52813
52814         Broke date-suggestion-picker-appearance-with-scroll-bar.html
52815         (Requested by abarth|gardening on #webkit).
52816
52817         * WebCore.exp.in:
52818         * dom/ContainerNode.cpp:
52819         (WebCore::ContainerNode::getUpperLeftCorner):
52820         (WebCore::ContainerNode::getLowerRightCorner):
52821         * dom/MouseRelatedEvent.cpp:
52822         (WebCore::MouseRelatedEvent::computeRelativePosition):
52823         * dom/Node.cpp:
52824         (WebCore::Node::convertToPage):
52825         (WebCore::Node::convertFromPage):
52826         * editing/FrameSelection.cpp:
52827         (WebCore::CaretBase::absoluteBoundsForLocalRect):
52828         * editing/RenderedPosition.cpp:
52829         (WebCore::RenderedPosition::absoluteRect):
52830         * editing/VisiblePosition.cpp:
52831         (WebCore::VisiblePosition::absoluteCaretBounds):
52832         * html/HTMLSelectElement.cpp:
52833         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
52834         * html/shadow/SliderThumbElement.cpp:
52835         (WebCore::SliderThumbElement::setPositionFromPoint):
52836         * html/shadow/SpinButtonElement.cpp:
52837         (WebCore::SpinButtonElement::defaultEventHandler):
52838         * page/FrameView.cpp:
52839         (WebCore::FrameView::convertFromRenderer):
52840         (WebCore::FrameView::convertToRenderer):
52841         * rendering/InlineTextBox.cpp:
52842         (WebCore::InlineTextBox::paintDocumentMarker):
52843         (WebCore::InlineTextBox::paintTextMatchMarker):
52844         (WebCore::InlineTextBox::computeRectForReplacementMarker):
52845         * rendering/LayoutState.cpp:
52846         (WebCore::LayoutState::LayoutState):
52847         * rendering/RenderBlock.cpp:
52848         (WebCore::RenderBlock::absoluteQuads):
52849         * rendering/RenderBox.cpp:
52850         (WebCore::RenderBox::absoluteQuads):
52851         (WebCore::RenderBox::absoluteContentBox):
52852         (WebCore::RenderBox::mapLocalToContainer):
52853         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
52854         * rendering/RenderBox.h:
52855         (RenderBox):
52856         * rendering/RenderBoxModelObject.cpp:
52857         (WebCore::RenderBoxModelObject::computeStickyPositionConstraints):
52858         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
52859         * rendering/RenderBoxModelObject.h:
52860         (RenderBoxModelObject):
52861         * rendering/RenderEmbeddedObject.cpp:
52862         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
52863         * rendering/RenderFrameSet.cpp:
52864         (WebCore::RenderFrameSet::userResize):
52865         * rendering/RenderGeometryMap.cpp:
52866         (WebCore::RenderGeometryMap::absolutePoint):
52867         * rendering/RenderInline.cpp:
52868         (WebCore::RenderInline::mapLocalToContainer):
52869         * rendering/RenderInline.h:
52870         (RenderInline):
52871         * rendering/RenderLayer.cpp:
52872         (WebCore::RenderLayer::absoluteToContents):
52873         (WebCore::RenderLayer::convertToLayerCoords):
52874         (WebCore::RenderLayer::scrollTo):
52875         (WebCore::RenderLayer::calculateClipRects):
52876         (WebCore::RenderLayer::childrenClipRect):
52877         (WebCore::RenderLayer::selfClipRect):
52878         * rendering/RenderLayerBacking.cpp:
52879         (WebCore::RenderLayerBacking::contentsVisible):
52880         * rendering/RenderMediaControls.cpp:
52881         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
52882         * rendering/RenderMenuList.cpp:
52883         (WebCore::RenderMenuList::showPopup):
52884         * rendering/RenderObject.cpp:
52885         (WebCore::RenderObject::absoluteFocusRingQuads):
52886         (WebCore::RenderObject::localToAbsolute):
52887         (WebCore::RenderObject::absoluteToLocal):
52888         (WebCore::RenderObject::mapLocalToContainer):
52889         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
52890         (WebCore::RenderObject::localToContainerQuad):
52891         (WebCore::RenderObject::localToContainerPoint):
52892         * rendering/RenderObject.h:
52893         (RenderObject):
52894         (WebCore::RenderObject::localToAbsoluteQuad):
52895         * rendering/RenderText.cpp:
52896         (WebCore::RenderText::absoluteRectsForRange):
52897         (WebCore::RenderText::absoluteQuads):
52898         (WebCore::RenderText::absoluteQuadsForRange):
52899         * rendering/RenderTheme.cpp:
52900         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
52901         * rendering/RenderView.cpp:
52902         (WebCore::RenderView::mapLocalToContainer):
52903         (WebCore::RenderView::mapAbsoluteToLocalPoint):
52904         (WebCore::RenderView::selectionBounds):
52905         * rendering/RenderView.h:
52906         (RenderView):
52907         * rendering/RenderWidget.cpp:
52908         (WebCore::RenderWidget::updateWidgetGeometry):
52909         * rendering/svg/RenderSVGForeignObject.cpp:
52910         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
52911         * rendering/svg/RenderSVGForeignObject.h:
52912         (RenderSVGForeignObject):
52913         * rendering/svg/RenderSVGInline.cpp:
52914         (WebCore::RenderSVGInline::mapLocalToContainer):
52915         * rendering/svg/RenderSVGInline.h:
52916         (RenderSVGInline):
52917         * rendering/svg/RenderSVGModelObject.cpp:
52918         (WebCore::RenderSVGModelObject::mapLocalToContainer):
52919         (WebCore::RenderSVGModelObject::absoluteQuads):
52920         * rendering/svg/RenderSVGModelObject.h:
52921         (RenderSVGModelObject):
52922         * rendering/svg/RenderSVGRoot.cpp:
52923         (WebCore::RenderSVGRoot::mapLocalToContainer):
52924         * rendering/svg/RenderSVGRoot.h:
52925         (RenderSVGRoot):
52926         * rendering/svg/RenderSVGText.cpp:
52927         (WebCore::RenderSVGText::mapLocalToContainer):
52928         (WebCore::RenderSVGText::absoluteQuads):
52929         * rendering/svg/RenderSVGText.h:
52930         (RenderSVGText):
52931         * rendering/svg/SVGRenderSupport.cpp:
52932         (WebCore::SVGRenderSupport::mapLocalToContainer):
52933         * svg/SVGSVGElement.cpp:
52934         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
52935
52936 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
52937
52938         Unreviewed, rolling out r130812.
52939         http://trac.webkit.org/changeset/130812
52940         https://bugs.webkit.org/show_bug.cgi?id=98826
52941
52942         Caused fast/text/shaping/shaping-selection-rect to fail
52943         (Requested by abarth|gardening on #webkit).
52944
52945         * platform/graphics/Font.cpp:
52946         (WebCore::Font::width):
52947         * platform/graphics/Font.h:
52948         (Font):
52949         * platform/graphics/mac/ComplexTextController.cpp:
52950         (WebCore::TextLayout::width):
52951         (WebCore::Font::width):
52952         (WebCore::ComplexTextController::advance):
52953         * platform/graphics/mac/ComplexTextController.h:
52954         (ComplexTextController):
52955         * rendering/RenderBlock.h:
52956         (WebCore):
52957         (LineBreaker):
52958         (RenderBlock):
52959         * rendering/RenderBlockLineLayout.cpp:
52960         (WebCore::setLogicalWidthForTextRun):
52961         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
52962         (WebCore::RenderBlock::createLineBoxesFromBidiRuns):
52963         (WebCore::RenderBlock::layoutRunsAndFloatsInRange):
52964         (WebCore::textWidth):
52965         (WebCore::RenderBlock::LineBreaker::nextLineBreak):
52966
52967 2012-10-09  Ryosuke Niwa  <rniwa@webkit.org>
52968
52969         DOM/textarea-edit.html spends 35% of time in numGraphemeClusters
52970         https://bugs.webkit.org/show_bug.cgi?id=98711
52971
52972         Reviewed by Kent Tamura.
52973
52974         Since the number of characters is always greater than the number of grapheme clusters,
52975         we can avoid calling computeLengthForSubmission when the number of characters is less
52976         than maxlength. We still have to count the number of LFs since they all need to be
52977         converted into CRLFs. This improves WebKit's score on DOM/textarea-edit.html by 45%.
52978
52979         * html/HTMLTextAreaElement.cpp:
52980         (WebCore::computeLengthForSubmission):
52981         (WebCore::numberOfLineBreaks):
52982         (WebCore::upperBoundForLengthForSubmission): Added.
52983         (WebCore::HTMLTextAreaElement::handleBeforeTextInsertedEvent):
52984         (WebCore::HTMLTextAreaElement::tooLong):
52985
52986 2012-10-09  Nate Chapin  <japhet@chromium.org>
52987
52988         Make CachedResourceLoader RefCounted and have both Document
52989         and DocumentLoader hold RefPtrs. This is in preparation for
52990         caching main resources.
52991         https://bugs.webkit.org/show_bug.cgi?id=86787
52992
52993         Reviewed by Adam Barth.
52994
52995         No new tests, no functionality changes at this time.
52996
52997         * WebCore.exp.in:
52998         * WebCore.xcodeproj/project.pbxproj:
52999         * dom/Document.cpp:
53000         (WebCore::Document::Document): Only create our own CachedResourceLoader
53001             if we were given a null frame.
53002         (WebCore::Document::~Document):
53003         (WebCore::Document::cachedResourceLoader):
53004         (WebCore):
53005         * dom/Document.h:
53006         (Document):
53007         * loader/DocumentLoader.cpp: Throughout, use our m_cachedResourceLoader instead
53008             of the Document's pointer.
53009         (WebCore::DocumentLoader::DocumentLoader): Create a CachedResourceLoader.
53010         (WebCore::DocumentLoader::~DocumentLoader):
53011         (WebCore::DocumentLoader::isLoadingInAPISense):
53012         (WebCore::DocumentLoader::subresource):
53013         (WebCore::DocumentLoader::getSubresources):
53014         * loader/DocumentLoader.h:
53015         (WebCore::DocumentLoader::cachedResourceLoader):
53016         (DocumentLoader):
53017         * loader/SubresourceLoader.cpp: Remove m_document, since it only existed to keep alive and access the CachedResourceLoader.
53018             It can now be accessed from m_documentLoader.
53019         (WebCore::SubresourceLoader::SubresourceLoader):
53020         (WebCore::SubresourceLoader::~SubresourceLoader):
53021         (WebCore::SubresourceLoader::willSendRequest):
53022         (WebCore::SubresourceLoader::releaseResources):
53023         * loader/SubresourceLoader.h:
53024         (SubresourceLoader):
53025         * loader/cache/CachedResourceLoader.cpp: Handle the possibility of a null Document in several places.
53026         (WebCore::CachedResourceLoader::CachedResourceLoader):
53027         (WebCore::CachedResourceLoader::~CachedResourceLoader):
53028         (WebCore::CachedResourceLoader::frame):
53029         (WebCore::CachedResourceLoader::canRequest):
53030         (WebCore::CachedResourceLoader::determineRevalidationPolicy):
53031         (WebCore::CachedResourceLoader::printAccessDeniedMessage):
53032         (WebCore::CachedResourceLoader::loadDone):
53033         * loader/cache/CachedResourceLoader.h:
53034         (WebCore):
53035         (WebCore::CachedResourceLoader::create): Add create(), make constructor private.
53036         (CachedResourceLoader):
53037         (WebCore::CachedResourceLoader::document):
53038         (WebCore::CachedResourceLoader::setDocument):
53039         (WebCore::CachedResourceLoader::clearDocumentLoader):
53040
53041 2012-10-09  Alexander Shalamov  <alexander.shalamov@intel.com>
53042
53043         CSS Style is not recalculated when media attribute of style element is changed
53044         https://bugs.webkit.org/show_bug.cgi?id=96752
53045
53046         Reviewed by Kenneth Rohde Christiansen.
53047
53048         When "media" attribute of style element is changed, style should be recalculated.
53049         This patch modifies HTMLStyleElement::parseAttribute, so that when the media attribute
53050         is updated, new MediaQuerySet is created and applied to the style element then, document
53051         style is recalculated. Since media query set is updated for CSSStyleSheet, CSSOM wrapper
53052         for media query should be updated as well in order to sync with new media query set value.
53053
53054         Test: fast/media/mq-js-update-media.html
53055
53056         * css/CSSStyleSheet.cpp:
53057         (WebCore::CSSStyleSheet::setMediaQueries):
53058         * html/HTMLStyleElement.cpp:
53059         (WebCore::HTMLStyleElement::parseAttribute):
53060
53061 2012-10-09  Ben Murdoch  <benm@google.com>
53062
53063         [chromium][Android] Add WebSecurityOrigin::grantLoadLocalResources()
53064         https://bugs.webkit.org/show_bug.cgi?id=97689
53065
53066         Reviewed by Adam Barth.
53067
53068         In addition to the WebKit/chromium side of the change, remove the
53069         ASSERT in SecurityOrigin::grantLoadLocalResources(). Android WebView
53070         is a legitimate user of this API in cases where neither of the
53071         ASSERT'd conditions hold.
53072
53073         * page/SecurityOrigin.cpp:
53074         (WebCore::SecurityOrigin::grantLoadLocalResources): Remove ASSERT.
53075
53076 2012-10-09  Jon Lee  <jonlee@apple.com>
53077
53078         Build fix for Qt Windows.
53079
53080         * html/HTMLPlugInElement.h: Include Image.h.
53081
53082 2012-10-09  Enrica Casucci  <enrica@apple.com>
53083
53084         Only measure text once instead of twice when performing line layout.
53085         https://bugs.webkit.org/show_bug.cgi?id=98317
53086         <rdar://problem/12080821>
53087
53088         Reviewed by Dan Bernstein.
53089
53090         Since we are measuring each word to find out where the line break should occur,
53091         we should cache that information to avoid measuring the run again when
53092         creating the line box. The bulk of the change is in nextLineBreak, where
53093         the measurements are collected and placed in a vector so that they can
53094         be consumed in setLogicalWidthForTextRun where we used to measure the
53095         text one more time.
53096         Each entry in the vector is a WordMeasurement object that contains information
53097         about the start and end offset in the run, the renderer, the measured width
53098         and, possibly, a list of fallback fonts.
53099         When we need to compute the width of the run to create the line box, we add
53100         all the measurements for the given renderer in the run to get the total width.
53101
53102         * platform/graphics/Font.cpp:
53103         (WebCore::Font::width): Added fallback fonts parameter.
53104         * platform/graphics/Font.h:
53105         (Font): Added fallback fonts parameter to the width static member function.
53106         This method is called when we compute the width using TextLayout.
53107         * platform/graphics/mac/ComplexTextController.cpp:
53108         (WebCore::TextLayout::width): Added fallback fonts parameter.
53109         (WebCore::Font::width):
53110         (WebCore::ComplexTextController::advance):
53111         * platform/graphics/mac/ComplexTextController.h:
53112         (ComplexTextController): Added fallback fonts parameter to advance method.
53113         * rendering/RenderBlock.h: Added WordMeasures parameter to few methods.
53114         * rendering/RenderBlockLineLayout.cpp:
53115         (WordMeasurement): Added new class to hold measurement information.
53116         (WebCore::setLogicalWidthForTextRun): This is where we compute the run width using the
53117         cached information.
53118         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Added wordMeasures parameter.
53119         (WebCore::RenderBlock::createLineBoxesFromBidiRuns): Added wordMeasures parameter.
53120         (WebCore::RenderBlock::layoutRunsAndFloatsInRange): Added declaration of the WordMeasures
53121         vector and its use.
53122         (WebCore::textWidth): Added fallbackFonts parameter, since now we only measure once.
53123         (WebCore::RenderBlock::LineBreaker::nextLineBreak): This method has been modified to collect
53124         the measurements of the individual words and add them to the vector.
53125
53126 2012-10-09  Levi Weintraub  <leviw@chromium.org>
53127
53128         [Sub pixel layout] Fast-path iframe scrolling can picks up an extra pixel
53129         https://bugs.webkit.org/show_bug.cgi?id=98571
53130
53131         Reviewed by Emil A Eklund.
53132
53133         Refactoring all coordinate-switching functionality to use a single "mode" flag
53134         as opposed to having a bunch of boolean values. This enables the same set of
53135         options across the board, and a consistent interface. This was previously
53136         done for mapLocalToContainer.
53137
53138         The imptetus for this for this stems from the one logical change in this patch
53139         which only effects sub-pixel layout. FrameView::convertToRenderer and
53140         convertFromRenderer return IntPoint coordinates, and need to also snap transform
53141         offsets to determine proper rects for scrolling.
53142
53143         Unlabeled functions below are simply being updated to these new interfaces.
53144
53145         Test: fast/sub-pixel/sub-pixel-iframe-copy-on-scroll.html
53146
53147         * WebCore.exp.in:
53148         * dom/ContainerNode.cpp:
53149         (WebCore::ContainerNode::getUpperLeftCorner):
53150         (WebCore::ContainerNode::getLowerRightCorner):
53151         * dom/Element.cpp:
53152         (WebCore::Element::boundsInRootViewSpace):
53153         * dom/MouseRelatedEvent.cpp:
53154         (WebCore::MouseRelatedEvent::computeRelativePosition):
53155         * dom/Node.cpp:
53156         (WebCore::Node::convertToPage):
53157         (WebCore::Node::convertFromPage):
53158         * html/HTMLSelectElement.cpp:
53159         (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
53160         * html/shadow/SliderThumbElement.cpp:
53161         (WebCore::SliderThumbElement::setPositionFromPoint):
53162         * html/shadow/SpinButtonElement.cpp:
53163         (WebCore::SpinButtonElement::defaultEventHandler):
53164         * page/FrameView.cpp:
53165         (WebCore::FrameView::convertToRenderer): Now pixel-snaps offsets before passing
53166         them to TransformState, which transforms the coordinates.
53167         (WebCore::FrameView::convertFromRenderer): Ditto.
53168         * rendering/LayoutState.cpp:
53169         (WebCore::LayoutState::LayoutState):
53170         * rendering/RenderBlock.cpp:
53171         (WebCore::RenderBlock::absoluteQuads):
53172         * rendering/RenderBox.cpp:
53173         (WebCore::RenderBox::absoluteQuads):
53174         (WebCore::RenderBox::mapLocalToContainer):
53175         (WebCore::RenderBox::mapAbsoluteToLocalPoint):
53176         * rendering/RenderBox.h:
53177         (RenderBox):
53178         * rendering/RenderBoxModelObject.cpp:
53179         (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
53180         * rendering/RenderBoxModelObject.h:
53181         (RenderBoxModelObject):
53182         * rendering/RenderEmbeddedObject.cpp:
53183         (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
53184         * rendering/RenderFrameSet.cpp:
53185         (WebCore::RenderFrameSet::userResize):
53186         * rendering/RenderGeometryMap.cpp:
53187         (WebCore::RenderGeometryMap::absolutePoint):
53188         * rendering/RenderInline.cpp:
53189         (WebCore::RenderInline::mapLocalToContainer):
53190         * rendering/RenderInline.h:
53191         (RenderInline):
53192         * rendering/RenderLayer.cpp:
53193         (WebCore::RenderLayer::absoluteToContents):
53194         (WebCore::RenderLayer::calculateClipRects):
53195         * rendering/RenderMediaControls.cpp:
53196         (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
53197         * rendering/RenderMenuList.cpp:
53198         (WebCore::RenderMenuList::showPopup):
53199         * rendering/RenderObject.cpp:
53200         (WebCore::RenderObject::localToAbsolute):
53201         (WebCore::RenderObject::absoluteToLocal):
53202         (WebCore::RenderObject::mapLocalToContainer):
53203         (WebCore::RenderObject::mapAbsoluteToLocalPoint):
53204         (WebCore::RenderObject::localToContainerQuad):
53205         (WebCore::RenderObject::localToContainerPoint):
53206         * rendering/RenderObject.h:
53207         (RenderObject): MapLocalToContainerFlags is now MapCoordinatesFlags since it's
53208         now used for other conversion methods.
53209         (WebCore::RenderObject::localToAbsoluteQuad):
53210         * rendering/RenderTheme.cpp:
53211         (WebCore::RenderTheme::volumeSliderOffsetFromMuteButton):
53212         * rendering/RenderView.cpp:
53213         (WebCore::RenderView::mapLocalToContainer):
53214         (WebCore::RenderView::mapAbsoluteToLocalPoint):
53215         * rendering/RenderView.h:
53216         (RenderView):
53217         * rendering/svg/RenderSVGForeignObject.cpp:
53218         (WebCore::RenderSVGForeignObject::mapLocalToContainer):
53219         * rendering/svg/RenderSVGForeignObject.h:
53220         (RenderSVGForeignObject):
53221         * rendering/svg/RenderSVGInline.cpp:
53222         (WebCore::RenderSVGInline::mapLocalToContainer):
53223         * rendering/svg/RenderSVGInline.h:
53224         (RenderSVGInline):
53225         * rendering/svg/RenderSVGModelObject.cpp:
53226         (WebCore::RenderSVGModelObject::mapLocalToContainer):
53227         * rendering/svg/RenderSVGModelObject.h:
53228         (RenderSVGModelObject):
53229         * rendering/svg/RenderSVGRoot.cpp:
53230         (WebCore::RenderSVGRoot::mapLocalToContainer):
53231         * rendering/svg/RenderSVGRoot.h:
53232         (RenderSVGRoot):
53233         * rendering/svg/RenderSVGText.cpp:
53234         (WebCore::RenderSVGText::mapLocalToContainer):
53235         * rendering/svg/RenderSVGText.h:
53236         (RenderSVGText):
53237         * rendering/svg/SVGRenderSupport.cpp:
53238         (WebCore::SVGRenderSupport::mapLocalToContainer):
53239         * svg/SVGSVGElement.cpp:
53240         (WebCore::SVGSVGElement::localCoordinateSpaceTransform):
53241
53242 2012-10-09  Jon Lee  <jonlee@apple.com>
53243
53244         [WK2] Have plugins render offscreen to capture snapshot
53245         https://bugs.webkit.org/show_bug.cgi?id=98326
53246         <rdar://problem/12426658>
53247
53248         Reviewed by Simon Fraser.
53249
53250         Change updateSnapshot() to use a PassRefPtr<Image> instead of Image*. WebKit2 ultimately
53251         hands the image off to RenderSnapshottedPlugin. A CachedImage instance then manages the
53252         lifetime of the Image.
53253
53254         * html/HTMLPlugInElement.h:
53255         (WebCore::HTMLPlugInElement::updateSnapshot):
53256         * html/HTMLPlugInImageElement.cpp:
53257         (WebCore::HTMLPlugInImageElement::updateSnapshot):
53258         * html/HTMLPlugInImageElement.h:
53259         (HTMLPlugInImageElement):
53260         * rendering/RenderSnapshottedPlugIn.cpp:
53261         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Updated to use the PassRefPtr<Image>
53262         pointer.
53263         * rendering/RenderSnapshottedPlugIn.h:
53264         (RenderSnapshottedPlugIn):
53265
53266 2012-10-09  Adam Barth  <abarth@webkit.org>
53267
53268         Unreviewed. Move this file to where the build systems think it should
53269         be. See https://bugs.webkit.org/show_bug.cgi?id=94755
53270
53271         * platform/graphics/CustomFilterConstants.h: Removed.
53272         * platform/graphics/filters/CustomFilterConstants.h: Copied from Source/WebCore/platform/graphics/CustomFilterConstants.h.
53273
53274 2012-10-09  Tony Chang  <tony@chromium.org>
53275
53276         Use computeLogical* methods instead of updateLogical* methods in RenderImage
53277         https://bugs.webkit.org/show_bug.cgi?id=98802
53278
53279         Reviewed by Eric Seidel.
53280
53281         We were storing the old values of width/height, calling updateLogical{Width,Height}, then restoring
53282         the old values.  Instead, use the computeLogical{Width,Height} methods so we don't have to overwrite
53283         the current values.
53284
53285         No new tests, this is just a refactoring.
53286
53287         * rendering/RenderImage.cpp:
53288         (WebCore::RenderImage::imageDimensionsChanged):
53289
53290 2012-10-09  Enrica Casucci  <enrica@apple.com>
53291
53292         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-
53293         background-canvas.html failing on the Mac after r130443
53294         https://bugs.webkit.org/show_bug.cgi?id=98545
53295
53296         Reviewed by Tony Chang.
53297
53298         Adding back the ! removed by mistake before submitting r130779. 
53299
53300         * platform/graphics/FontFastPath.cpp:
53301         (WebCore::Font::glyphDataAndPageForCharacter):
53302
53303 2012-10-09  Artem Simonov  <asimonov@rim.com>
53304
53305         [BlackBerry] EGL Context deleted prematurely in GraphicsContext3D destructor
53306         https://bugs.webkit.org/show_bug.cgi?id=98796
53307
53308         Reviewed by George Staikos.
53309
53310         Reordered destruction of GraphicsContext3D so that the compositing layer is
53311         destroyed first.
53312
53313         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
53314         (WebCore::GraphicsContext3D::~GraphicsContext3D):
53315
53316 2012-10-09  Ben Wagner  <bungeman@chromium.org>
53317
53318         Disable hinting when webkit-font-smoothing:antialiased is used on Mac.
53319         https://bugs.webkit.org/show_bug.cgi?id=98061
53320
53321         Reviewed by Stephen White.
53322
53323         Normal anti-aliased text matches subpixel anti-aliased text.
53324         However, text marked with webkit-font-smoothing:antialiased should be drawn without hinting to match Safari.
53325         See crbug.com/152304 . 
53326
53327         Test is fast/css/font-smoothing.html, but DRT runs with font smoothing disabled, so no change visible. 
53328
53329         * platform/graphics/skia/FontSkia.cpp:
53330         (WebCore::setupPaint):
53331         Set kNo_Hinting when webkit-font-smoothing is antialiased.
53332
53333 2012-10-09  Max Vujovic  <mvujovic@adobe.com>
53334
53335         [CSS Shaders] Create constants for vertex attribute sizes and offsets
53336         https://bugs.webkit.org/show_bug.cgi?id=94755
53337
53338         Reviewed by Dean Jackson.
53339
53340         Factor out the vertex attribute size and offset constants into a new file,
53341         CustomFilterConstants.h. Replace literals in CustomFilterMeshGenerator with the constants.
53342
53343         I could have added the constants to CustomFilterMeshGenerator.h, but this would make
53344         FECustomFilter depend on CustomFilterMeshGenerator.
53345
53346         I also could have added the constants to CustomFilterMesh.h, but this would make
53347         CustomFilterMeshGenerator depend on CustomFilterMesh.
53348
53349         No new tests. No change in behavior.
53350
53351         * GNUmakefile.list.am:
53352         * Target.pri:
53353         * WebCore.gypi:
53354         * WebCore.vcproj/WebCore.vcproj:
53355         * WebCore.xcodeproj/project.pbxproj:
53356         * platform/graphics/CustomFilterConstants.h: Added.
53357         (WebCore):
53358         * platform/graphics/filters/CustomFilterMeshGenerator.h:
53359         (WebCore::CustomFilterMeshGenerator::floatsPerVertex):
53360             Use the new constants instead of literal values.
53361         * platform/graphics/filters/FECustomFilter.cpp:
53362         (WebCore::FECustomFilter::bindProgramAndBuffers):
53363             Pull the constant definitions out of here.
53364
53365 2012-10-09  Michael Saboff  <msaboff@apple.com>
53366
53367         MarkupAccumulator should optimally handle 8 bit Strings
53368         https://bugs.webkit.org/show_bug.cgi?id=98224
53369
53370         Reviewed by Ryosuke Niwa.
53371
53372         Updated appendCharactersReplacingEntities to take a string, offset and length and process 8 or 16 bit
53373         data as appropriate.  Also made it a member function of MarkupAccumulator.
53374
53375         No new tests, behavior covered by existing tests.
53376
53377         * editing/MarkupAccumulator.cpp:
53378         (WebCore::MarkupAccumulator::appendCharactersReplacingEntities):
53379         (WebCore::MarkupAccumulator::appendAttributeValue):
53380         (WebCore::MarkupAccumulator::appendNodeValue):
53381         * editing/MarkupAccumulator.h:
53382         (MarkupAccumulator):
53383         * editing/markup.cpp:
53384         (WebCore::StyledMarkupAccumulator::appendText):
53385         (WebCore::urlToMarkup):
53386
53387 2012-10-09  Joshua Bell  <jsbell@chromium.org>
53388
53389         IndexedDB: Overflowing key generator should throw ConstraintError
53390         https://bugs.webkit.org/show_bug.cgi?id=98807
53391
53392         Reviewed by Tony Chang.
53393
53394         After the WebKit implementation landed throwing DataError, public-webapps
53395         consensus was that the exception thrown should be ConstraintError. Trivial
53396         change, and we pass one more W3C test submission.
53397
53398         Test: storage/indexeddb/key-generator.html
53399
53400         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
53401         (WebCore::IDBObjectStoreBackendImpl::putInternal):
53402
53403 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
53404
53405         Fix the order of the statements in my previous build fix.
53406
53407         Reviewed by Gustavo Noronha Silva.
53408
53409         My previous build build fix for ResourceHandleSoup ordered the assignment
53410         of the local ResourceHandleInternal incorrectly. Instead of being before
53411         both assertions, it should be interspersed among them.
53412
53413         * platform/network/soup/ResourceHandleSoup.cpp:
53414         (WebCore::createSoupMessageForHandleAndRequest):
53415
53416 2012-10-09  Beth Dakin  <bdakin@apple.com>
53417
53418         https://bugs.webkit.org/show_bug.cgi?id=98457
53419         ScrollingStateNodes should be referenced via IDs on 
53420         RenderLayerBacking
53421
53422         Reviewed by Simon Fraser.
53423
53424         This patch associates all ScrollingStateNodes with a 
53425         RenderLayerBacking via a HashMap from RenderLayerBackings to 
53426         ScrollingStateNodes on ScrollingCoordinator. Prior to this patch, the 
53427         root ScrollingStateNode was created immediately upon creation of the 
53428         ScrollingCoordinator, and it was constantly re-used for every main 
53429         FrameView. This doesn't work in the new model since that doesn't 
53430         allow that ScrollingStateNode to have a definite association with a 
53431         RenderLayerBacking. So this patch does also introduce some lifetime 
53432         differences with the ScrollingStateNodes.
53433
53434         If a page is going into the page cache, we should clear the state 
53435         tree. When the page is in the cache, we won't have access to the 
53436         RenderLayerBacking, and we don't want to be doing anything with the 
53437         ScrollingStateNodes anyway.
53438         * dom/Document.cpp:
53439         (WebCore::Document::setInPageCache):
53440
53441         When a page is restored from the page cache, call 
53442         frameViewRootLayerDidChange() to re-create the state tree.
53443         * loader/HistoryController.cpp:
53444         (WebCore::HistoryController::restoreScrollPositionAndViewState):
53445
53446         This new FrameView function will return the scrollLayerID for a given FrameView.
53447         * page/FrameView.cpp:
53448         (WebCore::FrameView::scrollLayerID):
53449         (WebCore):
53450         * page/FrameView.h:
53451         (FrameView):
53452
53453         There is a lot of unfortunate fiddling with the terrible 
53454         if-defs in ScrollingCoordinator. I added a FIXME to the header
53455         noting how we can avoid this in the future.
53456         * page/scrolling/ScrollingCoordinator.cpp:
53457
53458         All of this code used to refer to the rootStateNode directly. 
53459         Instead, now it looks up the proper ScrollingStateNode for the given 
53460         FrameView in the HashMap.
53461         (WebCore::ScrollingCoordinator::frameViewLayoutUpdated):
53462         (WebCore::ScrollingCoordinator::frameViewWheelEventHandlerCountChanged):
53463         (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
53464         (WebCore::ScrollingCoordinator::requestScrollPositionUpdate):
53465         (WebCore::ScrollingCoordinator::updateMainFrameScrollLayerPosition):
53466         (WebCore::ScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
53467         (WebCore::ScrollingCoordinator::setScrollLayerForNode):
53468         (WebCore::ScrollingCoordinator::setNonFastScrollableRegionForNode):
53469         (WebCore::ScrollingCoordinator::setScrollParametersForNode):
53470         (WebCore::ScrollingCoordinator::setWheelEventHandlerCountForNode):
53471
53472         Returns the existing ScrollingStateNode for a given FrameView by 
53473         looking it up in the HashMap.
53474         (WebCore::ScrollingCoordinator::stateNodeForFrameView):
53475
53476         This is called when a RenderLayerBacking is destroyed. At that time, 
53477         its associated ScrollingStateNode is destroyed.
53478         (WebCore::ScrollingCoordinator::detachFromStateTree):
53479
53480         clearStateTree() clears the HashMap and destroys all of the nodes in 
53481         the current state tree.
53482         (WebCore::ScrollingCoordinator::clearStateTree):
53483
53484         Creates a new root state node for the given FrameView.
53485         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53486
53487         Some new functions for the new node stuff.
53488         * page/scrolling/ScrollingCoordinator.h:
53489         * page/scrolling/ScrollingCoordinatorNone.cpp:
53490         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
53491         (WebCore::ScrollingCoordinator::supportsFixedPositionLayers):
53492         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
53493         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
53494         (WebCore::ScrollingCoordinator::scrollableAreaScrollLayerDidChange):
53495         (WebCore::ScrollingCoordinator::detachFromStateTree):
53496         (WebCore::ScrollingCoordinator::clearStateTree):
53497         (WebCore::ScrollingCoordinator::ensureRootStateNodeForFrameView):
53498         (WebCore::setScrollParameters):
53499         (WebCore::setWheelEventHandlerCount):
53500
53501         New remove functions are used when the sate tree is cleared and when 
53502         a RenderLayerBacking is destroyed.
53503         * page/scrolling/ScrollingStateNode.cpp:
53504         (WebCore::ScrollingStateNode::removeChild):
53505         (WebCore):
53506         * page/scrolling/ScrollingStateNode.h:
53507         (WebCore::ScrollingStateNode::isScrollingStateScrollingNode):
53508         (ScrollingStateNode):
53509         (WebCore::ScrollingStateNode::parent):
53510
53511         New convenience function for casting to ScrollingStateScrollingNodes.
53512         * page/scrolling/ScrollingStateScrollingNode.h:
53513         (WebCore::toScrollingStateScrollingNode):
53514         (WebCore):
53515
53516         No longer automatically create a root node upon creation of the 
53517         ScrollingStateTree. We now want to wait to create the root node until 
53518         we have a RenderLayerBacking to associate it with.
53519         * page/scrolling/ScrollingStateTree.cpp:
53520         (WebCore::ScrollingStateTree::ScrollingStateTree):
53521         (WebCore::ScrollingStateTree::removeNode):
53522         (WebCore):
53523         * page/scrolling/ScrollingStateTree.h:
53524         (WebCore::ScrollingStateTree::setRootStateNode):
53525         (ScrollingStateTree):
53526
53527         RenderLayerBacking has a new data member called m_scrollLayerID. If 
53528         this RenderLayerBacking is represented in the scrolling tree, then 
53529         the ID with be unique and non-zero. 
53530         * rendering/RenderLayerBacking.cpp:
53531         (WebCore::RenderLayerBacking::RenderLayerBacking):
53532         (WebCore::RenderLayerBacking::~RenderLayerBacking):
53533         (WebCore::generateScrollLayerID):
53534         (WebCore):
53535         (WebCore::RenderLayerBacking::attachToScrollingCoordinator):
53536         (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
53537         * rendering/RenderLayerBacking.h:
53538         (RenderLayerBacking):
53539         (WebCore::RenderLayerBacking::scrollLayerID):
53540
53541         Move the call to ScrollingCooridinator::frameViewRootLayerDidChange() 
53542         from RenderLayerCompositor::attachRootLayer() to 
53543         RenderLayerCompositor:: updateBacking(). The problem with the old call 
53544         site is that there is no backing at that time, so we are trying to set 
53545         state on the root scrolling state node before we have enough 
53546         information to create that node and add it to the HashMap.
53547         * rendering/RenderLayerCompositor.cpp:
53548         (WebCore::RenderLayerCompositor::updateBacking):
53549         (WebCore::RenderLayerCompositor::attachRootLayer):
53550
53551 2012-10-09  Florin Malita  <fmalita@chromium.org>
53552
53553         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53554         https://bugs.webkit.org/show_bug.cgi?id=98683
53555
53556         Reviewed by Darin Adler.
53557
53558         Eric's notes:
53559
53560         SVGResources should use HashSet<AtomicString> instead of HashSet<AtomicStringImpl*>
53561         They do basically the same thing, and the former is much more common (and less code). It's
53562         also safe, on the off-chance that we're using AtomicStrings which might otherwise go away.
53563
53564         No new tests, refactoring. 
53565
53566         * rendering/svg/SVGResources.cpp:
53567         (WebCore::clipperFilterMaskerTags):
53568         (WebCore::markerTags):
53569         (WebCore::fillAndStrokeTags):
53570         (WebCore::chainableResourceTags):
53571         (WebCore::SVGResources::buildCachedResources):
53572
53573 2012-10-09  Enrica Casucci  <enrica@apple.com>
53574
53575         [chromium] fast/text/international/text-spliced-font.html and fast/writing-mode/Kusa-Makura-background-canvas.html
53576         failing on the Mac after r130443
53577         https://bugs.webkit.org/show_bug.cgi?id=98545
53578
53579         Reviewed by Tony Chang.
53580
53581         Fixes a regression introduced with r130443.
53582         No new tests added since we already have tests covering this.
53583         Updated TestExpectations for chromium and mac.
53584
53585         * platform/graphics/FontFastPath.cpp:
53586         (WebCore::Font::glyphDataAndPageForCharacter): Text orientation should not be
53587         taken into account if the character is an ideograph or a symbol.
53588
53589 2012-10-09  Philip Rogers  <pdr@google.com>
53590
53591         Prevent animation when CSS attributeType is invalid.
53592         https://bugs.webkit.org/show_bug.cgi?id=94569
53593
53594         Reviewed by Dirk Schulze.
53595
53596         This patch changes hasValidAttributeType() to return false when
53597         we have attributeType=CSS with a non-CSS attribute name.
53598
53599         Previously we would animate non-CSS attributes when attributeType was
53600         CSS which resulted in crashes. To track this case, this patch catches
53601         changes to targetElement, attributeName, and attributeType and checks
53602         if an invalid combination is present. If invalid, hasInvalidCSSAttributeType()
53603         will return true causing hasValidAttributeType() to return false and prevent
53604         the animation from running.
53605
53606         Tests: svg/animations/animate-css-xml-attributeType.html
53607                svg/animations/invalid-css-attribute-crash-expected.svg
53608                svg/animations/invalid-css-attribute-crash.svg
53609
53610         * svg/SVGAnimateElement.cpp:
53611         (WebCore::SVGAnimateElement::hasValidAttributeType):
53612         (WebCore::SVGAnimateElement::targetElementWillChange):
53613         * svg/SVGAnimationElement.cpp:
53614         (WebCore::SVGAnimationElement::SVGAnimationElement):
53615         (WebCore::SVGAnimationElement::isSupportedAttribute):
53616
53617             This now supports the attributeType attribute which is stored in m_attributeType.
53618
53619         (WebCore::SVGAnimationElement::parseAttribute):
53620         (WebCore::SVGAnimationElement::setAttributeType):
53621
53622             Changes to attributeType, attributeName, and targetElement need to be tracked
53623             to determine when an invalid combination happens.
53624
53625         (WebCore::SVGAnimationElement::targetElementWillChange):
53626         (WebCore):
53627         (WebCore::SVGAnimationElement::setAttributeName):
53628         (WebCore::SVGAnimationElement::checkInvalidCSSAttributeType):
53629         * svg/SVGAnimationElement.h:
53630         (WebCore::SVGAnimationElement::attributeType):
53631         (SVGAnimationElement):
53632         (WebCore::SVGAnimationElement::hasInvalidCSSAttributeType):
53633         * svg/animation/SVGSMILElement.cpp:
53634         (WebCore::SVGSMILElement::targetElement):
53635         * svg/animation/SVGSMILElement.h:
53636         (SVGSMILElement):
53637
53638 2012-10-09  Pravin D  <pravind.2k4@gmail.com>
53639
53640         max-width property is does not overriding the width properties for css tables(display:table)
53641         https://bugs.webkit.org/show_bug.cgi?id=98455
53642
53643         Reviewed by Tony Chang.
53644
53645         The max-width property determines the maximum computed width an element can have. In case of css tables(display:table),
53646         the computed was not being limited by the max-width property. The current patch fixes this issue.
53647
53648         Test: fast/table/css-table-max-width.html
53649
53650         * rendering/RenderTable.cpp:
53651         (WebCore::RenderTable::updateLogicalWidth):
53652          Logic to compute the logical width of an element such that it does not exceed the max-width value.
53653          Also when both min-width and max-width are present, the following contraint is used to compute the logical width:
53654            1) min-width < Computed LogicalWidth < max-width, when min-width < max-width.
53655            2) Computed LogicalWidth = min-width, when min-width > max-width.
53656
53657 2012-10-09  Harald Alvestrand  <hta@google.com>
53658
53659         Change PeerConnection getStats function to single value local / remote
53660         elements in RTCStatsReport.
53661
53662         https://bugs.webkit.org/show_bug.cgi?id=98753
53663
53664         Reviewed by Adam Barth.
53665
53666         IDL of RTCStatsReport has been changed to make local/remote
53667         single valued RTCStatsElement attributes.
53668         The RTCStatsReport argument to index the list of RTCStatsElement
53669         in the local and remote functions has been removed.
53670
53671         Tested by modifications to RTCPeerConnection-stats.html
53672
53673         * Modules/mediastream/RTCStatsReport.cpp:
53674         (WebCore::RTCStatsReport::addElement):
53675         (WebCore::RTCStatsReport::addStatistic):
53676         * Modules/mediastream/RTCStatsReport.h:
53677         (WebCore::RTCStatsReport::local):
53678         (WebCore::RTCStatsReport::remote):
53679         (RTCStatsReport):
53680         * Modules/mediastream/RTCStatsReport.idl:
53681         * Modules/mediastream/RTCStatsResponse.cpp:
53682         (WebCore::RTCStatsResponse::addElement):
53683         (WebCore::RTCStatsResponse::addStatistic):
53684         * Modules/mediastream/RTCStatsResponse.h:
53685         (RTCStatsResponse):
53686         * platform/chromium/support/WebRTCStatsResponse.cpp:
53687         (WebKit::WebRTCStatsResponse::addElement):
53688         (WebKit::WebRTCStatsResponse::addStatistic):
53689         * platform/mediastream/RTCStatsResponseBase.h:
53690         (RTCStatsResponseBase):
53691
53692 2012-10-09  Antonio Gomes  <agomes@rim.com>
53693
53694         Get rid of FIXED_POSITION_CREATES_STACKING_CONTEXT in favor of Settings::fixedPositionCreatesStackingContext()
53695         https://bugs.webkit.org/show_bug.cgi?id=98756
53696
53697         Reviewed by Rob Buis.
53698
53699         No behavior change so no new tests.
53700
53701         * css/StyleResolver.cpp:
53702         (WebCore::StyleResolver::collectMatchingRulesForList):
53703
53704 2012-10-09  Simon Hausmann  <simon.hausmann@digia.com>
53705
53706         [Qt] Fix build with QtMultimedia
53707
53708         Reviewed by Tor Arne Vestbø.
53709
53710         This is an initial rudimentary port to of the QtMultimedia back-end,
53711         adapted to slight API changes and (more importantly) to the
53712         implementation of QAbstractVideoSurface instead of using
53713         QGraphicsVideoItem (which is in QtMultimediaWidgets).
53714
53715         * WebCore.pri:
53716         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
53717         (WebCore::MediaPlayerPrivateQt::supportsType):
53718         (WebCore::MediaPlayerPrivateQt::MediaPlayerPrivateQt):
53719         (WebCore::MediaPlayerPrivateQt::~MediaPlayerPrivateQt):
53720         (WebCore::MediaPlayerPrivateQt::didLoadingProgress):
53721         (WebCore::MediaPlayerPrivateQt::totalBytes):
53722         (WebCore::MediaPlayerPrivateQt::setVisible):
53723         (WebCore::MediaPlayerPrivateQt::surfaceFormatChanged):
53724         (WebCore::MediaPlayerPrivateQt::setSize):
53725         (WebCore::MediaPlayerPrivateQt::removeVideoItem):
53726         (WebCore::MediaPlayerPrivateQt::restoreVideoItem):
53727         (WebCore):
53728         (WebCore::MediaPlayerPrivateQt::start):
53729         (WebCore::MediaPlayerPrivateQt::supportedPixelFormats):
53730         (WebCore::MediaPlayerPrivateQt::present):
53731         (WebCore::MediaPlayerPrivateQt::paint):
53732         (WebCore::MediaPlayerPrivateQt::paintCurrentFrameInContext):
53733         (WebCore::MediaPlayerPrivateQt::paintToTextureMapper):
53734         * platform/graphics/qt/MediaPlayerPrivateQt.h:
53735         (MediaPlayerPrivateQt):
53736
53737 2012-10-09  Garrett Casto  <gcasto@chromium.org>
53738
53739         Allow users to specify a different hover image for TextFieldDecorationElement
53740         https://bugs.webkit.org/show_bug.cgi?id=93662
53741
53742         Reviewed by Kent Tamura.
53743
53744         * html/shadow/TextFieldDecorationElement.cpp:
53745         (WebCore::TextFieldDecorationElement::TextFieldDecorationElement):
53746         (WebCore::TextFieldDecorationElement::updateImage):
53747         (WebCore::TextFieldDecorationElement::defaultEventHandler): Handles mouseover and mouseout events.
53748         (WebCore::TextFieldDecorationElement::willRespondToMouseMoveEvents): Now returns true if the element is not disabled.
53749         (WebCore):
53750         * html/shadow/TextFieldDecorationElement.h:
53751         (TextFieldDecorator):
53752         (TextFieldDecorationElement):
53753
53754 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53755
53756         [Qt] Uploading images to Google+ using QtWebKit does not work.
53757         https://bugs.webkit.org/show_bug.cgi?id=72329
53758
53759         Reviewed by Jocelyn Turcotte.
53760
53761         Implement handling of Blob FormData, including its extensions to the File FormData.
53762
53763         * platform/network/qt/QNetworkReplyHandler.cpp:
53764         (WebCore::FormDataIODevice::FormDataIODevice):
53765         (WebCore::appendBlobResolved):
53766         (WebCore::FormDataIODevice::prepareFormElements):
53767         (WebCore::FormDataIODevice::computeSize):
53768         (WebCore::FormDataIODevice::moveToNextElement):
53769         (WebCore::FormDataIODevice::prepareCurrentElement):
53770         (WebCore::FormDataIODevice::openFileForCurrentElement):
53771         (WebCore::FormDataIODevice::readData):
53772         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53773         * platform/network/qt/QNetworkReplyHandler.h:
53774         (FormDataIODevice):
53775
53776 2012-10-09  Arpita Bahuguna  <arpitabahuguna@gmail.com>
53777
53778         Text decorations specified on the containing block are not properly applied when ::first-line is present.
53779         https://bugs.webkit.org/show_bug.cgi?id=93829
53780
53781         Reviewed by Abhishek Arya.
53782
53783         If a container's style and its pseudo :first-line style have unique
53784         text-decorations specified for them, only the :first-line text-decoarations
53785         were being applied.
53786
53787         The uploaded patch intends to first compute the text decoration colors
53788         for the containing box, followed by that of the first-line (if specified).
53789
53790         This thus avoids the condition wherein our containing box's text-decorations
53791         were not getting applied at all since initially we were only computing
53792         for the first-line style.
53793
53794         Test: fast/css/text-decorations-on-first-line-and-containing-block.html
53795
53796         * rendering/InlineTextBox.cpp:
53797         (WebCore::InlineTextBox::paintDecoration):
53798         getTextDecorationColors() is first called for computing the containing box's
53799         text-decoration values and then for first-line style's text-decorations,
53800         if specified.
53801
53802 2012-10-09  Sheriff Bot  <webkit.review.bot@gmail.com>
53803
53804         Unreviewed, rolling out r130746.
53805         http://trac.webkit.org/changeset/130746
53806         https://bugs.webkit.org/show_bug.cgi?id=98749
53807
53808         It made 45 tests crash on Qt (Requested by Ossy on #webkit).
53809
53810         * platform/network/qt/QNetworkReplyHandler.cpp:
53811         (WebCore::FormDataIODevice::FormDataIODevice):
53812         (WebCore::FormDataIODevice::computeSize):
53813         (WebCore::FormDataIODevice::moveToNextElement):
53814         (WebCore::FormDataIODevice::openFileForCurrentElement):
53815         (WebCore::FormDataIODevice::readData):
53816         (WebCore::QNetworkReplyHandler::getIODevice):
53817         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53818         * platform/network/qt/QNetworkReplyHandler.h:
53819         (QNetworkReplyHandler):
53820         (FormDataIODevice):
53821
53822 2012-10-09  Allan Sandfeld Jensen  <allan.jensen@digia.com>
53823
53824         [Qt] Uploading images to Google+ using QtWebKit does not work.
53825         https://bugs.webkit.org/show_bug.cgi?id=72329
53826
53827         Reviewed by Jocelyn Turcotte.
53828
53829         Implement handling of Blob FormData, including its extensions to the File FormData.
53830
53831         * platform/network/qt/QNetworkReplyHandler.cpp:
53832         (WebCore::FormDataIODevice::FormDataIODevice):
53833         (WebCore::FormDataIODevice::computeSize):
53834         (WebCore::FormDataIODevice::moveToNextElement):
53835         (WebCore::FormDataIODevice::prepareCurrentElement):
53836         (WebCore::FormDataIODevice::openFileForCurrentElement):
53837         (WebCore::FormDataIODevice::readData):
53838         (WebCore::QNetworkReplyHandler::getIODevice):
53839         (WebCore::QNetworkReplyHandler::handleBlobDataIfAny):
53840         (WebCore::QNetworkReplyHandler::sendNetworkRequest):
53841         * platform/network/qt/QNetworkReplyHandler.h:
53842         (QNetworkReplyHandler):
53843         (FormDataIODevice):
53844
53845 2012-10-09  Keishi Hattori  <keishi@webkit.org>
53846
53847         Page popup should be smarter about its layout
53848         https://bugs.webkit.org/show_bug.cgi?id=98499
53849
53850         Reviewed by Kent Tamura.
53851
53852         This change fixes these two issues:
53853         1. Page popup should reposition itself so it won't get clipped by screen(Win/Linux) or rootview(Mac) bounds.
53854         2. Page popup should resize itself when it doesn't fit.
53855
53856         Test: platform/chromium/fast/forms/page-popup/page-popup-adjust-rect.html
53857
53858         * Resources/pagepopups/calendarPicker.js:
53859         (initialize): We need to set global.params at the beginning because we need it for resizeWindow().
53860         * Resources/pagepopups/colorSuggestionPicker.js: Added global.params.
53861         (handleMessage):
53862         (initialize):
53863         (handleArgumentsTimeout):
53864         * Resources/pagepopups/pickerCommon.js:
53865         (Rect): Represents an axis aligned rectangle.
53866         (Rect.prototype.get maxX): Gets position of right edge.
53867         (Rect.prototype.get maxY): Gets position of bottom edge.
53868         (Rect.prototype.toString):
53869         (Rect.intersection): Returns the intersection of two rectangles.
53870         (resizeWindow): Resize window to a certain size. Don't allow shrinking.
53871         (adjustWindowRect): Calculates the best position and size for the popup.
53872         (_adjustWindowRectVertically):
53873         (_adjustWindowRectHorizontally):
53874         (setWindowRect): Sets the position and size of the popup to the given rect.
53875         * Resources/pagepopups/suggestionPicker.css:
53876         (.suggestion-list): Don't show horizontal scroll bar.
53877         * Resources/pagepopups/suggestionPicker.js:
53878         (SuggestionPicker.prototype._fixWindowSize): 
53879         * page/PagePopupClient.cpp:
53880         (WebCore::PagePopupClient::addProperty): For adding an int to JSON.
53881         (WebCore::PagePopupClient::addProperty): For adding an IntRect to JSON.
53882         (WebCore):
53883         * page/PagePopupClient.h:
53884         (PagePopupClient):
53885
53886 2012-10-09  Hajime Morrita  <morrita@google.com>
53887
53888         [Refactoring] Scoped Style related code should have its own class.
53889         https://bugs.webkit.org/show_bug.cgi?id=98244
53890
53891         Reviewed by Dimitri Glazkov.
53892
53893         This change extracts StyleScopeResolver from StyleResolver to clarify
53894         the responsibility of the style scope handling. Now we can easily see
53895         where the style scoping needs to be involed.
53896
53897         Coming Shadow DOM related change like @host rules will fit within this class.
53898
53899         No new tests, refactoring.
53900
53901         * CMakeLists.txt:
53902         * GNUmakefile.list.am:
53903         * Target.pri:
53904         * WebCore.gypi:
53905         * WebCore.xcodeproj/project.pbxproj:
53906         * css/CSSAllInOne.cpp:
53907         * css/StyleResolver.cpp:
53908         (WebCore::StyleResolver::StyleResolver):
53909         (WebCore::StyleResolver::collectFeatures):
53910         (WebCore::StyleResolver::appendAuthorStylesheets):
53911         (WebCore::StyleResolver::pushParentElement):
53912         (WebCore::StyleResolver::popParentElement):
53913         (WebCore::StyleResolver::pushParentShadowRoot):
53914         (WebCore::StyleResolver::popParentShadowRoot):
53915         (WebCore::StyleResolver::matchScopedAuthorRules):
53916         (WebCore::StyleResolver::collectMatchingRulesForList):
53917         (WebCore::StyleResolver::reportMemoryUsage):
53918         * css/StyleResolver.h:
53919         (StyleResolver):
53920         * css/StyleScopeResolver.cpp: Added.
53921         (WebCore):
53922         (WebCore::StyleScopeResolver::StyleScopeResolver):
53923         (WebCore::StyleScopeResolver::~StyleScopeResolver):
53924         (WebCore::StyleScopeResolver::scopeFor):
53925         (WebCore::StyleScopeResolver::ruleSetFor):
53926         (WebCore::StyleScopeResolver::ensureRuleSetFor):
53927         (WebCore::StyleScopeResolver::setupStack):
53928         (WebCore::StyleScopeResolver::push):
53929         (WebCore::StyleScopeResolver::pop):
53930         (WebCore::StyleScopeResolver::collectFeaturesTo):
53931         (WebCore::StyleScopeResolver::reportMemoryUsage):
53932         * css/StyleScopeResolver.h: Added.
53933         (WebCore):
53934         (StyleScopeResolver):
53935         (WebCore::StyleScopeResolver::StackFrame::StackFrame):
53936         (StackFrame):
53937         (WebCore::StyleScopeResolver::hasScopedStyles):
53938         (WebCore::StyleScopeResolver::stackSize):
53939         (WebCore::StyleScopeResolver::stackFrameAt):
53940         (WebCore::StyleScopeResolver::matchesStyleBounds):
53941         (WebCore::StyleScopeResolver::stackIsConsistent):
53942         (WebCore::StyleScopeResolver::ensureStackConsistency):
53943         (WebCore::StyleScopeResolver::scopeFor):
53944         (WebCore::StyleScopeResolver::ensureRuleSetFor):
53945
53946 2012-10-08  Simon Hausmann  <simon.hausmann@digia.com>
53947
53948         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
53949         https://bugs.webkit.org/show_bug.cgi?id=98268
53950
53951         Reviewed by Tor Arne Vestbø.
53952
53953         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
53954
53955         QStyleFacade is a pure interface that lives in WebCore/platform/qt
53956         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
53957         minimal interface of what we need to draw with QStyle as well as basic
53958         hit testing and metric retrieval. It also provides a
53959         QStyleFacadeOption class that aggregates common meta-data for
53960         rendering primitives, such as direction, rectangle, state (sunken,
53961         enabled, etc.) or palette. It also provides some more slider/scrollbar
53962         specific fields in a slider sub-structure.
53963
53964         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
53965         them with state information from render objects, before calling straight to QStyle. Most of the common code
53966         was encapsulated in StylePainterQStyle.
53967
53968         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
53969         StylePainterQStyle to populate state into QStyleFacadeOption before
53970         calling into QStyleFacade.
53971
53972         The style facade is then implemented by QStyleFacadeImp, which extracts
53973         meta-data from QStyleFacadeOption arguments, populates style
53974         primitive specific QStyleOption objects and then calls on QStyle.
53975
53976         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
53977         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
53978         separate QtWebKitWidgets library in the future and therefore cannot use
53979         any WebCore types.
53980
53981         * Target.pri:
53982         * platform/qt/QStyleFacade.cpp: Added.
53983         (WebCore):
53984         (WebCore::QStyleFacade::styleForPage):
53985         * platform/qt/QStyleFacade.h: Added.
53986         (WebCore):
53987         (QStyleFacade):
53988         (WebCore::QStyleFacade::~QStyleFacade):
53989         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
53990         (QStyleFacadeOption):
53991         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
53992         (WebCore):
53993         (WebCore::RenderThemeQStyle::getStylePainter):
53994         (WebCore::StylePainterQStyle::StylePainterQStyle):
53995         (WebCore::StylePainterQStyle::init):
53996         (WebCore::RenderThemeQStyle::create):
53997         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
53998         (WebCore::RenderThemeQStyle::styleFactory):
53999         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
54000         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
54001         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
54002         (WebCore::RenderThemeQStyle::inflateButtonRect):
54003         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
54004         (WebCore::RenderThemeQStyle::adjustButtonStyle):
54005         (WebCore::RenderThemeQStyle::setButtonPadding):
54006         (WebCore::RenderThemeQStyle::paintButton):
54007         (WebCore::RenderThemeQStyle::paintTextField):
54008         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
54009         (WebCore::RenderThemeQStyle::paintTextArea):
54010         (WebCore::RenderThemeQStyle::setPopupPadding):
54011         (WebCore::RenderThemeQStyle::colorPalette):
54012         (WebCore::RenderThemeQStyle::paintMenuList):
54013         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
54014         (WebCore::RenderThemeQStyle::paintMenuListButton):
54015         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
54016         (WebCore::RenderThemeQStyle::paintProgressBar):
54017         (WebCore::RenderThemeQStyle::paintSliderTrack):
54018         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
54019         (WebCore::RenderThemeQStyle::paintSliderThumb):
54020         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
54021         (WebCore::RenderThemeQStyle::paintSearchField):
54022         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
54023         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
54024         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
54025         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
54026         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
54027         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
54028         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
54029         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
54030         (WebCore):
54031         (RenderThemeQStyle):
54032         (WebCore::RenderThemeQStyle::qStyle):
54033         (StylePainterQStyle):
54034         (WebCore::StylePainterQStyle::isValid):
54035         (WebCore::StylePainterQStyle::paintButton):
54036         (WebCore::StylePainterQStyle::paintTextField):
54037         (WebCore::StylePainterQStyle::paintComboBox):
54038         (WebCore::StylePainterQStyle::paintComboBoxArrow):
54039         (WebCore::StylePainterQStyle::paintSliderTrack):
54040         (WebCore::StylePainterQStyle::paintSliderThumb):
54041         (WebCore::StylePainterQStyle::paintInnerSpinButton):
54042         (WebCore::StylePainterQStyle::paintProgressBar):
54043         (WebCore::StylePainterQStyle::paintScrollCorner):
54044         (WebCore::StylePainterQStyle::paintScrollBar):
54045         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
54046         (WebCore):
54047         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
54048         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
54049         (WebCore::scPart):
54050         (WebCore::scrollbarPart):
54051         (WebCore::initSliderStyleOption):
54052         (WebCore::ScrollbarThemeQStyle::paint):
54053         (WebCore::ScrollbarThemeQStyle::hitTest):
54054         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
54055         (WebCore::ScrollbarThemeQStyle::invalidatePart):
54056         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
54057         (WebCore::ScrollbarThemeQStyle::thumbPosition):
54058         (WebCore::ScrollbarThemeQStyle::thumbLength):
54059         (WebCore::ScrollbarThemeQStyle::trackPosition):
54060         (WebCore::ScrollbarThemeQStyle::trackLength):
54061         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
54062         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
54063         (WebCore):
54064         (ScrollbarThemeQStyle):
54065         (WebCore::ScrollbarThemeQStyle::qStyle):
54066
54067 2012-10-08  Kiran Muppala  <cmuppala@apple.com>
54068
54069         Throttle DOM timers on hidden pages.
54070         https://bugs.webkit.org/show_bug.cgi?id=98474
54071
54072         Reviewed by Maciej Stachowiak.
54073
54074         When the visibility of a page changes to "hidden", all it's DOM timers are
54075         updated to align their fire times on one second intervals.  This limits the
54076         number of CPU wakes due to a hidden pages to one per second.
54077
54078         Test: fast/dom/timer-throttling-hidden-page.html
54079
54080         * Configurations/FeatureDefines.xcconfig:
54081         * WebCore.exp.in:
54082         * dom/Document.cpp:
54083         (WebCore):
54084         (WebCore::Document::timerAlignmentInterval):
54085         Read Page::timerAlignmentInterval and pass it along to DOMTimer.
54086
54087         * dom/Document.h:
54088         (Document):
54089         * dom/ScriptExecutionContext.cpp:
54090         (WebCore):
54091         (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
54092         Scan through self DOM Timers and tell them to recompute their fire
54093         time based on the updated alignment interval.
54094         (WebCore::ScriptExecutionContext::timerAlignmentInterval):
54095
54096         * dom/ScriptExecutionContext.h:
54097         (ScriptExecutionContext):
54098         * page/DOMTimer.cpp:
54099         (WebCore):
54100         (WebCore::DOMTimer::alignedFireTime):
54101         If the document's alignment interval is non zero, round up the fire
54102         time to the next multiple of alignment interval.
54103
54104         * page/DOMTimer.h:
54105         (DOMTimer):
54106         (WebCore::DOMTimer::defaultTimerAlignmentInterval):
54107         (WebCore::DOMTimer::setDefaultTimerAlignmentInterval):
54108         * page/Page.cpp:
54109         (WebCore::Page::Page):
54110         (WebCore):
54111         (WebCore::Page::setTimerAlignmentInterval):
54112         (WebCore::Page::timerAlignmentInterval):
54113         (WebCore::Page::setVisibilityState):
54114         Getter and Setter for alignment interval.  Expose setVisibilityState
54115         if either PAGE_VISIBILITY_API is enabled or if HIDDEN_PAGE_DOM_TIMER_REDUCTION
54116         is enabled.
54117
54118         * page/Page.h:
54119         (Page):
54120         * page/Settings.cpp:
54121         (WebCore):
54122         (WebCore::Settings::setDefaultDOMTimerAlignmentInterval):
54123         (WebCore::Settings::defaultDOMTimerAlignmentInterval):
54124         (WebCore::Settings::setDOMTimerAlignmentInterval):
54125         (WebCore::Settings::domTimerAlignmentInterval):
54126         * page/Settings.h:
54127         (Settings):
54128         * page/SuspendableTimer.cpp:
54129         (WebCore::SuspendableTimer::suspend):
54130         Save the time remaining to the original unaligned fire time, so that
54131         on resuming, the fire time will be correctly aligned using the latest
54132         alignment interval.
54133
54134         * platform/ThreadTimers.cpp:
54135         (WebCore::ThreadTimers::sharedTimerFiredInternal):
54136         Clear m_unalignedNextFireTime along with m_nextFireTime to keep
54137         them always in sync.
54138
54139         * platform/Timer.cpp:
54140         (WebCore::TimerBase::TimerBase):
54141         (WebCore::TimerBase::setNextFireTime):
54142         Save the requested fire time in m_unalignedNextFireTime and
54143         set m_nextFireTime to the aligned value.  The unalinged value
54144         is used to recompute fire time if alignment interval changes.
54145         (WebCore):
54146         (WebCore::TimerBase::didChangeAlignmentInterval):
54147         Recompute next fire time from m_unalignedNextFireTime.
54148         (WebCore::TimerBase::nextUnalignedFireInterval):
54149         Interval from current time to the original unaligned fire time.
54150
54151         * platform/Timer.h:
54152         (TimerBase):
54153         (WebCore::TimerBase::alignedFireTime):
54154
54155 2012-10-08  Andreas Kling  <kling@webkit.org>
54156
54157         1.18MB below RenderTableSection::setCachedCollapsedBorderValue() on Membuster3.
54158         <http://webkit.org/b/98670>
54159         <rdar://problem/12454276>
54160
54161         Reviewed by Anders Carlsson.
54162
54163         Refactor CollapsedBorderValue to only store the bits and pieces from the BorderValue
54164         that it actually needs. Packed the whole thing into 64 bits.
54165
54166         Reduces memory consumption by 547kB on Membuster3.
54167
54168         * rendering/RenderTableCell.cpp:
54169
54170             Add compile-time size assertion for CollapsedBorderValue.
54171
54172         * rendering/style/CollapsedBorderValue.h:
54173         (WebCore::CollapsedBorderValue::CollapsedBorderValue):
54174         (WebCore::CollapsedBorderValue::width):
54175         (WebCore::CollapsedBorderValue::style):
54176         (WebCore::CollapsedBorderValue::color):
54177         (WebCore::CollapsedBorderValue::isTransparent):
54178         (WebCore::CollapsedBorderValue::precedence):
54179         (WebCore::CollapsedBorderValue::isSameIgnoringColor):
54180         (CollapsedBorderValue):
54181
54182             Apply shrinkwrap to CollapsedBorderValue. Removed specialized copy constructor since
54183             the class only has primitive members now.
54184
54185 2012-10-08  Yoshifumi Inoue  <yosin@chromium.org>
54186
54187         HTMLSelectElement::typeAheadFind depends on implementation dependent behavior
54188         https://bugs.webkit.org/show_bug.cgi?id=98710
54189
54190         Reviewed by Kent Tamura.
54191
54192         This patch gets rid of C/C++ implementation dependent behavior from
54193         HTMLSelectElement::typeAheadFind() which does modulo operation with
54194         a negative operand.
54195
54196         HTMLSelectElement::typeAheadFind() contains expression with modulo
54197         operator and dividend can be -1 when the "select" element without
54198         "option" element but "optgroup" element.
54199
54200         Test: fast/forms/select/select-typeahead-crash.html
54201
54202         * html/HTMLSelectElement.cpp:
54203         (WebCore::HTMLSelectElement::typeAheadFind): Changed to do modulo
54204         operation with both operands are non-negative.
54205
54206 2012-10-08  Kent Tamura  <tkent@chromium.org>
54207
54208         Take account of overflowing values for width calculation of a year sub-field
54209         https://bugs.webkit.org/show_bug.cgi?id=98506
54210
54211         Reviewed by Eric Seidel.
54212
54213         When we decide the width of a year field of an input[type=date]
54214         with the multiple fields UI, we need to take account of the
54215         current value width because we allow to set overflowing values to
54216         the input[type=date].
54217
54218         This change affects only platforms with INPUT_TYPE_DATE &&
54219         INPUT_MULTIPLE_FIELDS_UI.
54220
54221         Test: fast/forms/date-multiple-fields/date-multiple-fields-change-layout-by-value.html
54222
54223         * html/shadow/DateTimeNumericFieldElement.cpp:
54224         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
54225         Take account of the current value width.
54226
54227 2012-10-08  Tony Chang  <tony@chromium.org>
54228
54229         image not displayed in flexbox
54230         https://bugs.webkit.org/show_bug.cgi?id=98611
54231
54232         Reviewed by Ojan Vafai.
54233
54234         Flexbox will override the width of a child and when stretching, will override the height of the child.
54235         When this happens, when an image loads, it checks to see if it's width/height has
54236         changed, and if so, does a relayout.  The overridden width/height was preventing this
54237         relayout from happening.
54238
54239         To fix, we clear all the override sizes when we're done laying out the flex children.
54240
54241         Test: css3/flexbox/relayout-image-load.html
54242
54243         * rendering/RenderFlexibleBox.cpp:
54244         (WebCore::RenderFlexibleBox::layoutBlock): Clear child override sizes.
54245         (WebCore::RenderFlexibleBox::clearChildOverrideSizes):
54246         (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): No longer need to clear the override size
54247         here since it should have already been cleared.
54248         * rendering/RenderFlexibleBox.h:
54249
54250 2012-10-08  Andreas Kling  <kling@webkit.org>
54251
54252         REGRESSION(r130643): editing/pasteboard/data-transfer-item is failing on chromium.
54253         <http://webkit.org/b/98686>
54254
54255         Reviewed by Tony Chang.
54256
54257         Change ChromiumDataObject::createFromPasteboard() to use a ListHashSet instead of a HashSet so that
54258         item order is preserved.
54259
54260         * platform/chromium/ChromiumDataObject.cpp:
54261         (WebCore::ChromiumDataObject::createFromPasteboard):
54262
54263 2012-10-08  Eric Seidel  <eric@webkit.org>
54264
54265         Inline logicalHeightForRowSizing to shave another 2-3% off robohornet's resizecol.html
54266         https://bugs.webkit.org/show_bug.cgi?id=98703
54267
54268         Reviewed by Emil A Eklund.
54269
54270         This is very small potatoes.  There are much bigger wins for table layout yet, but
54271         this was an easy win.
54272
54273         This function should probably be converted to use int's only, as table cells are pixel-sized
54274         according to our subpixel-experts.
54275
54276         Also, I suspect there should be ways to early return with less-math in the common cases, but
54277         I've saved such for a later patch.
54278
54279         Note that I changed from using paddingBefore/paddingAfter (which include the instrinsic padding)
54280         to calling computedCSSPaddingBefore/computedCSSPaddingAfter directly as well.
54281
54282         This single function is about 11% of total time for robohornet's resizecol.
54283
54284         * rendering/RenderTableCell.cpp:
54285         * rendering/RenderTableCell.h:
54286         (WebCore::RenderTableCell::logicalHeightForRowSizing):
54287
54288 2012-10-08  Alec Flett  <alecflett@chromium.org>
54289
54290         IndexedDB: remove autogenerated objectStore/index id code
54291         https://bugs.webkit.org/show_bug.cgi?id=98085
54292
54293         Reviewed by Tony Chang.
54294
54295         Remove support for backend-generated objectstore and index
54296         ids. The frontend objects now manage that state during
54297         versionchange transactions. The IDBDatabaseBackendInterface and
54298         IDBObjectStoreBackendInterface methods will go away when
54299         https://bugs.webkit.org/show_bug.cgi?id=98682 lands.
54300
54301         No new tests as this is part of a refactoring, existing indexeddb
54302         tests cover correctness.
54303
54304         * Modules/indexeddb/IDBBackingStore.h:
54305         (IDBBackingStore):
54306         * Modules/indexeddb/IDBDatabase.cpp:
54307         (WebCore::IDBDatabase::createObjectStore):
54308         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
54309         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
54310         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
54311         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
54312         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
54313         (IDBDatabaseBackendInterface):
54314         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
54315         (WebCore::IDBLevelDBBackingStore::createObjectStore):
54316         (WebCore::setMaxIndexId):
54317         (WebCore::IDBLevelDBBackingStore::createIndex):
54318         * Modules/indexeddb/IDBLevelDBBackingStore.h:
54319         (IDBLevelDBBackingStore):
54320         * Modules/indexeddb/IDBObjectStore.cpp:
54321         (WebCore::IDBObjectStore::createIndex):
54322         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
54323         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
54324         (WebCore::IDBObjectStoreBackendImpl::createIndex):
54325         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
54326         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
54327
54328 2012-10-08  Jaehun Lim  <ljaehun.lim@samsung.com>
54329
54330         [CAIRO] Adjust the source rect size when IMAGE_DECODER_DOWN_SAMPLING is enabled
54331         https://bugs.webkit.org/show_bug.cgi?id=98630
54332
54333         Reviewed by Martin Robinson.
54334
54335         IMAGE_DECODER_DOWN_SAMPLING scales down the size of the big image.
54336         CAIRO needs to adjust the source size to the scaled value.
54337
54338         No new tests.
54339
54340         * platform/graphics/cairo/BitmapImageCairo.cpp:
54341         (WebCore::BitmapImage::draw):
54342
54343 2012-10-08  Adam Barth  <abarth@webkit.org>
54344
54345         Remove unused features of BlobBuilder
54346         https://bugs.webkit.org/show_bug.cgi?id=98331
54347
54348         Reviewed by Eric Seidel.
54349
54350         Now that we don't expose BlobBuilder as a web platform API, we can
54351         strip down the class to handle only those cases that are needed by the
54352         Blob constructor.
54353
54354         I've also renamed the class from WebKitBlobBuilder to BlobBuilder and
54355         made it stack allocated rather than RefCounted. A future patch will
54356         actually move the files around. (I didn't want to mix moving code
54357         around with modifying the code.)
54358
54359         * bindings/js/JSBlobCustom.cpp:
54360         (WebCore::JSBlobConstructor::constructJSBlob):
54361         * bindings/v8/custom/V8BlobCustom.cpp:
54362         (WebCore::V8Blob::constructorCallback):
54363         * fileapi/WebKitBlobBuilder.cpp:
54364         (WebCore):
54365         (WebCore::BlobBuilder::BlobBuilder):
54366         (WebCore::BlobBuilder::getBuffer):
54367         (WebCore::BlobBuilder::append):
54368         (WebCore::BlobBuilder::appendBytesData):
54369         (WebCore::BlobBuilder::getBlob):
54370         * fileapi/WebKitBlobBuilder.h:
54371         (WebCore):
54372         (BlobBuilder):
54373         * page/FeatureObserver.h:
54374
54375 2012-10-08  Martin Robinson  <mrobinson@igalia.com>
54376
54377         Try to fix the debug build after r130699
54378
54379         Move the assignment of the ResourceHandleInternal local to before
54380         the include statement where it is used.
54381
54382         * platform/network/soup/ResourceHandleSoup.cpp:
54383         (WebCore::createSoupMessageForHandleAndRequest):
54384
54385 2012-10-08  Nate Chapin  <japhet@chromium.org>
54386
54387         Post-r130226 Cleanup: Comment a complicated if statement and make it a helper.
54388         https://bugs.webkit.org/show_bug.cgi?id=98463
54389
54390         Reviewed by Eric Seidel.
54391
54392         No new tests, refactor only.
54393
54394         * rendering/RenderLayer.cpp:
54395         (WebCore::frameElementAndViewPermitScroll):
54396         (WebCore::RenderLayer::scrollRectToVisible):
54397
54398 2012-10-06  Martin Robinson  <mrobinson@igalia.com>
54399
54400         [Soup] Simplify the way that requests are started
54401         https://bugs.webkit.org/show_bug.cgi?id=98532
54402
54403         Reviewed by Gustavo Noronha Silva.
54404
54405         Simplify the creation of the libsoup request and message when kicking off
54406         requests, by elminating a bit of duplicate code.
54407
54408         No new tests. This should not change any behavior.
54409
54410         * platform/network/ResourceHandle.h:
54411         (ResourceHandle):
54412         * platform/network/soup/ResourceHandleSoup.cpp:
54413         (WebCore):
54414         (WebCore::ResourceHandleInternal::soupSession): Ensure the session
54415         is initialized when passing it to the caller.
54416         (WebCore::createSoupMessageForHandleAndRequest): Added this helper which
54417         takes care of creating the SoupMessage for HTTP/HTTPS requests.
54418         (WebCore::createSoupRequestAndMessageForHandle): Collapsed the HTTP and
54419         non-HTTP request creation into this helper.
54420         (WebCore::ResourceHandle::start): Call the new helper now and then sendPendingRequest.
54421         (WebCore::ResourceHandle::sendPendingRequest): Instead of having special
54422         helpers to create and send the request, duplicating the logic for sending it
54423         across the file, add this method which can be used in both cases.
54424         (WebCore::waitingToSendRequest): Reworked the hasBeenSent method to answer
54425         the question of whether or not the request is ready to be sent, but is unsent.
54426         (WebCore::ResourceHandle::platformSetDefersLoading): Use the new helper.
54427         * platform/network/soup/ResourceRequest.h:
54428         (ResourceRequest): Added a new method for getting the URL string for soup.
54429         * platform/network/soup/ResourceRequestSoup.cpp:
54430         (WebCore::ResourceRequest::urlStringForSoup): Added.
54431
54432 2012-10-08  Eric Seidel  <eric@webkit.org>
54433
54434         Make no-column table-layout cases a little faster with inlining
54435         https://bugs.webkit.org/show_bug.cgi?id=98566
54436
54437         Reviewed by Julien Chaffraix.
54438
54439         This change is almost not worth it at only a couple percent boost on
54440         http://www.robohornet.org/tests/resizecol.html
54441         However, I think the logicalWidthFromTableColumn split it kinda nice
54442         so I've decided to post it anyway.
54443
54444         * rendering/RenderTable.cpp:
54445         (WebCore::RenderTable::slowColElement):
54446         * rendering/RenderTable.h:
54447         (WebCore::RenderTable::colElement):
54448         (RenderTable):
54449         * rendering/RenderTableCell.cpp:
54450         (WebCore::RenderTableCell::logicalWidthFromTableColumn):
54451         * rendering/RenderTableCell.h:
54452         (WebCore::RenderTableCell::styleOrColLogicalWidth):
54453         (RenderTableCell):
54454
54455 2012-10-08  Arpita Bahuguna  <arpitabahuguna@gmail.com>
54456
54457         Rename RenderObject::firstLineStyleSlowCase() to a more appropriate cachedFirstLineStyle()
54458         https://bugs.webkit.org/show_bug.cgi?id=98631
54459
54460         Reviewed by Eric Seidel.
54461
54462         Renaming firstLineStyleSlowCase() to cachedFirstLineStyle().
54463
54464         The current name is confusing since the function actually gets the
54465         the cached first-line styles.
54466         It also makes the name more descriptive of its functionality
54467         and in accordance with RenderObject::uncachedFirstLineStyle().
54468
54469         No new tests required for this change since no change in behavior is expected.
54470
54471         * rendering/RenderObject.cpp:
54472         (WebCore::RenderObject::cachedFirstLineStyle):
54473         * rendering/RenderObject.h:
54474         (WebCore::RenderObject::firstLineStyle):
54475         (RenderObject):
54476         Renamed RenderObject::firstLineStyleSlowCase() to cachedFirstLineStyle()
54477         and made the associated changes.
54478
54479 2012-10-08  Sami Kyostila  <skyostil@chromium.org>
54480
54481         Some non-scrollable elements are added to non-fast-scrollable region
54482         https://bugs.webkit.org/show_bug.cgi?id=97927
54483
54484         Reviewed by James Robinson.
54485
54486         Only RenderLayers that can actually be scrolled should be added to the
54487         ScrollingCoordinator's non-fast scrollable region. Otherwise we may
54488         needlessly fall back to main thread scrolling.
54489
54490         Test: ScrollingCoordinatorChromiumTest.clippedBodyTest
54491
54492         * rendering/RenderLayer.cpp:
54493         (WebCore::RenderLayer::updateScrollbarsAfterLayout):
54494         (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):
54495
54496 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54497
54498         Move layerTreeAsText to window.internals
54499         https://bugs.webkit.org/show_bug.cgi?id=98690
54500
54501         Reviewed by James Robinson.
54502
54503         Add window.internals.layerTreeAsText(document), and change the tests to use it.
54504         I'll remove testRunner.layerTreeAsText() in a later patch.
54505
54506         * testing/Internals.cpp:
54507         (WebCore::Internals::layerTreeAsText):
54508         * testing/Internals.h:
54509         (Internals):
54510         * testing/Internals.idl:
54511
54512 2012-10-08  Jon Lee  <jonlee@apple.com>
54513
54514         Add render object that paints plugin snapshots
54515         https://bugs.webkit.org/show_bug.cgi?id=98322
54516         <rdar://problem/12426546>
54517
54518         Reviewed by Simon Fraser.
54519
54520         First, teach plugins to maintain a set of states when plugin snapshotting is enabled.
54521
54522         Second, a new RenderSnapshottedPlugIn class is a RenderEmbeddedObject that knows how to paint
54523         snapshots when the plugin is not visibly playing. It maintains a RenderImageResource to
54524         the generated poster image.
54525
54526         * html/HTMLPlugInElement.cpp:
54527         (WebCore::HTMLPlugInElement::HTMLPlugInElement): By default all plugins play on load.
54528         * html/HTMLPlugInElement.h: Move the inheritance of ImageLoaderClientBase down to
54529         HTMLPlugInImageElement, since that is the class that actually deals with image-based plugins.
54530         (WebCore::HTMLPlugInElement::displayState): Add bit for display state.
54531         (WebCore::HTMLPlugInElement::setDisplayState):
54532         (WebCore::HTMLPlugInElement::updateSnapshot):
54533
54534         * html/HTMLPlugInImageElement.cpp:
54535         (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): If plugin snapshotting is
54536         enabled, plugin state is set to wait for a poster image.
54537         (WebCore::HTMLPlugInImageElement::createRenderer): Create RenderSnapshottedPlugIn if
54538         plugin snapshotting is enabled.
54539         (WebCore::HTMLPlugInImageElement::updateSnapshot): Once a snapshot is available, update the
54540         renderer and set its state to wait for user input to start the plugin.
54541         * html/HTMLPlugInImageElement.h:
54542         (HTMLPlugInImageElement):
54543
54544         * rendering/RenderObject.h:
54545         (WebCore::RenderObject::isSnapshottedPlugIn): Add new function to identify
54546         RenderSnapshottedPlugIn instances. Since RenderSnapshottedPlugIn inherits from
54547         RenderEmbeddedObject, isEmbeddedObject() still returns true.
54548         * rendering/RenderEmbeddedObject.h:
54549         (RenderEmbeddedObject): Elevate a few virtual methods to protected for
54550         RenderSnapshottedPlugIn to override.
54551
54552         * rendering/RenderSnapshottedPlugIn.cpp: Added.
54553         (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn): Initialize snapshot
54554         resource.
54555         (WebCore::RenderSnapshottedPlugIn::~RenderSnapshottedPlugIn): Shut down snapshot
54556         image resource to remove the renderer as a client, and remove image from memory cache.
54557         (WebCore::RenderSnapshottedPlugIn::plugInImageElement): Convenience function to get the
54558         HTML element.
54559         (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Cache the snapshot, and repaint.
54560         (WebCore::RenderSnapshottedPlugIn::paint): If the plugin is not playing, paint like a
54561         RenderImage does.
54562         (WebCore::RenderSnapshottedPlugIn::paintReplaced): Paint the snapshot and overlay if the
54563         plugin is not playing.
54564         (WebCore::RenderSnapshottedPlugIn::paintReplacedSnapshot): Inspired by
54565         RenderImage::paintReplaced() and RenderImage::paintIntoRect().
54566         * rendering/RenderSnapshottedPlugIn.h: Added.
54567         (WebCore::RenderSnapshottedPlugIn::isSnapshottedPlugin): Returns true.
54568
54569         * rendering/RenderTheme.h: Add a function that paints the overlay on top of the snapshot.
54570         * rendering/RenderThemeMac.h:
54571         * rendering/RenderThemeMac.mm:
54572         (WebCore::RenderThemeMac::paintPlugInSnapshotOverlay):
54573
54574         * WebCore.xcodeproj/project.pbxproj: Add new RenderSnapshottedPlugIn class.
54575         * CMakeLists.txt: Ditto.
54576         * GNUmakefile.list.am: Ditto.
54577         * Target.pri: Ditto.
54578         * WebCore.gypi: Ditto.
54579         * WebCore.vcproj/WebCore.vcproj: Ditto.
54580         * rendering/RenderingAllInOne.cpp: Ditto.
54581
54582 2012-10-08  Hans Muller  <hmuller@adobe.com>
54583
54584         [CSS Exclusions] Add support for polygonal shapes
54585         https://bugs.webkit.org/show_bug.cgi?id=96811
54586
54587         Reviewed by Dirk Schulze.
54588
54589         Initial version of the layout support for polygonal exclusion shapes: the ExclusionPolygon class.
54590         Supports the public ExclusionShape operations using the algorithm described here:
54591         http://hansmuller-webkit.blogspot.com/2012/06/horizontal-box-polygon-intersection-for.html.
54592         Although both the "included" and "excluded" operations are supported, only the former is
54593         used, since only shape-inside is supported at the moment.
54594
54595         The ExclusionPolygon class stores the polygon's edges in an interval tree.
54596
54597         Polygon edges are represented by the ExclusionPolygonEdge struct, which records the indices of
54598         the pair of vertices joined by the edge.  Edge vertex index1 is usually less than index2, except
54599         the last edge where index2 is 0.  We plan to improve the algorithm that creates the edges
54600         by spanning vertices contained in sequences of more than two colinear vertices. For example,
54601         a triangular polygon might be specified with 5 vertices like this: 3,0 5,0, 5,5, 4,4 2,2, 0,0.
54602         By spanning the extra colinear points: 0,0 5,0, 5,5, which implies index1-index2 edges: 5-1 1-2 2-5.
54603
54604         Although the implementation supports complex polygons, the layout code is limited to
54605         essentially rectangular shapes until a patch for https://bugs.webkit.org/show_bug.cgi?id=96813
54606         lands.
54607
54608         Tests: fast/exclusions/shape-inside/shape-inside-polygon-rectangle.html
54609                fast/exclusions/shape-inside/shape-inside-simple-polygon-001.html
54610                fast/exclusions/shape-inside/shape-inside-simple-polygon-002.html
54611                fast/exclusions/shape-inside/shape-inside-simple-polygon-003.html
54612                fast/exclusions/shape-inside/shape-inside-simple-polygon-004.html
54613
54614         * CMakeLists.txt:
54615         * GNUmakefile.list.am:
54616         * Target.pri:
54617         * WebCore.gypi:
54618         * WebCore.vcproj/WebCore.vcproj:
54619         * WebCore.xcodeproj/project.pbxproj:
54620         * rendering/ExclusionPolygon.cpp: Added.
54621         (WebCore):
54622         (EdgeIntersection): Internal description of the intersection of a polygon edge and a horizontal line.
54623         (WebCore::ExclusionPolygon::ExclusionPolygon): See the introductory text above for a description of this type.
54624         (WebCore::computeXIntersection): Find and classify the X intercept of a polygon edge with horizontal line, if any.
54625         (WebCore::ExclusionPolygon::rightVertexY): This method is used to decide if a horizontal line "crosses" a vertex.
54626         (WebCore::appendIntervalX): Append an x coordinate to a vector of ExclusionIntervals.
54627         (WebCore::ExclusionPolygon::computeXIntersections): Return a vector of the intersections of a horizontal line with the polygon's edges.
54628         (WebCore::ExclusionPolygon::computeEdgeIntersections): Return a vector of the X projections of the edges that overlap a horizonal rectangle.
54629         (WebCore::ExclusionPolygon::getExcludedIntervals): Return a SegmentList of the X intervals within a horizontal rectangle that overlap the polygon.
54630         (WebCore::ExclusionPolygon::getIncludedIntervals): Return the X intervals within a horizontal rectangle that fit inside the polygon.
54631         * rendering/ExclusionPolygon.h: Added.
54632         (WebCore):
54633         (ExclusionPolygon):
54634         (WebCore::ExclusionPolygon::getXAt): X coordinate of a polygon vertex
54635         (WebCore::ExclusionPolygon::getYAt): Y coordinate of a polygon vertex
54636         (WebCore::ExclusionPolygon::numberOfVertices):
54637         (WebCore::ExclusionPolygon::fillRule): A WindRule value that defines "inside" for self-intersecting polygons.
54638         (ExclusionPolygonEdge):
54639         (WebCore::ExclusionPolygonEdge::ExclusionPolygonEdge):
54640         (WebCore::ExclusionPolygonEdge::vertex1):
54641         (WebCore::ExclusionPolygonEdge::vertex2):
54642         (WebCore::ExclusionPolygonEdge::minX):
54643         (WebCore::ExclusionPolygonEdge::minY):
54644         (WebCore::ExclusionPolygonEdge::maxX):
54645         (WebCore::ExclusionPolygonEdge::maxY):
54646         * rendering/ExclusionShape.cpp:
54647         (WebCore::createExclusionPolygon): Return a new ExclusionPolygon.
54648         (WebCore):
54649         (WebCore::ExclusionShape::createExclusionShape): Added support for BasicShape::BASIC_SHAPE_POLYGON.
54650         * rendering/ExclusionShapeInsideInfo.cpp:
54651         (WebCore::ExclusionShapeInsideInfo::isExclusionShapeInsideInfoEnabledForRenderBlock): Enable BASIC_SHAPE_POLYGON shapes for RenderBlocks.
54652
54653 2012-10-08  Tony Chang  <tony@chromium.org>
54654
54655         Replace 2 uses of updateLogicalHeight with computeLogicalHeight
54656         https://bugs.webkit.org/show_bug.cgi?id=98677
54657
54658         Reviewed by Ojan Vafai.
54659
54660         This is part of bug 96804.  Convert RenderTextControl and RenderSVGForeignObject to
54661         override the const computeLogicalHeight method rather than the updateLogicalHeight
54662         setter method.
54663
54664         No new tests, there should be no behavior change as this is just a refactor.
54665
54666         * rendering/RenderTextControl.cpp:
54667         (WebCore::RenderTextControl::computeLogicalHeight): Pass logicalHeight through rather than setting height.
54668         This is a slight correctness fix, although we don't support vertical inputs yet.
54669         * rendering/RenderTextControl.h:
54670         (RenderTextControl):
54671         * rendering/svg/RenderSVGForeignObject.cpp:
54672         (WebCore::RenderSVGForeignObject::computeLogicalHeight):
54673         * rendering/svg/RenderSVGForeignObject.h:
54674         (RenderSVGForeignObject):
54675
54676 2012-10-08  Min Qin  <qinmin@chromium.org>
54677
54678         Upstream some tweaks for overlay play button on Android
54679         https://bugs.webkit.org/show_bug.cgi?id=98671
54680
54681         Reviewed by Adam Barth.
54682
54683         This change stops displaying the overlay play button if video height is too small
54684         No test for this. Will rebase layout test expectations for android later.
54685
54686         * css/mediaControlsChromiumAndroid.css:
54687         (video::-webkit-media-controls-overlay-enclosure):
54688
54689 2012-10-08  Simon Fraser  <simon.fraser@apple.com>
54690
54691         Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer
54692         https://bugs.webkit.org/show_bug.cgi?id=98574
54693
54694         Reviewed by Dean Jackson.
54695
54696         GraphicsLayerCA assumed that using a TileCache equated to being the main page tile
54697         cache layer, which has some special considerations. Make these two concepts separate
54698         to get closer to being able to use TileCaches in place of CATiledLayer.
54699
54700         * platform/graphics/GraphicsLayer.h:
54701         (GraphicsLayer): Remove m_usingTileCache member, which was not appropriate
54702         for this class to have.
54703         * platform/graphics/GraphicsLayer.cpp:
54704         (WebCore::GraphicsLayer::GraphicsLayer): Remove init of m_usingTileCache.
54705         (WebCore::GraphicsLayer::debugBorderInfo): Can no longer use m_usingTileCache to
54706         get the blue color, so moved code into a virtual debugBorderInfo() method.
54707         (WebCore::GraphicsLayer::updateDebugIndicators): Call the virtual debugBorderInfo().
54708         * platform/graphics/GraphicsLayerClient.h: Remove the usingTileCache() callback;
54709         we now just cache this information in the GraphicsLayerCA on creation.
54710         * platform/graphics/ca/GraphicsLayerCA.cpp:
54711         (WebCore::GraphicsLayerCA::GraphicsLayerCA): Init m_isPageTileCacheLayer to false,
54712         then set to m_isPageTileCacheLayer if the client says we should create a tile cache.
54713         (WebCore::GraphicsLayerCA::platformCALayerShowRepaintCounter): Overidden to avoid duplicate repaint
54714         counters in the top-left tile.
54715         (WebCore::GraphicsLayerCA::updateLayerBackgroundColor): If this layer is the page tile cache layer,
54716         we allow setting of its background color.
54717         (WebCore::GraphicsLayerCA::debugBorderInfo): Overidden to use a blue color for tiles.
54718         (WebCore::GraphicsLayerCA::requiresTiledLayer): Don't make CATiledLayers for the page tile cache.
54719         * platform/graphics/ca/GraphicsLayerCA.h:
54720         (GraphicsLayerCA):
54721         * platform/graphics/ca/PlatformCALayerClient.h:
54722         (PlatformCALayerClient): Need to pass the platform layer into platformCALayerShowRepaintCounter()
54723         so we can distinguish between calls for tiles, and calls for the tile cache layer itself.
54724         * platform/graphics/ca/mac/TileCache.mm:
54725         (WebCore::TileCache::shouldShowRepaintCounters): Pass 0 to platformCALayerShowRepaintCounter() to
54726         indicate that we're asking about a tile.
54727         * platform/graphics/mac/WebLayer.mm:
54728         (drawLayerContents): Now we can just rely on platformCALayerShowRepaintCounter() to tell us whether
54729         to draw the repaint counter.
54730         (-[WebLayer setNeedsDisplayInRect:]):
54731         * platform/graphics/mac/WebTiledLayer.mm:
54732         (-[WebTiledLayer setNeedsDisplayInRect:]):
54733         * rendering/RenderLayerBacking.h:
54734         (WebCore::RenderLayerBacking::usingTileCache):
54735         (RenderLayerBacking):
54736         * rendering/RenderLayerCompositor.cpp:
54737         (WebCore::RenderLayerCompositor::documentBackgroundColorDidChange): We can ask the RenderLayerBacking
54738         whether it's for the tile cache, rather than going to the GraphicsLayer.
54739         * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
54740         (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerShowRepaintCounter):
54741
54742 2012-10-08  Huang Dongsung  <luxtella@company100.net>
54743
54744         [Qt] Make ImageBufferQt use premultiplied converting functions in Color.h instead of its own mechanism.
54745         https://bugs.webkit.org/show_bug.cgi?id=98582
54746
54747         Reviewed by Eric Seidel.
54748
54749         Only Qt port failed canvas/philip/tests/2d.imageData.put.unchanged.html because
54750         ImageBufferQt converts from or to a premultiplied color using its own code. When
54751         we convert twice from an unmultiplied color to a premultiplied color and then to
54752         an unmultiplied color using this code, the calculated result are pretty
54753         different against the input color. It is why Gtk passes this test although Qt
54754         fails. Gtk port uses them in Color.h.
54755
54756         In addition, Qt should use the functions in Color.h to reduce duplicated codes.
54757
54758         Tests: canvas/philip/tests/2d.imageData.put.unchanged.html: Fixed a test case
54759
54760         * platform/graphics/qt/ImageBufferQt.cpp:
54761         (WebCore::getImageData):
54762         (WebCore::convertBGRAToRGBA):
54763         (WebCore::ImageBuffer::putByteArray):
54764
54765 2012-10-08  Tab Atkins  <jackalmage@gmail.com>
54766
54767         Remove "orphaned units" quirk
54768         https://bugs.webkit.org/show_bug.cgi?id=98553
54769
54770         Reviewed by Eric Seidel.
54771
54772         This patch removes our "orphaned units" quirk.
54773         We have an "orphaned units" quirk to match IE, which allows things like "width: 20 px;".
54774         But FF and Opera don't have it and aren't aware of bugs for it,
54775         and it's not in Simon Pieters' Quirks Mode spec <http://dvcs.w3.org/hg/quirks-mode/raw-file/tip/Overview.html>
54776
54777         No new tests, because I'm killing a quirk.
54778
54779         * css/CSSParser.cpp:
54780         (WebCore::CSSParser::parseValue):
54781         * css/CSSParser.h:
54782         (CSSParser):
54783
54784 2012-10-08  Robert Hogan  <robert@webkit.org>
54785
54786         Border, margin and padding of an inline's inline ancestors counted twice
54787         https://bugs.webkit.org/show_bug.cgi?id=63074
54788
54789         Reviewed by David Hyatt.
54790
54791         In a line such as '<span><span><img>Text' the border, padding and margin belonging
54792         to the two spans was counted twice by RenderBlockLineLayout::nextLineBreak(): once
54793         when adding the width of the <img> object to the line, and a second time when adding
54794         the 'Text'. The result was that nextLineBreak() now had a length for the line that 
54795         exceeded the line's maximum length and inserted a bogus line break.
54796
54797         This all happened because the helper function that is used to add in the border etc.
54798         from inline ancestors was crawling up the tree each time. It doesn't need to do that, it
54799         should stop crawling up the tree when the current object is not the first or last sibling below a parent.
54800
54801         Test: fast/inline/bpm-inline-ancestors.html
54802
54803         * rendering/RenderBlockLineLayout.cpp:
54804         (WebCore::shouldAddBorderPaddingMargin): Broke this check out into a helper function so that it 
54805         can help inlineLogicalWidth() return early and also treat empty RenderTexts the same as no previous/next
54806         sibling on the line. This ensures that collapsed leading space does not interfere with the decision to
54807         crawl up the ancestors accumulating border, padding, and margin.
54808         (WebCore):
54809         (WebCore::inlineLogicalWidth): Return early once the current child is no longer on the edge of its line - 
54810         this ensures the border, padding and margin of ancestors is not counted twice. 
54811
54812 2012-10-08  Mike West  <mkwst@chromium.org>
54813
54814         Null-check for DOMWindow before feeding it to FeatureObserver.
54815         https://bugs.webkit.org/show_bug.cgi?id=98624
54816
54817         Reviewed by Adam Barth.
54818
54819         We shouldn't call out to FeatureObserver in
54820         ContentSecurityPolicy::didReceiveHeader if the policy's document doesn't
54821         have a DOMWindow.
54822
54823         Test: http/tests/security/contentSecurityPolicy/xmlhttprequest-protected-resource-does-not-crash.html
54824
54825         * page/ContentSecurityPolicy.cpp:
54826         (WebCore::ContentSecurityPolicy::didReceiveHeader):
54827             Null check 'document->domWindow' before passing it on.
54828         * page/FeatureObserver.cpp:
54829         (WebCore::FeatureObserver::observe):
54830             ASSERT 'domWindow'.
54831
54832 2012-10-08  Nate Chapin  <japhet@chromium.org>
54833
54834         Loader cleanup : Simplify FrameLoader/DocumentLoader setupForReplace()
54835         https://bugs.webkit.org/show_bug.cgi?id=49072
54836
54837         Reviewed by Eric Seidel.
54838
54839         This patch contains one small known behavior change: multipart/x-mixed-replace main resources with text/html parts
54840         will no longer load the text/html progressively. In practice, loading the html progressively causes the document
54841         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
54842         seems to be pathological, as IE, FF, Opera and WebKit all do something different currently. This patch will cause
54843         us to behave like Firefox, which is the most sane of the current behaviors.
54844
54845         Test: http/tests/multipart/multipart-html.php
54846
54847         * loader/DocumentLoader.cpp:
54848         (WebCore::DocumentLoader::commitData): Use isMultipartReplacingLoad() helper.
54849         (WebCore::DocumentLoader::receivedData):
54850         (WebCore::DocumentLoader::setupForReplace): Renamed from setupForReplaceByMIMEType(). Call maybeFinishLoadingMultipartContent()
54851             instead of doing identical work inline. After we call frameLoader()->setReplacing(), we will never load progressively, so remove
54852             the if (doesProgressiveLoad(newMIMEType)) {} block.
54853         (WebCore::DocumentLoader::isMultipartReplacingLoad):
54854         (WebCore::DocumentLoader::maybeFinishLoadingMultipartContent): Inline the old DocumentLoader::setupForeReplace(), check
54855             frameLoader()->isReplacing() instead of the delete doesProgressiveLoad().
54856         * loader/DocumentLoader.h:
54857         * loader/FrameLoader.cpp:
54858         (WebCore::FrameLoader::setupForReplace): Move all calls to revertToProvisionalState here.
54859         * loader/MainResourceLoader.cpp:
54860         (WebCore::MainResourceLoader::didReceiveResponse): Call setupForReplace(), renamed from setupForReplaceByMIMEType().
54861
54862 2012-10-08  Zoltan Horvath  <zoltan@webkit.org>
54863
54864         [Qt] r122720 causes performance regression with DirectFB on ARMv7
54865         https://bugs.webkit.org/show_bug.cgi?id=97548
54866
54867         Reviewed by Jocelyn Turcotte.
54868
54869         Revert the rest of r122720. This change modifies the NativeImagePtr from QImage* to QPixmap*.
54870
54871         Covered by existing tests.
54872
54873         * bridge/qt/qt_pixmapruntime.cpp:
54874         (JSC::Bindings::assignToHTMLImageElement):
54875         (JSC::Bindings::QtPixmapRuntime::toQt):
54876         * platform/DragImage.h:
54877         (WebCore):
54878         * platform/graphics/GraphicsContext.h:
54879         (GraphicsContext):
54880         * platform/graphics/Image.h:
54881         (Image):
54882         * platform/graphics/NativeImagePtr.h:
54883         (WebCore):
54884         * platform/graphics/gstreamer/ImageGStreamer.h:
54885         * platform/graphics/gstreamer/ImageGStreamerQt.cpp:
54886         (ImageGStreamer::ImageGStreamer):
54887         * platform/graphics/qt/GraphicsContext3DQt.cpp:
54888         (WebCore::GraphicsContext3D::getImageData):
54889         * platform/graphics/qt/GraphicsContextQt.cpp:
54890         (WebCore::GraphicsContext::pushTransparencyLayerInternal):
54891         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
54892         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
54893         * platform/graphics/qt/ImageBufferDataQt.h:
54894         (ImageBufferData):
54895         * platform/graphics/qt/ImageBufferQt.cpp:
54896         (WebCore::ImageBufferData::ImageBufferData):
54897         (WebCore):
54898         (WebCore::ImageBufferData::toQImage):
54899         (WebCore::ImageBuffer::copyImage):
54900         (WebCore::ImageBuffer::clip):
54901         (WebCore::ImageBuffer::platformTransformColorSpace):
54902         (WebCore::getImageData):
54903         (WebCore::ImageBuffer::putByteArray):
54904         (WebCore::encodeImage):
54905         (WebCore::ImageBuffer::toDataURL):
54906         * platform/graphics/qt/ImageDecoderQt.cpp:
54907         (WebCore::ImageFrame::asNewNativeImage):
54908         * platform/graphics/qt/ImageQt.cpp:
54909         (graphics):
54910         (loadResourcePixmap):
54911         (WebCore::Image::loadPlatformResource):
54912         (WebCore::Image::setPlatformResource):
54913         (WebCore::Image::drawPattern):
54914         (WebCore::BitmapImage::BitmapImage):
54915         (WebCore::BitmapImage::draw):
54916         (WebCore::BitmapImage::checkForSolidColor):
54917         (WebCore::BitmapImage::create):
54918         * platform/graphics/qt/PatternQt.cpp:
54919         (WebCore::Pattern::createPlatformPattern):
54920         * platform/graphics/qt/StillImageQt.cpp:
54921         (WebCore::StillImage::StillImage):
54922         (WebCore::StillImage::~StillImage):
54923         (WebCore::StillImage::currentFrameHasAlpha):
54924         (WebCore::StillImage::size):
54925         (WebCore::StillImage::nativeImageForCurrentFrame):
54926         (WebCore::StillImage::draw):
54927         * platform/graphics/qt/StillImageQt.h:
54928         (WebCore::StillImage::create):
54929         (WebCore::StillImage::createForRendering):
54930         (StillImage):
54931         * platform/graphics/qt/TransparencyLayer.h:
54932         (WebCore::TransparencyLayer::TransparencyLayer):
54933         (TransparencyLayer):
54934         * platform/graphics/surfaces/qt/GraphicsSurfaceQt.cpp:
54935         (WebCore::GraphicsSurface::createReadOnlyImage):
54936         * platform/graphics/texmap/TextureMapperGL.cpp:
54937         (WebCore::BitmapTextureGL::updateContents):
54938         * platform/qt/ClipboardQt.cpp:
54939         (WebCore::ClipboardQt::createDragImage):
54940         (WebCore::ClipboardQt::declareAndWriteDragImage):
54941         * platform/qt/CursorQt.cpp:
54942         (WebCore::createCustomCursor):
54943         * platform/qt/DragImageQt.cpp:
54944         (WebCore::createDragImageFromImage):
54945         * platform/qt/PasteboardQt.cpp:
54946         (WebCore::Pasteboard::writeImage):
54947
54948 2012-10-08  Carlos Garcia Campos  <cgarcia@igalia.com>
54949
54950         Unreviewed. Fix make distcheck.
54951
54952         * GNUmakefile.list.am: Add missing header file to compilation.
54953
54954 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
54955
54956         Unreviewed, rolling out r130619.
54957         http://trac.webkit.org/changeset/130619
54958         https://bugs.webkit.org/show_bug.cgi?id=98634
54959
54960         Causes many crashes on the EFL bots. (Requested by rakuco on
54961         #webkit).
54962
54963         * platform/RunLoop.h:
54964         (RunLoop):
54965         * platform/efl/RunLoopEfl.cpp:
54966         (WebCore::RunLoop::RunLoop):
54967         (WebCore::RunLoop::wakeUpEvent):
54968         (WebCore::RunLoop::wakeUp):
54969
54970 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
54971
54972         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
54973         https://bugs.webkit.org/show_bug.cgi?id=98505
54974
54975         Reviewed by Kenneth Rohde Christiansen.
54976
54977         Instead of ecore_pipe_write(),
54978         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
54979
54980         According to the EFL API document, this function is designed to dispatch
54981         a function on ecore main loop by avoiding dead lock or race condition. 
54982         With this function, webkit doesn't need to maintain ecore pipe also.
54983
54984         No new tests. The function to wakeup main loop is changed.
54985
54986         * platform/RunLoop.h:
54987         (RunLoop):
54988         * platform/efl/RunLoopEfl.cpp:
54989         (WebCore::RunLoop::RunLoop):
54990         (WebCore::RunLoop::wakeUpEvent):
54991         (WebCore::RunLoop::wakeUp):
54992
54993 2012-10-07  Arpita Bahuguna  <arpitabahuguna@gmail.com>
54994
54995         :first-line pseudo selector ignoring words created from :before
54996         https://bugs.webkit.org/show_bug.cgi?id=80794
54997
54998         Reviewed by Daniel Bates.
54999
55000         The :first-line pseudo-element style is not applied for content
55001         which is generated from the :before/:after pseudo-elements.
55002
55003         Test: fast/css/first-line-style-for-before-after-content.html
55004
55005         * rendering/RenderObject.cpp:
55006         (WebCore::firstLineStyleForCachedUncachedType):
55007         Added a new static helper function incorporating the common
55008         functionality of both uncachedFirstLineStyle() and firstLineStyleSlowCase()
55009         functions. It also modifies the functionality to handle the
55010         scenario when :first-line style needs to be applied on content
55011         generated from :before/:after.
55012
55013         While getting the :first-line style we should also consider the case
55014         when the content is generated from a :before/:after pseudo-element in
55015         which case the RenderInline's parent should be considered for
55016         obtaining the first-line style.
55017
55018         (WebCore):
55019         (WebCore::RenderObject::uncachedFirstLineStyle):
55020         (WebCore::RenderObject::firstLineStyleSlowCase):
55021         Moved the duplicate code between the two functions to the common
55022         helper function firstLineStyleForCachedUncachedType().
55023
55024 2012-10-07  Peter Wang  <peter.wang@torchmobile.com.cn>
55025
55026         Web Inspector: The front-end should provide the position in original source file when set a breakpoint
55027         https://bugs.webkit.org/show_bug.cgi?id=93473
55028
55029         Reviewed by Yury Semikhatsky.
55030
55031         Since frontend truncates the indent, the first statement in a line must match the breakpoint (line, 0).
55032         With this patch JSC debugger can support both normal and "Pretty Print" mode.
55033
55034         No new test case. This patch can be verified with cases in "LayoutTests/inspector/debugger/".
55035
55036         * bindings/js/ScriptDebugServer.cpp:
55037         (WebCore::ScriptDebugServer::ScriptDebugServer):
55038         (WebCore::ScriptDebugServer::hasBreakpoint):
55039         (WebCore::ScriptDebugServer::createCallFrameAndPauseIfNeeded):
55040         (WebCore::ScriptDebugServer::pauseIfNeeded):
55041         * bindings/js/ScriptDebugServer.h:
55042         (ScriptDebugServer):
55043
55044 2012-10-07  Martin Robinson  <mrobinson@igalia.com>
55045
55046         [Soup] Clean up ResourceError creation
55047         https://bugs.webkit.org/show_bug.cgi?id=98521
55048
55049         Reviewed by Carlos Garcia Campos.
55050
55051         Simplify the creation of ResourcErrors in ResourceHandleSoup. This is
55052         part of a process to make the libsoup networking backend more hackable.
55053
55054         No new tests. This shouldn't change functionality.
55055
55056         * GNUmakefile.list.am: Added new file.
55057         * PlatformEfl.cmake: Added new file.
55058         * platform/network/soup/ResourceError.h:
55059         (ResourceError): Added new factories.
55060         * platform/network/soup/ResourceErrorSoup.cpp: Added.
55061         (WebCore::failingURI): Added this helper.
55062         (WebCore::ResourceError::httpError): New factory.
55063         (WebCore::ResourceError::genericIOError): Ditto.
55064         (WebCore::ResourceError::tlsError): Ditto.
55065         (WebCore::ResourceError::timeoutError): Ditto.
55066         * platform/network/soup/ResourceHandleSoup.cpp:
55067         (WebCore::handleUnignoredTLSErrors): Created this helper which merges
55068         some of the logic from sendRequestCallback.
55069         (WebCore::sendRequestCallback): Use the new helper.
55070         (WebCore::requestTimeoutCallback): Use the new factory.
55071
55072 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
55073
55074         Rename first/second to key/value in HashMap iterators
55075         https://bugs.webkit.org/show_bug.cgi?id=82784
55076
55077         Reviewed by Eric Seidel.
55078
55079         * Modules/geolocation/Geolocation.cpp:
55080         (WebCore::Geolocation::Watchers::find):
55081         (WebCore::Geolocation::Watchers::remove):
55082         * Modules/indexeddb/IDBDatabase.cpp:
55083         (WebCore::IDBDatabase::objectStoreNames):
55084         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
55085         (WebCore::IDBDatabaseBackendImpl::metadata):
55086         * Modules/indexeddb/IDBFactoryBackendImpl.cpp:
55087         (WebCore::IDBFactoryBackendImpl::deleteDatabase):
55088         (WebCore::IDBFactoryBackendImpl::openBackingStore):
55089         (WebCore::IDBFactoryBackendImpl::open):
55090         * Modules/indexeddb/IDBObjectStore.cpp:
55091         (WebCore::IDBObjectStore::indexNames):
55092         (WebCore::IDBObjectStore::put):
55093         (WebCore::IDBObjectStore::index):
55094         (WebCore::IDBObjectStore::deleteIndex):
55095         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
55096         (WebCore::IDBObjectStoreBackendImpl::metadata):
55097         (WebCore::makeIndexWriters):
55098         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
55099         * Modules/indexeddb/IDBTransaction.cpp:
55100         (WebCore::IDBTransaction::objectStore):
55101         (WebCore::IDBTransaction::objectStoreDeleted):
55102         (WebCore::IDBTransaction::onAbort):
55103         (WebCore::IDBTransaction::dispatchEvent):
55104         * Modules/mediastream/MediaConstraintsImpl.cpp:
55105         (WebCore::MediaConstraintsImpl::getMandatoryConstraints):
55106         (WebCore::MediaConstraintsImpl::getMandatoryConstraintValue):
55107         * Modules/webdatabase/AbstractDatabase.cpp:
55108         (WebCore::AbstractDatabase::performOpenAndVerify):
55109         * Modules/webdatabase/DatabaseTracker.cpp:
55110         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55111         * Modules/webdatabase/OriginUsageRecord.cpp:
55112         (WebCore::OriginUsageRecord::diskUsage):
55113         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
55114         (WebCore::SQLTransactionCoordinator::acquireLock):
55115         (WebCore::SQLTransactionCoordinator::releaseLock):
55116         (WebCore::SQLTransactionCoordinator::shutdown):
55117         * Modules/webdatabase/chromium/DatabaseTrackerChromium.cpp:
55118         (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
55119         * Modules/webdatabase/chromium/QuotaTracker.cpp:
55120         (WebCore::QuotaTracker::getDatabaseSizeAndSpaceAvailableToOrigin):
55121         (WebCore::QuotaTracker::updateDatabaseSize):
55122         * Modules/websockets/WebSocketDeflateFramer.cpp:
55123         (WebCore::WebSocketExtensionDeflateFrame::processResponse):
55124         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
55125         (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
55126         * accessibility/AXObjectCache.cpp:
55127         (WebCore::AXObjectCache::~AXObjectCache):
55128         * bindings/gobject/DOMObjectCache.cpp:
55129         (WebKit::DOMObjectCache::clearByFrame):
55130         * bindings/js/DOMObjectHashTableMap.h:
55131         (WebCore::DOMObjectHashTableMap::~DOMObjectHashTableMap):
55132         (WebCore::DOMObjectHashTableMap::get):
55133         * bindings/js/JSDOMBinding.cpp:
55134         (WebCore::cacheDOMStructure):
55135         * bindings/js/JSDOMGlobalObject.cpp:
55136         (WebCore::JSDOMGlobalObject::visitChildren):
55137         * bindings/js/JSDOMGlobalObject.h:
55138         (WebCore::getDOMConstructor):
55139         * bindings/js/PageScriptDebugServer.cpp:
55140         (WebCore::PageScriptDebugServer::addListener):
55141         (WebCore::PageScriptDebugServer::removeListener):
55142         * bindings/js/ScriptCachedFrameData.cpp:
55143         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
55144         (WebCore::ScriptCachedFrameData::restore):
55145         * bindings/js/ScriptController.cpp:
55146         (WebCore::ScriptController::~ScriptController):
55147         (WebCore::ScriptController::clearWindowShell):
55148         (WebCore::ScriptController::attachDebugger):
55149         (WebCore::ScriptController::updateDocument):
55150         (WebCore::ScriptController::createRootObject):
55151         (WebCore::ScriptController::collectIsolatedContexts):
55152         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55153         (WebCore::ScriptController::clearScriptObjects):
55154         * bindings/js/ScriptController.h:
55155         (WebCore::ScriptController::windowShell):
55156         (WebCore::ScriptController::existingWindowShell):
55157         * bindings/js/ScriptDebugServer.cpp:
55158         (WebCore::ScriptDebugServer::setBreakpoint):
55159         (WebCore::ScriptDebugServer::removeBreakpoint):
55160         (WebCore::ScriptDebugServer::hasBreakpoint):
55161         * bindings/js/SerializedScriptValue.cpp:
55162         (WebCore::CloneSerializer::checkForDuplicate):
55163         (WebCore::CloneSerializer::dumpIfTerminal):
55164         (WebCore::CloneSerializer::write):
55165         * bindings/scripts/CodeGeneratorV8.pm:
55166         (GenerateImplementation):
55167         * bindings/scripts/test/V8/V8Float64Array.cpp:
55168         (WebCore::V8Float64Array::GetRawTemplate):
55169         (WebCore::V8Float64Array::GetTemplate):
55170         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
55171         (WebCore::V8TestActiveDOMObject::GetRawTemplate):
55172         (WebCore::V8TestActiveDOMObject::GetTemplate):
55173         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
55174         (WebCore::V8TestCustomNamedGetter::GetRawTemplate):
55175         (WebCore::V8TestCustomNamedGetter::GetTemplate):
55176         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
55177         (WebCore::V8TestEventConstructor::GetRawTemplate):
55178         (WebCore::V8TestEventConstructor::GetTemplate):
55179         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
55180         (WebCore::V8TestEventTarget::GetRawTemplate):
55181         (WebCore::V8TestEventTarget::GetTemplate):
55182         * bindings/scripts/test/V8/V8TestException.cpp:
55183         (WebCore::V8TestException::GetRawTemplate):
55184         (WebCore::V8TestException::GetTemplate):
55185         * bindings/scripts/test/V8/V8TestInterface.cpp:
55186         (WebCore::V8TestInterface::GetRawTemplate):
55187         (WebCore::V8TestInterface::GetTemplate):
55188         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
55189         (WebCore::V8TestMediaQueryListListener::GetRawTemplate):
55190         (WebCore::V8TestMediaQueryListListener::GetTemplate):
55191         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
55192         (WebCore::V8TestNamedConstructor::GetRawTemplate):
55193         (WebCore::V8TestNamedConstructor::GetTemplate):
55194         * bindings/scripts/test/V8/V8TestNode.cpp:
55195         (WebCore::V8TestNode::GetRawTemplate):
55196         (WebCore::V8TestNode::GetTemplate):
55197         * bindings/scripts/test/V8/V8TestObj.cpp:
55198         (WebCore::V8TestObj::GetRawTemplate):
55199         (WebCore::V8TestObj::GetTemplate):
55200         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
55201         (WebCore::V8TestSerializedScriptValueInterface::GetRawTemplate):
55202         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
55203         * bindings/v8/DOMWrapperWorld.cpp:
55204         (WebCore::DOMWrapperWorld::deallocate):
55205         (WebCore::DOMWrapperWorld::ensureIsolatedWorld):
55206         * bindings/v8/NPV8Object.cpp:
55207         (WebCore::freeV8NPObject):
55208         (WebCore::npCreateV8ScriptObject):
55209         * bindings/v8/ScriptController.cpp:
55210         (WebCore::ScriptController::clearScriptObjects):
55211         (WebCore::ScriptController::resetIsolatedWorlds):
55212         (WebCore::ScriptController::ensureIsolatedWorldContext):
55213         (WebCore::ScriptController::existingWindowShellInternal):
55214         (WebCore::ScriptController::evaluateInIsolatedWorld):
55215         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
55216         (WebCore::ScriptController::cleanupScriptObjectsForPlugin):
55217         (WebCore::ScriptController::collectIsolatedContexts):
55218         * bindings/v8/SerializedScriptValue.cpp:
55219         * bindings/v8/V8DOMMap.h:
55220         (WebCore::WeakReferenceMap::removeIfPresent):
55221         (WebCore::WeakReferenceMap::visit):
55222         * bindings/v8/V8PerContextData.cpp:
55223         (WebCore::V8PerContextData::dispose):
55224         * bindings/v8/npruntime.cpp:
55225         * bridge/IdentifierRep.cpp:
55226         (WebCore::IdentifierRep::get):
55227         * bridge/NP_jsobject.cpp:
55228         (ObjectMap::add):
55229         (ObjectMap::remove):
55230         * bridge/runtime_root.cpp:
55231         (JSC::Bindings::RootObject::invalidate):
55232         * css/CSSCanvasValue.cpp:
55233         (WebCore::CSSCanvasValue::canvasChanged):
55234         (WebCore::CSSCanvasValue::canvasResized):
55235         * css/CSSComputedStyleDeclaration.cpp:
55236         (WebCore::counterToCSSValue):
55237         * css/CSSCrossfadeValue.cpp:
55238         (WebCore::CSSCrossfadeValue::crossfadeChanged):
55239         * css/CSSFontFaceSource.cpp:
55240         (WebCore::CSSFontFaceSource::getFontData):
55241         * css/CSSFontSelector.cpp:
55242         (WebCore::CSSFontSelector::addFontFaceRule):
55243         (WebCore::CSSFontSelector::getFontData):
55244         * css/CSSImageGeneratorValue.cpp:
55245         (WebCore::CSSImageGeneratorValue::addClient):
55246         (WebCore::CSSImageGeneratorValue::removeClient):
55247         (WebCore::CSSImageGeneratorValue::getImage):
55248         * css/CSSSegmentedFontFace.cpp:
55249         (WebCore::CSSSegmentedFontFace::getFontData):
55250         * css/CSSSelector.cpp:
55251         (WebCore::CSSSelector::parsePseudoType):
55252         * css/CSSValuePool.cpp:
55253         (WebCore::CSSValuePool::createColorValue):
55254         (WebCore::CSSValuePool::createFontFamilyValue):
55255         (WebCore::CSSValuePool::createFontFaceValue):
55256         * css/PropertySetCSSStyleDeclaration.cpp:
55257         (WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
55258         * css/RuleSet.cpp:
55259         (WebCore::reportAtomRuleMap):
55260         (WebCore::RuleSet::addToRuleSet):
55261         (WebCore::shrinkMapVectorsToFit):
55262         * css/StyleBuilder.cpp:
55263         (WebCore::ApplyPropertyCounter::applyInheritValue):
55264         (WebCore::ApplyPropertyCounter::applyValue):
55265         * css/StyleResolver.cpp:
55266         (WebCore::StyleResolver::collectFeatures):
55267         (WebCore::StyleResolver::ruleSetForScope):
55268         (WebCore::StyleResolver::appendAuthorStylesheets):
55269         (WebCore::StyleResolver::sweepMatchedPropertiesCache):
55270         (WebCore::StyleResolver::collectMatchingRulesForList):
55271         * css/StyleSheetContents.cpp:
55272         (WebCore::StyleSheetContents::parserAddNamespace):
55273         (WebCore::StyleSheetContents::determineNamespace):
55274         * dom/CheckedRadioButtons.cpp:
55275         (WebCore::CheckedRadioButtons::addButton):
55276         (WebCore::CheckedRadioButtons::removeButton):
55277         * dom/ChildListMutationScope.cpp:
55278         (WebCore::ChildListMutationAccumulator::getOrCreate):
55279         * dom/Document.cpp:
55280         (WebCore::Document::windowNamedItems):
55281         (WebCore::Document::documentNamedItems):
55282         (WebCore::Document::getCSSCanvasElement):
55283         (WebCore::Document::cachedImmutableAttributeData):
55284         (WebCore::Document::getCachedLocalizer):
55285         * dom/DocumentMarkerController.cpp:
55286         (WebCore::DocumentMarkerController::markerContainingPoint):
55287         (WebCore::DocumentMarkerController::renderedRectsForMarkers):
55288         (WebCore::DocumentMarkerController::removeMarkers):
55289         (WebCore::DocumentMarkerController::repaintMarkers):
55290         (WebCore::DocumentMarkerController::invalidateRenderedRectsForMarkersInRect):
55291         (WebCore::DocumentMarkerController::showMarkers):
55292         * dom/DocumentOrderedMap.cpp:
55293         (WebCore::DocumentOrderedMap::remove):
55294         * dom/DocumentStyleSheetCollection.cpp:
55295         (WebCore::DocumentStyleSheetCollection::pageGroupUserSheets):
55296         * dom/ElementAttributeData.cpp:
55297         (WebCore::ensureAttrListForElement):
55298         * dom/EventDispatcher.cpp:
55299         (WebCore::EventRelatedTargetAdjuster::findRelatedTarget):
55300         * dom/IdTargetObserverRegistry.cpp:
55301         (WebCore::IdTargetObserverRegistry::addObserver):
55302         (WebCore::IdTargetObserverRegistry::removeObserver):
55303         * dom/MutationObserverInterestGroup.cpp:
55304         (WebCore::MutationObserverInterestGroup::isOldValueRequested):
55305         (WebCore::MutationObserverInterestGroup::enqueueMutationRecord):
55306         * dom/Node.cpp:
55307         (WebCore::Node::dumpStatistics):
55308         (WebCore::Node::clearRareData):
55309         (WebCore::NodeListsNodeData::invalidateCaches):
55310         (WebCore::collectMatchingObserversForMutation):
55311         * dom/NodeRareData.h:
55312         (WebCore::NodeListsNodeData::addCacheWithAtomicName):
55313         (WebCore::NodeListsNodeData::addCacheWithName):
55314         (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
55315         (WebCore::NodeListsNodeData::adoptTreeScope):
55316         * dom/ProcessingInstruction.cpp:
55317         (WebCore::ProcessingInstruction::checkStyleSheet):
55318         * dom/ScriptExecutionContext.cpp:
55319         (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects):
55320         (WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
55321         (WebCore::ScriptExecutionContext::resumeActiveDOMObjects):
55322         (WebCore::ScriptExecutionContext::stopActiveDOMObjects):
55323         (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
55324         * dom/SelectorQuery.cpp:
55325         (WebCore::SelectorQueryCache::add):
55326         * dom/SpaceSplitString.cpp:
55327         (WebCore::SpaceSplitStringData::create):
55328         * dom/StyledElement.cpp:
55329         (WebCore::StyledElement::updateAttributeStyle):
55330         * editing/mac/AlternativeTextUIController.mm:
55331         (WebCore::AlternativeTextUIController::AlernativeTextContextController::alternativesForContext):
55332         * html/FormController.cpp:
55333         (WebCore::SavedFormState::serializeTo):
55334         (WebCore::SavedFormState::appendControlState):
55335         (WebCore::SavedFormState::takeControlState):
55336         (WebCore::SavedFormState::getReferencedFilePaths):
55337         (WebCore::FormKeyGenerator::formKey):
55338         (WebCore::FormController::createSavedFormStateMap):
55339         (WebCore::FormController::formElementsState):
55340         (WebCore::FormController::takeStateForFormElement):
55341         (WebCore::FormController::getReferencedFilePaths):
55342         * html/HTMLCollection.cpp:
55343         (WebCore::HTMLCollectionCacheBase::append):
55344         * html/canvas/WebGLFramebuffer.cpp:
55345         (WebCore::WebGLFramebuffer::getAttachment):
55346         (WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):
55347         (WebCore::WebGLFramebuffer::checkStatus):
55348         (WebCore::WebGLFramebuffer::deleteObjectImpl):
55349         (WebCore::WebGLFramebuffer::initializeAttachments):
55350         * inspector/CodeGeneratorInspector.py:
55351         * inspector/DOMPatchSupport.cpp:
55352         (WebCore::DOMPatchSupport::diff):
55353         (WebCore::DOMPatchSupport::innerPatchChildren):
55354         (WebCore::DOMPatchSupport::removeChildAndMoveToNew):
55355         * inspector/InjectedScriptManager.cpp:
55356         (WebCore::InjectedScriptManager::injectedScriptForId):
55357         (WebCore::InjectedScriptManager::injectedScriptIdFor):
55358         (WebCore::InjectedScriptManager::discardInjectedScriptsFor):
55359         (WebCore::InjectedScriptManager::releaseObjectGroup):
55360         (WebCore::InjectedScriptManager::injectedScriptFor):
55361         * inspector/InspectorCSSAgent.cpp:
55362         (WebCore::SelectorProfile::commitSelector):
55363         (WebCore::SelectorProfile::commitSelectorTime):
55364         (WebCore::SelectorProfile::toInspectorObject):
55365         (WebCore::UpdateRegionLayoutTask::onTimer):
55366         (WebCore::InspectorCSSAgent::forcePseudoState):
55367         (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
55368         (WebCore::InspectorCSSAgent::assertStyleSheetForId):
55369         (WebCore::InspectorCSSAgent::didRemoveDOMNode):
55370         (WebCore::InspectorCSSAgent::didModifyDOMAttr):
55371         (WebCore::InspectorCSSAgent::resetPseudoStates):
55372         * inspector/InspectorConsoleAgent.cpp:
55373         (WebCore::InspectorConsoleAgent::stopTiming):
55374         (WebCore::InspectorConsoleAgent::count):
55375         * inspector/InspectorDOMAgent.cpp:
55376         (WebCore::InspectorDOMAgent::nodeForId):
55377         (WebCore::InspectorDOMAgent::performSearch):
55378         (WebCore::InspectorDOMAgent::getSearchResults):
55379         * inspector/InspectorDOMDebuggerAgent.cpp:
55380         (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
55381         * inspector/InspectorDOMStorageAgent.cpp:
55382         (WebCore::InspectorDOMStorageAgent::clearFrontend):
55383         (WebCore::InspectorDOMStorageAgent::enable):
55384         (WebCore::InspectorDOMStorageAgent::storageId):
55385         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
55386         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
55387         (WebCore::InspectorDOMStorageAgent::memoryBytesUsedByStorageCache):
55388         * inspector/InspectorDatabaseAgent.cpp:
55389         (WebCore::InspectorDatabaseAgent::enable):
55390         (WebCore::InspectorDatabaseAgent::databaseId):
55391         (WebCore::InspectorDatabaseAgent::findByFileName):
55392         (WebCore::InspectorDatabaseAgent::databaseForId):
55393         * inspector/InspectorDebuggerAgent.cpp:
55394         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
55395         (WebCore::InspectorDebuggerAgent::removeBreakpoint):
55396         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
55397         (WebCore::InspectorDebuggerAgent::searchInContent):
55398         (WebCore::InspectorDebuggerAgent::getScriptSource):
55399         (WebCore::InspectorDebuggerAgent::didParseSource):
55400         * inspector/InspectorIndexedDBAgent.cpp:
55401         (WebCore):
55402         * inspector/InspectorMemoryAgent.cpp:
55403         (WebCore):
55404         * inspector/InspectorPageAgent.cpp:
55405         (WebCore::cachedResourcesForFrame):
55406         (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
55407         (WebCore::InspectorPageAgent::frameDetached):
55408         * inspector/InspectorProfilerAgent.cpp:
55409         (WebCore::InspectorProfilerAgent::getProfileHeaders):
55410         (WebCore):
55411         (WebCore::InspectorProfilerAgent::getProfile):
55412         * inspector/InspectorResourceAgent.cpp:
55413         (WebCore::buildObjectForHeaders):
55414         (WebCore::InspectorResourceAgent::willSendRequest):
55415         (WebCore::InspectorResourceAgent::documentThreadableLoaderStartedLoadingForClient):
55416         (WebCore::InspectorResourceAgent::willLoadXHR):
55417         (WebCore::InspectorResourceAgent::replayXHR):
55418         * inspector/InspectorState.cpp:
55419         (WebCore::InspectorState::getBoolean):
55420         (WebCore::InspectorState::getString):
55421         (WebCore::InspectorState::getLong):
55422         (WebCore::InspectorState::getDouble):
55423         (WebCore::InspectorState::getObject):
55424         * inspector/InspectorStyleSheet.cpp:
55425         (WebCore::InspectorStyle::styleWithProperties):
55426         (WebCore::InspectorStyleSheet::inspectorStyleForId):
55427         * inspector/InspectorValues.cpp:
55428         (WebCore::InspectorObjectBase::get):
55429         (WebCore::InspectorObjectBase::writeJSON):
55430         * inspector/InspectorWorkerAgent.cpp:
55431         (WebCore::InspectorWorkerAgent::workerContextTerminated):
55432         (WebCore::InspectorWorkerAgent::createWorkerFrontendChannelsForExistingWorkers):
55433         (WebCore::InspectorWorkerAgent::destroyWorkerFrontendChannels):
55434         * inspector/MemoryInstrumentationImpl.cpp:
55435         (WebCore::MemoryInstrumentationClientImpl::countObjectSize):
55436         * inspector/MemoryInstrumentationImpl.h:
55437         (WebCore::MemoryInstrumentationClientImpl::totalSize):
55438         (WebCore::MemoryInstrumentationClientImpl::reportedSizeForAllTypes):
55439         * inspector/NetworkResourcesData.cpp:
55440         (WebCore::NetworkResourcesData::setXHRReplayData):
55441         (WebCore::NetworkResourcesData::removeCachedResource):
55442         (WebCore::NetworkResourcesData::clear):
55443         * loader/CrossOriginAccessControl.cpp:
55444         (WebCore::isSimpleCrossOriginAccessRequest):
55445         (WebCore::createAccessControlPreflightRequest):
55446         * loader/CrossOriginPreflightResultCache.cpp:
55447         (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
55448         (WebCore::CrossOriginPreflightResultCache::canSkipPreflight):
55449         * loader/DocumentLoader.cpp:
55450         (WebCore::DocumentLoader::getSubresources):
55451         (WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
55452         * loader/MainResourceLoader.cpp:
55453         (WebCore::MainResourceLoader::didReceiveResponse):
55454         * loader/ResourceLoadScheduler.cpp:
55455         (WebCore::ResourceLoadScheduler::servePendingRequests):
55456         * loader/appcache/ApplicationCache.cpp:
55457         (WebCore::ApplicationCache::removeResource):
55458         (WebCore::ApplicationCache::clearStorageID):
55459         (WebCore::ApplicationCache::dump):
55460         * loader/appcache/ApplicationCacheGroup.cpp:
55461         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
55462         (WebCore::ApplicationCacheGroup::startLoadingEntry):
55463         (WebCore::ApplicationCacheGroup::addEntry):
55464         * loader/appcache/ApplicationCacheHost.cpp:
55465         (WebCore::ApplicationCacheHost::fillResourceList):
55466         * loader/appcache/ApplicationCacheResource.cpp:
55467         (WebCore::ApplicationCacheResource::estimatedSizeInStorage):
55468         * loader/appcache/ApplicationCacheStorage.cpp:
55469         (WebCore::ApplicationCacheStorage::findOrCreateCacheGroup):
55470         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
55471         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
55472         (WebCore::ApplicationCacheStorage::store):
55473         (WebCore::ApplicationCacheStorage::empty):
55474         (WebCore::ApplicationCacheStorage::storeCopyOfCache):
55475         * loader/archive/ArchiveFactory.cpp:
55476         (WebCore::ArchiveFactory::registerKnownArchiveMIMETypes):
55477         * loader/cache/CachedRawResource.cpp:
55478         (WebCore::CachedRawResource::canReuse):
55479         * loader/cache/CachedResource.cpp:
55480         (WebCore::CachedResource::switchClientsToRevalidatedResource):
55481         (WebCore::CachedResource::updateResponseAfterRevalidation):
55482         * loader/cache/CachedResourceClientWalker.h:
55483         (WebCore::CachedResourceClientWalker::CachedResourceClientWalker):
55484         * loader/cache/CachedResourceLoader.cpp:
55485         (WebCore::CachedResourceLoader::~CachedResourceLoader):
55486         (WebCore::CachedResourceLoader::requestResource):
55487         (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
55488         (WebCore::CachedResourceLoader::removeCachedResource):
55489         (WebCore::CachedResourceLoader::garbageCollectDocumentResources):
55490         * loader/cache/MemoryCache.cpp:
55491         (WebCore::MemoryCache::removeResourcesWithOrigin):
55492         (WebCore::MemoryCache::getOriginsWithCache):
55493         (WebCore::MemoryCache::getStatistics):
55494         (WebCore::MemoryCache::setDisabled):
55495         * loader/icon/IconDatabase.cpp:
55496         (WebCore::IconDatabase::removeAllIcons):
55497         (WebCore::IconDatabase::iconRecordCountWithData):
55498         (WebCore::IconDatabase::performPendingRetainAndReleaseOperations):
55499         * page/DOMWindow.cpp:
55500         (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
55501         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
55502         * page/EventHandler.cpp:
55503         (WebCore::EventHandler::handleTouchEvent):
55504         * page/Frame.cpp:
55505         (WebCore::Frame::injectUserScripts):
55506         * page/PageGroup.cpp:
55507         (WebCore::PageGroup::pageGroup):
55508         (WebCore::PageGroup::closeLocalStorage):
55509         (WebCore::PageGroup::clearLocalStorageForAllOrigins):
55510         (WebCore::PageGroup::clearLocalStorageForOrigin):
55511         (WebCore::PageGroup::syncLocalStorage):
55512         (WebCore::PageGroup::addUserScriptToWorld):
55513         (WebCore::PageGroup::addUserStyleSheetToWorld):
55514         (WebCore::PageGroup::removeUserScriptFromWorld):
55515         (WebCore::PageGroup::removeUserStyleSheetFromWorld):
55516         * page/PageSerializer.cpp:
55517         (WebCore::PageSerializer::urlForBlankFrame):
55518         * page/SecurityPolicy.cpp:
55519         (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
55520         (WebCore::SecurityPolicy::removeOriginAccessWhitelistEntry):
55521         * page/Settings.cpp:
55522         (WebCore::setGenericFontFamilyMap):
55523         (WebCore::getGenericFontFamilyForScript):
55524         * page/SpeechInput.cpp:
55525         (WebCore::SpeechInput::registerListener):
55526         * page/TouchDisambiguation.cpp:
55527         (WebCore::findGoodTouchTargets):
55528         * page/WindowFeatures.cpp:
55529         (WebCore::WindowFeatures::boolFeature):
55530         (WebCore::WindowFeatures::floatFeature):
55531         * page/animation/AnimationController.cpp:
55532         (WebCore::AnimationControllerPrivate::updateAnimations):
55533         (WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
55534         (WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
55535         (WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
55536         * page/animation/CompositeAnimation.cpp:
55537         (WebCore::CompositeAnimation::clearRenderer):
55538         (WebCore::CompositeAnimation::updateTransitions):
55539         (WebCore::CompositeAnimation::updateKeyframeAnimations):
55540         (WebCore::CompositeAnimation::animate):
55541         (WebCore::CompositeAnimation::getAnimatedStyle):
55542         (WebCore::CompositeAnimation::setAnimating):
55543         (WebCore::CompositeAnimation::timeToNextService):
55544         (WebCore::CompositeAnimation::getAnimationForProperty):
55545         (WebCore::CompositeAnimation::suspendAnimations):
55546         (WebCore::CompositeAnimation::resumeAnimations):
55547         (WebCore::CompositeAnimation::overrideImplicitAnimations):
55548         (WebCore::CompositeAnimation::resumeOverriddenImplicitAnimations):
55549         (WebCore::CompositeAnimation::isAnimatingProperty):
55550         (WebCore::CompositeAnimation::numberOfActiveAnimations):
55551         * platform/Language.cpp:
55552         (WebCore::languageDidChange):
55553         * platform/MIMETypeRegistry.cpp:
55554         (WebCore::MIMETypeRegistry::getNormalizedMIMEType):
55555         * platform/audio/HRTFElevation.cpp:
55556         (WebCore::getConcatenatedImpulseResponsesForSubject):
55557         * platform/blackberry/CookieManager.cpp:
55558         (WebCore::CookieManager::generateHtmlFragmentForCookies):
55559         (WebCore::CookieManager::removeAllCookies):
55560         * platform/blackberry/CookieMap.cpp:
55561         (WebCore::CookieMap::removeOldestCookie):
55562         (WebCore::CookieMap::getAllChildCookies):
55563         * platform/cf/BinaryPropertyList.cpp:
55564         (WebCore::BinaryPropertyListPlan::writeIntegerArray):
55565         * platform/chromium/support/WebHTTPLoadInfo.cpp:
55566         (WebKit::addHeader):
55567         * platform/chromium/support/WebURLRequest.cpp:
55568         (WebKit::WebURLRequest::visitHTTPHeaderFields):
55569         * platform/chromium/support/WebURLResponse.cpp:
55570         (WebKit::WebURLResponse::addHTTPHeaderField):
55571         (WebKit::WebURLResponse::visitHTTPHeaderFields):
55572         * platform/graphics/DisplayRefreshMonitor.cpp:
55573         (WebCore::DisplayRefreshMonitorManager::ensureMonitorForClient):
55574         (WebCore::DisplayRefreshMonitorManager::unregisterClient):
55575         * platform/graphics/FontCache.cpp:
55576         (WebCore::FontCache::getCachedFontPlatformData):
55577         (WebCore::FontCache::getVerticalData):
55578         (WebCore::FontCache::getCachedFontData):
55579         (WebCore::FontCache::releaseFontData):
55580         (WebCore::FontCache::purgeInactiveFontData):
55581         * platform/graphics/GlyphPageTreeNode.cpp:
55582         (WebCore::GlyphPageTreeNode::treeGlyphPageCount):
55583         (WebCore::GlyphPageTreeNode::pageCount):
55584         (WebCore::GlyphPageTreeNode::pruneTreeCustomFontData):
55585         (WebCore::GlyphPageTreeNode::pruneTreeFontData):
55586         (WebCore::GlyphPageTreeNode::pruneCustomFontData):
55587         (WebCore::GlyphPageTreeNode::pruneFontData):
55588         (WebCore::GlyphPageTreeNode::showSubtree):
55589         (showGlyphPageTrees):
55590         * platform/graphics/TiledBackingStore.cpp:
55591         (WebCore::TiledBackingStore::updateTileBuffers):
55592         (WebCore::TiledBackingStore::resizeEdgeTiles):
55593         (WebCore::TiledBackingStore::setKeepRect):
55594         * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
55595         (WebCore::AVFWrapper::avfWrapperForCallbackContext):
55596         * platform/graphics/blackberry/LayerTiler.cpp:
55597         (WebCore::LayerTiler::layerVisibilityChanged):
55598         (WebCore::LayerTiler::uploadTexturesIfNeeded):
55599         (WebCore::LayerTiler::addTileJob):
55600         (WebCore::LayerTiler::deleteTextures):
55601         (WebCore::LayerTiler::pruneTextures):
55602         (WebCore::LayerTiler::bindContentsTexture):
55603         * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
55604         (WebCore::TextureCacheCompositingThread::textureForTiledContents):
55605         (WebCore::TextureCacheCompositingThread::textureForColor):
55606         * platform/graphics/ca/GraphicsLayerCA.cpp:
55607         (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
55608         (WebCore::GraphicsLayerCA::pauseAnimation):
55609         (WebCore::GraphicsLayerCA::layerDidDisplay):
55610         (WebCore::GraphicsLayerCA::updateGeometry):
55611         (WebCore::GraphicsLayerCA::updateTransform):
55612         (WebCore::GraphicsLayerCA::updateChildrenTransform):
55613         (WebCore::GraphicsLayerCA::updateMasksToBounds):
55614         (WebCore::GraphicsLayerCA::updateContentsVisibility):
55615         (WebCore::GraphicsLayerCA::updateContentsOpaque):
55616         (WebCore::GraphicsLayerCA::updateBackfaceVisibility):
55617         (WebCore::GraphicsLayerCA::updateFilters):
55618         (WebCore::GraphicsLayerCA::ensureStructuralLayer):
55619         (WebCore::GraphicsLayerCA::updateLayerDrawsContent):
55620         (WebCore::GraphicsLayerCA::updateContentsImage):
55621         (WebCore::GraphicsLayerCA::updateContentsRect):
55622         (WebCore::GraphicsLayerCA::updateMaskLayer):
55623         (WebCore::GraphicsLayerCA::updateLayerAnimations):
55624         (WebCore::GraphicsLayerCA::setAnimationOnLayer):
55625         (WebCore::GraphicsLayerCA::removeCAAnimationFromLayer):
55626         (WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
55627         (WebCore::GraphicsLayerCA::suspendAnimations):
55628         (WebCore::GraphicsLayerCA::resumeAnimations):
55629         (WebCore::GraphicsLayerCA::findOrMakeClone):
55630         (WebCore::GraphicsLayerCA::setOpacityInternal):
55631         (WebCore::GraphicsLayerCA::updateOpacityOnLayer):
55632         * platform/graphics/ca/mac/TileCache.mm:
55633         (WebCore::TileCache::~TileCache):
55634         (WebCore::TileCache::setNeedsDisplay):
55635         (WebCore::TileCache::setScale):
55636         (WebCore::TileCache::setAcceleratesDrawing):
55637         (WebCore::TileCache::setTileDebugBorderWidth):
55638         (WebCore::TileCache::setTileDebugBorderColor):
55639         (WebCore::TileCache::revalidateTiles):
55640         * platform/graphics/ca/win/PlatformCALayerWin.cpp:
55641         (PlatformCALayer::animationStarted):
55642         (resubmitAllAnimations):
55643         (PlatformCALayer::animationForKey):
55644         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
55645         (WebCore::LookupAltName):
55646         (WebCore::fontContainsCharacter):
55647         * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
55648         (WebCore::getDerivedFontData):
55649         * platform/graphics/filters/CustomFilterGlobalContext.cpp:
55650         (WebCore::CustomFilterGlobalContext::~CustomFilterGlobalContext):
55651         (WebCore::CustomFilterGlobalContext::getValidatedProgram):
55652         (WebCore::CustomFilterGlobalContext::removeValidatedProgram):
55653         * platform/graphics/filters/CustomFilterProgram.cpp:
55654         (WebCore::CustomFilterProgram::notifyClients):
55655         * platform/graphics/harfbuzz/HarfBuzzSkia.cpp:
55656         (WebCore::getCachedHarfbuzzFace):
55657         (WebCore::releaseCachedHarfbuzzFace):
55658         * platform/graphics/harfbuzz/ng/HarfBuzzNGFace.cpp:
55659         (WebCore::HarfBuzzNGFace::HarfBuzzNGFace):
55660         (WebCore::HarfBuzzNGFace::~HarfBuzzNGFace):
55661         * platform/graphics/mac/SimpleFontDataCoreText.cpp:
55662         (WebCore::SimpleFontData::getCFStringAttributes):
55663         * platform/graphics/mac/SimpleFontDataMac.mm:
55664         (WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
55665         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
55666         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
55667         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
55668         (WebCore::GraphicsContext3D::compileShader):
55669         (WebCore::GraphicsContext3D::mappedSymbolName):
55670         (WebCore::GraphicsContext3D::getShaderiv):
55671         (WebCore::GraphicsContext3D::getShaderInfoLog):
55672         (WebCore::GraphicsContext3D::getShaderSource):
55673         * platform/graphics/openvg/EGLDisplayOpenVG.cpp:
55674         (WebCore::EGLDisplayOpenVG::~EGLDisplayOpenVG):
55675         (WebCore::EGLDisplayOpenVG::destroySurface):
55676         (WebCore::EGLDisplayOpenVG::contextForSurface):
55677         * platform/graphics/texmap/TextureMapperGL.cpp:
55678         (WebCore::TextureMapperGLData::SharedGLData::currentSharedGLData):
55679         (WebCore::TextureMapperGLData::SharedGLData::~SharedGLData):
55680         * platform/graphics/texmap/TextureMapperShaderManager.cpp:
55681         (WebCore::TextureMapperShaderManager::getShaderProgram):
55682         (WebCore::TextureMapperShaderManager::getShaderForFilter):
55683         * platform/graphics/wince/FontPlatformData.cpp:
55684         (WebCore::FixedSizeFontData::create):
55685         * platform/gtk/DataObjectGtk.cpp:
55686         (WebCore::DataObjectGtk::forClipboard):
55687         * platform/gtk/GtkDragAndDropHelper.cpp:
55688         (WebCore::GtkDragAndDropHelper::handleGetDragData):
55689         (WebCore::GtkDragAndDropHelper::handleDragLeave):
55690         (WebCore::GtkDragAndDropHelper::handleDragMotion):
55691         (WebCore::GtkDragAndDropHelper::handleDragDataReceived):
55692         (WebCore::GtkDragAndDropHelper::handleDragDrop):
55693         * platform/gtk/RedirectedXCompositeWindow.cpp:
55694         (WebCore::filterXDamageEvent):
55695         * platform/gtk/RenderThemeGtk3.cpp:
55696         (WebCore::gtkStyleChangedCallback):
55697         (WebCore::getStyleContext):
55698         * platform/mac/ScrollbarThemeMac.mm:
55699         (+[WebScrollbarPrefsObserver appearancePrefsChanged:]):
55700         * platform/network/CredentialStorage.cpp:
55701         (WebCore::CredentialStorage::set):
55702         (WebCore::CredentialStorage::get):
55703         * platform/network/HTTPHeaderMap.cpp:
55704         (WebCore::HTTPHeaderMap::copyData):
55705         (WebCore::HTTPHeaderMap::get):
55706         * platform/network/MIMEHeader.cpp:
55707         (WebCore::MIMEHeader::parseHeader):
55708         * platform/network/ResourceHandle.cpp:
55709         (WebCore::ResourceHandle::create):
55710         * platform/network/ResourceRequestBase.cpp:
55711         (WebCore::ResourceRequestBase::addHTTPHeaderField):
55712         (WebCore::ResourceRequestBase::addHTTPHeaderFields):
55713         * platform/network/blackberry/ResourceRequestBlackBerry.cpp:
55714         (WebCore::ResourceRequest::targetTypeFromMimeType):
55715         (WebCore::ResourceRequest::initializePlatformRequest):
55716         * platform/network/cf/ResourceHandleCFNet.cpp:
55717         (WebCore::makeFinalRequest):
55718         * platform/network/cf/ResourceRequestCFNet.cpp:
55719         (WebCore::setHeaderFields):
55720         * platform/network/curl/ResourceHandleManager.cpp:
55721         (WebCore::ResourceHandleManager::initializeHandle):
55722         * platform/network/mac/ResourceRequestMac.mm:
55723         (WebCore::ResourceRequest::doUpdatePlatformRequest):
55724         * platform/network/qt/ResourceRequestQt.cpp:
55725         (WebCore::ResourceRequest::toNetworkRequest):
55726         * platform/network/soup/ResourceHandleSoup.cpp:
55727         (WebCore::sendRequestCallback):
55728         (WebCore::ResourceHandle::setClientCertificate):
55729         * platform/network/soup/ResourceRequestSoup.cpp:
55730         (WebCore::ResourceRequest::updateSoupMessage):
55731         (WebCore::ResourceRequest::toSoupMessage):
55732         * platform/network/soup/ResourceResponseSoup.cpp:
55733         (WebCore::ResourceResponse::toSoupMessage):
55734         * platform/network/win/ResourceHandleWin.cpp:
55735         (WebCore::ResourceHandle::start):
55736         * platform/qt/RunLoopQt.cpp:
55737         (WebCore::RunLoop::TimerBase::timerFired):
55738         * platform/text/LocaleToScriptMappingDefault.cpp:
55739         (WebCore::scriptNameToCode):
55740         (WebCore::localeToScriptCodeForFontSelection):
55741         * platform/text/TextEncodingRegistry.cpp:
55742         (WebCore::pruneBlacklistedCodecs):
55743         (WebCore::dumpTextEncodingNameMap):
55744         * platform/text/transcoder/FontTranscoder.cpp:
55745         (WebCore::FontTranscoder::converterType):
55746         * platform/text/win/TextCodecWin.cpp:
55747         (WebCore::LanguageManager::LanguageManager):
55748         (WebCore::getCodePage):
55749         (WebCore::TextCodecWin::registerExtendedEncodingNames):
55750         (WebCore::TextCodecWin::registerExtendedCodecs):
55751         (WebCore::TextCodecWin::enumerateSupportedEncodings):
55752         * platform/win/ClipboardUtilitiesWin.cpp:
55753         (WebCore::getDataMapItem):
55754         (WebCore::getClipboardData):
55755         (WebCore::setClipboardData):
55756         * platform/win/ClipboardWin.cpp:
55757         (WebCore::ClipboardWin::types):
55758         * platform/win/FileSystemWin.cpp:
55759         (WebCore::cachedStorageDirectory):
55760         * platform/win/RunLoopWin.cpp:
55761         (WebCore::RunLoop::TimerBase::timerFired):
55762         * platform/win/WCDataObject.cpp:
55763         (WebCore::WCDataObject::createInstance):
55764         * platform/wince/MIMETypeRegistryWinCE.cpp:
55765         (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType):
55766         * platform/wx/ContextMenuWx.cpp:
55767         (WebCore::ContextMenu::appendItem):
55768         * plugins/PluginDatabase.cpp:
55769         (WebCore::PluginDatabase::refresh):
55770         (WebCore::PluginDatabase::MIMETypeForExtension):
55771         (WebCore::PluginDatabase::remove):
55772         * plugins/PluginMainThreadScheduler.cpp:
55773         (WebCore::PluginMainThreadScheduler::scheduleCall):
55774         (WebCore::PluginMainThreadScheduler::dispatchCalls):
55775         * plugins/PluginStream.cpp:
55776         (WebCore::PluginStream::startStream):
55777         * plugins/blackberry/PluginDataBlackBerry.cpp:
55778         (WebCore::PluginData::initPlugins):
55779         * plugins/wx/PluginDataWx.cpp:
55780         (WebCore::PluginData::initPlugins):
55781         * rendering/ExclusionShapeInsideInfo.cpp:
55782         (WebCore::ExclusionShapeInsideInfo::ensureExclusionShapeInsideInfoForRenderBlock):
55783         * rendering/FlowThreadController.cpp:
55784         (WebCore::FlowThreadController::unregisterNamedFlowContentNode):
55785         * rendering/InlineFlowBox.cpp:
55786         (WebCore::InlineFlowBox::requiresIdeographicBaseline):
55787         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
55788         * rendering/RenderBlock.cpp:
55789         (WebCore::RenderBlock::clearFloats):
55790         * rendering/RenderBlockLineLayout.cpp:
55791         (WebCore::setLogicalWidthForTextRun):
55792         * rendering/RenderBoxModelObject.cpp:
55793         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
55794         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
55795         * rendering/RenderCounter.cpp:
55796         (WebCore::RenderCounter::destroyCounterNodes):
55797         (WebCore::RenderCounter::destroyCounterNode):
55798         (WebCore::updateCounters):
55799         (WebCore::RenderCounter::rendererStyleChanged):
55800         * rendering/RenderFlowThread.cpp:
55801         (WebCore::RenderFlowThread::setRegionRangeForBox):
55802         (WebCore::RenderFlowThread::getRegionRangeForBox):
55803         * rendering/RenderLayer.cpp:
55804         (WebCore::RenderLayer::paint):
55805         (WebCore::performOverlapTests):
55806         * rendering/RenderLayerFilterInfo.cpp:
55807         (WebCore::RenderLayerFilterInfo::filterInfoForRenderLayer):
55808         (WebCore::RenderLayerFilterInfo::createFilterInfoForRenderLayerIfNeeded):
55809         * rendering/RenderNamedFlowThread.cpp:
55810         (WebCore::RenderNamedFlowThread::dependsOn):
55811         (WebCore::RenderNamedFlowThread::pushDependencies):
55812         * rendering/RenderRegion.cpp:
55813         (WebCore::RenderRegion::setRenderBoxRegionInfo):
55814         (WebCore::RenderRegion::setRegionObjectsRegionStyle):
55815         (WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
55816         (WebCore::RenderRegion::computeChildrenStyleInRegion):
55817         * rendering/RenderTableSection.cpp:
55818         (WebCore::RenderTableSection::cachedCollapsedBorder):
55819         * rendering/RenderThemeMac.mm:
55820         (WebCore::RenderThemeMac::systemColor):
55821         * rendering/RenderView.cpp:
55822         (WebCore::RenderView::selectionBounds):
55823         (WebCore::RenderView::setSelection):
55824         * rendering/RenderWidget.cpp:
55825         (WebCore::WidgetHierarchyUpdatesSuspensionScope::moveWidgets):
55826         * rendering/RootInlineBox.cpp:
55827         (WebCore::RootInlineBox::ascentAndDescentForBox):
55828         * rendering/VerticalPositionCache.h:
55829         (WebCore::VerticalPositionCache::get):
55830         * rendering/svg/RenderSVGInlineText.cpp:
55831         (WebCore::RenderSVGInlineText::characterStartsNewTextChunk):
55832         * rendering/svg/RenderSVGResourceFilter.cpp:
55833         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
55834         * rendering/svg/RenderSVGResourceGradient.cpp:
55835         (WebCore::RenderSVGResourceGradient::applyResource):
55836         * rendering/svg/RenderSVGResourcePattern.cpp:
55837         (WebCore::RenderSVGResourcePattern::applyResource):
55838         * rendering/svg/SVGResourcesCache.cpp:
55839         (WebCore::SVGResourcesCache::resourceDestroyed):
55840         * rendering/svg/SVGRootInlineBox.cpp:
55841         (WebCore::swapItemsInLayoutAttributes):
55842         * rendering/svg/SVGTextLayoutAttributes.cpp:
55843         (WebCore::SVGTextLayoutAttributes::dump):
55844         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp:
55845         (WebCore::SVGTextLayoutAttributesBuilder::buildCharacterDataMap):
55846         (WebCore::SVGTextLayoutAttributesBuilder::fillCharacterDataMap):
55847         * rendering/svg/SVGTextLayoutEngine.cpp:
55848         (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
55849         * rendering/svg/SVGTextMetricsBuilder.cpp:
55850         (WebCore::SVGTextMetricsBuilder::measureTextRenderer):
55851         * storage/StorageAreaSync.cpp:
55852         (WebCore::StorageAreaSync::syncTimerFired):
55853         (WebCore::StorageAreaSync::performImport):
55854         (WebCore::StorageAreaSync::sync):
55855         * storage/StorageMap.cpp:
55856         (WebCore::StorageMap::key):
55857         (WebCore::StorageMap::setItem):
55858         * storage/StorageNamespaceImpl.cpp:
55859         (WebCore::StorageNamespaceImpl::localStorageNamespace):
55860         (WebCore::StorageNamespaceImpl::copy):
55861         (WebCore::StorageNamespaceImpl::close):
55862         (WebCore::StorageNamespaceImpl::clearAllOriginsForDeletion):
55863         (WebCore::StorageNamespaceImpl::sync):
55864         * svg/SVGDocumentExtensions.cpp:
55865         (WebCore::SVGDocumentExtensions::removeAnimationElementFromTarget):
55866         (WebCore::SVGDocumentExtensions::removeAllAnimationElementsFromTarget):
55867         (WebCore::SVGDocumentExtensions::addPendingResource):
55868         (WebCore::SVGDocumentExtensions::isElementPendingResources):
55869         (WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
55870         (WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
55871         (WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement):
55872         (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget):
55873         * svg/SVGElement.cpp:
55874         (WebCore::SVGElement::~SVGElement):
55875         * svg/animation/SMILTimeContainer.cpp:
55876         (WebCore::SMILTimeContainer::setElapsed):
55877         (WebCore::SMILTimeContainer::updateAnimations):
55878         * svg/graphics/SVGImageCache.cpp:
55879         (WebCore::SVGImageCache::~SVGImageCache):
55880         (WebCore::SVGImageCache::removeClientFromCache):
55881         (WebCore::SVGImageCache::requestedSizeAndScales):
55882         (WebCore::SVGImageCache::imageContentChanged):
55883         (WebCore::SVGImageCache::redraw):
55884         (WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):
55885         * svg/graphics/filters/SVGFilterBuilder.h:
55886         (WebCore::SVGFilterBuilder::effectReferences):
55887         (WebCore::SVGFilterBuilder::addBuiltinEffects):
55888         * svg/properties/SVGAnimatedProperty.h:
55889         (WebCore::SVGAnimatedProperty::~SVGAnimatedProperty):
55890         * svg/properties/SVGAttributeToPropertyMap.cpp:
55891         (WebCore::SVGAttributeToPropertyMap::addProperties):
55892         (WebCore::SVGAttributeToPropertyMap::synchronizeProperties):
55893         * workers/WorkerContext.cpp:
55894         (WebCore::WorkerContext::hasPendingActivity):
55895         * workers/WorkerEventQueue.cpp:
55896         (WebCore::WorkerEventQueue::close):
55897         * xml/XMLHttpRequest.cpp:
55898         (WebCore::XMLHttpRequest::setRequestHeaderInternal):
55899         (WebCore::XMLHttpRequest::getAllResponseHeaders):
55900         * xml/XPathFunctions.cpp:
55901         (WebCore::XPath::createFunction):
55902         * xml/XPathParser.cpp:
55903         (isAxisName):
55904         * xml/XSLTProcessorLibxslt.cpp:
55905         (WebCore::xsltParamArrayFromParameterMap):
55906         * xml/XSLTProcessorQt.cpp:
55907         (WebCore::XSLTProcessor::transformToString):
55908
55909 2012-10-07  Geoffrey Garen  <ggaren@apple.com>
55910
55911         REGRESSION (r130584): Crashes in JSC::MarkedAllocator::allocateSlowCase, failing fast/dom/gc-dom-tree-lifetime.html
55912         https://bugs.webkit.org/show_bug.cgi?id=98612
55913
55914         Reviewed by Darin Adler.
55915
55916         Since DOM modification can happen outside of JS, calls into JS due to
55917         DOM modification need to take the JS lock.
55918
55919         * bindings/js/JSNodeCustom.cpp:
55920         (WebCore::willCreatePossiblyOrphanedTreeByRemovalSlowCase): Take the JS
55921         lock before doing a JS allocation, since this may be a JS entrypoint.
55922
55923         * bindings/js/JSNodeCustom.h:
55924         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Split out a slow case
55925         to help the inliner.
55926
55927 2012-10-07  Nick Carter  <nick@chromium.org>
55928
55929         [chromium] Crash in WebCore::GraphicsLayerChromium::setContentsToImage
55930         https://bugs.webkit.org/show_bug.cgi?id=98456
55931
55932         Reviewed by James Robinson.
55933
55934         Handle null return of nativeImageForCurrentFrame.
55935
55936         Test: compositing/images/truncated-direct-png-image.html
55937
55938         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
55939         (WebCore::GraphicsLayerChromium::setContentsToImage):
55940
55941 2012-10-07  Benjamin Poulain  <benjamin@webkit.org>
55942
55943         WTFURL: implement URL port removal for HTMLAnchorElement
55944         https://bugs.webkit.org/show_bug.cgi?id=98604
55945
55946         Reviewed by Adam Barth.
55947
55948         * platform/KURLWTFURL.cpp:
55949         (WebCore::KURL::hasPort):
55950         (WebCore::KURL::removePort):
55951         (WebCore::KURL::isHierarchical):
55952         Implement those methods to pass the port removal test of HTMLAnchorElement.
55953
55954 2012-10-05  Dirk Schulze  <krit@webkit.org>
55955
55956         SVG radialGradient should support 'fr' for focal radius (just like Canvas)
55957         https://bugs.webkit.org/show_bug.cgi?id=97986
55958
55959         Reviewed by Daniel Bates.
55960
55961         Update SVGRadialGradient to the changed behavior in SVG2: http://www.w3.org/TR/SVG2/pservers.html#RadialGradients
55962         SVG2 adds the focal radius for radial gradients. Color stops will start from the edge of
55963         the focal radius.
55964         The new specification does not limit the focal point to be inside the radial gradients radius.
55965         This makes SVGRadialGradient consistent with the radial gradient on Canvas.
55966
55967         Test: svg/custom/radialGradient-focal-radius.svg
55968
55969         * rendering/svg/RenderSVGResourceRadialGradient.cpp:
55970             Remove checks for position of focal point. The focal point
55971             can be placed every where outside the radius of the gradient now.
55972         (WebCore::RenderSVGResourceRadialGradient::focalRadius):
55973             Add new method to get the focal radius from SVGRadialGradientElement.
55974         (WebCore::RenderSVGResourceRadialGradient::buildGradient):
55975         * rendering/svg/RenderSVGResourceRadialGradient.h:
55976         (RenderSVGResourceRadialGradient):
55977         * rendering/svg/SVGRenderTreeAsText.cpp:
55978         (WebCore::writeSVGResourceContainer):
55979             Modify DRT output to include the focal radius.
55980         * svg/RadialGradientAttributes.h:
55981         (WebCore::RadialGradientAttributes::RadialGradientAttributes):
55982         (WebCore::RadialGradientAttributes::fr):
55983         (WebCore::RadialGradientAttributes::setFr):
55984         (WebCore::RadialGradientAttributes::hasFr):
55985         (RadialGradientAttributes):
55986             New setters and getters for focal radius.
55987         * svg/SVGRadialGradientElement.cpp:
55988         (WebCore):
55989         (WebCore::SVGRadialGradientElement::SVGRadialGradientElement):
55990         (WebCore::SVGRadialGradientElement::isSupportedAttribute):
55991         (WebCore::SVGRadialGradientElement::parseAttribute):
55992         (WebCore::SVGRadialGradientElement::collectGradientAttributes):
55993         (WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
55994             Ditto.
55995         * svg/SVGRadialGradientElement.h:
55996         (SVGRadialGradientElement):
55997         * svg/SVGRadialGradientElement.idl:
55998         * svg/svgattrs.in:
55999             Add 'fr' as new attribute to the SVG attribute list.
56000
56001 2012-10-07  Glenn Adams  <glenn@skynav.com>
56002
56003         Use start instead of -webkit-auto in default and quirks mode stylesheets.
56004         https://bugs.webkit.org/show_bug.cgi?id=98609
56005
56006         Reviewed by Antti Koivisto.
56007
56008         Change text-align use of legacy '-webkit-auto' to 'start' in the few places where it is used
56009         in default/quirks stylesheets.
56010         
56011         No new tests. No change of rendering/styling behavior. No performance impact.
56012
56013         * css/html.css:
56014         (input, textarea, keygen, select, button, isindex):
56015         (ruby > rt):
56016         * css/quirks.css:
56017         (table):
56018
56019 2012-10-06  Raul Hudea  <rhudea@adobe.com>
56020
56021         -webkit-clip-path should parse IRIs
56022         https://bugs.webkit.org/show_bug.cgi?id=96381
56023
56024         Reviewed by Andreas Kling.
56025
56026         Implemented the clipping via referencing a SVG clipPath. Currently it works only if the clipPath is defined
56027         before using it on an HTML element. The forward reference issue is tracked via https://bugs.webkit.org/show_bug.cgi?id=90405.
56028
56029         Tests: css3/masking/clip-path-reference-userSpaceOnUse.html
56030                css3/masking/clip-path-reference.html
56031                fast/masking/parsing-clip-path-iri.html
56032
56033         * css/CSSComputedStyleDeclaration.cpp:
56034         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Add handling for SVG clipPath references.
56035         * css/CSSParser.cpp:
56036         (WebCore::CSSParser::parseValue): Add handling for SVG clipPath references.
56037         * css/StyleBuilder.cpp:
56038         (WebCore::ApplyPropertyClipPath::applyValue): Add handling for SVG references.
56039         * rendering/ClipPathOperation.h:
56040         (ReferenceClipPathOperation): Added a new class corresponding to SVG referenced clipPath.
56041         (WebCore::ReferenceClipPathOperation::create):
56042         (WebCore::ReferenceClipPathOperation::url):
56043         (WebCore::ReferenceClipPathOperation::fragment):
56044         (WebCore::ReferenceClipPathOperation::operator==):
56045         (WebCore::ReferenceClipPathOperation::ReferenceClipPathOperation):
56046         (WebCore):
56047         * rendering/RenderLayer.cpp:
56048         (WebCore::RenderLayer::paintLayerContents): Add handling for ReferenceClipPathOperation.
56049         * rendering/svg/RenderSVGResourceClipper.h:
56050         (RenderSVGResourceClipper): Made applyClippingToContext public as it needs to be called directly for HTML elements.
56051
56052 2012-10-06  Pratik Solanki  <psolanki@apple.com>
56053
56054         Reduce calls to CGImageSourceCopyPropertiesAtIndex from frameSizeAtIndex
56055         https://bugs.webkit.org/show_bug.cgi?id=98607
56056
56057         Reviewed by Dan Bernstein.
56058
56059         Refactor code so that we avoid a second call to CGImageSourceCopyPropertiesAtIndex under
56060         ImageSource::frameSizeAtIndex().
56061
56062         No new tests because no functional change.
56063
56064         * platform/graphics/cg/ImageSourceCG.cpp:
56065         (WebCore::orientationFromProperties):
56066         (WebCore):
56067         (WebCore::ImageSource::frameSizeAtIndex):
56068         (WebCore::ImageSource::orientationAtIndex):
56069
56070 2012-10-06  Mark Rowe  <mrowe@apple.com>
56071
56072         Build fix.
56073
56074         Stop calling -[NSSliderCell setTitle:]. It's never done anything on OS X.
56075
56076         * rendering/RenderThemeMac.mm:
56077         (WebCore::RenderThemeMac::sliderThumbHorizontal):
56078         (WebCore::RenderThemeMac::sliderThumbVertical):
56079
56080 2012-10-06  Andreas Kling  <kling@webkit.org>
56081
56082         Clipboard::types() should return an ordered collection.
56083         <http://webkit.org/b/98547>
56084
56085         Reviewed by Darin Adler.
56086
56087         Let Clipboard::types() return a ListHashSet<String> instead of a HashSet<String> to make sure
56088         it retains the order in which type strings are added.
56089
56090         No test, this fixes an issue that was uncovered when lowering the default table size of WTF
56091         hash tables, causing the HashSet<String> to rehash and reorder itself.
56092
56093         * bindings/js/JSClipboardCustom.cpp:
56094         (WebCore::JSClipboard::types):
56095         * bindings/v8/custom/V8ClipboardCustom.cpp:
56096         (WebCore::V8Clipboard::typesAccessorGetter):
56097         * dom/Clipboard.h:
56098         (Clipboard):
56099         * platform/blackberry/ClipboardBlackBerry.cpp:
56100         (WebCore::ClipboardBlackBerry::types):
56101         * platform/blackberry/ClipboardBlackBerry.h:
56102         (ClipboardBlackBerry):
56103         * platform/chromium/ChromiumDataObject.cpp:
56104         (WebCore::ChromiumDataObject::types):
56105         * platform/chromium/ChromiumDataObject.h:
56106         (ChromiumDataObject):
56107         * platform/chromium/ClipboardChromium.cpp:
56108         (WebCore::ClipboardChromium::types):
56109         * platform/chromium/ClipboardChromium.h:
56110         (ClipboardChromium):
56111         * platform/efl/ClipboardEfl.cpp:
56112         (WebCore::ClipboardEfl::types):
56113         * platform/efl/ClipboardEfl.h:
56114         (ClipboardEfl):
56115         * platform/gtk/ClipboardGtk.cpp:
56116         (WebCore::ClipboardGtk::types):
56117         * platform/gtk/ClipboardGtk.h:
56118         (ClipboardGtk):
56119         * platform/mac/ClipboardMac.h:
56120         (ClipboardMac):
56121         * platform/mac/ClipboardMac.mm:
56122         (WebCore::addHTMLClipboardTypesForCocoaType):
56123         (WebCore::ClipboardMac::types):
56124         * platform/qt/ClipboardQt.cpp:
56125         (WebCore::ClipboardQt::types):
56126         * platform/qt/ClipboardQt.h:
56127         (ClipboardQt):
56128         * platform/win/ClipboardWin.cpp:
56129         (WebCore::addMimeTypesForFormat):
56130         (WebCore::ClipboardWin::types):
56131         * platform/win/ClipboardWin.h:
56132         (ClipboardWin):
56133         * platform/wx/ClipboardWx.cpp:
56134         (WebCore::ClipboardWx::types):
56135         * platform/wx/ClipboardWx.h:
56136         (ClipboardWx):
56137
56138 2012-10-06  Geoffrey Garen  <ggaren@apple.com>
56139
56140         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56141         https://bugs.webkit.org/show_bug.cgi?id=88834
56142
56143         Reviewed by Gavin Barraclough.
56144
56145         Follow-up patch to address some comments by Darin Adler.
56146
56147         * bindings/js/JSNodeCustom.h:
56148         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): Save some space by
56149         collapsing comment lines. Use Node::hasChildNodes() for brevity.
56150
56151 2012-10-06  Benjamin Poulain  <benjamin@webkit.org>
56152
56153         Fix weird use of KURL's protocolIs
56154         https://bugs.webkit.org/show_bug.cgi?id=98584
56155
56156         Reviewed by Adam Barth.
56157
56158         Converting a KURL to string is a bad idea.
56159
56160         Invalid URLs can return a string that pass the tests, while an
56161         invalid URL will fail protocolIs().
56162
56163         * loader/cache/CachedResource.cpp:
56164         (WebCore::CachedResource::removeClient):
56165         * platform/graphics/MediaPlayer.cpp:
56166         (WebCore::MediaPlayer::load):
56167         * platform/network/DataURL.cpp:
56168         (WebCore::handleDataURL):
56169
56170 2012-10-06  Dan Bernstein  <mitz@apple.com>
56171
56172         WebCore part of <rdar://problem/12446507> [mac] WebKit clients cannot change the behavior of text-rendering: auto
56173         https://bugs.webkit.org/show_bug.cgi?id=98601
56174
56175         Reviewed by Darin Adler.
56176
56177         * WebCore.exp.in: Exported Font::setDefaultTypesettingFeatures().
56178         * platform/graphics/Font.cpp:
56179         (WebCore::Font::s_defaultTypesettingFeatures): Defined this static.
56180         (WebCore::Font::setDefaultTypesettingFeatures): Added this setter.
56181         (WebCore::Font::defaultTypesettingFeatures): Added this getter.
56182         * platform/graphics/Font.h:
56183         (WebCore::Font::typesettingFeatures): Changed to use the value of the new static member
56184         s_defaultTypesettingFeatures, rather than 0, if text-redering is set to auto.
56185
56186 2012-10-04  Geoffrey Garen  <ggaren@apple.com>
56187
56188         If Node X is reachable from JavaScript, all Nodes in the same tree should be kept alive
56189         https://bugs.webkit.org/show_bug.cgi?id=88834
56190
56191         Reviewed by Gavin Barraclough.
56192
56193         * bindings/js/JSNodeCustom.cpp:
56194         (WebCore::isObservable): Clarified this comment, since it seems to have
56195         misled some folks. 
56196
56197         * bindings/js/JSNodeCustom.h:
56198         (WebCore::willCreatePossiblyOrphanedTreeByRemoval): New helper function
56199         to ensure that a disconnected tree is visible to JavaScript.
56200
56201         * bindings/js/ScriptState.cpp:
56202         (WebCore::mainWorldScriptState): Need to check for null because a document's
56203         frame can be null.
56204
56205         * dom/ContainerNode.cpp:
56206         (WebCore::dispatchChildRemovalEvents): When we remove a subtree from the
56207         document, we sever the reference that JavaScript previously held by
56208         referencing its root. So, we give JavaScript an opportunity to establish
56209         a reference to the new root.
56210
56211 2012-10-06  Byungwoo Lee  <bw80.lee@samsung.com>
56212
56213         Fix build warning : -Wunused-parameter.
56214         https://bugs.webkit.org/show_bug.cgi?id=98583
56215
56216         Reviewed by Kentaro Hara.
56217
56218         Use ASSERT_UNUSED() macro to remove build warning.
56219
56220         * plugins/PluginStream.cpp:
56221         (WebCore::PluginStream::delayDeliveryTimerFired):
56222         (WebCore::PluginStream::didReceiveResponse):
56223         (WebCore::PluginStream::didReceiveData):
56224         (WebCore::PluginStream::didFail):
56225         (WebCore::PluginStream::didFinishLoading):
56226         * plugins/PluginView.cpp:
56227         (WebCore::PluginView::requestTimerFired):
56228         (WebCore::PluginView::invalidateTimerFired):
56229
56230 2012-10-05  Adam Barth  <abarth@webkit.org>
56231
56232         [V8] toV8(Node*, ...) does more work than needed (6% faster on dom-traverse)
56233         https://bugs.webkit.org/show_bug.cgi?id=98567
56234
56235         Reviewed by Kentaro Hara.
56236
56237         This patch introduces toV8Fast for Node*. This function works a
56238         differently from the existing toV8 function in two ways:
56239
56240         1) It uses the inline wrapper cache in Node to determine if we're
56241            executing in the main world. This is faster both in the case when
56242            isolated worlds exist because we don't need to retrieve any state
56243            for the current context.
56244
56245         2) It doesn't attempt to inline the hash table lookup used to find the
56246            wrapper in the isolated world. There isn't a big need to inline this
56247            code since performance in the isolated world case is dominated by
56248            the hash table lookup.
56249
56250         Because of these two changes, toV8Fast is small enough to inline into
56251         each attribute getter profitably. Over time, I would like to convert
56252         all the performance critical uses of toV8(Node*) to toV8Fast. At that
56253         point, we can delete toV8 and rename toV8Slow to toV8.
56254
56255         * bindings/scripts/CodeGeneratorV8.pm:
56256         (GenerateHeader):
56257         (GenerateNormalAttrGetter):
56258
56259 2012-10-05  Huang Dongsung  <luxtella@company100.net>
56260
56261         [mac] REGRESSION (r122215): Animated GIF outside the viewport doesn't play when scrolled into view.
56262         https://bugs.webkit.org/show_bug.cgi?id=94874
56263
56264         Reviewed by Simon Fraser.
56265
56266         Rollback previous patch because this patch caused two problems.
56267         1. GIF animation is occasionally paused when tiled scrolling is enabled.
56268         2. This change regressed Apple's Membuster benchmark by ~20% (80MB.)
56269
56270         * loader/cache/CachedImage.cpp:
56271         (WebCore::CachedImage::shouldPauseAnimation):
56272         * loader/cache/CachedImage.h:
56273         (CachedImage):
56274         * loader/cache/CachedResource.h:
56275         * loader/cache/MemoryCache.cpp:
56276         (WebCore::MemoryCache::pruneLiveResourcesToSize):
56277         * rendering/RenderObject.cpp:
56278         (WebCore::RenderObject::willRenderImage):
56279
56280 2012-10-05  Xianzhu Wang  <wangxianzhu@chromium.org>
56281
56282         OpenTypeVerticalData issue with DroidSansFallback.ttf on chromium-android and chromium-linux
56283         https://bugs.webkit.org/show_bug.cgi?id=97824
56284
56285         Reviewed by Tony Chang.
56286
56287         The issue occurred when a font that contains vert GSUB table but doesn't have
56288         a DFLT script and the first script doesn't have vert feature. Added logic to
56289         handle the case.
56290
56291         Test: fast/writing-mode/vertical-subst-font-vert-no-dflt.html
56292
56293         * platform/graphics/opentype/OpenTypeVerticalData.cpp:
56294         (FeatureList):
56295         (WebCore::OpenType::FeatureList::findFeature): Added to find the matching feature in FeatureList.
56296         (WebCore::OpenType::GSUBTable::feature): Added logic to handle the case of no DFLT script and no vert feature under the first script.
56297
56298 2012-10-05  Tony Chang  <tony@chromium.org>
56299
56300         Form controls should always be horizontal
56301         https://bugs.webkit.org/show_bug.cgi?id=98563
56302
56303         Reviewed by Ojan Vafai.
56304
56305         Fix a regression where we didn't force form controls to be horizontal.
56306
56307         Tests: fast/dom/HTMLMeterElement/meter-writing-mode.html
56308                fast/dom/HTMLProgressElement/progress-writing-mode.html
56309                fast/table/colspanMinWidth-vertical.html
56310
56311         * css/html.css:
56312         (input, textarea, keygen, select, button, isindex, meter, progress):
56313
56314 2012-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
56315
56316         Unreviewed, rolling out r130556 and r130564.
56317         http://trac.webkit.org/changeset/130556
56318         http://trac.webkit.org/changeset/130564
56319         https://bugs.webkit.org/show_bug.cgi?id=98572
56320
56321         The patch wasn't reviewed by a reviewer and it is breaking
56322         Chromium Windows (Requested by jchaffraix on #webkit).
56323
56324         * WebCore.exp.in:
56325         * WebCore.xcodeproj/project.pbxproj:
56326         * css/mediaControls.css:
56327         (video::-webkit-media-text-track-container):
56328         (video::-webkit-media-text-track-past-nodes):
56329         (video::-webkit-media-text-track-future-nodes):
56330         (video::-webkit-media-text-track-display):
56331         * html/HTMLMediaElement.cpp:
56332         (WebCore::HTMLMediaElement::HTMLMediaElement):
56333         (WebCore::HTMLMediaElement::attach):
56334         (WebCore::HTMLMediaElement::userIsInterestedInThisLanguage):
56335         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind):
56336         (WebCore::HTMLMediaElement::setClosedCaptionsVisible):
56337         (WebCore::HTMLMediaElement::updateClosedCaptionsControls):
56338         * html/HTMLMediaElement.h:
56339         (HTMLMediaElement):
56340         * html/shadow/MediaControlElements.cpp:
56341         (WebCore):
56342         (WebCore::MediaControlTextTrackContainerElement::updateSizes):
56343         * html/shadow/MediaControlElements.h:
56344         (MediaControlTextTrackContainerElement):
56345         * html/shadow/MediaControlRootElement.cpp:
56346         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56347         * html/shadow/MediaControlRootElement.h:
56348         (MediaControlRootElement):
56349         * html/shadow/MediaControls.h:
56350         (MediaControls):
56351         * html/track/TextTrack.cpp:
56352         (WebCore::TextTrack::TextTrack):
56353         (WebCore::TextTrack::isValidKindKeyword):
56354         (WebCore::TextTrack::setKind):
56355         (WebCore::TextTrack::setMode):
56356         (WebCore::TextTrack::mode):
56357         * html/track/TextTrack.h:
56358         (WebCore::TextTrack::create):
56359         (WebCore::TextTrack::kind):
56360         (TextTrack):
56361         (WebCore::TextTrack::label):
56362         (WebCore::TextTrack::setLabel):
56363         (WebCore::TextTrack::language):
56364         (WebCore::TextTrack::setLanguage):
56365         * html/track/TextTrackCue.cpp:
56366         (WebCore::TextTrackCueBox::TextTrackCueBox):
56367         (WebCore::TextTrackCueBox::shadowPseudoId):
56368         (WebCore):
56369         (WebCore::TextTrackCue::updateDisplayTree):
56370         * html/track/TextTrackCue.h:
56371         (TextTrackCueBox):
56372         (TextTrackCue):
56373         * platform/mac/WebCoreSystemInterface.h:
56374         * platform/mac/WebCoreSystemInterface.mm:
56375         * rendering/CaptionPreferencesChangedListener.h: Removed.
56376         * rendering/RenderTheme.h:
56377         (WebCore):
56378         (RenderTheme):
56379         * rendering/RenderThemeMac.h:
56380         (RenderThemeMac):
56381         * rendering/RenderThemeMac.mm:
56382         (WebCore):
56383         (WebCore::RenderThemeMac::RenderThemeMac):
56384         (WebCore::RenderThemeMac::~RenderThemeMac):
56385
56386 2012-10-05  Tim Horton  <timothy_horton@apple.com>
56387
56388         [cg] GraphicsContextCG should ask CG whether the shadow offset workaround is required
56389         https://bugs.webkit.org/show_bug.cgi?id=98565
56390         <rdar://problem/12436468>
56391
56392         Reviewed by Simon Fraser.
56393
56394         On Mountain Lion and above, CG can tell us whether we need to work around incorrect
56395         shadow offsets. Prior to Mountain Lion, we should assume we need to apply the workaround.
56396
56397         No new tests, as this requires an obscure configuration to test.
56398
56399         * WebCore.exp.in:
56400         * platform/graphics/cg/GraphicsContextCG.cpp:
56401         (WebCore::applyShadowOffsetWorkaroundIfNeeded):
56402         (WebCore::GraphicsContext::setPlatformShadow):
56403         * platform/mac/WebCoreSystemInterface.h: Add wkCGContextDrawsWithCorrectShadowOffsets.
56404         * platform/mac/WebCoreSystemInterface.mm: Add wkCGContextDrawsWithCorrectShadowOffsets.
56405
56406 2012-10-05  Anders Carlsson  <andersca@apple.com>
56407
56408         Try to fix the build.
56409
56410         * rendering/RenderThemeMac.mm:
56411         (WebCore::RenderThemeMac::captionsWindowColor):
56412
56413 2012-10-05  Eric Seidel  <eric@webkit.org>
56414
56415         Remove needless virtual calls and inline RenderStyle::logical* to make table layout faster
56416         https://bugs.webkit.org/show_bug.cgi?id=98550
56417
56418         Reviewed by Andreas Kling.
56419
56420         This shaved another 5% (100ms) off of the runtime of resizecol.html microbenchmark:
56421         http://www.robohornet.org/tests/resizecol.html
56422
56423         * rendering/AutoTableLayout.cpp:
56424         (WebCore::AutoTableLayout::recalcColumn):
56425         * rendering/style/RenderStyle.cpp:
56426         * rendering/style/RenderStyle.h:
56427
56428 2012-10-04  Eric Carlson  <eric.carlson@apple.com>
56429
56430         Allow ports to override text track rendering style
56431         https://bugs.webkit.org/show_bug.cgi?id=97800
56432         <rdar://problem/12044964>
56433
56434         Reviewed by Silvia Pfeiffer.
56435
56436         * WebCore.exp.in: Export new WebkitSystemInterface functions.
56437         * WebCore.xcodeproj/project.pbxproj: Add CaptionPreferencesChangedListener.h.
56438
56439         * css/mediaControls.css: Rearrange the caption CSS so it is possible to style the cue window,
56440             background, and text independently.
56441
56442         * html/HTMLMediaElement.cpp:
56443         (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_disableCaptions with theme->userPrefersCaptions().
56444         (WebCore::HTMLMediaElement::attach): Register for caption preferences change callbacks.
56445         (WebCore::HTMLMediaElement::detach): Unregister for caption preferences change callbacks.
56446         (WebCore::HTMLMediaElement::userPrefersCaptions): Return theme->userPrefersCaptions().
56447         (WebCore::HTMLMediaElement::userIsInterestedInThisTrackKind): Consider userPrefersCaptions().
56448         (WebCore::HTMLMediaElement::setClosedCaptionsVisible): Move the code that marks all tracks as
56449             un-configured to markCaptionAndSubtitleTracksAsUnconfigured so it can be reused.
56450         (WebCore::HTMLMediaElement::captionPreferencesChanged): New, force a reevaluation of all text tracks.
56451         (WebCore::HTMLMediaElement::markCaptionAndSubtitleTracksAsUnconfigured): New, code moved from 
56452             setClosedCaptionsVisible
56453         * html/HTMLMediaElement.h: Inherit from CaptionPreferencesChangedListener.
56454
56455         * html/shadow/MediaControlElements.cpp:
56456         (WebCore::MediaControlTextTrackContainerElement::userCaptionPreferencesChanged): New, if theme
56457             has a captions style sheet override, inject it into the current page group, otherwise
56458             remove injected sheet.
56459         (WebCore::MediaControlTextTrackContainerElement::updateSizes): Get rid of unnecessary member
56460             variable. Get caption font scale from theme instead of hard coding.
56461         * html/shadow/MediaControlElements.h:
56462
56463         * html/shadow/MediaControlRootElement.cpp:
56464         (WebCore::MediaControlRootElement::userCaptionPreferencesChanged): New.
56465         (WebCore::MediaControlRootElement::updateTextTrackDisplay):
56466         * html/shadow/MediaControlRootElement.h: Add userCaptionPreferencesChanged, minor cleanup.
56467
56468         * html/shadow/MediaControls.h:
56469         (WebCore::MediaControls::userCaptionPreferencesChanged): New.
56470
56471         * html/track/TextTrackCue.cpp:
56472         (WebCore::TextTrackCueBox::TextTrackCueBox): Set the shadow pseudo id.
56473         (WebCore::TextTrackCueBox::textTrackCueBoxShadowPseudoId): New, class method to return the 
56474             shadow pseudo id so it can be used elsewhere.
56475         (WebCore::TextTrackCueBox::shadowPseudoId): Call textTrackCueBoxShadowPseudoId.
56476         (WebCore::TextTrackCue::pastNodesShadowPseudoId): New, class method to return the 
56477             shadow pseudo id so it can be used elsewhere.
56478         (WebCore::TextTrackCue::futureNodesShadowPseudoId): Ditto.
56479         (WebCore::TextTrackCue::updateDisplayTree):
56480         * html/track/TextTrackCue.h:
56481
56482         * platform/mac/WebCoreSystemInterface.h: Updated.
56483         * platform/mac/WebCoreSystemInterface.mm: Ditto.
56484
56485         * rendering/CaptionPreferencesChangedListener.h: Added.
56486
56487         * rendering/RenderTheme.h:
56488         (WebCore::RenderTheme::userPrefersCaptions): New, default do-nothing implementation.
56489         (WebCore::RenderTheme::userHasCaptionPreferences): Ditto.
56490         (WebCore::RenderTheme::captionFontSizeScale): Ditto.
56491         (WebCore::RenderTheme::captionsStyleSheetOverride): Ditto.
56492         (WebCore::RenderTheme::registerForCaptionPreferencesChangedCallbacks): Ditto.
56493         (WebCore::RenderTheme::unregisterForCaptionPreferencesChangedCallbacks): Ditto.
56494
56495         * rendering/RenderThemeMac.h:
56496         * rendering/RenderThemeMac.mm:
56497         (WebCore::userCaptionPreferencesChangedNotificationCallback): New, receives preference changed notifications.
56498         (WebCore::RenderThemeMac::RenderThemeMac): Initialize m_listeningForCaptionPreferenceNotifications.
56499         (WebCore::RenderThemeMac::~RenderThemeMac): Unregister for notifications if necessary.
56500         (WebCore::RenderThemeMac::userHasCaptionPreferences): New, passthrough to WKSI function.
56501         (WebCore::RenderThemeMac::userPrefersCaptions): Ditto.
56502         (WebCore::RenderThemeMac::captionsWindowColor): Return Color with user's caption window color preference.
56503         (WebCore::RenderThemeMac::captionsBackgroundColor): Return Color with user's caption 
56504             background color preference.
56505         (WebCore::RenderThemeMac::captionsTextColor): Return Color with user's caption text color preference.
56506         (WebCore::RenderThemeMac::captionsEdgeColorForTextColor): Return Color for text edge effect.
56507         (WebCore::RenderThemeMac::cssPropertyWithTextEdgeColor): Return String with CSS to set a text-shadow
56508             or webkit-text-stroke property.
56509         (WebCore::RenderThemeMac::cssColorProperty): Return a String with css to set a property 
56510             with a color value.
56511         (WebCore::RenderThemeMac::captionsTextEdgeStyle): Return a String with css to style caption 
56512             text with the user's preferred text edge stye.
56513         (WebCore::RenderThemeMac::captionsDefaultFont): Return a String with css to style caption
56514             text with the user's preferred font.
56515         (WebCore::RenderThemeMac::captionsStyleSheetOverride): Return a String with css to style captions
56516             with the user's preferred style.
56517         (WebCore::RenderThemeMac::captionFontSizeScale): Return the user's preferred caption font scale.
56518         (WebCore::RenderThemeMac::captionPreferencesChanged): Notify listeners of caption preference change.
56519         (WebCore::RenderThemeMac::registerForCaptionPreferencesChangedCallbacks): Add a caption preferences 
56520             changes listener.
56521         (WebCore::RenderThemeMac::unregisterForCaptionPreferencesChangedCallbacks): Remove a caption preferences
56522             changes listener.
56523
56524 2012-10-05  Takashi Sakamoto  <tasak@google.com>
56525
56526         Inline continuations create :after generated content on style recalcs
56527         https://bugs.webkit.org/show_bug.cgi?id=93170
56528
56529         Reviewed by Abhishek Arya.
56530
56531         The bug is caused by RenderInline::styleDidChange's setContinuation(0).
56532         RenderObjectChildList uses continuation to know whether the given
56533         renderer should have AFTER render object or not.
56534         However, setContinuation(0) makes RenderObjectChildList to
56535         misunderstand that all continuations are last continuation.
56536         To avoid the misunderstanding, added a new flag to class
56537         RenderObejctChildList to enable/disable updating :after content (and
56538         also :before content).
56539
56540         Tests: fast/css-generated-content/after-with-inline-continuation.html
56541                fast/css-generated-content/dynamic-apply-after-for-inline.html
56542
56543         * rendering/RenderInline.cpp:
56544         (WebCore::RenderInline::styleDidChange):
56545         Disable upating :after content for continuations which are not
56546         the last one during setStyle just after setContinuation(0).
56547         The setStyle invokes RenderInline::styleDidChange and also invokes
56548         updateBeforeAfterContent via the styleDidChange. This means,
56549         the last continuation's updateBeforeAfterContent is also invoked
56550         after setContinuation(0). We have to update :after for the last
56551         continuation.
56552         * rendering/RenderObjectChildList.cpp:
56553         (WebCore):
56554         (WebCore::RenderObjectChildList::updateBeforeAfterContent):
56555         If s_updateBeforeAfterContent is false, quickly exit
56556         updateBeforeAfterContent.
56557         * rendering/RenderObjectChildList.h:
56558         (RenderObjectChildList):
56559         Added a new flag s_enableUpdateBeforeAfterContent to enable/disable
56560         updating :before or :after content.
56561
56562 2012-10-05  Simon Fraser  <simon.fraser@apple.com>
56563
56564         Don't assume that TileCache layers are opaque
56565         https://bugs.webkit.org/show_bug.cgi?id=98555
56566
56567         Reviewed by Dean Jackson.
56568
56569         TileCache previously set all its tile CALayers as opaque.
56570         However, we will need non-opaque tile caches when we use this
56571         tile cache for tiled layers, so add a member function to
56572         control tile opacity.
56573         
56574         RenderLayerBacking already calls m_graphicsLayer->setContentsOpaque()
56575         using the FrameView's notion of opaqueness, so this change will
56576         cause the main tile cache to be non-opaque if external forces have
56577         set the FrameView to be non-opaque.
56578         
56579         Also tweak the layer border widths on tiled layers.
56580
56581         * platform/graphics/ca/mac/TileCache.h:
56582         (TileCache):
56583         (WebCore::TileCache::tilesAreOpaque):
56584         * platform/graphics/ca/mac/TileCache.mm:
56585         (WebCore::TileCache::TileCache):
56586         (WebCore::TileCache::setTilesOpaque):
56587         (WebCore::TileCache::createTileLayer):
56588         * platform/graphics/ca/mac/WebTileCacheLayer.mm:
56589         (-[WebTileCacheLayer setOpaque:]):
56590         (-[WebTileCacheLayer isOpaque]):
56591         (-[WebTileCacheLayer setBorderWidth:]):
56592
56593 2012-10-05  Tony Chang  <tony@chromium.org>
56594
56595         Fix margin box ascent computation in flexbox
56596         https://bugs.webkit.org/show_bug.cgi?id=98540
56597
56598         Reviewed by Ojan Vafai.
56599
56600         The margin box ascent doesn't depend on the margin below the box.
56601
56602         Tests: css3/flexbox/flex-align.html: Fixed a test case and removed a FIXME.
56603                css3/flexbox/flex-align-vertical-writing-mode.html: Similar test case.
56604
56605         * rendering/RenderFlexibleBox.cpp:
56606         (WebCore::RenderFlexibleBox::marginBoxAscentForChild):
56607
56608 2012-10-05  Ojan Vafai  <ojan@chromium.org>
56609
56610         Deprecated flexboxes subtract scrollbar width/height twice
56611         https://bugs.webkit.org/show_bug.cgi?id=98552
56612
56613         Reviewed by Tony Chang.
56614
56615         This is a regression from http://trac.webkit.org/changeset/119507.
56616         The problem is that contentHeight subtracts the scrollbar and
56617         RenderDeprecatedFlexbox subtracts the scrollbar.
56618
56619         -Make it so that we only access override sizes if one has been set.
56620         I think this makes the calling code more clear.
56621         -If we don't have one set, grab the height/width - borderAndPadding.
56622         -Add a FIXME to change this all back to being borderbox sizes.
56623         There's something trick with making table padding/border work right for that
56624         though (noted in the original patch).
56625
56626         Test: fast/flexbox/flexing-overflow-scroll-item.html
56627
56628         * rendering/RenderBox.cpp:
56629         (WebCore::RenderBox::overrideLogicalContentWidth):
56630         (WebCore::RenderBox::overrideLogicalContentHeight):
56631         (WebCore::RenderBox::availableLogicalHeightUsing):
56632         * rendering/RenderBox.h:
56633         (RenderBox):
56634         * rendering/RenderDeprecatedFlexibleBox.cpp:
56635         (WebCore::contentWidthForChild):
56636         (WebCore):
56637         (WebCore::contentHeightForChild):
56638         (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
56639         (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
56640         (WebCore::RenderDeprecatedFlexibleBox::allowedChildFlex):
56641
56642 2012-10-05  Eric Seidel  <eric@webkit.org>
56643
56644         Make tables which don't use col/row span much faster to layout
56645         https://bugs.webkit.org/show_bug.cgi?id=98221
56646
56647         Reviewed by Julien Chaffraix.
56648
56649         My sense is that most tables on webpages do not use colspan/rowspan
56650         so I stole another bit from RenderTableCell::m_column to avoid
56651         having to re-parse the colSpan/rowSpan attributes for every cell
56652         when doing table layout.
56653         This made these symbols disappear from biggrid.html/redraw.html (dglazkov's spreadsheets benchmarks)
56654         as well as moved our robohornet/resizecol.html number from an average of 3221ms to 2608ms (~20%!).
56655
56656         I removed m_hasHTMLTableCellElement (from http://trac.webkit.org/changeset/97691)
56657         since it was attempting to do the same sort of optimization.
56658
56659         * rendering/RenderTableCell.cpp:
56660         (WebCore::RenderTableCell::RenderTableCell):
56661         (WebCore::RenderTableCell::parseColSpanFromDOM):
56662         (WebCore::RenderTableCell::parseRowSpanFromDOM):
56663         (WebCore::RenderTableCell::layout):
56664         * rendering/RenderTableCell.h:
56665         (WebCore::RenderTableCell::colSpan):
56666         (WebCore::RenderTableCell::rowSpan):
56667         (RenderTableCell):
56668
56669 2012-10-05  Oli Lan  <olilan@chromium.org>
56670
56671         Allow EventHandler to handle longpress gestures, including longpress selection on Android.
56672         https://bugs.webkit.org/show_bug.cgi?id=98173
56673         
56674         Reviewed by Ryosuke Niwa.
56675
56676         Adds handling for GestureLongPress to EventHandler::handleGestureEvent, with a new
56677         handleGestureLongPress method. On Android, this method selects the closest word
56678         if the gesture event was over non-link text.
56679
56680         This is tested via a new chromium test WebViewTest.LongPressSelection.  
56681
56682         * page/EventHandler.cpp:
56683         (WebCore::EventHandler::selectClosestWordFromHitTestResult):
56684         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
56685         (WebCore):
56686         (WebCore::EventHandler::handleGestureEvent):
56687         (WebCore::EventHandler::handleGestureLongPress):
56688         * page/EventHandler.h:
56689         (EventHandler):
56690
56691 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56692
56693         <marquee> element forces itself to be at least 1em high, regardless of 'height' declaration
56694         https://bugs.webkit.org/show_bug.cgi?id=18098
56695
56696         Reviewed by Eric Seidel.
56697
56698         This restriction originally existed to match IE, but IE changed some time ago to be normal instead.
56699         We're the last browser, afaict, to still enforce this de-facto restriction.
56700         This patch makes <marquee> instead act like a normal element.
56701
56702         Tests: fast/css/MarqueeLayoutTest.html (rewritten from the older, bad version)
56703
56704         * rendering/RenderMarquee.cpp:
56705         (WebCore::RenderMarquee::updateMarqueeStyle):
56706
56707 2012-10-05  Joe Mason  <jmason@rim.com>
56708
56709         [BlackBerry] Fix regression in proxy auth
56710         https://bugs.webkit.org/show_bug.cgi?id=98533
56711
56712         Reviewed by Yong Li.
56713
56714         The proxy auth dialog gets the proxy address from
56715         BlackBerry::Platform::Settings::proxyAddress, which returns
56716         "host:port", but we try to parse it with a KURL, which expects
56717         "scheme://host:port".  Since this is an http proxy, add http:// to the
56718         url to get it to parse.
56719
56720         PR 220567.
56721
56722         * platform/network/blackberry/NetworkJob.cpp:
56723         (WebCore::NetworkJob::sendRequestWithCredentials):
56724
56725 2012-10-05  Jer Noble  <jer.noble@apple.com>
56726
56727         No autorelease pool in place, causing buildup of autoreleased objects.
56728         https://bugs.webkit.org/show_bug.cgi?id=98522
56729         <rdar://problem/11647950>
56730
56731         Reviewed by Alexey Proskuryakov.
56732
56733         Wrap each timer callback in an AutodrainPool, ensuring an autorelease
56734         pool is present during calls from C/C++ into ObjC.
56735
56736         * platform/cf/RunLoopTimerCF.cpp:
56737         (WebCore::timerFired):
56738
56739 2012-10-05  Ryosuke Niwa  <rniwa@webkit.org>
56740
56741         Deleting across multiple paragraphs can change the style of surrounding text
56742         https://bugs.webkit.org/show_bug.cgi?id=97266
56743
56744         Reviewed by Levi Weintraub.
56745
56746         Preserve editing styles from CSS rules in wrappingStyleForSerialization as well as inline styles
56747         even when we're not annotating. We don't want to preserve all styles because it's against
56748         the user expectation to keep borders, etc... when merging paragraphs. We also don't want to copy
56749         styles from a mail blockquote because that's not a style the user has applied. See the comment
56750         in EditingStyle::wrappingStyleForSerialization.
56751
56752         Test: editing/deleting/merge-paragraph-with-style-from-rule.html
56753
56754         * editing/EditingStyle.cpp:
56755         (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
56756         (WebCore::EditingStyle::wrappingStyleForSerialization):
56757
56758 2012-10-05  Dan Bernstein  <mitz@apple.com>
56759
56760         Reversing a GlyphBuffer needlessly queries its size multiple times
56761         https://bugs.webkit.org/show_bug.cgi?id=98530
56762
56763         Reviewed by Simon Fraser.
56764
56765         No new tests because there is no change in behavior.
56766
56767         * WebCore.xcodeproj/project.pbxproj:
56768         * platform/graphics/FontFastPath.cpp:
56769         (WebCore::Font::getGlyphsAndAdvancesForSimpleText): Replaced the condition
56770         (i < glyphBuffer.size() / 2) with the equivalent test (i < end).
56771         * platform/graphics/mac/FontComplexTextMac.cpp:
56772         (WebCore::Font::getGlyphsAndAdvancesForComplexText): Ditto.
56773
56774 2012-10-05  José Dapena Paz  <jdapena@igalia.com>
56775
56776         [GTK] Add support for creating EGL contexts
56777         https://bugs.webkit.org/show_bug.cgi?id=77921
56778
56779         Reviewed by Martin Robinson.
56780
56781         This patch adds support for EGL, using OpenGL and OpenGL ES 2. Both
56782         options are set up on compile time, with the configure options
56783         --enable-egl and --enable-gles2.
56784
56785         The implementation only adds support for EGL on top of X11, to
56786         isolate the changes to the minimum. More changes should come
56787         later to enable EGL for other targets (as Wayland).
56788
56789         No new tests required, as existing WebGL and AC tests should cover
56790         the cases.
56791
56792         * GNUmakefile.am:
56793         * GNUmakefile.list.am:
56794         * platform/graphics/GraphicsContext3D.h:
56795         (GraphicsContext3D):
56796         * platform/graphics/OpenGLESShims.h:
56797         * platform/graphics/cairo/GLContext.cpp:
56798         (WebCore):
56799         (WebCore::GLContext::sharedX11Display):
56800         (WebCore::GLContext::cleanupSharedX11Display):
56801         (WebCore::activeContextList):
56802         (WebCore::GLContext::addActiveContext):
56803         (WebCore::GLContext::removeActiveContext):
56804         (WebCore::GLContext::cleanupActiveContextsAtExit):
56805         (WebCore::GLContext::createContextForWindow):
56806         (WebCore::GLContext::createOffscreenContext):
56807         * platform/graphics/cairo/GLContext.h:
56808         (GLContext):
56809         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
56810         (WebCore::GraphicsContext3D::create):
56811         (WebCore::GraphicsContext3D::GraphicsContext3D):
56812         (WebCore::GraphicsContext3D::~GraphicsContext3D):
56813         (WebCore::GraphicsContext3D::isGLES2Compliant):
56814         * platform/graphics/cairo/GraphicsContext3DPrivate.cpp:
56815         (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
56816         * platform/graphics/clutter/GraphicsContext3DClutter.cpp:
56817         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
56818         * platform/graphics/egl/GLContextEGL.cpp: Added.
56819         (WebCore):
56820         (WebCore::sharedEGLDisplay):
56821         (WebCore::getEGLConfig):
56822         (WebCore::GLContextEGL::createWindowContext):
56823         (WebCore::GLContextEGL::createPbufferContext):
56824         (WebCore::GLContextEGL::createPixmapContext):
56825         (WebCore::GLContextEGL::createContext):
56826         (WebCore::GLContextEGL::GLContextEGL):
56827         (WebCore::GLContextEGL::~GLContextEGL):
56828         (WebCore::GLContextEGL::canRenderToDefaultFramebuffer):
56829         (WebCore::GLContextEGL::defaultFrameBufferSize):
56830         (WebCore::GLContextEGL::makeContextCurrent):
56831         (WebCore::GLContextEGL::swapBuffers):
56832         (WebCore::GLContextEGL::waitNative):
56833         (WebCore::GLContextEGL::platformContext):
56834         * platform/graphics/egl/GLContextEGL.h: Added.
56835         (WebCore):
56836         (GLContextEGL):
56837         * platform/graphics/glx/GLContextGLX.cpp:
56838         (WebCore::GLContextGLX::createWindowContext):
56839         (WebCore::GLContextGLX::createPbufferContext):
56840         (WebCore::GLContextGLX::createPixmapContext):
56841         (WebCore::GLContextGLX::createContext):
56842         (WebCore::GLContextGLX::~GLContextGLX):
56843         (WebCore::GLContextGLX::defaultFrameBufferSize):
56844         (WebCore::GLContextGLX::makeContextCurrent):
56845         (WebCore::GLContextGLX::swapBuffers):
56846         (WebCore):
56847         (WebCore::GLContextGLX::waitNative):
56848         * platform/graphics/glx/GLContextGLX.h:
56849         (GLContextGLX):
56850         * platform/graphics/mac/GraphicsContext3DMac.mm:
56851         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
56852         (WebCore::GraphicsContext3D::releaseShaderCompiler):
56853         (WebCore):
56854         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
56855         (WebCore::GraphicsContext3D::readPixels):
56856         (WebCore::GraphicsContext3D::reshapeFBOs):
56857         (WebCore::GraphicsContext3D::renderbufferStorage):
56858         * platform/graphics/qt/GraphicsContext3DQt.cpp:
56859         * platform/graphics/texmap/TextureMapper.h:
56860         * platform/gtk/RedirectedXCompositeWindow.cpp:
56861         (WebCore::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
56862         (WebCore::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):
56863         (WebCore::RedirectedXCompositeWindow::resize):
56864         * platform/gtk/RedirectedXCompositeWindow.h:
56865
56866 2012-10-04  Jon Lee  <jonlee@apple.com>
56867
56868         Add a setting to enable plugin snapshotting
56869         https://bugs.webkit.org/show_bug.cgi?id=98319
56870         <rdar://problem/12426480>
56871
56872         Reviewed by Brady Eidson.
56873
56874         Add a new bit for this preference.
56875
56876         * page/Settings.cpp:
56877         (WebCore::Settings::Settings): Preference is false by default.
56878         * page/Settings.h: Added m_plugInSnapshottingEnabled bit.
56879         (WebCore::Settings::setPlugInSnapshottingEnabled): Set the bit.
56880         (WebCore::Settings::plugInSnapshottingEnabled): Return the bit.
56881
56882 2012-10-05  Vsevolod Vlasov  <vsevik@chromium.org>
56883
56884         Unreviewed inspector front-end closure compilaiton fixes.
56885
56886         * inspector/InjectedScriptCanvasModuleSource.js:
56887         * inspector/InjectedScriptExterns.js:
56888         (InjectedScriptHost.prototype.getInternalProperties):
56889         * inspector/front-end/DockController.js:
56890         * inspector/front-end/externs.js:
56891         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
56892
56893 2012-10-05  Tab Atkins  <jackalmage@gmail.com>
56894
56895         Replace uses of prefixed properties with unprefixed versions in the UA stylesheets
56896         https://bugs.webkit.org/show_bug.cgi?id=98453
56897
56898         Reviewed by Ojan Vafai.
56899
56900         Switched 'border-radius' and 'box-shadow' to their unprefixed version in the UA stylesheets.
56901
56902         No new tests, because the unprefixed properties have the same behavior as the prefixed.
56903
56904         * css/fullscreenQuickTime.css:
56905         (video:-webkit-full-screen::-webkit-media-controls-panel):
56906         * css/html.css:
56907         (keygen, select):
56908         (select[size][multiple]):
56909         (select[size="1"]):
56910         (::-webkit-validation-bubble-message):
56911         * css/themeBlackBerry.css:
56912         (input, textarea):
56913         * css/themeChromiumAndroid.css:
56914         (select[size][multiple]):
56915         * css/themeQtNoListboxes.css:
56916         (select[size][multiple]):
56917         * css/themeWin.css:
56918         (select[size="1"]):
56919         * css/view-source.css:
56920         (.webkit-html-message-bubble):
56921
56922 2012-10-05  Kevin Ellis  <kevers@chromium.org>
56923
56924         [chromium] Only inflate the height of rows in a popup menu when a touch device is detected.
56925         https://bugs.webkit.org/show_bug.cgi?id=98515
56926
56927         Reviewed by Adam Barth.
56928
56929         Enforces a minimum row height for popup menus when a touch device is
56930         detected.  In a previous patch (r127597), the sizing of popup was 
56931         consolidated for touch and non-touch.  Based on user feedback, reverting
56932         to the old behavior for non-touch and only adding padding for touch
56933         devices seems like a much safer strategy.  This patch is not a direct
56934         revert of r127567 since the padding previously used for touch is a bit
56935         excessive.
56936
56937         Covered by existing tests.
56938
56939         * platform/chromium/PopupListBox.cpp:
56940         (WebCore::PopupListBox::getRowHeight):
56941         * platform/chromium/PopupMenuChromium.cpp:
56942         (WebCore):
56943         * platform/chromium/PopupMenuChromium.h:
56944         (WebCore::PopupMenuChromium::optionRowHeightForTouch):
56945         (WebCore::PopupMenuChromium::setOptionRowHeightForTouch):
56946         (PopupMenuChromium):
56947
56948 2012-10-05  Alexander Pavlov  <apavlov@chromium.org>
56949
56950         Web Inspector: [Styles] Unable to edit properties in broken stylesheets
56951         https://bugs.webkit.org/show_bug.cgi?id=98246
56952
56953         Reviewed by Vsevolod Vlasov.
56954
56955         Pop source data for invalid rules off the stack whenever we have consecutive CSSParser::markRuleHeaderStart() invocations.
56956
56957         Test: inspector/styles/parse-stylesheet-errors.html
56958
56959         * css/CSSParser.cpp:
56960         (WebCore::CSSParser::popRuleData):
56961         (WebCore::CSSParser::markRuleHeaderStart):
56962         (WebCore::CSSParser::markRuleBodyStart):
56963         * css/CSSParser.h:
56964         (CSSParser):
56965
56966 2012-10-05  Gabor Rapcsanyi  <rgabor@webkit.org>
56967
56968         Add ARM-NEON support to VectorMath in WebAudio
56969         https://bugs.webkit.org/show_bug.cgi?id=98131
56970
56971         Reviewed by Zoltan Herczeg.
56972
56973         Speed up vector operations in WebAudio with NEON intrinsics.
56974
56975         * platform/audio/VectorMath.cpp:
56976         (WebCore::VectorMath::vsma):
56977         (WebCore::VectorMath::vsmul):
56978         (WebCore::VectorMath::vadd):
56979         (WebCore::VectorMath::vmul):
56980         (WebCore::VectorMath::zvmul):
56981         (WebCore::VectorMath::vsvesq):
56982         (WebCore::VectorMath::vmaxmgv):
56983
56984 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
56985
56986         Unreviewed, rolling out r130495.
56987         http://trac.webkit.org/changeset/130495
56988         https://bugs.webkit.org/show_bug.cgi?id=98268
56989
56990         Made WK2 tests crash.
56991
56992         * Target.pri:
56993         * platform/qt/QStyleFacade.cpp: Removed.
56994         * platform/qt/QStyleFacade.h: Removed.
56995
56996 2012-10-05  Simon Hausmann  <simon.hausmann@digia.com>
56997
56998         [Qt] Make RenderThemeQStyle/ScrollbarThemeQStyle compile without QStyle/QtWidgets
56999         https://bugs.webkit.org/show_bug.cgi?id=98268
57000
57001         Reviewed by Tor Arne Vestbø.
57002
57003         Extracted QStyle/QWidget related code into a QWebStyle class that implements the QStyleFacade interface.
57004
57005         QStyleFacade is a pure interface that lives in WebCore/platform/qt
57006         (next to RenderThemeQStyle and ScrollbarThemeQStyle) and provides a
57007         minimal interface of what we need to draw with QStyle as well as basic
57008         hit testing and metric retrieval. It also provides a
57009         QStyleFacadeOption class that aggregates common meta-data for
57010         rendering primitives, such as direction, rectangle, state (sunken,
57011         enabled, etc.) or palette. It also provides some more slider/scrollbar
57012         specific fields in a slider sub-structure.
57013
57014         RenderThemeQStyle/ScrollbarThemeQStyle used to instantiate specific QStyleOption sub-classes and populate
57015         them with state information from render objects, before calling straight to QStyle. Most of the common code
57016         was encapsulated in StylePainterQStyle.
57017
57018         The new RenderThemeQStyle/ScrolllbarThemeQStyle uses common code in
57019         StylePainterQStyle to populate state into QStyleFacadeOption before
57020         calling into QStyleFacade.
57021
57022         The style facade is then implemented by QStyleFacadeImp, which extracts
57023         meta-data from QStyleFacadeOption arguments, populates style
57024         primitive specific QStyleOption objects and then calls on QStyle.
57025
57026         RenderThemeQStyle/ScrollbarThemeQStyle can only use interface methods
57027         from QStyleFacade. QStyleFacadeImp on the other hand will live in the
57028         separate QtWebKitWidgets library in the future and therefore cannot use
57029         any WebCore types.
57030
57031         * Target.pri:
57032         * platform/qt/QStyleFacade.cpp: Added.
57033         (WebCore):
57034         (WebCore::QStyleFacade::styleForPage):
57035         * platform/qt/QStyleFacade.h: Added.
57036         (WebCore):
57037         (QStyleFacade):
57038         (WebCore::QStyleFacade::~QStyleFacade):
57039         (WebCore::QStyleFacadeOption::QStyleFacadeOption):
57040         (QStyleFacadeOption):
57041         * platform/qt/RenderThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.cpp.
57042         (WebCore):
57043         (WebCore::RenderThemeQStyle::getStylePainter):
57044         (WebCore::StylePainterQStyle::StylePainterQStyle):
57045         (WebCore::StylePainterQStyle::init):
57046         (WebCore::RenderThemeQStyle::create):
57047         (WebCore::RenderThemeQStyle::setStyleFactoryFunction):
57048         (WebCore::RenderThemeQStyle::styleFactory):
57049         (WebCore::RenderThemeQStyle::RenderThemeQStyle):
57050         (WebCore::RenderThemeQStyle::~RenderThemeQStyle):
57051         (WebCore::RenderThemeQStyle::setPaletteFromPageClientIfExists):
57052         (WebCore::RenderThemeQStyle::inflateButtonRect):
57053         (WebCore::RenderThemeQStyle::computeSizeBasedOnStyle):
57054         (WebCore::RenderThemeQStyle::adjustButtonStyle):
57055         (WebCore::RenderThemeQStyle::setButtonPadding):
57056         (WebCore::RenderThemeQStyle::paintButton):
57057         (WebCore::RenderThemeQStyle::paintTextField):
57058         (WebCore::RenderThemeQStyle::adjustTextAreaStyle):
57059         (WebCore::RenderThemeQStyle::paintTextArea):
57060         (WebCore::RenderThemeQStyle::setPopupPadding):
57061         (WebCore::RenderThemeQStyle::colorPalette):
57062         (WebCore::RenderThemeQStyle::paintMenuList):
57063         (WebCore::RenderThemeQStyle::adjustMenuListButtonStyle):
57064         (WebCore::RenderThemeQStyle::paintMenuListButton):
57065         (WebCore::RenderThemeQStyle::animationDurationForProgressBar):
57066         (WebCore::RenderThemeQStyle::paintProgressBar):
57067         (WebCore::RenderThemeQStyle::paintSliderTrack):
57068         (WebCore::RenderThemeQStyle::adjustSliderTrackStyle):
57069         (WebCore::RenderThemeQStyle::paintSliderThumb):
57070         (WebCore::RenderThemeQStyle::adjustSliderThumbStyle):
57071         (WebCore::RenderThemeQStyle::paintSearchField):
57072         (WebCore::RenderThemeQStyle::adjustSearchFieldDecorationStyle):
57073         (WebCore::RenderThemeQStyle::paintSearchFieldDecoration):
57074         (WebCore::RenderThemeQStyle::adjustSearchFieldResultsDecorationStyle):
57075         (WebCore::RenderThemeQStyle::paintSearchFieldResultsDecoration):
57076         (WebCore::RenderThemeQStyle::paintInnerSpinButton):
57077         (WebCore::RenderThemeQStyle::initializeCommonQStyleOptions):
57078         (WebCore::RenderThemeQStyle::adjustSliderThumbSize):
57079         * platform/qt/RenderThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/RenderThemeQStyle.h.
57080         (WebCore):
57081         (RenderThemeQStyle):
57082         (WebCore::RenderThemeQStyle::qStyle):
57083         (StylePainterQStyle):
57084         (WebCore::StylePainterQStyle::isValid):
57085         (WebCore::StylePainterQStyle::paintButton):
57086         (WebCore::StylePainterQStyle::paintTextField):
57087         (WebCore::StylePainterQStyle::paintComboBox):
57088         (WebCore::StylePainterQStyle::paintComboBoxArrow):
57089         (WebCore::StylePainterQStyle::paintSliderTrack):
57090         (WebCore::StylePainterQStyle::paintSliderThumb):
57091         (WebCore::StylePainterQStyle::paintInnerSpinButton):
57092         (WebCore::StylePainterQStyle::paintProgressBar):
57093         (WebCore::StylePainterQStyle::paintScrollCorner):
57094         (WebCore::StylePainterQStyle::paintScrollBar):
57095         * platform/qt/ScrollbarThemeQStyle.cpp: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.cpp.
57096         (WebCore):
57097         (WebCore::ScrollbarThemeQStyle::ScrollbarThemeQStyle):
57098         (WebCore::ScrollbarThemeQStyle::~ScrollbarThemeQStyle):
57099         (WebCore::scPart):
57100         (WebCore::scrollbarPart):
57101         (WebCore::initSliderStyleOption):
57102         (WebCore::ScrollbarThemeQStyle::paint):
57103         (WebCore::ScrollbarThemeQStyle::hitTest):
57104         (WebCore::ScrollbarThemeQStyle::shouldCenterOnThumb):
57105         (WebCore::ScrollbarThemeQStyle::invalidatePart):
57106         (WebCore::ScrollbarThemeQStyle::scrollbarThickness):
57107         (WebCore::ScrollbarThemeQStyle::thumbPosition):
57108         (WebCore::ScrollbarThemeQStyle::thumbLength):
57109         (WebCore::ScrollbarThemeQStyle::trackPosition):
57110         (WebCore::ScrollbarThemeQStyle::trackLength):
57111         (WebCore::ScrollbarThemeQStyle::paintScrollCorner):
57112         * platform/qt/ScrollbarThemeQStyle.h: Renamed from Source/WebKit/qt/WebCoreSupport/ScrollbarThemeQStyle.h.
57113         (WebCore):
57114         (ScrollbarThemeQStyle):
57115         (WebCore::ScrollbarThemeQStyle::qStyle):
57116
57117 2012-10-05  Andrei Bucur  <abucur@adobe.com>
57118
57119         Incomplete repaint of boxes with inset box-shadow and padding when resized
57120         https://bugs.webkit.org/show_bug.cgi?id=59863
57121
57122         Reviewed by Simon Fraser.
57123
57124         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.
57125
57126         New Test: fast/repaint/box-shadow-inset-repaint.html
57127
57128         * rendering/RenderObject.cpp:
57129         (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
57130         * rendering/style/RenderStyle.cpp:
57131         (WebCore::RenderStyle::getShadowInsetExtent):
57132         (WebCore):
57133         * rendering/style/RenderStyle.h:
57134
57135 2012-10-04  Kent Tamura  <tkent@chromium.org>
57136
57137         Fix sub-field width to the maximum width of a placeholder and the maximum value
57138         https://bugs.webkit.org/show_bug.cgi?id=98481
57139
57140         Reviewed by Hajime Morita.
57141
57142         We can't assume a placeholder text is shorter than the width of
57143         digits. The placeholder string for the year field of
57144         input[type=week] is "----", but input[type=date] will have a
57145         localized string for it.
57146
57147         We should set the 'width' CSS property to the maximum of the
57148         placeholder width and the maximum value width in order to prevent
57149         the field width from growing/narrowing.
57150
57151         Before this patch, we secured four digits space for a year field,
57152         and allowed the field to grow its width when a larger year is
57153         set. After this patch, we don't allow it to grow because the
57154         'width' property is set to the maximum width.
57155
57156         Update week-multiple-fields-appearance-basic.html, and the
57157         following tests are affected.
57158         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-classes.html
57159         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-pseudo-elements.html
57160         - fast/forms/week-multiple-fields/week-multiple-fields-appearance-style.html
57161
57162         * html/shadow/DateTimeNumericFieldElement.cpp:
57163         (WebCore::DateTimeNumericFieldElement::DateTimeNumericFieldElement):
57164         Enable customStyleForRenderer.
57165         (WebCore::DateTimeNumericFieldElement::customStyleForRenderer):
57166         Added. The code is similar to DateTimeSymbolicFieldElement::customStyleForRenderer().
57167         (WebCore::DateTimeNumericFieldElement::formatValue):
57168         Made a function with the code in value(). This is used in
57169         customStyleForRenderer() and value().
57170         (WebCore::DateTimeNumericFieldElement::value): Use formatValue().
57171         * html/shadow/DateTimeNumericFieldElement.h:
57172         (DateTimeNumericFieldElement): Declare new functions.
57173
57174 2012-10-05  Kent Tamura  <tkent@chromium.org>
57175
57176         Improve spelling and performance of Localizer.cpp
57177         https://bugs.webkit.org/show_bug.cgi?id=98485
57178
57179         Reviewed by Kentaro Hara.
57180
57181         Some improvements pointed in webkit.org/b/98229#c5.
57182
57183         No new tests because of no behavior change.
57184
57185         * platform/text/Localizer.h:
57186         (Localizer):
57187          - Rename dateTimeFormatWithSecond to dateTimeFormatWithSeconds
57188          - Rename dateTimeFormatWithoutSecond to dateTimeFormatWithoutSeconds
57189          - Add data members: m_dateTimeFormatWithSeconds and m_dateTimeFormatWithoutSeconds.
57190         * platform/text/Localizer.cpp:
57191         (WebCore::Localizer::timeFormat): Check isNull instead of isEmpty
57192         (WebCore::Localizer::shortTimeFormat): Ditto.
57193         (WebCore::Localizer::dateTimeFormatWithSeconds):
57194         - Renamed.
57195         - Cache the concatenation result to a data member.
57196         (WebCore::Localizer::dateTimeFormatWithoutSeconds): Ditto.
57197
57198         * html/DateTimeInputType.cpp:
57199         (WebCore::DateTimeInputType::setupLayoutParameters): Follow the renaming.
57200         * html/DateTimeLocalInputType.cpp:
57201         (WebCore::DateTimeLocalInputType::setupLayoutParameters): Ditto.
57202
57203 2012-10-04  Kenichi Ishibashi  <bashi@chromium.org>
57204
57205         [WebSocket] ExtensionParser should have its own file
57206         https://bugs.webkit.org/show_bug.cgi?id=98475
57207
57208         Reviewed by Yuta Kitamura.
57209
57210         Factor out ExtensionParser from WebSocketExtensionDispatcher and rename it as WebSocketExtensionParser.
57211         WebSocketExtensionParser has its own file.
57212
57213         No changes in behavior. Added a test case for parsing Sec-WebSocket-Extensions field as a chromium unit test.
57214
57215         * CMakeLists.txt: Added WebSocketExtensionParser.
57216         * GNUmakefile.list.am: Ditto.
57217         * Modules/websockets/WebSocketExtensionDispatcher.cpp:
57218         (WebCore::WebSocketExtensionDispatcher::processHeaderValue):
57219         Use WebSocketExtensionParser::parseExtension() to parser extension header value.
57220         * Modules/websockets/WebSocketExtensionParser.cpp: Added.
57221         (WebCore):
57222         (WebCore::WebSocketExtensionParser::finished): Moved from ExtensionParser.
57223         (WebCore::WebSocketExtensionParser::parsedSuccessfully): Ditto.
57224         (WebCore::isSeparator): Ditto.
57225         (WebCore::WebSocketExtensionParser::skipSpaces): Ditto.
57226         (WebCore::WebSocketExtensionParser::consumeToken): Ditto.
57227         (WebCore::WebSocketExtensionParser::consumeQuotedString): Ditto.
57228         (WebCore::WebSocketExtensionParser::consumeQuotedStringOrToken): Ditto.
57229         (WebCore::WebSocketExtensionParser::consumeCharacter): Ditto.
57230         (WebCore::WebSocketExtensionParser::parseExtension): Moved from WebSocketExtensionDispatcher.
57231         * Modules/websockets/WebSocketExtensionParser.h: Added.
57232         (WebCore):
57233         (WebSocketExtensionParser):
57234         (WebCore::WebSocketExtensionParser::WebSocketExtensionParser):
57235         (WebCore::WebSocketExtensionParser::currentToken):
57236         * Target.pri: Added WebSocketExtensionParser.
57237         * WebCore.gypi: Ditto.
57238         * WebCore.vcproj/WebCore.vcproj: Ditto.
57239         * WebCore.xcodeproj/project.pbxproj: Ditto.
57240
57241 2012-10-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
57242
57243         <input> size attribute should throw INDEX_SIZE_ERR when set to 0
57244         https://bugs.webkit.org/show_bug.cgi?id=61675
57245
57246         Reviewed by Kent Tamura.
57247
57248         According to the spec, the size IDL attribute of input elements is limited
57249         to only non-negative numbers greater than zero. It should throw INDEX_SIZE_ERR
57250         exception when set to 0. New behavior matches both Firefox and IE.
57251         Spec: http://www.w3.org/TR/html5/common-input-element-attributes.html#the-size-attribute
57252
57253         Test: fast/dom/HTMLInputElement/input-size-attribute.html
57254
57255         * html/HTMLInputElement.cpp:
57256         (WebCore::HTMLInputElement::setSize):
57257         * html/HTMLInputElement.h:
57258         (HTMLInputElement):
57259         * html/HTMLInputElement.idl:
57260
57261 2012-10-04  Kent Tamura  <tkent@chromium.org>
57262
57263         Fix font for date/time input types.
57264         https://bugs.webkit.org/show_bug.cgi?id=98478
57265
57266         Reviewed by Kentaro Hara.
57267
57268         input[type=date] should use monospace font if
57269         ENABLE_INPUT_MULTIPLE_FIELDS_UI && ENABLE_INPUT_TYPE_DATE.
57270
57271         For other date/time types, they should use monospace font only
57272         if their types are enabled. input[type="foo"] matches input
57273         element with type="foo" even if the foo type is not supported.
57274
57275         The input[type=date] change is covered by
57276         fast/forms/date/calendar-picker-appearance.html,
57277         platform/chromium/fast/forms/date/date-suggestion-picker-appearance*.html
57278
57279         * css/html.css:
57280         (input[type="date"]):
57281         (input[type="datetime"]):
57282         (input[type="datetime-local"]):
57283         (input[type="month"]):
57284         (input[type="time"]):
57285
57286 2012-10-04  Hajime Morrita  <morrita@google.com>
57287
57288         [Refactoring] Some classes in StyleResolver.cpp/h could have its own file.
57289         https://bugs.webkit.org/show_bug.cgi?id=98469
57290
57291         Reviewed by Dimitri Glazkov.
57292
57293         This change extracts RuleData, RuleSet, RuleFeature and Featurs class
57294         to its own file: RuleSet.h/cpp and RuleFeature.h/cpp
57295
57296         RuleFeature class is moved fro StyleResolver inner class to plain WebCore class.
57297         Feaures class is renamed to RuleFeatureSet to avoid possible name conflict.
57298
57299         No new tests. Just splitting file and doing simple rename.
57300
57301         * CMakeLists.txt:
57302         * GNUmakefile.list.am:
57303         * Target.pri:
57304         * WebCore.gypi:
57305         * WebCore.xcodeproj/project.pbxproj:
57306         * css/CSSAllInOne.cpp:
57307         * css/RuleFeature.cpp: Added.
57308         (WebCore):
57309         (WebCore::RuleFeatureSet::add):
57310         (WebCore::RuleFeatureSet::clear):
57311         (WebCore::RuleFeatureSet::reportMemoryUsage):
57312         * css/RuleFeature.h: Added.
57313         (WebCore):
57314         (RuleFeature):
57315         (WebCore::RuleFeature::RuleFeature):
57316         (RuleFeatureSet):
57317         (WebCore::RuleFeatureSet::RuleFeatureSet):
57318         * css/RuleSet.cpp: Added.
57319         (WebCore):
57320         (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
57321         (WebCore::selectorListContainsUncommonAttributeSelector):
57322         (WebCore::isCommonAttributeSelectorAttribute):
57323         (WebCore::containsUncommonAttributeSelector):
57324         (WebCore::RuleData::RuleData):
57325         (WebCore::RuleData::reportMemoryUsage):
57326         (WebCore::reportAtomRuleMap):
57327         (WebCore::RuleSet::reportMemoryUsage):
57328         (WebCore::RuleSet::RuleSetSelectorPair::reportMemoryUsage):
57329         (WebCore::collectFeaturesFromSelector):
57330         (WebCore::collectFeaturesFromRuleData):
57331         (WebCore::RuleSet::addToRuleSet):
57332         (WebCore::RuleSet::addRule):
57333         (WebCore::RuleSet::addPageRule):
57334         (WebCore::RuleSet::addRegionRule):
57335         (WebCore::RuleSet::addRulesFromSheet):
57336         (WebCore::RuleSet::addStyleRule):
57337         (WebCore::shrinkMapVectorsToFit):
57338         (WebCore::RuleSet::shrinkToFit):
57339         * css/RuleSet.h: Added.
57340         (WebCore):
57341         (RuleData):
57342         (WebCore::RuleData::position):
57343         (WebCore::RuleData::rule):
57344         (WebCore::RuleData::selector):
57345         (WebCore::RuleData::selectorIndex):
57346         (WebCore::RuleData::hasFastCheckableSelector):
57347         (WebCore::RuleData::hasMultipartSelector):
57348         (WebCore::RuleData::hasRightmostSelectorMatchingHTMLBasedOnRuleHash):
57349         (WebCore::RuleData::containsUncommonAttributeSelector):
57350         (WebCore::RuleData::specificity):
57351         (WebCore::RuleData::linkMatchType):
57352         (WebCore::RuleData::hasDocumentSecurityOrigin):
57353         (WebCore::RuleData::isInRegionRule):
57354         (WebCore::RuleData::descendantSelectorIdentifierHashes):
57355         (SameSizeAsRuleData):
57356         (RuleSet):
57357         (WebCore::RuleSet::create):
57358         (WebCore::RuleSet::disableAutoShrinkToFit):
57359         (WebCore::RuleSet::features):
57360         (WebCore::RuleSet::idRules):
57361         (WebCore::RuleSet::classRules):
57362         (WebCore::RuleSet::tagRules):
57363         (WebCore::RuleSet::shadowPseudoElementRules):
57364         (WebCore::RuleSet::linkPseudoClassRules):
57365         (WebCore::RuleSet::focusPseudoClassRules):
57366         (WebCore::RuleSet::universalRules):
57367         (WebCore::RuleSet::pageRules):
57368         (WebCore::RuleSet::RuleSetSelectorPair::RuleSetSelectorPair):
57369         (RuleSetSelectorPair):
57370         (WebCore::RuleSet::RuleSet):
57371         * css/StyleResolver.cpp:
57372         (WebCore):
57373         (WebCore::makeRuleSet):
57374         (WebCore::StyleResolver::collectMatchingRulesForList):
57375         * css/StyleResolver.h:
57376         (StyleResolver):
57377
57378 2012-10-04  Adam Barth  <abarth@webkit.org>
57379
57380         FeatureObserver should distinguish between legacy HTML and text notifications
57381         https://bugs.webkit.org/show_bug.cgi?id=98441
57382
57383         Reviewed by Tony Chang.
57384
57385         We might be able to drop support for legacy HTML notifications before
57386         we can drop support for legacy text notifications. We should measure
57387         and find out.
57388
57389         * Modules/notifications/NotificationCenter.idl:
57390         * page/FeatureObserver.h:
57391
57392 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57393
57394         Removing the unused member variable m_wasMalformed from HTMLFormElement class and its related code frgment.
57395         https://bugs.webkit.org/show_bug.cgi?id=98444
57396
57397         Reviewed by Eric Seidel.
57398
57399         The member variable m_wasMalformed of HTMLFormElement class was used to determine if the <form> tag was malformed or not.
57400         This information was used elsewhere to decide if bottom margins have to be included for such a <form>.
57401         However currently this member variable is not being set by any code following code refactoring in HTML parser class.
57402
57403         Code cleanup patch. No new tests required.
57404
57405         * html/HTMLFormElement.cpp:
57406         (WebCore::HTMLFormElement::HTMLFormElement):
57407           Removed m_wasMalformed initialization.
57408
57409         * html/HTMLFormElement.h:
57410         (HTMLFormElement):
57411          Removed m_wasMalformed variable.
57412          Removed m_wasMalformed variable's setter and getter functions.
57413
57414         * rendering/RenderBlock.cpp:
57415         (WebCore::RenderBlock::layoutBlock):
57416          Removed code fragment using/dependent on m_wasMalformed.
57417
57418 2012-10-04  Rik Cabanier  <cabanier@adobe.com>
57419
57420         Turn Compositing on by default in WebKit build
57421         https://bugs.webkit.org/show_bug.cgi?id=98315
57422
57423         Reviewed by Simon Fraser.
57424
57425         enable -webkit-blend-mode on trunk.
57426
57427         No new tests. Existing blending test were updated.
57428
57429         * Configurations/FeatureDefines.xcconfig:
57430         * css/CSSPropertyNames.in:
57431         * css/CSSValueKeywords.in:
57432
57433 2012-10-04  Hayato Ito  <hayato@chromium.org>
57434
57435         [Refactoring] Introduce a traversal strategy in SelectorChecker
57436         https://bugs.webkit.org/show_bug.cgi?id=97298
57437
57438         Reviewed by Antti Koivisto.
57439
57440         We extract DOM traversal code from SelectorChecker so that we can use another traversal strategy.
57441         Another traversal strategy will be introduced in Bug 96990.
57442
57443         Since this code path is very hot, we were very careful not to regress performance.
57444         We will use template specialization to change the traversal implementation.
57445
57446         We confirmed that this patch does not regress SelectorCheckerPerformance. I have checked the performance of
57447         the added test in my Linux Box using run-perf-tests.
57448
57449         The performance of the added test before using this patch was:
57450
57451           RESULT CSS: PseudoClassSelectors= 3399.68308031 runs/s
57452           median= 3404.48685564 runs/s, stdev= 37.3480114449 runs/s, min= 3272.64871114 runs/s, max= 3438.72385184 runs/s
57453
57454         When we used this patch, the performance was:
57455
57456           RESULT CSS: PseudoClassSelectors= 3367.74473886 runs/s
57457           median= 3367.12072755 runs/s, stdev= 14.1464547639 runs/s, min= 3348.55881171 runs/s, max= 3395.98212857 runs/s
57458
57459         Test: PerformanceTests/CSS/PseudoClass-Selectors.html
57460
57461         * css/SelectorChecker.cpp:
57462         (WebCore):
57463         (WebCore::SelectorChecker::checkSelector): Make this a template method to accept another Context type.
57464         Another Context type will be introduced in coming patch.
57465         (WebCore::SelectorChecker::checkOneSelector):
57466         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstChild):
57467         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastChild):
57468         (WebCore::SelectorChecker::DOMTraversalStrategy::isFirstOfType):
57469         (WebCore::SelectorChecker::DOMTraversalStrategy::isLastOfType):
57470         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsBefore):
57471         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeBefore):
57472         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsAfter):
57473         (WebCore::SelectorChecker::DOMTraversalStrategy::countElementsOfTypeAfter):
57474         * css/SelectorChecker.h:
57475         (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
57476         (SelectorCheckingContext):
57477         (SelectorChecker):
57478         (DOMTraversalStrategy): Extracted the DOM traversal code from SelectorChecker. Another traversal code
57479         will be introduced the coming patch.
57480
57481 2012-10-04  Eric Seidel  <eric@webkit.org>
57482
57483         SVGAttributeHashTranslator does not need to copy QualifiedName in the common case
57484         https://bugs.webkit.org/show_bug.cgi?id=98473
57485
57486         Reviewed by Adam Barth.
57487
57488         I tested this using instruments on a test case which modified SVG attributes in a loop.
57489         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,
57490         since we're no longer creating a QualifiedName (and thus adding it to the hash) on each QualifiedName-based lookup in SVG.
57491
57492         * svg/SVGElement.h:
57493         (WebCore::SVGAttributeHashTranslator::hash):
57494         (WebCore::SVGAttributeHashTranslator::equal):
57495
57496 2012-10-04  Julien Chaffraix  <jchaffraix@webkit.org>
57497
57498         Split the intrinsic padding update code out of RenderTableSection::layoutRows
57499         https://bugs.webkit.org/show_bug.cgi?id=98454
57500
57501         Reviewed by Eric Seidel.
57502
57503         RenderTableSection::layoutRows is very long and it's difficult to see what's
57504         going on. This change moves the intrinsic padding update code into RenderTableCell
57505         for clarity. While at it, cleaned up a bit the code (renaming variables, functions).
57506
57507         Change covered by existing table tests.
57508
57509         * rendering/RenderTableCell.cpp:
57510         (WebCore::RenderTableCell::computeIntrinsicPadding):
57511         Added this new function that does the update. Removed the 'default' case, replaced by
57512         the explicit label BASELINE_MIDDLE.
57513
57514         * rendering/RenderTableCell.h:
57515         (WebCore::RenderTableCell::setIntrinsicPaddingBefore):
57516         (WebCore::RenderTableCell::setIntrinsicPaddingAfter):
57517         (WebCore::RenderTableCell::setIntrinsicPadding):
57518         Moved those setters to the private section as we want other classes
57519         to use computeIntrinsicPadding.
57520
57521         * rendering/RenderTableSection.cpp:
57522         (WebCore::RenderTableSection::layoutRows):
57523         Replaced the code with a call to RenderTableCell::computeIntrinsicPadding.
57524         Also moved 2 variables in the loop per our coding style.
57525
57526         * rendering/RenderTableSection.h:
57527         (WebCore::RenderTableSection::rowBaseline):
57528         Renamed to match our coding style.
57529
57530 2012-10-04  Nate Chapin  <japhet@chromium.org>
57531
57532         Crash in EventHandler::mouseMoved().
57533         https://bugs.webkit.org/show_bug.cgi?id=98460
57534
57535         Reviewed by Abhishek Arya.
57536
57537         No new tests, this fixes fast/events/mouse-moved-remove-frame-crash.html.
57538
57539         * page/EventHandler.cpp:
57540         (WebCore::EventHandler::mouseMoved):
57541
57542 2012-10-04  Adam Barth  <abarth@webkit.org>
57543
57544         [V8] NotificationCenter leaks because it uses buggy custom bindings
57545         https://bugs.webkit.org/show_bug.cgi?id=98445
57546
57547         Reviewed by Tony Chang.
57548
57549         There's no reason to use custom bindings here. All they do is cause leaks..
57550
57551         * Modules/notifications/NotificationCenter.idl:
57552         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
57553
57554 2012-10-04  Tab Atkins  <jackalmage@gmail.com>
57555
57556         Selector specificity categories "overflow" into higher categories
57557         https://bugs.webkit.org/show_bug.cgi?id=98295
57558
57559         Reviewed by Eric Seidel.
57560
57561         This patch adds per-component overflow guards for CSS selector specificity.
57562         Previously, we didn't guard against overflow. 
57563         Since we stored each component as a byte mapped into a single unsigned int for the whole specificity,
57564         256 of a particular simple selector was equivalent to 1 of the next-higher-group selector.
57565         This violated the Selectors specification,
57566         which requires the components to be compared lexicographically.
57567
57568         Tests: /fast/selectors/specificity-overflow.html
57569
57570         * css/CSSSelector.cpp:
57571         (WebCore::CSSSelector::specificity):
57572
57573 2012-10-04  Enrica Casucci  <enrica@apple.com>
57574
57575         Font::glyphDataAndPageForCharacter doesn't account for text orientation when using systemFallback on a cold cache.
57576         https://bugs.webkit.org/show_bug.cgi?id=98452.
57577
57578         Reviewed by Dan Bernstein.
57579
57580         The text orientation was considered only when there is a cache hit.
57581         This change moves the logic to handle text orientation to a separate
57582         inline function that is called also when the glyph is added to the cache.
57583
57584         Test: fast/text/vertical-rl-rtl-linebreak.html
57585
57586         * platform/graphics/FontFastPath.cpp:
57587         (WebCore::applyTextOrientationForCharacter): Added.
57588         (WebCore::Font::glyphDataAndPageForCharacter): Modified to use the new function in
57589         both cases of cold and warm cache.
57590
57591 2012-10-04  Adam Klein  <adamk@chromium.org>
57592
57593         MutationRecord attributeName should be null for non attribute changes
57594         https://bugs.webkit.org/show_bug.cgi?id=98438
57595
57596         Reviewed by Ojan Vafai.
57597
57598         Test: fast/mutation/mutation-record-nullity.html
57599
57600         * dom/MutationRecord.idl:
57601
57602 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
57603
57604         Final part of "sync" to "flush" renaming
57605         https://bugs.webkit.org/show_bug.cgi?id=98430
57606
57607         Reviewed by Tim Horton.
57608
57609         Change method names on GraphicsLayer and GraphicsLayerClient that
57610         refer to "sync" to use the term "flush" instead, to be consistent
57611         with the rest of the code.
57612
57613         * platform/graphics/GraphicsLayer.h:
57614         (WebCore::GraphicsLayer::flushCompositingState):
57615         (WebCore::GraphicsLayer::flushCompositingStateForThisLayerOnly):
57616         * platform/graphics/GraphicsLayerClient.h:
57617         (GraphicsLayerClient):
57618         * platform/graphics/blackberry/GraphicsLayerBlackBerry.h:
57619         (WebCore::GraphicsLayerBlackBerry::notifyFlushRequired):
57620         * platform/graphics/blackberry/LayerWebKitThread.cpp:
57621         (WebCore::LayerWebKitThread::setNeedsCommit):
57622         * platform/graphics/ca/GraphicsLayerCA.cpp:
57623         (WebCore::GraphicsLayerCA::flushCompositingState):
57624         (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
57625         (WebCore::GraphicsLayerCA::platformCALayerDidCreateTiles):
57626         (WebCore::GraphicsLayerCA::positionForCloneRootLayer):
57627         (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
57628         * platform/graphics/ca/GraphicsLayerCA.h:
57629         (GraphicsLayerCA):
57630         * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
57631         (WebCore::GraphicsLayerTextureMapper::notifyChange):
57632         (WebCore::GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly):
57633         (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
57634         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
57635         (GraphicsLayerTextureMapper):
57636         * platform/graphics/texmap/TextureMapperLayer.cpp:
57637         (WebCore::TextureMapperLayer::flushCompositingState):
57638         (WebCore::TextureMapperLayer::flushCompositingStateSelf):
57639         * platform/graphics/texmap/TextureMapperLayer.h:
57640         (TextureMapperLayer):
57641         * rendering/RenderLayerBacking.cpp:
57642         (WebCore::RenderLayerBacking::notifyFlushRequired):
57643         * rendering/RenderLayerBacking.h:
57644         (RenderLayerBacking):
57645         * rendering/RenderLayerCompositor.cpp:
57646         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
57647         * rendering/RenderLayerCompositor.h:
57648         (WebCore::RenderLayerCompositor::notifyFlushRequired):
57649
57650 2012-10-04  Tab Atkins  <tabatkins@google.com>
57651
57652         1ex should equal .5em when the font has no x-height metric
57653         https://bugs.webkit.org/show_bug.cgi?id=80360
57654
57655         Reviewed by Eric Seidel.
57656
57657         Updated FontMetrics and CSSPrimitiveValue to have/use an explicit "hasXHeight" flag to determine how to size an 'ex' unit.
57658
57659         Updated a few of the platform font files to set the flag properly.
57660
57661         Patch cleanup by David Barr <davidbarr@chromium.org>.
57662
57663         Test: fast/css/ex-unit-with-no-x-height.html
57664
57665         * css/CSSPrimitiveValue.cpp:
57666         (WebCore::CSSPrimitiveValue::computeLengthDouble):
57667         * platform/graphics/FontMetrics.h:
57668         (WebCore::FontMetrics::FontMetrics):
57669         (WebCore::FontMetrics::setXHeight):
57670         (FontMetrics):
57671         (WebCore::FontMetrics::hasXHeight):
57672         (WebCore::FontMetrics::setHasXHeight):
57673         (WebCore::FontMetrics::reset):
57674         * platform/graphics/skia/SimpleFontDataSkia.cpp:
57675         (WebCore::SimpleFontData::platformInit):
57676
57677 2012-10-04  Ryosuke Niwa  <rniwa@webkit.org>
57678
57679         Build fix after r130411. Add the right offset.
57680         Also use RefPtr instead of a raw pointer for next and previous pointers.
57681
57682         * editing/ReplaceSelectionCommand.cpp:
57683         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
57684
57685 2012-10-04  Alec Flett  <alecflett@chromium.org>
57686
57687         IndexedDB: promote objectstore/index backend ids to the frontend
57688         https://bugs.webkit.org/show_bug.cgi?id=97834
57689
57690         Reviewed by Tony Chang.
57691
57692         Expose int64-based database/objectStore/index ids to the renderer,
57693         step 1 of 2. Support both styles of createObjectStore and
57694         createIndex: those that take an explicit id, and those that take
57695         -1, meaning to autogenerate an id on the backend. In part 2, after
57696         the chromium side lands, support for the autogenerated ids will be
57697         removed. (See https://bugs.webkit.org/show_bug.cgi?id=98085)
57698
57699         This is a part of larger refactoring work to ultimately make the interface
57700         between the frontend and the backend simpler.
57701
57702         No new tests, extensive ASSERTs and existing tests cover correctness.
57703
57704         * Modules/indexeddb/IDBBackingStore.h:
57705         (IDBBackingStore):
57706         * Modules/indexeddb/IDBDatabase.cpp:
57707         (WebCore::IDBDatabase::createObjectStore):
57708         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
57709         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
57710         (WebCore::IDBDatabaseBackendImpl::openInternal):
57711         (WebCore::IDBDatabaseBackendImpl::metadata):
57712         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
57713         (WebCore):
57714         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
57715         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
57716         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
57717         (IDBDatabaseBackendImpl):
57718         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
57719         (IDBDatabaseBackendInterface):
57720         * Modules/indexeddb/IDBIndexBackendImpl.cpp:
57721         (WebCore::IDBIndexBackendImpl::metadata):
57722         * Modules/indexeddb/IDBIndexBackendImpl.h:
57723         (WebCore::IDBIndexBackendImpl::create):
57724         (IDBIndexBackendImpl):
57725         * Modules/indexeddb/IDBLevelDBBackingStore.cpp:
57726         (WebCore):
57727         (WebCore::getMaxObjectStoreId):
57728         (WebCore::IDBLevelDBBackingStore::getIDBDatabaseMetaData):
57729         (WebCore::IDBLevelDBBackingStore::deleteDatabase):
57730         (WebCore::IDBLevelDBBackingStore::getObjectStores):
57731         (WebCore::setMaxObjectStoreId):
57732         (WebCore::IDBLevelDBBackingStore::createObjectStore):
57733         (WebCore::getMaxIndexId):
57734         (WebCore::setMaxIndexId):
57735         (WebCore::IDBLevelDBBackingStore::createIndex):
57736         * Modules/indexeddb/IDBLevelDBBackingStore.h:
57737         (IDBLevelDBBackingStore):
57738         * Modules/indexeddb/IDBMetadata.h:
57739         (WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
57740         (IDBDatabaseMetadata):
57741         (WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
57742         (IDBObjectStoreMetadata):
57743         (WebCore::IDBIndexMetadata::IDBIndexMetadata):
57744         (IDBIndexMetadata):
57745         * Modules/indexeddb/IDBObjectStore.cpp:
57746         (WebCore::IDBObjectStore::createIndex):
57747         * Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:
57748         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
57749         (WebCore::IDBObjectStoreBackendImpl::metadata):
57750         (WebCore::IDBObjectStoreBackendImpl::createIndex):
57751         (WebCore):
57752         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
57753         * Modules/indexeddb/IDBObjectStoreBackendImpl.h:
57754         (WebCore::IDBObjectStoreBackendImpl::create):
57755         (IDBObjectStoreBackendImpl):
57756         * Modules/indexeddb/IDBObjectStoreBackendInterface.h:
57757 2012-10-04  Pravin D  <pravind.2k4@gmail.com>
57758
57759         Layout broken after cloning and re-inserting a table with a misplaced <form>
57760         https://bugs.webkit.org/show_bug.cgi?id=86746
57761
57762         Reviewed by Julien Chaffraix.
57763
57764         There is a concept of demotion for a <form> contained in a table. A <form> is demoted if its immediate parent
57765         is either a <table>, table sections (tbody, etc) or a table row (tr). A renderer for such a <form> is created only
57766         if its display is one of the table display types (TABLE, INLINE_TABLE, TABLE_FOOTER_GROUP, etc).
57767         However when a <table> containing a demoted <form> is cloned, the <form> does not retain its demotion state and 
57768         results in the table getting improperly rendered.
57769
57770         Test: fast/table/form-with-non-table-display-inside-table-elements.html
57771
57772         * html/HTMLFormElement.cpp:
57773         (WebCore::HTMLFormElement::copyNonAttributePropertiesFromElement):
57774           Extended the virtual function for HTMLFormElement class specific implementation.
57775           The function is used to copy any necessary state information(member variables) associated with
57776           the <form> element being cloned to the current node.
57777           For HTMLFormElement node the member variable can be classified into five groups based on the 
57778           information they hold:
57779             1) Variables containing information regarding <form> subtree and elements associated with it.
57780                These get updated as and when an element is added to the <form> subtree.
57781             2) Variables containing <form> submit state information.
57782             3) Flag to hold information if reset() has been called.
57783             4) Flag(m_wasDemoted) that indicates whether the form is demoted or not, based on which it needs to
57784                be handled differently during creation of its renderer.
57785                This information is currently being updated only during the HTML tree construction phase.
57786             5) Flag(m_wasMalformed) to hold information if the <form> is malformed or not.
57787
57788           Variables of group (1) will be updated as and when elements are added to the <form> subtree. Whereas,
57789           (2) and (3) hold instance specific information, thus copying them is not required. Also (5) is currently not
57790           being used(not set by any code).
57791
57792           On the other hand, (4) is required to be copied during cloning as this information cannot be accessed
57793           during the cloning process.
57794
57795         (WebCore):
57796         * html/HTMLFormElement.h:
57797           Added copyNonAttributePropertiesFromElement() declaration.
57798
57799 2012-10-04  Dean Jackson  <dino@apple.com>
57800
57801         Attribute and Uniform variable names need translation in shader
57802         https://bugs.webkit.org/show_bug.cgi?id=70989
57803
57804         Reviewed by Tim Horton (and Darin Adler).
57805
57806         WebGL specifies some maximum lengths for variable names (attributes
57807         and uniforms). Also, some GL drivers have issues with long names. For
57808         that reason, ANGLE has an option to rewrite the shader, translating
57809         long names into short names. Turning this on helps shaders compile,
57810         but we need to keep a mapping between the original names and the
57811         translated names, so that we bind to the right location from user code
57812         (which won't ever see the translated source).
57813
57814         This provided an opportunity to clean up some other bits of code:
57815         CSS Filters examined the uniform names after a compilation; It can
57816         now use the variable name map. I also added a typedef for the
57817         HashMaps that keep the shader, the source code and the variable name
57818         mappings.
57819
57820         I also opened a followup bug to make sure these tables are deleted
57821         when the associated shaders (or linked programs) go away:
57822         https://bugs.webkit.org/show_bug.cgi?id=98204
57823
57824         Covered by existing tests (with some enhancements):
57825         - fast/canvas/webgl/attrib-location-length-limits.html:
57826         - fast/canvas/webgl/uniform-location-length-limits.html:
57827
57828         * platform/graphics/ANGLEWebKitBridge.cpp:
57829         (WebCore::getSymbolInfo): Extracts all the information on symbols (either attributes
57830         or uniforms) from the newly compiled shader.
57831         (WebCore):
57832         (WebCore::ANGLEWebKitBridge::compileShaderSource): New method name.
57833         * platform/graphics/ANGLEWebKitBridge.h:
57834         (WebCore::getUniforms): Deleted this method.
57835         (WebCore::ANGLEShaderSymbol::isSampler): Make sure the symbol is a uniform.
57836         (ANGLEWebKitBridge):
57837         * platform/graphics/GraphicsContext3D.h:
57838         (WebCore::GraphicsContext3D::SymbolInfo::SymbolInfo): A new object that
57839         holds the size, type and translated name of a symbol from a WebGL shader.
57840         (ShaderSourceEntry):
57841         (WebCore::GraphicsContext3D::ShaderSourceEntry::ShaderSourceEntry): Now keeps track
57842         of the translated source code and symbol mappings.
57843         (WebCore::GraphicsContext3D::ShaderSourceEntry::symbolMap): Helper function to
57844         get the member variable corresponding to the type of symbol you're asking fo.
57845         * platform/graphics/filters/CustomFilterValidatedProgram.cpp:
57846         (WebCore::CustomFilterValidatedProgram::CustomFilterValidatedProgram): Calls new method
57847         name which also produces a set of symbols to examine.
57848         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
57849         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): We now can pass
57850         in some extra compile options to do translation of long symbol names. Also fill the
57851         map of translated symbol names.
57852         * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
57853         (WebCore::GraphicsContext3D::compileShader):
57854         (WebCore::GraphicsContext3D::mappedSymbolName): Returns the mapped name for
57855         a shader symbol if it was translated during compilation.
57856         (WebCore):
57857         (WebCore::GraphicsContext3D::getAttribLocation):
57858         (WebCore::GraphicsContext3D::getShaderiv):
57859         (WebCore::GraphicsContext3D::getShaderInfoLog):
57860         (WebCore::GraphicsContext3D::getShaderSource):
57861         (WebCore::GraphicsContext3D::getUniformLocation):
57862
57863 2012-10-04  Alpha Lam  <hclam@chromium.org>
57864
57865         [skia] Drawing a subrect of bitmap image is misaligned
57866         https://bugs.webkit.org/show_bug.cgi?id=95121
57867
57868         Reviewed by Stephen White.
57869
57870         When drawing a subrect of BitmapImage and the subrect is not aligned
57871         to integer boundaries, skia expands it to the closest enclosing integer
57872         rectangle. This creates prominent rendering artifacts when an image
57873         is used as background and its sub-regions are invalidated frequently.
57874
57875         This patch fixes the problem by doing alignment to integer boundaries
57876         and clipping for both cases of RESAMPLE_AWESOME and RESAMPLE_LINEAR.
57877
57878         A clip rect is applied to the canvas using original destination
57879         rectangle, while source and destination rectangles are enlarged
57880         appropriately to ensure source rectangle is aligned.
57881
57882         This patch also fixes a closely related problem. In RESAMPLE_AWESOME
57883         resampling mode the previous algorithm applies different approximated
57884         scale factor for each scaled image fragment. This caused the stitched
57885         image to look ugly.
57886
57887         Scale factor is approximated using entire image size, this gives a
57888         more accurate approximation because of greater denominator and a
57889         consistent scale factor across all fragments.
57890
57891         Changes in Skia enable caching of the scaled image and return the
57892         scaled fragment because scale factor is now consistent for all
57893         fragments.
57894
57895         Tests: fast/images/paint-subrect-grid.html
57896                fast/images/paint-subrect.html
57897                fast/images/repaint-subrect-grid.html
57898
57899         * platform/graphics/skia/ImageSkia.cpp:
57900         (WebCore::computeResamplingMode): Use float for width and height.
57901         (WebCore):
57902         (WebCore::areBoundariesIntegerAligned):
57903         (WebCore::computeBitmapDrawRects):
57904         (WebCore::extractScaledImageFragment):
57905         (WebCore::drawResampledBitmap): New algorithm for drawing scaled image fragment.
57906         (WebCore::paintSkBitmap):
57907         (WebCore::Image::drawPattern):
57908         (WebCore::BitmapImage::draw): Use SkRect instead of SkIRect.
57909         (WebCore::BitmapImageSingleFrameSkia::draw):
57910         * platform/graphics/skia/NativeImageSkia.cpp:
57911         Changing the algorithm for extracting a scaled image fragment.
57912         A fragment is now identified by (scaledImageSize, scaledImageSubset).
57913         (WebCore::NativeImageSkia::hasResizedBitmap):
57914         (WebCore::NativeImageSkia::resizedBitmap):
57915         (WebCore::NativeImageSkia::shouldCacheResampling):
57916         (WebCore::NativeImageSkia::CachedImageInfo::CachedImageInfo):
57917         (WebCore):
57918         (WebCore::NativeImageSkia::CachedImageInfo::isEqual):
57919         (WebCore::NativeImageSkia::CachedImageInfo::set):
57920         (WebCore::NativeImageSkia::CachedImageInfo::rectInSubset):
57921         * platform/graphics/skia/NativeImageSkia.h:
57922         (NativeImageSkia):
57923         (CachedImageInfo):
57924
57925 2012-10-03  Ryosuke Niwa  <rniwa@webkit.org>
57926
57927         ReplaceSelectionCommand should merge text nodes
57928         https://bugs.webkit.org/show_bug.cgi?id=98188
57929
57930         Reviewed by Levi Weintraub.
57931
57932         Added mergeTextNodesAroundPosition to ReplaceSelectionCommand to merge text nodes after the replace in
57933         completeHTMLReplacement. Also fixed a bunch of bugs in other classes and functions to make this work.
57934
57935         This behavior change is tested by existing tests.
57936
57937         * editing/InsertParagraphSeparatorCommand.cpp:
57938         (WebCore::InsertParagraphSeparatorCommand::doApply): When splitting a text node, place the insertionPosition
57939         at the end of the first half. Leaving it at the beginning of the second half confuses the rest of the code in
57940         the function. However, the logic to handle the "insignificant" white spaces needs the position at the start of
57941         the second half. So keep this position.
57942         * editing/ReplaceSelectionCommand.cpp:
57943         (WebCore::ReplaceSelectionCommand::doApply): Update visibleStart after inserting a paragraph separator so that
57944         the logic to cleanup the nested div checks the right condition (right beneath it starting with a long comment).
57945         (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace): Insert a space for smart paste at the appropriate
57946         offset instead of at the end of endNode. Also update the layout before obtaining startDownstream as we may have 
57947         modified the DOM by inserting a space for endNode. Finally, a non-breaking space should be treated like a space
57948         isCharacterSmartReplaceExempt for the purpose of smart replace. e.g. if we're inserting "world" after
57949         "hello&nbsp;", we shouldn't be inserting another space between "hello" and "world".
57950         (WebCore::ReplaceSelectionCommand::completeHTMLReplacement):
57951         (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition): Added. Merge text nodes around position, and
57952         adjust position and positionOnlyToBeUpdated accordingly. We need to call updatePositionForNodeRemoval when
57953         positions were before or after the text node.
57954         * editing/ReplaceSelectionCommand.h:
57955         (ReplaceSelectionCommand):
57956
57957 2012-10-04  Tony Chang  <tony@chromium.org>
57958
57959         Fix <input type="month"> tests
57960         https://bugs.webkit.org/show_bug.cgi?id=98426
57961
57962         Reviewed by Ojan Vafai.
57963
57964         The month picker uses flexbox and assumes that it will be aligned with
57965         the last line box. This looks visually correct. I will follow up on
57966         www-style to see what the expected behavior is.
57967
57968         Tests: fast/forms/month-multiple-fields tests cover this.
57969
57970         * rendering/RenderFlexibleBox.cpp:
57971         * rendering/RenderFlexibleBox.h:
57972
57973 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
57974
57975         Unreviewed, rolling out r130396.
57976         http://trac.webkit.org/changeset/130396
57977         https://bugs.webkit.org/show_bug.cgi?id=98421
57978
57979         This patch is causing crashes on 4 tests on Lion Debug and
57980         Mountain Lion Debug (Requested by jernoble on #webkit).
57981
57982         * rendering/RenderLayerCompositor.cpp:
57983         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
57984         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
57985         * rendering/RenderLayerCompositor.h:
57986         * testing/InternalSettings.cpp:
57987         (WebCore::InternalSettings::Backup::Backup):
57988         (WebCore::InternalSettings::Backup::restoreTo):
57989         * testing/InternalSettings.h:
57990         (Backup):
57991
57992 2012-10-04  Tony Chang  <tony@chromium.org>
57993
57994         inline-flex baseline is sometimes wrong
57995         https://bugs.webkit.org/show_bug.cgi?id=96188
57996
57997         Reviewed by Ojan Vafai.
57998
57999         Implement the necessary methods to get the proper baseline alignment of flexbox.
58000         We were falling back to the inline-block behavior.
58001
58002         Test: css3/flexbox/flexbox-baseline.html
58003
58004         * rendering/RenderFlexibleBox.cpp:
58005         (WebCore::RenderFlexibleBox::RenderFlexibleBox):
58006         (WebCore::RenderFlexibleBox::baselinePosition): Used to get the baseline of the box.
58007         Mostly just the first line box baseline.
58008         (WebCore):
58009         (WebCore::RenderFlexibleBox::lastLineBoxBaseline): This is used for getting the baseline when in an inline-block.
58010         We actually don't want the last line, but the flexbox's baseline.
58011         (WebCore::RenderFlexibleBox::firstLineBoxBaseline): Compute the baseline according to the rules in the spec.
58012         (WebCore::RenderFlexibleBox::repositionLogicalHeightDependentFlexItems): Keep track of the number of children on the
58013         first line so we don't have to re-compute this when getting the baseline.
58014         (WebCore::RenderFlexibleBox::crossAxisExtentForChild): Make const.
58015         (WebCore::RenderFlexibleBox::mainAxisExtentForChild): Make const.
58016         (WebCore::RenderFlexibleBox::hasAutoMarginsInCrossAxis): Make const.
58017         * rendering/RenderFlexibleBox.h: Add a size_t to keep track of how many children are in the first line.
58018
58019 2012-10-04  Xianzhu Wang  <wangxianzhu@chromium.org>
58020
58021         [Chromium] Should set unitsPerEm in SimpleFontDataSkia.cpp
58022         https://bugs.webkit.org/show_bug.cgi?id=98100
58023
58024         Reviewed by Stephen White.
58025
58026         At least on chromium-linux and chromium-android, unitsPerEm was not set
58027         according to the information in the font, causing at least problems in
58028         OpenTypeVerticalData when calculating vertical advance.
58029
58030         Test: fast/writing-mode/vertical-font-vmtx-units-per-em.html
58031
58032         * platform/graphics/skia/SimpleFontDataSkia.cpp:
58033         (WebCore::SimpleFontData::platformInit):
58034
58035 2012-10-04  Simon Fraser  <simon.fraser@apple.com>
58036
58037         Standardize on "flush" terminology for compositing layer flushing/syncing
58038         https://bugs.webkit.org/show_bug.cgi?id=98321
58039
58040         Reviewed by Simon Fraser.
58041
58042         Rename compositing-related methods that refer to "syncing" to instead
58043         refer to "flushing".
58044
58045         * WebCore.exp.in:
58046         * loader/EmptyClients.h:
58047         (WebCore::EmptyChromeClient::scheduleCompositingLayerFlush):
58048         * page/ChromeClient.h:
58049         (ChromeClient):
58050         * page/FrameView.cpp:
58051         (WebCore::FrameView::flushCompositingStateForThisFrame):
58052         (WebCore::FrameView::flushCompositingStateIncludingSubframes):
58053         (WebCore::FrameView::paintContents):
58054         * page/FrameView.h:
58055         (FrameView):
58056         * rendering/RenderLayerCompositor.cpp:
58057         (WebCore::RenderLayerCompositor::scheduleLayerFlush):
58058         (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
58059
58060 2012-10-04  Peter Rybin  <peter.rybin@gmail.com>
58061
58062         Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis
58063         https://bugs.webkit.org/show_bug.cgi?id=94397
58064
58065         Reviewed by Yury Semikhatsky.
58066
58067         Internal property access is built from Injected Script to V8 debug API. JSC binding
58068         has a stub imlpementation. Protocol is updated to explicitly reflect internal properties.
58069
58070         Test: inspector-protocol/runtime-getProperties.html
58071
58072         * bindings/js/JSInjectedScriptHostCustom.cpp:
58073         (WebCore::JSInjectedScriptHost::getInternalProperties):
58074         (WebCore):
58075         * bindings/v8/DebuggerScript.js:
58076         * bindings/v8/ScriptDebugServer.cpp:
58077         (WebCore::ScriptDebugServer::getInternalProperties):
58078         (WebCore):
58079         * bindings/v8/ScriptDebugServer.h:
58080         (ScriptDebugServer):
58081         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
58082         (WebCore::V8InjectedScriptHost::getInternalPropertiesCallback):
58083         (WebCore):
58084         * inspector/InjectedScript.cpp:
58085         (WebCore::InjectedScript::getInternalProperties):
58086         (WebCore):
58087         * inspector/InjectedScript.h:
58088         (InjectedScript):
58089         * inspector/InjectedScriptHost.idl:
58090         * inspector/InjectedScriptSource.js:
58091         (.):
58092         * inspector/Inspector.json:
58093         * inspector/InspectorRuntimeAgent.cpp:
58094         (WebCore::InspectorRuntimeAgent::getProperties):
58095         * inspector/InspectorRuntimeAgent.h:
58096         (InspectorRuntimeAgent):
58097
58098 2012-10-04  Sami Kyostila  <skyostil@chromium.org>
58099
58100         Fixed position visibility check does not consider descendants
58101         https://bugs.webkit.org/show_bug.cgi?id=98144
58102
58103         Reviewed by Simon Fraser.
58104
58105         The check against creating composition layers for invisible fixed positioned
58106         elements is too aggressive in that it does not consider descendants of the
58107         fixed positioned element that may be visible even though the element itself is
58108         out of view.
58109
58110         Fix the problem by calculating the true composited bounds of the fixed
58111         element instead of just using the size of the fixed layer. Because calculating
58112         the true bounds may be expensive, it is only done if the fixed layer itself is
58113         invisible.
58114
58115         Test: compositing/layer-creation/fixed-position-absolute-descendant.html
58116
58117         * rendering/RenderLayerCompositor.cpp:
58118         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
58119         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
58120         * rendering/RenderLayerCompositor.h:
58121
58122 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58123
58124         Web Inspector: When uiSourceCode content has diverged from VM script, call frames should be shown in temporary script based uiSourceCodes.
58125         https://bugs.webkit.org/show_bug.cgi?id=98385
58126
58127         Reviewed by Pavel Feldman.
58128
58129         When javaScriptSource diverges from VM, ResourceScriptMapping now switches debugging
58130         to temporary VM scripts based uiSourceCode with isDivergedReplacement property set.
58131         Added hasDivergedFromVM and isDivergingFromVM properties to JavaScriptSource.
58132         JavaScriptSourceFrame and ScriptSnippetsModel are updated to process breakpoint changes correctly.
58133
58134         * inspector/front-end/BreakpointManager.js:
58135         (WebInspector.BreakpointManager.prototype.restoreBreakpoints):
58136         (WebInspector.BreakpointManager.prototype._uiSourceCodeRemoved):
58137         * inspector/front-end/JavaScriptSource.js:
58138         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted):
58139         (WebInspector.JavaScriptSource.prototype.workingCopyChanged):
58140         (WebInspector.JavaScriptSource.prototype.fireHasDivergedFromVMChanged):
58141         * inspector/front-end/JavaScriptSourceFrame.js:
58142         (WebInspector.JavaScriptSourceFrame.prototype.commitEditing):
58143         (WebInspector.JavaScriptSourceFrame.prototype._hasDivergedFromVM):
58144         (WebInspector.JavaScriptSourceFrame.prototype.onTextChanged):
58145         (WebInspector.JavaScriptSourceFrame.prototype._getBreakpointDecorations):
58146         (WebInspector.JavaScriptSourceFrame.prototype._muteBreakpointsWhileEditing):
58147         (WebInspector.JavaScriptSourceFrame.prototype._didEditContent):
58148         (WebInspector.JavaScriptSourceFrame.prototype._restoreBreakpointsAfterEditing):
58149         (WebInspector.JavaScriptSourceFrame.prototype._addBreakpointDecoration):
58150         * inspector/front-end/ResourceScriptMapping.js:
58151         (WebInspector.ResourceScriptMapping.prototype.rawLocationToUILocation):
58152         (WebInspector.ResourceScriptMapping.prototype._hasDivergedFromVMChanged):
58153         (WebInspector.ResourceScriptMapping.prototype._bindUISourceCodeToScripts):
58154         (WebInspector.ResourceScriptMapping.prototype._getOrCreateTemporaryUISourceCode):
58155         * inspector/front-end/ScriptSnippetModel.js:
58156         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58157         (WebInspector.ScriptSnippetModel.prototype._restoreBreakpoints):
58158         * inspector/front-end/ScriptsPanel.js:
58159         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58160         * inspector/front-end/UISourceCode.js:
58161         (WebInspector.UISourceCode.prototype.formatted):
58162
58163 2012-10-04  Vsevolod Vlasov  <vsevik@chromium.org>
58164
58165         Web Inspector: Scripts panel should not automatically switch to snippet evaluation when previously evaluated snippet is edited.
58166         https://bugs.webkit.org/show_bug.cgi?id=98402
58167
58168         Reviewed by Pavel Feldman.
58169
58170         Scripts panel does not automatically switch to snippet evaluation when
58171         one edits previously evaluated snippet.
58172
58173         * inspector/front-end/ScriptSnippetModel.js:
58174         (WebInspector.ScriptSnippetModel.prototype._createUISourceCodeForScript):
58175         * inspector/front-end/ScriptsPanel.js:
58176         (WebInspector.ScriptsPanel.prototype._revealExecutionLine):
58177
58178 2012-10-04  Balazs Kelemen  <kbalazs@webkit.org>
58179
58180         Don't allow to disable compositing in forced compositing mode
58181         https://bugs.webkit.org/show_bug.cgi?id=98048
58182
58183         Reviewed by Jocelyn Turcotte.
58184
58185         Make forced compositing mode imply accelerated compositing. This will
58186         avoid unexpected situations for platforms that don't want to support
58187         the non-accelerated rendering path.
58188
58189         Covered by existing tests.
58190
58191         * WebCore.exp.in: Export Settings::setAcceleratedCompositingEnabled
58192         because it has been deinlined.
58193         * page/Settings.cpp:
58194         (WebCore::Settings::setAcceleratedCompositingEnabled):
58195         (WebCore::Settings::setForceCompositingMode):
58196         (WebCore):
58197         * page/Settings.h:
58198         (Settings):
58199         (WebCore::Settings::forceCompositingMode): Make it const as a side fix.
58200
58201 2012-10-04  Harald Alvestrand  <hta@google.com>
58202
58203         Change RTCPeerConnection GetStats to use Date timestamp format
58204         https://bugs.webkit.org/show_bug.cgi?id=98263
58205
58206         Reviewed by Yury Semikhatsky.
58207
58208         Tested by extension to RTCPeerConnection-stats test.
58209
58210         * Modules/mediastream/RTCStatsElement.cpp:
58211         (WebCore::RTCStatsElement::create):
58212         (WebCore::RTCStatsElement::RTCStatsElement):
58213         * Modules/mediastream/RTCStatsElement.h: long -> double
58214         (RTCStatsElement):
58215         (WebCore::RTCStatsElement::timestamp):
58216         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58217         * Modules/mediastream/RTCStatsReport.cpp:
58218         (WebCore::RTCStatsReport::addElement):
58219         * Modules/mediastream/RTCStatsReport.h:
58220         (RTCStatsReport):
58221         * Modules/mediastream/RTCStatsResponse.cpp:
58222         (WebCore::RTCStatsResponse::addElement):
58223         * Modules/mediastream/RTCStatsResponse.h:
58224         (RTCStatsResponse):
58225         * platform/chromium/support/WebRTCStatsResponse.cpp:
58226         (WebKit::WebRTCStatsResponse::addElement):
58227         * platform/mediastream/RTCStatsResponseBase.h:
58228         (RTCStatsResponseBase):
58229
58230 2012-10-04  Sheriff Bot  <webkit.review.bot@gmail.com>
58231
58232         Unreviewed, rolling out r130377.
58233         http://trac.webkit.org/changeset/130377
58234         https://bugs.webkit.org/show_bug.cgi?id=98392
58235
58236         Chromium Win compilation is broken (Requested by yurys on
58237         #webkit).
58238
58239         * Modules/mediastream/RTCStatsElement.cpp:
58240         (WebCore::RTCStatsElement::create):
58241         (WebCore::RTCStatsElement::RTCStatsElement):
58242         * Modules/mediastream/RTCStatsElement.h:
58243         (RTCStatsElement):
58244         (WebCore::RTCStatsElement::timestamp):
58245         * Modules/mediastream/RTCStatsElement.idl:
58246         * Modules/mediastream/RTCStatsReport.cpp:
58247         (WebCore::RTCStatsReport::addElement):
58248         * Modules/mediastream/RTCStatsReport.h:
58249         (RTCStatsReport):
58250         * Modules/mediastream/RTCStatsResponse.cpp:
58251         (WebCore::RTCStatsResponse::addElement):
58252         * Modules/mediastream/RTCStatsResponse.h:
58253         (RTCStatsResponse):
58254         * platform/chromium/support/WebRTCStatsResponse.cpp:
58255         (WebKit::WebRTCStatsResponse::addElement):
58256         * platform/mediastream/RTCStatsResponseBase.h:
58257         (RTCStatsResponseBase):
58258
58259 2012-10-04  Harald Alvestrand  <hta@google.com>
58260
58261         Change RTCPeerConnection GetStats to use Date timestamp format
58262         https://bugs.webkit.org/show_bug.cgi?id=98263
58263
58264         Reviewed by Adam Barth.
58265
58266         Tested by extension to RTCPeerConnection-stats test.
58267
58268         * Modules/mediastream/RTCStatsElement.cpp:
58269         (WebCore::RTCStatsElement::create):
58270         (WebCore::RTCStatsElement::RTCStatsElement):
58271         * Modules/mediastream/RTCStatsElement.h: long -> double
58272         (RTCStatsElement):
58273         (WebCore::RTCStatsElement::timestamp):
58274         * Modules/mediastream/RTCStatsElement.idl: long -> Date
58275         * Modules/mediastream/RTCStatsReport.cpp:
58276         (WebCore::RTCStatsReport::addElement):
58277         * Modules/mediastream/RTCStatsReport.h:
58278         (RTCStatsReport):
58279         * Modules/mediastream/RTCStatsResponse.cpp:
58280         (WebCore::RTCStatsResponse::addElement):
58281         * Modules/mediastream/RTCStatsResponse.h:
58282         (RTCStatsResponse):
58283         * platform/chromium/support/WebRTCStatsResponse.cpp:
58284         (WebKit::WebRTCStatsResponse::addElement):
58285         * platform/mediastream/RTCStatsResponseBase.h:
58286         (RTCStatsResponseBase):
58287
58288 2012-10-05  Kent Tamura  <tkent@chromium.org>
58289
58290         [Chromium] Enable the multiple fields UI for input[type=date]
58291         https://bugs.webkit.org/show_bug.cgi?id=98351
58292
58293         Reviewed by Hajime Morita.
58294
58295         Touch files related to ENABLE_INPUT_TYPE_DATE_LEGACY_UI to avoid build
58296         issues.
58297
58298         No new tests. Many tests will be landed shortly.
58299
58300         * html/DateInputType.cpp:
58301         * html/DateInputType.h:
58302
58303 2012-10-04  Kent Tamura  <tkent@chromium.org>
58304
58305         Add code for input[type=date] with the multiple fields UI
58306         https://bugs.webkit.org/show_bug.cgi?id=98340
58307
58308         Reviewed by Hajime Morita.
58309
58310         The new code is available if !ENABLE(INPUT_TYPE_DATE_LEGACY_UI). At this
58311         moment, there are no platforms enabling the new code. We're going to
58312         enable it soon on desktop Chromium, and add tests. Then we're going to
58313         remove the code for ENABLE(INPUT_TYPE_DATE_LEGACY_UI).
58314
58315         ENABLE(INPUT_TYPE_DATE_LEGACY_UI) means the current UI; input[type=date]
58316         is represetnted as a kind of text field, and it has code to invoke a
58317         calendar picker.
58318         ENABLE(CALENDAR_PICKER) was used wrongly. It meant calendar picker
58319         support + text field UI of input[type=date]. Now it means only calendar
58320         picker support.
58321
58322         * html/DateInputType.h:
58323         (WebCore): If ENABLE(INPUT_MULTIPLE_FIELDS_UI) &&
58324         !ENABLE(INPUT_TYPE_DATE_LEGACY_UI), change the base class to the class
58325         for multiple fields UI.
58326         (DateInputType): Wrap the code for text fields behavior and calendar
58327         picker UI with ENABLE(INPUT_TYPE_DATE_LEGACY_UI). Add functions for
58328         ENABLE(INPUT_MULTIPLE_FIELDS_UI)
58329         * html/DateInputType.cpp:
58330         (WebCore::DateInputType::DateInputType):
58331         Change the flag name; CALENDAR_PICKER -> INPUT_TYPE_DATE_LEGACY_UI
58332         (WebCore): ditto.
58333         (WebCore::DateInputType::formatDateTimeFieldsState):
58334         A callback for multiple fields UI. This constructs a string value from
58335         each of values of multiple fields.
58336         Note that we don't need to do +1 to month().
58337         (WebCore::DateInputType::setupLayoutParameters):
58338         A callback for multiple fields UI. Passes information to build UI.
58339
58340         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58341         (BaseMultipleFieldsDateAndTimeInputType):
58342         Add m_pickerIndicatorIsAlwaysVisible member, wrap some members with flags.
58343         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58344         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
58345         Initialize m_pickerIndicatorIsAlwaysVisible.
58346         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree):
58347         If a type supports calendar picker, we should always show the picker
58348         indicator. We introduce m_pickerIndicatorIsAlwaysVisible flag, and ask
58349         RenderTheme for support status of each of types.
58350         Add a local variable 'document' to avoid multiple element()->document().
58351         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility):
58352         - If m_pickerIndicatorIsAlwaysVisible, don't hide the picker indicator element.
58353         - Wrap the code with appropriate flags.
58354
58355         * rendering/RenderTheme.h:
58356         (WebCore::RenderTheme::supportsCalendarPicker): Added.
58357         * rendering/RenderThemeChromiumMac.h: Override supportsCalendarPicker.
58358         * rendering/RenderThemeChromiumMac.mm:
58359         (WebCore::RenderThemeChromiumMac::supportsCalendarPicker):
58360         Added. Delegate to RenderThemeChromiumCommon.
58361         * rendering/RenderThemeChromiumSkia.h: Override supportsCalendarPicker.
58362         * rendering/RenderThemeChromiumSkia.cpp:
58363         (WebCore::RenderThemeChromiumSkia::supportsCalendarPicker):
58364         Added. Delegate to RenderThemeChromiumCommon.
58365         * rendering/RenderThemeChromiumCommon.h:
58366         (RenderThemeChromiumCommon): Declare supportsCalendarPicker.
58367         * rendering/RenderThemeChromiumCommon.cpp:
58368         (WebCore::RenderThemeChromiumCommon::supportsCalendarPicker):
58369         Returns true if the type is "date."
58370
58371         * html/DateTimeFieldsState.h:
58372         (DateTimeFieldsState): Add a comment for the m_month field.
58373
58374 2012-10-04  Kent Tamura  <tkent@chromium.org>
58375
58376         DateTimeYearFieldElement should respect min/max values specified by page authors
58377         https://bugs.webkit.org/show_bug.cgi?id=98227
58378
58379         Reviewed by Hajime Morita.
58380
58381         Before this patch, we always set 1 to the minimum limit and 275760 to
58382         the maximum limit for a year field, and a user can specify any year
58383         regardless of min/max attributes. Such wide range is unnecessary for
58384         normal applications and we should provide a way to limit the range.
58385
58386         Test: fast/forms/month-multiple-fields/month-multiple-fields-keyboard-events.html
58387
58388         * html/shadow/DateTimeFieldElements.h:
58389         To add four constructor arguments, introduce Parameters struct.
58390         Actually, we add the followings;
58391          - minimum year in UI
58392          - maximum year in UI
58393          - min attribute is specified
58394          - max attribute is specified
58395         (Parameters):
58396         (WebCore::DateTimeYearFieldElement::Parameters::Parameters):
58397         (DateTimeYearFieldElement):
58398         * html/shadow/DateTimeFieldElements.cpp:
58399         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement): ditto.
58400         (WebCore::DateTimeYearFieldElement::create): ditto.
58401         (WebCore::DateTimeYearFieldElement::clampValueForHardLimits):
58402         Override DateTimeNumericFieldElement::clampValueForHardLimits.
58403         By this, we allow to set out-of-range year values.
58404         (WebCore::currentFullYear): A helper to get the current year.
58405         (WebCore::DateTimeYearFieldElement::defaultValueForStepDown):
58406         If the field has no value and step down operation occurs,
58407          - the field has the current year if the max attribute is not specified.
58408          - the field has the maximum value otherwise.
58409         (WebCore::DateTimeYearFieldElement::defaultValueForStepUp): Similar change.
58410
58411         * html/shadow/DateTimeNumericFieldElement.h:
58412         (DateTimeNumericFieldElement): Declare clampValueForHardLimits.
58413         * html/shadow/DateTimeNumericFieldElement.cpp:
58414         (WebCore::DateTimeNumericFieldElement::clampValueForHardLimits):
58415         (WebCore::DateTimeNumericFieldElement::setValueAsInteger):
58416         Call clampValueForHardLimits instead of clampValue in order to
58417         distinguish limits for UI and limits for internal value update.
58418
58419         * html/shadow/DateTimeEditElement.h:
58420         (LayoutParameters): Add minimumYear and maximumYear members.
58421         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58422         Initialize minimumYear and maximumYear.
58423         (WebCore::DateTimeEditElement::LayoutParameters::undefinedYear):
58424         Represents 'undefined' value for minimumYear and maximumYear.
58425         * html/shadow/DateTimeEditElement.cpp:
58426         (WebCore::DateTimeEditBuilder::visitField):
58427         Preparas DateTimeYearField::Parameters and pass it to the DateTimeYearField factory.
58428
58429         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58430         (WebCore::BaseMultipleFieldsDateAndTimeInputType::fullYear):
58431         A helper to get a year value from an attribute value string.
58432         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58433         (BaseMultipleFieldsDateAndTimeInputType): Add fullYear().
58434
58435         * html/DateTimeInputType.cpp:
58436         (WebCore::DateTimeInputType::setupLayoutParameters):
58437         Set LayoutParameters::minimumYear and maximumYear.
58438         * html/DateTimeLocalInputType.cpp:
58439         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
58440         * html/MonthInputType.cpp:
58441         (WebCore::MonthInputType::setupLayoutParameters): ditto.
58442         * html/WeekInputType.cpp:
58443         (WebCore::WeekInputType::setupLayoutParameters): ditto.
58444
58445 2012-10-03  Adam Barth  <abarth@webkit.org>
58446
58447         Unreviewed. Fix parse error in vcproj file.
58448
58449         * WebCore.vcproj/WebCore.vcproj:
58450
58451 2012-10-03  Keishi Hattori  <keishi@webkit.org>
58452
58453         Implement localizeValue for TimeInputType
58454         https://bugs.webkit.org/show_bug.cgi?id=98237
58455
58456         Reviewed by Kent Tamura.
58457
58458         We want to localize time values for the suggestion picker.
58459         DateTimeStringBuilder parses a format and creates a formatted string.
58460
58461         Added chromium unit test LocaleMacTest.formatTime
58462
58463         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
58464         (WebCore::BaseMultipleFieldsDateAndTimeInputType::shouldHaveSecondField): Moved from LayoutParameters because we want to use it inside localizeValue.
58465         (WebCore):
58466         * html/BaseMultipleFieldsDateAndTimeInputType.h:
58467         (BaseMultipleFieldsDateAndTimeInputType):
58468         * html/DateTimeInputType.cpp:
58469         (WebCore::DateTimeInputType::setupLayoutParameters):
58470         * html/DateTimeLocalInputType.cpp:
58471         (WebCore::DateTimeLocalInputType::setupLayoutParameters):
58472         * html/TimeInputType.cpp:
58473         (WebCore::TimeInputType::localizeValue):
58474         (WebCore):
58475         (WebCore::TimeInputType::setupLayoutParameters):
58476         * html/TimeInputType.h:
58477         (TimeInputType):
58478         * html/shadow/DateTimeEditElement.cpp:
58479         (WebCore):
58480         * html/shadow/DateTimeEditElement.h:
58481         (WebCore::DateTimeEditElement::LayoutParameters::LayoutParameters):
58482         * platform/text/LocaleICU.cpp:
58483         (WebCore::LocaleICU::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58484         * platform/text/LocaleICU.h:
58485         (LocaleICU):
58486         * platform/text/LocaleWin.cpp:
58487         (WebCore::LocaleWin::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58488         * platform/text/LocaleWin.h:
58489         (LocaleWin):
58490         * platform/text/LocaleNone.cpp:
58491         (LocaleNone):
58492         (WebCore::LocaleNone::formatDateTime):
58493         * platform/text/Localizer.cpp:
58494         (DateTimeStringBuilder):
58495         (WebCore):
58496         (WebCore::DateTimeStringBuilder::DateTimeStringBuilder): Takes a
58497         Localizer pointer. This is used inside the Localizer so the Localizer
58498         will out live the DateTimeStringBuilder.
58499         (WebCore::DateTimeStringBuilder::build): Builds a localized string for the given format.
58500         (WebCore::DateTimeStringBuilder::zeroPadString):
58501         (WebCore::DateTimeStringBuilder::appendNumber): Appends a number with left zero padding to match width.
58502         (WebCore::DateTimeStringBuilder::visitField):
58503         (WebCore::DateTimeStringBuilder::visitLiteral):
58504         (WebCore::DateTimeStringBuilder::toString): Returns the localized string.
58505         (WebCore::Localizer::formatDateTime):
58506         * platform/text/Localizer.h:
58507         * platform/text/mac/LocaleMac.h:
58508         (LocaleMac):
58509         * platform/text/mac/LocaleMac.mm:
58510         (WebCore::LocaleMac::formatDateTime): Calls Localizer::formatDateTime if the date component is not a date.
58511
58512 2012-10-03  Douglas Stockwell  <dstockwell@chromium.org>
58513
58514         Chromium needs support for border radius clipping
58515         https://bugs.webkit.org/show_bug.cgi?id=69866
58516
58517         Reviewed by Stephen White.
58518
58519         Changes to make this suitably efficient have already landed upstream in skia:
58520         http://code.google.com/p/skia/source/detail?r=2924
58521
58522         Covered by existing tests.
58523
58524         * rendering/RenderLayer.cpp:
58525
58526 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58527
58528         Simplify attribute access in Element::computeInheritedLanguage
58529         https://bugs.webkit.org/show_bug.cgi?id=98327
58530
58531         Reviewed by Andreas Kling.
58532
58533         * dom/Element.cpp:
58534         (WebCore::Element::computeInheritedLanguage):
58535         By using Element::fastGetAttribute(), we check for the existence of attributeData twice
58536         and do a bunch of useless operation on AtomicString.
58537
58538         By using ElementAttributeData directly, we can cut it to the two important branch.
58539
58540 2012-10-03  Kangil Han  <kangil.han@samsung.com>
58541
58542         Fix unused parameter compile warnings.
58543         https://bugs.webkit.org/show_bug.cgi?id=98243
58544
58545         Reviewed by Alexey Proskuryakov.
58546
58547         Fixed unused parameter compile warning by removing parameter names and adding UNUSED_PARAM usage.
58548
58549         * plugins/PluginDebug.cpp:
58550         (WebCore::prettyNameForNPPVariable):
58551         * plugins/npapi.cpp:
58552         (NPN_MemFlush):
58553         (NPN_RequestRead):
58554         (NPN_GetJavaPeer):
58555
58556 2012-10-03  Adam Barth  <abarth@webkit.org>
58557
58558         Measure the usage of WebSQLDatabase
58559         https://bugs.webkit.org/show_bug.cgi?id=98330
58560
58561         Reviewed by Ojan Vafai.
58562
58563         WebKit is the only engine that implements WebSQLDatabase. This patch
58564         causes us to measure its usage so we can see how quickly web sites move
58565         to IndexedDB.
58566
58567         * Modules/webdatabase/DOMWindowWebDatabase.idl:
58568         * page/FeatureObserver.h:
58569
58570 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58571
58572         [soup] WebKit crashes when doing a http request
58573         https://bugs.webkit.org/show_bug.cgi?id=98055
58574
58575         Reviewed by Martin Robinson.
58576
58577         On i386, (d->m_firstRequest.timeoutInterval() * 1000) results in 0 if
58578         timeoutInterval() is INT_MAX. So, set default timeout to 0 to avoid
58579         calling soup_add_timeout with a 0 value.
58580
58581         Also, if resource handle is deleted before "request-started" signal is
58582         emitted, soupMessage handle points to a deleted object, and a crash
58583         occurs. So, reset soupMessage handle data in
58584         cleanupSoupRequestOperation so it won't happen anymore.
58585
58586         Lastly, if timeout occurs before request is completed, handle is
58587         deleted, and crash occurs in sendRequestCallback due to an early
58588         destroyed handle. To avoid that, call handle->cancel in
58589         requestTimeoutCallback. There is no need to call
58590         cleanupSoupRequestOperation anymore since handle->cancel will trigger
58591         sendRequestCallback, and as handle is deleted,
58592         cleanupSoupRequestOperation will be called automatically.
58593
58594         No new tests yet, tests will be added with the patch in bug 74802.
58595
58596         * platform/network/ResourceRequestBase.cpp:
58597         (WebCore):
58598         * platform/network/soup/ResourceHandleSoup.cpp:
58599         (WebCore::cleanupSoupRequestOperation):
58600         (WebCore::ResourceHandle::platformSetDefersLoading):
58601         (WebCore::requestTimeoutCallback):
58602
58603 2012-10-03  Adam Barth  <abarth@webkit.org>
58604
58605         Remove support for ENABLE(LEGACY_WEBKIT_BLOB_BUILDER)
58606         https://bugs.webkit.org/show_bug.cgi?id=98301
58607
58608         Reviewed by Eric Seidel.
58609
58610         According to anonymous usage statistics, the APIs guarded by
58611         ENABLE(LEGACY_WEBKIT_BLOB_BUILDER) are used on approximately 0.006% of
58612         web pages. Given that this feature is only enabled in GTK and Chromium,
58613         it seems likely that we should remove it.
58614
58615         * CMakeLists.txt:
58616         * DerivedSources.make:
58617         * DerivedSources.pri:
58618         * GNUmakefile.features.am:
58619         * GNUmakefile.list.am:
58620         * WebCore.gypi:
58621         * WebCore.xcodeproj/project.pbxproj:
58622         * fileapi/WebKitBlobBuilder.idl: Removed.
58623         * page/DOMWindow.idl:
58624
58625 2012-10-03  Beth Dakin  <bdakin@apple.com>
58626
58627         https://bugs.webkit.org/show_bug.cgi?id=98313
58628         ScrollingStateNode should keep a Vector of children instead of child 
58629         pointers
58630
58631         Reviewed by Simon Fraser.
58632
58633         This patch re-names ScrollingStateNode::cloneNode() to 
58634         ScrollingStateNode::cloneAndResetNode(). The new function resets the 
58635         change properties of the current node after cloning it, and it also 
58636         takes care of cloning children, which the old function did not do.
58637
58638         m_firstChild and m_nextSibling are gone. Use the m_children Vector 
58639         instead.
58640         * page/scrolling/ScrollingStateNode.cpp:
58641         (WebCore::ScrollingStateNode::cloneAndResetChildNodes):
58642         (WebCore::ScrollingStateNode::appendChild):
58643         * page/scrolling/ScrollingStateNode.h:
58644         (ScrollingStateNode):
58645         (WebCore::ScrollingStateNode::parent):
58646         (WebCore::ScrollingStateNode::setParent):
58647
58648         Reset the change properties and clone children in cloneAndResetNode()
58649         * page/scrolling/ScrollingStateScrollingNode.cpp:
58650         (WebCore::ScrollingStateScrollingNode::cloneAndResetNode):
58651         * page/scrolling/ScrollingStateScrollingNode.h:
58652
58653         Yay, this function can be vastly simplified now that we don't have 
58654         those messy child and sibling pointers.
58655         * page/scrolling/ScrollingStateTree.cpp:
58656         (WebCore::ScrollingStateTree::commit):
58657
58658 2012-10-03  Ojan Vafai  <ojan@chromium.org>
58659
58660         Replace uses of -webkit-box-sizing with box-sizing
58661         https://bugs.webkit.org/show_bug.cgi?id=98312
58662
58663         Reviewed by Tony Chang.
58664
58665         No need to use the prefixed version when the unprefixed works the same.
58666         No new tests since there's no change in behavior..
58667
58668         * css/html.css:
58669
58670 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58671
58672         IndexedDB: Don't do full commit for empty transactions
58673         https://bugs.webkit.org/show_bug.cgi?id=89239
58674
58675         Reviewed by Tony Chang.
58676
58677         Don't bother creating a leveldb write batch if there's nothing in the transaction
58678         to commit. Note that a read-only transaction may still have index cleanup so may
58679         not be an empty transaction.
58680
58681         This cuts the Lookup2 benchmark in http://reyesr.github.com/html5-storage-benchmark/
58682         from 70s to 2s.
58683
58684         Covered by existing tests, e.g. storage/indexeddb/transaction-basics.html
58685
58686         * platform/leveldb/LevelDBTransaction.cpp:
58687         (WebCore::LevelDBTransaction::commit):
58688
58689 2012-10-03  Adam Klein  <adamk@chromium.org>
58690
58691         Remove bogus FIXME from Document.idl
58692         https://bugs.webkit.org/show_bug.cgi?id=98302
58693
58694         Reviewed by Adam Barth.
58695
58696         The FIXME claimed that document.body throwing an exception was not
58697         specced, but in fact it is:
58698         http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#dom-document-body
58699
58700         * dom/Document.idl:
58701
58702 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58703
58704         IndexedDB: Memory leak when deleting object stores with indexes
58705         https://bugs.webkit.org/show_bug.cgi?id=98292
58706
58707         Reviewed by Tony Chang.
58708
58709         Reference cycles between IDBObjectStore and IDBIndex instances are explicitly
58710         broken when the transaction completes (and the spec allows traversal to fail).
58711         Deleted stores need to have the reference cycle broken too.
58712
58713         Caught by running valgrind over: storage/indexeddb/keypath-basics.html
58714
58715         * Modules/indexeddb/IDBTransaction.cpp:
58716         (WebCore::IDBTransaction::objectStoreDeleted): Add store to set.
58717         (WebCore::IDBTransaction::dispatchEvent): Notify stores in set.
58718         * Modules/indexeddb/IDBTransaction.h: Add set of deleted stores.
58719
58720 2012-10-03  Adam Barth  <abarth@webkit.org>
58721
58722         CSSNamespace.h is empty and should be deleted
58723         https://bugs.webkit.org/show_bug.cgi?id=98304
58724
58725         Reviewed by Eric Seidel.
58726
58727         There's no reason to have this file in the repository.
58728
58729         * GNUmakefile.list.am:
58730         * WebCore.gypi:
58731         * WebCore.vcproj/WebCore.vcproj:
58732         * WebCore.xcodeproj/project.pbxproj:
58733         * css/CSSNamespace.h: Removed.
58734
58735 2012-10-03  Arnaud Renevier  <a.renevier@sisa.samsung.com>
58736
58737         Build failure with css filters enabled and accelerated compositing disabled
58738         https://bugs.webkit.org/show_bug.cgi?id=95908
58739
58740         Reviewed by Tony Chang.
58741
58742         Do not try to setBackingNeedsRepaint when building without accelerated
58743         compositing.
58744
58745         Also, allow painting with filter (paintsWithFilters returns true if
58746         renderer has filter) when accelerated compositing is not enabled.
58747
58748         No functional change, so no new tests.
58749
58750         * rendering/RenderLayer.cpp:
58751         (WebCore::RenderLayer::styleChanged):
58752
58753 2012-10-03  Emil A Eklund  <eae@chromium.org>
58754
58755         Round image sizes when zooming
58756         https://bugs.webkit.org/show_bug.cgi?id=98205
58757
58758         Reviewed by Eric Seidel.
58759
58760         We currently floor image sizes when zooming which can result in
58761         images being rendered at one pixel less than the actual size.
58762         This is especially likely to happen for very large images.
58763
58764         Test: fast/sub-pixel/zoomed-image-tiles.html
58765
58766         * loader/cache/CachedImage.cpp:
58767         (WebCore::CachedImage::imageSizeForRenderer):
58768
58769 2012-10-03  Hugo Parente Lima  <hugo.lima@openbossa.org>
58770
58771         [WK2] PageViewportController.cpp is supposed to be a generic WebKit2 file but only works with Qt port.
58772         https://bugs.webkit.org/show_bug.cgi?id=98186
58773
58774         Reviewed by Noam Rosenthal.
58775
58776         Remove the implicit conversion from WebCore::FloatSize to QSize.
58777
58778         * platform/graphics/FloatSize.h:
58779         (FloatSize):
58780
58781 2012-10-03  Levi Weintraub  <leviw@chromium.org>
58782
58783         [Sub-pixel layout] incorrect rendering when painting sub-layers as their own root
58784         https://bugs.webkit.org/show_bug.cgi?id=97484
58785
58786         Reviewed by Eric Seidel.
58787
58788         When in compositing mode, layer painting can be triggered through the backing store. When this
58789         happens, a non-top-level RenderLayer is called to paint as its own root. Normally, we attempt to preserve
58790         the proper sub-pixel accumulation through layers to their children, but since we're not
58791         starting with the top-level layer, we haven't properly accumulated one, and convertToLayerCoords,
58792         another source of correctly getting the sub-pixel offset for a layer, also avoids crawling
58793         past the listed root layer.
58794
58795         When painting a root layer, we're aligned to the surface we're painting to, so we round our
58796         offset to avoid moving objects around.
58797
58798         * rendering/RenderLayer.cpp:
58799         (WebCore::RenderLayer::paintLayerContents):
58800
58801 2012-10-03  Jeff Timanus  <twiz@chromium.org>
58802
58803         [chromium] Expose settings value to conditionally enable pinch-zoom scaling in the Chromium compositor.  The
58804         flag defaults to disabled, so this change should be a no-op for scaling/scrolling behaviour.
58805         https://bugs.webkit.org/show_bug.cgi?id=93292
58806
58807         Reviewed by James Robinson.
58808
58809         Tests:  Existing page-scale layout tests.
58810
58811         * page/Frame.cpp:
58812         (WebCore::Frame::frameScaleFactor):
58813         * page/Settings.cpp:
58814         (WebCore::Settings::Settings):
58815         * page/Settings.h:
58816         (WebCore::Settings::setApplyPageScaleFactorInCompositor):
58817         (WebCore::Settings::applyPageScaleFactorInCompositor):
58818         (Settings):
58819
58820 2012-10-03  Stephen Chenney  <schenney@chromium.org>
58821
58822         Font data is purged while fonts are still using it
58823         https://bugs.webkit.org/show_bug.cgi?id=93640
58824
58825         Reviewed by Eric Seidel.
58826
58827         Move the handling of custom font pruning from Document to FontFallbackList.
58828         The previous inplementation allowed fonts to be removed before all their
58829         clients were done. This change moves handling of custom font purging to the
58830         FontFallbackList class, which is the shared object that is only removed
58831         when all clients of a font are done with it. This fixes a crash in Angry
58832         Birds due to a seamless iframe and some failing tests in fast/frames/seamless.
58833
58834         The specific element that causes problems is:
58835         <iframe id="ingame_frame0" name="ingame_frame0" frameborder="0" seamless="true"
58836           src="http://chrome.angrybirds.com/ingame_graphic.html"
58837           onload="this.style.opacity = 1; parent.adLoaded();" scrolling="no"
58838           style="opacity: 1; -webkit-transition: opacity 1s ease-in-out 0s;
58839           position: absolute; border: 0px; width: 312px; height: 320px; z-index:
58840           300; overflow: hidden; visibility: visible;"></iframe>
58841         The source document uses the same font as the embedding document.
58842
58843         Tests: fast/frames/seamless/seamless-custom-font-pruning-crash.html
58844                fast/frames/seamless/seamless-nested-crash.html
58845
58846         * css/CSSFontFaceSource.cpp:
58847         (WebCore::CSSFontFaceSource::getFontData): Remove code to register the font with the document.
58848         * css/CSSSegmentedFontFace.cpp:
58849         (WebCore::CSSSegmentedFontFace::getFontData): Remove code to register the font with the document.
58850         * dom/Document.cpp:
58851         (WebCore::Document::~Document): Remove code that records and purges custom fonts.
58852         (WebCore):
58853         (WebCore::Document::reportMemoryUsage): Remove reference to non-existent objects.
58854         * dom/Document.h:
58855         (WebCore):
58856         (Document): Remove method declarations for custom font handling.
58857         * platform/graphics/FontFallbackList.h:
58858         (FontFallbackList): Moved some code around and made non-copyable.
58859         (WebCore::FontFallbackList::setGlyphPageZero): Moved.
58860         (WebCore::FontFallbackList::setGlyphPages): Moved.
58861         * platform/graphics/GlyphPageTreeNode.cpp:
58862         (WebCore::GlyphPageTreeNode::pruneFontData): Removed unnecessary null check.
58863         * platform/graphics/SegmentedFontData.cpp:
58864         (WebCore::SegmentedFontData::~SegmentedFontData): Added code to prune the Glyph pages when this is deleted.
58865         * platform/graphics/SimpleFontData.cpp:
58866         (WebCore::SimpleFontData::~SimpleFontData): Added code to prune the Glyph pages when this is deleted.
58867
58868 2012-10-03  Adam Barth  <abarth@webkit.org>
58869
58870         Crash when calling document.open during unload
58871         https://bugs.webkit.org/show_bug.cgi?id=98287
58872
58873         Reviewed by Nate Chapin.
58874
58875         Calling document.open results in us nulling out m_documentLoader. This
58876         code doesn't properly handle that case and crashes.
58877
58878         Test: fast/parser/document-open-in-unload.html
58879
58880         * loader/FrameLoader.cpp:
58881         (WebCore::FrameLoader::commitProvisionalLoad):
58882
58883 2012-10-03  Benjamin Poulain  <bpoulain@apple.com>
58884
58885         Element::computeInheritedLanguage: evaluate the while() condition after fetching the string
58886         https://bugs.webkit.org/show_bug.cgi?id=98220
58887
58888         Reviewed by Andreas Kling.
58889
58890         * dom/Element.cpp:
58891         (WebCore::Element::computeInheritedLanguage):
58892         The condition is never false on the first execution. Move the condition to the
58893         end of the loop for fun and profit.
58894
58895 2012-10-03  Hans Wennborg  <hans@chromium.org>
58896
58897         Speech JavaScript API: Add SpeechRecognition.interimResults attribute
58898         https://bugs.webkit.org/show_bug.cgi?id=98279
58899
58900         Reviewed by Adam Barth.
58901
58902         Add the interimResults attribute and pass it to the embedder. It was
58903         added to the spec draft in
58904         http://dvcs.w3.org/hg/speech-api/rev/d25fea0d029c
58905
58906         Tested in fast/speech/scripted/basics.html
58907
58908         * Modules/speech/SpeechRecognition.cpp:
58909         (WebCore::SpeechRecognition::start):
58910         (WebCore::SpeechRecognition::SpeechRecognition):
58911         * Modules/speech/SpeechRecognition.h:
58912         (WebCore::SpeechRecognition::interimResults):
58913         (WebCore::SpeechRecognition::setInterimResults):
58914         * Modules/speech/SpeechRecognition.idl:
58915         * Modules/speech/SpeechRecognitionClient.h:
58916         (SpeechRecognitionClient):
58917         * Modules/speech/SpeechRecognitionController.h:
58918         (WebCore::SpeechRecognitionController::start):
58919
58920 2012-10-03  Hans Wennborg  <hans@chromium.org>
58921
58922         Speech JavaScript API: Remove resultdeleted event
58923         https://bugs.webkit.org/show_bug.cgi?id=98272
58924
58925         Reviewed by Adam Barth.
58926
58927         Remove the resultdeleted event. This was never used, and was removed
58928         from the spec draft in
58929         http://dvcs.w3.org/hg/speech-api/rev/f9d53ab8b449
58930
58931         The fast/speech/scripted/basics.html test is updated to reflect this.
58932
58933         * Modules/speech/SpeechRecognition.cpp:
58934         * Modules/speech/SpeechRecognition.h:
58935         (SpeechRecognition):
58936         * Modules/speech/SpeechRecognition.idl:
58937         * Modules/speech/SpeechRecognitionEvent.cpp:
58938         * Modules/speech/SpeechRecognitionEvent.h:
58939         (SpeechRecognitionEvent):
58940         * dom/EventNames.h:
58941         (WebCore):
58942
58943 2012-09-16  Mark Hahnenberg  <mhahnenberg@apple.com>
58944
58945         Delayed structure sweep can leak structures without bound
58946         https://bugs.webkit.org/show_bug.cgi?id=96546
58947
58948         Reviewed by Geoffrey Garen.
58949
58950         This patch gets rid of the separate Structure allocator in the MarkedSpace and adds two new destructor-only
58951         allocators. We now have separate allocators for our three types of objects: those objects with no destructors,
58952         those objects with destructors and with immortal structures, and those objects with destructors that don't have 
58953         immortal structures. All of the objects of the third type (destructors without immortal structures) now 
58954         inherit from a new class named JSDestructibleObject (which in turn is a subclass of JSNonFinalObject), which stores 
58955         the ClassInfo for these classes at a fixed offset for safe retrieval during sweeping/destruction.
58956
58957         No new tests.
58958
58959         * ForwardingHeaders/runtime/JSDestructableObject.h: Added.
58960         * bindings/js/JSDOMWrapper.h: Inherits from JSDestructibleObject.
58961         (JSDOMWrapper):
58962         (WebCore::JSDOMWrapper::JSDOMWrapper):
58963         * bindings/scripts/CodeGeneratorJS.pm: Add finalizers to anything that inherits from JSGlobalObject,
58964         e.g. JSDOMWindow and JSWorkerContexts. For those classes we also need to define needsDestruction as true.
58965         (GenerateHeader):
58966         * bridge/objc/objc_runtime.h: Inherit from JSDestructibleObject.
58967         (ObjcFallbackObjectImp):
58968         * bridge/objc/objc_runtime.mm:
58969         (Bindings):
58970         (JSC::Bindings::ObjcFallbackObjectImp::ObjcFallbackObjectImp):
58971         * bridge/runtime_array.cpp: Use a finalizer so that JSArray isn't forced to inherit from JSDestructibleObject.
58972         (JSC):
58973         (JSC::RuntimeArray::destroy):
58974         * bridge/runtime_array.h:
58975         (JSC::RuntimeArray::create):
58976         (JSC):
58977         * bridge/runtime_object.cpp: Inherit from JSDestructibleObject.
58978         (Bindings):
58979         (JSC::Bindings::RuntimeObject::RuntimeObject):
58980         * bridge/runtime_object.h:
58981         (RuntimeObject):
58982
58983 2012-10-02  Anders Carlsson  <andersca@apple.com>
58984
58985         Change most GraphicsLayer::create calls to use the version that takes a GraphicsLayerFactory
58986         https://bugs.webkit.org/show_bug.cgi?id=98217
58987
58988         Reviewed by Andreas Kling.
58989
58990         * WebCore.exp.in:
58991         * rendering/RenderLayerBacking.cpp:
58992         (WebCore::RenderLayerBacking::createGraphicsLayer):
58993         * rendering/RenderLayerCompositor.cpp:
58994         (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
58995         (WebCore::RenderLayerCompositor::ensureRootLayer):
58996
58997 2012-10-03  Joshua Bell  <jsbell@chromium.org>
58998
58999         IndexedDB: Optimize encodeString/decodeString
59000         https://bugs.webkit.org/show_bug.cgi?id=97794
59001
59002         Reviewed by Tony Chang.
59003
59004         Optimize string encoding/decoding, which showed up as a CPU hot spot during profiling.
59005         The backing store uses big-endian ordering of 16-bit code unit strings, so a memcopy
59006         isn't sufficient, but the code used StringBuilder::append() character-by-character
59007         and custom byte-swapping which was slow.
59008
59009         Ran a test w/ DumpRenderTree (to avoid multiprocess overhead) taking a 10k character string
59010         and putting it 20k times and getting it 20k times. On my test box, mean time before the
59011         patch was 8.2s, mean time after the patch was 4.6s.
59012
59013         Tested by Chromium's webkit_unit_tests --gtest_filter='IDBLevelDBCodingTest.*String*'
59014
59015         * Modules/indexeddb/IDBLevelDBCoding.cpp:
59016         (WebCore::IDBLevelDBCoding::encodeString):
59017         (WebCore::IDBLevelDBCoding::decodeString):
59018
59019 2012-10-03  Keishi Hattori  <keishi@webkit.org>
59020
59021         Implement DataList UI for input type time on chromium
59022         https://bugs.webkit.org/show_bug.cgi?id=98240
59023
59024         Reviewed by Kent Tamura.
59025
59026         This adds datalist UI for input type time. We add the picker indicator to
59027         BaseMultipleFieldsDateAndTimeInputType. We enclose the dateTimeEdit element
59028         and picker indicator inside a new div element so we can position the picker
59029         indicator in the same place as input type=date.
59030
59031         Tests: platform/chromium/fast/forms/time/time-suggestion-picker-appearance-rtl.html
59032                platform/chromium/fast/forms/time/time-suggestion-picker-appearance-with-scroll-bar.html
59033                platform/chromium/fast/forms/time/time-suggestion-picker-appearance.html
59034                platform/chromium/fast/forms/time/time-suggestion-picker-key-operations.html
59035                platform/chromium/fast/forms/time/time-suggestion-picker-mouse-operations.html
59036
59037         * css/html.css:
59038         (input::-webkit-date-and-time-container):
59039         * html/BaseMultipleFieldsDateAndTimeInputType.cpp:
59040         (WebCore::BaseMultipleFieldsDateAndTimeInputType::BaseMultipleFieldsDateAndTimeInputType):
59041         (WebCore::BaseMultipleFieldsDateAndTimeInputType::createShadowSubtree): Creates a picker indicator.
59042         (WebCore::BaseMultipleFieldsDateAndTimeInputType::handleKeydownEvent): Open the picker on Alt+Down.
59043         (WebCore):
59044         (WebCore::BaseMultipleFieldsDateAndTimeInputType::listAttributeTargetChanged): Updates picker visibility.
59045         (WebCore::BaseMultipleFieldsDateAndTimeInputType::updatePickerIndicatorVisibility): In the future, DateInputType can override
59046         this so the picker indicator is always visible.
59047         (WebCore::BaseMultipleFieldsDateAndTimeInputType::hidePickerIndicator):
59048         (WebCore::BaseMultipleFieldsDateAndTimeInputType::showPickerIndicator):
59049         * html/BaseMultipleFieldsDateAndTimeInputType.h:
59050         (WebCore):
59051         (BaseMultipleFieldsDateAndTimeInputType):
59052         * html/shadow/DateTimeFieldElement.cpp:
59053         (WebCore::DateTimeFieldElement::defaultKeyboardEventHandler): Ignore Alt+down because it should trigger the picker to open.
59054         * rendering/RenderThemeChromiumCommon.cpp:
59055         (WebCore::RenderThemeChromiumCommon::supportsDataListUI): Add time to the list.
59056
59057 2012-10-03  Andreas Kling  <kling@webkit.org>
59058
59059         Give CSSValueList backing vector an inline capacity.
59060         <http://webkit.org/b/98266>
59061         <rdar://problem/12421425>
59062
59063         Reviewed by Anders Carlsson.
59064
59065         Set an inline capacity of 4 on the CSSValue vector backing CSSValueList. This avoids an extra heap allocation
59066         in the common case, and reduces total memory use across the board, since the majority of CSSValueLists have
59067         at least 1 item, and the Vector will bump from 0 to 16 capacity on the first append.
59068
59069         394kB progression on Membuster3.
59070
59071         * css/CSSValueList.h:
59072         (CSSValueList):
59073
59074 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59075
59076         Web Inspector: NMI: instrument NativeImageSkia.
59077         https://bugs.webkit.org/show_bug.cgi?id=96277
59078
59079         Reviewed by Yury Semikhatsky.
59080
59081         * platform/graphics/skia/NativeImageSkia.cpp:
59082         (WebCore::NativeImageSkia::reportMemoryUsage):
59083         (WebCore::reportMemoryUsage):
59084
59085 2012-10-03  Pavel Feldman  <pfeldman@chromium.org>
59086
59087         Web Inspector: remember the last dock option so that user could toggle between dock to bottom and right
59088         https://bugs.webkit.org/show_bug.cgi?id=98255
59089
59090         Reviewed by Vsevolod Vlasov.
59091
59092         - Introduced DockController.js that covers the dock mechanics
59093         - Removed dock orientation from the settings
59094         - Storing the last dock option to present it as default
59095         - Simplified the multi-option status bar button
59096
59097         * WebCore.gypi:
59098         * WebCore.vcproj/WebCore.vcproj:
59099         * inspector/compile-front-end.py:
59100         * inspector/front-end/DockController.js: Added.
59101         (WebInspector.DockController):
59102         (WebInspector.DockController.prototype.get element):
59103         (WebInspector.DockController.prototype.setDocked.set if):
59104         (WebInspector.DockController.prototype.setDocked):
59105         (WebInspector.DockController.prototype.setDockingUnavailable):
59106         (WebInspector.DockController.prototype._updateUI.get states):
59107         (WebInspector.DockController.prototype._updateUI):
59108         (WebInspector.DockController.prototype._decorateButtonForTargetState):
59109         (WebInspector.DockController.prototype._createDockOptions):
59110         (WebInspector.DockController.prototype._toggleDockState):
59111         (WebInspector.DockController.prototype.isCompactMode):
59112         (WebInspector.DockController.prototype.setCompactMode):
59113         * inspector/front-end/InspectorFrontendAPI.js:
59114         (InspectorFrontendAPI.setAttachedWindow):
59115         * inspector/front-end/InspectorFrontendHostStub.js:
59116         (.WebInspector.InspectorFrontendHostStub.prototype.requestAttachWindow):
59117         (.WebInspector.InspectorFrontendHostStub.prototype.requestDetachWindow):
59118         * inspector/front-end/Settings.js:
59119         * inspector/front-end/SettingsScreen.js:
59120         (WebInspector.GenericSettingsTab):
59121         * inspector/front-end/StatusBarButton.js:
59122         (WebInspector.StatusBarButton):
59123         * inspector/front-end/Toolbar.js:
59124         (WebInspector.Toolbar):
59125         (WebInspector.Toolbar.prototype.setCompactMode):
59126         (WebInspector.Toolbar.prototype._toolbarDragStart):
59127         (WebInspector.Toolbar.prototype._toolbarDrag):
59128         * inspector/front-end/WebKit.qrc:
59129         * inspector/front-end/externs.js:
59130         (WebInspector.toggleSearchingForNode):
59131         * inspector/front-end/inspector.css:
59132         (body.undocked.platform-mac-snowleopard #toolbar):
59133         (body.undocked.platform-mac-snowleopard #toolbar-dropdown):
59134         * inspector/front-end/inspector.html:
59135         * inspector/front-end/inspector.js:
59136         (WebInspector._createGlobalStatusBarItems):
59137         (windowLoaded):
59138         (WebInspector.setDockingUnavailable):
59139         * inspector/front-end/inspectorCommon.css:
59140         (body.dock-to-right:not(.undocked)):
59141         (body.dock-to-right.inactive:not(.undocked)):
59142
59143 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59144
59145         Web Inspector: UISourceCode commitWorkingCopy should not fail when original script had syntax error.
59146         https://bugs.webkit.org/show_bug.cgi?id=97272
59147
59148         Reviewed by Pavel Feldman.
59149
59150         This patch is based on patch by John J. Barton.
59151
59152         * inspector/front-end/JavaScriptSource.js:
59153         (WebInspector.JavaScriptSource.prototype.workingCopyCommitted): added rawLocation null check.
59154
59155 2012-10-03  Alexander Pavlov  <apavlov@chromium.org>
59156
59157         Web Inspector: After "Edit as HTML", any click outside box should stop editing
59158         https://bugs.webkit.org/show_bug.cgi?id=98258
59159
59160         Reviewed by Vsevolod Vlasov.
59161
59162         Make the DOM tree OL span the entire height of its container in the Elements panel to catch mouse events.
59163
59164         * inspector/front-end/elementsPanel.css:
59165         (#elements-content > ol):
59166
59167 2012-10-03  Dongwoo Joshua Im  <dw.im@samsung.com>
59168
59169         [EFL] Skeleton code of File system API.
59170         https://bugs.webkit.org/show_bug.cgi?id=91187
59171
59172         Reviewed by Gyuyoung Kim.
59173
59174         Add skeleton code of File System API on EFL port.
59175         Implementation patches will be created later.
59176
59177         No new tests because this is just skeleton code.
59178
59179         * CMakeLists.txt: Add new files which created by other patches in Modules/filesystem/ directory.
59180         * PlatformEfl.cmake: Add AsyncFileSystemEfl.cpp.
59181         * platform/AsyncFileSystem.cpp:
59182         (WebCore):
59183         * platform/efl/AsyncFileSystemEfl.cpp: Added.
59184         * platform/efl/AsyncFileSystemEfl.h: Added.
59185
59186 2012-10-03  Andreas Kling  <kling@webkit.org>
59187
59188         Shrink ElementRareData by moving bool flags to NodeRareData.
59189         <http://webkit.org/b/98225>
59190
59191         Reviewed by Antti Koivisto.
59192
59193         Move all bool flags from ElementRareData to the bitfield in its base class NodeRareData.
59194         This shrinks ElementRareData by 8 bytes (on 64-bit) and saves a whopping 58kB on Membuster3.
59195         Also removed some double raredata hash lookups.
59196
59197         * dom/Element.cpp:
59198         (WebCore::Element::detach):
59199         (WebCore::Element::recalcStyle):
59200         (WebCore::Element::ensureShadow):
59201         (WebCore::Element::setStyleAffectedByEmpty):
59202         (WebCore::Element::styleAffectedByEmpty):
59203         (WebCore::Element::setIsInCanvasSubtree):
59204         (WebCore::Element::isInCanvasSubtree):
59205         (WebCore::Element::containsFullScreenElement):
59206         (WebCore::Element::setContainsFullScreenElement):
59207         * dom/ElementRareData.h:
59208         (ElementRareData):
59209         (WebCore::ElementRareData::ElementRareData):
59210         * dom/NodeRareData.h:
59211         (WebCore::NodeRareData::styleAffectedByEmpty):
59212         (WebCore::NodeRareData::setStyleAffectedByEmpty):
59213         (WebCore::NodeRareData::isInCanvasSubtree):
59214         (WebCore::NodeRareData::setIsInCanvasSubtree):
59215         (NodeRareData):
59216         (WebCore::NodeRareData::containsFullScreenElement):
59217         (WebCore::NodeRareData::setContainsFullScreenElement):
59218
59219 2012-10-03  Jussi Kukkonen  <jussi.kukkonen@intel.com>
59220
59221         getComputedStyle perspective-origin is based on the wrong bounding box
59222         https://bugs.webkit.org/show_bug.cgi?id=98027
59223
59224         Reviewed by Simon Fraser.
59225
59226         perspective-origin for ComputedStyleDeclaration is currently calculated using the
59227         wrong bounding box (sizingBox() which ends up as the contentbox).
59228
59229         Start using borderbox for ComputedStyleDeclaration perspective-origin, similar to
59230         what transform-origin already does.
59231
59232         Test: fast/css/getComputedStyle/getComputedStyle-origin-percentage.html
59233
59234         * css/CSSComputedStyleDeclaration.cpp:
59235         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
59236
59237 2012-10-03  Patrick Gansterer  <paroga@webkit.org>
59238
59239         Build fix for WinCE after r130160.
59240
59241         * platform/graphics/FontFastPath.cpp:
59242         (WebCore::Font::glyphDataAndPageForCharacter):
59243
59244 2012-10-03  Tommy Widenflycht  <tommyw@google.com>
59245
59246         MediaStream API: RTCPeerConnection should send down its handler via the FrameLoaderClient directly after creation.
59247         https://bugs.webkit.org/show_bug.cgi?id=98149
59248
59249         Reviewed by Adam Barth.
59250
59251         The chromium implementation needs to know which Frame created a PeerConnection so
59252         that the right housekeeping can take place correctly.
59253
59254         Not testable in DRT, but have verified the change manually and with our pyautotests.
59255
59256         * Modules/mediastream/RTCPeerConnection.cpp:
59257         (WebCore::RTCPeerConnection::RTCPeerConnection):
59258         * loader/FrameLoaderClient.h:
59259         (WebCore):
59260         (FrameLoaderClient):
59261         (WebCore::FrameLoaderClient::dispatchWillStartUsingPeerConnectionHandler):
59262         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
59263         (WebCore::RTCPeerConnectionHandlerChromium::toWebRTCPeerConnectionHandler):
59264         (WebCore):
59265         (WebCore::RTCPeerConnectionHandlerChromium::RTCPeerConnectionHandlerChromium):
59266         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
59267         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.h:
59268         (RTCPeerConnectionHandlerChromium):
59269
59270 2012-10-03  Eugene Klyuchnikov  <eustas.bug@gmail.com>
59271
59272         Web Inspector: Profiles: taking heap snapshot causes error message in console.
59273         https://bugs.webkit.org/show_bug.cgi?id=97890
59274
59275         Reviewed by Yury Semikhatsky.
59276
59277         Actual problem is that proxy loader is closed twice.
59278
59279         "_snapshotReceived" should never try to close receiver,
59280         because it is a callback fired by close.
59281
59282         Also minor glitches fixed:
59283          - taking snapshot shows "Loading..." status first,
59284         and then "Saving xxx%";
59285          - after all chunks are sent "Parsing" status is set and
59286         then is replaced with "Saving 100%";
59287          - removed dead code in proxy;
59288          - proxy was ignoring callback parameter;
59289          - "Loading %d\%" is not localized.
59290
59291         * English.lproj/localizedStrings.js: Added missing "Loading %d%" string.
59292         * inspector/front-end/HeapSnapshotProxy.js: Removed dead code.
59293         (WebInspector.HeapSnapshotLoaderProxy):
59294         (WebInspector.HeapSnapshotLoaderProxy.prototype.write): Make this method
59295         interface-conformant.
59296         * inspector/front-end/HeapSnapshotView.js:
59297         (WebInspector.HeapProfileHeader): Fixed update-status and
59298         finish-transfer logic.
59299
59300 2012-10-03  Jochen Eisinger  <jochen@chromium.org>
59301
59302         Make sure that user gestures can't be consumed twice
59303         https://bugs.webkit.org/show_bug.cgi?id=97483
59304
59305         Reviewed by Adam Barth.
59306
59307         Instead of a simple counter, use a ref counted token to track how many
59308         user gestures happened and where consumed. When creating a timer that
59309         is supposed to forward the user gesture, take a reference to this token
59310         and reinstantiate the UserGestureIndicator with that token when the
59311         timer is triggered.
59312
59313         Tests: platform/chromium/fast/events/popup-forwarded-gesture-blocked.html
59314                platform/chromium/fast/events/popup-forwarded-gesture.html
59315
59316         * dom/UserGestureIndicator.cpp:
59317         (WebCore):
59318         (WebCore::UserGestureIndicator::UserGestureIndicator):
59319         (WebCore::UserGestureIndicator::~UserGestureIndicator):
59320         (WebCore::UserGestureIndicator::processingUserGesture):
59321         (WebCore::UserGestureIndicator::consumeUserGesture):
59322         (WebCore::UserGestureIndicator::currentToken):
59323         * dom/UserGestureIndicator.h:
59324         (Token):
59325         (WebCore::UserGestureIndicator::Token::~Token):
59326         (UserGestureIndicator):
59327         * page/DOMTimer.cpp:
59328         (WebCore::DOMTimer::DOMTimer):
59329         (WebCore::DOMTimer::fired):
59330         * page/DOMTimer.h:
59331         (DOMTimer):
59332
59333 2012-10-03  Dominic Mazzoni  <dmazzoni@google.com>
59334
59335         AX: Heap-use-after-free when deleting a ContainerNode with an AX object
59336         https://bugs.webkit.org/show_bug.cgi?id=98073
59337
59338         Reviewed by Hajime Morita.
59339
59340         Calls axObjectCache()->remove(this) in ~ContainerNode so that the AX tree
59341         doesn't try to access the container node while walking up the parent chain
59342         from one of the container node's children.
59343
59344         Test: accessibility/container-node-delete-causes-crash.html
59345
59346         * dom/ContainerNode.cpp:
59347         (WebCore::ContainerNode::~ContainerNode):
59348         * dom/Node.cpp:
59349         (WebCore::Node::~Node):
59350         * dom/Node.h:
59351         (WebCore::Node::document):
59352         (WebCore::Node::documentInternal):
59353
59354 2012-10-03  Vsevolod Vlasov  <vsevik@chromium.org>
59355
59356         Web Inspector: SourceURL should be taken from debugger agent when possible.
59357         https://bugs.webkit.org/show_bug.cgi?id=98239
59358
59359         Reviewed by Yury Semikhatsky.
59360
59361         Removed a check that sourceURL coming from js engine is the same as the one parsed by debugger agent.
59362         Alwys use the one from debugger agent now.
59363
59364         * inspector/InspectorDebuggerAgent.cpp:
59365         (WebCore::InspectorDebuggerAgent::didParseSource):
59366
59367 2012-10-03  Ilya Tikhonovsky  <loislo@chromium.org>
59368
59369         Unreviewed. Touch FrameView.cpp file for fixing mac bot compilation.
59370
59371         * page/FrameView.cpp:
59372         (WebCore):
59373
59374 2012-10-02  Ilya Tikhonovsky  <loislo@chromium.org>
59375
59376         Web Inspector: "Load profile..." context menu item has to be shown only for left column with the list of profiles.
59377         https://bugs.webkit.org/show_bug.cgi?id=98163
59378
59379         Reviewed by Yury Semikhatsky.
59380
59381         The text was changed to "Load Heap Snapshot..."
59382         Also I changed "Save profile..." to "Save Heap Snapshot..." because other profiles don't support Save/Load operations yet.
59383         The Load context menu item will appear only when the user clicked in sidebar the tree empty space or a profile.
59384
59385         * English.lproj/localizedStrings.js:
59386         * inspector/front-end/ProfilesPanel.js:
59387         (WebInspector.ProfilesPanel.prototype._handleContextMenuEvent):
59388         (WebInspector.ProfileSidebarTreeElement.prototype.handleContextMenuEvent):
59389
59390 2012-10-03  Harald Alvestrand  <hta@google.com>
59391
59392         Add data passing to the GetStats interface of RTCPeerConnection
59393         https://bugs.webkit.org/show_bug.cgi?id=98003
59394
59395         Reviewed by Adam Barth.
59396
59397         Added an RTCStatsResponseBase interface to platform, and let the
59398         RTCStatsRequestImpl class produce an implementation of it that's returned
59399         to WebCore.
59400
59401         Tested by extension of the RTCPeerConnection-stats.html test.
59402
59403         * Modules/mediastream/RTCStatsElement.cpp:
59404         (WebCore::RTCStatsElement::addStatistic):
59405         (WebCore):
59406         * Modules/mediastream/RTCStatsElement.h:
59407         (RTCStatsElement):
59408         * Modules/mediastream/RTCStatsReport.cpp:
59409         (WebCore):
59410         (WebCore::RTCStatsReport::addElement):
59411         (WebCore::RTCStatsReport::addStatistic):
59412         * Modules/mediastream/RTCStatsReport.h:
59413         (RTCStatsReport):
59414         * Modules/mediastream/RTCStatsRequestImpl.cpp:
59415         (WebCore::RTCStatsRequestImpl::createResponse):
59416         (WebCore):
59417         (WebCore::RTCStatsRequestImpl::requestSucceeded):
59418         * Modules/mediastream/RTCStatsRequestImpl.h:
59419         (RTCStatsRequestImpl):
59420         * Modules/mediastream/RTCStatsResponse.cpp:
59421         (WebCore::RTCStatsResponse::create):
59422         (WebCore::RTCStatsResponse::addReport):
59423         (WebCore):
59424         (WebCore::RTCStatsResponse::addElement):
59425         (WebCore::RTCStatsResponse::addStatistic):
59426         * Modules/mediastream/RTCStatsResponse.h:
59427         (RTCStatsResponse):
59428         * WebCore.gypi:
59429         * platform/chromium/support/WebRTCStatsRequest.cpp:
59430         (WebKit::WebRTCStatsRequest::response):
59431         (WebKit):
59432         (WebKit::WebRTCStatsRequest::requestSucceeded):
59433         * platform/chromium/support/WebRTCStatsResponse.cpp: Added.
59434         (WebKit):
59435         (WebKit::WebRTCStatsResponse::WebRTCStatsResponse):
59436         (WebKit::WebRTCStatsResponse::assign):
59437         (WebKit::WebRTCStatsResponse::reset):
59438         (WebKit::WebRTCStatsResponse::operator WTF::PassRefPtr<WebCore::RTCStatsResponseBase>):
59439         (WebKit::WebRTCStatsResponse::addReport):
59440         (WebKit::WebRTCStatsResponse::addElement):
59441         (WebKit::WebRTCStatsResponse::addStatistic):
59442         * platform/mediastream/RTCStatsRequest.h:
59443         (WebCore):
59444         (RTCStatsRequest):
59445         * platform/mediastream/RTCStatsResponseBase.h: Added.
59446         (WebCore):
59447         (RTCStatsResponseBase):
59448         (WebCore::RTCStatsResponseBase::~RTCStatsResponseBase):
59449
59450 2012-10-02  Carlos Garcia Campos  <cgarcia@igalia.com>
59451
59452         [GTK] Add API to get the web view that initiated a custom URI request to WebKit2 GTK+
59453         https://bugs.webkit.org/show_bug.cgi?id=97895
59454
59455         Reviewed by Martin Robinson.
59456
59457         * platform/network/NetworkingContext.h:
59458         (NetworkingContext): Add initiatingPageID().
59459         * platform/network/ResourceHandle.h:
59460         (ResourceHandle): Add static method
59461         getSoupRequestInitiaingPageID().
59462         * platform/network/ResourceHandleInternal.h:
59463         (ResourceHandleInternal): Add initiatingPageID().
59464         * platform/network/soup/ResourceHandleSoup.cpp:
59465         (WebCore::ResourceHandleInternal::initiatingPageID): Get the
59466         initiating page ID of the resource handle networking context.
59467         (WebCore::setSoupRequestInitiaingPageID): Helper function to
59468         attach a page ID to a SoupRequest.
59469         (WebCore::startHTTPRequest): Call setSoupRequestInitiaingPageID()
59470         to attch the initiating page ID to the SoupRequest.
59471         (WebCore::startNonHTTPRequest): Ditto.
59472         (WebCore::ResourceHandle::getSoupRequestInitiaingPageID): Static
59473         method to get the page ID attached to a SoupRequest.
59474
59475 2012-10-03  Kent Tamura  <tkent@chromium.org>
59476
59477         Introduce DateComponents::minimumYear and maximumYear
59478         https://bugs.webkit.org/show_bug.cgi?id=98230
59479
59480         Reviewed by Kentaro Hara.
59481
59482         Share same difinitions in DateComponents.cpp and DateTimeFieldElements.cpp.
59483
59484         No new tests. This doesn't change any bahevior.
59485
59486         * platform/DateComponents.h:
59487         (WebCore::DateComponents::minimumYear): Moved from DateComponents.cpp.
59488         (WebCore::DateComponents::maximumYear): ditto.
59489         * platform/DateComponents.cpp:
59490         (WebCore): Move out static minimumYear and maximumYear.
59491         (WebCore::DateComponents::parseYear): Use DateCompnents::minimumYear and/or maximumYear.
59492         (WebCore::withinHTMLDateLimits): ditto.
59493         (WebCore::DateComponents::parseWeek): ditto.
59494         (WebCore::DateComponents::setMonthsSinceEpoch): ditto.
59495         (WebCore::DateComponents::setMillisecondsSinceEpochForWeek): ditto.
59496
59497         * html/shadow/DateTimeFieldElements.cpp:
59498         (WebCore): Remove minimumYear and maximumYear.
59499         (WebCore::DateTimeYearFieldElement::DateTimeYearFieldElement):
59500         Use DateComponents::minimumYear and maximumYear.
59501
59502
59503 2012-10-02  Arko Saha  <arko@motorola.com>
59504
59505         Microdata: itemprop names must not override builtin properties.
59506         https://bugs.webkit.org/show_bug.cgi?id=98025
59507
59508         Reviewed by Kentaro Hara.
59509
59510         We should look in the prototype for functions before assuming it as
59511         an item's name. Return false if the prototype of the object has a
59512         property (function) with propertyName.
59513         Named properties Spec: http://dev.w3.org/2006/webapi/WebIDL/#idl-named-properties
59514         Named property visibility algorithm:
59515         http://dev.w3.org/2006/webapi/WebIDL/#indexed-and-named-properties
59516         ...
59517         7. If the result of calling the [[HasProperty]] internal method on
59518         prototype with property name P is true, then return false.
59519         ...
59520         Also [OverrideBuiltins] is not declared for any of the properties,
59521         hence no overriding is allowed in this case.
59522
59523         Test: fast/dom/MicroData/itemprop-names-override-builtin-properties.html
59524
59525         * bindings/scripts/CodeGeneratorJS.pm:
59526         (GenerateGetOwnPropertySlotBody):
59527         (GenerateGetOwnPropertyDescriptorBody):
59528
59529 2012-10-02  Keishi Hattori  <keishi@webkit.org>
59530
59531         REGRESSION (r129738): Suggestion picker label is placed in the wrong location
59532         https://bugs.webkit.org/show_bug.cgi?id=98094
59533
59534         Reviewed by Kent Tamura.
59535
59536         We needed to reverse padding-left/right when rtl.
59537
59538         No new tests. Covered by date-suggestion-picker-appearance.html.
59539
59540         * Resources/pagepopups/suggestionPicker.css:
59541         (.suggestion-list-entry .label):
59542         (.rtl .suggestion-list-entry .label):
59543
59544 2012-10-02  Yury Semikhatsky  <yurys@chromium.org>
59545
59546         Provide memory instrumentation for HashCountedSet
59547         https://bugs.webkit.org/show_bug.cgi?id=98138
59548
59549         Reviewed by Pavel Feldman.
59550
59551         Replaced addHashCountedSet calls with addMember that now automatically
59552         detects HashCountedSet and calls appropriate routine.
59553
59554         * css/CSSImageGeneratorValue.cpp:
59555         (WebCore::CSSImageGeneratorValue::reportBaseClassMemoryUsage):
59556         * loader/cache/CachedResource.cpp:
59557
59558 2012-10-02  Nandor Huszka  <hnandor@inf.u-szeged.hu>
59559
59560         Buildfix after r130235.
59561
59562         Reviewed by Csaba Osztrogonác.
59563
59564         systemAllowsMultisamplingOnATICards was deleted from GraphicsContext3D,
59565         but function body remained in GraphicsContext3DOpenGLES. Delete method body.
59566
59567         * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
59568
59569 2012-10-02  Kent Tamura  <tkent@chromium.org>
59570
59571         Fix assertion failures on Chromium Debug bots for datetime/datetime-local input types.
59572
59573         * html/shadow/DateTimeFieldElements.cpp:
59574         If a placeholder stirng is empty, use a sequence of "-".
59575         (WebCore::DateTimeDayFieldElement::create):
59576         (WebCore::DateTimeMonthFieldElement::create):
59577         (WebCore::DateTimeYearFieldElement::create):
59578
59579 2012-10-02  MORITA Hajime  <morrita@google.com>
59580
59581         https://bugs.webkit.org/show_bug.cgi?id=98134
59582         [Refactoring] StyleResolver::matchScopedAuthorRules() could be simpler.
59583
59584         Reviewed by Dimitri Glazkov.
59585
59586         matchScopedAuthorRules() did have some optimization which only
59587         makes sense for heavily nested shadow tree. However, we don't see
59588         such type of usage of Shadow DOM and this looks premature
59589         optimization. This change unified its triple for loop into one,
59590         which makes the code much simpler.
59591
59592         No new tests. Covered by existing tests.
59593
59594         * css/StyleResolver.cpp:
59595         (WebCore::StyleResolver::matchScopedAuthorRules):
59596
59597 2012-10-02  Kent Tamura  <tkent@chromium.org>
59598
59599         Introduce Localizer::dateTimeFormatWithSecond and dateTimeFormatWithoutSecond
59600         https://bugs.webkit.org/show_bug.cgi?id=98229
59601
59602         Reviewed by Kentaro Hara.
59603
59604         Unify identical code in DateTimeInputType and DateTimeLocalInputType as
59605         Localizer member functions.
59606         They still have some common code. We'll address it later.
59607
59608         No new tests. This doesn't change any behavior.
59609
59610         * platform/text/Localizer.h:
59611         (Localizer): Add dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59612         * platform/text/Localizer.cpp:
59613         (WebCore::Localizer::dateTimeFormatWithSecond):
59614         Implemented. Just concatenating dateFormat, a space, and timeFormat.
59615         (WebCore::Localizer::dateTimeFormatWithoutSecond):
59616         Implemented. Just concatenating dateFormat, a space, and shortTimeFormat.
59617
59618         * html/DateTimeInputType.cpp:
59619         (WebCore::DateTimeInputType::setupLayoutParameters):
59620         Use dateTimeFormatWithSecond and dateTimeFormatWithoutSecond.
59621         * html/DateTimeLocalInputType.cpp:
59622         (WebCore::DateTimeLocalInputType::setupLayoutParameters): ditto.
59623
59624 2012-10-03  Kent Tamura  <tkent@chromium.org>
59625
59626         Refactoring: DateTimeEditBuilder had better hold LayoutParameters
59627         https://bugs.webkit.org/show_bug.cgi?id=98228
59628
59629         Reviewed by Kentaro Hara.
59630
59631         Stop copying multiple members of LayoutParameters in DateTimeEditBuilder
59632         constructor. This change improves code size and runtime cost.
59633
59634         No new tests. This doesn't change user-visible behavior.
59635
59636         * html/shadow/DateTimeEditElement.cpp:
59637         (DateTimeEditBuilder): Add a comment about lifetime of objects.
59638         (WebCore::DateTimeEditBuilder::stepRange):
59639         Added. A helper to access m_parameters.stepRange.
59640         (WebCore::DateTimeEditBuilder::DateTimeEditBuilder):
59641         Remove m_stepRange, m_localizer, m_placeholderFor* members.
59642         Add m_parameters.
59643         (WebCore::DateTimeEditBuilder::needMillisecondField):
59644         Use stepRange() instead of m_stepRange.
59645         (WebCore::DateTimeEditBuilder::visitField):
59646         Use m_parameters.placeholderFor*.
59647         (WebCore::DateTimeEditBuilder::shouldMillisecondFieldReadOnly):
59648         Use stepRange() instead of m_stepRange.
59649         (WebCore::DateTimeEditBuilder::shouldMinuteFieldReadOnly): ditto.
59650         (WebCore::DateTimeEditBuilder::shouldSecondFieldReadOnly): ditto.
59651
59652 2012-10-02  Kent Tamura  <tkent@chromium.org>
59653
59654         Implement LocaleICU::dateFormat
59655         https://bugs.webkit.org/show_bug.cgi?id=98118
59656
59657         Reviewed by Hajime Morita.
59658
59659         http://trac.webkit.org/changeset/130127 introduced
59660         Localizer::dateFormat, and this is its implementation for LocaleICU
59661         classs. The code is going to be used when
59662         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59663
59664         No new tests. The function is not used yet.
59665
59666         * platform/text/LocaleICU.cpp:
59667         (WebCore::LocaleICU::dateFormat):
59668         Implemented. Note that m_shortDateFormat is a UDateFormat object, which
59669         knows various format information.
59670         * platform/text/LocaleICU.h:
59671         (LocaleICU): Add m_dateFormat to cache the format string.
59672
59673 2012-10-02  Kent Tamura  <tkent@chromium.org>
59674
59675         [Mac][Chromium-Mac] Implement LocaleMac::dateFormat
59676         https://bugs.webkit.org/show_bug.cgi?id=98116
59677
59678         Reviewed by Hajime Morita.
59679
59680         http://trac.webkit.org/changeset/130127 introduced
59681         Localizer::dateFormat, and this is its implementation for LocaleICU
59682         classs. The code is going to be used when
59683         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59684
59685         No new tests. The function is not used yet.
59686
59687         * platform/text/mac/LocaleMac.h:
59688         (LocaleMac): Declare m_dateFormat.
59689         * platform/text/mac/LocaleMac.mm:
59690         (WebCore::LocaleMac::dateFormat): Implemented.
59691
59692 2012-10-02  Kent Tamura  <tkent@chromium.org>
59693
59694         [Chromium-Win] Implement LocaleWin::dateFormat
59695         https://bugs.webkit.org/show_bug.cgi?id=98117
59696
59697         Reviewed by Kentaro Hara.
59698
59699         http://trac.webkit.org/changeset/130127 introduced
59700         Localizer::dateFormat, and this is its implementation for LocaleICU
59701         classs. The code is going to be used when
59702         ENABLE_INPUT_MULTIPLE_FIELDS_UI is enabled.
59703
59704         Tests: Added a new test to WebKit/chromium/tests/LocaleWinTest.cpp.
59705
59706         * platform/text/LocaleWin.cpp:
59707         (WebCore::parseDateFormat):
59708         Fix a continuous apostrophes parsing bug; "abc''''def" produced "abc'''def"
59709         (WebCore::appendAsLDMLLiteral):
59710         A helper function to make a literal string for LDML.
59711         (WebCore::convertWindowsDateFormatToLDML):
59712         Creates an LDML format from a parsed date format tokens.
59713         (WebCore::LocaleWin::dateFormat):
59714         Implemented. This uses convertWindowsDateFormatToLDML.
59715         (WebCore::LocaleWin::dateFormat):
59716         Added for testing. The source windows format is specified as a function
59717         argument.
59718         * platform/text/LocaleWin.h:
59719         (LocaleWin): Declare m_dateFormat and dateFormat().
59720
59721 2012-10-02  Ian Vollick  <vollick@chromium.org>
59722
59723         [chromium] Fix spelling of isNVIDIA override in Extensions3DChromium
59724         https://bugs.webkit.org/show_bug.cgi?id=98219
59725
59726         Reviewed by Dean Jackson.
59727
59728         The override in Extensions3dChromium should have been spelled isNVIDIA, not isNVidia.
59729
59730         No new tests. No change in functionality.
59731
59732         * platform/graphics/chromium/Extensions3DChromium.h:
59733         (WebCore::Extensions3DChromium::isNVIDIA):
59734
59735 2012-10-02  Anders Carlsson  <andersca@apple.com>
59736
59737         Try to fix the Snow Leopard build.
59738
59739         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
59740
59741 2012-10-02  Joshua Bell  <jsbell@chromium.org>
59742
59743         Add htons/htonl definitions and implementations
59744         https://bugs.webkit.org/show_bug.cgi?id=98054
59745
59746         Reviewed by Darin Adler.
59747
59748         Update users of htons and friends to use new wtf/ByteOrder.h header.
59749
59750         No new tests - just refactoring.
59751
59752         * platform/graphics/WOFFFileFormat.cpp:
59753         * platform/graphics/chromium/VDMXParser.cpp:
59754
59755 == Rolled over to ChangeLog-2012-10-02 ==