Reviewed by Eric Seidel.
[WebKit-https.git] / WebCore / ChangeLog
1 2009-12-05  Alexey Proskuryakov  <ap@apple.com>
2
3         Reviewed by Eric Seidel.
4
5         https://bugs.webkit.org/show_bug.cgi?id=32175
6         REGRESSION: websocket/tests/url-parsing.html is crashing on Leopard Bot
7
8         * platform/network/cf/SocketStreamHandleCFNet.cpp:
9         (WebCore::SocketStreamHandle::readStreamCallback): Call platformClose() to unschedule both
10         streams, guaranteeing that there will be no callbacks after SocketStreamHandle is destroyed.
11         (WebCore::SocketStreamHandle::writeStreamCallback): Edited a comment a bit.
12
13 2009-12-05  Adam Langley  <agl@google.com>
14
15         Reviewed by Adam Barth.
16
17         Check that a CSS format() argument is of a valid type.
18
19         https://bugs.webkit.org/show_bug.cgi?id=31815
20         http://code.google.com/p/chromium/issues/detail?id=28582
21
22         Test: fast/css/url-format-non-string.html
23
24         * css/CSSParser.cpp:
25         (WebCore::CSSParser::parseFontFaceSrc):
26
27 2009-12-04  Adam Langley  <agl@google.com>
28
29         Reviewed by Eric Seidel.
30
31         Chromium: make rounded borders heavier.
32
33         Skia draws its rounded corners differently from the other ports.
34         Whereas they have anti-aliased clipping regions, Skia only has 1-bit
35         regions. (Which is technically more correct, but somewhat unhelpful
36         for us.) Instead, with Skia we use a layer and collect all the
37         clipping paths in effect. When the state is popped, we paint
38         transparency outside the clipping paths and merge the layer down.
39
40         This appears to cause rounded borders to look a little thin, which is
41         addressed in this patch.
42
43         This is well covered by existing tests but will require new baselines
44         in the Chromium tree.
45
46         https://bugs.webkit.org/show_bug.cgi?id=31778
47
48         * platform/graphics/skia/GraphicsContextSkia.cpp:
49         (WebCore::GraphicsContext::addInnerRoundedRectClip):
50
51 2009-12-04  Simon Fraser  <simon.fraser@apple.com>
52
53         Reviewed by Dan Bernstein.
54
55         <rdar://problem/7441571> Hardware-backed layers are skipped when printing
56         
57         When printing, set the PaintBehaviorFlattenCompositingLayers flag so that compositing layers
58         paint. This also causes 3D transforms to be flattened to 2D.
59
60         Test: printing/compositing-layer-printing.html
61
62         * page/FrameView.cpp:
63         (WebCore::FrameView::paintContents):
64
65 2009-12-04  Oliver Hunt  <oliver@apple.com>
66
67         Reviewed by Beth Dakin.
68
69         Fix up some issues in my SVGListTraits change from yesterday.
70
71         * svg/SVGListTraits.h:
72         (WebCore::):
73
74 2009-12-04  Albert J. Wong  <ajwong@chromium.org>
75
76         Not reviewed: chromium build fix.
77
78         Fix Chromium build break caused by moving of isDefaultPortForProtocol() and
79         portAllowed() into KURL.h/KURL.cpp.  Cloning code.
80
81         * platform/KURLGoogle.cpp:
82         (WebCore::isDefaultPortForProtocol):
83         (WebCore::portAllowed):
84
85 2009-12-04  Pavel Feldman  <pfeldman@chromium.org>
86
87         Reviewed by Timothy Hatcher.
88
89         Web Inspector: Remove suppress highlight when restoring selected node.
90
91         https://bugs.webkit.org/show_bug.cgi?id=32152
92
93         * inspector/front-end/ElementsPanel.js:
94         (WebInspector.ElementsPanel.prototype.setDocument.selectNode):
95         (WebInspector.ElementsPanel.prototype.setDocument.selectLastSelectedNode):
96         (WebInspector.ElementsPanel.prototype.setDocument):
97
98 2009-12-04  Dirk Schulze  <krit@webkit.org>
99
100         Reviewed by Nikolas Zimmermann.
101
102         Gradient SVG animation demonstrates tearing at animation extremes
103         https://bugs.webkit.org/show_bug.cgi?id=11929
104
105         The focalPoint of a radial gradient is temporarly substracted by
106         the centralPoint, if the focalPoint is not in the radius of the
107         gradient. This is needed to calculate a new postion of the focalPoint
108         according to the specification. But the new focalPoint needs to be
109         moved by the centralPoint after this calculation, which is not the case
110         at the moment. This patch fixes this issue. It was also introduced a
111         deviation of maximal 0.2% for Cairo to get around the fixed point numbers
112         in Cairo.
113
114         W3C-SVG-1.1/pservers-grad-13-b needed an update. The missing adjustment
115         of the new focalPoint caused wrong results for the last three tests.
116
117         Test: svg/custom/radial-gradient-with-outstanding-focalPoint.svg
118
119         * svg/SVGRadialGradientElement.cpp:
120         (WebCore::SVGRadialGradientElement::buildGradient):
121
122 2009-12-04  Anton Muhin  <antonm@chromium.org>
123
124         Reviewed by Dmitry Titov.
125
126         Do not use WebCore::String::String(const UChar*, int length) to convert
127         short v8 strings.
128
129         Plus added string traits.
130         https://bugs.webkit.org/show_bug.cgi?id=31415
131
132         * bindings/v8/V8Binding.cpp:
133         (WebCore::):
134         (WebCore::v8StringToWebCoreString):
135
136 2009-12-04  Chris Fleizach  <cfleizach@apple.com>
137
138         Reviewed by Darin Adler.
139
140         REGRESSION: AX: buttons now extremely repetitive
141         https://bugs.webkit.org/show_bug.cgi?id=32164
142
143         Test: platform/mac/accessibility/button-shouldnot-have-axvalue.html
144
145         * accessibility/AccessibilityObject.h:
146         (WebCore::AccessibilityObject::isButton):
147         * accessibility/mac/AccessibilityObjectWrapper.mm:
148         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
149
150 2009-12-04  Zoltan Herczeg  <zherczeg@inf.u-szeged.hu>
151
152         Reviewed by Darin Adler.
153
154         Check whether the right side of a string append is non-empty
155         https://bugs.webkit.org/show_bug.cgi?id=32151
156
157         Especially beneficial for CachedScript::script() method
158         which usually appends an empty string returned by flush()
159         to its m_script member. m_script is often hundreds of kbytes
160         which is duplated without reason.
161
162         * platform/text/String.cpp:
163         (WebCore::String::append):
164
165 2009-12-04  Enrica Casucci  <enrica@apple.com>
166
167         Reviewed by John Sullivan.
168
169         Mail.app crashes when indenting table pasted from Numbers.app.
170         <rdar://problem/7209507>
171         https://bugs.webkit.org/show_bug.cgi?id=32166
172
173         Test: LayoutTests/editing/execCommand/indent-partial-table.html
174         
175         * editing/IndentOutdentCommand.cpp:
176         (WebCore::IndentOutdentCommand::indentRegion): Added test to verify that the end of the paragraph
177         after the selection has not been moved.
178
179 2009-12-04  Alexey Proskuryakov  <ap@apple.com>
180
181         Reviewed by Darin Adler.
182
183         https://bugs.webkit.org/show_bug.cgi?id=32085
184         WebSocket should block the same ports that are blocked for resource loading
185
186         Test: websocket/tests/url-parsing.html
187
188         * page/SecurityOrigin.cpp:
189         (WebCore::SecurityOrigin::SecurityOrigin):
190         (WebCore::SecurityOrigin::localURLSchemes):
191         * page/SecurityOrigin.h:
192         Move isDefaultPortForProtocol() to KURL, because that's a better place for it (SecurityOrigin
193         is not even in WebCore/platform directory).
194
195         * html/HTMLAnchorElement.cpp:
196         (WebCore::HTMLAnchorElement::host):
197         (WebCore::HTMLAnchorElement::setHost):
198         (WebCore::HTMLAnchorElement::setPort):
199         Updated for the new location of isDefaultPortForProtocol().
200
201         * platform/KURL.cpp:
202         (WebCore::KURL::protocolIs): In an assertion, compare to "javascript" case-insensitively,
203         since the function doesn't require lower case input.
204         (WebCore::isDefaultPortForProtocol): Moved from SecurityOrigin.
205         (WebCore::portAllowed): Moved from ResourceHandle.
206         * platform/KURL.h:
207
208         * platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::create): Updated for the
209         new location of portAllowed().
210
211         * websockets/WebSocket.cpp: (WebCore::WebSocket::connect): Per the spec, raise a SECURITY_ERR
212         if trying to connect to a blocked port.
213
214 2009-12-04  Benjamin Poulain  <benjamin.poulain@nokia.com>
215
216         Reviewed by Kenneth Rohde Christiansen.
217
218         [Qt] WebKit crashes when loading certain SVG images
219         https://bugs.webkit.org/show_bug.cgi?id=29443
220
221         Remove FontFallbackListQt and rely on the common FontFallbackList
222         to handle the fonts. FontCache and FontPlatformData have been
223         updated to work with the common FontFallbackList.
224
225         In the previous implementation, FontPlatformDataCacheKey
226         was a clone of FontPlatformData with the hashing
227         capabilities added in order to use it as a key in the cache's
228         hashmap. FontPlatformData has been modified to handle the hashing
229         function directly so the data are not copied twice in memory.
230
231         FontFallbackList::fontDataAt() from FontFallbackListQt was a copy of
232         code from FontCache::getFontData() and FontFallbackList::fontDataAt().
233         The behavior is similar except currFamily->family().length() was
234         not tested and the fallback fonts selector were not used.
235
236         Existing tests cover the change.
237
238         * WebCore.pro:
239         * platform/graphics/qt/FontCacheQt.cpp:
240         (WebCore::FontCache::platformInit):
241         (WebCore::FontCache::getFontDataForCharacters):
242         (WebCore::FontCache::getSimilarFontPlatformData):
243         (WebCore::FontCache::getLastResortFallbackFont):
244         (WebCore::FontCache::getTraitsInFamily):
245         (WebCore::FontCache::createFontPlatformData):
246         * platform/graphics/qt/FontCustomPlatformData.cpp:
247         (WebCore::FontCustomPlatformData::fontPlatformData):
248         * platform/graphics/qt/FontFallbackListQt.cpp:
249         Removed. We now use the implementation from FontFallbackList.cpp
250         * platform/graphics/qt/FontPlatformData.h:
251         Add hashing capabilities to be able to use the data with the FontCache.
252         This was previously done in FontCacheQt.cpp
253         (WebCore::FontPlatformDataPrivate::FontPlatformDataPrivate):
254         (WebCore::FontPlatformData::FontPlatformData):
255         (WebCore::FontPlatformData::isHashTableDeletedValue):
256         (WebCore::FontPlatformData::font):
257         (WebCore::FontPlatformData::size):
258         (WebCore::FontPlatformData::family):
259         (WebCore::FontPlatformData::bold):
260         (WebCore::FontPlatformData::italic):
261         (WebCore::FontPlatformData::smallCaps):
262         (WebCore::FontPlatformData::pixelSize):
263         * platform/graphics/qt/FontPlatformDataQt.cpp:
264         (WebCore::FontPlatformData::FontPlatformData):
265         (WebCore::FontPlatformData::~FontPlatformData):
266         (WebCore::FontPlatformData::operator=):
267         (WebCore::FontPlatformData::operator==):
268         (WebCore::FontPlatformData::hash):
269
270 2009-12-04  Adam Treat  <atreat@rim.com>
271
272         Reviewed by Dan Bernstein.
273
274         Fix wrong assert that was only working through sheer luck.
275         https://bugs.webkit.org/show_bug.cgi?id=32162
276
277         * platform/text/BidiContext.cpp:
278         (WebCore::BidiContext::create):
279
280 2009-12-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
281
282         Reviewed by Simon Hausmann.
283
284         [Qt] Allow removing 'qrc' as a local security origin scheme
285
286         * page/SecurityOrigin.cpp:
287
288 2009-12-04  Zoltan Horvath  <zoltan@webkit.org>
289
290         Reviewed by Eric Seidel.
291
292         Allow custom memory allocation control for WebCore's CollectionCache
293         https://bugs.webkit.org/show_bug.cgi?id=32109
294
295         Inherits the following class from FastAllocBase because it is
296         instantiated by 'new':
297
298         struct name            - instantiated at: WebCore/'location'
299
300         struct CollectionCache - dom/Document.cpp:4029
301
302         * html/CollectionCache.h:
303
304 2009-12-04  Steve Block  <steveblock@google.com>
305
306         Reviewed by Darin Adler.
307
308         Fixes a crashing bug in Geolocation when a watch is cleared from some callbacks. 
309         https://bugs.webkit.org/show_bug.cgi?id=32111
310
311         In Geolocation::GeoNotifier::timerFired, a JS callback may be invoked if a
312         fatal error was registered on this GeoNotifier or if this request has timed
313         out. If the request is a watch, and is cleared by a call to clearWatch in the
314         callback, the GeoNotifier object will be destroyed. We must therefore cache the
315         m_geolocation member to allow us to call Geolocation::fatalErrorOccurred or
316         Geolocation::requestTimedOut.
317
318         Tests: fast/dom/Geolocation/permission-denied-already-clear-watch.html
319                fast/dom/Geolocation/timeout-clear-watch.html
320
321         * page/Geolocation.cpp: Modified.
322         (WebCore::Geolocation::GeoNotifier::timerFired): Modified. Cache the m_geolocation member before invoking the JS callback.
323
324 2009-12-04  Zoltan Horvath  <zoltan@webkit.org>
325
326         Reviewed by Eric Seidel.
327
328         Allow custom memory allocation control for 2 classes of the platform directory in WebCore
329         https://bugs.webkit.org/show_bug.cgi?id=
330
331         Inherits the following class from Noncopyable because it is instantiated
332         by 'new' and no need to be copyable:
333
334         class/struct name         - instantiated at: WebCore/'location'
335
336         class SharedTimer         - (its child class) workers/WorkerRunLoop.cpp:91
337
338         Inherits the following class from FastAllocBase because it is
339         instantiated by 'new':
340
341         class TransformOperations - rendering/style/RenderStyle.h:1175
342
343         Noncopyable.h's include added to SharedTimer.h.
344
345         * platform/SharedTimer.h:
346         * platform/graphics/transforms/TransformOperations.h:
347
348 2009-12-04  Xan Lopez  <xlopez@igalia.com>
349
350         Reviewed by Gustavo Noronha.
351
352         [GTK]Enable DNS prefetching
353         https://bugs.webkit.org/show_bug.cgi?id=23846
354
355         Enable DNS prefetching.
356
357         Based on a patch by José Millán.
358
359         * platform/network/soup/DNSSoup.cpp:
360         (WebCore::prefetchDNS):
361
362 2009-12-04  Zoltan Horvath  <zoltan@webkit.org>
363
364         Reviewed by Eric Seidel.
365
366         Allow custom memory allocation control for the svg directory in WebCore
367         https://bugs.webkit.org/show_bug.cgi?id=
368
369         Inherits the following classes from Noncopyable because these are instantiated
370         by 'new' and no need to be copyable:
371
372         class/struct name           - instantiated at: WebCore/'location'
373
374         struct ResourceSet          - svg/graphics/SVGResource.cpp:148
375         class SVGFontData           - css/CSSFontFaceSource.cpp:156
376         class SVGDocumentExtensions - dom/Document.cpp:3962
377         class SVGViewSpec           - svg/SVGSVGElement.cpp:191
378
379         * svg/SVGDocumentExtensions.h:
380         * svg/SVGFontData.h:
381         * svg/SVGViewSpec.h:
382         * svg/graphics/SVGResource.cpp:
383
384 2009-12-03  Chris Fleizach  <cfleizach@apple.com>
385
386         Reviewed by Beth Dakin.
387
388         WAI-ARIA: aria-activedescendant doesn't work as intended
389         https://bugs.webkit.org/show_bug.cgi?id=32100
390
391         Fixes a number of issues regarding the "tree" role and aria-activedescendant.
392         1. The indexes were being reported incorrectly by treeitems.
393         2. aria-activedescendant changes were not being sent to the containing item.
394         3. The tree's selected rows need to consult aria-activedescendant.
395         4. Since a tree changes what it returns as its children (it returns its rows)
396            the mac-specific array indexing methods need to correctly handle the tree case.
397
398         Tests: platform/mac/accessibility/aria-tree-activedescendant.html
399                platform/mac/accessibility/aria-tree-index-of-items.html
400
401         * accessibility/AXObjectCache.h:
402         (WebCore::AXObjectCache::):
403         * accessibility/AccessibilityRenderObject.cpp:
404         (WebCore::AccessibilityRenderObject::shouldFocusActiveDescendant):
405         (WebCore::AccessibilityRenderObject::activeDescendant):
406         (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
407         (WebCore::AccessibilityRenderObject::ariaTreeSelectedRows):
408         * accessibility/mac/AXObjectCacheMac.mm:
409         (WebCore::AXObjectCache::postPlatformNotification):
410         * accessibility/mac/AccessibilityObjectWrapper.mm:
411         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
412         (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]):
413         (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
414         * accessibility/win/AXObjectCacheWin.cpp:
415         (WebCore::AXObjectCache::postPlatformNotification):
416
417 2009-12-03  Zoltan Horvath  <zoltan@webkit.org>
418
419         Reviewed by Eric Seidel.
420
421         Allow custom memory allocation control for the xml directory in WebCore
422         https://bugs.webkit.org/show_bug.cgi?id=
423
424         Inherits the following class from Noncopyable because it is instantiated 
425         by 'new' and no need to be copyable:
426
427         class/struct name               - instantiated at: WebCore/'location'
428
429         struct XMLHttpRequestStaticData - xml/XMLHttpRequest.cpp:134
430
431         Inherits the following classes from FastAllocBase because these are instantiated by 'new':
432
433         class NodeTest                  - xml/XPathGrammar.y:258
434         class NodeSet                   - xml/XPathValue.cpp:52
435         struct EvaluationContext        - xml/XPathExpressionNode.cpp:40
436
437         * xml/XMLHttpRequest.cpp:
438         * xml/XPathExpressionNode.h:
439         * xml/XPathNodeSet.h:
440         * xml/XPathStep.h:
441
442 2009-12-03  Drew Wilson  <atwilson@chromium.org>
443
444         Reviewed by Adam Barth.
445
446         New History changes do not compile for Chromium/V8
447         https://bugs.webkit.org/show_bug.cgi?id=32148
448
449         Existing tests suffice (just trying to get code to compile).
450
451         * WebCore.gypi:
452         Added V8HistoryCustom.cpp and other missing files.
453         * bindings/v8/custom/V8CustomBinding.h:
454         Added custom handlers for History.pushState()/replaceState().
455         * bindings/v8/custom/V8HistoryCustom.cpp: Added.
456         Added custom handlers for History.pushState()/replaceState().
457         * history/BackForwardListChromium.cpp:
458         (WebCore::BackForwardList::pushStateItem):
459         Stubbed out this routine for now - will implement in the future.
460
461 2009-12-03  Adam Barth  <abarth@webkit.org>
462
463         Reviewed by Eric Seidel.
464
465         OwnPtr<XBLBindingManager> Document::m_bindingManager;
466         https://bugs.webkit.org/show_bug.cgi?id=32147
467
468         The document actually owns the bindingManager.  That's what the code
469         should say.
470
471         * dom/Document.cpp:
472         (WebCore::Document::~Document):
473         * dom/Document.h:
474         (WebCore::Document::bindingManager):
475
476 2009-12-03  Adam Barth  <abarth@webkit.org>
477
478         Reviewed by Eric Seidel.
479
480         OwnPtr<Tokenizer> Document::m_tokenizer;
481         https://bugs.webkit.org/show_bug.cgi?id=32145
482
483         The document actually owns the tokenizer.  That's what the code should say.
484
485         * dom/Document.cpp:
486         (WebCore::Document::removedLastRef):
487         (WebCore::Document::~Document):
488         (WebCore::Document::cancelParsing):
489         (WebCore::Document::implicitOpen):
490         (WebCore::Document::implicitClose):
491         * dom/Document.h:
492         (WebCore::Document::tokenizer):
493
494 2009-12-03  Adam Barth  <abarth@webkit.org>
495
496         Reviewed by Eric Seidel.
497
498         OwnPtr<RenderArena> Document::m_renderArena;
499         https://bugs.webkit.org/show_bug.cgi?id=32146
500
501         The document owns the renderArena.  That's what the code should say.
502
503         * dom/Document.cpp:
504         (WebCore::Document::Document): Also, removed a redundant initialization
505         of the tokenizer that I missed in my previous patch.
506         (WebCore::Document::~Document):
507         (WebCore::Document::attach):
508         (WebCore::Document::detach):
509         * dom/Document.h:
510         (WebCore::Document::renderArena):
511
512 2009-12-03  Drew Wilson  <atwilson@chromium.org>
513
514         Rolling back r51633 because it causes a chromium perf regression.
515
516         * platform/graphics/SimpleFontData.h:
517         * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
518
519 2009-12-03  Adam Barth  <abarth@webkit.org>
520
521         Reviewed by Eric Seidel.
522
523         The code should say that Document owns DocLoader
524         https://bugs.webkit.org/show_bug.cgi?id=32143
525
526         It's the truth.
527
528         * dom/Document.cpp:
529         (WebCore::Document::~Document):
530         * dom/Document.h:
531         (WebCore::Document::docLoader):
532
533 2009-12-03  Chris Fleizach  <cfleizach@apple.com>
534
535         Reviewed by Eric Seidel.
536
537         AX: VO just says "term" on many web sites
538         https://bugs.webkit.org/show_bug.cgi?id=32139
539
540         Test: platform/mac/accessibility/definition-list-term.html
541
542         * accessibility/AccessibilityRenderObject.cpp:
543         (WebCore::AccessibilityRenderObject::accessibilityDescription):
544         * accessibility/mac/AccessibilityObjectWrapper.mm:
545         (-[AccessibilityObjectWrapper subrole]):
546         (-[AccessibilityObjectWrapper roleDescription]):
547
548 2009-12-03  Chris Fleizach  <cfleizach@apple.com>
549
550         Reviewed by Beth Dakin.
551
552         Implement WAI-ARIA scrollbar role and related property aria-orientation
553         https://bugs.webkit.org/show_bug.cgi?id=32126
554
555         Test: accessibility/aria-scrollbar-role.html
556
557         * accessibility/AccessibilityObject.cpp:
558         (WebCore::createARIARoleMap):
559         * accessibility/AccessibilityObject.h:
560         (WebCore::AccessibilityObject::isScrollbar):
561         * accessibility/AccessibilityRenderObject.cpp:
562         (WebCore::AccessibilityRenderObject::valueForRange):
563         (WebCore::AccessibilityRenderObject::orientation):
564         (WebCore::AccessibilityRenderObject::canHaveChildren):
565         * accessibility/AccessibilityRenderObject.h:
566         * accessibility/mac/AccessibilityObjectWrapper.mm:
567         (-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
568         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
569         * html/HTMLAttributeNames.in:
570
571 2009-12-03  Dan Bernstein  <mitz@apple.com>
572
573         Reviewed by Darin Adler.
574
575         Fixed <rdar://problem/7401617> Selection painting issue in hardware-
576         accelerated layers
577         which is another part of https://bugs.webkit.org/show_bug.cgi?id=23628
578         Fix selection painting to do container-relative repaints
579
580         Test: fast/repaint/block-selection-gap-in-composited-layer.html
581
582         * rendering/RenderBlock.cpp:
583         (WebCore::RenderBlock::selectionGapRectsForRepaint): Compute and paint
584         gap rects in the coordinate space of the repaint container.
585         * rendering/RenderLayerCompositor.cpp:
586         (WebCore::RenderLayerCompositor::recursiveRepaintLayerRect): Added a
587         FIXME.
588         * rendering/RenderView.cpp:
589         (WebCore::RenderView::setSelection): Map block selection gap rects from
590         the repaint container’s coordinate space to the view’s coordinate space
591         before adding them to the cached selection bounds.
592         (WebCore::RenderView::clearSelection): Changed to use
593         repaintRectangleInViewAndCompositedLayers() so that the selection rect
594         is invalidated in composited layers as well.
595
596 2009-12-03  Jonathan Dixon  <joth@chromium.org>
597
598         Reviewed by Dimitri Glazkov.
599
600         Bug 32066 - Add enable geolocation flag to WebCore::Settings for Chromium
601         https://bugs.webkit.org/show_bug.cgi?id=32066
602
603         Adds geolocationEnabled in Settings for runtime control of geolocaiton features. This defaults to ON
604         as it is intended as a development and testing aid, not a user control. To completely remove geolocation
605         from a given port, the compile time ENABLE_GEOLOCATION should still be used.
606         Adding placeholder GeolocationServiceChromium implementation, as this is required to allows
607         ENABLE_GEOLOCATION to be defined (in turn required for testing), even though this patch does not
608         make that the default just yet.
609
610         * WebCore.gypi:
611         * page/Settings.cpp:
612         (WebCore::Settings::Settings): Add new m_geolocationEnabled flag default value
613         (WebCore::Settings::setGeolocationEnabled): Setter for  m_geolocationEnabled flag
614         * page/Settings.h:
615         (WebCore::Settings::geolocationEnabled):  Add m_geolocationEnabled flag
616         * platform/chromium/GeolocationServiceChromium.cpp: Added.
617         (WebCore::GeolocationServiceChromium::GeolocationServiceChromium): Place holder GeolocationServiceChromium)
618         (WebCore::createGeolocationService): factory function, only required when ENABLED(GEOLOCATION) is true
619
620 2009-12-03  Enrica Casucci  <enrica@apple.com>
621
622         Reviewed by John Sullivan.
623
624         SpinTracer: 349 spins in Mail at WebCore::Editor::advanceToNextMisspelling(bool)
625         <rdar://problem/7198592>
626         https://bugs.webkit.org/show_bug.cgi?id=32129
627
628         Fixed the way the next paragraph is calculated.
629         I've added a repro case in Safari and attached it to the Bugzilla bug.
630
631         * editing/Editor.cpp:
632         (WebCore::findFirstMisspellingOrBadGrammarInRange): Changed the way we move to the
633         next paragraph in the loop.
634
635 2009-12-03  Oliver Hunt  <oliver@apple.com>
636
637         Build fix
638
639         * svg/SVGListTraits.h:
640         (WebCore::):
641
642 2009-12-03  Oliver Hunt  <oliver@apple.com>
643
644         Build fix
645
646         * svg/SVGListTraits.h:
647         (WebCore::):
648
649 2009-12-03  Brady Eidson  <beidson@apple.com>
650
651         No wonder editing WebCore.exp repeatedly while I worked on this patch never seemed to stick.
652
653         Long live our auto-generated overlords that I didn't know about...  
654
655         * WebCore.base.exp:
656
657 2009-12-03  Oliver Hunt  <oliver@apple.com>
658
659         Reviewed by Dan Bernstein.
660
661         REGRESSION (r51627): 3 SVG tests are failing
662         https://bugs.webkit.org/show_bug.cgi?id=32117
663
664         Null checking Items in the SVGList is insufficient as items may
665         be floats, etc so add SVGListTraits::isNull and add appropriate
666         specializations.
667
668         Test: svg/dom/svglist-exception-on-out-bounds-error.html
669
670         * svg/SVGList.h:
671         (WebCore::SVGListTypeOperations::isNull):
672         (WebCore::SVGList::initialize):
673         (WebCore::SVGList::insertItemBefore):
674         (WebCore::SVGList::replaceItem):
675         (WebCore::SVGList::appendItem):
676         * svg/SVGListTraits.h:
677         (WebCore::):
678
679 2009-12-03  Brady Eidson  <beidson@apple.com>
680
681         No review - release build fix.
682
683         * history/HistoryItem.cpp:
684         (WebCore::HistoryItem::documentDetached):
685
686 2009-12-03  Brady Eidson  <beidson@apple.com>
687
688         No review - release build fix.
689
690         * loader/HistoryController.cpp:
691         (WebCore::HistoryController::pushState):
692
693 2009-12-03  Enrica Casucci  <enrica@apple.com>
694
695         Reviewed by Adele Peterson.
696
697         Multiple Undos removes the last posted comment and/or the ones before it.
698         <rdar://problem/6557066>
699         https://bugs.webkit.org/show_bug.cgi?id=32079
700         
701         The fix consists in preventing Undos and Redos to be applied to elements that
702         are no longer editable. We do not attempt to remove the commands from the queue.
703         It is a relatively simple fix that comes with a little extra overhead for the apply
704         and unapply methods where we are now performing the editability check.
705
706         Test: editing/undo/undo-indent-noneditable.html
707
708         * editing/AppendNodeCommand.cpp:
709         (WebCore::AppendNodeCommand::doApply):
710         (WebCore::AppendNodeCommand::doUnapply):
711         * editing/DeleteFromTextNodeCommand.cpp:
712         (WebCore::DeleteFromTextNodeCommand::doApply):
713         (WebCore::DeleteFromTextNodeCommand::doUnapply):
714         * editing/InsertIntoTextNodeCommand.cpp:
715         (WebCore::InsertIntoTextNodeCommand::doApply):
716         (WebCore::InsertIntoTextNodeCommand::doUnapply):
717         * editing/InsertNodeBeforeCommand.cpp:
718         (WebCore::InsertNodeBeforeCommand::doApply):
719         (WebCore::InsertNodeBeforeCommand::doUnapply):
720         * editing/JoinTextNodesCommand.cpp:
721         (WebCore::JoinTextNodesCommand::doApply):
722         (WebCore::JoinTextNodesCommand::doUnapply):
723         * editing/MergeIdenticalElementsCommand.cpp:
724         (WebCore::MergeIdenticalElementsCommand::doApply):
725         (WebCore::MergeIdenticalElementsCommand::doUnapply):
726         * editing/RemoveNodeCommand.cpp:
727         (WebCore::RemoveNodeCommand::doApply):
728         (WebCore::RemoveNodeCommand::doUnapply):
729         * editing/SplitElementCommand.cpp:
730         (WebCore::SplitElementCommand::executeApply):
731         (WebCore::SplitElementCommand::doUnapply):
732         * editing/SplitTextNodeCommand.cpp:
733         (WebCore::SplitTextNodeCommand::doApply):
734         (WebCore::SplitTextNodeCommand::doUnapply):
735         * editing/WrapContentsInDummySpanCommand.cpp:
736         (WebCore::WrapContentsInDummySpanCommand::doUnapply):
737         (WebCore::WrapContentsInDummySpanCommand::doReapply):
738
739 2009-12-03  Brady Eidson  <beidson@apple.com>
740
741         Reviewed by Sam Weinig.
742
743         <rdar://problem/7214236> and http://webkit.org/b/32052 - Implement HTML5 state object history API
744
745         Tests: fast/loader/stateobjects/document-destroyed-navigate-back.html
746                fast/loader/stateobjects/document-destroyed-navigate-back-with-fragment-scroll.html
747                fast/loader/stateobjects/popstate-after-load-complete-addeventlistener.html
748                fast/loader/stateobjects/popstate-after-load-complete-body-attribute.html
749                fast/loader/stateobjects/popstate-after-load-complete-window-attribute.html
750                fast/loader/stateobjects/pushstate-object-types.html
751                fast/loader/stateobjects/pushstate-then-replacestate.html
752                fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange.html
753                fast/loader/stateobjects/replacestate-then-pushstate.html
754                http/tests/loading/state-object-security-exception.html
755
756         Derived sources and project file changes:
757         * DerivedSources.cpp:
758         * DerivedSources.make:
759         * GNUmakefile.am
760         * WebCore.pro
761         * WebCore.vcproj/WebCore.vcproj:
762         * WebCore.xcodeproj/project.pbxproj:
763
764         Add the new PopStateEvent:
765         * dom/PopStateEvent.cpp: Added.
766         (WebCore::PopStateEvent::PopStateEvent):
767         (WebCore::PopStateEvent::initPopStateEvent):
768         * dom/PopStateEvent.h: Added.
769         (WebCore::PopStateEvent::create):
770         (WebCore::PopStateEvent::isPopStateEvent):
771         (WebCore::PopStateEvent::state):
772         * dom/PopStateEvent.idl: Added.
773         * bindings/js/JSPopStateEventCustom.cpp: Added.
774         (WebCore::JSPopStateEvent::initPopStateEvent):
775         (WebCore::JSPopStateEvent::state):
776         * bindings/js/JSEventCustom.cpp:
777         (WebCore::toJS):
778         * dom/Event.cpp:
779         (WebCore::Event::isPopStateEvent):
780         * dom/Event.h:
781         * dom/EventNames.h:
782
783         Add the "onpopstate" attribute:
784         * html/HTMLAttributeNames.in:
785         * html/HTMLBodyElement.cpp:
786         (WebCore::HTMLBodyElement::parseMappedAttribute):
787         * html/HTMLBodyElement.idl:
788         * html/HTMLFrameSetElement.cpp:
789         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
790         * html/HTMLFrameSetElement.h:
791         * html/HTMLFrameSetElement.idl:
792         * page/DOMWindow.h:
793         * page/DOMWindow.idl:
794
795         Add pushState and replaceState management to the loader and history machinery:
796         * bindings/js/JSHistoryCustom.cpp:
797         (WebCore::JSHistory::pushState):
798         (WebCore::JSHistory::replaceState):
799         * loader/HistoryController.cpp:
800         (WebCore::HistoryController::updateForSameDocumentNavigation): Augmented from "scrollToAnchor()", combining
801           both the same-document fragment scroll case with the new same-document state object activation case.
802         (WebCore::HistoryController::pushState):
803         (WebCore::HistoryController::replaceState):
804         * loader/HistoryController.h:
805         * history/BackForwardList.cpp:
806         (WebCore::BackForwardList::addItem): Use insertItemAfterCurrent.
807         (WebCore::BackForwardList::insertItemAfterCurrent): Optionally insert the item without clearing the forward
808           list, as pushStateItem might've selectively cleared only certain items, with the bulk of the forward list
809           meant to remain.
810         (WebCore::BackForwardList::pushStateItem): Clear the forward list *only* for the state item's document, then 
811           insert the new item.
812         (WebCore::BackForwardList::removeItem):
813         * history/BackForwardList.h:
814         * page/History.cpp:
815         (WebCore::History::urlForState):
816         (WebCore::History::stateObjectAdded):
817         * page/History.h:
818         * page/History.idl:
819
820         Let HistoryItems and Documents associate with each other, as well as letting HistoryItems contain state objects:
821         * history/HistoryItem.cpp:
822         (WebCore::HistoryItem::HistoryItem):
823         (WebCore::HistoryItem::~HistoryItem):
824         (WebCore::HistoryItem::setStateObject):
825         (WebCore::HistoryItem::setDocument):
826         (WebCore::HistoryItem::documentDetached):
827         * history/HistoryItem.h:
828         (WebCore::HistoryItem::stateObject):
829         (WebCore::HistoryItem::document):
830         * dom/Document.cpp:
831         (WebCore::Document::detach): Notify all back/forward history items owned by this Document that it
832           is going away.
833         (WebCore::Document::registerHistoryItem): Manage the list of back/forward history items this document owns.
834         (WebCore::Document::unregisterHistoryItem): Ditto.
835         * dom/Document.h:
836
837         Add the ability for Documents, DocumentLoaders, and FrameLoaderClients to be notified when a Documents
838         URL changes as the result of pushState(), replaceState(), or a popstate navigation:
839         * dom/Document.cpp:
840         (WebCore::Document::implicitClose): If there's a pending state object, dispatch the popstate event.
841         (WebCore::Document::updateURLForPushOrReplaceState):
842         (WebCore::Document::statePopped): If loading is complete, dispatch the popstate event. Otherwise, set 
843           the pending state object.
844         * loader/DocumentLoader.cpp:
845         (WebCore::DocumentLoader::replaceRequestURLForSameDocumentNavigation):
846         * loader/DocumentLoader.h:
847         * loader/FrameLoaderClient.h:
848         * loader/EmptyClients.h:
849         (WebCore::EmptyFrameLoaderClient::dispatchDidChangeStateObjectForPageForFrame):
850
851         Change handling of "loading a HistoryItem" to distinguish between new-Document navigations and same-Document
852         navigations, combining the old concept of anchor scrolls with the new concept of state object navigations:
853         * loader/FrameLoader.cpp:
854         (WebCore::FrameLoader::loadInSameDocument):
855         (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
856         (WebCore::FrameLoader::navigateWithinDocument):
857         (WebCore::FrameLoader::navigateToDifferentDocument):
858         (WebCore::FrameLoader::loadItem):
859         * loader/FrameLoader.h:
860         * page/Page.cpp:
861         (WebCore::Page::goToItem): Changed to allow state object activations to pass through without the load stopping.
862
863 2009-12-03  Pavel Feldman  <pfeldman@chromium.org>
864
865         Not reviewed: chromium build fix.
866         r51621 changed JS bindings only, broke v8's.
867
868         * bindings/v8/ScriptFunctionCall.cpp:
869         (WebCore::ScriptFunctionCall::appendArgument):
870         * bindings/v8/ScriptFunctionCall.h:
871
872 2009-12-03  Dimitri Glazkov  <dglazkov@chromium.org>
873
874         Reviewed by Adam Barth.
875
876         [V8] Attributes and NamedNodeMaps aren't tracked correctly and may be prematurely garbage-collected.
877         https://bugs.webkit.org/show_bug.cgi?id=32094
878
879         Covered by existing test: LayoutTests/fast/dom/Attr/access-after-element-destruction.html
880
881         * bindings/v8/DOMObjectsInclude.h:
882         * bindings/v8/V8DOMWrapper.cpp:
883         (WebCore::V8DOMWrapper::getTemplate):
884         (WebCore::V8DOMWrapper::convertToV8Object):
885         (WebCore::V8DOMWrapper::convertNamedNodeMapToV8Object):
886         * bindings/v8/V8DOMWrapper.h:
887         * bindings/v8/V8GCController.cpp:
888         (WebCore::ObjectGrouperVisitor::visitDOMWrapper):
889         * bindings/v8/custom/V8CustomBinding.h:
890
891 2009-12-03  Pavel Feldman  <pfeldman@chromium.org>
892
893         Reviewed by Timothy Hatcher.
894
895         Chromium: Add support for settings containing ":"
896
897         https://bugs.webkit.org/show_bug.cgi?id=32118
898
899         * inspector/front-end/WatchExpressionsSidebarPane.js:
900         (WebInspector.WatchExpressionsSection):
901
902 2009-12-03  Rafael Antognolli  <antognolli@profusion.mobi>, Kenneth Christiansen <kenneth@webkit.org>
903
904         Reviewed by Simon Fraser.
905
906         repaint events from outside the viewport aren't received
907         https://bugs.webkit.org/show_bug.cgi?id=32081
908
909         When using a tiled backing store for painting, you need to receive
910         event from outside the viewport. Setting the viewport to the size
911         of the contents is not an option if you want to make use of WebCore's
912         infrastructure for drawing scrollbars etc.
913
914         A new property, paintsEntireContents, has been introduced for the
915         above use-case. It is settable, as tiling will be optional for Qt,
916         and for the not yet upstreamed EFL port, there will be two different
917         views, where only one of them are tiled.
918
919         No change in behavior, so no new tests added.
920
921         * page/FrameView.cpp:
922         (WebCore::FrameView::repaintContentRectangle):
923         * platform/ScrollView.cpp:
924         (WebCore::ScrollView::ScrollView):
925         (WebCore::ScrollView::setPaintsEntireContents):
926         (WebCore::ScrollView::wheelEvent):
927         * platform/ScrollView.h:
928         (WebCore::ScrollView::paintsEntireContents):
929
930 2009-11-23  Jeremy Moskovich  <jeremy@chromium.org>
931
932         Reviewed by Eric Seidel.
933
934         Switch Chrome/Mac to use Core Text APIs rather than ATSUI APIs.
935         https://bugs.webkit.org/show_bug.cgi?id=31802
936
937         No test since this is already covered by existing pixel tests.
938
939         * platform/graphics/SimpleFontData.h: Change #ifdef to define getNSFont() on Chrome/Mac .
940         * platform/graphics/mac/ComplexTextControllerCoreText.cpp: Provide forward declarations
941         of Core Text functions that are public on 10.6 but SPI on 10.5.
942
943 2009-12-03  Pavel Feldman  <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>
944
945         Reviewed by Timothy Hatcher.
946
947         Web Inspector: Simplify the settings support in inspector controller.
948
949         https://bugs.webkit.org/show_bug.cgi?id=32076
950
951         Test: inspector/settings-set-get.html
952
953         * WebCore.Inspector.exp:
954         * bindings/js/JSInspectorFrontendHostCustom.cpp:
955         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
956         * inspector/InspectorClient.h:
957         * inspector/InspectorController.cpp:
958         (WebCore::InspectorController::~InspectorController):
959         (WebCore::InspectorController::setting):
960         (WebCore::InspectorController::setSetting):
961         (WebCore::InspectorController::setWindowVisible):
962         (WebCore::InspectorController::attachWindow):
963         (WebCore::InspectorController::setAttachedWindowHeight):
964         (WebCore::InspectorController::storeLastActivePanel):
965         (WebCore::InspectorController::scriptObjectReady):
966         (WebCore::InspectorController::showWindow):
967         (WebCore::InspectorController::enableResourceTracking):
968         (WebCore::InspectorController::disableResourceTracking):
969         (WebCore::InspectorController::ensureResourceTrackingSettingsLoaded):
970         (WebCore::InspectorController::enableProfiler):
971         (WebCore::InspectorController::disableProfiler):
972         (WebCore::InspectorController::enableDebuggerFromFrontend):
973         (WebCore::InspectorController::disableDebugger):
974         * inspector/InspectorController.h:
975         * inspector/InspectorFrontendHost.cpp:
976         (WebCore::InspectorFrontendHost::setting):
977         (WebCore::InspectorFrontendHost::setSetting):
978         * inspector/InspectorFrontendHost.h:
979         * inspector/InspectorFrontendHost.idl:
980         * loader/EmptyClients.h:
981         (WebCore::EmptyInspectorClient::populateSetting):
982         (WebCore::EmptyInspectorClient::storeSetting):
983
984 2009-12-03  Ben Murdoch  <benm@google.com>
985
986         Reviewed by Brady Eidson.
987
988         [Android] notifyHistoryItemChanged() should pass a pointer to the HistoryItem that changed.
989         https://bugs.webkit.org/show_bug.cgi?id=31915
990
991         No change in functionality so no new tests required.
992
993         * history/HistoryItem.cpp:
994         (WebCore::defaultNotifyHistoryItemChanged): Update this function to pass the HistoryItem that is being changed.
995         (WebCore::HistoryItem::setAlternateTitle): Update call to notifyHistoryItemChanged to include the new parameter.
996         (WebCore::HistoryItem::setURLString): ditto.
997         (WebCore::HistoryItem::setOriginalURLString): ditto.
998         (WebCore::HistoryItem::setReferrer): ditto.
999         (WebCore::HistoryItem::setTitle): ditto.
1000         (WebCore::HistoryItem::setTarget): ditto.
1001         (WebCore::HistoryItem::setDocumentState): On Android, add a call to notifyHistoryItemChanged. See bug for a discussion of why this is needed.
1002         (WebCore::HistoryItem::clearDocumentState): ditto.
1003         (WebCore::HistoryItem::setIsTargetItem): ditto.
1004         (WebCore::HistoryItem::addChildItem): ditto.
1005         (WebCore::HistoryItem::setFormInfoFromRequest): ditto.
1006         * history/HistoryItem.h: Update signature of notifyHistoryItemChanged.
1007
1008 2009-12-03  Ben Murdoch  <benm@google.com>
1009
1010         Reviewed by Brady Eidson.
1011
1012         [Android] The FrameLoaderClient is unaware of BackForwardList changes.
1013         https://bugs.webkit.org/show_bug.cgi?id=31914
1014
1015         This change adds three new methods on the FrameLoaderClient interface to receive notifications when the BackForwardList changes.
1016
1017         No new tests required. Functionality on all platforms upstream remains the same. Android is the first platform to make use of these callbacks.
1018
1019         * history/BackForwardList.cpp:
1020         (WebCore::BackForwardList::addItem): Execute the callback.
1021         (WebCore::BackForwardList::goBack): ditto.
1022         (WebCore::BackForwardList::goForward): ditto.
1023         (WebCore::BackForwardList::goToItem): ditto.
1024         (WebCore::BackForwardList::setCapacity): dito.
1025         * loader/EmptyClients.h:
1026         (WebCore::EmptyFrameLoaderClient::dispatchDidAddBackForwardItem): Add an empty implementation for the callback that does nothing.
1027         (WebCore::EmptyFrameLoaderClient::dispatchDidRemoveBackForwardItem): ditto.
1028         (WebCore::EmptyFrameLoaderClient::dispatchDidChangeBackForwardIndex): ditto.
1029         * loader/FrameLoaderClient.h:
1030
1031 2009-12-03  Ben Murdoch  <benm@google.com>
1032
1033         Reviewed by Brady Eidson.
1034
1035         [Android] Upstream WebCore/history/android: Require some platform specific state attached to HistoryItem.
1036         https://bugs.webkit.org/show_bug.cgi?id=31913
1037
1038         Android stores information such as the zoom scale factor and bridge back to the Java counterpart with HistoryItem.
1039
1040         No new tests required as this is Android specific code.
1041
1042         * history/HistoryItem.h: Add Android specific member data to HistoryItem.
1043         * history/android: Added.
1044         * history/android/AndroidWebHistoryBridge.h: Added.
1045         * history/android/HistoryItemAndroid.cpp: Added, provides implementation for Android specific member functions in HistoryItem.
1046         (WebCore::HistoryItem::bridge): Added.
1047         (WebCore::HistoryItem::setBridge): Added.
1048
1049 2009-12-03  Oliver Hunt  <oliver@apple.com>
1050
1051         Reviewed by Maciej Stachowiak.
1052
1053         NULL ptr in SVGPathSegList::getPathSegAtLength()
1054         https://bugs.webkit.org/show_bug.cgi?id=30313
1055
1056         Add exception checks to SVGPathSegList's implementation to catch (and propagate) exceptions.
1057         Add null checks to SVGList's content manipulation functions to prevent
1058         null values from entering the list in the first place.
1059
1060         Test: svg/dom/svgpath-out-of-bounds-getPathSeg.html
1061
1062         * svg/SVGList.h:
1063         (WebCore::SVGList::initialize):
1064         (WebCore::SVGList::insertItemBefore):
1065         (WebCore::SVGList::replaceItem):
1066         (WebCore::SVGList::appendItem):
1067         * svg/SVGPathElement.cpp:
1068         (WebCore::SVGPathElement::getPathSegAtLength):
1069         * svg/SVGPathElement.h:
1070         * svg/SVGPathElement.idl:
1071         * svg/SVGPathSegList.cpp:
1072         (WebCore::SVGPathSegList::getPathSegAtLength):
1073         (WebCore::SVGPathSegList::toPathData):
1074         (WebCore::SVGPathSegList::createAnimated):
1075         * svg/SVGPathSegList.h:
1076
1077 2009-12-02  Yusuke Sato  <yusukes@chromium.org>
1078
1079         Reviewed by Eric Seidel.
1080
1081         Sanitize web fonts using the OTS library 
1082         https://bugs.webkit.org/show_bug.cgi?id=31106
1083
1084         Add support for OpenType sanitizer (OTS). It parses OpenType files (from @font-face)
1085         and attempts to validate and sanitize them. We hope this reduces the attack surface
1086         of the system font libraries.
1087
1088         * WebCore.gyp/WebCore.gyp: Added dependency to (chromium_src_dir)/third_party/ots/ library.
1089         * WebCore.gypi: Added new files below.
1090         * WebCore.xcodeproj/project.pbxproj: Ditto.
1091         * platform/graphics/chromium/FontCustomPlatformData.cpp: Validate and transcode a web font.
1092         (WebCore::createFontCustomPlatformData):
1093         * platform/graphics/mac/FontCustomPlatformData.cpp: Ditto.
1094         (WebCore::createFontCustomPlatformData):
1095         * platform/graphics/opentype/OpenTypeSanitizer.cpp: Added.
1096         (WebCore::OpenTypeSanitizer::sanitize):
1097         * platform/graphics/opentype/OpenTypeSanitizer.h: Added.
1098         (WebCore::OpenTypeSanitizer::OpenTypeSanitizer):
1099
1100 2009-12-02  Oliver Hunt  <oliver@apple.com>
1101
1102         Reviewed by Sam Weinig.
1103
1104         Web Inspector frontend heap allocates ScriptFunctionCall which is unsafe
1105         https://bugs.webkit.org/show_bug.cgi?id=32098
1106
1107         Fix is simply to make the ScriptFunctionCall stack allocated as nature intended.
1108         Doing this required adding an appendArgument(char*) to ScriptFunctionCall so
1109         that an explicit String cast would not be necessary.
1110
1111         To prevent something like this happening again in future i've added private
1112         operator new implementations to ScriptFunctionCall making this type of mistake
1113         produce errors when compiling.
1114
1115         Test case: Inspector tests now pass with GC on every alloc enabled.
1116
1117         * bindings/js/ScriptFunctionCall.cpp:
1118         (WebCore::ScriptFunctionCall::appendArgument):
1119         * bindings/js/ScriptFunctionCall.h:
1120         (WebCore::ScriptFunctionCall::operator new):
1121         (WebCore::ScriptFunctionCall::operator new[]):
1122         * inspector/InspectorFrontend.cpp:
1123         (WebCore::InspectorFrontend::addConsoleMessage):
1124         (WebCore::InspectorFrontend::updateConsoleMessageRepeatCount):
1125         (WebCore::InspectorFrontend::addResource):
1126         (WebCore::InspectorFrontend::updateResource):
1127         (WebCore::InspectorFrontend::removeResource):
1128         (WebCore::InspectorFrontend::updateFocusedNode):
1129         (WebCore::InspectorFrontend::setAttachedWindow):
1130         (WebCore::InspectorFrontend::addRecordToTimeline):
1131         (WebCore::InspectorFrontend::parsedScriptSource):
1132         (WebCore::InspectorFrontend::failedToParseScriptSource):
1133         (WebCore::InspectorFrontend::addProfileHeader):
1134         (WebCore::InspectorFrontend::setRecordingProfile):
1135         (WebCore::InspectorFrontend::didGetProfileHeaders):
1136         (WebCore::InspectorFrontend::didGetProfile):
1137         (WebCore::InspectorFrontend::pausedScript):
1138         (WebCore::InspectorFrontend::setDocument):
1139         (WebCore::InspectorFrontend::setDetachedRoot):
1140         (WebCore::InspectorFrontend::setChildNodes):
1141         (WebCore::InspectorFrontend::childNodeCountUpdated):
1142         (WebCore::InspectorFrontend::childNodeInserted):
1143         (WebCore::InspectorFrontend::childNodeRemoved):
1144         (WebCore::InspectorFrontend::attributesUpdated):
1145         (WebCore::InspectorFrontend::didRemoveNode):
1146         (WebCore::InspectorFrontend::didGetChildNodes):
1147         (WebCore::InspectorFrontend::didApplyDomChange):
1148         (WebCore::InspectorFrontend::didGetEventListenersForNode):
1149         (WebCore::InspectorFrontend::didGetCookies):
1150         (WebCore::InspectorFrontend::didDispatchOnInjectedScript):
1151         (WebCore::InspectorFrontend::addDatabase):
1152         (WebCore::InspectorFrontend::selectDatabase):
1153         (WebCore::InspectorFrontend::didGetDatabaseTableNames):
1154         (WebCore::InspectorFrontend::addDOMStorage):
1155         (WebCore::InspectorFrontend::selectDOMStorage):
1156         (WebCore::InspectorFrontend::didGetDOMStorageEntries):
1157         (WebCore::InspectorFrontend::didSetDOMStorageItem):
1158         (WebCore::InspectorFrontend::didRemoveDOMStorageItem):
1159         (WebCore::InspectorFrontend::updateDOMStorage):
1160         (WebCore::InspectorFrontend::addNodesToSearchResult):
1161         (WebCore::InspectorFrontend::evaluateForTestInFrontend):
1162         * inspector/InspectorFrontend.h:
1163
1164 2009-12-02  Dave Hyatt  <hyatt@apple.com>
1165
1166         Reviewed by Darin Adler.
1167
1168         https://bugs.webkit.org/show_bug.cgi?id=32072, clean up invalid @-rule error handling so that we
1169         pass more CSS test suite stuff.  Make the grammar stop enforcing the ordering of @namespace vs.
1170         @variables vs. @import.  Just let the parser handle that instead.  This simplifies the grammar and
1171         makes error handling deal with more cases correctly.
1172
1173         Added fast/css/namespaces/namespaces-invalid-at-rules.xml
1174
1175         * css/CSSGrammar.y:
1176         * css/CSSParser.cpp:
1177         (WebCore::CSSParser::CSSParser):
1178         (WebCore::CSSParser::parseRule):
1179         (WebCore::CSSParser::createCharsetRule):
1180         (WebCore::CSSParser::createImportRule):
1181         (WebCore::CSSParser::createMediaRule):
1182         (WebCore::CSSParser::createKeyframesRule):
1183         (WebCore::CSSParser::createStyleRule):
1184         (WebCore::CSSParser::createFontFaceRule):
1185         (WebCore::CSSParser::addNamespace):
1186         (WebCore::CSSParser::createVariablesRule):
1187         * css/CSSParser.h:
1188
1189 2009-12-02  Yusuke Sato  <yusukes@chromium.org>
1190
1191         Reviewed by Dan Bernstein.
1192
1193         Safari/Chromium for Windows fails to load CJK WebFonts
1194         https://bugs.webkit.org/show_bug.cgi?id=31804
1195         
1196         * platform/graphics/opentype/OpenTypeUtilities.cpp:
1197         (WebCore::renameAndActivateFont): Load a remote font even if the font has 2 or more faces.
1198
1199 2009-12-02  Avi Drissman  <avi@chromium.org>
1200
1201         Reviewed by Darin Fisher.
1202
1203         Chromium: Need tickmarks in scrollbar
1204         https://bugs.webkit.org/show_bug.cgi?id=32069
1205
1206         * WebCore.gyp/WebCore.gyp:
1207         * WebCore.gypi:
1208         * platform/chromium/ScrollbarThemeChromiumMac.h: Added.
1209         * platform/chromium/ScrollbarThemeChromiumMac.mm: Added.
1210
1211 2009-11-13  Timothy Hatcher  <timothy@apple.com>
1212
1213         Expose a function to set the value of an input element on behalf of the user.
1214         This function will dispatch the change event so the page is notified when autofill
1215         happens. Also dispatch a change event when a select element is changed by autofill.
1216
1217         <rdar://problem/6760590> Would like a way to detect a login form AutoFill from JavaScript
1218
1219         Reviewed by Darin Adler.
1220
1221         * WebCore.xcodeproj/project.pbxproj: Added the DOMHTMLInputElementPrivate.h header.
1222         * bindings/objc/DOMHTML.mm:
1223         (-[DOMHTMLSelectElement _activateItemAtIndex:]): Call setSelectedIndexByUser instead so
1224         a change event is fired. This method is called by Safari autofill.
1225         * dom/Document.cpp:
1226         (WebCore::Document::setFocusedNode): Use dispatchFormControlChangeEvent instead
1227         of dispatching the change event directly to be consistent.
1228         * html/HTMLFormControlElement.cpp:
1229         (WebCore::HTMLInputElement::setValueForUser): Added. Calls setValue with the sendChangeEvent
1230         (WebCore::HTMLInputElement::setValue): Added the optional sendChangeEvent argument. Mimics setChecked.
1231         * html/HTMLInputElement.h:
1232         * html/HTMLInputElement.idl: Added setValueForUser for non-JS languages.
1233         * html/InputElement.h: Added setValueForUser.
1234
1235 2009-12-02  Pavel Feldman  <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>
1236
1237         Reviewed by Timothy Hatcher.
1238
1239         Web Inspector: DOM tree selection disappears upon page refresh.
1240
1241         https://bugs.webkit.org/show_bug.cgi?id=31142
1242
1243         Test: inspector/elements-panel-selection-on-refresh.html
1244
1245         * inspector/InjectedScriptHost.cpp:
1246         (WebCore::InjectedScriptHost::pushNodeByPathToFrontend):
1247         * inspector/InjectedScriptHost.h:
1248         * inspector/InjectedScriptHost.idl:
1249         * inspector/InspectorBackend.h:
1250         * inspector/InspectorController.cpp:
1251         (WebCore::InspectorController::close):
1252         (WebCore::InspectorController::releaseDOMAgent):
1253         (WebCore::InspectorController::resetScriptObjects):
1254         * inspector/InspectorDOMAgent.cpp:
1255         (WebCore::InspectorDOMAgent::~InspectorDOMAgent):
1256         (WebCore::InspectorDOMAgent::reset):
1257         (WebCore::InspectorDOMAgent::setDocument):
1258         (WebCore::InspectorDOMAgent::pushDocumentToFrontend):
1259         (WebCore::InspectorDOMAgent::nodeForPath):
1260         (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
1261         * inspector/InspectorDOMAgent.h:
1262         * inspector/front-end/DOMAgent.js:
1263         (WebInspector.DOMNode.prototype._renumber):
1264         (WebInspector.DOMAgent.prototype._setDocument):
1265         * inspector/front-end/ElementsPanel.js:
1266         (WebInspector.ElementsPanel.prototype.reset):
1267         (WebInspector.ElementsPanel.prototype.setDocument.selectDefaultNode):
1268         (WebInspector.ElementsPanel.prototype.setDocument.selectLastSelectedNode):
1269         (WebInspector.ElementsPanel.prototype.setDocument):
1270         * inspector/front-end/InjectedScript.js:
1271         (InjectedScript.pushNodeByPathToFrontend):
1272         * inspector/front-end/InjectedScriptAccess.js:
1273
1274 2009-12-01  Dave Hyatt  <hyatt@apple.com>
1275
1276         Reviewed by Dan Bernstein.
1277
1278         https://bugs.webkit.org/show_bug.cgi?id=32045, make sure escape sequences work with
1279         all the @-rules we support.  When escape sequences are present, the lexical scanner
1280         just returns a generic token name: ATKEYWORD.  We have to process the escape sequences
1281         and then recheck against the rules we support with the final processed name.  If we
1282         find a match, we mutate the token value to the appropriate rule name token, e.g.,
1283         NAMESPACE_SYM.
1284
1285         Added fast/css/namespaces/namespaces-escapes.xml
1286
1287         * css/CSSParser.cpp:
1288         (WebCore::CSSParser::lex):
1289         (WebCore::CSSParser::recheckAtKeyword):
1290         (WebCore::CSSParser::text):
1291         * css/CSSParser.h:
1292
1293 2009-12-02  Anton Muhin  <antonm@chromium.org>
1294
1295         Reviewed by Adam Barth.:w
1296
1297         Allow to skip thread checks when accessing DOMDataStore for processes
1298         which run V8 in single thread mode.
1299         https://bugs.webkit.org/show_bug.cgi?id=31877
1300
1301         Should be covered by buildbots.
1302
1303         * bindings/v8/V8DOMMap.cpp:
1304         (WebCore::getDOMDataStore):
1305         (WebCore::enableFasterDOMStoreAccess):
1306         (WebCore::getDOMNodeMap):
1307         (WebCore::getDOMObjectMap):
1308         (WebCore::getActiveDOMObjectMap):
1309         (WebCore::getDOMSVGElementInstanceMap):
1310         (WebCore::getDOMSVGObjectWithContextMap):
1311         * bindings/v8/V8DOMMap.h:
1312
1313 2009-12-02  Yury Semikhatsky  <yurys@chromium.org>
1314
1315         Reviewed by Pavel Feldman.
1316
1317         Code clean up: remove ScriptObjectQuarantine.* as a whole.
1318
1319         https://bugs.webkit.org/show_bug.cgi?id=32060
1320
1321         * GNUmakefile.am:
1322         * WebCore.gypi:
1323         * WebCore.pro:
1324         * WebCore.vcproj/WebCore.vcproj:
1325         * WebCore.xcodeproj/project.pbxproj:
1326         * WebCoreSources.bkl:
1327         * bindings/js/JSBindingsAllInOne.cpp:
1328         * bindings/js/ScriptObjectQuarantine.cpp: Removed.
1329         * bindings/js/ScriptObjectQuarantine.h: Removed.
1330         * bindings/js/ScriptValue.cpp:
1331         (WebCore::ScriptValue::quarantineValue):
1332         * bindings/js/ScriptValue.h:
1333         * bindings/v8/ScriptObjectQuarantine.cpp: Removed.
1334         * bindings/v8/ScriptObjectQuarantine.h: Removed.
1335         * bindings/v8/ScriptValue.h:
1336         (WebCore::ScriptValue::quarantineValue):
1337         * inspector/ConsoleMessage.cpp:
1338         (WebCore::ConsoleMessage::ConsoleMessage):
1339         * inspector/InspectorController.cpp:
1340         * inspector/InspectorDatabaseResource.cpp:
1341         (WebCore::InspectorDatabaseResource::bind):
1342         * inspector/InspectorFrontend.cpp:
1343
1344 2009-12-02  Fumitoshi Ukai  <ukai@chromium.org>
1345
1346         Reviewed by Alexey Proskuryakov.
1347
1348         WebSocket handshake check query component of URL
1349         https://bugs.webkit.org/show_bug.cgi?id=31617
1350
1351         Tests: websocket/tests/url-with-credential.html
1352                websocket/tests/url-with-empty-query.html
1353                websocket/tests/url-with-fragment.html
1354                websocket/tests/url-with-query-for-no-query.html
1355                websocket/tests/url-with-query.html
1356
1357         * platform/KURLGoogle.cpp:
1358         (WebCore::KURL::query): returns a null if query is not specified and returns an empty if query is specified but empty.
1359         * websockets/WebSocketHandshake.cpp:
1360         (WebCore::resourceName): added. add query component to path if specified.
1361         (WebCore::WebSocketHandshake::clientLocation):
1362         (WebCore::WebSocketHandshake::clientHandshakeMessage):
1363
1364 2009-12-01  David Levin  <levin@chromium.org>
1365
1366         Reviewed by Eric Seidel.
1367
1368         Incorrect code in WebGLRenderingContext.cpp
1369         https://bugs.webkit.org/show_bug.cgi?id=32046
1370
1371         Fix incorrect code that happened to work. != has higher precendence than &.
1372         The simplest fix is to remove the "!= 0" which violates WebKit style
1373         guidelines anyway.
1374
1375         Also added periods to few comments in the same function.
1376
1377         * html/canvas/WebGLRenderingContext.cpp:
1378         (WebCore::WebGLRenderingContext::validateIndexArray):
1379
1380 2009-12-01  Kent Tamura  <tkent@chromium.org>
1381
1382         Reviewed by Darin Adler.
1383
1384         Change [Reflect] to [ConvertNullToNullString, Reflect] for min, max,
1385         pattern and step attributes of HTMLInputElement.
1386         https://bugs.webkit.org/show_bug.cgi?id=31708
1387
1388         * html/HTMLInputElement.idl:
1389
1390 2009-12-01  Chris Fleizach  <cfleizach@apple.com>
1391
1392         Reviewed by Darin Adler.
1393
1394         WAI-ARIA: implement support for ARIA drag and drop
1395         https://bugs.webkit.org/show_bug.cgi?id=32007
1396
1397         Test: platform/mac/accessibility/aria-drag-drop.html
1398
1399         * accessibility/AccessibilityObject.h:
1400         (WebCore::AccessibilityObject::supportsARIADropping):
1401         (WebCore::AccessibilityObject::supportsARIADragging):
1402         (WebCore::AccessibilityObject::isARIAGrabbed):
1403         (WebCore::AccessibilityObject::setARIAGrabbed):
1404         (WebCore::AccessibilityObject::determineARIADropEffects):
1405         * accessibility/AccessibilityRenderObject.cpp:
1406         (WebCore::AccessibilityRenderObject::supportsARIADropping):
1407         (WebCore::AccessibilityRenderObject::supportsARIADragging):
1408         (WebCore::AccessibilityRenderObject::isARIAGrabbed):
1409         (WebCore::AccessibilityRenderObject::setARIAGrabbed):
1410         (WebCore::AccessibilityRenderObject::determineARIADropEffects):
1411         * accessibility/AccessibilityRenderObject.h:
1412         * accessibility/mac/AccessibilityObjectWrapper.mm:
1413         (-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
1414         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1415         (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
1416         (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
1417         * html/HTMLAttributeNames.in:
1418
1419 2009-12-01  Adam Barth  <abarth@webkit.org>
1420
1421         https://bugs.webkit.org/show_bug.cgi?id=21288
1422
1423         Unreviewed port of @sandbox to V8.
1424
1425         * bindings/v8/ScriptController.cpp:
1426         (WebCore::ScriptController::isEnabled):
1427         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1428         (WebCore::createWindow):
1429
1430 2009-12-01  Patrik Persson  <patrik.j.persson@ericsson.com>
1431
1432         Reviewed by Darin Adler.
1433
1434         Implement HTML5 sandbox attribute for iframes.
1435         http://www.w3.org/TR/html5/text-level-semantics.html#attr-iframe-sandbox
1436         https://bugs.webkit.org/show_bug.cgi?id=21288
1437
1438         Tests: fast/frames/sandboxed-iframe-attribute-parsing.html
1439                fast/frames/sandboxed-iframe-forms.html
1440                fast/frames/sandboxed-iframe-navigation-allowed.html
1441                fast/frames/sandboxed-iframe-navigation-parent.html
1442                fast/frames/sandboxed-iframe-navigation-targetlink.html
1443                fast/frames/sandboxed-iframe-navigation-windowopen.html
1444                fast/frames/sandboxed-iframe-plugins.html
1445                fast/frames/sandboxed-iframe-scripting.html
1446                fast/frames/sandboxed-iframe-storage.html
1447                http/tests/security/sandboxed-iframe-document-cookie.html
1448                http/tests/security/sandboxed-iframe-modify-self.html
1449                http/tests/security/xss-DENIED-sandboxed-iframe.html
1450                http/tests/xmlhttprequest/access-control-sandboxed-iframe-allow.html
1451                http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard.html
1452                http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied.html
1453
1454         * bindings/js/JSDOMWindowCustom.cpp: sandboxing navigation
1455         (WebCore::createWindow):
1456         * bindings/js/ScriptController.cpp: sandboxing scripts
1457         (WebCore::ScriptController::isEnabled):
1458         * dom/Document.cpp:
1459         (WebCore::Document::processHttpEquiv):
1460         (WebCore::Document::cookie): raise exception when accessed from sandbox
1461         (WebCore::Document::setCookie): raise exception when accessed from sandbox
1462         (WebCore::Document::initSecurityContext): updae sandbox status
1463         (WebCore::Document::updateSandboxFlags):
1464         * dom/Document.h:
1465         * dom/Document.idl:
1466         * html/HTMLAppletElement.cpp: sandboxing applets
1467         (WebCore::HTMLAppletElement::createRenderer):
1468         (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
1469         (WebCore::HTMLAppletElement::canEmbedJava):
1470         * html/HTMLAppletElement.h:
1471         * html/HTMLAttributeNames.in:
1472         * html/HTMLFrameOwnerElement.cpp: management of sandbox flags as stated in attribute
1473         (WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
1474         (WebCore::HTMLFrameOwnerElement::setSandboxFlags):
1475         * html/HTMLFrameOwnerElement.h:
1476         (WebCore::HTMLFrameOwnerElement::sandboxFlags):
1477         * html/HTMLIFrameElement.cpp: sandbox attribute parsing
1478         (WebCore::parseSandboxAttribute):
1479         (WebCore::HTMLIFrameElement::parseMappedAttribute):
1480         * html/HTMLIFrameElement.idl:
1481         * inspector/InspectorController.cpp:
1482         (WebCore::InspectorController::getCookies):
1483         * loader/CrossOriginAccessControl.cpp:
1484         (WebCore::passesAccessControlCheck):
1485         * loader/FrameLoader.cpp:
1486         (WebCore::FrameLoader::FrameLoader):
1487         (WebCore::FrameLoader::init):
1488         (WebCore::FrameLoader::submitForm): sandboxing forms
1489         (WebCore::FrameLoader::requestObject): sandboxing plugins
1490         (WebCore::FrameLoader::shouldAllowNavigation): sandboxing navigation
1491         (WebCore::FrameLoader::updateSandboxFlags): propagation of sandbox flags
1492         * loader/FrameLoader.h:
1493         (WebCore::FrameLoader::ownerElementSandboxFlagsChanged):
1494         (WebCore::FrameLoader::isSandboxed):
1495         (WebCore::FrameLoader::sandboxFlags):
1496         * loader/FrameLoaderTypes.h:
1497         (WebCore::):
1498         * page/DOMWindow.cpp: disable storage and databases in sandboxed frames
1499         (WebCore::DOMWindow::sessionStorage):
1500         (WebCore::DOMWindow::localStorage):
1501         (WebCore::DOMWindow::openDatabase):
1502         * page/SecurityOrigin.cpp: added sandboxing status
1503         (WebCore::SecurityOrigin::SecurityOrigin):
1504         (WebCore::SecurityOrigin::canAccess):
1505         (WebCore::SecurityOrigin::canRequest):
1506         (WebCore::SecurityOrigin::toString):
1507         * page/SecurityOrigin.h:
1508         (WebCore::SecurityOrigin::setSandboxFlags):
1509         (WebCore::SecurityOrigin::isSandboxed):
1510         (WebCore::SecurityOrigin::canAccessDatabase):
1511         (WebCore::SecurityOrigin::canAccessStorage):
1512         * websockets/WebSocketChannel.cpp:
1513         (WebCore::WebSocketChannel::didReceiveData):
1514
1515 2009-12-01  Chris Fleizach  <cfleizach@apple.com>
1516
1517         Reviewed by David Kilzer.
1518
1519         ARIA: support a way to create a static text object
1520         https://bugs.webkit.org/show_bug.cgi?id=32030
1521
1522         Test: accessibility/aria-text-role.html
1523
1524         * accessibility/AccessibilityObject.cpp:
1525         (WebCore::createARIARoleMap):
1526         * accessibility/AccessibilityRenderObject.cpp:
1527         (WebCore::AccessibilityRenderObject::stringValue):
1528         (WebCore::AccessibilityRenderObject::isDescendantOfBarrenParent):
1529         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
1530         (WebCore::AccessibilityRenderObject::text):
1531         * accessibility/AccessibilityRenderObject.h:
1532
1533 2009-12-01  Oliver Hunt  <oliver@apple.com>
1534
1535         Reviewed by Maciej Stachowiak.
1536
1537         Inspector crashes when collecting on every allocation
1538         https://bugs.webkit.org/show_bug.cgi?id=32044
1539
1540         The crash is caused by the prototype wrapper object getting collected
1541         when allocating the object that is going to use it as a prototype.
1542         Because the only reference to the prototype wrapper is through the
1543         new object's Structure it does not get marked automatically.
1544
1545         * bindings/js/JSInspectedObjectWrapper.cpp:
1546         (WebCore::JSInspectedObjectWrapper::wrap):
1547         * bindings/js/JSInspectorCallbackWrapper.cpp:
1548         (WebCore::JSInspectorCallbackWrapper::wrap):
1549
1550 2009-12-01  Nikolas Zimmermann  <nzimmermann@rim.com>
1551
1552         Reviewed by Simon Fraser.
1553
1554         Add SVG animation test framework with 'snapshot' functionality
1555         https://bugs.webkit.org/show_bug.cgi?id=31897
1556
1557         Add 'sampleSVGAnimationForElementAtTime' method to the LayoutTestController,
1558         for the use within the new SVG animation test framework (LayoutTests/svg/animations/)
1559
1560         layoutTestController.sampleAnimationAtTime(<svg animation id>, <absolute time>, <svg element id>);
1561         to sample a svg animateMotion/animateColor/animate/set element at certain times.
1562
1563         After the desired SVG animation starts and calling the method above, it's immediately forwarded to
1564         the desired sampling time. After JS returns from the 'sampleSVGAnimationForElementAtTime' method
1565         a callback is fired used to sample the animation value at the target time. It's modelled similar
1566         to the CSS animation/transition testing framework, inspired by
1567         LayoutTests/animations/animation-test-helpers.js.
1568
1569         Though it has been extended to integrate within the fast/js/js-test-* framework, that's used for
1570         the SVG dynamic-updates tests, to simplify test creation, by utilizing script-tests/* only.
1571
1572         Adding a simple testcase testing the DRT methods, it will soon be extended to test animVal/baseVal
1573         interaction, while animating.
1574
1575         Test: svg/animations/animVal-basics.html
1576
1577         * WebCore.base.exp:
1578         * WebCore.xcodeproj/project.pbxproj:
1579         * svg/SVGDocumentExtensions.cpp:
1580         (WebCore::SVGDocumentExtensions::sampleAnimationAtTime):
1581         * svg/SVGDocumentExtensions.h:
1582         * svg/animation/SMILTimeContainer.cpp:
1583         (WebCore::SMILTimeContainer::SMILTimeContainer):
1584         (WebCore::SMILTimeContainer::sampleAnimationAtTime):
1585         (WebCore::SMILTimeContainer::updateAnimations):
1586         * svg/animation/SMILTimeContainer.h:
1587
1588 2009-12-01  Jens Alfke  <snej@chromium.org>
1589
1590         Reviewed by Darin Adler.
1591
1592         Add convenience methods to Element and QualifiedName that take
1593         char* instead of AtomicString, in preparation for removing the
1594         implicit conversion between the two types (30187).
1595         https://bugs.webkit.org/show_bug.cgi?id=31749
1596
1597         * dom/Element.cpp:
1598         (WebCore::Element::setCStringAttribute):  Equivalent to setAttribute.
1599         * dom/Element.h:
1600         * dom/QualifiedName.cpp:
1601         (WebCore::QualifiedName::init):  Shared impl of both constructors
1602         (WebCore::QualifiedName::QualifiedName):  New c'tor taking char*.
1603         * dom/QualifiedName.h:
1604         * platform/network/HTTPHeaderMap.cpp:
1605         (WebCore::CaseFoldingCStringTranslator):  Enables lookup by C string
1606         (WebCore::HTTPHeaderMap::get):  New variant that takes C string
1607         (WebCore::HTTPHeaderMap::contains):  New variant that takes C string
1608         (WebCore::HTTPHeaderMap::add):  New variant that takes C string
1609         * platform/network/HTTPHeaderMap.h:
1610         (WebCore::HTTPHeaderMap::get):
1611         (WebCore::HTTPHeaderMap::add):
1612         * platform/network/ResourceRequestBase.cpp:
1613         (WebCore::ResourceRequestBase::httpHeaderField):  New variant that takes C string
1614         * platform/network/ResourceRequestBase.h:
1615         (WebCore::ResourceRequestBase::setHTTPHeaderField):  Use symbolic names for headers
1616         * platform/network/ResourceResponseBase.cpp:
1617         (WebCore::ResourceResponseBase::httpHeaderField):  New variant that takes C string
1618         * platform/network/ResourceResponseBase.h:
1619
1620 2009-12-01  Alexey Proskuryakov  <ap@apple.com>
1621
1622         More Windows build fix.
1623
1624         * platform/network/cf/CredentialStorageCFNet.cpp:
1625         (WebCore::CredentialStorage::getFromPersistentStorage):
1626
1627 2009-12-01  Alexey Proskuryakov  <ap@apple.com>
1628
1629         Windows build fix.
1630
1631         * platform/network/cf/CredentialStorageCFNet.cpp: Include RetainPtr.h.
1632
1633 2009-12-01  Alexey Proskuryakov  <ap@apple.com>
1634
1635         Reviewed by Darin Adler.
1636
1637         https://bugs.webkit.org/show_bug.cgi?id=32036
1638         Implement CredentialStorage::getFromPersistentStorage for CFNetwork
1639
1640         * platform/network/cf/CredentialStorageCFNet.cpp:
1641         (WebCore::CredentialStorage::getFromPersistentStorage):
1642
1643 2009-12-01  Daniel Bates  <dbates@webkit.org>
1644
1645         Reviewed by Pavel Feldman.
1646
1647         https://bugs.webkit.org/show_bug.cgi?id=32001
1648
1649         Added missing localized strings (that I left out of the patch for bug #21554):
1650         %d × %d pixels
1651         %d × %d pixels (Natural: %d × %d pixels)
1652
1653         Also, changed formatting of these stings to conform with existing ones (added
1654         a space on both sides of the multiply sign).
1655
1656         * English.lproj/localizedStrings.js: Added stings.
1657         * inspector/front-end/ElementsTreeOutline.js:
1658         (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode):
1659
1660 2009-12-01  Dave Hyatt  <hyatt@apple.com>
1661
1662         Reviewed by Simon Fraser.
1663
1664         Fix for bug 32032, empty namespaces should be allowed in @namespace directives in CSS.
1665
1666         Added fast/css/namespaces/namespaces-empty.xml
1667
1668         * css/CSSStyleSheet.cpp:
1669         (WebCore::CSSStyleSheet::addNamespace):
1670         (WebCore::CSSStyleSheet::determineNamespace):
1671
1672 2009-12-01  Joseph Pecoraro  <joepeck@webkit.org>
1673
1674         Reviewed by Timothy Hatcher.
1675
1676         Web Inspector: Escape key in the Search Field should be more User Friendly
1677         https://bugs.webkit.org/show_bug.cgi?id=32005
1678
1679         * inspector/front-end/inspector.js:
1680         (WebInspector.loaded): add mousedown listener on the search field
1681         (WebInspector.searchFieldManualFocus): user clicked to focus on the search field
1682         (WebInspector.searchKeyDown): handle escape
1683
1684 2009-12-01  Dave Hyatt  <hyatt@apple.com>
1685
1686         Reviewed by David Kilzer.
1687
1688         @namespace directives need to use "maybe_space" in the "maybe_ns_prefix" portion of the grammar to match
1689         the spec.  Not doing so prevent comments from being used immmediately after the namespace prefix.
1690
1691         Added fast/css/namespaces-comments.xml
1692
1693         * css/CSSGrammar.y:
1694
1695 2009-12-01  Yael Aharon  <yael.aharon@nokia.com>
1696
1697         Reviewed by Timothy Hatcher.
1698
1699         Reloading WebInspector from context menu is closing it instead of reloading.
1700         https://bugs.webkit.org/show_bug.cgi?id=32004
1701
1702         When reloading WebInspector, don't delete its m_page.
1703
1704         * inspector/InspectorController.cpp:
1705         (WebCore::InspectorController::close):
1706
1707 2009-12-01  Steve Block  <steveblock@google.com>
1708
1709         Reviewed by Dimitri Glazkov.
1710
1711         Adds V8 bindings for Geolocation.
1712         https://bugs.webkit.org/show_bug.cgi?id=30206
1713
1714         Also adds Geolocation files to Chrome build files.
1715
1716         * WebCore.gyp/WebCore.gyp: Modified. Corrects list of Geolocation IDL files.
1717         * WebCore.gypi: Modified. Adds Geolocation files.
1718         * bindings/v8/DOMObjectsInclude.h: Modified. Adds Geolocation includes.
1719         * bindings/v8/DerivedSourcesAllInOne.cpp: Modified. Adds Geolocation files.
1720         * bindings/v8/V8Index.cpp: Modified. Includes Geolocation generated headers.
1721         * bindings/v8/V8Index.h: Modified. Adds Geolocation types to DOM_OBJECT_TYPES.
1722         * bindings/v8/custom/V8CoordinatesCustom.cpp: Added. Handles optional properties.
1723         * bindings/v8/custom/V8CustomBinding.h: Modified. Declares callbacks and getters.
1724         * bindings/v8/custom/V8CustomPositionCallback.cpp: Added.
1725         (WebCore::V8CustomPositionCallback::V8CustomPositionCallback): Added. Constructor.
1726         (WebCore::V8CustomPositionCallback::~V8CustomPositionCallback): Added. Destructor.
1727         (WebCore::V8CustomPositionCallback::handleEvent): Added. Invokes callback.
1728         * bindings/v8/custom/V8CustomPositionCallback.h: Added.
1729         (WebCore::V8CustomPositionCallback::create): Added. Factory method.
1730         * bindings/v8/custom/V8CustomPositionErrorCallback.cpp: Added.
1731         (WebCore::V8CustomPositionErrorCallback::V8CustomPositionErrorCallback): Added. Constructor.
1732         (WebCore::V8CustomPositionErrorCallback::~V8CustomPositionErrorCallback): Added. Destructor.
1733         (WebCore::V8CustomPositionErrorCallback::handleEvent): Added. Invokes callback.
1734         * bindings/v8/custom/V8CustomPositionErrorCallback.h: Added.
1735         (WebCore::V8CustomPositionErrorCallback::create): Added. Factory method.
1736         * bindings/v8/custom/V8GeolocationCustom.cpp: Added.
1737         (WebCore::throwTypeMismatchException): Added. Throws a type mismatch error.
1738         (WebCore::createPositionCallback): Added. Handles type checking for successCallback argument.
1739         (WebCore::createPositionErrorCallback): Added. Handles type checking for errorCallback argument.
1740         (WebCore::createPositionOptions): Added. Handles type checking for positionOptions argument.
1741
1742 2009-12-01  Yury Semikhatsky  <yurys@chromium.org>
1743
1744         Reviewed by Adam Barth.
1745
1746         Provide a way to get ScriptState for the inspected page.
1747
1748         https://bugs.webkit.org/show_bug.cgi?id=32020
1749
1750         * bindings/v8/ScriptController.cpp:
1751         (WebCore::ScriptController::mainWorldScriptState):
1752         * bindings/v8/ScriptController.h:
1753         * bindings/v8/ScriptState.cpp:
1754         (WebCore::scriptStateFromPage):
1755
1756 2009-12-01  Chris Marrin  <cmarrin@apple.com>
1757
1758         Reviewed by Adam Roben.
1759
1760         Changed mallocs to fastMallocs and frees to fastFrees in GraphicsContext3D. Also added error returns
1761         https://bugs.webkit.org/show_bug.cgi?id=30778
1762
1763         * platform/graphics/mac/GraphicsContext3DMac.cpp:
1764         (WebCore::GraphicsContext3D::getProgramInfoLog):
1765         (WebCore::GraphicsContext3D::getShaderInfoLog):
1766         (WebCore::GraphicsContext3D::getShaderSource):
1767         (WebCore::imageToTexture):
1768
1769 2009-12-01  Mads Ager  <ager@chromium.org>
1770
1771         Reviewed by Eric Seidel.
1772
1773         [V8] Don't crash in DOMWindow event getter in OOM situations
1774         https://bugs.webkit.org/show_bug.cgi?id=32017
1775
1776         Add missing null handle checks in DOMWindow event property
1777         accessors.  V8Proxy::context(frame) can return a null handle in
1778         OOM situations either if failing to initialize a context or if an
1779         OOM is handled gracefully and javascript is disabled.
1780
1781         No new tests because we don't have a good way to test
1782         out-of-memory bugs.
1783
1784         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1785         (WebCore::ACCESSOR_GETTER):
1786         (WebCore::ACCESSOR_SETTER):
1787
1788 2009-12-01  Chris Marrin  <cmarrin@apple.com>
1789
1790         Reviewed by Oliver Hunt.
1791
1792         Updated HTMLCanvasElement to accept "experimental-webgl" as the context name.
1793         https://bugs.webkit.org/show_bug.cgi?id=31672
1794
1795         * html/HTMLCanvasElement.cpp:
1796         (WebCore::HTMLCanvasElement::getContext):
1797
1798 2009-12-01  Pavel Feldman  <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>
1799
1800         Not reviewed: chromium build fix, added missing import.
1801
1802         * inspector/InspectorFrontendHost.cpp:
1803
1804 2009-12-01  Pavel Feldman  <pfeldman@chromium.org>
1805
1806         Not reviewed: fix windows build via unexcluding generated files from
1807         project.
1808
1809         * WebCore.vcproj/WebCore.vcproj:
1810
1811 2009-12-01  Mark Rowe  <mrowe@apple.com>
1812
1813         Stop copying IDL files in to the WebCore framework wrapper.
1814
1815         * WebCore.xcodeproj/project.pbxproj:
1816
1817 2009-12-01  Mark Rowe  <mrowe@apple.com>
1818
1819         Fix the Tiger build by making the Xcode project compatible with Xcode 2.4.
1820
1821         This was probably broken by hand-editing the project file as Xcode itself
1822         knows how to keep project files to a backwards-compatible subset of its format.
1823
1824         * WebCore.xcodeproj/project.pbxproj:
1825
1826 2009-12-01  Pavel Feldman  <pfeldman@chromium.org>
1827
1828         Not reviewed: windows build fix (bad vcproj in r51528).
1829
1830         * WebCore.vcproj/WebCore.vcproj:
1831
1832 2009-11-27  Pavel Feldman  <pfeldman@dhcp-172-28-174-220.spb.corp.google.com>
1833
1834         Reviewed by Timothy Hatcher.
1835
1836         Web Inspector: Split InspectorBackend into three parts: backend,
1837         injected script host and frontend host.
1838         
1839         https://bugs.webkit.org/show_bug.cgi?id=31888
1840
1841         * DerivedSources.make:
1842         * GNUmakefile.am:
1843         * WebCore.gypi:
1844         * WebCore.pro:
1845         * WebCore.vcproj/WebCore.vcproj:
1846         * WebCore.xcodeproj/project.pbxproj:
1847         * WebCoreSources.bkl:
1848         * bindings/js/JSBindingsAllInOne.cpp:
1849         * bindings/js/JSInspectorBackendCustom.cpp: Removed.
1850         * bindings/js/JSInspectorFrontendHostCustom.cpp: Added.
1851         (WebCore::JSInspectorFrontendHost::search):
1852         (WebCore::JSInspectorFrontendHost::setting):
1853         (WebCore::JSInspectorFrontendHost::setSetting):
1854         * bindings/js/ScriptObject.cpp:
1855         (WebCore::ScriptGlobalObject::set):
1856         * bindings/js/ScriptObject.h:
1857         * bindings/v8/DOMObjectsInclude.h:
1858         * bindings/v8/DerivedSourcesAllInOne.cpp:
1859         * bindings/v8/ScriptObject.cpp:
1860         (WebCore::ScriptGlobalObject::set):
1861         * bindings/v8/ScriptObject.h:
1862         * bindings/v8/V8Index.cpp:
1863         * bindings/v8/V8Index.h:
1864         * bindings/v8/custom/V8CustomBinding.h:
1865         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: Added.
1866         (WebCore::CALLBACK_FUNC_DECL):
1867         * bindings/v8/custom/V8InspectorBackendCustom.cpp: Removed.
1868         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp: Added.
1869         (WebCore::CALLBACK_FUNC_DECL):
1870         * inspector/InjectedScriptHost.cpp: Added.
1871         (WebCore::InjectedScriptHost::InjectedScriptHost):
1872         (WebCore::InjectedScriptHost::~InjectedScriptHost):
1873         (WebCore::InjectedScriptHost::copyText):
1874         (WebCore::InjectedScriptHost::nodeForId):
1875         (WebCore::InjectedScriptHost::wrapObject):
1876         (WebCore::InjectedScriptHost::unwrapObject):
1877         (WebCore::InjectedScriptHost::pushNodePathToFrontend):
1878         (WebCore::InjectedScriptHost::addNodesToSearchResult):
1879         (WebCore::InjectedScriptHost::currentCallFrame):
1880         (WebCore::InjectedScriptHost::databaseForId):
1881         (WebCore::InjectedScriptHost::selectDatabase):
1882         (WebCore::InjectedScriptHost::selectDOMStorage):
1883         (WebCore::InjectedScriptHost::reportDidDispatchOnInjectedScript):
1884         (WebCore::InjectedScriptHost::inspectorDOMAgent):
1885         (WebCore::InjectedScriptHost::inspectorFrontend):
1886         * inspector/InjectedScriptHost.h: Added.
1887         (WebCore::InjectedScriptHost::create):
1888         (WebCore::InjectedScriptHost::inspectorController):
1889         (WebCore::InjectedScriptHost::disconnectController):
1890         * inspector/InjectedScriptHost.idl: Added.
1891         * inspector/InspectorBackend.cpp:
1892         (WebCore::InspectorBackend::InspectorBackend):
1893         (WebCore::InspectorBackend::storeLastActivePanel):
1894         (WebCore::InspectorBackend::toggleNodeSearch):
1895         (WebCore::InspectorBackend::resourceTrackingEnabled):
1896         (WebCore::InspectorBackend::debuggerEnabled):
1897         (WebCore::InspectorBackend::enableDebugger):
1898         (WebCore::InspectorBackend::disableDebugger):
1899         (WebCore::InspectorBackend::addBreakpoint):
1900         (WebCore::InspectorBackend::updateBreakpoint):
1901         (WebCore::InspectorBackend::removeBreakpoint):
1902         (WebCore::InspectorBackend::pauseInDebugger):
1903         (WebCore::InspectorBackend::resumeDebugger):
1904         (WebCore::InspectorBackend::stepOverStatementInDebugger):
1905         (WebCore::InspectorBackend::stepIntoStatementInDebugger):
1906         (WebCore::InspectorBackend::stepOutOfFunctionInDebugger):
1907         (WebCore::InspectorBackend::pauseOnExceptions):
1908         (WebCore::InspectorBackend::setPauseOnExceptions):
1909         (WebCore::InspectorBackend::profilerEnabled):
1910         (WebCore::InspectorBackend::enableProfiler):
1911         (WebCore::InspectorBackend::disableProfiler):
1912         (WebCore::InspectorBackend::startProfiling):
1913         (WebCore::InspectorBackend::stopProfiling):
1914         (WebCore::InspectorBackend::getProfileHeaders):
1915         (WebCore::InspectorBackend::getProfile):
1916         (WebCore::InspectorBackend::currentCallFrame):
1917         (WebCore::InspectorBackend::highlightDOMNode):
1918         (WebCore::InspectorBackend::hideDOMNodeHighlight):
1919         (WebCore::InspectorBackend::getCookies):
1920         (WebCore::InspectorBackend::deleteCookie):
1921         (WebCore::InspectorBackend::didEvaluateForTestInFrontend):
1922         (WebCore::InspectorBackend::nodeForId):
1923         * inspector/InspectorBackend.h:
1924         (WebCore::InspectorBackend::create):
1925         * inspector/InspectorBackend.idl:
1926         * inspector/InspectorController.cpp:
1927         (WebCore::InspectorController::InspectorController):
1928         (WebCore::InspectorController::~InspectorController):
1929         (WebCore::InspectorController::inspectedPageDestroyed):
1930         (WebCore::InspectorController::windowScriptObjectAvailable):
1931         * inspector/InspectorController.h:
1932         (WebCore::InspectorController::inspectorFrontendHost):
1933         (WebCore::InspectorController::injectedScriptHost):
1934         * inspector/InspectorFrontendHost.cpp: Added.
1935         (WebCore::InspectorFrontendHost::InspectorFrontendHost):
1936         (WebCore::InspectorFrontendHost::~InspectorFrontendHost):
1937         (WebCore::InspectorFrontendHost::loaded):
1938         (WebCore::InspectorFrontendHost::attach):
1939         (WebCore::InspectorFrontendHost::detach):
1940         (WebCore::InspectorFrontendHost::closeWindow):
1941         (WebCore::InspectorFrontendHost::windowUnloading):
1942         (WebCore::InspectorFrontendHost::setAttachedWindowHeight):
1943         (WebCore::InspectorFrontendHost::moveWindowBy):
1944         (WebCore::InspectorFrontendHost::localizedStringsURL):
1945         (WebCore::InspectorFrontendHost::hiddenPanels):
1946         (WebCore::InspectorFrontendHost::platform):
1947         (WebCore::InspectorFrontendHost::port):
1948         (WebCore::InspectorFrontendHost::addResourceSourceToFrame):
1949         (WebCore::InspectorFrontendHost::addSourceToFrame):
1950         * inspector/InspectorFrontendHost.h: Added.
1951         (WebCore::InspectorFrontendHost::create):
1952         (WebCore::InspectorFrontendHost::inspectorController):
1953         (WebCore::InspectorFrontendHost::disconnectController):
1954         * inspector/InspectorFrontendHost.idl: Added.
1955         * inspector/front-end/Breakpoint.js:
1956         (WebInspector.Breakpoint.prototype.set condition):
1957         * inspector/front-end/BreakpointsSidebarPane.js:
1958         (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
1959         (WebInspector.BreakpointsSidebarPane.prototype.removeBreakpoint):
1960         (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
1961         * inspector/front-end/ConsoleView.js:
1962         (WebInspector.ConsoleView.prototype.clearMessages):
1963         * inspector/front-end/CookieItemsView.js:
1964         (WebInspector.CookieItemsView.prototype._deleteCookieCallback):
1965         * inspector/front-end/DOMAgent.js:
1966         (WebInspector.DOMAgent.prototype.getChildNodesAsync):
1967         (WebInspector.DOMAgent.prototype.setAttributeAsync):
1968         (WebInspector.DOMAgent.prototype.removeAttributeAsync):
1969         (WebInspector.DOMAgent.prototype.setTextNodeValueAsync):
1970         (WebInspector.Cookies.getCookiesAsync):
1971         (WebInspector.EventListeners.getEventListenersForNodeAsync):
1972         * inspector/front-end/DOMStorage.js:
1973         (WebInspector.DOMStorage.prototype.getEntries):
1974         (WebInspector.DOMStorage.prototype.setItem):
1975         (WebInspector.DOMStorage.prototype.removeItem):
1976         * inspector/front-end/Database.js:
1977         (WebInspector.Database.prototype.getTableNames):
1978         * inspector/front-end/ElementsPanel.js:
1979         (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
1980         (WebInspector.ElementsPanel.prototype.hide):
1981         (WebInspector.ElementsPanel.prototype.reset):
1982         (WebInspector.ElementsPanel.prototype.handleCopyEvent):
1983         (WebInspector.ElementsPanel.prototype._nodeSearchButtonClicked):
1984         * inspector/front-end/ElementsTreeOutline.js:
1985         (WebInspector.ElementsTreeOutline.prototype.set focusedDOMNode.restoreHighlightToHoveredNode):
1986         (WebInspector.ElementsTreeOutline.prototype.set focusedDOMNode):
1987         ():
1988         * inspector/front-end/EventListenersSidebarPane.js:
1989         (WebInspector.EventListenersSidebarPane.prototype):
1990         * inspector/front-end/InjectedScript.js:
1991         (InjectedScript._evaluateAndWrap):
1992         (InjectedScript.performSearch.addNodesToResults):
1993         (InjectedScript.getCallFrames):
1994         (InjectedScript._callFrameForId):
1995         (InjectedScript._clearConsoleMessages):
1996         (InjectedScript._inspectObject):
1997         (InjectedScript._copy):
1998         (InjectedScript._ensureCommandLineAPIInstalled):
1999         (InjectedScript._window):
2000         (InjectedScript._nodeForId):
2001         (InjectedScript._objectForId):
2002         (InjectedScript.pushNodeToFrontend):
2003         (InjectedScript.executeSql):
2004         (InjectedScript.executeSql.errorCallback):
2005         (InjectedScript.executeSql.queryTransaction):
2006         * inspector/front-end/InjectedScriptAccess.js:
2007         (InjectedScriptAccess._installHandler.InjectedScriptAccess.methodName):
2008         (InjectedScriptAccess._installHandler):
2009         * inspector/front-end/InspectorBackendStub.js: Added.
2010         (.WebInspector.InspectorBackendStub):
2011         (.WebInspector.InspectorBackendStub.prototype.wrapCallback):
2012         (.WebInspector.InspectorBackendStub.prototype.platform):
2013         (.WebInspector.InspectorBackendStub.prototype.port):
2014         (.WebInspector.InspectorBackendStub.prototype.closeWindow):
2015         (.WebInspector.InspectorBackendStub.prototype.attach):
2016         (.WebInspector.InspectorBackendStub.prototype.detach):
2017         (.WebInspector.InspectorBackendStub.prototype.storeLastActivePanel):
2018         (.WebInspector.InspectorBackendStub.prototype.clearMessages):
2019         (.WebInspector.InspectorBackendStub.prototype.searchingForNode):
2020         (.WebInspector.InspectorBackendStub.prototype.search):
2021         (.WebInspector.InspectorBackendStub.prototype.toggleNodeSearch):
2022         (.WebInspector.InspectorBackendStub.prototype.setAttachedWindowHeight):
2023         (.WebInspector.InspectorBackendStub.prototype.moveByUnrestricted):
2024         (.WebInspector.InspectorBackendStub.prototype.addResourceSourceToFrame):
2025         (.WebInspector.InspectorBackendStub.prototype.addSourceToFrame):
2026         (.WebInspector.InspectorBackendStub.prototype.getResourceDocumentNode):
2027         (.WebInspector.InspectorBackendStub.prototype.highlightDOMNode):
2028         (.WebInspector.InspectorBackendStub.prototype.hideDOMNodeHighlight):
2029         (.WebInspector.InspectorBackendStub.prototype.inspectedWindow):
2030         (.WebInspector.InspectorBackendStub.prototype.loaded):
2031         (.WebInspector.InspectorBackendStub.prototype.localizedStringsURL):
2032         (.WebInspector.InspectorBackendStub.prototype.windowUnloading):
2033         (.WebInspector.InspectorBackendStub.prototype.hiddenPanels):
2034         (.WebInspector.InspectorBackendStub.prototype.debuggerEnabled):
2035         (.WebInspector.InspectorBackendStub.prototype.enableResourceTracking):
2036         (.WebInspector.InspectorBackendStub.prototype.disableResourceTracking):
2037         (.WebInspector.InspectorBackendStub.prototype.resourceTrackingEnabled):
2038         (.WebInspector.InspectorBackendStub.prototype.enableDebugger):
2039         (.WebInspector.InspectorBackendStub.prototype.disableDebugger):
2040         (.WebInspector.InspectorBackendStub.prototype.addBreakpoint):
2041         (.WebInspector.InspectorBackendStub.prototype.removeBreakpoint):
2042         (.WebInspector.InspectorBackendStub.prototype.updateBreakpoint):
2043         (.WebInspector.InspectorBackendStub.prototype.pauseInDebugger):
2044         (.WebInspector.InspectorBackendStub.prototype.pauseOnExceptions):
2045         (.WebInspector.InspectorBackendStub.prototype.setPauseOnExceptions):
2046         (.WebInspector.InspectorBackendStub.prototype.resumeDebugger):
2047         (.WebInspector.InspectorBackendStub.prototype.profilerEnabled):
2048         (.WebInspector.InspectorBackendStub.prototype.enableProfiler):
2049         (.WebInspector.InspectorBackendStub.prototype.disableProfiler):
2050         (.WebInspector.InspectorBackendStub.prototype.startProfiling):
2051         (.WebInspector.InspectorBackendStub.prototype.stopProfiling):
2052         (.WebInspector.InspectorBackendStub.prototype.getProfileHeaders):
2053         (.WebInspector.InspectorBackendStub.prototype.getProfile):
2054         (.WebInspector.InspectorBackendStub.prototype.takeHeapSnapshot):
2055         (.WebInspector.InspectorBackendStub.prototype.databaseTableNames):
2056         (.WebInspector.InspectorBackendStub.prototype.stepIntoStatementInDebugger):
2057         (.WebInspector.InspectorBackendStub.prototype.stepOutOfFunctionInDebugger):
2058         (.WebInspector.InspectorBackendStub.prototype.stepOverStatementInDebugger):
2059         (.WebInspector.InspectorBackendStub.prototype.setSetting):
2060         (.WebInspector.InspectorBackendStub.prototype.dispatchOnInjectedScript):
2061         (.WebInspector.InspectorBackendStub.prototype.releaseWrapperObjectGroup):
2062         (.WebInspector.InspectorBackendStub.prototype.setting):
2063         * inspector/front-end/InspectorControllerStub.js:
2064         * inspector/front-end/InspectorFrontendHostStub.js: Added.
2065         (.WebInspector.InspectorFrontendHostStub):
2066         (.WebInspector.InspectorFrontendHostStub.prototype.platform):
2067         (.WebInspector.InspectorFrontendHostStub.prototype.port):
2068         (.WebInspector.InspectorFrontendHostStub.prototype.closeWindow):
2069         (.WebInspector.InspectorFrontendHostStub.prototype.attach):
2070         (.WebInspector.InspectorFrontendHostStub.prototype.detach):
2071         (.WebInspector.InspectorFrontendHostStub.prototype.search):
2072         (.WebInspector.InspectorFrontendHostStub.prototype.setAttachedWindowHeight):
2073         (.WebInspector.InspectorFrontendHostStub.prototype.moveWindowBy):
2074         (.WebInspector.InspectorFrontendHostStub.prototype.addResourceSourceToFrame):
2075         (.WebInspector.InspectorFrontendHostStub.prototype.addSourceToFrame):
2076         (.WebInspector.InspectorFrontendHostStub.prototype.loaded):
2077         (.WebInspector.InspectorFrontendHostStub.prototype.localizedStringsURL):
2078         (.WebInspector.InspectorFrontendHostStub.prototype.hiddenPanels):
2079         (.WebInspector.InspectorFrontendHostStub.prototype.setSetting):
2080         (.WebInspector.InspectorFrontendHostStub.prototype.setting):
2081         * inspector/front-end/ProfileView.js:
2082         (WebInspector.CPUProfileView):
2083         (WebInspector.CPUProfileType.prototype.buttonClicked):
2084         * inspector/front-end/ProfilesPanel.js:
2085         (WebInspector.ProfilesPanel.prototype._updateInterface):
2086         (WebInspector.ProfilesPanel.prototype._enableProfiling):
2087         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
2088         * inspector/front-end/ResourcesPanel.js:
2089         (WebInspector.ResourcesPanel.prototype.reset):
2090         (WebInspector.ResourcesPanel.prototype._toggleLargerResources):
2091         (WebInspector.ResourcesPanel.prototype._enableResourceTracking):
2092         (WebInspector.ResourcesPanel.prototype._toggleResourceTracking):
2093         * inspector/front-end/ScriptView.js:
2094         (WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded):
2095         * inspector/front-end/ScriptsPanel.js:
2096         (WebInspector.ScriptsPanel.prototype.show):
2097         (WebInspector.ScriptsPanel.prototype.addScript):
2098         (WebInspector.ScriptsPanel.prototype.attachDebuggerWhenShown):
2099         (WebInspector.ScriptsPanel.prototype.reset):
2100         (WebInspector.ScriptsPanel.prototype.canShowResource):
2101         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
2102         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu):
2103         (WebInspector.ScriptsPanel.prototype._updatePauseOnExceptionsButton):
2104         (WebInspector.ScriptsPanel.prototype._updateDebuggerButtons):
2105         (WebInspector.ScriptsPanel.prototype._enableDebugging):
2106         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
2107         (WebInspector.ScriptsPanel.prototype._togglePauseOnExceptions):
2108         (WebInspector.ScriptsPanel.prototype._togglePause):
2109         (WebInspector.ScriptsPanel.prototype._stepOverClicked):
2110         (WebInspector.ScriptsPanel.prototype._stepIntoClicked):
2111         (WebInspector.ScriptsPanel.prototype._stepOutClicked):
2112         * inspector/front-end/SourceView.js:
2113         (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded):
2114         (WebInspector.SourceView.prototype.performSearch.findSearchMatches):
2115         (WebInspector.SourceView.prototype.performSearch):
2116         * inspector/front-end/StylesSidebarPane.js:
2117         (WebInspector.StylesSidebarPane.prototype._changeColorFormat):
2118         * inspector/front-end/TestController.js:
2119         (WebInspector.TestController.prototype.notifyDone):
2120         * inspector/front-end/TimelinePanel.js:
2121         (WebInspector.TimelinePanel.prototype._toggleTimelineButtonClicked):
2122         * inspector/front-end/WatchExpressionsSidebarPane.js:
2123         (WebInspector.WatchExpressionsSection.prototype.update):
2124         (WebInspector.WatchExpressionsSection.prototype.loadSavedExpressions):
2125         (WebInspector.WatchExpressionsSection.prototype.saveExpressions):
2126         * inspector/front-end/WebKit.qrc:
2127         * inspector/front-end/inspector.html:
2128         * inspector/front-end/inspector.js:
2129         (WebInspector.pendingDispatches.0.get platform):
2130         (WebInspector.get port):
2131         (WebInspector.set currentPanel):
2132         (WebInspector._createPanels):
2133         (WebInspector._loadPreferences):
2134         (WebInspector.set attached):
2135         (WebInspector._updateHoverHighlight):
2136         (WebInspector.loaded):
2137         (windowLoaded):
2138         (WebInspector.windowUnload):
2139         (WebInspector.close):
2140         (WebInspector.toolbarDrag):
2141         (WebInspector.UIString):
2142
2143 2009-11-30  Shinichiro Hamaji  <hamaji@chromium.org>
2144
2145         Reviewed by Dan Bernstein.
2146
2147         css2.1/t1205-c566-list-stl-00-e-ag.html is failing
2148         https://bugs.webkit.org/show_bug.cgi?id=23264
2149         css2.1/t1205-c565-list-pos-00-b.html is failing
2150         https://bugs.webkit.org/show_bug.cgi?id=23263
2151
2152         Ignore whitespaces after list markers.
2153         Rendering of this was already done for the case where inside=false.
2154         This fixes the rendering of inside=true case and calcInlinePrefWidths.
2155
2156         Test: fast/lists/calc-width-with-space.html
2157
2158         * rendering/RenderBlock.cpp:
2159         (WebCore::RenderBlock::calcInlinePrefWidths):
2160         * rendering/RenderBlockLineLayout.cpp:
2161         (WebCore::RenderBlock::findNextLineBreak):
2162
2163 2009-11-30  Fumitoshi Ukai  <ukai@chromium.org>
2164
2165         Unreviewed Chromium build fix introduced by r51212
2166
2167         Fix scriptStateFromNode and ScriptStateFromPage to take DOMWrapperWorld
2168         as the first argument.
2169         Move mainThreadNormalWorld() to ScriptState.{h,cpp}.
2170         Add debuggerWorld() and pluginWorld() in ScriptState.h.
2171
2172         * bindings/v8/ScriptController.cpp:
2173         * bindings/v8/ScriptController.h:
2174         * bindings/v8/ScriptState.cpp:
2175         (WebCore::scriptStateFromNode):
2176         (WebCore::scriptStateFromPage):
2177         (WebCore::mainThreadNormalWorld):
2178         * bindings/v8/ScriptState.h:
2179         (WebCore::debuggerWorld):
2180         (WebCore::pluginWorld):
2181
2182 2009-11-30  Enrica Casucci  <enrica@apple.com>
2183
2184         Reviewed by Darin Adler.
2185
2186         Can focus but not type into content editable block that contains only non-editable content.
2187         <rdar://problem/5982901>
2188         https://bugs.webkit.org/show_bug.cgi?id=31750
2189         
2190         The goal is to change the way we choose a visible position
2191         after hit detection, by preferring a visually equivalent editable
2192         position if available. By doing this, it is possible to add content
2193         to an editable block that initially contains only non editable elements.
2194
2195         Test: editing/selection/mixed-editability-10.html
2196
2197         * WebCore.base.exp: Changed to match the new signature of downstream
2198         and upstream in the Position class.
2199         * dom/Position.cpp:
2200         (WebCore::Position::atEditingBoundary): Added.
2201         (WebCore::Position::upstream): Modified to allow to cross the boundary
2202         between editable and non editable content if required.
2203         (WebCore::Position::downstream): Modified to allow to cross the boundary
2204         between editable and non editable content if required.
2205         (WebCore::Position::isCandidate): Modified to qualify as candidates positions
2206         that are at the editability boundary.
2207         (WebCore::Position::getInlineBoxAndOffset): Modified to retrieve the inline box
2208         to be used in calculating the caret rectangle.
2209         * dom/Position.h:
2210         (WebCore::Position::):
2211         * dom/PositionIterator.cpp:
2212         (WebCore::PositionIterator::atEditingBoundary): Added.
2213         (WebCore::PositionIterator::isCandidate): Modified to qualify as candidates positions
2214         that are at the editability boundary.
2215         * dom/PositionIterator.h:
2216         * editing/htmlediting.cpp:
2217         (WebCore::firstEditablePositionAfterPositionInRoot): Modified to accept not only
2218         descendants of the editable container, but the container itself.
2219         (WebCore::lastEditablePositionBeforePositionInRoot): Modified to accept not only
2220         descendants of the editable container, but the container itself.
2221         * rendering/RenderObject.cpp:
2222         (WebCore::RenderObject::createVisiblePosition): Added logic to prefer an editable position,
2223         if available.
2224         * rendering/RenderText.cpp:
2225         (WebCore::RenderText::isAllCollapsibleWhitespace): Added.
2226         * rendering/RenderText.h:
2227
2228 2009-11-30  Kevin Ollivier  <kevino@theolliviers.com>
2229
2230         wx build fix, add header needed for wx build.
2231
2232         * css/CSSFontFaceSrcValue.cpp:
2233
2234 2009-11-30  Mark Rowe  <mrowe@apple.com>
2235
2236         Reviewed by David Kilzer.
2237
2238         <rdar://problem/7424387> WebCore binary missing symbols when built for x86_64 from a machine that cannot run x86_64 binaries
2239
2240         The check for whether WTF_USE_PLUGIN_HOST_PROCESS is defined occurs under the native architecture of the build machine.
2241         If that is 32-bit then WTF_USE_PLUGIN_HOST_PROCESS will not be defined.  We work around this by forcing the check to
2242         be performed against the x86_64 architecture.
2243
2244         * DerivedSources.make:
2245
2246 2009-11-30  Beth Dakin  <bdakin@apple.com>
2247
2248         Reviewed by Oliver Hunt.
2249
2250         Fix for https://bugs.webkit.org/show_bug.cgi?id=32000 Crash in 
2251         Safari caused by extreme column-gap and column-width values 
2252         -and corresponding-
2253         <rdar://problem/7425433>
2254
2255         Prevent desiredColumnCount from being less than 1 since it is used 
2256         as a divisor.
2257         * rendering/RenderBlock.cpp:
2258         (WebCore::RenderBlock::calcColumnWidth):
2259
2260 2009-11-30  Alexey Proskuryakov  <ap@apple.com>
2261
2262         Reviewed by Oliver Hunt.
2263
2264         https://bugs.webkit.org/show_bug.cgi?id=31659
2265         Connection must be closed in case of Web Socket handshake error
2266
2267         The network connection was closed, but the close event wasn't dispatched.
2268
2269         Tested by websocket/tests/handshake-error.html, which is un-skipped now.
2270
2271         * platform/network/cf/SocketStreamHandleCFNet.cpp: (WebCore::SocketStreamHandle::platformClose):
2272         Call client didHandle() method. This looks strange in CFNetwork implementation, because
2273         it's the client that asked to close the stream, so it shouldn't need the callback. It makes
2274         more sense in cross-process implementation, because closing is async there.
2275
2276 2009-11-30  Gavin Barraclough  <barraclough@apple.com>
2277
2278         Reviewed by Geoff Garen.
2279
2280         Bug 31859 - Make world selection for JSC IsolatedWorlds automagical.
2281
2282         WebCore presently has to explicitly specify the world before entering into JSC,
2283         which is a little fragile (particularly since property access via a
2284         getter/setter might invoke execution). Instead derive the current world from
2285         the lexical global object.
2286
2287         Remove the last uses of mainThreadCurrentWorld(), so the world is always obtained via
2288         currentWorld().  Switch this to obtain the world from the ExecsState's lexical global
2289         object instead.  Remove the call/construct/evaluate 'InWorld' methods, since these
2290         are no longer necessary.
2291
2292         * WebCore.base.exp:
2293         * bindings/js/JSCallbackData.cpp:
2294         (WebCore::JSCallbackData::invokeCallback):
2295         * bindings/js/JSCallbackData.h:
2296         (WebCore::JSCallbackData::JSCallbackData):
2297         * bindings/js/JSCustomXPathNSResolver.cpp:
2298         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2299         * bindings/js/JSDOMBinding.cpp:
2300         (WebCore::currentWorld):
2301         (WebCore::mainThreadNormalWorld):
2302         * bindings/js/JSDOMBinding.h:
2303         (WebCore::WebCoreJSClientData::WebCoreJSClientData):
2304         * bindings/js/JSDOMWindowBase.cpp:
2305         (WebCore::JSDOMWindowBase::updateDocument):
2306         * bindings/js/JSDOMWindowBase.h:
2307         * bindings/js/JSEventListener.cpp:
2308         (WebCore::JSEventListener::handleEvent):
2309         (WebCore::JSEventListener::reportError):
2310         * bindings/js/JSHTMLDocumentCustom.cpp:
2311         (WebCore::JSHTMLDocument::open):
2312         * bindings/js/JSNodeFilterCondition.cpp:
2313         (WebCore::JSNodeFilterCondition::acceptNode):
2314         * bindings/js/JSQuarantinedObjectWrapper.cpp:
2315         (WebCore::JSQuarantinedObjectWrapper::construct):
2316         (WebCore::JSQuarantinedObjectWrapper::call):
2317         * bindings/js/ScheduledAction.cpp:
2318         (WebCore::ScheduledAction::executeFunctionInContext):
2319         * bindings/js/ScriptController.cpp:
2320         (WebCore::ScriptController::evaluateInWorld):
2321         (WebCore::ScriptController::initScript):
2322         (WebCore::ScriptController::updateDocument):
2323         * bindings/js/ScriptFunctionCall.cpp:
2324         (WebCore::ScriptFunctionCall::call):
2325         (WebCore::ScriptFunctionCall::construct):
2326         * bindings/js/ScriptObjectQuarantine.cpp:
2327         (WebCore::getQuarantinedScriptObject):
2328         * bindings/js/ScriptState.cpp:
2329         (WebCore::scriptStateFromNode):
2330         (WebCore::scriptStateFromPage):
2331         * bindings/js/ScriptState.h:
2332         * bindings/js/WorkerScriptController.cpp:
2333         (WebCore::WorkerScriptController::evaluate):
2334         * bindings/objc/WebScriptObject.mm:
2335         (-[WebScriptObject callWebScriptMethod:withArguments:]):
2336         (-[WebScriptObject evaluateWebScript:]):
2337         * bridge/NP_jsobject.cpp:
2338         (_NPN_InvokeDefault):
2339         (_NPN_Invoke):
2340         (_NPN_Evaluate):
2341         (_NPN_Construct):
2342         * bridge/jni/jni_jsobject.mm:
2343         (JavaJSObject::call):
2344         (JavaJSObject::eval):
2345         * dom/NodeFilter.h:
2346         (WebCore::NodeFilter::acceptNode):
2347         * dom/NodeIterator.h:
2348         (WebCore::NodeIterator::nextNode):
2349         (WebCore::NodeIterator::previousNode):
2350         * dom/TreeWalker.h:
2351         (WebCore::TreeWalker::parentNode):
2352         (WebCore::TreeWalker::firstChild):
2353         (WebCore::TreeWalker::lastChild):
2354         (WebCore::TreeWalker::previousSibling):
2355         (WebCore::TreeWalker::nextSibling):
2356         (WebCore::TreeWalker::previousNode):
2357         (WebCore::TreeWalker::nextNode):
2358         * inspector/InspectorController.cpp:
2359         (WebCore::InspectorController::windowScriptObjectAvailable):
2360         (WebCore::InspectorController::didEvaluateForTestInFrontend):
2361         * inspector/JavaScriptCallFrame.cpp:
2362         (WebCore::JavaScriptCallFrame::evaluate):
2363
2364 2009-11-30  Eric Carlson  <eric.carlson@apple.com>
2365
2366         Reviewed by Simon Fraser.
2367
2368         All HTML5 media element events should be regular events
2369         https://bugs.webkit.org/show_bug.cgi?id=30513
2370
2371         * html/HTMLMediaElement.cpp:
2372         (WebCore::HTMLMediaElement::selectMediaResource):
2373         (WebCore::HTMLMediaElement::noneSupported):
2374         (WebCore::HTMLMediaElement::mediaEngineError):
2375         (WebCore::HTMLMediaElement::setNetworkState):
2376         (WebCore::HTMLMediaElement::userCancelledLoad):
2377             Call scheduleEvent instead of scheduleProgressEvent.
2378         (WebCore::HTMLMediaElement::progressEventTimerFired):
2379             Call scheduleEvent instead of scheduleProgressEvent. Call renderer->updateFromElement
2380             after scheduling a 'progress' event so the controller will update download
2381             progress indicator.
2382         * html/HTMLMediaElement.h:
2383             Remove scheduleProgressEvent prototype.
2384
2385 2009-11-30  Joseph Pecoraro  <joepeck@webkit.org>
2386
2387         Reviewed by Pavel Feldman.
2388
2389         Web Inspector: Wrong console output for Regexp escape sequence
2390         https://bugs.webkit.org/show_bug.cgi?id=31538
2391
2392         Updated inspector/console-format.html
2393
2394         * inspector/front-end/ConsoleView.js:
2395         (WebInspector.ConsoleView.createDividerElement): style issues.
2396         (WebInspector.ConsoleView.createFilterElement): style issues.
2397         (WebInspector.ConsoleView): added _customFormatters table.
2398         (WebInspector.ConsoleView.prototype.updateMessageRepeatCount): style isses.
2399         (WebInspector.ConsoleView.prototype._incrementErrorWarningCount): style issues.
2400         (WebInspector.ConsoleView.prototype._format): simplified delegation to formatter logic.
2401         (WebInspector.ConsoleView.prototype._formatobject):
2402         (WebInspector.ConsoleView.prototype._formatnode):
2403         (WebInspector.ConsoleView.prototype._printArray):
2404         (WebInspector.ConsoleMessage.prototype._format): commented and broke down the algorithm into parts.
2405         (WebInspector.ConsoleMessage.prototype._formatWithSubstitutionString.append): handle substitution string formatting.
2406         (WebInspector.ConsoleMessage.prototype._formatIndividualValue): handling individual value formatting.
2407         (WebInspector.ConsoleCommandResult):
2408         * inspector/front-end/InjectedScript.js: simplified regex formatting.
2409         * inspector/front-end/inspector.js:
2410         (WebInspector.linkifyStringAsFragment): converted new RegExp to literal for performance benefits.
2411         * inspector/front-end/utilities.js: 
2412         (Element.prototype.hasStyleClass): update inaccurate comment.
2413         (String.prototype.trimURL): converted new RegExp to literal for performance benefits.
2414
2415 2009-11-30  Erik Arvidsson  <arv@chromium.org>
2416
2417         Reviewed by Adam Barth.
2418
2419         Clean up V8 bindings for CSSStyleDeclaration and CSSVariableDeclaration
2420         https://bugs.webkit.org/show_bug.cgi?id=31895
2421
2422         No new tests. This is already covered by:
2423                 fast/dom/CSSStyleDeclaration/css-computed-style-item.html
2424                 fast/dom/CSSStyleDeclaration/css-style-item.html
2425
2426         * bindings/v8/V8Collection.h:
2427         (WebCore::collectionStringIndexedPropertyGetter):
2428         (WebCore::setCollectionStringIndexedGetter):
2429         * bindings/v8/V8DOMWrapper.cpp:
2430         (WebCore::V8DOMWrapper::getTemplate):
2431
2432 2009-11-30  Steve Block  <steveblock@google.com>
2433
2434         Reviewed by Eric Seidel.
2435
2436         Adds include of wtf/StdLibExtras.h for DEFINE_STATIC_LOCAL in V8 ScriptController.
2437         https://bugs.webkit.org/show_bug.cgi?id=31932
2438
2439         Build fix only, no new tests.
2440
2441         * bindings/v8/ScriptController.cpp: Modified. Adds include of wtf/StdLibExtras.h.
2442
2443 2009-11-30  Steve Block  <steveblock@google.com>
2444
2445         Reviewed by Eric Seidel.
2446
2447         Adds PassOwnPtr include to ScriptExecutionContext.h.
2448         https://bugs.webkit.org/show_bug.cgi?id=31929
2449
2450         Build fix only, no new tests.
2451
2452         * dom/ScriptExecutionContext.h: Modified. Adds PassOwnPtr include.
2453
2454 2009-11-30  Dirk Schulze  <krit@webkit.org>
2455
2456         Reviewed by Nikolas Zimmermann.
2457
2458         REGRESSION (r49757): masking-mask-01-b.svg rendered incorrectly
2459         [https://bugs.webkit.org/show_bug.cgi?id=31980]
2460
2461         It turns out, that we did not handle maskUnits="userSpaceOnUse"
2462         correctly. We just need to move the context of the maskImage
2463         if maskContentUnits="objectBoundingBox". The context gets scaled
2464         on this unit combination, so we have to substract the position of
2465         the targetRect. On userSpaceOnUse the position just depends on the
2466         position of the mask element.
2467         I added a test with some senseless and reasonable values for size
2468         and postion of the mask and it's contents. I also used every
2469         combination of maskUnits and maskContentUnits to be sure, that it
2470         is fixed this time.
2471
2472         Test: svg/custom/mask-with-all-units.svg
2473
2474         * svg/SVGMaskElement.cpp:
2475         (WebCore::SVGMaskElement::drawMaskerContent):
2476
2477 2009-11-30  Steve Block  <steveblock@google.com>
2478
2479         Reviewed by Eric Seidel.
2480
2481         Adds ENABLE(INSPECTOR) guards around DOMWindow::inspectorTimelineAgent.
2482         https://bugs.webkit.org/show_bug.cgi?id=31928
2483
2484         Build fix only, no new tests.
2485
2486         * page/DOMWindow.cpp: Modified. Adds ENABLE(INSPECTOR) guards around DOMWindow::inspectorTimelineAgent.
2487
2488 2009-11-30  Steve Block  <steveblock@google.com>
2489
2490         Reviewed by Eric Seidel.
2491
2492         Adds SHARED_WORKERS guards to V8 WorkerContextExecutionProxy.
2493         https://bugs.webkit.org/show_bug.cgi?id=31926
2494
2495         Build fix only, no new tests.
2496
2497         * bindings/v8/WorkerContextExecutionProxy.cpp:
2498         (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
2499         (WebCore::WorkerContextExecutionProxy::convertToV8Object):
2500         (WebCore::WorkerContextExecutionProxy::convertEventTargetToV8Object):
2501
2502 2009-11-30  Benjamin Poulain  <benjamin.poulain@nokia.com>
2503
2504         Reviewed by Kenneth Rohde Christiansen.
2505
2506         Chrome::contentsSizeChanged() is called when the content size has not changed
2507         https://bugs.webkit.org/show_bug.cgi?id=31978
2508
2509         Do not trigger contentsSizeChaned() is the new size is the same as the old one.
2510
2511         * page/FrameView.cpp:
2512         (WebCore::FrameView::setContentsSize):
2513
2514 2009-11-30  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2515
2516         Reviewed by Kenneth Rohde Christiansen.
2517
2518         [Qt] Fix some compiler warnings seen on QtWebKit/Mac
2519         https://bugs.webkit.org/show_bug.cgi?id=31962
2520
2521         No new tests as there is no functional change.
2522
2523         * platform/network/ResourceHandle.h: Make destructor virtual as 
2524         after r50772 ResourceHandle has virtual functions.
2525
2526         * plugins/mac/PluginPackageMac.cpp: 
2527         (WebCore::PluginPackage::fetchInfo): Fix typo WTF is a namespace
2528         not a label
2529
2530         * plugins/mac/PluginViewMac.cpp:
2531         (WebCore::PluginView::setNPWindowIfNeeded): Add l to the format
2532         specifier
2533
2534 2009-11-30  Xan Lopez  <xlopez@igalia.com>
2535
2536         Reviewed by Gustavo Noronha.
2537
2538         Add new headers to sources list.
2539
2540         * GNUmakefile.am:
2541
2542 2009-11-30  Girish Ramakrishnan  <girish@forwardbias.in>
2543
2544         Reviewed by Holger Freyther.
2545
2546         [Qt] Mac Plugins : Get context menu to work in QGraphicsView
2547         
2548         Flash expects the value in record.where to be the global position for
2549         displaying the context menu.
2550         
2551         https://bugs.webkit.org/show_bug.cgi?id=31979
2552
2553         * plugins/mac/PluginViewMac.cpp:
2554         (WebCore::PluginView::handleMouseEvent):
2555
2556 2009-11-30  Steve Block  <steveblock@google.com>
2557
2558         Reviewed by Eric Seidel.
2559
2560         Adds PLATFORM(CHROMIUM) guards around memory usage code in V8GCController.
2561         https://bugs.webkit.org/show_bug.cgi?id=31925
2562
2563         This code uses ChromiumBridge and Chromium-specific constant values not
2564         appropriate for other platforms such as Android.
2565
2566         Build fix only, no new tests.
2567
2568         * bindings/v8/V8GCController.cpp: Modified. Adds PLATFORM(CHROMIUM) around Chromium-specific code.
2569
2570 2009-11-29  Brent Fulgham  <bfulgham@webkit.org>
2571
2572         Build fix.
2573
2574         Correct draw signature used in ImageCairoWin.cpp.
2575
2576         * platform/graphics/win/ImageCairoWin.cpp:
2577         (WebCore::BitmapImage::getHBITMAPOfSize):
2578         (WebCore::BitmapImage::drawFrameMatchingSourceSize):
2579
2580 2009-11-28  Oliver Hunt  <oliver@apple.com>
2581
2582         Reviewed by Sam Weinig.
2583
2584         postMessage should serialize File objects
2585         https://bugs.webkit.org/show_bug.cgi?id=31955
2586
2587         Update SerializedScriptValue to include support for
2588         File objects in the serialized object graph.
2589
2590         * bindings/js/SerializedScriptValue.cpp:
2591         (WebCore::SerializedScriptValueData::SerializedScriptValueData):
2592         (WebCore::SerializingTreeWalker::convertIfTerminal):
2593         (WebCore::DeserializingTreeWalker::convertIfTerminal):
2594         * bindings/js/SerializedScriptValue.h:
2595         (WebCore::SerializedScriptValueData::):
2596         (WebCore::SerializedScriptValueData::asString):
2597
2598 2009-11-29  Simon Fraser  <simon.fraser@apple.com>
2599
2600         Reviewed by Dan Bernstein.
2601
2602         Optimize the hierarchy rebuilding of compositing layers
2603         https://bugs.webkit.org/show_bug.cgi?id=31879
2604         
2605         When updating the compositing layer hierarchy, instead of removing all
2606         child layers and then re-adding them one by one, build a vector of child
2607         layers, and set them in one go.
2608         
2609         * platform/graphics/GraphicsLayer.h:
2610         * platform/graphics/GraphicsLayer.cpp:
2611         (WebCore::GraphicsLayer::setChildren): New method that takes a Vector of child
2612         GraphicsLayers.
2613         
2614         * platform/graphics/mac/GraphicsLayerCA.h: Override setChildren().
2615         * platform/graphics/win/GraphicsLayerCACF.h: Ditto.
2616         * platform/graphics/mac/GraphicsLayerCA.mm: 
2617         (WebCore::GraphicsLayerCA::setChildren): Implement setChildren() to 
2618         set the bit that notes that sublayers changed.
2619         * platform/graphics/win/GraphicsLayerCACF.cpp:
2620         (WebCore::GraphicsLayerCACF::setChildren): Implement setChildren() to 
2621         udpate sublayers, with a note that this is not efficient.
2622         
2623         * rendering/RenderLayerCompositor.h:
2624         * rendering/RenderLayerCompositor.cpp:
2625         (WebCore::RenderLayerCompositor::updateCompositingLayers):
2626         When updating compositing layers, use the faster updateLayerTreeGeometry() if
2627         we know that no layer hierarchy changes are needed, and, at the root, use
2628         the vector returned from rebuildCompositingLayerTree() to attach the root
2629         layer.
2630         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Changed to
2631         collect child layers into Vectors of GraphicsLayers, which can be set as
2632         layer children in one go.
2633         (WebCore::RenderLayerCompositor::updateLayerTreeGeometry): Split out from
2634         rebuildCompositingLayerTree() for simplicity, and called when we just need to
2635         update layer geometry, without doing any reparenting.
2636
2637 2009-11-29  Daniel Bates  <dbates@webkit.org>
2638
2639         Reviewed by Adam Barth.
2640
2641         https://bugs.webkit.org/show_bug.cgi?id=31971
2642
2643         Updated comment to reflect latest XSSAuditor bindings.
2644
2645         No functionality was changed. So, no new tests.
2646
2647         * page/XSSAuditor.h:
2648
2649 2009-11-29  Daniel Bates  <dbates@webkit.org>
2650
2651         Reviewed by Eric Seidel.
2652
2653         https://bugs.webkit.org/show_bug.cgi?id=31969
2654
2655         Removes unnecessary #include files.
2656
2657         No functionality was changed. So, no new tests.
2658
2659         * css/CSSComputedStyleDeclaration.cpp: Removed include CachedImage.h, and
2660         Pair.h
2661         * css/CSSCursorImageValue.cpp: Removed include RenderStyle.h
2662         * css/CSSFontFaceSrcValue.cpp: Removed include Node.h
2663         * css/CSSFontSelector.cpp: Removed include NodeList.h
2664         * css/CSSGradientValue.cpp: Removed include GraphicsContext.h, ImageBuffer.h
2665         * css/CSSImageValue.cpp: Removed include RenderStyle.h
2666         * css/CSSImportRule.cpp: Removed include MediaList.h
2667         * css/CSSMutableStyleDeclaration.cpp: Removed include CSSProperty.h
2668         * css/CSSRule.cpp: Removed include CSSStyleSheet.h
2669         * css/CSSStyleSelector.cpp: Removed include CSSFontFace.h,
2670         CSSFontFaceSource.h, and CSSProperty.h
2671         * page/EventSource.h: Removed include EventListener.h
2672
2673 2009-11-29  Daniel Bates  <dbates@webkit.org>
2674
2675         Reviewed by Eric Seidel.
2676
2677         https://bugs.webkit.org/show_bug.cgi?id=31965
2678
2679         Removed #include KeyframeList.h from CSSStyleSelector.h. Instead,
2680         forward declared it.
2681
2682         As a side effect, we need to #include KeyframeList.h in
2683         RenderLayerBacking.cpp.
2684
2685         No functionality was changed. So, no new tests.
2686
2687         * css/CSSStyleSelector.cpp:
2688         * css/CSSStyleSelector.h: Removed #include KeyframeList.h
2689         * rendering/RenderLayerBacking.cpp: Added #include KeyframeList.h
2690
2691 2009-11-29  Shu Chang  <Chang.Shu@nokia.com>
2692
2693         Reviewed by Eric Seidel.
2694
2695         Continue to search for matching node in the case where multiple nodes
2696         have the same id.
2697         https://bugs.webkit.org/show_bug.cgi?id=31428
2698
2699         Test: fast/dom/Element/id-in-node-list-index01.html
2700
2701         * dom/DynamicNodeList.cpp:
2702         (WebCore::DynamicNodeList::itemWithName):
2703
2704 2009-11-29  Daniel Bates  <dbates@webkit.org>
2705
2706         Reviewed by Eric Seidel.
2707
2708         https://bugs.webkit.org/show_bug.cgi?id=31966
2709
2710         Removed #include RenderStyle.h from file KeyframeAnimation.h. Instead,
2711         forward declared it.
2712
2713         No functionality was changed. So, no new tests.
2714
2715         * page/animation/KeyframeAnimation.cpp:
2716         * page/animation/KeyframeAnimation.h:
2717
2718 2009-11-29  Daniel Bates  <dbates@webkit.org>
2719
2720         Unreviewed, fix change log entry date.
2721
2722         For some reason, bugzilla-tool did not update the date in the change
2723         log entry for my last commit (r51468). So, this commit fixes the date
2724         of that entry.
2725
2726 2009-11-29  Daniel Bates  <dbates@webkit.org>
2727
2728         Reviewed by Dan Bernstein.
2729
2730         https://bugs.webkit.org/show_bug.cgi?id=31964
2731
2732         Removed #include StringImpl, StyleImage. Instead, forward declared them.
2733         Also, we can substitute #include <wtf/PassRefPtr.h> for #include PlatformString.h,
2734         since it seems we only really used it to include PassRefPtr.h.
2735
2736         No functionality was changed. So, no new tests.
2737
2738         * rendering/style/ContentData.h:
2739
2740 2009-11-29  Zoltan Horvath  <zoltan@webkit.org>
2741
2742         Reviewed by Eric Seidel.
2743
2744         Allow custom memory allocation control for classes of the rendering and storage directory in WebCore
2745         https://bugs.webkit.org/show_bug.cgi?id=31906
2746
2747         Inherits the following classes from Noncopyable because these are instantiated
2748         by 'new' and no need to be copyable:
2749
2750         class/struct name               - instantiated at: WebCore/'location'
2751
2752         class SQLTransactionClient      - storage/DatabaseThread.cpp:45
2753         class SQLTransactionCoordinator - storage/DatabaseThread.cpp:46
2754         class OriginUsageRecord         - storage/OriginQuotaManager.cpp:66
2755         class DatabaseTracker           - storage/DatabaseTracker.cpp:62
2756         class ScrollbarTheme            - (its child class) rendering/RenderScrollbarTheme.cpp:35
2757         class RenderSelectionInfoBase   - (its child class) rendering/RenderView.cpp:310
2758         class RenderOverflow            - rendering/RenderBox.cpp:2846
2759
2760         Inherits the following classes from FastAllocBase because these are instantiated by 'new':
2761
2762         struct FillLayer                - css/CSSStyleSelector.cpp:197
2763         struct ShadowData               - rendering/style/ShadowData.cpp:35
2764         class CounterContent            - css/CSSStyleSelector.cpp:4111
2765
2766         * platform/ScrollbarTheme.h:
2767         * rendering/RenderOverflow.h:
2768         * rendering/RenderSelectionInfo.h:
2769         * rendering/style/CounterContent.h:
2770         * rendering/style/FillLayer.h:
2771         * rendering/style/ShadowData.h:
2772         * storage/DatabaseTracker.h:
2773         * storage/OriginUsageRecord.h:
2774         * storage/SQLTransactionClient.h:
2775         * storage/SQLTransactionCoordinator.h:
2776
2777 2009-11-28  Adam Barth  <abarth@webkit.org>
2778
2779         Reviewed by Dimitri Glazkov.
2780
2781         [Chromium] Sify compose button alerts error
2782         https://bugs.webkit.org/show_bug.cgi?id=31394
2783
2784         Test: http/tests/security/calling-versus-current.html
2785
2786         We're supposed to use the calling context for security checks.  In JSC
2787         land, this is the lexicalGlobalObject.
2788
2789         * bindings/v8/V8Proxy.cpp:
2790         (WebCore::V8Proxy::canAccessPrivate):
2791
2792 2009-11-27  Shinichiro Hamaji  <hamaji@chromium.org>
2793
2794         Unreviewed Chromium build fix introduced by r51428.
2795
2796         [Chromium] Ignore line-height CSS property for PushButton
2797         https://bugs.webkit.org/show_bug.cgi?id=31712
2798
2799         * rendering/RenderThemeChromiumSkia.cpp:
2800         (WebCore::RenderThemeChromiumSkia::adjustButtonStyle):
2801
2802 2009-11-27  Shinichiro Hamaji  <hamaji@chromium.org>
2803
2804         Unreviewed Chromium test fix by reverting r51413.
2805
2806         [v8] Do not check the thread when accessing DOMDataStore
2807         https://bugs.webkit.org/show_bug.cgi?id=31877
2808
2809         * bindings/v8/V8DOMMap.cpp:
2810         (WebCore::getDOMNodeMap):
2811         (WebCore::getDOMObjectMap):
2812         (WebCore::getActiveDOMObjectMap):
2813         (WebCore::getDOMSVGElementInstanceMap):
2814         (WebCore::getDOMSVGObjectWithContextMap):
2815
2816 2009-11-27  Daniel Bates  <dbates@webkit.org>
2817
2818         Unreviewed, comment fix.
2819
2820         Corrected misspelling of the word "implemented".
2821
2822         * inspector/front-end/InjectedScriptAccess.js:
2823
2824 2009-11-27  Daniel Bates  <dbates@webkit.org>
2825
2826         Reviewed by Adam Barth.
2827
2828         https://bugs.webkit.org/show_bug.cgi?id=31940
2829
2830         Makes the error messages more descriptive when we refuse to load an object/embed or
2831         refuse to load from the document base URL.
2832
2833         * page/XSSAuditor.cpp:
2834         (WebCore::XSSAuditor::canLoadObject): Changed console message to be more descriptive.
2835         (WebCore::XSSAuditor::canSetBaseElementURL): Ditto.
2836
2837 2009-11-27  Yury Semikhatsky  <yurys@chromium.org>
2838
2839         Reviewed by Pavel Feldman.
2840
2841         This is a WebCore part of the fix that allows to view plugin
2842         resources loaded by plugins.
2843
2844         https://bugs.webkit.org/show_bug.cgi?id=31832
2845
2846         * inspector/InspectorController.cpp:
2847         (WebCore::InspectorController::willSendRequest):
2848         (WebCore::InspectorController::didReceiveResponse):
2849         (WebCore::InspectorController::didReceiveContentLength):
2850         (WebCore::InspectorController::didFinishLoading):
2851         (WebCore::InspectorController::didFailLoading):
2852         * inspector/InspectorController.h:
2853         * inspector/InspectorResource.cpp:
2854         (WebCore::InspectorResource::addLength):
2855         * loader/ResourceLoadNotifier.cpp:
2856         (WebCore::ResourceLoadNotifier::didFailToLoad):
2857         (WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
2858         (WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
2859         (WebCore::ResourceLoadNotifier::dispatchDidReceiveContentLength):
2860         (WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
2861
2862 2009-11-27  Yury Semikhatsky  <yurys@chromium.org>
2863
2864         Reviewed by Pavel Feldman.
2865
2866         Instead of generating negative identifiers for cached resources in
2867         InspectorController and extending identifier type from 'unsigned long' to 'long
2868         long' reuse progress tracker from the inspected page to generate those
2869         identifiers. It guarantees that InspectorResources have unique ids since
2870         all of them are generated by that progress tracker.
2871
2872         Added a couple new overloaded methods to Script* objects that accept
2873         long and unsigned long arguments. These types of argumens have already
2874         been passed as long long.
2875
2876         https://bugs.webkit.org/show_bug.cgi?id=31921
2877
2878         * bindings/js/ScriptFunctionCall.cpp:
2879         (WebCore::ScriptFunctionCall::appendArgument):
2880         * bindings/js/ScriptFunctionCall.h:
2881         * bindings/js/ScriptObject.cpp:
2882         (WebCore::ScriptObject::set):
2883         * bindings/js/ScriptObject.h:
2884         * bindings/v8/ScriptFunctionCall.cpp:
2885         (WebCore::ScriptFunctionCall::appendArgument):
2886         * bindings/v8/ScriptFunctionCall.h:
2887         * bindings/v8/ScriptObject.cpp:
2888         (WebCore::ScriptObject::set):
2889         * bindings/v8/ScriptObject.h:
2890         * inspector/InspectorBackend.cpp:
2891         (WebCore::InspectorBackend::dispatchOnInjectedScript):
2892         * inspector/InspectorController.cpp:
2893         (WebCore::InspectorController::InspectorController):
2894         (WebCore::InspectorController::getTrackedResource):
2895         (WebCore::InspectorController::didLoadResourceFromMemoryCache): Use inspected page's ProgressTracker to generate unique identifiers for cached resources in InspectorController.
2896         * inspector/InspectorController.h:
2897         * inspector/InspectorDOMAgent.cpp:
2898         (WebCore::InspectorDOMAgent::buildObjectForNode):
2899         (WebCore::InspectorDOMAgent::buildObjectForEventListener):
2900         * inspector/InspectorFrontend.cpp:
2901         (WebCore::InspectorFrontend::addResource):
2902         (WebCore::InspectorFrontend::updateResource):
2903         (WebCore::InspectorFrontend::removeResource):
2904         (WebCore::InspectorFrontend::updateFocusedNode):
2905         * inspector/InspectorFrontend.h:
2906         * inspector/InspectorResource.cpp:
2907         (WebCore::InspectorResource::InspectorResource):
2908         (WebCore::InspectorResource::createCached):
2909         * inspector/InspectorResource.h: Change InspectorResource identifier type from 'long long' to 'unsigned long'.
2910         (WebCore::InspectorResource::create):
2911         (WebCore::InspectorResource::identifier):
2912         * inspector/TimelineRecordFactory.cpp:
2913         (WebCore::TimelineRecordFactory::createResourceSendRequestRecord):
2914         (WebCore::TimelineRecordFactory::createResourceReceiveResponseRecord):
2915         (WebCore::TimelineRecordFactory::createResourceFinishRecord):
2916
2917 2009-11-26  Shinichiro Hamaji  <hamaji@chromium.org>
2918
2919         Reviewed by Dan Bernstein.
2920
2921         Assertion failure in RenderBlock::positionForPointWithInlineChildren when running fast/inline/relative-positioned-overflow.html
2922         https://bugs.webkit.org/show_bug.cgi?id=29966
2923
2924         When an empty inline element is clicked, the root inline box has
2925         no leaf children. Use the renderer of a normal child instead.
2926
2927         This change resolves Windows port's assertion failure in a layout test.
2928         Also, this fixes the behavior when a user drags the mouse from an
2929         empty inline element to above texts.
2930
2931         Test: editing/selection/last-empty-inline.html
2932
2933         * rendering/RenderBlock.cpp:
2934         (WebCore::RenderBlock::positionForPointWithInlineChildren):
2935
2936 2009-11-26  Kent Tamura  <tkent@chromium.org>
2937
2938         Reviewed by Eric Seidel.
2939
2940         [Chromium] Ignore line-height CSS property specified to push buttons on
2941         Windows and Linux.
2942         https://bugs.webkit.org/show_bug.cgi?id=31712
2943
2944         LayoutTests/fast/forms/control-restrict-line-height.html checks that the
2945         following controls should ignore line-height CSS property.
2946          - <select>
2947          - <input type=button>
2948          - <input type=search>
2949         This change addresses the <input type=button> issue with Chromium/Windows
2950         and Chromium/Linux.
2951         
2952         * rendering/RenderThemeChromiumSkia.cpp: Implement adjustButtonStyle() to ignore line-height.
2953         * rendering/RenderThemeChromiumSkia.h: Declare adjustButtonStyle().
2954
2955 2009-11-26  Kinuko Yasuda  <kinuko@chromium.com>
2956
2957         Reviewed by Eric Seidel.
2958
2959         Remove the special charset meta tag in the clipboard so that
2960         copy-and-paste with interchange breaklines/spaces works correctly
2961         within WebKit.
2962
2963         No new tests.  Layout tests that involve copy-and-paste with
2964         interchange breaklines (like editing/pasteboard/paste-line-endings-00?)
2965         should pass on Mac/Chromium with this fix.
2966
2967         * platform/chromium/ClipboardChromium.cpp:
2968         * platform/chromium/PasteboardChromium.cpp:
2969         (WebCore::Pasteboard::documentFragment):
2970
2971 2009-11-26  İsmail Dönmez  <ismail@namtrac.org>
2972
2973         Reviewed by Eric Seidel.
2974
2975         Compile with QT_NO_WHEELEVENT defined.
2976
2977         * platform/qt/WheelEventQt.cpp:
2978         (WebCore::PlatformWheelEvent::applyDelta):
2979
2980 2009-11-26  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2981
2982         Reviewed by Oliver Hunt.
2983
2984         Move GOwnPtr* from wtf to wtf/gtk
2985         https://bugs.webkit.org/show_bug.cgi?id=31793
2986
2987         No new tests as there is no functional change.
2988
2989         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp: Change the
2990           path for GOwnPtr.h.
2991         * platform/text/TextEncoding.cpp: Ditto.
2992         * platform/text/gtk/TextCodecGtk.cpp: Ditto.
2993
2994 2009-11-26  Yury Semikhatsky  <yurys@chromium.org>
2995
2996         Not reviewed. Build fix: revert r51421.
2997
2998         * inspector/InspectorController.cpp:
2999         (WebCore::InspectorController::willSendRequest):
3000         (WebCore::InspectorController::didReceiveResponse):
3001         (WebCore::InspectorController::didReceiveContentLength):
3002         (WebCore::InspectorController::didFinishLoading):
3003         (WebCore::InspectorController::didFailLoading):
3004         * inspector/InspectorController.h:
3005         * inspector/InspectorResource.cpp:
3006         (WebCore::InspectorResource::addLength):
3007         * loader/ResourceLoadNotifier.cpp:
3008         (WebCore::ResourceLoadNotifier::didFailToLoad):
3009         (WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
3010         (WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
3011         (WebCore::ResourceLoadNotifier::dispatchDidReceiveContentLength):
3012         (WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
3013
3014 2009-11-26  Yury Semikhatsky  <yurys@chromium.org>
3015
3016         Reviewed by Pavel Feldman.
3017
3018         This is a WebCore part of the fix that allows to view plugin
3019         resources loaded by plugins.
3020
3021         https://bugs.webkit.org/show_bug.cgi?id=31832
3022
3023         * inspector/InspectorController.cpp:
3024         (WebCore::InspectorController::willSendRequest):
3025         (WebCore::InspectorController::didReceiveResponse):
3026         (WebCore::InspectorController::didReceiveContentLength):
3027         (WebCore::InspectorController::didFinishLoading):
3028         (WebCore::InspectorController::didFailLoading):
3029         * inspector/InspectorController.h: Remove unused DocumentLoader parameters from inspector methods.
3030         * inspector/InspectorResource.cpp:
3031         (WebCore::InspectorResource::addLength): Update loading end time when new data are received.
3032         * loader/ResourceLoadNotifier.cpp:
3033         (WebCore::ResourceLoadNotifier::didFailToLoad): Notify InspectorController about the failure.
3034         (WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
3035         (WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
3036         (WebCore::ResourceLoadNotifier::dispatchDidReceiveContentLength):
3037         (WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
3038
3039 2009-11-26  Daniel Bates  <dbates@webkit.org>
3040
3041         Reviewed by Pavel Feldman.
3042
3043         https://bugs.webkit.org/show_bug.cgi?id=21554
3044
3045         Implements support for hovering over <img> src to display the height and width of that image
3046         in a tooltip. Displays both the displayable and natural dimensions of the image.
3047
3048         Test: inspector/elements-img-tooltip.html
3049
3050         * inspector/front-end/ElementsTreeOutline.js:
3051         (WebInspector.ElementsTreeElement.prototype.createTooltipForImageNode): Added.
3052         (WebInspector.ElementsTreeElement.prototype._updateTitle.callback):
3053         (WebInspector.ElementsTreeElement.prototype._updateTitle):
3054         (WebInspector.ElementsTreeElement.prototype._nodeTitleInfo):
3055         * inspector/front-end/ObjectProxy.js:
3056         (WebInspector.ObjectProxy.getPropertiesAsync): Added.
3057         * inspector/front-end/inspector.js:
3058         (WebInspector.linkifyURLAsNode): Added tooltipText argument.
3059         (WebInspector.linkifyURL): Ditto.
3060
3061 2009-11-26  Kevin Ollivier  <kevino@theolliviers.com>
3062
3063         wx build fix after drawPattern API change.
3064
3065         * platform/graphics/wx/ImageWx.cpp:
3066         (WebCore::Image::drawPattern):
3067
3068 2009-11-26  Anton Muhin  <antonm@chromium.org>
3069
3070         Reviewed by Adam Barth.
3071
3072         Use an internal field instead of hidden property to speedup lookup
3073         of entered isolated world.
3074
3075         Plus some inlinings.
3076         https://bugs.webkit.org/show_bug.cgi?id=31884
3077
3078         Covered by layout tests + manual running of some benchmarks as
3079         content scripts.
3080
3081         * bindings/v8/V8DOMWrapper.cpp:
3082         * bindings/v8/V8DOMWrapper.h:
3083         (WebCore::V8DOMWrapper::setDOMWrapper):
3084         * bindings/v8/V8HiddenPropertyName.h:
3085         * bindings/v8/V8IsolatedWorld.cpp:
3086         (WebCore::V8IsolatedWorld::V8IsolatedWorld):
3087         * bindings/v8/V8IsolatedWorld.h:
3088         (WebCore::V8IsolatedWorld::getEntered):
3089         (WebCore::V8IsolatedWorld::getGlobalObject):
3090         * bindings/v8/custom/V8CustomBinding.h:
3091
3092 2009-11-26  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3093
3094         Reviewed by Kenneth Rohde Christiansen.
3095
3096         [Qt] Corrects build break on Windows.
3097
3098         Rename platform/text/qt/TextBoundaries.cpp to TextBoundariesQt.cpp since
3099         platform/text/TextBoundaries.cpp was compiled instead when compiling with nmake.
3100
3101         * WebCore.pro:
3102         * platform/text/qt/TextBoundariesQt.cpp: Renamed from WebCore/platform/text/qt/TextBoundaries.cpp.
3103         (WebCore::findNextWordFromIndex):
3104         (WebCore::findWordBoundary):
3105
3106 2009-11-26  Anton Muhin  <antonm@chromium.org>
3107
3108         Reviewed by Adam Barth.
3109
3110         Do not check if the thread is main or not when accessing DOMDataStore as currently in Chromium WebKit is used in main thread only.
3111         https://bugs.webkit.org/show_bug.cgi?id=31877
3112
3113         Covered by layout tests and buildbots.
3114
3115         * bindings/v8/V8DOMMap.cpp:
3116         (WebCore::getDOMNodeMap):
3117         (WebCore::getDOMObjectMap):
3118         (WebCore::getActiveDOMObjectMap):
3119         (WebCore::getDOMSVGElementInstanceMap):
3120         (WebCore::getDOMSVGObjectWithContextMap):
3121
3122 2009-11-26  Girish Ramakrishnan  <girish@forwardbias.in>
3123
3124         Reviewed by Holger Freyther.
3125
3126         [Qt] Mac Plugins : Pass mouse position relative to the fake window
3127         
3128         When using off-screen rendering, we need to pass mouse events relative
3129         to the fake window instead of the global position.
3130         
3131         https://bugs.webkit.org/show_bug.cgi?id=31794
3132
3133         * plugins/mac/PluginViewMac.cpp:
3134         (WebCore::PluginView::platformStart):
3135         (WebCore::PluginView::handleMouseEvent):
3136
3137 2009-11-24  Holger Hans Peter Freyther  <zecke@selfish.org>
3138
3139         Reviewed by Eric Seidel.
3140
3141         [Qt] Use QNetworkReply::rawHeaderPairs
3142         https://bugs.webkit.org/show_bug.cgi?id=31826
3143
3144         The QNetworkReply is internally storing the HTTP headers
3145         as a list of pairs. Currently we have to ask the QNetworkReply
3146         to put all header names into a QStringList. Afterwards we will
3147         iterate over this QStringList and ask the QNetworkReply to
3148         give us the value for this header name. The current Qt implementation
3149         is doing a linear to find the header value.
3150
3151         Use a new API to directly access the list of pairs and push
3152         this into WebCore. This avoids doing some allocations and doing
3153         linear searches from within a loop.
3154
3155         * platform/network/qt/QNetworkReplyHandler.cpp:
3156         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
3157
3158 2009-11-21  Holger Hans Peter Freyther  <zecke@selfish.org>
3159
3160         Reviewed by Kenneth Rohde Christiansen.
3161
3162         [Qt] Add Qt specific information of RenderPart
3163         https://bugs.webkit.org/show_bug.cgi?id=31203
3164
3165         The WebCore::Widget of the RenderPart (RenderWidget) might be
3166         backed with a platform widget. Print both the WebCore::Widget
3167         and platform widget state. In the above bug we had a problem
3168         that the WebCore::Widget was invisible but the QWidget was
3169         visible.
3170
3171         * rendering/RenderTreeAsText.cpp:
3172         (WebCore::operator<<): Add special case for RenderPart
3173
3174 2009-11-17  Holger Hans Peter Freyther  <zecke@selfish.org>
3175
3176         Reviewed by Kenneth Rohde Christiansen.
3177
3178         [Qt] Call Widget::setSelfVisible from hide/show
3179         https://bugs.webkit.org/show_bug.cgi?id=31203
3180
3181         Call Widget::setSelfVisible from Widget::show and
3182         Widget::hide and use isParentVisible to decide
3183         if the widget should be shown. This way client
3184         code can rely on isVisible.
3185
3186         Change PluginViewQt::show, PluginViewQt::hide to
3187         call the base class as it is doing the right thing
3188         now. Add an assert verify that platfomWidget and
3189         platformPluginWidget are the same.
3190
3191         * manual-tests/qt/qtplugin.html: Modify manual test
3192         * platform/qt/WidgetQt.cpp:
3193         (WebCore::Widget::show):
3194         (WebCore::Widget::hide):
3195         * plugins/qt/PluginViewQt.cpp:
3196         (WebCore::PluginView::show):
3197         (WebCore::PluginView::hide):
3198
3199 2009-11-24  Holger Hans Peter Freyther  <zecke@selfish.org>
3200
3201         Reviewed by Alexey Proskuryakov.
3202
3203         Fix compilation of REQUEST_DEBUG debug code
3204         https://bugs.webkit.org/show_bug.cgi?id=31850
3205
3206         In r47907 the single parameter KURL constructor to parse
3207         from a WebCore::String was replaced with a two parameter
3208         constructor. I think in this debug case parsing the urls
3209         again is no problem and I have changed the code to use the
3210         two parameter version.
3211
3212         * loader/loader.cpp:
3213         (WebCore::Loader::Host::didFinishLoading):
3214
3215 2009-11-26  Søren Gjesse  <sgjesse@chromium.org>
3216
3217         Reviewed by Pavel Feldman.
3218
3219         [V8] Avoid using JavaScript objects as context data
3220         https://bugs.webkit.org/show_bug.cgi?id=31873
3221
3222         Change the context "data" from a JavaScript object holding the two properties type and value to
3223         a string holding type and value separated by a comma.
3224
3225         * bindings/v8/V8Proxy.cpp:
3226         (WebCore::V8Proxy::setInjectedScriptContextDebugId):
3227         (WebCore::V8Proxy::setContextDebugId):
3228         (WebCore::V8Proxy::contextDebugId):
3229
3230 2009-11-25  Dimitri Glazkov  <dglazkov@chromium.org>
3231
3232         Reviewed by David Levin.
3233
3234         [Chromium] Implement canSetValueAttribute in the API, the clean-up part.
3235         https://bugs.webkit.org/show_bug.cgi?id=31894
3236
3237         * accessibility/chromium/AccessibilityObjectWrapper.h: Added RefCounted decl.
3238         (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper): Removed mis-refcountingness.
3239
3240 2009-11-25  Kenneth Russell  <kbr@google.com>
3241
3242         Reviewed by Oliver Hunt.
3243
3244         Off-by-one error in index validation for drawElements and drawArrays
3245         https://bugs.webkit.org/show_bug.cgi?id=31891
3246
3247         Fixed computation of number of elements for bound array objects.
3248
3249         Test: fast/canvas/webgl/index-validation.html
3250
3251         * html/canvas/WebGLRenderingContext.cpp:
3252         (WebCore::WebGLRenderingContext::vertexAttribPointer):
3253
3254 2009-11-25  Dmitry Titov  <dimich@chromium.org>
3255
3256         Reviewed by David Levin.
3257
3258         Update SharedScript to use eventNames() instead of EventNames()
3259         https://bugs.webkit.org/show_bug.cgi?id=31890
3260
3261         * SharedScript/WebKitSharedScript.cpp:
3262         (WebCore::LoadEventTask::performTask):
3263
3264 2009-11-25  Eric Carlson  <eric.carlson@apple.com>
3265
3266         Reviewed by Simon Fraser.
3267
3268         <rdar://problem/7409331> Windows: Support closed caption in <video> element
3269
3270         Enable closed captions in QuickTime/Windows media engine.
3271
3272         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
3273         (WebCore::MediaPlayerPrivate::hasClosedCaptions):
3274         (WebCore::MediaPlayerPrivate::setClosedCaptionsVisible):
3275             New, all through to m_qtMovie.
3276
3277         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
3278             Make all but the destructor private since MediaPlayer call through the media
3279             engine interface.
3280
3281         * platform/graphics/win/QTMovieWin.cpp:
3282         (QTMovieWin::disableUnsupportedTracks):
3283             Use handy new constants for QuickTime track types.
3284         (QTMovieWin::hasClosedCaptions):
3285         (QTMovieWin::setClosedCaptionsVisible):
3286             New, closed caption support.
3287         * platform/graphics/win/QTMovieWin.h:
3288
3289         * rendering/RenderMediaControls.cpp:
3290         (WebCore::RenderMediaControls::paintMediaControlsPart):
3291             Deal with closed caption buttons.
3292
3293         * rendering/RenderThemeWin.cpp:
3294         (WebCore::RenderThemeWin::shouldRenderMediaControlPart):
3295             New, don't ask the media engine if it has closed captions unless the Safari theme will
3296             be able to render the button.
3297         (WebCore::RenderThemeWin::paintMediaToggleClosedCaptionsButton):
3298             New.
3299         * rendering/RenderThemeWin.h:
3300
3301 2009-11-25  Drew Wilson  <atwilson@chromium.org>
3302
3303         Reviewed by David Levin.
3304
3305         MessagePorts always look remotely entangled even when closed.
3306         https://bugs.webkit.org/show_bug.cgi?id=31698
3307
3308         Tests: Existing tests suffice, Chromium soak test passes now.
3309
3310         * bindings/v8/custom/V8CustomBinding.h:
3311         Removed kMessagePortEntangledPortIndex which is no longer used.
3312         * bindings/v8/V8GCController.cpp:
3313         (WebCore::GCPrologueVisitor::visitDOMWrapper):
3314         Simplified GC code to reflect the Chromium MessagePort implementation
3315         (locallyEntangledPort() always returns false).
3316         (WebCore::GCEpilogueVisitor::visitDOMWrapper):
3317         Cleaned up epilogue code to handle the case where the port gets closed
3318         in mid-GC (due to the parent context being freed).
3319         * dom/MessagePort.cpp:
3320         (WebCore::MessagePort::MessagePort):
3321         (WebCore::MessagePort::close):
3322         Now sets the closed flag.
3323         (WebCore::MessagePort::disentanglePorts):
3324         Updated to use new isCloned() API instead of relying on isEntangled(), which was incorrect.
3325         * dom/MessagePort.h:
3326         Added a m_closed flag and updated isEntangled() to check it.
3327         (WebCore::MessagePort::isEntangled):
3328         Now returns false if the port has been closed.
3329         (WebCore::MessagePort::isCloned):
3330         Added new API to differentiate between cloned and closed ports (closed ports can still be passed to postMessage).
3331
3332 2009-11-25  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3333
3334         Reviewed by Simon Hausmann.
3335
3336         [Qt] Fix crash of QtWebKit on any page with Flash when compiled with MinGW.
3337
3338         Fix inline assembly, don't dereference the function pointer twice.
3339
3340         * plugins/win/PluginViewWin.cpp:
3341         (WebCore::PluginView::hookedBeginPaint):
3342         (WebCore::PluginView::hookedEndPaint):
3343
3344 2009-11-22  Jakub Wieczorek  <faw217@gmail.com>
3345
3346         Reviewed by Adam Barth.
3347
3348         [Qt] Remove the Referer header when redirecting to a non-secure site
3349         https://bugs.webkit.org/show_bug.cgi?id=31785
3350
3351         This makes Qt pass two tests introduced in r50226.
3352
3353         * platform/network/qt/QNetworkReplyHandler.cpp:
3354         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
3355
3356 2009-11-25  Andrei Popescu  <andreip@google.com>
3357
3358         Reviewed by Dimitri Glazkov.
3359
3360         The select elements do not reflect the actual choice the user makes.
3361         https://bugs.webkit.org/show_bug.cgi?id=31831
3362
3363         Handle the drawing of the listboxes in Android code.
3364
3365         No new features, just fixing an Android problem. Existing layout tests are sufficient.
3366
3367         * platform/android/RenderThemeAndroid.cpp:
3368         (WebCore::theme):
3369         (WebCore::RenderThemeAndroid::platformActiveSelectionBackgroundColor):
3370         (WebCore::RenderThemeAndroid::platformActiveListBoxSelectionBackgroundColor):
3371         (WebCore::RenderThemeAndroid::platformInactiveListBoxSelectionBackgroundColor):
3372         (WebCore::RenderThemeAndroid::platformActiveListBoxSelectionForegroundColor):
3373         (WebCore::RenderThemeAndroid::platformInactiveListBoxSelectionForegroundColor):
3374         (WebCore::RenderThemeAndroid::adjustButtonStyle):
3375         (WebCore::RenderThemeAndroid::paintTextArea):
3376         (WebCore::RenderThemeAndroid::adjustListboxStyle):
3377         * platform/android/RenderThemeAndroid.h:
3378
3379 2009-11-25  Alexander Pavlov  <apavlov@chromium.org>
3380
3381         Reviewed by Pavel Feldman.
3382
3383         Load InspectorResource mime type from CachedResource for 304 responses
3384
3385         For network libraries that do not merge cache data into 304 ResourceResponses,
3386         the mime type for cached resources is unknown.
3387         https://bugs.webkit.org/show_bug.cgi?id=31868
3388
3389         * inspector/InspectorResource.cpp:
3390         (WebCore::InspectorResource::updateResponse):
3391         (WebCore::InspectorResource::updateScriptObject):
3392         (WebCore::InspectorResource::type):
3393
3394 2009-11-25  Andrei Popescu  <andreip@google.com>
3395
3396         Reviewed by Eric Seidel.
3397
3398         Android is missing implementation of SSL Key generator functions.
3399         https://bugs.webkit.org/show_bug.cgi?id=31825
3400
3401         This change adds the PlatformBridge class to platform/android.
3402         PlarformBridge is used to access the embedding layer for things
3403         such as key generator, cookies, plugins, etc.
3404
3405         No new tests required, this is platform code.
3406
3407         * platform/android/PlatformBridge.h: Added.
3408         * platform/android/SSLKeyGeneratorAndroid.cpp: Added.
3409         (WebCore::getSupportedKeySizes):
3410         (WebCore::signedPublicKeyAndChallengeString):
3411
3412 2009-11-25  Philippe Normand  <pnormand@igalia.com>
3413
3414         Reviewed by Eric Seidel.
3415
3416         [GTK] use gst_init_check() instead of gst_init()
3417         https://bugs.webkit.org/show_bug.cgi?id=31864
3418
3419         Use gst_init_check() instead of gst_init() to prevent eventual
3420         unexpected exit of the application.
3421
3422         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3423         (WebCore::do_gst_init):
3424         (WebCore::MediaPlayerPrivate::isAvailable):
3425
3426 2009-11-25  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
3427
3428         Reviewed by Xan Lopez.
3429
3430         Some tests are crashing from time to time
3431         https://bugs.webkit.org/show_bug.cgi?id=31866
3432
3433         Make sure we do not notify the client of a finished load, if the
3434         load has been cancelled, or the client is gone.
3435
3436         * platform/network/soup/ResourceHandleSoup.cpp:
3437         (WebCore::):
3438
3439 2009-11-24  Ben Murdoch  <benm@google.com>
3440
3441         Reviewed by Eric Seidel.
3442
3443         [Android] Upstream Android changes to WebCore/bridge/jni
3444         https://bugs.webkit.org/show_bug.cgi?id=31824
3445
3446         No new tests required as no new functionality.
3447
3448         * bridge/jni/jni_class.cpp:
3449         (JavaClass::JavaClass): Add calls to delete allocated references, to avoid potential leaks.
3450         * bridge/jni/jni_instance.cpp: Add an Android include path.
3451         * bridge/jni/jni_instance.h: Add getter/setter for JObjectWrapper::_instance and make the JavaInstance ctor and member variables protected. Both needed for the Android port, see bug for discussion.
3452         (JSC::Bindings::JObjectWrapper::instance): Added.
3453         (JSC::Bindings::JObjectWrapper::setInstance): Added.
3454         * bridge/jni/jni_runtime.cpp:
3455         (JavaMethod::JavaMethod): Delete an allocated reference to avoid a potential leak.
3456         * bridge/jni/jni_utility.h:
3457         (JSC::Bindings::callJNIMethodV): Delete an allocated reference to avoid a potential leak.
3458
3459 2009-11-24  Zoltan Horvath  <zoltan@webkit.org>
3460
3461         Reviewed by Eric Seidel.
3462
3463         Allow custom memory allocation control for classes of the plugins and rendering directory in WebCore
3464         https://bugs.webkit.org/show_bug.cgi?id=31827
3465
3466         Inherits the following classes from Noncopyable because these are instantiated
3467         by 'new' and no need to be copyable:
3468
3469         class/struct name               - instantiated at: WebCore/'location'
3470
3471         class PluginRequest             - plugins/PluginView.cpp:521
3472         class PluginMainThreadScheduler - plugins/PluginMainThreadScheduler.cpp:34
3473         class PluginDatabase            - plugins/PluginDatabase.cpp:50
3474         struct MimeClassInfo            - plugins/PluginInfoStore.cpp:50
3475         struct PluginInfo               - plugins/PluginInfoStore.cpp:40
3476         class RenderArena               - dom/Document.cpp:1401
3477         class RenderImageScaleData      - rendering/RenderImage.cpp:149
3478         class TableLayout               - (its child class) rendering/RenderTable.cpp:82
3479         struct ColumnInfo               - rendering/RenderBlock.cpp:3590
3480         struct FloatingObject           - rendering/RenderBlock.cpp:2300
3481         struct MaxMargin                - rendering/RenderBlock.cpp:4794
3482         class RenderMarquee             - rendering/RenderLayer.cpp:3277
3483
3484         * plugins/PluginData.h:
3485         * plugins/PluginDatabase.h:
3486         * plugins/PluginMainThreadScheduler.h:
3487         * plugins/PluginView.h:
3488         * rendering/RenderArena.h:
3489         * rendering/RenderBlock.cpp:
3490         * rendering/RenderBlock.h:
3491         * rendering/RenderImage.cpp:
3492         * rendering/RenderMarquee.h:
3493         * rendering/TableLayout.h:
3494
3495 2009-11-24  Dmitry Titov  <dimich@chromium.org>
3496
3497         Reviewed by David Levin.
3498
3499         Initial implementation of WebKitSharedScript and SharedScriptContext
3500         https://bugs.webkit.org/show_bug.cgi?id=31569
3501
3502         No new tests since there are no bindings yet (soon to come).
3503
3504         * DerivedSources.make: Add WebKitSharedScript and SharedScriptContext to a list of idl files.
3505         * WebCore.xcodeproj/project.pbxproj:
3506         * dom/Document.cpp:
3507         (WebCore::Document::detach): Notify WebKitSharedScriptRepository that document is detaching.
3508         * dom/EventTarget.cpp: Add new casting methods, since the new types are EventTargets.
3509         (WebCore::EventTarget::toWebKitSharedScript):
3510         (WebCore::EventTarget::toSharedScriptContext):
3511         * dom/EventTarget.h: Ditto
3512         * dom/ScriptExecutionContext.h:
3513         (WebCore::ScriptExecutionContext::isSharedScriptContext): New virtual method, since there is a new type of context.
3514
3515         * SharedScript/SharedScriptContext.cpp: Added. Similar to WorkerContext, but w/o threading.
3516         (WebCore::SharedScriptContext::SharedScriptContext):
3517         (WebCore::SharedScriptContext::~SharedScriptContext):
3518         (WebCore::SharedScriptContext::clearScript):
3519         (WebCore::SharedScriptContext::virtualURL):
3520         (WebCore::SharedScriptContext::virtualCompleteURL):
3521         (WebCore::SharedScriptContext::reportException):
3522         (WebCore::SharedScriptContext::addMessage):
3523         (WebCore::SharedScriptContext::resourceRetrievedByXMLHttpRequest):
3524         (WebCore::SharedScriptContext::scriptImported):
3525         (WebCore::SharedScriptContext::matches):
3526         (WebCore::SharedScriptContext::addToDocumentsList):
3527         (WebCore::SharedScriptContext::destructionTimerFired):
3528         (WebCore::SharedScriptContext::removeFromDocumentList):
3529         (WebCore::SharedScriptContext::load):
3530         (WebCore::SharedScriptContext::postTask):
3531         (WebCore::SharedScriptContext::eventTargetData):
3532         (WebCore::SharedScriptContext::ensureEventTargetData):
3533         (WebCore::SharedScriptContext::scriptExecutionContext):
3534         * SharedScript/SharedScriptContext.h: Added.
3535         (WebCore::SharedScriptContext::create):
3536         (WebCore::SharedScriptContext::isSharedScriptContext):
3537         (WebCore::SharedScriptContext::userAgent):
3538         (WebCore::SharedScriptContext::toSharedScriptContext):
3539         (WebCore::SharedScriptContext::self):
3540         (WebCore::SharedScriptContext::script):
3541         (WebCore::SharedScriptContext::loaded):
3542         (WebCore::SharedScriptContext::name):
3543         (WebCore::SharedScriptContext::refEventTarget):
3544         (WebCore::SharedScriptContext::derefEventTarget):
3545         (WebCore::SharedScriptContext::refScriptExecutionContext):
3546         (WebCore::SharedScriptContext::derefScriptExecutionContext):
3547         * SharedScript/SharedScriptContext.idl: Added.
3548
3549         * SharedScript/SharedScriptController.h: 
3550         Added. Empty implementation of a ScriptController, will come later as part of bindings. Needed to compile.
3551
3552         * SharedScript/WebKitSharedScript.cpp: Added. EventTarget-based DOM object.
3553         (WebCore::WebKitSharedScript::WebKitSharedScript):
3554         (WebCore::WebKitSharedScript::~WebKitSharedScript):
3555         (WebCore::WebKitSharedScript::setContext):
3556         (WebCore::LoadEventTask::create): Fires asynchronous 'load' event when underlying SharedScriptContext is initialized.
3557         (WebCore::LoadEventTask::performTask):
3558         (WebCore::LoadEventTask::LoadEventTask):
3559         (WebCore::WebKitSharedScript::scheduleLoadEvent):
3560         * SharedScript/WebKitSharedScript.h: Added.
3561         (WebCore::WebKitSharedScript::create):
3562         (WebCore::WebKitSharedScript::scriptExecutionContext):
3563         (WebCore::WebKitSharedScript::toWebKitSharedScript):
3564         (WebCore::WebKitSharedScript::context):
3565         (WebCore::WebKitSharedScript::refEventTarget):
3566         (WebCore::WebKitSharedScript::derefEventTarget):
3567         (WebCore::WebKitSharedScript::eventTargetData):