[Chromium] Implement file support for DragData.
[WebKit-https.git] / WebCore / ChangeLog
1 2009-09-02  Jian Li  <jianli@chromium.org>
2
3         Reviewed by Dimitri Glazkov.
4
5         [Chromium] Implement file support for DragData.
6         https://bugs.webkit.org/show_bug.cgi?id=28896
7
8         * platform/chromium/DragDataChromium.cpp:
9         (WebCore::DragData::containsURL):
10         (WebCore::DragData::asURL):
11         (WebCore::DragData::containsCompatibleContent):
12
13 2009-09-02  Kevin Watters  <kevinwatters@gmail.com>
14
15         Reviewed by Kevin Ollivier.
16
17         Protect libcurl shared data with Mutex objects via curl_set_share_opt.
18         https://bugs.webkit.org/show_bug.cgi?id=28920
19
20         * platform/network/curl/ResourceHandleManager.cpp:
21         (WebCore::sharedResourceMutex):
22         (WebCore::curl_lock_callback):
23         (WebCore::curl_unlock_callback):
24         (WebCore::ResourceHandleManager::ResourceHandleManager):
25
26 2009-09-02  Evan Stade  <estade@chromium.org>
27
28         Reviewed by Eric Seidel.
29
30         Expose functions to change the focus ring color for Linux Chromium
31
32         https://bugs.webkit.org/show_bug.cgi?id=28887
33
34         * rendering/RenderThemeChromiumLinux.cpp:
35         (WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
36         (WebCore::RenderThemeChromiumLinux::setFocusRingColor):
37         (WebCore::RenderThemeChromiumLinux::platformFocusRingColor):
38         * rendering/RenderThemeChromiumLinux.h:
39
40 2009-09-02  Dirk Schulze  <krit@webkit.org>
41
42         Reviewed by Eric Seidel.
43
44         SVG Filter premultiplied color support for getImageDate/putImageData
45         [https://bugs.webkit.org/show_bug.cgi?id=27933]
46
47         Patch to get premultiplied color support for Skia on getImageDate/putImageData.
48
49         * platform/graphics/skia/ImageBufferSkia.cpp:
50         (WebCore::getImageData):
51         (WebCore::putImageData):
52
53 2009-09-02  Brady Eidson  <beidson@apple.com>
54
55         Forget to rename openInFrameloader() to open(), which was requested in Darin's review of my last patch.
56
57         * history/CachedFrame.cpp:
58         (WebCore::CachedFrameBase::restore):
59         (WebCore::CachedFrame::open):
60         * history/CachedFrame.h:
61         * history/CachedPage.cpp:
62         (WebCore::CachedPage::restore):
63
64 2009-09-02  Brady Eidson  <beidson@apple.com>
65
66         Reviewed by Darin Adler.
67
68         In http://trac.webkit.org/changeset/47943 I added new header dependencies to FrameLoader.h.
69         Removing them is a little trouble, but worth it going forward.
70         The pattern of creating a "CachedFrameBase" as the interface CachedFrame provides to FrameLoader
71         was suggested by Darin Adler.
72
73         No new tests. (No change in behavior)
74
75         Make CachedFrame inherit privately from CachedFrameBase, which becomes the interface FrameLoader uses:
76         * history/CachedFrame.cpp:
77         (WebCore::CachedFrameBase::CachedFrameBase):
78         (WebCore::CachedFrameBase::~CachedFrameBase):
79         (WebCore::CachedFrameBase::restore):
80         (WebCore::CachedFrame::CachedFrame):
81         (WebCore::CachedFrame::openInFrameLoader):
82         * history/CachedFrame.h:
83         (WebCore::CachedFrameBase::document):
84         (WebCore::CachedFrameBase::view):
85         (WebCore::CachedFrameBase::domWindow):
86         (WebCore::CachedFrame::create):
87         (WebCore::CachedFrame::documentLoader):
88         (WebCore::CachedFrame::mousePressNode):
89
90         Call the new ::openInFrameLoader() method on the CachedFrame, as CachedFrameBase is now the only
91         thing capable of interacting with FrameLoader::open(CachedFrameBase):
92         * history/CachedPage.cpp:
93         (WebCore::CachedPage::restore):
94         * history/CachedPage.h:
95         (WebCore::CachedPage::documentLoader):
96
97         Make ::open(CachedFrame) public, and change it to ::open(CachedFrameBase):
98         * loader/FrameLoader.cpp:
99         (WebCore::FrameLoader::open):
100         * loader/FrameLoader.h:
101
102 2009-09-02  Ryosuke Niwa  <rniwa@webkit.org>
103
104         Reviewed by Eric Seidel.
105
106         Cannot pres Enter to escape from bulleted list when <ul> is a child of <li>.
107         https://bugs.webkit.org/show_bug.cgi?id=24866
108
109         This patch modifies breakOutOfEmptyListItem to break out of a properly nested list
110         (a list to break out of is inside another list item).
111
112         When the empty list item appears at the end of another list item, WebKit breaks out of
113         the outer list item, and adds new item below the outer list item.
114         Otherwise, WebKit breaks out of the the inner list item and inserts new paragraph.
115
116         Test: editing/execCommand/break-out-of-empty-list-item.html
117
118         * editing/CompositeEditCommand.cpp:
119         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem):
120
121 2009-09-02  Brady Eidson  <beidson@apple.com>
122
123         Reviewed by Sam Weinig.
124
125         More partial work towards "Page Cache should support pages with Frames"
126         https://bugs.webkit.org/show_bug.cgi?id=13631
127
128         This patch is primarily about the "CachedFrame tree" and making slightly different decisions
129         based on whether a CachedFrame is the main frame or a subframe.
130
131         - Store whether a CachedFrame represents the main frame or a subframe.
132         - "Chop off the frame tree" for the main frame when creating its CachedFrame, as main frames 
133           are reused and need to start new page loads with an empty frame tree.
134         - Reattach the frame tree to the main frame when restoring it.
135         - open() the cached subframes in their respective loaders when restoring.
136         - Properly clear() and destroy() cached subframes.
137         - When committing to a new page load, and after caching the previous page, only clear the
138           FrameView for the main frame.
139
140         Note that all of above will eventually be necessary as I continue to land this work in pieces,
141         but doesn't actually change any behavior right now because we still refuse to even *try* to
142         cache pages with frames.
143
144         No new tests. No change in behavior, and current tests continue to pass.
145
146         * history/CachedFrame.cpp:
147         (WebCore::CachedFrame::CachedFrame):
148         (WebCore::CachedFrame::restore):
149         (WebCore::CachedFrame::clear):
150         (WebCore::CachedFrame::destroy):
151         * history/CachedFrame.h:
152         (WebCore::CachedFrame::isMainFrame):
153
154         * loader/FrameLoader.cpp:
155         (WebCore::FrameLoader::clear):
156         (WebCore::FrameLoader::open):
157         * loader/FrameLoader.h:
158
159 2009-09-02  Brady Eidson  <beidson@apple.com>
160
161         No review, build fix.
162
163         http://trac.webkit.org/changeset/47976 broke the build.  
164         Let's try compiling before we land things, shall we?
165
166         * platform/graphics/SimpleFontData.cpp:
167         (WebCore::SimpleFontData::SimpleFontData): Order the initialization list correctly.
168
169 2009-09-02  Kevin Ollivier  <kevino@theolliviers.com>
170
171         waf build fixes for Windows/MSVC.
172
173         * wscript:
174
175 2009-09-02  Ben Murdoch  <benm@google.com>
176
177         Unreviewed build fix for Chromium.
178
179         Missed #including V8Proxy.h in WebCore/bindings/v8/V8Binding.cpp.
180
181         * bindings/v8/V8Binding.cpp: add V8Proxy.h as an include
182
183 2009-09-02  Kevin Ollivier  <kevino@theolliviers.com>
184
185         waf build fix, don't define symbols we now grab from other sources.
186
187         * platform/wx/TemporaryLinkStubs.cpp:
188
189 2009-09-02  Kevin Ollivier  <kevino@theolliviers.com>
190
191         Build fixes for PluginViewNone.cpp and a wx build fix for PluginView.cpp.
192
193         * plugins/PluginView.cpp:
194         (WebCore::PluginView::stop):
195         * plugins/PluginViewNone.cpp:
196         (WebCore::PluginView::platformDestroy):
197
198 2009-09-02  Charles Wei  <charles.wei@torchmobile.com.cn>
199
200         Reviewed by Eric Seidel.
201
202         Fix the build failure of WebKit for Linux/Qt when WML is enabled
203
204         No test cases needed since this just fixes the build problem.
205
206         * wml/WMLElement.cpp:
207         (WebCore::WMLElement::create):
208         * wml/WMLTableElement.cpp:
209         (WebCore::WMLTableElement::joinSuperflousColumns):
210         (WebCore::WMLTableElement::padWithEmptyColumns):
211
212 2009-09-02 Yong Li <yong.li@torchmobile.com>
213
214         Reviewed by Adam Barth.
215
216         WINCE PORT: use shared buffer for custom font data
217         https://bugs.webkit.org/show_bug.cgi?id=27734
218
219         Refactored by Joe Mason <joe.mason@torchmobile.com>
220
221         * loader/CachedFont.cpp:
222         add WINCE to platforms using cached custom data
223         * platform/graphics/opentype/OpenTypeUtilities.cpp:
224         (WebCore::renameFont): implement for WinCE
225         * platform/graphics/opentype/OpenTypeUtilities.h:
226         build fixes
227         * platform/graphics/wince/FontCustomPlatformData.cpp:
228         (WebCore::setCustomFontCache): add accessor
229         (WebCore::createFontCustomPlatformData): change param to SharedBuffer
230         * platform/graphics/wince/FontCustomPlatformData.h:
231         update function signatures 
232  
233 2009-09-02 Yong Li <yong.li@torchmobile.com>
234
235         Reviewed by Adam Barth.
236
237         WINCE PORT: font-related build fixes and minor bugfixes
238         https://bugs.webkit.org/show_bug.cgi?id=27734
239
240         * platform/graphics/FontCache.h: declare functions added in https://bugs.webkit.org/show_bug.cgi?id=27509
241         * platform/graphics/GlyphPageTreeNode.cpp:
242         (WebCore::GlyphPageTreeNode::initializePage): fix ambiguous overload error in min/max on Windows
243         * platform/graphics/SimpleFontData.cpp:
244         (WebCore::SimpleFontData::SimpleFontData): initialize member vars
245         * platform/graphics/SimpleFontData.h: disable unused members on Wince to save space 
246
247 2009-09-02  Jeremy Orlow  <jorlow@chromium.org>
248
249         Reviewed by Adam Barth.
250
251         Another pass at releasing the storage mutex.
252         https://bugs.webkit.org/show_bug.cgi?id=28904
253
254         Another pass at releasing the storage mutex (when applicable) when we finish
255         executing JavaScript.  http://dev.w3.org/html5/spec/Overview.html#storage-mutex
256         describes the required behavior.
257
258         As it turns out, https://bugs.webkit.org/show_bug.cgi?id=28789 didn't solve
259         the problem correctly.  First of all, I missed that events and timeouts go
260         through a different call path.  Second of all, I didn't consider recursion
261         correctly.  Third of all, my check to see if LocalStorage is alive actually
262         instantiates it if it isn't yet.  Fourth, I forgot DOM_STORAGE guards around
263         it.  So I'm reverting that change completely and doing it more cleanly.
264         Unfortunately, the solution isn't as portable (and thus I've left out the JSC
265         implementation for now).
266
267         NOTE: This change now tracks recursion on function callbacks in V8.  I ran this
268         by Mads Ager and Mike Belshe and they seemed to think adding the checks were
269         fine.  Most callbacks are asynchronous and thus wouldn't be nested.  The few
270         scenareos where you can have nested callbacks probably should have always been
271         protected by a recursion guard.
272
273         Unfortunately, this can't be tested without a hook added to the layout test
274         controllers since the lock is (by design) not supposed to be observable by
275         JavaScript.  https://bugs.webkit.org/show_bug.cgi?id=28906
276
277         * bindings/js/ScriptController.cpp:
278         (WebCore::ScriptController::evaluate): revert
279         * bindings/v8/ScriptController.cpp:
280         (WebCore::ScriptController::evaluate): revert
281         * bindings/v8/V8Proxy.cpp:
282         (WebCore::V8Proxy::runScript):
283             Add releaseStorageMutex call.  A small amount of clean up.
284         (WebCore::V8Proxy::callFunction):
285             Add releaseStorageMutex call.  A small amount of clean up.
286         (WebCore::V8Proxy::releaseStorageMutex):
287             Check to see if localStorage has been instantiated.  If so, tell it to
288             unlock all storage areas.
289         * bindings/v8/V8Proxy.h:
290         * page/PageGroup.h:
291         (WebCore::PageGroup::hasLocalStorage):  Make hasLocalStorage public.
292
293 2009-09-02  Yong Li  <yong.li@torchmobile.com>
294
295         Reviewed by Adam Barth.
296
297         WINCE PORT: Implement ImageBuffer for WINCE
298         Implement Image interface with a light class BufferedImage
299         for rendering ImageBuffer
300         https://bugs.webkit.org/show_bug.cgi?id=28167
301
302         * platform/graphics/wince/ImageBufferData.h: Added.
303         * platform/graphics/wince/ImageBufferWince.cpp: Added.
304
305 2009-08-31  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
306
307         Reviewed by Eric Seidel.
308
309         Join the various PluginView destructors into one shared implementation
310
311         https://bugs.webkit.org/show_bug.cgi?id=27706
312
313         The Qt port used to delete the platform plugin widget as the last step.
314         Now this is done before cleaning up the script objects and unloading the
315         plugin package, similar to how the Win port does it.
316
317         * plugins/PluginView.cpp:
318         * plugins/PluginViewNone.cpp:
319         * plugins/gtk/PluginViewGtk.cpp:
320         * plugins/mac/PluginViewMac.cpp:
321         * plugins/qt/PluginViewQt.cpp:
322         * plugins/win/PluginViewWin.cpp:
323
324 2009-08-31  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
325
326         Reviewed by Eric Seidel.
327
328         Share PluginView::init() between ports
329
330         https://bugs.webkit.org/show_bug.cgi?id=27706
331
332         The port-spesific bits are moved to platformStart(), which now returns
333         a bool based on the success of the platformStart.
334
335         m_hasPendingGeometryChange is now initialized in the initializer list
336         instead of in PluginViewQt's init()
337
338         PluginViewMac (currently used only by the Qt port) used to manually call
339         stop() in the case where an unsupported drawing or event model was detected.
340         This was wrong, as the m_status and m_isStarted fields should be used to
341         guard against doing operations on a plugin in this intermediate state.
342
343         * plugins/PluginView.cpp:
344         * plugins/PluginView.h:
345         * plugins/PluginViewNone.cpp:
346         * plugins/gtk/PluginViewGtk.cpp:
347         * plugins/mac/PluginViewMac.cpp:
348         * plugins/qt/PluginViewQt.cpp:
349         * plugins/win/PluginViewWin.cpp:
350
351 2009-09-02  Ben Murdoch  <benm@google.com>
352
353         https://bugs.webkit.org/show_bug.cgi?id=28737
354         
355         Update JavaScript bindings in JSC and V8 for SQLTransaction to throw exceptions in the right places.
356
357         * bindings/js/JSSQLTransactionCustom.cpp:
358         (WebCore::JSSQLTransaction::executeSql): Throw an exception if no parameters are passed to executeSql().
359         * bindings/v8/V8Binding.cpp:
360         (WebCore::v8ValueToWebCoreString): Catch an exception if thrown from toString().
361         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
362         (WebCore::CALLBACK_FUNC_DECL): Allow "arrayish objects" to be passed to executeSql.
363
364 2009-09-01  Pavel Feldman  <pfeldman@chromium.org>
365
366         Reviewed by Timothy Hatcher.
367
368         WebInspector: Migrate Databases tab to InjectedScript /
369         serialized interaction.
370
371         https://bugs.webkit.org/show_bug.cgi?id=28873
372
373         * inspector/InspectorDOMAgent.cpp:
374         (WebCore::InspectorDOMAgent::handleEvent):
375         * inspector/front-end/Database.js:
376         (WebInspector.Database.prototype.isDB):
377         (WebInspector.Database.prototype.runWithTableNames.sortingCallback):
378         (WebInspector.Database.prototype.runWithTableNames):
379         (WebInspector.Database.prototype.executeSql):
380         (WebInspector.Database.prototype.executeSql.errorCallback):
381         (WebInspector.Database.prototype.executeSql.queryTransaction):
382         * inspector/front-end/DatabaseQueryView.js:
383         (WebInspector.DatabaseQueryView.prototype._enterKeyPressed):
384         (WebInspector.DatabaseQueryView.prototype._queryFinished):
385         * inspector/front-end/DatabaseTableView.js:
386         (WebInspector.DatabaseTableView):
387         * inspector/front-end/StoragePanel.js:
388         (WebInspector.StoragePanel.prototype.selectDatabase):
389         (WebInspector.StoragePanel.prototype.updateDatabaseTables.withTableNames):
390         (WebInspector.StoragePanel.prototype.updateDatabaseTables):
391         (WebInspector.DatabaseSidebarTreeElement.prototype.onpopulate.withTableNames):
392         (WebInspector.DatabaseSidebarTreeElement.prototype.onpopulate):
393
394 2009-09-02  Pavel Feldman  <pfeldman@chromium.org>
395
396         Not reviewed (trivial followup fix). 
397         
398         Web Inspector: Trivial follow up fix to r47944.
399
400         https://bugs.webkit.org/show_bug.cgi?id=28800
401
402         * inspector/InspectorBackend.cpp:
403         (WebCore::InspectorBackend::nodeForId):
404
405 2009-09-01  Brian Weinstein  <bweinstein@apple.com>
406
407         Reviewed by John Sullivan.
408
409         Fixed a bug in handling of isReadOnly, where textareas were casted to HTMLInputElements.
410
411         * accessibility/AccessibilityRenderObject.cpp:
412         (WebCore::AccessibilityRenderObject::isReadOnly):
413
414 2009-09-01  Patrick Mueller  <Patrick_Mueller@us.ibm.com>
415
416         Reviewed by Timothy Hatcher.
417
418         https://bugs.webkit.org/show_bug.cgi?id=28047
419         add utility method to enable logging messages for inspector development
420
421         manual test case added (see below)
422
423         * inspector/front-end/ConsoleView.js:
424         (WebInspector.ConsoleMessage.prototype.toMessageElement):
425         (WebInspector.ConsoleMessage.prototype.toString):
426         * inspector/front-end/inspector.css:
427         * inspector/front-end/inspector.js:
428         (WebInspector.log):
429         * manual-tests/inspector/webinspector-log.html: Added.
430         * page/Console.cpp:
431         (WebCore::printMessageSourceAndLevelPrefix):
432         * page/Console.h:
433         (WebCore::):
434
435 2009-09-01  Alexey Proskuryakov  <ap@apple.com>
436
437         Reviewed by Darin Adler.
438
439         https://bugs.webkit.org/show_bug.cgi?id=21990
440         When a rare EUC-JP character is present, explicitly (and correctly) labelled EUC-JP document
441         is mistreated as Shift_JIS
442
443         <rdar://problem/5828506> Safari should not try auto-detecting if charset information exists
444
445         WebKit used to unconditionally auto-detect document encoding if it was one of Japanese ones.
446         This didn't really match any browser, and did cause problems on some sites.
447
448         Our detector is very quick to label an EUC-JP page as Shift_JIS if it notices a byte that
449         cannot be part of EUC-JP source. However, such bytes do appear in Web pages sometimes,
450         especially in comments. Also, some valid EUC-JP sequences are not known to it.
451
452         Some pages that are fixed by this change:
453
454         <rdar://problem/5934750> Encoding in incorrect at http://cocodeparis.blog45.fc2.com/. This
455         page has incorrect encoding in title, so no browser displays it 100% fine. We now match
456         Firefox and IE.
457
458         <rdar://problem/6007713> The web page http://www.sf.us.emb-japan.go.jp/top.htm is garbled
459         in Safari. There is a stray byte in comments that was makes charset detector think it can't
460         be EUC-JP.
461
462         <rdar://problem/6965711> A Japanese web page www.nippontv.studiolegend.tv is garbled in
463         Safari. Many comments on this page are encoded as Shift_JIS - IE magically displays that
464         fine in View Source mode (it doesn't seem to have an ability to switch between EUC-JP and
465         Shift_JIS in normal HTML view though).
466
467         Test: fast/encoding/japanese-encoding-mix.html
468
469         * loader/TextResourceDecoder.cpp: (WebCore::TextResourceDecoder::decode): Only invoke auto-
470         detection if there is no solid charset information yet.
471
472 2009-09-01  Jian Li  <jianli@chromium.org>
473
474         Reviewed by Dimitri Glazkov.
475
476         [V8] FileList cannot be accessed via index in Chromium.
477         https://bugs.webkit.org/show_bug.cgi?id=28883
478
479         Tested by clipboard-file-access.html.
480
481         * WebCore.gypi:
482         * bindings/v8/V8DOMWrapper.cpp:
483         (WebCore::V8DOMWrapper::getTemplate):
484         * bindings/v8/custom/V8CustomBinding.h:
485         * bindings/v8/custom/V8FileListCustom.cpp: Added.
486
487 2009-08-31  Jon Honeycutt  <jhoneycutt@apple.com>
488
489         Remove the workaround added in r47316.
490
491         Reviewed by Sam Weinig.
492
493         * accessibility/AXObjectCache.cpp:
494         (WebCore::AXObjectCache::AXObjectCache):
495
496         * accessibility/AXObjectCache.h:
497         Remove the Document argument to the AXObjectCache constructor and the
498         m_document member variable, and replace the no-parameter
499         handleFocusedUIElementChanged() with the two-parameter GTK function.
500         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
501
502         * accessibility/chromium/AXObjectCacheChromium.cpp:
503         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
504
505         * accessibility/gtk/AXObjectCacheAtk.cpp:
506         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
507
508         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
509         (fallbackObject):
510         Don't pass a null Document when constructing the AXObjectCache.
511
512         * accessibility/mac/AXObjectCacheMac.mm:
513         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
514
515         * accessibility/win/AXObjectCacheWin.cpp:
516         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
517         Get the document from the RenderObject; m_document was removed.
518
519         * dom/Document.cpp:
520         (WebCore::Document::axObjectCache):
521         Don't pass the Document when constructing the AXObjectCache.
522         (WebCore::Document::setFocusedNode):
523         Pass the old and new focused RenderObjects when calling
524         handleFocusedUIElementChanged().
525
526 2009-09-01  Yury Semikhatsky  <yurys@chromium.org>
527
528         Reviewed by Timothy Hatcher.
529
530         Check that InspectorDOMAgent and InspectorFrontend are not null
531         before accessing them in InspectorBackend. They may be null if
532         InspectorController is closed before an asynchronous operation is
533         started.
534
535         https://bugs.webkit.org/show_bug.cgi?id=28800
536
537         * inspector/InspectorBackend.cpp:
538         (WebCore::InspectorBackend::getCookies):
539         (WebCore::InspectorBackend::getChildNodes):
540         (WebCore::InspectorBackend::setAttribute):
541         (WebCore::InspectorBackend::removeAttribute):
542         (WebCore::InspectorBackend::setTextNodeValue):
543         (WebCore::InspectorBackend::highlight):
544         (WebCore::InspectorBackend::nodeForId):
545         (WebCore::InspectorBackend::pushNodePathToFrontend):
546         (WebCore::InspectorBackend::addNodesToSearchResult):
547         (WebCore::InspectorBackend::selectDatabase):
548         (WebCore::InspectorBackend::selectDOMStorage):
549         (WebCore::InspectorBackend::inspectorDOMAgent):
550         (WebCore::InspectorBackend::inspectorFrontend):
551         * inspector/InspectorBackend.h:
552
553 2009-09-01  Brady Eidson  <beidson@apple.com>
554
555         Reviewed by Sam Weinig.
556
557         Page Cache should support pages with frames
558         https://bugs.webkit.org/show_bug.cgi?id=13631
559
560         Things learned in the full task that this patch addresses:
561         - The notions of clearing a CachedFrame and destroying a CachedFrame were two concepts that 
562           needed to be managed separately.
563         - Once we start restoring pages with multiple CachedFrames, we'll have to be calling
564           FrameLoader::open(CachedFrame&) multiple times with different CachedFrames, and this process
565           will be guided by the CachedFrames themselves.
566
567         No new tests. (No change in behavior, current layout tests pass)
568         
569         * history/CachedFrame.cpp:
570         (WebCore::CachedFrame::CachedFrame):
571         (WebCore::CachedFrame::~CachedFrame):
572         (WebCore::CachedFrame::clear): Only clear pointers out.
573         (WebCore::CachedFrame::destroy): Perform the destructive cleanup work here - Things that shouldn't
574           occur simply by navigating back to a page with a CachedFrame.
575         * history/CachedFrame.h:
576
577         * history/CachedPage.cpp:
578         (WebCore::CachedPage::~CachedPage):
579         (WebCore::CachedPage::restore): Call clear() after restoring.
580         (WebCore::CachedPage::clear):
581         (WebCore::CachedPage::destroy):
582         * history/CachedPage.h:
583
584         * history/PageCache.cpp:
585         (WebCore::PageCache::releaseAutoreleasedPagesNow): destroy() CachedPages that are being pruned,
586           instead of clearing them.
587
588         * loader/FrameLoader.cpp:
589         (WebCore::FrameLoader::commitProvisionalLoad): Let the CachedPage clear() itself after restoring.
590         (WebCore::FrameLoader::open): Don't ::open() the CachedFrame, as the CachedPage does that now.
591         * loader/FrameLoader.h:  Add the friending so CachedPage and CachedFrame can better guide the process.
592           Even though CachedFrame::restore() isn't used for now, it will be soon.
593
594 2009-09-01  Andrei Popescu  <andreip@google.com>
595
596         Reviewed by David Levin.
597
598         Add a "lowMemoryNotification" method to the V8 ScriptController class.
599         This is needed in order to allow the host application (Android Web browser in this case)
600         to call the v8::V8::LowMemoryNotification() method added to V8 in
601         http://code.google.com/p/v8/source/detail?spec=svn2777&r=2725
602         
603         https://bugs.webkit.org/show_bug.cgi?id=28776
604
605
606         * bindings/v8/ScriptController.cpp:
607         (WebCore::ScriptController::lowMemoryNotification):
608         * bindings/v8/ScriptController.h:
609
610 2009-09-01  Fumitoshi Ukai  <ukai@chromium.org>
611
612         Reviewed by Adam Barth.
613
614         V8 Bindings for WebSocket API.
615         https://bugs.webkit.org/show_bug.cgi?id=28844
616
617         * bindings/v8/DOMObjectsInclude.h:
618         * bindings/v8/DerivedSourcesAllInOne.cpp:
619         * bindings/v8/V8DOMWrapper.cpp:
620         (WebCore::V8DOMWrapper::getTemplate):
621         (WebCore::V8DOMWrapper::convertToV8Object):
622         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
623         * bindings/v8/V8DOMWrapper.h:
624         * bindings/v8/V8Index.cpp:
625         * bindings/v8/V8Index.h:
626         * bindings/v8/WorkerContextExecutionProxy.cpp:
627         * bindings/v8/custom/V8CustomBinding.h:
628         * bindings/v8/custom/V8WebSocketCustom.cpp: Added.
629
630 2009-09-01  Peter Kasting  <pkasting@google.com>
631
632         Unreviewed (build fix).
633
634         Missed a "." -> "->" conversion.
635
636         * platform/graphics/qt/ImageDecoderQt.cpp:
637         (WebCore::ImageDecoderQt::ReadContext::ReadContext):
638
639 2009-09-01  Peter Kasting  <pkasting@google.com>
640
641         Unreviewed (build fix).
642
643         Try to fix Qt build, take 2.  The Qt code had what looks like a
644         broken virtual function override.
645
646         * platform/graphics/qt/ImageDecoderQt.cpp:
647         (WebCore::ImageDecoderQt::ReadContext::ReadContext):
648         (WebCore::ImageDecoderQt::setData):
649         * platform/graphics/qt/ImageDecoderQt.h:
650
651 2009-09-01  Adam Barth  <abarth@webkit.org>
652
653         Reviewed by Sam Weinig.
654
655         Uninitialized variable in XSSAuditor
656         https://bugs.webkit.org/show_bug.cgi?id=28874
657
658         One ought to initialize variables before use even when it doesn't
659         matter.  No behavior change.
660
661         * page/XSSAuditor.h:
662         (WebCore::XSSAuditor::CachingURLCanonicalizer::CachingURLCanonicalizer):
663
664 2009-09-01  Peter Kasting  <pkasting@google.com>
665
666         Unreviewed (build fix).
667
668         Try to fix Qt build.
669
670         * platform/graphics/ImageSource.cpp:
671
672 2009-08-28  Peter Kasting  <pkasting@google.com>
673
674         Reviewed by Eric Seidel.
675
676         https://bugs.webkit.org/show_bug.cgi?id=27965
677         Eliminate most of ImageSourceQt.cpp in favor of ImageSource.cpp.
678
679         * WebCore.pro:
680         * platform/graphics/ImageSource.cpp:
681         (WebCore::ImageSource::frameHasAlphaAtIndex):
682         * platform/graphics/qt/ImageSourceQt.cpp:
683         (WebCore::ImageSource::createFrameAtIndex):
684         (WebCore::ImageSource::frameHasAlphaAtIndex):
685         (WebCore::ImageSource::frameIsCompleteAtIndex):
686
687 2009-09-01  Pavel Feldman  <pfeldman@chromium.org>
688
689         Reviewed by Timothy Hatcher.
690
691         WebInspector: Make InjectedScript self-contained (move necessary
692         methods from utilities.js into InjectedScript).
693
694         https://bugs.webkit.org/show_bug.cgi?id=28871
695
696         * inspector/front-end/ElementsPanel.js:
697         (WebInspector.ElementsPanel.prototype.generateStylesheet):
698         * inspector/front-end/InjectedScript.js:
699         (InjectedScript._ensureCommandLineAPIInstalled.inspectObject):
700         (InjectedScript._ensureCommandLineAPIInstalled):
701         (InjectedScript.pushNodeToFrontend):
702         (InjectedScript.createProxyObject):
703         (Object.type):
704         (Object.hasProperties):
705         (Object.className):
706         (String.prototype.escapeCharacters):
707         * inspector/front-end/utilities.js:
708
709 2009-09-01  Pavel Feldman  <pfeldman@chromium.org>
710
711         Reviewed by Timothy Hatcher.
712
713         WebInspector: console log message repeat count double.
714
715         https://bugs.webkit.org/show_bug.cgi?id=28856
716
717         * inspector/front-end/InjectedScript.js:
718         (InjectedScript._evaluateOn):
719
720 2009-09-01  Jan Michael Alonzo  <jmalonzo@webkit.org>
721
722         Reviewed by Mark Rowe.
723
724         [Gtk] Fix DATALIST build
725         https://bugs.webkit.org/show_bug.cgi?id=28826
726
727         Add ENABLE_DATALIST to FEATURE_DEFINES.
728
729         * GNUmakefile.am:
730
731 2009-09-01  Cameron McCormack  <cam@mcc.id.au>
732
733         Reviewed by Eric Seidel.
734
735         SVGSVGElement suspend methods argument/return types incorrect
736         https://bugs.webkit.org/show_bug.cgi?id=28860
737
738         Also fix the style of the argument names.
739
740         * svg/SVGSVGElement.cpp:
741         (WebCore::SVGSVGElement::suspendRedraw):
742         (WebCore::SVGSVGElement::unsuspendRedraw):
743         * svg/SVGSVGElement.h:
744
745 2009-09-01  Roland Steiner  <rolandsteiner@google.com>
746
747         Reviewed by Eric Seidel.
748
749         Fix bug 28808:  [Skia] Fix flaky layout test svg/dynamic-updates/SVGClipPathElement-dom-clipPathUnits-attr.html [DEBUG]
750         (https://bugs.webkit.org/show_bug.cgi?id=28808)
751
752         The bug fix adds an explicit check for the validity of the path when it is 
753         transformed into local coordinates. 
754         This was the most suitable place I could find that didn't cause an inordinate 
755         amount of refactoring. Also, it seems pertinent and may also catch other cases 
756         that are not limited to clipping paths.
757
758         TEST: existing svg/dynamic-updates/SVGClipPathElement-dom-clipPathUnits-attr.html
759
760         * platform/graphics/skia/GraphicsContextSkia.cpp: make isPathSkiaSafe accessible
761         (WebCore::):
762         * platform/graphics/skia/PlatformContextSkia.cpp:
763         (PlatformContextSkia::currentPathInLocalCoordinates): check Skia safety of path
764
765 2009-09-01  Yusuke Sato  <yusukes@chromium.org>
766
767         Reviewed by Eric Seidel.
768
769         [Chromium] Combining Diacritical Marks (U+0300..) are not handled correctly.
770         https://bugs.webkit.org/show_bug.cgi?id=28742 
771
772         Normalize (NFC) a TextRun when the run contains combining diacritical marks
773         so that Skia can pick a correct glyph without relying on GSUB table in a font.
774         This change is for Chromium Linux.
775
776         * platform/graphics/chromium/FontLinux.cpp:
777         (WebCore::TextRunWalker::getTextRun): Added.
778         (WebCore::TextRunWalker::getNormalizedTextRun): Added.
779
780         This function is called when the run contains U+0300..U+036F and converts characters in
781         the run to the combined form (NFC) using ICU.
782
783 2009-09-01  Vitaly Repeshko  <vitalyr@chromium.org>
784
785         Reviewed by Dimitri Glazkov.
786
787         [V8] Inlined fast paths of V8DOMWrapper::convertNodeToV8Object and
788         V8Proxy::createWrapperFromCache.
789         https://bugs.webkit.org/show_bug.cgi?id=28848
790
791         * bindings/v8/V8DOMWrapper.cpp:
792         (WebCore::V8DOMWrapper::convertDocumentToV8Object): Special
793         function for document wrapping.
794         (WebCore::V8DOMWrapper::convertNewNodeToV8Object): Slow case of
795         wrapping a new node.
796         * bindings/v8/V8DOMWrapper.h:
797         (WebCore::V8DOMWrapper::convertNodeToV8Object): Extracted fast
798         path from V8DOMWrapper.cpp.
799         * bindings/v8/V8Proxy.cpp:
800         (WebCore::V8Proxy::createWrapperFromCacheSlowCase):
801         * bindings/v8/V8Proxy.h:
802         (WebCore::V8Proxy::createWrapperFromCache): Extracted fast path
803         from V8Proxy.cpp.
804
805 2009-09-01  Eric Seidel  <eric@webkit.org>
806
807         No review, windows build fix only.  Clearly I should have read the patch closer. :(
808
809         Allow excluding certain plugins from loading
810         https://bugs.webkit.org/show_bug.cgi?id=28677
811
812         * plugins/PluginDatabase.cpp:
813         (WebCore::PluginDatabase::refresh):
814
815 2009-09-01  Alexander Pavlov  <apavlov@chromium.org>
816
817         Reviewed by Timothy Hatcher.
818
819         Implement conditional breakpoints in the Web Inspector backend
820         and add frontend JavaScript stubs.
821         https://bugs.webkit.org/show_bug.cgi?id=28846
822
823         * inspector/InspectorBackend.cpp:
824         (WebCore::InspectorBackend::profiles):
825         (WebCore::InspectorBackend::addBreakpoint):
826         (WebCore::InspectorBackend::updateBreakpoint):
827         * inspector/InspectorBackend.h:
828         * inspector/InspectorBackend.idl:
829         * inspector/JavaScriptDebugServer.cpp:
830         (WebCore::JavaScriptDebugServer::BreakpointInfo::condition):
831         (WebCore::JavaScriptDebugServer::BreakpointInfo::setCondition):
832         (WebCore::JavaScriptDebugServer::addBreakpoint):
833         (WebCore::JavaScriptDebugServer::breakpointInfo):
834         (WebCore::JavaScriptDebugServer::updateBreakpoint):
835         (WebCore::JavaScriptDebugServer::updateBreakpointInfo):
836         (WebCore::JavaScriptDebugServer::removeBreakpoint):
837         (WebCore::JavaScriptDebugServer::hasBreakpoint):
838         (WebCore::JavaScriptDebugServer::clearBreakpoints):
839         * inspector/JavaScriptDebugServer.h:
840         (WebCore::JavaScriptDebugServer::BreakpointInfo::BreakpointInfo):
841         * inspector/front-end/Breakpoint.js:
842         (WebInspector.Breakpoint):
843         (WebInspector.Breakpoint.prototype.get id):
844         (WebInspector.Breakpoint.prototype.get condition):
845         (WebInspector.Breakpoint.prototype.set condition):
846         * inspector/front-end/BreakpointsSidebarPane.js:
847         (WebInspector.BreakpointsSidebarPane.prototype.addBreakpoint):
848         (WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
849         * inspector/front-end/ScriptsPanel.js:
850         (WebInspector.ScriptsPanel.prototype.addScript):
851
852 2009-09-01  Marius Renn  <damarvy@gmail.com>
853
854         Reviewed by Eric Seidel.
855
856         Added delegate to PluginDatabase to disable loading certain plugins.
857         This is useful when you want to load from the standard plugin
858         directory, but want to exclude certain plugins. Plugins may be
859         excluded early on by name, so that no plugin code is executed (which
860         may have caused a crash).
861
862         * plugins/PluginDatabase.cpp:
863         (WebCore::PluginDatabase::PluginDatabase):
864         (WebCore::PluginDatabase::refresh):
865         * plugins/PluginDatabase.h:
866         (WebCore::PluginDatabase::setClient):
867         * plugins/PluginDatabaseClient.h: Added.
868         (WebCore::PluginDatabaseClient::~PluginDatabaseClient):
869
870 2009-08-31  Brady Eidson  <beidson@apple.com>
871
872         Rubberstamped by Sam Weinig
873
874         * WebCore.base.exp: Removed an unneeded symbol export.
875
876 2009-08-31  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
877
878         Reviewed by Alexey Proskuryakov.
879
880         https://bugs.webkit.org/show_bug.cgi?id=28466
881         When downloading a file, two GET requests are sent to the HTTP server
882
883         Can't think of a way to test this.
884
885         * loader/ResourceLoader.cpp:
886         (WebCore::ResourceLoader::releaseResources): only nullify the
887         handle's client when it is the ResourceLoader, to support the case
888         in which a download API uses a different client
889
890 2009-08-31  Brian Weinstein  <bweinstein@apple.com>
891
892         Reviewed by Darin Adler.
893
894         Text Fields and Text Areas are reported as read-only by inspect32.exe.
895         https://bugs.webkit.org/show_bug.cgi?id=28854
896
897         Added another case in AcccessibiltyRenderObject::isReadOnly to test if text fields
898         and texts areas are read-only.
899
900         * accessibility/AccessibilityRenderObject.cpp:
901         (WebCore::AccessibilityRenderObject::isReadOnly):
902         (WebCore::AccessibilityRenderObject::canSetValueAttribute):
903
904 2009-08-31  Drew Wilson  <atwilson@google.com>
905
906         Reviewed by Alexey Proskuryakov.
907
908         fast/workers/worker-lifecycle.html crashes intermittently on snowleopard
909         https://bugs.webkit.org/show_bug.cgi?id=28795
910
911         Changed WorkerContext::close() to no longer stop the worker thread.
912         It is now the parent's responsibility to shut down the worker thread when it is notified that the context is closed.
913
914         * workers/AbstractWorker.cpp:
915         Updated dispatchScriptErrorEvent to pass-through the "handled" value from dispatchEvent(), to allow event handlers added with addEventListener() to mark events as handled.
916         * workers/DefaultSharedWorkerRepository.cpp:
917         (WebCore::SharedWorkerProxy::workerContextClosed):
918         Now shuts down the worker thread when notified that the context is closed.
919         (WebCore::SharedWorkerProxy::close):
920         Now handles being invoked when the context is already in the process of shutting down.
921         * workers/WorkerContext.cpp:
922         (WebCore::WorkerContext::close):
923         No longer calls WorkerThread::stop() to avoid race conditions with shutting down the thread while the parent is still interacting with it.
924         * workers/WorkerContext.h:
925         (WebCore::WorkerContext::isClosing):
926         isClosing() is now public so WorkerRunLoop can call it to determine whether to process tasks.
927         * workers/WorkerMessagingProxy.cpp:
928         (WebCore::WorkerExceptionTask::performTask):
929         Error events should still be delivered even if the worker thread is closing.
930         Also fixed problem where error events were not dispatched if error handlers were added via addEventListener().
931         (WebCore::WorkerTerminateTask::create):
932         New task that invokes terminateWorkerContext() on the parent thread when the context is closed.
933         (WebCore::WorkerTerminateTask::WorkerTerminateTask):
934         (WebCore::WorkerTerminateTask::performTask):
935         (WebCore::WorkerMessagingProxy::workerContextClosed):
936         Now fires off a WorkerTerminateTask to shut down the thread when the context is closed.
937         * workers/WorkerMessagingProxy.h:
938         WorkerMessagingProxy now overrides workerContextClosed().
939         * workers/WorkerRunLoop.cpp:
940         (WebCore::WorkerRunLoop::runInMode):
941         Now drops tasks on the floor if the WorkerContext is closing.
942
943 2009-08-31  Ojan Vafai  <ojan@chromium.org>
944
945         Not reviewed (build fix)
946
947         Build fix for Chromium to match r49707.
948
949         * bindings/v8/ScriptCallFrame.cpp:
950         (WebCore::ScriptCallFrame::ScriptCallFrame):
951         * bindings/v8/ScriptSourceCode.h:
952         (WebCore::ScriptSourceCode::ScriptSourceCode):
953         * platform/KURLGoogle.cpp:
954         (WebCore::KURL::KURL):
955         (WebCore::blankURL):
956
957 2009-08-31  Alexey Proskuryakov  <ap@webkit.org>
958
959         Reviewed by Darin Adler.
960
961         https://bugs.webkit.org/show_bug.cgi?id=28858
962         Element.baseURI parses xml:base attribute incorrectly
963
964         Test: fast/dom/base-attribute-parsing.xhtml
965
966         * dom/Element.cpp: (WebCore::Element::baseURI): Avoid assertion failure (no change in
967         release mode).
968
969 2009-08-31  Dimitri Glazkov  <dglazkov@chromium.org>
970
971         Reverting http://trac.webkit.org/changeset/47904, because it caused
972         layout test failure.
973
974         Test: fast/dom/Window/new-window-opener.html
975
976 2009-08-31  Alexey Proskuryakov  <ap@webkit.org>
977
978         Reviewed by Darin Adler.
979
980         https://bugs.webkit.org/show_bug.cgi?id=28852
981         Rename KURL single argument constructor to avoid confusion
982
983         * platform/KURL.h: The constructor that used to be single argument should now be invoked
984         as KURL(ParsedURLString, myString).
985
986         * WebCore.base.exp:
987         * bindings/js/JSDOMWindowCustom.cpp:
988         (WebCore::createWindow):
989         * bindings/js/ScriptCallFrame.cpp:
990         (WebCore::ScriptCallFrame::ScriptCallFrame):
991         * bindings/v8/NPV8Object.cpp:
992         (_NPN_EvaluateHelper):
993         * bindings/v8/custom/V8DOMWindowCustom.cpp:
994         (WebCore::createWindow):
995         * css/CSSCursorImageValue.cpp:
996         (WebCore::isSVGCursorIdentifier):
997         * css/CSSImageValue.cpp:
998         (WebCore::CSSImageValue::cachedImage):
999         * css/CSSImportRule.cpp:
1000         (WebCore::CSSImportRule::insertedIntoParent):
1001         * css/StyleBase.cpp:
1002         (WebCore::StyleBase::baseURL):
1003         * dom/Document.cpp:
1004         (WebCore::Document::initSecurityContext):
1005         * dom/Element.cpp:
1006         (WebCore::Element::baseURI):
1007         * editing/markup.cpp:
1008         (WebCore::completeURLs):
1009         * history/HistoryItem.cpp:
1010         (WebCore::HistoryItem::url):
1011         (WebCore::HistoryItem::originalURL):
1012         * inspector/InspectorController.cpp:
1013         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
1014         * inspector/InspectorResource.cpp:
1015         (WebCore::InspectorResource::createCached):
1016         * loader/Cache.cpp:
1017         (WebCore::Cache::revalidateResource):
1018         * loader/DocLoader.cpp:
1019         (WebCore::DocLoader::requestResource):
1020         * loader/DocumentLoader.cpp:
1021         (WebCore::DocumentLoader::getSubresources):
1022         * loader/FrameLoader.cpp:
1023         (WebCore::FrameLoader::init):
1024         (WebCore::FrameLoader::iconURL):
1025         (WebCore::FrameLoader::scheduleLocationChange):
1026         (WebCore::FrameLoader::redirectionTimerFired):
1027         (WebCore::FrameLoader::loadURLIntoChildFrame):
1028         (WebCore::FrameLoader::startRedirectionTimer):
1029         * loader/appcache/ApplicationCache.cpp:
1030         (WebCore::ApplicationCache::resourceForURL):
1031         * loader/appcache/ApplicationCacheGroup.cpp:
1032         (WebCore::ApplicationCacheGroup::startLoadingEntry):
1033         (WebCore::ApplicationCacheGroup::addEntry):
1034         * loader/appcache/ApplicationCacheStorage.cpp:
1035         (WebCore::ApplicationCacheStorage::cacheGroupForURL):
1036         (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
1037         (WebCore::ApplicationCacheStorage::loadCache):
1038         (WebCore::ApplicationCacheStorage::manifestURLs):
1039         * loader/archive/cf/LegacyWebArchive.cpp:
1040         (WebCore::LegacyWebArchive::createResource):
1041         (WebCore::LegacyWebArchive::create):
1042         * loader/loader.cpp:
1043         (WebCore::Loader::load):
1044         * notifications/NotificationCenter.h:
1045         (WebCore::NotificationCenter::createHTMLNotification):
1046         * platform/KURL.cpp:
1047         (WebCore::KURL::KURL):
1048         (WebCore::blankURL):
1049         * platform/KURLHash.h:
1050         * platform/chromium/ClipboardChromium.cpp:
1051         (WebCore::ClipboardChromium::setData):
1052         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1053         (WebCore::MediaPlayerPrivate::createQTMovie):
1054         * platform/network/cf/ResourceErrorCF.cpp:
1055         (WebCore::ResourceError::operator CFErrorRef):
1056         * platform/network/cf/ResourceRequest.h:
1057         (WebCore::ResourceRequest::ResourceRequest):
1058         * platform/network/chromium/ResourceRequest.h:
1059         (WebCore::ResourceRequest::ResourceRequest):
1060         * platform/network/curl/ResourceHandleManager.cpp:
1061         (WebCore::handleLocalReceiveResponse):
1062         (WebCore::headerCallback):
1063         * platform/network/curl/ResourceRequest.h:
1064         (WebCore::ResourceRequest::ResourceRequest):
1065         * platform/network/mac/ResourceErrorMac.mm:
1066         (WebCore::ResourceError::operator NSError*):
1067         * platform/network/mac/ResourceRequest.h:
1068         (WebCore::ResourceRequest::ResourceRequest):
1069         * platform/network/qt/ResourceRequest.h:
1070         (WebCore::ResourceRequest::ResourceRequest):
1071         * platform/network/soup/ResourceRequest.h:
1072         (WebCore::ResourceRequest::ResourceRequest):
1073         * platform/win/ClipboardWin.cpp:
1074         (WebCore::filesystemPathFromUrlOrTitle):
1075         (WebCore::ClipboardWin::setData):
1076         * svg/graphics/SVGImage.cpp:
1077         (WebCore::SVGImage::dataChanged):
1078         * xml/XSLImportRule.cpp:
1079         (WebCore::XSLImportRule::loadSheet):
1080         * xml/XSLTProcessor.cpp:
1081         (WebCore::docLoaderFunc):
1082         Adapt to the change everywhere the single argument constructor was used. I did a very
1083         cursory check of whether these locations were using this constructor properly, and didn't
1084         notice any obvious mistakes. The new explicit name will hopefully suggest checking this
1085         better when refactoring any such code.
1086
1087 2009-08-31  Beth Dakin  <bdakin@apple.com>
1088
1089         Reviewed by Darin Adler.
1090
1091         Fix for https://bugs.webkit.org/show_bug.cgi?id=28635 [CSS3 
1092         Backgrounds and Borders] Add support for 2-keyword values for 
1093         background-repeat
1094
1095         This patch allows background-repeat to take two values by making 
1096         background-repeat just like background-position internally. There 
1097         is a little extra legwork for background-repeat because the spec 
1098         indicates that its computed value should be equivalent to how it 
1099         was specified. I keep track of the specified thing by setting the 
1100         implicit flag whenever background-repeat is defined with only one 
1101         value (since internally, we now store this as 2 values.)
1102         
1103         Here we can't access the implicit flag, so for backwards-
1104         compatibility's sake, we always return one value when that makes 
1105         sense.
1106         * css/CSSComputedStyleDeclaration.cpp:
1107         (WebCore::fillRepeatToCSSValue):
1108         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1109
1110         Here we check for the implicit flag and return one value when it is 
1111         set.
1112         * css/CSSMutableStyleDeclaration.cpp:
1113         (WebCore::CSSMutableStyleDeclaration::getPropertyValue):
1114         (WebCore::CSSMutableStyleDeclaration::getLayeredShorthandValue):
1115         (WebCore::CSSMutableStyleDeclaration::cssText):
1116
1117         Add support for CSSPropertyBackgroundRepeatX and 
1118         CSSPropertyBackgroundRepeatY
1119         * css/CSSParser.cpp:
1120         (WebCore::CSSParser::parseValue):
1121         (WebCore::CSSParser::parseFillShorthand):
1122         (WebCore::CSSParser::parseFillRepeat):
1123         (WebCore::CSSParser::parseFillProperty):
1124         * css/CSSParser.h:
1125
1126         Get rid of mappings to RepeatXFill and RepeatYFill since we don't 
1127         need those parts of the EFillRepeat enum anymore.
1128         * css/CSSPrimitiveValueMappings.h:
1129         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1130         (WebCore::CSSPrimitiveValue::operator EFillRepeat):
1131
1132         Add CSSPropertyBackgroundRepeatX and CSSPropertyBackgroundRepeatY
1133         * css/CSSPropertyLonghand.cpp:
1134         (WebCore::initShorthandMap):
1135
1136         Add background-repeat-x and -y.
1137         * css/CSSPropertyNames.in:
1138
1139         Break repeat into x and y.
1140         * css/CSSStyleSelector.cpp:
1141         (WebCore::CSSStyleSelector::applyProperty):
1142         (WebCore::CSSStyleSelector::mapFillRepeatX):
1143         (WebCore::CSSStyleSelector::mapFillRepeatY):
1144         * css/CSSStyleSelector.h:
1145
1146         There is no more RepeatXFill. Instead, look for 
1147         fillLayer->repeatX() == RepeatFill
1148         * rendering/RenderBoxModelObject.cpp:
1149         (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
1150
1151         Break m_repeat into m_repeatX and m_repeatY
1152         * rendering/style/FillLayer.cpp:
1153         (WebCore::FillLayer::FillLayer):
1154         (WebCore::FillLayer::operator=):
1155         (WebCore::FillLayer::operator==):
1156         (WebCore::FillLayer::fillUnsetProperties):
1157         (WebCore::FillLayer::cullEmptyLayers):
1158         * rendering/style/FillLayer.h:
1159         (WebCore::FillLayer::repeatX):
1160         (WebCore::FillLayer::repeatY):
1161         (WebCore::FillLayer::isRepeatXSet):
1162         (WebCore::FillLayer::isRepeatYSet):
1163         (WebCore::FillLayer::setRepeatX):
1164         (WebCore::FillLayer::setRepeatY):
1165         (WebCore::FillLayer::clearRepeatX):
1166         (WebCore::FillLayer::clearRepeatY):
1167         (WebCore::FillLayer::initialFillRepeatX):
1168         (WebCore::FillLayer::initialFillRepeatY):
1169
1170         Again, break backgroundRepeat into backgroundRepeatX and 
1171         backgroundRepeatY
1172         * rendering/style/RenderStyle.h:
1173         (WebCore::InheritedFlags::backgroundRepeatX):
1174         (WebCore::InheritedFlags::backgroundRepeatY):
1175         (WebCore::InheritedFlags::maskRepeatX):
1176         (WebCore::InheritedFlags::maskRepeatY):
1177
1178         We don't need RepeatXFill or RepeatYFill. Now that we store two 
1179         values, they are represented by Repeat-NoRepeat and NoRepeat-
1180         Repeat, respectively.
1181         * rendering/style/RenderStyleConstants.h:
1182         (WebCore::):
1183
1184 2009-08-31  Simon Fraser  <simon.fraser@apple.com>
1185
1186         Reviewed by Dan Bernstein.
1187
1188         Compositing layer size needs to take into account software reflections on children.
1189         https://bugs.webkit.org/show_bug.cgi?id=28837
1190         
1191         When computing the bounds of a composited layer, take software-rendered
1192         reflections into account.
1193
1194         Test: compositing/reflections/reflection-in-composited.html
1195
1196         * rendering/RenderLayerCompositor.cpp:
1197         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
1198
1199 2009-08-31  Mark Mentovai  <mark@chromium.org>
1200
1201         Reviewed by Dave Hyatt.
1202
1203         https://bugs.webkit.org/show_bug.cgi?id=28614
1204
1205         Perform a layout prior to checking whether the scrollbar modes are
1206         off, on, or automatic.  The modes may change during layout.
1207
1208         * platform/ScrollView.cpp:
1209         (WebCore::ScrollView::updateScrollbars):
1210
1211 2009-08-31  Patrick Mueller  <Patrick_Mueller@us.ibm.com>
1212
1213         Reviewed by Timothy Hatcher.
1214
1215         Inspector Request Headers Should Show Data Sent With Request
1216         https://bugs.webkit.org/show_bug.cgi?id=22920
1217
1218         Manual test added - see below.
1219
1220         * English.lproj/localizedStrings.js:
1221         * inspector/InspectorResource.cpp:
1222         (WebCore::InspectorResource::updateRequest):
1223         (WebCore::InspectorResource::createScriptObject):
1224         (WebCore::InspectorResource::updateScriptObject):
1225         * inspector/InspectorResource.h:
1226         * inspector/front-end/Resource.js:
1227         (WebInspector.Resource):
1228         * inspector/front-end/ResourceView.js:
1229         (WebInspector.ResourceView):
1230         (WebInspector.ResourceView.prototype._refreshURL):
1231         (WebInspector.ResourceView.prototype._refreshQueryString):
1232         (WebInspector.ResourceView.prototype._refreshFormData):
1233         (WebInspector.ResourceView.prototype._refreshRequestPayload):
1234         (WebInspector.ResourceView.prototype._refreshParms):
1235         (WebInspector.ResourceView.prototype._toggleURLdecoding):
1236         (WebInspector.ResourceView.prototype._getHeaderValue):
1237         (WebInspector.ResourceView.prototype._refreshRequestHeaders):
1238         * inspector/front-end/inspector.css:
1239         * inspector/front-end/inspector.js:
1240         (WebInspector.addResource):
1241         (WebInspector.updateResource):
1242         * manual-tests/inspector/display-form-data.html: Added.
1243
1244 2009-08-31  Pavel Feldman  <pfeldman@chromium.org>
1245
1246         Reviewed by Timothy Hatcher.
1247
1248         WebInspector: pass call frames into the frontend as a part of
1249         pausedScript event.
1250
1251         https://bugs.webkit.org/show_bug.cgi?id=28847
1252
1253         * inspector/InspectorController.cpp:
1254         (WebCore::InspectorController::didPause):
1255         * inspector/InspectorFrontend.cpp:
1256         (WebCore::InspectorFrontend::pausedScript):
1257         * inspector/InspectorFrontend.h:
1258         * inspector/front-end/ScriptsPanel.js:
1259         (WebInspector.ScriptsPanel.prototype.debuggerPaused):
1260         * inspector/front-end/inspector.js:
1261         (WebInspector.pausedScript):
1262
1263 2009-08-31  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1264
1265         Reviewed by Ariya Hidayat.
1266
1267         [Qt] Un-blacklist Silverlight on Mac
1268
1269         Does not seem to crash anymore, probably due to how we now handle
1270         drawing and event model handshake better.
1271
1272         * plugins/mac/PluginPackageMac.cpp:
1273         (WebCore::PluginPackage::isPluginBlacklisted):
1274
1275 2009-08-31  Cameron McCormack  <cam@mcc.id.au>
1276
1277         Reviewed by Eric Seidel.
1278
1279         https://bugs.webkit.org/show_bug.cgi?id=28827
1280         SVGSVGElement.unsuspendRedraw() shouldn't throw
1281
1282         * svg/SVGSVGElement.cpp:
1283         (WebCore::SVGSVGElement::unsuspendRedraw):
1284         * svg/SVGSVGElement.h:
1285         * svg/SVGSVGElement.idl:
1286
1287 2009-08-31  Kent Tamura  <tkent@chromium.org>
1288
1289         Reviewed by Eric Seidel.
1290
1291         - Change the reutrn type of HTMLInputElement::list so that it
1292           conforms to the standard.
1293         - Add HTMLInputElement::dataList()
1294         https://bugs.webkit.org/show_bug.cgi?id=28769
1295
1296
1297         * html/HTMLInputElement.cpp:
1298         (WebCore::HTMLInputElement::list):
1299         (WebCore::HTMLInputElement::dataList):
1300         (WebCore::HTMLInputElement::selectedOption):
1301         * html/HTMLInputElement.h:
1302         * html/HTMLInputElement.idl:
1303
1304 2009-08-31  Kwang Yul Seo  <skyul@company100.net>
1305
1306         Reviewed by Eric Seidel.
1307
1308         Remove ASSERT(frame) in ResourceHandle::start (ResourceHandleCurl.cpp)
1309         https://bugs.webkit.org/show_bug.cgi?id=28802
1310
1311         Remove ASSERT because the frame could be null if the
1312         ResourceHandle is not associated with any frame, e.g. if we are
1313         downloading a file.
1314         If the frame is not null but the page is null this must be an
1315         attempted load from an onUnload handler, so let's just block it.
1316
1317         * platform/network/curl/ResourceHandleCurl.cpp:
1318         (WebCore::ResourceHandle::start):
1319
1320 2009-08-31  Maxime Simon  <simon.maxime@gmail.com>
1321
1322         Reviewed by Eric Seidel.
1323
1324         Build fix for platforms which don't enable DOM_STORAGE.
1325         https://bugs.webkit.org/show_bug.cgi?id=28834
1326
1327         * bindings/js/ScriptController.cpp:
1328         (WebCore::ScriptController::evaluate):
1329         * bindings/v8/ScriptController.cpp:
1330         (WebCore::ScriptController::evaluate):
1331
1332 2009-08-29  Adele Peterson  <adele@apple.com>
1333
1334         Reviewed by Dan Bernstein.
1335
1336         Fix for https://bugs.webkit.org/show_bug.cgi?id=28829
1337         Crash in AccessibilityRenderObject::activeDescendant when trying to set aria-activedescendant to something without a renderer
1338
1339         Test: accessibility/aria-activedescendant-crash.html
1340
1341         * accessibility/AccessibilityRenderObject.cpp: (WebCore::AccessibilityRenderObject::activeDescendant): Nil check.
1342
1343 2009-08-28  Jan Michael Alonzo  <jmalonzo@webkit.org>
1344
1345         Reviewed by Oliver Hunt.
1346
1347         Gtk Build broken for OSX Quartz
1348         https://bugs.webkit.org/show_bug.cgi?id=28727
1349
1350         Check for XP_UNIX instead of GTK or X11 to ease building of the Gtk
1351         port in Mac and Unix/Linux.
1352
1353         * plugins/PluginView.cpp:
1354         (WebCore::PluginView::PluginView):
1355         * plugins/PluginView.h:
1356         * plugins/gtk/PluginViewGtk.cpp:
1357         (WebCore::PluginView::setNPWindowIfNeeded):
1358         (WebCore::PluginView::getValueStatic):
1359         (WebCore::PluginView::getValue):
1360         (WebCore::PluginView::init):
1361
1362 2009-08-28  Simon Fraser  <simon.fraser@apple.com>
1363
1364         Reviewed by Dan Bernstein.
1365
1366         Fix positioning error when a compositing, absolutely-positioned element has an ancestor with opacity.
1367         https://bugs.webkit.org/show_bug.cgi?id=28754
1368         
1369         For absolutely-positioned layers, convertToLayerCoords() jumps to the positioned
1370         ancestor, since the layer x and y are relative to that ancestor. However, this could
1371         skip over the ancestorLayer, thus giving the wrong result.
1372         
1373         Fix by duplicating the enclosingPositionedAncestor() logic in convertToLayerCoords(),
1374         and checking for ancestorLayer along the way. If found, compute offset of both to
1375         the enclosingPositionedAncestor() and subtract.
1376         
1377         This also fixes a positioning bug with abs. positioned elements in reflections,
1378         so there is a new reflection test with a pixel result.
1379
1380         Tests: compositing/geometry/abs-position-inside-opacity.html
1381                fast/reflections/abs-position-in-reflection.html
1382
1383         * rendering/RenderLayer.cpp:
1384         (WebCore::isPositionedContainer):
1385         (WebCore::RenderLayer::enclosingPositionedAncestor):
1386         (WebCore::RenderLayer::enclosingTransformedAncestor):
1387         (WebCore::RenderLayer::convertToLayerCoords):
1388
1389 2009-08-28  Simon Fraser  <simon.fraser@apple.com>
1390
1391         Reviewed by Mark Rowe
1392
1393         Wrap WebkitCSSTransformValues in the correct class of DOM wrapper.
1394         https://bugs.webkit.org/show_bug.cgi?id=27727
1395
1396         When fetching the DOM wrapper for a WebkitCSSTransformValue (which is a kind of 
1397         CSSValueList), we need to ask the value list whether it's a WebkitCSSTransformValue,
1398         because there is not a unique enum value for WebkitCSSTransformValue.
1399
1400         * bindings/objc/DOMCSS.mm:
1401         (kitClass):
1402
1403 2009-08-28  Peter Kasting  <pkasting@google.com>
1404
1405         Reviewed by Jan Michael Alonzo.
1406
1407         https://bugs.webkit.org/show_bug.cgi?id=28308
1408         Fix some warnings introduced by r47381.
1409
1410         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
1411         (WebCore::convertCMYKToRGBA):
1412         (WebCore::convertRGBToRGBA):
1413
1414 2009-08-28  Ada Chan  <adachan@apple.com>
1415
1416         Reviewed by Adam Roben.
1417
1418         https://bugs.webkit.org/show_bug.cgi?id=21442
1419         Make sure filesystemPathFromUrlOrTitle() returns a string with length
1420         <= MAX_PATH - 1.
1421
1422         * platform/win/ClipboardWin.cpp:
1423         (WebCore::filesystemPathFromUrlOrTitle):
1424
1425 2009-08-28  Dumitru Daniliuc  <dumi@chromium.org>
1426
1427         Reviewed by Dimitri Glazkov.
1428
1429         Adding Chromium's VFS for Linux and Mac.
1430
1431         https://bugs.webkit.org/show_bug.cgi?id=28750
1432
1433         * WebCore.gypi:
1434         * platform/chromium/ChromiumBridge.h:
1435         * platform/sql/chromium/SQLiteFileSystemChromium.cpp:
1436         (WebCore::SQLiteFileSystem::openDatabase):
1437         (WebCore::SQLiteFileSystem::deleteDatabaseFile):
1438         * platform/sql/chromium/SQLiteFileSystemChromiumLinux.cpp: Removed.
1439         * platform/sql/chromium/SQLiteFileSystemChromiumMac.cpp: Removed.
1440         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp: Added.
1441         * platform/sql/chromium/SQLiteFileSystemChromiumWin.cpp:
1442
1443 2009-08-28  Vitaly Repeshko  <vitalyr@chromium.org>
1444
1445         Reviewed by Dimitri Glazkov.
1446
1447         [V8] Made bindings use Node::setOnEvent functions for Node descendants
1448         instead of Node::setAttributeEventListener.
1449
1450         Node::setAttributeEventListener is an internal function and
1451         doesn't do the forwarding to DOM window that is required for some
1452         HTML elements.
1453         https://bugs.webkit.org/show_bug.cgi?id=28709
1454
1455         Tests added in http://trac.webkit.org/changeset/47326 now pass with V8.
1456
1457         * bindings/scripts/CodeGeneratorV8.pm:
1458         Now generates EventListener accessors for Node descendants instead
1459         of using custom callbacks.
1460         * bindings/v8/V8DOMWrapper.cpp:
1461         (WebCore::V8DOMWrapper::getEventListener): Moved from V8NodeCustom.cpp.
1462         * bindings/v8/V8DOMWrapper.h:
1463         (WebCore::V8DOMWrapper::convertEventListenerToV8Object): Fixed a bug in
1464         signature.
1465         * bindings/v8/V8Utilities.cpp:
1466         (WebCore::createHiddenDependency):
1467         (WebCore::removeHiddenDependency):
1468         Changed signature to accept Handle instead of Local.
1469         * bindings/v8/V8Utilities.h:
1470         * bindings/v8/custom/V8CustomBinding.h:
1471         * bindings/v8/custom/V8NodeCustom.cpp:
1472         (WebCore::CALLBACK_FUNC_DECL):
1473         Removed custom callbacks for EventListener accessors.
1474
1475 2009-08-28  Ben Murdoch  <benm@google.com>
1476
1477         https://bugs.webkit.org/show_bug.cgi?id=28803
1478         
1479         Implements V8CustomVoidCallback reporting any exceptions that were thrown from the callback function.
1480
1481         * bindings/v8/custom/V8CustomVoidCallback.cpp:
1482         (WebCore::invokeCallback): Checks if the callback raised an exception and reports it to WebCore if so.
1483
1484 2009-08-28  Peter Kasting  <pkasting@google.com>
1485
1486         Not reviewed (build fix).
1487
1488         * platform/graphics/qt/ImageDecoderQt.cpp: Accidentally added some spaces.
1489         (WebCore::ImageDecoder::create):
1490         (WebCore::ImageDecoderQt::ImageDecoderQt):
1491         * platform/graphics/qt/ImageDecoderQt.h: Make constructor public so factory function can access it (this seemed better than making ImageDecoder a friend).
1492
1493 2009-08-28  Peter Kasting  <pkasting@google.com>
1494
1495         Reviewed by Eric Seidel.
1496
1497         https://bugs.webkit.org/show_bug.cgi?id=27965
1498         Move ImageDecoder creation function to a factory function on
1499         ImageDecoder.  This is arguably where it makes the most sense anyway,
1500         and it will (soon) allow ImageSourceQt.cpp to have one less dedicated
1501         function.
1502
1503         * platform/graphics/ImageSource.cpp:
1504         * platform/graphics/qt/ImageDecoderQt.cpp:
1505         (WebCore::ImageDecoder::create):
1506         * platform/graphics/qt/ImageDecoderQt.h:
1507         * platform/graphics/qt/ImageSourceQt.cpp:
1508         (WebCore::ImageSource::setData):
1509         * platform/image-decoders/ImageDecoder.cpp:
1510         * platform/image-decoders/ImageDecoder.h:
1511
1512 2009-08-28  Peter Kasting  <pkasting@google.com>
1513
1514         Reviewed by Eric Seidel.
1515
1516         https://bugs.webkit.org/show_bug.cgi?id=28785
1517         Combine duplicated code from ImageDecoder*.cpp into the main
1518         ImageDecoder.cpp.
1519
1520         * platform/image-decoders/ImageDecoder.cpp:
1521         (WebCore::RGBA32Buffer::RGBA32Buffer):
1522         (WebCore::RGBA32Buffer::clear):
1523         (WebCore::RGBA32Buffer::zeroFill):
1524         (WebCore::RGBA32Buffer::copyBitmapData):
1525         (WebCore::RGBA32Buffer::setSize):
1526         (WebCore::RGBA32Buffer::hasAlpha):
1527         (WebCore::RGBA32Buffer::setHasAlpha):
1528         (WebCore::RGBA32Buffer::setStatus):
1529         (WebCore::RGBA32Buffer::operator=):
1530         (WebCore::RGBA32Buffer::width):
1531         (WebCore::RGBA32Buffer::height):
1532         * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
1533         * platform/image-decoders/haiku/ImageDecoderHaiku.cpp:
1534         * platform/image-decoders/wx/ImageDecoderWx.cpp:
1535
1536 2009-08-28  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
1537
1538         Reviewed by Holger Freyther.
1539
1540         https://bugs.webkit.org/show_bug.cgi?id=25889
1541         [GTK] scrollbar policy for main frame is not implementable
1542
1543         Override setScrollbarModes to correctly forward scrollbar modes
1544         policy changes to client code, via a new platform-specific method,
1545         scrollbarsPolicyDidChange.
1546
1547         * page/ChromeClient.h:
1548         (WebCore::ChromeClient::scrollbarsPolicyDidChange):
1549         * platform/ScrollView.cpp:
1550         (WebCore::ScrollView::createScrollbar):
1551         * platform/ScrollView.h:
1552         * platform/gtk/ScrollViewGtk.cpp:
1553         (WebCore::ScrollView::setScrollbarModes):
1554
1555 2009-08-28  Cédric Luthi <cedric.luthi@gmail.com>
1556
1557         Reviewed by Tor Arne Vestbø
1558
1559         [Qt/Mac] Un-blacklist the QuickTime plugin
1560
1561         https://bugs.webkit.org/show_bug.cgi?id=28768
1562
1563         Now that the drawing model is properly negotiated, there is no need the
1564         blacklist the QuickTime plugin anymore.
1565
1566         This revealed a bug in PluginView::performRequest: it should not initiate a
1567         request if the plugin has been stopped, which is what happens when a plugin
1568         only supports the QuickDraw drawing model.
1569
1570         * plugins/PluginView.cpp:
1571         * plugins/mac/PluginPackageMac.cpp:
1572
1573 2009-08-28  Yury Semikhatsky  <yurys@chromium.org>
1574
1575         Reviewed by Timothy Hatcher.
1576
1577         Set DOM agent document to 0 in InspectorController::close to
1578         make DOM agent remove DOM listeners from the inspected document.
1579
1580         Replace windowVisible checks with m_frontend checks to as inspector
1581         window lives in a different process in Chromium while frontend proxy
1582         is in the inspected page process.
1583
1584         https://bugs.webkit.org/show_bug.cgi?id=28800
1585
1586         * inspector/InspectorController.cpp:
1587         (WebCore::InspectorController::inspect):
1588         (WebCore::InspectorController::addConsoleMessage):
1589         (WebCore::InspectorController::close):
1590         (WebCore::InspectorController::pruneResources):
1591         (WebCore::InspectorController::didCommitLoad):
1592         (WebCore::InspectorController::didLoadResourceFromMemoryCache):
1593         (WebCore::InspectorController::identifierForInitialRequest):
1594         (WebCore::InspectorController::willSendRequest):
1595         (WebCore::InspectorController::didReceiveResponse):
1596         (WebCore::InspectorController::didReceiveContentLength):
1597         (WebCore::InspectorController::didFinishLoading):
1598         (WebCore::InspectorController::didFailLoading):
1599         (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
1600         (WebCore::InspectorController::scriptImported):
1601         (WebCore::InspectorController::didOpenDatabase):
1602         (WebCore::InspectorController::didUseDOMStorage):
1603         (WebCore::InspectorController::addProfile):
1604         * inspector/InspectorController.h:
1605
1606 2009-08-28  Mikhail Naganov  <mnaganov@chromium.org>
1607
1608         Reviewed by Timothy Hatcher.
1609
1610         Remove dependency of SummaryBar on WebInspector.resourceCategories.
1611
1612         https://bugs.webkit.org/show_bug.cgi?id=28801
1613
1614         * inspector/front-end/ResourcesPanel.js:
1615         (WebInspector.ResourcesPanel):
1616         (WebInspector.ResourcesPanel.prototype.toolbarItemClass.get categories):
1617         * inspector/front-end/SummaryBar.js:
1618         (WebInspector.SummaryBar):
1619         (WebInspector.SummaryBar.prototype.update):
1620
1621 2009-08-28  Pavel Feldman  <pfeldman@chromium.org>
1622
1623         Not reviewed (patching in l18n change that was missing due to
1624         the git binary diff format).
1625
1626         https://bugs.webkit.org/show_bug.cgi?id=28429
1627
1628         * English.lproj/localizedStrings.js:
1629
1630 2009-08-28  Adam Barth  <abarth@webkit.org>
1631
1632         Reviewed by Eric Seidel.
1633
1634         Make XSSAuditor go fast
1635         https://bugs.webkit.org/show_bug.cgi?id=28667
1636
1637         Make the XSSAuditor go faster by implementing two optimizations:
1638
1639         1) We avoid canonicalizing scripts that are larger than the page's URL.
1640            This saves a bunch of time for large inline scripts.
1641
1642         2) We memoize canonicalizing the page's URL because it's silly to
1643            canonicalize repeated for each inline event listener.
1644
1645         These optimizations have a measurable affect on the intl1 page cycler.
1646
1647         No behavior change.
1648
1649         * page/XSSAuditor.cpp:
1650         (WebCore::XSSAuditor::MemoizingURLCanonicalizer::canonicalizeURL):
1651         (WebCore::XSSAuditor::canEvaluate):
1652         (WebCore::XSSAuditor::canEvaluateJavaScriptURL):
1653         (WebCore::XSSAuditor::canCreateInlineEventListener):
1654         (WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
1655         (WebCore::XSSAuditor::canLoadObject):
1656         (WebCore::XSSAuditor::canSetBaseElementURL):
1657         (WebCore::XSSAuditor::decodeURL):
1658         (WebCore::XSSAuditor::findInRequest):
1659         * page/XSSAuditor.h:
1660
1661 2009-08-27  Dimitri Glazkov  <dglazkov@chromium.org>
1662
1663         Unreviewed, build fix.
1664
1665         Removed ASSERT_NOT_REACHED, because indeed this ASSERT is reached in
1666         fast/canvas/change-context.html. And it's alright to reach it.
1667
1668         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
1669         (WebCore::CALLBACK_FUNC_DECL): Removed assertion.
1670
1671 2009-08-27  Jeremy Orlow  <jorlow@chromium.org>
1672
1673         Not reviewed.  Build fix for http://trac.webkit.org/changeset/47840
1674
1675         Peter's change forgot one m_decoder->
1676
1677         * platform/graphics/ImageSource.cpp:
1678         (WebCore::ImageSource::frameSizeAtIndex):
1679
1680 2009-08-27  Dimitri Glazkov  <dglazkov@chromium.org>
1681
1682         Unreviewed, build fix.
1683
1684         [V8] Add NULL-check, since the context ain't changeable no more, and
1685         thus getContext could return 0.
1686
1687         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
1688         (WebCore::CALLBACK_FUNC_DECL): Added NULL-check.
1689
1690 2009-08-27  Noel Gordon  <noel.gordon@gmail.com>
1691
1692         Reviewed by Eric Seidel.
1693
1694         dataTransfer.types() should include type "Files" when files are present in the clipboard.
1695         https://bugs.webkit.org/show_bug.cgi?id=28780
1696
1697         Add dataTransfer type "Files" to the chromium port.  Add eseidel's
1698         patch for same for the mac port.
1699
1700         * platform/chromium/ClipboardChromium.cpp:
1701
1702 2009-08-27  Chris Marrin  <cmarrin@apple.com>
1703
1704         Reviewed by Simon Fraser.
1705
1706         Removed GL_ from all constants, and gl prefix from all calls
1707         https://bugs.webkit.org/show_bug.cgi?id=28773
1708
1709         This was done for the external API in CanvasRenderingContext3D and
1710         the internal API in GraphicsContext3D.
1711
1712         * html/canvas/CanvasRenderingContext3D.cpp:
1713         * html/canvas/CanvasRenderingContext3D.h:
1714         * bindings/js/JSCanvasRenderingContext3DCustom.cpp:
1715         * html/canvas/CanvasRenderingContext3D.idl:
1716         * platform/graphics/GraphicsContext3D.h:
1717         * platform/graphics/mac/GraphicsContext3DMac.cpp:
1718
1719 2009-08-27  Jan Michael Alonzo  <jmalonzo@webkit.org>
1720
1721         Qt and Gtk build fixes. Not reviewed.
1722
1723         Add CanvasRenderingContext3D.idl to the build scripts.
1724
1725         * GNUmakefile.am:
1726         * WebCore.pro:
1727
1728 2009-08-27  Jeremy Orlow  <jorlow@chromium.org>
1729
1730         Reviewed by Darin Fisher.
1731
1732         Release the storage mutex whenever leaving JavaScript execution.
1733         https://bugs.webkit.org/show_bug.cgi?id=28789
1734
1735         http://dev.w3.org/html5/spec/Overview.html#storage-mutex describes the
1736         required behavior.  After we leave JavaScript, we must be sure the storage
1737         mutex has been released.  At the end of evaluate(), if localStorage has been
1738         instantiated, tell it to release any locks that may be applicable.
1739
1740         * bindings/js/ScriptController.cpp:
1741         (WebCore::ScriptController::evaluate):
1742         * bindings/v8/ScriptController.cpp:
1743         (WebCore::ScriptController::evaluate):
1744
1745 2009-08-27  Alexey Proskuryakov  <ap@apple.com>
1746
1747         Reviewed by Oliver Hunt.
1748
1749         https://bugs.webkit.org/show_bug.cgi?id=28753
1750         <rdar://problem/7173448> Excessive number of threads (and a crash)
1751
1752         Coalesce DNS prefetch requests to reduce strain on CFHost. Currently, the algorithm is as follows:
1753         - when resolver is idle, the first few requests are sent immediately (they may or may not
1754         hit the wire);
1755         - if there are a few requests in flight already, coalesce all requests for one second;
1756         - to avoid pathological cases with lots of links to different sites on a page, only ask
1757         CFHost about a handful of names (dropping the rest).
1758
1759         Coalescing reduces the number of requests dramatically, as prefetchDNS is called for each
1760         link, and these tend to have identical host name.
1761
1762         * platform/network/cf/DNSCFNet.cpp:
1763         (WebCore::DNSResolveQueue::DNSResolveQueue):
1764         (WebCore::DNSResolveQueue::shared):
1765         (WebCore::DNSResolveQueue::add):
1766         (WebCore::DNSResolveQueue::decrementRequestCount):
1767         (WebCore::DNSResolveQueue::fired):
1768         (WebCore::clientCallback):
1769         (WebCore::DNSResolveQueue::resolve):
1770         (WebCore::prefetchDNS):
1771
1772 2009-08-27  Chris Marrin  <cmarrin@apple.com>
1773
1774         Reviewed by Simon Fraser.
1775
1776         Final patch for Canvas 3D support
1777         https://bugs.webkit.org/show_bug.cgi?id=28018
1778
1779         This hooks everything up and provides a working implementation of
1780         Canvas 3D. I plumb the creation of the 3D canvas down to GraphicsLayer,
1781         passing the opaque context and texture pointers so a Canvas3DLayer can be
1782         created (more on that later). It also plumbs changes to the 3D canvas so
1783         that Canvas3DLayer can recomposite the results.
1784         
1785         A 3D Canvas element needs a RenderLayer and compositing layer to render.
1786         This is because it renders to an off-screen texture in the GPU and then
1787         hands it to a Canvas3DLayer, which is a subclass of CAOpenGLLayer, to
1788         render that texture as a 3D quad. This keeps everything in GPU memory to 
1789         maximize performance. When a CanvasRenderingContext3D is created it 
1790         forces a style recalc which creates the RenderLayer and compositing 
1791         layer if needed. 
1792         
1793         I repurposed an existing flag which was put in place for animation to accomplish 
1794         this. This flag is passed to setNeedsStyleRecalc(), and I renamed it from 
1795         AnimationStyleChange to SyntheticStyleChange. It essentially says that you need
1796         to do a complete style recalc, even though the style itself has not really
1797         changed.
1798         
1799         This patch also fixes a couple of bugs discovered when testing with 3d-canvas
1800         turned on. I also added a constructor DOMWindow.idl for CanvasRenderingContext3D.
1801         This is needed when making a JS wrapper for the object so the prototype 
1802         property can be set.
1803
1804         Test: fast/canvas/change-context.html
1805
1806         * WebCore.xcodeproj/project.pbxproj:
1807         * bindings/js/JSCanvasRenderingContext3DCustom.cpp:
1808         (WebCore::JSCanvasRenderingContext3D::glDrawElements):
1809         * bindings/js/JSCanvasRenderingContextCustom.cpp:
1810         (WebCore::toJS):
1811         * dom/Element.cpp:
1812         (WebCore::Element::recalcStyle):
1813         * dom/Node.cpp:
1814         (WebCore::Node::setNeedsStyleRecalc):
1815         * dom/Node.h:
1816         (WebCore::):
1817         * html/HTMLCanvasElement.cpp:
1818         (WebCore::HTMLCanvasElement::getContext):
1819         (WebCore::HTMLCanvasElement::is3D):
1820         * html/HTMLCanvasElement.h:
1821         * html/canvas/CanvasBuffer.cpp:
1822         (WebCore::CanvasBuffer::create):
1823         (WebCore::CanvasBuffer::CanvasBuffer):
1824         (WebCore::CanvasBuffer::_deleteObject):
1825         * html/canvas/CanvasBuffer.h:
1826         * html/canvas/CanvasFramebuffer.cpp:
1827         (WebCore::CanvasFramebuffer::create):
1828         (WebCore::CanvasFramebuffer::CanvasFramebuffer):
1829         (WebCore::CanvasFramebuffer::_deleteObject):
1830         * html/canvas/CanvasFramebuffer.h:
1831         * html/canvas/CanvasObject.cpp:
1832         (WebCore::CanvasObject::CanvasObject):
1833         (WebCore::CanvasObject::~CanvasObject):
1834         (WebCore::CanvasObject::deleteObject):
1835         * html/canvas/CanvasObject.h:
1836         (WebCore::CanvasObject::context):
1837         * html/canvas/CanvasProgram.cpp:
1838         (WebCore::CanvasProgram::create):
1839         (WebCore::CanvasProgram::CanvasProgram):
1840         (WebCore::CanvasProgram::_deleteObject):
1841         * html/canvas/CanvasProgram.h:
1842         * html/canvas/CanvasRenderbuffer.cpp:
1843         (WebCore::CanvasRenderbuffer::create):
1844         (WebCore::CanvasRenderbuffer::CanvasRenderbuffer):
1845         (WebCore::CanvasRenderbuffer::_deleteObject):
1846         * html/canvas/CanvasRenderbuffer.h:
1847         * html/canvas/CanvasRenderingContext3D.cpp:
1848         (WebCore::CanvasRenderingContext3D::createBuffer):
1849         (WebCore::CanvasRenderingContext3D::createFramebuffer):
1850         (WebCore::CanvasRenderingContext3D::createTexture):
1851         (WebCore::CanvasRenderingContext3D::createProgram):
1852         (WebCore::CanvasRenderingContext3D::createRenderbuffer):
1853         (WebCore::CanvasRenderingContext3D::createShader):
1854         * html/canvas/CanvasRenderingContext3D.h:
1855         (WebCore::CanvasRenderingContext3D::graphicsContext3D):
1856         * html/canvas/CanvasShader.cpp:
1857         (WebCore::CanvasShader::create):
1858         (WebCore::CanvasShader::CanvasShader):
1859         (WebCore::CanvasShader::_deleteObject):
1860         * html/canvas/CanvasShader.h:
1861         * html/canvas/CanvasTexture.cpp:
1862         (WebCore::CanvasTexture::create):
1863         (WebCore::CanvasTexture::CanvasTexture):
1864         (WebCore::CanvasTexture::_deleteObject):
1865         * html/canvas/CanvasTexture.h:
1866         * page/DOMWindow.idl:
1867         * page/animation/AnimationBase.cpp:
1868         (WebCore::AnimationBase::setNeedsStyleRecalc):
1869         * page/animation/AnimationController.cpp:
1870         (WebCore::AnimationControllerPrivate::updateAnimationTimer):
1871         (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
1872         (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
1873         (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
1874         (WebCore::AnimationController::cancelAnimations):
1875         * platform/graphics/GraphicsContext3D.h:
1876         (WebCore::GraphicsContext3D::platformGraphicsContext3D):
1877         (WebCore::GraphicsContext3D::platformTexture):
1878         * platform/graphics/GraphicsLayer.h:
1879         (WebCore::GraphicsLayer::setContentsToGraphicsContext3D):
1880         (WebCore::GraphicsLayer::setGraphicsContext3DNeedsDisplay):
1881         * platform/graphics/mac/GraphicsContext3DMac.cpp:
1882         (WebCore::GraphicsContext3D::~GraphicsContext3D):
1883         (WebCore::GraphicsContext3D::reshape):
1884         * platform/graphics/mac/GraphicsLayerCA.h:
1885         (WebCore::GraphicsLayerCA::):
1886         * platform/graphics/mac/GraphicsLayerCA.mm:
1887         (WebCore::GraphicsLayerCA::GraphicsLayerCA):
1888         (WebCore::GraphicsLayerCA::commitLayerChanges):
1889         (WebCore::GraphicsLayerCA::updateContentsGraphicsContext3D):
1890         (WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D):
1891         (WebCore::GraphicsLayerCA::setGraphicsContext3DNeedsDisplay):
1892         * rendering/RenderHTMLCanvas.cpp:
1893         (WebCore::RenderHTMLCanvas::requiresLayer):
1894         * rendering/RenderHTMLCanvas.h:
1895         (WebCore::RenderHTMLCanvas::isCanvas):
1896         * rendering/RenderLayerBacking.cpp:
1897         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
1898         (WebCore::RenderLayerBacking::canUseDirectCompositing):
1899         (WebCore::RenderLayerBacking::rendererContentChanged):
1900         * rendering/RenderLayerCompositor.cpp:
1901         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
1902         (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
1903         * rendering/RenderLayerCompositor.h:
1904         * rendering/RenderObject.h:
1905         (WebCore::RenderObject::isCanvas):
1906
1907 2009-08-27  Peter Kasting  <pkasting@google.com>
1908
1909         Reviewed by Eric Seidel.
1910
1911         https://bugs.webkit.org/show_bug.cgi?id=28751
1912         Clean up ImageDecoder*.cpp a bit.
1913
1914         * platform/image-decoders/ImageDecoder.cpp: Put functions in the same
1915           order as in the header file.  Also, since there's already an anonymous
1916           namespace in this file, use it to enclose the local helper functions.
1917         (WebCore::):
1918         (WebCore::ImageDecoder::upperBoundScaledX):
1919         (WebCore::ImageDecoder::lowerBoundScaledX):
1920         (WebCore::ImageDecoder::scaledY):
1921         * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
1922         (WebCore::RGBA32Buffer::width): Style fix.
1923         (WebCore::RGBA32Buffer::height): Style fix.
1924         * platform/image-decoders/haiku/ImageDecoderHaiku.cpp:
1925         (WebCore::RGBA32Buffer::copyBitmapData): Ensure m_size is set correctly.
1926         (WebCore::RGBA32Buffer::asNewNativeImage): Remove unneeded temp.
1927         (WebCore::RGBA32Buffer::operator=): Simplify.
1928         * platform/image-decoders/wx/ImageDecoderWx.cpp:
1929         (WebCore::RGBA32Buffer::asNewNativeImage): Try and collect spaced-out temps under loop comment to show they're all related.  Use size_t for iterating over elements of a Vector.
1930         (WebCore::RGBA32Buffer::width): Style fix.
1931         (WebCore::RGBA32Buffer::height): Style fix.
1932
1933 2009-08-27  Peter Kasting  <pkasting@google.com>
1934
1935         Reviewed by Eric Seidel.
1936
1937         https://bugs.webkit.org/show_bug.cgi?id=28751
1938         Clean up ImageSource.* in preparation for more fixes on bug 27965.
1939
1940         * platform/graphics/ImageSource.cpp: Put functions in the same order as in header file.
1941         (WebCore::ImageSource::isSizeAvailable): Shorten.
1942         (WebCore::ImageSource::size): Shorten.
1943         (WebCore::ImageSource::frameSizeAtIndex): Shorten.
1944         (WebCore::ImageSource::repetitionCount): Shorten.
1945         (WebCore::ImageSource::frameIsCompleteAtIndex):
1946         * platform/graphics/ImageSource.h: Shorten #ifdef section a bit by sharing common typedefs.
1947
1948 2009-08-27  Peter Kasting  <pkasting@google.com>
1949
1950         Reviewed by Eric Seidel.
1951
1952         https://bugs.webkit.org/show_bug.cgi?id=28785
1953         Add ImageDecoder.cpp to various build files so platforms will be able to
1954         use it.  Move an ENABLE to not cover the whole file, in preparation for
1955         adding a bunch of code.  Simplify #ifdefs in ImageDecoder.h to be "Skia
1956         vs. everyone else", which also gives new platforms a reasonable default
1957         behavior.
1958
1959         * GNUmakefile.am:
1960         * WebCore.gypi:
1961         * WebCore.vcproj/WebCore.vcproj:
1962         * WebCoreSources.bkl:
1963         * platform/image-decoders/ImageDecoder.cpp:
1964         (WebCore::):
1965         * platform/image-decoders/ImageDecoder.h:
1966         (WebCore::RGBA32Buffer::getAddr):
1967
1968 2009-08-27  Antti Koivisto  <antti@apple.com>
1969
1970         Reviewed by Dave Kilzer.
1971         
1972         https://bugs.webkit.org/show_bug.cgi?id=28784
1973         
1974         Add an exported method to flush pending repaints.
1975
1976         * WebCore.base.exp:
1977         * page/FrameView.cpp:
1978         (WebCore::FrameView::layoutIfNeededRecursive):
1979         (WebCore::FrameView::flushDeferredRepaints):
1980         * page/FrameView.h:
1981
1982 2009-08-27  Noel Gordon  <noel.gordon@gmail.com>
1983
1984         Reviewed by Eric Seidel.
1985
1986         [V8] Expose files from the pasteboard in drop events.
1987         https://bugs.webkit.org/show_bug.cgi?id=28782
1988
1989         Update chromium port to expose dataTransfer.files() as per
1990         HTML5 drag drop (Aug 2009 edition).
1991
1992         * platform/chromium/ClipboardChromium.cpp:
1993
1994 2009-08-27  Yury Semikhatsky  <yurys@chromium.org>
1995
1996         Reviewed by Dmitry Glazkov.
1997
1998         ScriptState now keeps explicit Handle of devtools front-end
1999         utility context instead of trying to retrieve it from inspected
2000         Frame.
2001
2002         https://bugs.webkit.org/show_bug.cgi?id=28772
2003
2004         * bindings/v8/ScriptController.cpp:
2005         (WebCore::ScriptController::ScriptController):
2006         * bindings/v8/ScriptController.h:
2007         * bindings/v8/ScriptObjectQuarantine.cpp:
2008         (WebCore::getQuarantinedScriptObject):
2009         * bindings/v8/ScriptScope.cpp:
2010         (WebCore::ScriptScope::ScriptScope):
2011         * bindings/v8/ScriptState.cpp:
2012         (WebCore::ScriptState::ScriptState):
2013         (WebCore::ScriptState::~ScriptState):
2014         (WebCore::scriptStateFromPage):
2015         * bindings/v8/ScriptState.h:
2016         (WebCore::ScriptState::context):
2017         * bindings/v8/ScriptValue.h:
2018         (WebCore::ScriptValue::~ScriptValue):
2019         * inspector/InspectorController.h:
2020         (WebCore::InspectorController::frontendScriptState):
2021
2022 2009-08-27  Pavel Feldman  <pfeldman@chromium.org>
2023
2024         Reviewed by Timothy Hatcher.
2025
2026         WebInspector: Console won't close.
2027
2028         https://bugs.webkit.org/show_bug.cgi?id=28778
2029
2030         * inspector/front-end/ElementsPanel.js:
2031         (WebInspector.ElementsPanel.prototype._updateModifiedNodes):
2032         * inspector/front-end/utilities.js:
2033         (Node.prototype.isAncestor):
2034
2035 2009-08-27  Eric Seidel  <eric@webkit.org>
2036
2037         Reviewed by Adam Barth.
2038
2039         Fix a typo in files() causing image drags to have junk file arrays.
2040         https://bugs.webkit.org/show_bug.cgi?id=28755
2041
2042         Test: editing/pasteboard/files-during-page-drags.html
2043
2044         * platform/mac/ClipboardMac.mm:
2045         (WebCore::ClipboardMac::files):
2046
2047 2009-08-27  Jeremy Orlow  <jorlow@chromium.org>
2048
2049         Not reviewed.  Build fix for Chromium.
2050
2051         * bindings/v8/DOMObjectsInclude.h:
2052         * bindings/v8/DerivedSourcesAllInOne.cpp:
2053         * bindings/v8/V8Index.cpp:
2054         * bindings/v8/V8Index.h:
2055
2056 2009-08-27  Alexey Proskuryakov  <ap@apple.com>
2057
2058         Windows build fix.
2059
2060         * DerivedSources.cpp: Added JSPageTransitionEvent.cpp to DerivedSources.cpp.
2061
2062 2009-08-26  Alexey Proskuryakov  <ap@apple.com>
2063
2064         Reviewed by Adele Peterson.
2065
2066         https://bugs.webkit.org/show_bug.cgi?id=28758
2067         <rdar://problem/6440869> Implement pageshow and pagehide events for b/f cache (28758)
2068
2069         Tests: fast/events/pageshow-pagehide-on-back-cached.html
2070                fast/events/pageshow-pagehide-on-back-uncached.html
2071                fast/events/pageshow-pagehide.html
2072
2073         * loader/FrameLoader.cpp: (WebCore::FrameLoader::stopLoading): Dispatch pagehide event
2074         (this function is called both when a document goes away, and when it goes to b/f cache).
2075
2076         * page/DOMWindow.cpp:
2077         (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): Dispatch pagehide right before unload.
2078         (WebCore::DOMWindow::dispatchPageTransitionEvent): Do what it takes to add a new event handler
2079         that can be installed on Window object.
2080         (WebCore::DOMWindow::onpagehide): Ditto.
2081         (WebCore::DOMWindow::setOnpagehide): Ditto.
2082         (WebCore::DOMWindow::onpageshow): Ditto.
2083         (WebCore::DOMWindow::setOnpageshow): Ditto.
2084
2085         * history/CachedFrame.cpp: (WebCore::CachedFrame::restore): Dispatch pageshow for a page
2086         that isn't being restored from cache.
2087
2088         * dom/PageTransitionEvent.cpp: Added.
2089         (WebCore::PageTransitionEvent::PageTransitionEvent):
2090         (WebCore::PageTransitionEvent::~PageTransitionEvent):
2091         (WebCore::PageTransitionEvent::initPageTransitionEvent):
2092         * dom/PageTransitionEvent.h: Added.
2093         (WebCore::PageTransitionEvent::create):
2094         (WebCore::PageTransitionEvent::isPageTransitionEvent):
2095         (WebCore::PageTransitionEvent::persisted):
2096         * dom/PageTransitionEvent.idl: Added.
2097         Add event class implementation.
2098
2099         * html/HTMLBodyElement.cpp: (WebCore::HTMLBodyElement::parseMappedAttribute): Support
2100         inline listener definition (note that adding listeners to document.body programmatically
2101         is not supported, matching Firefox).
2102
2103         * dom/Document.cpp:
2104         (WebCore::Document::implicitClose): Dispatch pageshow event right before load event.
2105         (WebCore::Document::dispatchPageTransitionEvent): Do what it takes to add a new event for
2106         Docuemnt.
2107         (WebCore::Document::createEvent): Ditto.
2108
2109         * dom/Document.h: Added dispatchPageTransitionEvent.
2110
2111         * DerivedSources.make:
2112         * GNUmakefile.am:
2113         * WebCore.gypi:
2114         * WebCore.pro:
2115         * WebCore.vcproj/WebCore.vcproj:
2116         * WebCore.xcodeproj/project.pbxproj:
2117         * WebCoreSources.bkl:
2118         * bindings/js/JSEventCustom.cpp: (WebCore::toJS):
2119         * dom/Event.cpp: (WebCore::Event::isPageTransitionEvent):
2120         * dom/Event.h:
2121         * dom/EventNames.h:
2122         * html/HTMLAttributeNames.in:
2123         * page/DOMWindow.h:
2124         * page/DOMWindow.idl:
2125         Do what it takes to add a new event type.
2126
2127 2009-08-27  Pavel Feldman  <pfeldman@chromium.org>
2128
2129         Reviewed by NOBODY (build fix).
2130
2131         Adding missing file from previous commit.
2132
2133         https://bugs.webkit.org/show_bug.cgi?id=28740
2134
2135         * inspector/front-end/SummaryBar.js: Added.
2136         (WebInspector.SummaryBar):
2137         (WebInspector.SummaryBar.prototype.get calculator):
2138         (WebInspector.SummaryBar.prototype.set calculator):
2139         (WebInspector.SummaryBar.prototype.reset):
2140         (WebInspector.SummaryBar.prototype.update):
2141         (WebInspector.SummaryBar.prototype._drawSwatch.drawSwatchSquare):
2142         (WebInspector.SummaryBar.prototype._drawSwatch):
2143         (WebInspector.SummaryBar.prototype._drawSummaryGraph.var):
2144         (WebInspector.SummaryBar.prototype._drawSummaryGraph):
2145         (WebInspector.SummaryBar.prototype._drawSummaryGraph.drawPill):
2146         (WebInspector.SummaryBar.prototype._fadeOutRect):
2147         (WebInspector.SummaryBar.prototype._makeLegendElement):
2148
2149 2009-08-27  Mikhail Naganov  <mnaganov@chromium.org>
2150
2151         Reviewed by Timothy Hatcher.
2152
2153         Factor out Factor out summary bar from Resources panel.
2154
2155         https://bugs.webkit.org/show_bug.cgi?id=28740
2156
2157         * WebCore.gypi:
2158         * WebCore.vcproj/WebCore.vcproj:
2159         * inspector/front-end/ResourcesPanel.js:
2160         (WebInspector.ResourcesPanel.prototype.reset):
2161         (WebInspector.ResourcesPanel.prototype._updateSummaryGraph):
2162         (WebInspector.ResourcesPanel.prototype._updateDividersLabelBarPosition):
2163         (WebInspector.ResourcesPanel.prototype._changeSortingFunction):
2164         * inspector/front-end/SummaryBar.js: Added.
2165         (WebInspector.SummaryBar):
2166         (WebInspector.SummaryBar.prototype.get calculator):
2167         (WebInspector.SummaryBar.prototype.set calculator):
2168         (WebInspector.SummaryBar.prototype.reset):
2169         (WebInspector.SummaryBar.prototype.update):
2170         (WebInspector.SummaryBar.prototype._drawSwatch.drawSwatchSquare):
2171         (WebInspector.SummaryBar.prototype._drawSwatch):
2172         (WebInspector.SummaryBar.prototype._drawSummaryGraph.var):
2173         (WebInspector.SummaryBar.prototype._drawSummaryGraph):
2174         (WebInspector.SummaryBar.prototype._drawSummaryGraph.drawPill):
2175         (WebInspector.SummaryBar.prototype._fadeOutRect):
2176         (WebInspector.SummaryBar.prototype._makeLegendElement):
2177         * inspector/front-end/WebKit.qrc:
2178         * inspector/front-end/inspector.css:
2179         * inspector/front-end/inspector.html:
2180
2181 2009-08-26  Mikhail Naganov  <mnaganov@chromium.org>
2182
2183         Reviewed by Timothy Hatcher.
2184
2185         Start adding heap profiler to Inspector (hidden behind a flag.)
2186
2187         https://bugs.webkit.org/show_bug.cgi?id=28429
2188
2189         * English.lproj/localizedStrings.js:
2190         * inspector/front-end/ProfilesPanel.js:
2191         (WebInspector.ProfilesPanel):
2192         (WebInspector.ProfilesPanel.prototype.get statusBarItems):
2193         (WebInspector.ProfilesPanel.prototype.reset):
2194         (WebInspector.ProfilesPanel.prototype.addProfile):
2195         (WebInspector.ProfilesPanel.prototype._updateInterface):
2196         (WebInspector.ProfilesPanel.prototype._snapshotClicked):
2197         * inspector/front-end/inspector.css:
2198         * inspector/front-end/inspector.js: added Preferences.heapProfilerPresent flag.
2199
2200 2009-08-27  Pavel Feldman  <pfeldman@chromium.org>
2201
2202         Reviewed by Timothy Hatcher.
2203
2204         WebInspector: Metrics sidebar editing is broken.
2205
2206         https://bugs.webkit.org/show_bug.cgi?id=28434
2207
2208         * inspector/front-end/MetricsSidebarPane.js:
2209         (WebInspector.MetricsSidebarPane.prototype.update):
2210
2211 2009-08-27  Darin Fisher  <darin@chromium.org>
2212
2213         Reviewed by Dimitri Glazkov.
2214
2215         https://bugs.webkit.org/show_bug.cgi?id=28767
2216
2217         Make KURLGoogle.cpp's decodeURLEscapeSequences decode %00 to match
2218         KURL.cpp.  This makes the XSSAuditor tests pass when using KURLGoogle.
2219
2220         * platform/KURLGoogle.cpp:
2221         (WebCore::decodeURLEscapeSequences):
2222
2223 2009-08-27  Ariya Hidayat  <ariya.hidayat@nokia.com>
2224
2225         Reviewed by Tor Arne Vestbø.
2226
2227         [Qt] Build fix, missing functions after r47763.
2228
2229         * platform/qt/Localizations.cpp:
2230         (WebCore::localizedMediaControlElementString):
2231         (WebCore::localizedMediaControlElementHelpText):
2232         (WebCore::localizedMediaTimeDescription):
2233
2234 2009-08-26  Dumitru Daniliuc  <dumi@chromium.org>
2235
2236         Reviewed by Adam Barth.
2237
2238         Removing trailing whitespaces from all storage classes.
2239
2240         https://bugs.webkit.org/show_bug.cgi?id=28075
2241
2242         * storage/ChangeVersionWrapper.cpp:
2243         * storage/Database.cpp:
2244         * storage/Database.h:
2245         * storage/DatabaseDetails.h:
2246         * storage/DatabaseThread.cpp:
2247         * storage/DatabaseTracker.cpp:
2248         * storage/DatabaseTracker.h:
2249         * storage/LocalStorageTask.cpp:
2250         * storage/LocalStorageTask.h:
2251         * storage/LocalStorageThread.cpp:
2252         * storage/LocalStorageThread.h:
2253         * storage/OriginQuotaManager.cpp:
2254         * storage/OriginUsageRecord.cpp:
2255         * storage/OriginUsageRecord.h:
2256         * storage/SQLError.h:
2257         * storage/SQLResultSetRowList.h:
2258         * storage/SQLStatement.cpp:
2259         * storage/SQLStatement.h:
2260         * storage/SQLStatementCallback.h:
2261         * storage/SQLStatementErrorCallback.h:
2262         * storage/SQLTransaction.cpp:
2263         * storage/SQLTransaction.h:
2264         * storage/SQLTransactionCallback.h:
2265         * storage/SQLTransactionErrorCallback.h:
2266         * storage/Storage.cpp:
2267         * storage/Storage.h:
2268         * storage/StorageArea.h:
2269         * storage/StorageAreaImpl.cpp:
2270         * storage/StorageAreaImpl.h:
2271         * storage/StorageAreaSync.cpp:
2272         * storage/StorageAreaSync.h:
2273         * storage/StorageEvent.cpp:
2274         * storage/StorageEvent.h:
2275         * storage/StorageMap.cpp:
2276         * storage/StorageMap.h:
2277         * storage/StorageNamespaceImpl.cpp:
2278         * storage/StorageSyncManager.cpp:
2279         * storage/StorageSyncManager.h:
2280
2281 2009-08-26  Dave Hyatt  <hyatt@apple.com>
2282
2283         Reviewed by Anders Carlsson.
2284
2285         https://bugs.webkit.org/show_bug.cgi?id=28763, flickering when opacity changes.
2286
2287         Make opacity changes from < 1 to 1 and from 1 to < 1 cause a relayout to happen.  We need
2288         to do this in order for overflow information to be properly recomputed.
2289
2290         * rendering/style/RenderStyle.cpp:
2291         (WebCore::RenderStyle::diff):
2292
2293 2009-08-26  Eric Carlson  <eric.carlson@apple.com>
2294
2295         Reviewed by Simon Fraser.
2296
2297         HTMLMediaElement sometimes loses events
2298         https://bugs.webkit.org/show_bug.cgi?id=28762
2299         <rdar://problem/7172437>
2300
2301         A media element triggers the resource selection algorithm if 
2302         play() is called when the networkState attribute is NETWORK_EMPTY, but
2303         it also immediately queues 'play' and either 'waiting' or 'playing' events.
2304         One of the steps in preparing to load is to flush pending events, so those 
2305         events were lost if the load timer fired quickly enough. Fixed by deleting
2306         pending events before scheduling the load timer.
2307
2308         Test: media/audio-play-event.html
2309
2310         * html/HTMLMediaElement.cpp:
2311         (WebCore::HTMLMediaElement::scheduleLoad):
2312             Do nothing if the load timer is already scheduled. Call prepareForLoad so queue of 
2313             pending events is flushed immediately.
2314         (WebCore::HTMLMediaElement::scheduleNextSourceChild):
2315             New, start the load timer without flushing pending events.
2316         (WebCore::HTMLMediaElement::load):
2317             Call prepareForLoad();
2318         (WebCore::HTMLMediaElement::prepareForLoad):
2319             New, load setup code moved from loadInternal.
2320         (WebCore::HTMLMediaElement::loadInternal):
2321             Moved some setup code to prepareForLoad so it can be invoked immediately before
2322             arming the load timer.
2323         (WebCore::HTMLMediaElement::setNetworkState):
2324             Call scheduleNextSourceChild instead of scheduleLoad as the later now clears
2325             pending events.
2326         * html/HTMLMediaElement.h:
2327             Declare scheduleNextSourceChild.
2328
2329 2009-08-26  Peter Kasting  <pkasting@google.com>
2330
2331         Reviewed by Eric Seidel.
2332
2333         https://bugs.webkit.org/show_bug.cgi?id=28751
2334         Switch ICO decoder from a Vector of raw pointers to a Vector of
2335         OwnPtrs now that that is possible.  Makes code slightly simpler.
2336
2337         * platform/image-decoders/ico/ICOImageDecoder.cpp:
2338         (WebCore::ICOImageDecoder::decodeAtIndex):
2339         (WebCore::ICOImageDecoder::processDirectory):
2340         * platform/image-decoders/ico/ICOImageDecoder.h:
2341
2342 2009-08-26  Dave Hyatt  <hyatt@apple.com>
2343
2344         Reviewed by Dan Bernstein.
2345
2346         https://bugs.webkit.org/show_bug.cgi?id=28718, image inside relpositioned inline doesn't paint.
2347         Make sure vertical overflow is still computed across self-painting layers, even though it isn't
2348         propagated to parents.
2349
2350         Added fast/repaint/rel-positioned-inline-with-overflow.html
2351
2352         * rendering/InlineFlowBox.cpp:
2353         (WebCore::InlineFlowBox::computeVerticalOverflow):
2354
2355 2009-08-26  David Levin  <levin@chromium.org>
2356
2357         Reviewed by Darin Fisher.
2358
2359         ResourceRequestBase::*[Aa]llowHTTPCookies shouldn't mention http.
2360         https://bugs.webkit.org/show_bug.cgi?id=28735
2361
2362         Renaming the method to imply its wider implications of affecting cookies
2363         over any protocol that supports them.
2364
2365         No change in functionality so no new tests.
2366
2367         * WebCore.order:
2368         * loader/DocumentThreadableLoader.cpp:
2369         (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
2370         (WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
2371         (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
2372         * platform/network/ResourceRequestBase.cpp:
2373         (WebCore::ResourceRequestBase::adopt):
2374         (WebCore::ResourceRequestBase::copyData):
2375         (WebCore::ResourceRequestBase::allowCookies):
2376         (WebCore::ResourceRequestBase::setAllowCookies):
2377         (WebCore::equalIgnoringHeaderFields):
2378         * platform/network/ResourceRequestBase.h:
2379         (WebCore::ResourceRequestBase::ResourceRequestBase):
2380         * platform/network/cf/ResourceRequestCFNet.cpp:
2381         (WebCore::ResourceRequest::doUpdatePlatformRequest):
2382         (WebCore::ResourceRequest::doUpdateResourceRequest):
2383         * platform/network/mac/ResourceRequestMac.mm:
2384         (WebCore::ResourceRequest::doUpdateResourceRequest):
2385         (WebCore::ResourceRequest::doUpdatePlatformRequest):
2386         * platform/network/soup/ResourceRequestSoup.cpp:
2387         (WebCore::ResourceRequest::updateFromSoupMessage):
2388
2389 2009-08-26  Dan Bernstein  <mitz@apple.com>
2390
2391         Reviewed by Dave Hyatt.
2392
2393         Made RenderInline::clippedOverflowRectForRepaint() actually include
2394         overflow.
2395
2396         Test: fast/repaint/inline-overflow.html
2397
2398         * rendering/RenderInline.cpp:
2399         (WebCore::RenderInline::linesVisibleOverflowBoundingBox): Added. Returns
2400             the bounding box of all lines’ visible overflow boxes (under the
2401             assumption that the first and last lines determine the top and
2402             bottom, respectively).
2403         (WebCore::RenderInline::clippedOverflowRectForRepaint): Changed to use
2404             linesVisibleOverflowBoundingBox() instead of linesBoundingBox().
2405         * rendering/RenderInline.h:
2406
2407 2009-08-26  John Gregg  <johnnyg@google.com>
2408
2409         Reviewed by David Levin.
2410
2411         minor style correction and include fix for notifications
2412         https://bugs.webkit.org/show_bug.cgi?id=28745
2413
2414         No change in behavior, so no tests.
2415
2416         * bindings/js/JSDesktopNotificationsCustom.cpp: add include of Error.h
2417         * notifications/Notification.cpp: change enum style to InterCaps
2418         (WebCore::Notification::Notification):
2419         * notifications/NotificationPresenter.h:
2420         (WebCore::NotificationPresenter::):
2421
2422 2009-08-25  Drew Wilson  <atwilson@google.com>
2423
2424         Reviewed by David Levin.
2425
2426         postMessage() spec now supports sending arrays of ports
2427         https://bugs.webkit.org/show_bug.cgi?id=26902
2428
2429         Added support for sending multiple ports at once via postMessage(). JS bindings will be updated in an upcoming patch.
2430
2431         No new tests, since the new functionality is not exposed via new JS bindings yet, so the old tests suffice.
2432
2433         * WebCore.xcodeproj/project.pbxproj:
2434         Mark MessagePort.h and MessagePortChannel.h as private since they are used by WebKit now.
2435         * dom/MessageEvent.cpp:
2436         Updated APIs to support passing MessagePortArrays.
2437         (WebCore::MessageEvent::MessageEvent):
2438         (WebCore::MessageEvent::initMessageEvent):
2439         (WebCore::MessageEvent::messagePort):
2440         * dom/MessageEvent.h:
2441         (WebCore::MessageEvent::create):
2442         Now accepts a MessagePortArray parameter instead of a single MessagePort.
2443         (WebCore::MessageEvent::ports):
2444         * dom/MessagePort.cpp:
2445         (WebCore::MessagePort::postMessage):
2446         (WebCore::MessagePort::dispatchMessages):
2447         (WebCore::MessagePort::disentanglePorts):
2448         Added new static function to extract a MessagePortChannelArray from a MessagePortArray.
2449         (WebCore::MessagePort::entanglePorts):
2450         Added new static function to generate a MessagePortArray (entangled ports) from a MessagePortChannelArray.
2451         * dom/MessagePort.h:
2452         * dom/MessagePortChannel.cpp:
2453         EventData now contains a MessagePortChannelArray field instead of a single MessagePortChannel.
2454         (WebCore::MessagePortChannel::EventData::create):
2455         (WebCore::MessagePortChannel::EventData::EventData):
2456         * dom/MessagePortChannel.h:
2457         (WebCore::MessagePortChannel::EventData::channels):
2458         * page/DOMWindow.cpp:
2459         (WebCore::PostMessageTimer::PostMessageTimer):
2460         (WebCore::PostMessageTimer::event):
2461         (WebCore::DOMWindow::postMessage):
2462         Now accepts a MessagePortArray parameter instead of a single MessagePort.
2463         * page/DOMWindow.h:
2464         * workers/DedicatedWorkerContext.cpp:
2465         (WebCore::DedicatedWorkerContext::postMessage):
2466         Now accepts a MessagePortArray parameter instead of a single MessagePort.
2467         (WebCore::DedicatedWorkerContext::dispatchMessage):
2468         * workers/DedicatedWorkerContext.h:
2469         * workers/Worker.cpp:
2470         (WebCore::Worker::postMessage):
2471         Now accepts a MessagePortArray parameter instead of a single MessagePort.
2472         (WebCore::Worker::dispatchMessage):
2473         * workers/Worker.h:
2474         * workers/WorkerContextProxy.h:
2475         * workers/WorkerMessagingProxy.cpp:
2476         Updated WorkerObjectProxy and WorkerContextProxy API implementations to support sending multiple MessagePorts.
2477         (WebCore::MessageWorkerContextTask::create):
2478         (WebCore::MessageWorkerContextTask::MessageWorkerContextTask):
2479         (WebCore::MessageWorkerContextTask::performTask):
2480         (WebCore::MessageWorkerTask::create):
2481         (WebCore::MessageWorkerTask::MessageWorkerTask):
2482         (WebCore::MessageWorkerTask::performTask):
2483         (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
2484         (WebCore::WorkerMessagingProxy::postMessageToWorkerContext):
2485         * workers/WorkerMessagingProxy.h:
2486         * workers/WorkerObjectProxy.h:
2487         Updated WorkerObjectProxy and WorkerContextProxy APIs to support sending multiple MessagePorts.
2488
2489 2009-08-26  Fumitoshi Ukai  <ukai@chromium.org>
2490
2491         Reviewed by Alexey Proskuryakov.
2492
2493         SocketStreamHandle interface for WebSocket API
2494         https://bugs.webkit.org/show_bug.cgi?id=28037
2495
2496         Add build systems only for GNUmakefile.am and WebCore.xcodeproj.now.
2497         Other build systems will be updated once the code is functional.
2498         Tests will be landed once this code is complete and functional.
2499
2500         * GNUmakefile.am:
2501         * WebCore.xcodeproj/project.pbxproj:
2502         * platform/network/SocketStreamErrorBase.cpp: Added.
2503         * platform/network/SocketStreamErrorBase.h: Added.
2504         * platform/network/SocketStreamHandleBase.cpp: Added.
2505         * platform/network/SocketStreamHandleBase.h: Added.
2506         * platform/network/SocketStreamHandleClient.h: Added.
2507         * platform/network/cf/SocketStreamError.h: Added.
2508         * platform/network/cf/SocketStreamHandle.h: Added.
2509         * platform/network/cf/SocketStreamHandleCFNet.cpp: Added.
2510         * platform/network/soup/SocketStreamError.h: Added.
2511         * platform/network/soup/SocketStreamHandle.h: Added.
2512         * platform/network/soup/SocketStreamHandleSoup.cpp: Added.
2513
2514 2009-08-26  Mads Ager  <ager@chromium.org>
2515
2516         Reviewed by Dimitri Glazkov.
2517
2518         [V8] setTimeout does not convert non-string argument to string
2519         https://bugs.webkit.org/show_bug.cgi?id=28739
2520
2521         Convert non-string argument to setTimeout to string in the V8
2522         bindings.
2523
2524         * bindings/v8/custom/V8DOMWindowCustom.cpp:
2525         (WebCore::V8Custom::WindowSetTimeoutImpl):
2526
2527 2009-08-25  Oliver Hunt  <oliver@apple.com>
2528
2529         Reviewed by Gavin Barraclough.
2530
2531         [ES5] Implement getOwnPropertyDescriptor
2532         https://bugs.webkit.org/show_bug.cgi?id=28724
2533
2534         Implement the WebCore side of getOwnPropertyDescriptor.  This
2535         requires a custom implementation of getOwnPropertyDescriptor
2536         for every class with a custom implementation of getOwnPropertySlot.
2537
2538         The bindings generator has been updated to generate appropriate
2539         versions of getOwnPropertyDescriptor for the general case where
2540         a custom getOwnPropertyDescriptor is not needed.  ES5 is vague
2541         about how getOwnPropertyDescriptor should work in the context of
2542         "host" functions with polymorphic [[GetOwnProperty]], so it seems
2543         okay that occasionally we "guess" what attributes -- eg. determining
2544         whether a property is writable.
2545
2546         Test: fast/js/getOwnPropertyDescriptor.html
2547
2548         * bindings/js/JSDOMWindowCustom.cpp:
2549         (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
2550         * bindings/js/JSDOMWindowShell.cpp:
2551         (WebCore::JSDOMWindowShell::getOwnPropertyDescriptor):
2552         * bindings/js/JSDOMWindowShell.h:
2553         * bindings/js/JSHTMLAppletElementCustom.cpp:
2554         (WebCore::JSHTMLAppletElement::getOwnPropertyDescriptorDelegate):
2555         * bindings/js/JSHTMLEmbedElementCustom.cpp:
2556         (WebCore::JSHTMLEmbedElement::getOwnPropertyDescriptorDelegate):
2557         * bindings/js/JSHTMLObjectElementCustom.cpp:
2558         (WebCore::JSHTMLObjectElement::getOwnPropertyDescriptorDelegate):
2559         * bindings/js/JSHistoryCustom.cpp:
2560         (WebCore::JSHistory::getOwnPropertyDescriptorDelegate):
2561         * bindings/js/JSLocationCustom.cpp:
2562         (WebCore::JSLocation::getOwnPropertyDescriptorDelegate):
2563         * bindings/js/JSNamedNodesCollection.cpp:
2564         (WebCore::JSNamedNodesCollection::getOwnPropertyDescriptor):
2565         * bindings/js/JSNamedNodesCollection.h:
2566         * bindings/js/JSPluginElementFunctions.cpp:
2567         (WebCore::runtimeObjectCustomGetOwnPropertyDescriptor):
2568         * bindings/js/JSPluginElementFunctions.h:
2569         * bindings/js/JSQuarantinedObjectWrapper.cpp:
2570         (WebCore::JSQuarantinedObjectWrapper::getOwnPropertyDescriptor):
2571         * bindings/js/JSQuarantinedObjectWrapper.h:
2572         * bindings/js/JSWorkerContextCustom.cpp:
2573         (WebCore::JSWorkerContext::getOwnPropertyDescriptorDelegate):
2574         * bindings/scripts/CodeGeneratorJS.pm:
2575         * bridge/objc/objc_runtime.h:
2576         * bridge/objc/objc_runtime.mm:
2577         (JSC::Bindings::ObjcFallbackObjectImp::getOwnPropertyDescriptor):
2578         * bridge/runtime.h:
2579         (JSC::Bindings::Instance::getOwnPropertyDescriptor):
2580         * bridge/runtime_array.cpp:
2581         (JSC::RuntimeArray::getOwnPropertyDescriptor):
2582         * bridge/runtime_array.h:
2583         * bridge/runtime_method.cpp:
2584         (JSC::RuntimeMethod::getOwnPropertyDescriptor):
2585         * bridge/runtime_method.h:
2586         * bridge/runtime_object.cpp:
2587         (JSC::RuntimeObjectImp::getOwnPropertyDescriptor):
2588         * bridge/runtime_object.h:
2589
2590 2009-08-26  Vincent Untz <vuntz@gnome.org>
2591
2592         Reviewed by Xan Lopez.
2593
2594         GObject checks for NULL (and not 0) in g_object_get, so use that
2595         as we were already doing elsewhere to make the compiler happy.
2596
2597         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
2598         (WebCore::MediaPlayerPrivate::hasAudio):
2599
2600 2009-08-26  Alpha Lam  <hclam@chromium.org>
2601
2602         Reviewed by David Levin.
2603
2604         RenderThemeMac.mm has incorrect casting for media control element.
2605         https://bugs.webkit.org/show_bug.cgi?id=28730
2606
2607         MediaControlMuteButtonElement was incorrectly casted to
2608         MediaControlPlayButtonElement. This is corrected in this patch.
2609
2610         No new tests because this is code cleanup and is already covered by existing
2611         media layout tests.
2612
2613         * rendering/RenderThemeMac.mm:
2614         (WebCore::RenderThemeMac::paintMediaMuteButton):
2615
2616 2009-08-26  Robert Sesek  <rsesek@chromium.org>
2617
2618         Reviewed by Eric Seidel.
2619
2620         [Chromium] Multi-value select boxes cannot do non-contiguous selection on Mac
2621         https://bugs.webkit.org/show_bug.cgi?id=28670
2622
2623         Change the condition regarding the key modifier check for non-contiguous
2624         selection on a multi-value list from just PLATFORM(MAC) to
2625         PLATFORM(MAC) || (PLATFORM(CHROMIUM) && PLATFORM(DARWIN)).
2626
2627         No new tests. This patch only changes the condition on which a certain mouse
2628         event modifier key is used.
2629
2630         * dom/SelectElement.cpp:
2631         (WebCore::SelectElement::listBoxDefaultEventHandler):
2632
2633 2009-08-25  Eric Carlson  <eric.carlson@apple.com>
2634
2635         Reviewed by Dan Bernstein
2636
2637         r47744 causes media/video-controls-with-mutation-event-handler.html to crash
2638         https://bugs.webkit.org/show_bug.cgi?id=28732
2639
2640         * rendering/MediaControlElements.cpp:
2641         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement):
2642             Don't call setAttribute from the construtor, any registered mutation event 
2643             listener will cause a crash.
2644
2645         * rendering/RenderMedia.cpp:
2646         (WebCore::RenderMedia::createVolumeSlider):
2647             Set the maxAttr here instead of in the constructor.
2648
2649 2009-08-25  Dmitry Titov  <dimich@chromium.org>
2650
2651         Reviewed by Brady Eidson.
2652
2653         Timers from cached pages fire instantly rather than the after the specified timeout delay
2654         https://bugs.webkit.org/show_bug.cgi?id=28683
2655
2656         Test: fast/dom/Window/timer-resume-on-navigation-back.html
2657
2658         * history/CachedPage.cpp:
2659         (WebCore::CachedPage::restore): Remove duplicated Frame::restore() call, since
2660             it should be done only once in FrameLoader::open(cachedFrame)
2661         * page/DOMTimer.cpp: Added a debug-only flag and ASSERT to catch out-of-order suspense/restore.
2662         (WebCore::DOMTimer::DOMTimer): Ditto.
2663         (WebCore::DOMTimer::suspend): Ditto.
2664         (WebCore::DOMTimer::resume): Ditto.
2665         * page/DOMTimer.h: Ditto.
2666
2667 2009-08-25  Eric Carlson  <eric.carlson@apple.com>
2668
2669         Reviewed by Simon Fraser.
2670
2671         Setting the volume of a media element has no effect if called too early
2672         https://bugs.webkit.org/show_bug.cgi?id=28731
2673
2674         * manual-tests/audio-volume.html: 
2675             Added.
2676
2677         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2678         (WebCore::MediaPlayerPrivate::setVolume):
2679         (WebCore::MediaPlayerPrivate::setRate):
2680             Don't bail if metadata hasn't been loaded, it is fine to set rate and/or
2681             volume as soon as the movie has been created.
2682
2683 2009-08-25  David Levin  <levin@chromium.org>
2684
2685         Reviewed by Maciej Stachowiak.
2686
2687         DocumentThreadableLoader::getShouldUseCredentialStorage should allow for synchronous callbacks from SubresourceLoader::create.
2688         https://bugs.webkit.org/show_bug.cgi?id=28728
2689
2690         Test: This code path is exercised while running xhr layout tests in chromium.
2691
2692         * loader/DocumentThreadableLoader.cpp:
2693         (WebCore::DocumentThreadableLoader::getShouldUseCredentialStorage): When called
2694         back synchronously, the loader is 0, so the assert is changed to allow for that.
2695         (WebCore::DocumentThreadableLoader::loadRequest): Synchronous callbacks may be
2696         done before SubresourceLoader::create finishes, so ensure that any previous loader
2697         -- from a preflight request -- is cleared before calling SubresourceLoader::create.
2698
2699 2009-08-25  Mark Rowe  <mrowe@apple.com>
2700
2701         Stop installing IDL files in to the framework.
2702
2703         * WebCore.xcodeproj/project.pbxproj:
2704
2705 2009-08-25  Kent Tamura  <tkent@chromium.org>
2706
2707         Reviewed by Eric Seidel.
2708
2709         Support for HTMLInputElement::list and HTMLInputElement::selectedOption.
2710         https://bugs.webkit.org/show_bug.cgi?id=27756
2711
2712         Tests: fast/forms/input-list.html
2713                fast/forms/input-selectedoption.html
2714
2715         * html/HTMLAttributeNames.in:
2716         * html/HTMLInputElement.cpp:
2717         (WebCore::HTMLInputElement::parseMappedAttribute):
2718         (WebCore::HTMLInputElement::list):
2719         (WebCore::HTMLInputElement::selectedOption):
2720         * html/HTMLInputElement.h:
2721         * html/HTMLInputElement.idl:
2722
2723 2009-08-25  Eric Carlson  <eric.carlson@apple.com>
2724
2725         Reviewed by Oliver Hunt.
2726
2727         <video> and <audio> controller should be accessible (edit)
2728         https://bugs.webkit.org/show_bug.cgi?id=28081
2729
2730         Test: accessibility/media-element.html
2731
2732         * GNUmakefile.am:
2733         * WebCore.gypi:
2734         * WebCore.pro:
2735         * WebCore.vcproj/WebCore.vcproj:
2736         * WebCore.xcodeproj/project.pbxproj:
2737         * WebCoreSources.bkl:
2738             Add AccessibilityMediaControls.cpp/.h
2739
2740         * accessibility/AXObjectCache.cpp:
2741         * accessibility/AXObjectCache.h:
2742         (WebCore::AXObjectCache::getOrCreate):
2743             Create AccessibilityMediaControl. Update Copyright
2744
2745         * accessibility/AccessibilityMediaControls.cpp:
2746         * accessibility/AccessibilityMediaControls.h:
2747             Added.
2748
2749         * accessibility/AccessibilityObject.cpp:
2750         * accessibility/AccessibilityObject.h:
2751             Add isMediaTimeline. Update Copyright.
2752
2753         * accessibility/AccessibilitySlider.h:
2754             Make constructor protected instead of private so AccessibilityMediaTimeline can
2755             call it.
2756
2757         * accessibility/mac/AccessibilityObjectWrapper.mm:
2758         (-[AccessibilityObjectWrapper accessibilityAttributeNames]):
2759             Add NSAccessibilityValueDescriptionAttribute to range attributes. 
2760         (-[AccessibilityObjectWrapper subrole]):
2761             Return NSAccessibilityTimelineSubrole for AccessibilityMediaTimeline.
2762
2763         * dom/Node.h:
2764             add isMediaControlElement.
2765
2766         * page/mac/WebCoreViewFactory.h:
2767         * platform/LocalizedStrings.h:
2768         * platform/mac/LocalizedStringsMac.mm:
2769         (WebCore::localizedMediaControlElementString): 
2770         (WebCore::localizedMediaControlElementHelpText):
2771         (WebCore::localizedMediaTimeDescription): 
2772             New, return localized media controller strings.
2773
2774         * platform/gtk/LocalizedStringsGtk.cpp:
2775         (WebCore::mediaElementLoadingStateText):
2776         (WebCore::mediaElementLiveBroadcastStateText):
2777             Move inside of "#if ENABLE(VIDEO)"
2778         (WebCore::localizedMediaControlElementString):
2779         (WebCore::localizedMediaControlElementHelpText):
2780         (WebCore::localizedMediaTimeDescription):
2781
2782         * rendering/MediaControlElements.cpp:
2783         (WebCore::MediaControlElement::MediaControlElement):
2784             Initialize m_displayType.
2785         (WebCore::MediaControlElement::MediaControlElement):
2786         (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
2787             Fix style.
2788         (WebCore::MediaControlInputElement::MediaControlInputElement):
2789             Set m_displayType based on pseudo style ID.
2790         (WebCore::MediaControlInputElement::MediaControlInputElement):
2791             rename local "o" to "object".
2792         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement):
2793         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
2794         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
2795         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement):
2796         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement):
2797         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
2798         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
2799         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
2800         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
2801         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
2802             Update for MediaControlInputElement constructor change.
2803         (WebCore::MediaControlTimeDisplayElement::formatTime):
2804             New, moved here from RenderMedia so AccessibilityMediaTimeDisplay can use it.
2805         (WebCore::MediaControlTimeDisplayElement::setCurrentValue):
2806             New, set text to current time.
2807         * rendering/MediaControlElements.h:
2808
2809         * rendering/RenderMedia.cpp:
2810         (WebCore::RenderMedia::updateControls):
2811             Create controls in tab order.
2812         (WebCore::RenderMedia::formatTime):
2813             Moved to MediaControlTimeDisplayElement::formatTime.
2814         (WebCore::RenderMedia::updateTimeDisplay):
2815             Call MediaControlTimeDisplayElement::setCurrentValue.
2816         * rendering/RenderMedia.h:
2817
2818 2009-08-25  Jian Li  <jianli@chromium.org>
2819
2820         Reviewed by David Levin.
2821
2822         [V8] Fix Canvas layout test failures in Chromium build.
2823         https://bugs.webkit.org/show_bug.cgi?id=28720
2824
2825         The previous fix r47757 does not handle the V8 object conversion correctly.
2826
2827         * bindings/v8/custom/V8DocumentCustom.cpp:
2828         (WebCore::CALLBACK_FUNC_DECL):
2829         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2830         (WebCore::CALLBACK_FUNC_DECL):
2831
2832 2009-08-25  Jian Li  <jianli@chromium.org>
2833
2834         Reviewed by David Levin.
2835
2836         [V8] Fix compiling errors in Chromium build caused by Canvas3D changes from r47752.
2837         https://bugs.webkit.org/show_bug.cgi?id=28717
2838
2839         * bindings/v8/DOMObjectsInclude.h:
2840         * bindings/v8/DerivedSourcesAllInOne.cpp:
2841         * bindings/v8/V8Index.cpp:
2842         * bindings/v8/V8Index.h:
2843         * bindings/v8/custom/V8DocumentCustom.cpp:
2844         (WebCore::CALLBACK_FUNC_DECL):
2845         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
2846         (WebCore::CALLBACK_FUNC_DECL):
2847
2848 2009-08-25  Alpha Lam  <hclam@chromium.org>
2849
2850         Reviewed by David Levin.
2851
2852         [chromium] Implement media volume slider for chromium
2853         https://bugs.webkit.org/show_bug.cgi?id=28715
2854
2855         Provided the implementation of the volume slider and its container for
2856         chromium port. With this change there will be a usable volume control
2857         slider for chromium theme.
2858
2859         No new tests since this is covered by existing media layout tests.
2860
2861         * css/mediaControlsChromium.css: CSS style for the volume slider.
2862         * rendering/RenderThemeChromiumSkia.cpp:
2863         (WebCore::mediaSliderThumbImage): Returns the image for slider thumb.
2864         (WebCore::mediaVolumeSliderThumbImage): Returns the image for volume slider thumb.
2865         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderTrack): Paints the track with one vertical white line.
2866         (WebCore::RenderThemeChromiumSkia::adjustSliderThumbSize): Adjusts thumb sizes according to the images.
2867         (WebCore::RenderThemeChromiumSkia::paintMediaSliderThumb): Paints slider thumb image.
2868         (WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderThumb): Paints volume slider thumb image.
2869
2870 2009-08-25  Chris Marrin  <cmarrin@apple.com>
2871
2872         Reviewed by Simon Fraser.
2873
2874         Missed checking in 2 Canvas3D files
2875         https://bugs.webkit.org/show_bug.cgi?id=28018
2876
2877         * bindings/js/JSCanvasRenderingContextCustom.cpp: Implements toJS to do proper subclass binding
2878         * bindings/js/JSCanvasRenderingContext3DCustom.cpp: Argument marshaling for 3D calls
2879
2880 2009-08-25  Mads Ager  <ager@chromium.org>
2881
2882         Reviewed by Adam Barth.
2883
2884         [V8] Exception from JavaScript propagates to main script
2885         https://bugs.webkit.org/show_bug.cgi?id=26433
2886
2887         Make sure that exceptions thrown both at compile time and at
2888         runtime in javascript URLs are isolated from the main script.
2889
2890         Test: fast/dom/javascript-url-exception-isolation.html
2891
2892         * bindings/v8/V8Proxy.cpp:
2893         (WebCore::V8Proxy::evaluate):
2894
2895 2009-08-25  Chris Marrin  <cmarrin@apple.com>
2896
2897         Reviewed by Simon Fraser.
2898
2899         Added all new Canvas3D files to the build
2900         https://bugs.webkit.org/show_bug.cgi?id=28018
2901
2902         This also hooks up CanvasRenderingContext as the common base class for
2903         CanvasRenderingContext2D and CanvasRenderingContext3D. And it adds a bit
2904         of logic throughout to support the new CanvasRenderingContext3D object.
2905         But nothing is hooked up yet.
2906
2907         * DerivedSources.make:
2908         * WebCore.pro:
2909         * WebCore.vcproj/WebCore.vcproj:
2910         * WebCore/GNUmakefile.am:
2911         * WebCore/WebCore.gypi:
2912         * WebCore/WebCoreSources.bkl:
2913         * WebCore.xcodeproj/project.pbxproj:
2914         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2915         (WebCore::JSCanvasRenderingContext2D::strokeStyle):
2916         (WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
2917         (WebCore::JSCanvasRenderingContext2D::fillStyle):
2918         (WebCore::JSCanvasRenderingContext2D::setFillStyle):
2919         (WebCore::JSCanvasRenderingContext2D::setFillColor):
2920         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
2921         (WebCore::JSCanvasRenderingContext2D::strokeRect):
2922         (WebCore::JSCanvasRenderingContext2D::drawImage):
2923         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
2924         (WebCore::JSCanvasRenderingContext2D::setShadow):
2925         (WebCore::JSCanvasRenderingContext2D::createPattern):
2926         (WebCore::JSCanvasRenderingContext2D::putImageData):
2927         (WebCore::JSCanvasRenderingContext2D::fillText):
2928         (WebCore::JSCanvasRenderingContext2D::strokeText):
2929         * bindings/js/JSDOMBinding.cpp:
2930         (WebCore::isObservableThroughDOM):
2931         * bindings/js/JSDocumentCustom.cpp:
2932         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2933         (WebCore::JSHTMLCanvasElement::markChildren):
2934         * dom/Document.cpp:
2935         (WebCore::Document::getCSSCanvasContext):
2936         * dom/Document.h:
2937         * html/HTMLCanvasElement.cpp:
2938         (WebCore::HTMLCanvasElement::getContext):
2939         (WebCore::HTMLCanvasElement::willDraw):
2940         (WebCore::HTMLCanvasElement::reset):
2941         (WebCore::HTMLCanvasElement::paint):
2942         (WebCore::HTMLCanvasElement::is3D):
2943         (WebCore::HTMLCanvasElement::context3D):
2944         (WebCore::HTMLCanvasElement::texture3D):
2945         * html/HTMLCanvasElement.h:
2946         (WebCore::HTMLCanvasElement::renderingContext):
2947         * html/canvas/CanvasObject.cpp:
2948         (WebCore::CanvasObject::~CanvasObject):
2949         * html/canvas/CanvasRenderingContext.idl:
2950         * html/canvas/CanvasRenderingContext2D.cpp:
2951         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
2952         (WebCore::CanvasRenderingContext2D::~CanvasRenderingContext2D):
2953         * html/canvas/CanvasRenderingContext2D.h:
2954         (WebCore::CanvasRenderingContext2D::is2d):
2955         * html/canvas/CanvasRenderingContext2D.idl:
2956         * html/canvas/CanvasRenderingContext3D.cpp:
2957         * html/canvas/CanvasRenderingContext3D.idl:
2958
2959 2009-08-25  Dan Bernstein  <mitz@apple.com>
2960
2961         Reviewed by Anders Carlsson.
2962
2963         REGRESSION (r47630): fast/repaint/background-generated.html is failing
2964         https://bugs.webkit.org/show_bug.cgi?id=28704
2965
2966         * rendering/RenderBoxModelObject.cpp:
2967         (WebCore::RenderBoxModelObject::calculateFillTileSize): Handle SizeNone.
2968         * rendering/style/FillLayer.cpp:
2969         (WebCore::FillLayer::FillLayer): Initialize the size type to SizeNone.
2970         * rendering/style/FillLayer.h:
2971         (WebCore::FillSize::FillSize): Changed assignment to initialization and
2972             removed redundant assignment to size.
2973
2974 2009-08-25  Yusuke Sato  <yusukes@chromium.org>
2975
2976         Reviewed by Darin Fisher.
2977
2978         [Chromium] Complex text doesn't show up with text stroking
2979         https://bugs.webkit.org/show_bug.cgi?id=28707
2980
2981         Skip the NULL check of m_hdc if Windows GDI is not in use.
2982
2983         * platform/graphics/chromium/FontChromiumWin.cpp:
2984         (WebCore::Font::drawComplexText):
2985
2986 2009-08-25  Alpha Lam  <hclam@chromium.org>
2987
2988         Reviewed by David Levin.
2989
2990         Media controls panel does not have a volume control slider
2991         https://bugs.webkit.org/show_bug.cgi?id=28241
2992
2993         Introduced "-webkit-media-controls-volume-slider",
2994         "-webkit-media-controls-volume-slider-container" and the supporting
2995         implementation. Also added appearances of "media-volume-slider" and
2996         "media-volume-slider-container".
2997
2998         The implementation of the controls are in WebCore::MediaControlElements.
2999         Logic to trigger the display of the volume controls are in WebCore::RenderMedia.
3000
3001         No new tests since this change doesn't have theme implementation and the
3002         volume slider is disabled by default.
3003
3004         * accessibility/AccessibilitySlider.cpp:
3005         (WebCore::AccessibilitySlider::orientation): Marks that volume slider is vertical.
3006         * css/CSSPrimitiveValueMappings.h:
3007         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added corresponding CSS values.
3008         * css/CSSSelector.cpp:
3009         (WebCore::CSSSelector::extractPseudoType): ditto.
3010         * css/CSSSelector.h:
3011         (WebCore::CSSSelector::): ditto.
3012         * css/CSSStyleSelector.cpp:
3013         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): ditto.
3014         * css/CSSValueKeywords.in: ditto.
3015         * css/mediaControls.css: Makes the volume slider disabled by default.
3016         * platform/ThemeTypes.h: Defines theme parts for volume slider and its container.
3017         (WebCore::):
3018         * rendering/MediaControlElements.cpp:
3019         (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
3020         (WebCore::MediaControlVolumeSliderContainerElement::styleForElement):
3021         Adjust the CSS values for "display", "postion", "left" and "top" according to member variables.
3022         (WebCore::MediaControlVolumeSliderContainerElement::setVisible): Affects the "display" CSS value.
3023         (WebCore::MediaControlVolumeSliderContainerElement::setPosition): Affects the "left" and "top" CSS values.
3024         (WebCore::MediaControlVolumeSliderContainerElement::hitTest): Hit testing this element.
3025         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement):
3026         (WebCore::MediaControlVolumeSliderElement::defaultEventHandler): Modifies the volume using the slider value, allows dragging.
3027         * rendering/MediaControlElements.h:
3028         (WebCore::): Added definition for MediaControlVolumeSliderElement and MediaControlVolumeSliderContainerElement.
3029         (WebCore::MediaControlVolumeSliderContainerElement::isVisible): Inline getter.
3030         * rendering/RenderMedia.cpp:
3031         (WebCore::RenderMedia::styleDidChange): Updates styles for volume container and volume slider.
3032         (WebCore::RenderMedia::createVolumeSliderContainer): Creates volume slider container and attach to panel.
3033         (WebCore::RenderMedia::createVolumeSlider): Creates volume slider and attach to volume slider container.
3034         (WebCore::RenderMedia::updateControls): Updates volume container and volume slider.
3035         (WebCore::RenderMedia::updateVolumeSliderContainer): Sets the visibility and position of volume slider container and its child.
3036         (WebCore::RenderMedia::forwardEvent):
3037         Hit testing the volume slider container and volume slider to toggle the visibility and forward events to slider.
3038         * rendering/RenderMedia.h:
3039         Added definition for RenderMedia::updateVolumeSliderContainer().
3040         * rendering/RenderMediaControls.cpp:
3041         (WebCore::RenderMediaControls::paintMediaControlsPart): Not implemented.
3042         * rendering/RenderSlider.cpp:
3043         (WebCore::RenderSlider::createThumbStyle): Makes volume slider vertical.
3044         (WebCore::RenderSlider::thumbRect): ditto.
3045         (WebCore::RenderSlider::mouseEventIsInThumb): ditto.
3046         (WebCore::RenderSlider::setValueForPosition): ditto.
3047         (WebCore::RenderSlider::positionForOffset): ditto.
3048         (WebCore::RenderSlider::currentPosition): ditto.
3049         (WebCore::RenderSlider::trackSize): ditto.
3050         * rendering/RenderTheme.cpp:
3051         (WebCore::RenderTheme::adjustStyle): Adjust style for volume slider thumb.
3052         (WebCore::RenderTheme::paint): Paints volume control parts using theme.
3053         * rendering/RenderTheme.h:
3054         (WebCore::RenderTheme::paintMediaVolumeSliderContainer): Naive implementation to be overridden.
3055         (WebCore::RenderTheme::paintMediaVolumeSliderTrack): ditto.
3056         (WebCore::RenderTheme::paintMediaVolumeSliderThumb): ditto.
3057         * rendering/style/RenderStyleConstants.h:
3058         (WebCore::): Constants for volume control parts.
3059
3060 2009-08-25  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3061
3062         Reviewed by Ariya Hidayat.
3063
3064         [Qt/Mac] Use CONFIG+=build_all only when building libraries
3065
3066         If no configuration is specified when building WebKit we pass the
3067         debug_and_release option to QMake which results in Makefiles for
3068         both configurations being generated.
3069
3070         Previously we built both of these configurations by default, for
3071         all targets (both the QtWebKit framework/dyldlib and the various
3072         executables such as QtLauncher and tests). This makes sense for
3073         the libraries, which get the _debug suffix and can be loaded on
3074         demand by setting the DYLD_IMAGE_SUFFIX, but for executables we
3075         ended up building the same executable twice.
3076
3077         We now only build one instance of each executable, and since this
3078         is a developer build we build the debug-version. Passing either
3079         --debug or --release to build-webkit will override this, and
3080         even in the default case the release version can still be built
3081         by running 'make release' in the the build directory of each
3082         target.
3083
3084         * WebCore.pro:
3085
3086 2009-08-25  Xan Lopez  <xlopez@igalia.com>
3087
3088         Reviewed by Jan Alonzo.
3089
3090         https://bugs.webkit.org/show_bug.cgi?id=28690
3091         Build failure in webkitgtk+-1.1.3
3092
3093         Do not use deprecated function to unref a pixbuf.
3094
3095         * platform/gtk/CursorGtk.cpp:
3096         (WebCore::Cursor::Cursor):
3097
3098 2009-08-24  Hironori Bono  <hbono@chromium.org>
3099
3100         Reviewed by Adam Barth.
3101
3102         Fix Bug 27827 "[Chromium] Functions Keys don't work in google spreadsheet".
3103         <https://bugs.webkit.org/show_bug.cgi?id=27827>.
3104
3105         Because of the lack of mappings from GDK key-codes to WebKit key-codes,
3106         Chromium cannot send valid key-codes to JavaScript when a user types
3107         function keys. This change just copies the mappings from 'KeyEventGtk.cpp'.
3108
3109         To write layout tests for this issue, added mappings from function-key
3110         names to platform-specific key-codes to EventSendingController objects
3111         so that eventSender.keyDown() can send function-key events without using
3112         platform-specific key codes. (Unfortunately, this eventSender.keyDown() change
3113         is only for Mac. So this change adds this new test to Skipped tests for other
3114         platforms to prevent this change from crashing the build trees.)
3115
3116         Test: fast/events/keydown-function-keys.html
3117
3118        * platform/chromium/KeyCodeConversionGtk.cpp: Add mappings from GDK key-codes
3119         to WebKit key-code for function keys.
3120         (WebCore::windowsKeyCodeForKeyEvent):
3121
3122 2009-08-24  Antti Koivisto  <antti@apple.com>
3123
3124         Reviewed by Simon Fraser.
3125         
3126         https://bugs.webkit.org/show_bug.cgi?id=28698
3127         Avoid unnecessary transformations for the window resizer rect.
3128
3129         * platform/Scrollbar.cpp:
3130         (WebCore::Scrollbar::setFrameRect):
3131
3132 2009-08-24  Alexey Proskuryakov  <ap@apple.com>
3133
3134         Reviewed by Anders Carlsson.
3135
3136         <rdar://problem/7161900> REGRESSION: 100 MB membuster leak on windows due to 47391
3137         (DNS prefetching support)
3138
3139         * platform/network/cf/DNSCFNet.cpp: (WebCore::prefetchDNS): Use a run loop from secondary
3140         thread on Windows, because there isn't one on main one.
3141
3142 2009-08-24  Alexey Proskuryakov  <ap@apple.com>
3143
3144         Reviewed by Darin Adler.
3145
3146         https://bugs.webkit.org/show_bug.cgi?id=28374
3147         Cross-scheme requests should not be blocked by appcache rules
3148
3149         Test: http/tests/appcache/different-scheme.html
3150
3151         * loader/appcache/ApplicationCacheHost.cpp:
3152         (WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache):
3153         Resources with different schemes can never be loaded from appcache.
3154
3155 2009-08-24  Alexey Proskuryakov  <ap@apple.com>
3156
3157         Reviewed by Darin Adler and Sam Weinig.
3158
3159         https://bugs.webkit.org/show_bug.cgi?id=28688
3160         REGRESSION(r24994): Cannot create a frame with a javascript URL
3161
3162         Test: http/tests/security/javascriptURL/javascriptURL-in-new-iframe.html
3163
3164         * bindings/js/JSAttrCustom.cpp: (WebCore::JSAttr::setValue):
3165         * bindings/js/JSElementCustom.cpp: (WebCore::allowSettingSrcToJavascriptURL):
3166         * bindings/js/JSHTMLFrameElementCustom.cpp: (WebCore::allowSettingJavascriptURL):
3167         * bindings/js/JSHTMLIFrameElementCustom.cpp: (WebCore::JSHTMLIFrameElement::setSrc):
3168         Omit the checks if there is no document in frame yet.
3169
3170 2009-08-24  Nate Chapin  <japhet@chromium.org>
3171
3172         Reviewed by Eric Seidel.
3173
3174         Fix crash in fast/css/rem-dynamic-scaling.html due to a freed
3175         RenderStyle being accessed.
3176
3177         https://bugs.webkit.org/show_bug.cgi?id=28681
3178
3179         * dom/Element.cpp:
3180         (WebCore::Element::recalcStyle): Make currentStyle a RefPtr.
3181
3182 2009-08-24  Dan Bernstein  <mitz@apple.com>
3183
3184         Reviewed by Simon Fraser.
3185
3186         <rdar://problem/5743105> Long freezing during loading and selecting text
3187         of a large table
3188         https://bugs.webkit.org/show_bug.cgi?id=14918
3189
3190         * rendering/RenderView.cpp:
3191         (WebCore::RenderView::setSelection): Added calls to
3192             beginDeferredRepaints() and endDeferredRepaints() around the
3193             invalidation of the selection, in order to better coalesce multiple
3194             invalid rectangles.
3195
3196 2009-08-24  Pavel Feldman  <pfeldman@chromium.org>
3197
3198         Reviewed by Timothy Hatcher.
3199
3200         WebInspector: Simplify findTreeElement code, get rid of potential infinite loop.
3201
3202         https://bugs.webkit.org/show_bug.cgi?id=28680
3203
3204         * inspector/front-end/ElementsPanel.js:
3205         (WebInspector.ElementsPanel.prototype.updateBreadcrumb):
3206         * inspector/front-end/ElementsTreeOutline.js:
3207         (WebInspector.ElementsTreeOutline.prototype.findTreeElement):
3208         * inspector/front-end/treeoutline.js:
3209         (TreeOutline.prototype.getCachedTreeElement):
3210         (TreeOutline.prototype.findTreeElement):
3211         * inspector/front-end/utilities.js:
3212         (isAncestorNode):
3213         ():
3214
3215 2009-08-24  Pavel Feldman  <pfeldman@chromium.org>
3216
3217         Reviewed by Timothy Hatcher.
3218
3219         WebInspector: Do expand local scope when hitting the break
3220
3221         https://bugs.webkit.org/show_bug.cgi?id=28678
3222
3223         * inspector/front-end/ScopeChainSidebarPane.js:
3224         (WebInspector.ScopeChainSidebarPane.prototype.update):
3225
3226 2009-08-24  Ada Chan  <adachan@apple.com>
3227
3228         Reviewed by Steve Falkenburg.
3229
3230         Make sure we use the current FrameView's frame rect when
3231         going back to a cached page.
3232         
3233         https://bugs.webkit.org/show_bug.cgi?id=28659
3234
3235         * loader/FrameLoader.cpp:
3236         (WebCore::FrameLoader::open):
3237
3238 2009-08-24  Cameron McCormack  <cam@mcc.id.au>
3239
3240         Reviewed by Darin Adler.
3241
3242         Modifying <text rotate=""> doesn't clear the corresponding SVGAnimatedNumberList
3243         https://bugs.webkit.org/show_bug.cgi?id=28673
3244
3245         Test: svg/dom/text-rotate-live.html
3246
3247         * svg/SVGNumberList.cpp:
3248         (WebCore::SVGNumberList::parse): Clear the list before adding the parsed
3249         numbers.
3250
3251 2009-08-24  Simon Fraser  <simon.fraser@apple.com>
3252
3253         Reviewed by NOBODY (build fix)
3254
3255         Turn off ENABLE_3D_CANVAS in the xconfig files.
3256
3257         * Configurations/FeatureDefines.xcconfig:
3258
3259 2009-08-24  Pavel Feldman  <pfeldman@chromium.org>
3260
3261         Reviewed by Timothy Hatcher.
3262
3263         WebInspector: Only expand local scope when hitting the break
3264
3265         https://bugs.webkit.org/show_bug.cgi?id=28678
3266
3267         * inspector/front-end/ScopeChainSidebarPane.js:
3268         (WebInspector.ScopeChainSidebarPane.prototype.update):
3269
3270 2009-08-24  Dan Bernstein  <mitz@apple.com>
3271
3272         Reviewed by Simon Fraser.
3273
3274         background-size fails to parse if a single length/percentage/auto is followed by a comma
3275         https://bugs.webkit.org/show_bug.cgi?id=28674
3276
3277         * css/CSSParser.cpp:
3278         (WebCore::CSSParser::parseFillSize): Added an allowComma parameter,
3279             which is set to false when this method consumes a comma. Moved
3280             handling of 'contain' and 'cover' from parseFillProperty into this
3281             method.
3282         (WebCore::CSSParser::parseFillProperty): Set allowComma to true before
3283             processing the next value, and pass allowComma to parseFillSize.
3284         * css/CSSParser.h:
3285
3286 2009-08-17  Martin Robinson  <martin.james.robinson@gmail.com>
3287
3288         Reviewed by Gustavo Noronha.
3289
3290         [GTK] Support for cursors that are images
3291         https://bugs.webkit.org/show_bug.cgi?id=28346
3292
3293         Added support for cursors which are images for CursorGtk. Added
3294         a manual test for this.
3295
3296         * manual-tests/gtk/cursor-image.html: Added.
3297         * manual-tests/gtk/resources/redcursor.cur: Added.
3298         * platform/gtk/CursorGtk.cpp:
3299         (WebCore::Cursor::Cursor):
3300
3301 2009-08-24  Zan Dobersek  <zandobersek@gmail.com>
3302
3303         Reviewed by Gustavo Noronha.
3304
3305         [GTK] Integrate GStreamer video with the graphics backend
3306         https://bugs.webkit.org/show_bug.cgi?id=16356
3307
3308         Improves GStreamer backend implementation of MediaPlayerPrivate class.
3309
3310         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
3311         (WebCore::mediaPlayerPrivateErrorCallback): Send proper MediaPlayer
3312         error for different GStreamer errors to MediaPlayerPrivate.
3313         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Move static
3314         initialization boolean to a better place.
3315         (WebCore::MediaPlayerPrivate::play):
3316         (WebCore::MediaPlayerPrivate::pause):
3317         (WebCore::MediaPlayerPrivate::duration): Return if error occured, do not
3318         consider the source as stream if duration query failed.
3319         (WebCore::MediaPlayerPrivate::currentTime): Return if error occured, use
3320         an early return.
3321         (WebCore::MediaPlayerPrivate::seek): Return if error occured.
3322         (WebCore::MediaPlayerPrivate::setEndTime): Remove implementation since this
3323         function doesn't seem to be used anywhere in WebCore.
3324         (WebCore::MediaPlayerPrivate::paused):
3325         (WebCore::MediaPlayerPrivate::seeking):
3326         (WebCore::MediaPlayerPrivate::setRate): Seek to current time when rate is set.
3327         (WebCore::MediaPlayerPrivate::maxTimeBuffered): Return if error occured.
3328         (WebCore::MediaPlayerPrivate::maxTimeSeekable): Ditto.
3329         (WebCore::MediaPlayerPrivate::maxTimeLoaded): Ditto.
3330         (WebCore::MediaPlayerPrivate::bytesLoaded):
3331         (WebCore::MediaPlayerPrivate::totalBytesKnown):
3332         (WebCore::MediaPlayerPrivate::totalBytes): Ditto.
3333         (WebCore::MediaPlayerPrivate::updateStates): Return if error occured, update
3334         after seek ended with a successful change
3335         (WebCore::MediaPlayerPrivate::didEnd): Do not pause the playbin when end is reached.
3336         (WebCore::MediaPlayerPrivate::loadingFailed): Update network state with the given error.
3337         (WebCore::mimeTypeCache): Gather supported mime types from GStreamer.
3338         (WebCore::MediaPlayerPrivate::getSupportedTypes):
3339         (WebCore::MediaPlayerPrivate::supportsType):
3340         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
3341         (WebCore::MediaPlayerPrivate::supportsFullscreen): First step towards fullscreen
3342         support.
3343         (WebCore::MediaPlayerPrivate::createGSTPlayBin): Use playbin2 instead of playbin,
3344         do not set playbin's audio sink.
3345         * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
3346         * platform/graphics/gtk/VideoSinkGStreamer.cpp:
3347         (webkit_video_sink_idle_func): Use C++ casts, decrease reference count of async
3348         queue at the end of the idle function.
3349         (webkit_video_sink_render): Increase reference count of async queue.
3350         (webkit_video_sink_stop): Remove any idle functions with the sink as data.
3351
3352 2009-08-23  Chris Marrin  <cmarrin@apple.com>
3353
3354         Reviewed by Simon Fraser.
3355
3356         Remaining new files for Canvas3D
3357         https://bugs.webkit.org/show_bug.cgi?id=28018
3358
3359         * bindings/js/JSHTMLCanvasElementCustom.cpp: Added Canvas3D method behind an ifdef
3360         * html/canvas/CanvasByteArray.cpp: Added. Efficient array of bytes for passing to GL functions
3361         * html/canvas/CanvasByteArray.h: Added.
3362         * html/canvas/CanvasByteArray.idl: Added.
3363         * html/canvas/CanvasNumberArray.cpp: Added. Efficient array of 32 bit floats for passing to GL functions
3364         * html/canvas/CanvasNumberArray.h: Added.
3365         * html/canvas/CanvasNumberArray.idl: Added.
3366
3367 2009-08-24  Pavel Feldman  <pfeldman@chromium.org>
3368
3369         Reviewed by Timothy Hatcher.
3370
3371         WebInspector: Migrate call frames interaction to the InjectedScript-based schema.
3372
3373         https://bugs.webkit.org/show_bug.cgi?id=28408
3374
3375         * inspector/front-end/CallStackSidebarPane.js:
3376         (WebInspector.CallStackSidebarPane.prototype.update):
3377         * inspector/front-end/ConsoleView.js:
3378         (WebInspector.ConsoleView.prototype.doEvalInWindow):
3379         (WebInspector.ConsoleTextMessage):
3380         * inspector/front-end/DOMAgent.js:
3381         (WebInspector.DOMAgent.prototype.get domWindow):
3382         (InspectorController.openInInspectedWindow):
3383         (InspectorController.getCallFrames):
3384         (InspectorController.evaluateInCallFrame):
3385         * inspector/front-end/ElementsPanel.js:
3386         (WebInspector.ElementsPanel.prototype.reset):
3387         (WebInspector.ElementsPanel.prototype.generateStylesheet):
3388         * inspector/front-end/InjectedScript.js:
3389         (InjectedScript.evaluate):
3390         (InjectedScript._evaluateOn):
3391         (InjectedScript.openInInspectedWindow):
3392         (InjectedScript.getCallFrames):
3393         (InjectedScript.evaluateInCallFrame):
3394         (InjectedScript._callFrameForId):
3395         (InjectedScript._objectForId):
3396         (InjectedScript.CallFrameProxy):
3397         (InjectedScript.CallFrameProxy.prototype._wrapScopeChain):
3398         * inspector/front-end/ObjectPropertiesSection.js:
3399         (WebInspector.ObjectPropertiesSection.prototype._update):
3400         * inspector/front-end/ObjectProxy.js:
3401         (WebInspector.ObjectPropertyProxy):
3402         * inspector/front-end/ResourcesPanel.js:
3403         (WebInspector.ResourceSidebarTreeElement.prototype.ondblclick):
3404         * inspector/front-end/ScopeChainSidebarPane.js:
3405         (WebInspector.ScopeChainSidebarPane):
3406         (WebInspector.ScopeChainSidebarPane.prototype.update):
3407         (WebInspector.ScopeVariableTreeElement.prototype.onattach):
3408         (WebInspector.ScopeVariableTreeElement.prototype.onexpand):
3409         (WebInspector.ScopeVariableTreeElement.prototype.oncollapse):
3410         * inspector/front-end/ScriptsPanel.js:
3411         (WebInspector.ScriptsPanel.prototype.doEvalInCallFrame):
3412         (WebInspector.ScriptsPanel.prototype.variablesInSelectedCallFrame):
3413         (WebInspector.ScriptsPanel.prototype.debuggerPaused.callback):
3414         (WebInspector.ScriptsPanel.prototype.debuggerPaused):
3415
3416 2009-08-24  Kent Tamura  <tkent@chromium.org>
3417
3418         Reviewed by Eric Seidel.
3419
3420         Add support for the placeholder attribute and DOM property of the textarea element.
3421         https://bugs.webkit.org/show_bug.cgi?id=21248
3422
3423         A DOM node for an INPUT element doesn't have a flag for placeholder
3424         visibility anymore.  This patch also fixes a bug that a renderer
3425         doesn't reflect a corresponding DOM value change.
3426
3427         Tests: fast/forms/textarea-placeholder-dom-property.html
3428                fast/forms/textarea-placeholder-pseudo-style.html
3429                fast/forms/textarea-placeholder-set-attribute.html
3430                fast/forms/textarea-placeholder-set-value.html
3431
3432         * css/html.css: Add the default style for placeholder of textarea.
3433         * dom/InputElement.cpp: Cleanup for m_placeholderShouldBeVisible removal
3434         (WebCore::InputElement::dispatchFocusEvent):
3435         (WebCore::InputElement::dispatchBlurEvent):
3436         (WebCore::InputElement::placeholderShouldBeVisible):
3437         (WebCore::InputElement::updatePlaceholderVisibility):
3438         (WebCore::InputElement::setValueFromRenderer):
3439         (WebCore::InputElementData::InputElementData):
3440         * dom/InputElement.h:
3441         * html/HTMLInputElement.cpp:
3442         (WebCore::HTMLInputElement::dispatchFocusEvent):
3443         (WebCore::HTMLInputElement::dispatchBlurEvent):
3444         (WebCore::HTMLInputElement::setValue):
3445         (WebCore::HTMLInputElement::placeholderShouldBeVisible):
3446         * html/HTMLInputElement.h:
3447         (WebCore::HTMLInputElement::updatePlaceholderVisibility):
3448         * html/HTMLTextAreaElement.cpp:
3449         (WebCore::HTMLTextAreaElement::parseMappedAttribute):
3450         (WebCore::HTMLTextAreaElement::setValue):
3451         (WebCore::HTMLTextAreaElement::placeholderShouldBeVisible):
3452         (WebCore::HTMLTextAreaElement::updatePlaceholderVisibility):
3453         (WebCore::HTMLTextAreaElement::dispatchFocusEvent):
3454         (WebCore::HTMLTextAreaElement::dispatchBlurEvent):
3455         * html/HTMLTextAreaElement.h:
3456         * html/HTMLTextAreaElement.idl:
3457         * rendering/RenderTextControl.cpp:
3458         (WebCore::RenderTextControl::RenderTextControl):
3459         (WebCore::RenderTextControl::styleDidChange):
3460         (WebCore::RenderTextControl::setInnerTextStyle):
3461         (WebCore::RenderTextControl::updatePlaceholderVisibility):
3462         * rendering/RenderTextControl.h:
3463         * rendering/RenderTextControlMultiLine.cpp:
3464         (WebCore::RenderTextControlMultiLine::RenderTextControlMultiLine):
3465         (WebCore::RenderTextControlMultiLine::nodeAtPoint):
3466         (WebCore::RenderTextControlMultiLine::updateFromElement):
3467         (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
3468         (WebCore::RenderTextControlMultiLine::textBaseStyle):
3469         * rendering/RenderTextControlMultiLine.h:
3470         * rendering/RenderTextControlSingleLine.cpp:
3471         (WebCore::RenderTextControlSingleLine::RenderTextControlSingleLine):
3472         (WebCore::RenderTextControlSingleLine::textBaseStyle):
3473         (WebCore::RenderTextControlSingleLine::updateFromElement):
3474         (WebCore::RenderTextControlSingleLine::createInnerTextStyle):
3475         * rendering/RenderTextControlSingleLine.h:
3476         * wml/WMLInputElement.cpp:
3477         (WebCore::WMLInputElement::dispatchFocusEvent):
3478         (WebCore::WMLInputElement::dispatchBlurEvent):
3479         (WebCore::WMLInputElement::setValue):
3480         (WebCore::WMLInputElement::placeholderShouldBeVisible):
3481
3482 2009-08-23  Dirk Schulze  <krit@webkit.org>
3483
3484         Reviewed by Mark Rowe.
3485
3486         Code clean-up and build fix for filters enabled builds. Moved SVGNames.h
3487         into #if ENABLE(SVG) for Document.cpp and added SVGNames.h to the other
3488         files. They are needed there after r47688.
3489
3490         * dom/Document.cpp:
3491         * svg/SVGComponentTransferFunctionElement.h:
3492         * svg/SVGFELightElement.h:
3493         * svg/SVGFEMergeNodeElement.h:
3494         * svg/SVGFilterPrimitiveStandardAttributes.h:
3495
3496 2009-08-23  Gustavo Noronha Silva  <gns@gnome.org>
3497
3498         Unreviewed, build fix for make distcheck on GTK+.
3499
3500         * GNUmakefile.am: Added files needed for the build.
3501         * bindings/js/JSDOMWindowCustom.cpp: Protect SharedWorker include
3502         with #if clause.
3503         * bindings/js/JSEventTarget.cpp: Dito.
3504         * dom/Document.cpp: Dito.
3505         * loader/FrameLoader.cpp: Dito.
3506
3507 2009-08-23  Joseph Pecoraro  <joepeck@webkit.org>
3508
3509         Reviewed by Timothy Hatcher.
3510
3511         Inspector: Throws an Error on "null"
3512         https://bugs.webkit.org/show_bug.cgi?id=28665
3513
3514         * inspector/front-end/InjectedScript.js:
3515         (InjectedScript.evaluate):
3516
3517 2009-08-23  Pavel Feldman  <pfeldman@chromium.org>
3518
3519         Reviewed by Timothy Hatcher.
3520
3521         Inspector: REGRESSION Formatting Function in Console is Abbreviated Too Often
3522
3523         https://bugs.webkit.org/show_bug.cgi?id=28666
3524
3525         * inspector/front-end/InjectedScript.js:
3526         (InjectedScript.getProperties):
3527         (InjectedScript.createProxyObject):
3528
3529 2009-08-22  Martin Robinson  <martin.james.robinson@gmail.com>
3530
3531         Reviewed by Xan Lopez.
3532
3533         [GTK] BitmapImage::getGdkPixbuf does not handle alpha channels properly
3534         https://bugs.webkit.org/show_bug.cgi?id=28345
3535
3536         When doing the conversion between cairo_surface_t* and GdkPixbuf*
3537         account for the differences in the respective formats' in-memory
3538         image format.
3539
3540         * platform/graphics/gtk/ImageGtk.cpp:
3541         (WebCore::getCairoSurfacePixel):
3542         (WebCore::getGdkPixbufPixel):
3543         (WebCore::BitmapImage::getGdkPixbuf):
3544
3545 2009-08-22  Darin Adler  <darin@apple.com>
3546
3547         Reviewed by Oliver Hunt.
3548
3549         Make DOM classes start with a reference count of 1, like all other RefCounted
3550         
3551         Next step: Element, HTMLElement, HTMLAnchorElement, HTMLAppletElement,
3552         HTMLAreaElement, HTMLEmbedElement, HTMLFrameElement, HTMLIFrameElement,
3553         HTMLObjectElement, HTMLPlugInElement, HTMLPlugInImageElement.
3554
3555         * DerivedSources.make: Fix error seen every time we build by escaping the $
3556         in the build rule, since you have to use $$ for that in make.
3557
3558         * WebCore.base.exp: Updated.
3559
3560         * bindings/objc/DOM.mm:
3561         Added now-needed include of SVGNames.h.
3562
3563         * dom/Document.cpp: Added now-needed include of SVGNames.h.
3564         (WebCore::Document::createElement): Use create instead of new.
3565
3566         * dom/Element.cpp:
3567         (WebCore::Element::Element): Added ConstructionType argument so the caller
3568         can determine whether this starts with a reference count of either 0 or 1.
3569         Later we will remove this again once they are all 1.
3570         (WebCore::Element::create): Added.
3571
3572         * dom/Element.h: Added create and made constructor protected.
3573
3574         * dom/StyledElement.cpp:
3575         (WebCore::StyledElement::StyledElement): Added ConstructionType argument.
3576         * dom/StyledElement.h: Made many functions protected or private, including
3577         the constructor.
3578
3579         * dom/make_names.pl: Use create to create the base elements HTMLElement,
3580         SVGElement, and WMLElement.
3581
3582         * editing/CreateLinkCommand.cpp:
3583         (WebCore::CreateLinkCommand::doApply): Use create instead of new.
3584         * editing/UnlinkCommand.cpp:
3585         (WebCore::UnlinkCommand::doApply): Ditto.
3586
3587