LayoutTests:
[WebKit-https.git] / WebKit / ChangeLog
1 2006-07-13  David Harrison  <harrison@apple.com>
2
3         Reviewed by Justin and Levi.
4
5         <rdar://problem/4620743> REGRESSION: Option-Delete doesn't delete words during typing
6
7         * Tests:
8         editing/deleting/delete-by-word-001.html
9         editing/deleting/delete-by-word-002.html
10
11         * WebView/WebHTMLView.m:
12         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:granularity:]):
13
14 2006-07-13  Timothy Hatcher  <timothy@apple.com>
15
16         Rolling out this earlier change (r15378) now that it is fixed on AGL's end.
17         Fixes <rdar://problem/4624865> Restore 64-bit OpenGL plug-in support once AGL is 64-bit
18
19         <rdar://problem/4624858> AGL isn't 64-bit yet; temporarily remove it from WebKit 64-bit build
20
21         * Plugins/WebBaseNetscapePluginView.h:
22         * Plugins/WebBaseNetscapePluginView.m:
23
24 2006-07-13  Timothy Hatcher  <timothy@apple.com>
25
26         Reviewed by Darin.
27
28         <rdar://problem/4616920> REGRESSION: tabbing in mail moves focus
29         to next control instead of inserting a tab space.
30
31         Change editible WebView's tabKeyCyclesThroughElements to NO only
32         if the setTabKeyCyclesThroughElements SPI wasn't called.
33
34         * WebView/WebView.m:
35         (-[WebView setEditable:]):
36
37 2006-07-12  Anders Carlsson  <acarlsson@apple.com>
38
39         Reviewed by Darin.
40
41         http://bugzilla.opendarwin.org/show_bug.cgi?id=9624
42         REGRESSION: After ctrl-clicking in a EMPTY input or textarea field, the contextual menu shows "Search in Google" and "Search in Spotlight" as active menu items
43         
44         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
45         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
46         Don't create Dictionary, Spotlight or Google lookup items if there's no selection.
47         
48 2006-07-12  Mark Rowe  <opendarwin.org@bdash.net.nz>
49
50         Reviewed by Timothy.
51
52         http://bugzilla.opendarwin.org/show_bug.cgi?id=9868
53         Applications shown in Drosera's "Attach" window remain after exit
54
55         * DefaultDelegates/WebScriptDebugServer.m:
56         (-[WebScriptDebugServer init]): Register for NSApplicationWillTerminateNotification so we will
57         know when the application is being exited.
58         (-[WebScriptDebugServer dealloc]): Unregister notification before we are deallocated.
59         (-[WebScriptDebugServer applicationTerminating:]): Inform anyone listening that we are going away.
60
61 2006-07-12  Tim Omernick  <timo@apple.com>
62
63         Reviewed by Tim Hatcher.
64
65         <rdar://problem/4624858> AGL isn't 64-bit yet; temporarily remove it from WebKit 64-bit build
66
67         Also, fixed a LOG_ERROR() so that it uses the CGL error instead of the AGL error; Tim H missed this in his build fix
68         from earlier.
69
70         * Plugins/WebBaseNetscapePluginView.h:
71         * Plugins/WebBaseNetscapePluginView.m:
72
73 2006-07-11  John Sullivan  <sullivan@apple.com>
74
75         Reviewed by Kevin and Tim O
76
77         - added support for creating a selection image with white text
78
79         * WebView/WebDocumentPrivate.h:
80         added -selectionImageForcingWhiteText: and -selectionImageRect to the private
81         <WebDocumentSelection> protocol
82
83         * Misc/WebSearchableTextView.m:
84         (-[NSString selectionImageForcingWhiteText:]):
85         added stub for this new method to this obsolete class to satisfy the compiler
86         (-[NSString selectionImageRect]):
87         ditto
88         
89         * WebView/WebHTMLView.m:
90         (-[WebHTMLView _selectionDraggingImage]):
91         now calls -selectionImageForcingWhiteText:NO instead of just -selectionImage
92         (-[WebHTMLView _selectionDraggingRect]):
93         now calls selectionImageRect, to which the implementation moved
94         (-[WebHTMLView selectionImageForcingWhiteText:]):
95         implemented this new method by calling through to new bridge method selectionImageForcingWhiteText:
96         (-[WebHTMLView selectionImageRect]):
97         implemented this new method by using existing _selectionDraggingRect implementation
98         
99         * WebView/WebPDFView.m:
100         (-[WebPDFView selectionImageForcingWhiteText:]):
101         implemented by using code that was formerly in Safari
102         (-[WebPDFView selectionImageRect]):
103         implemented by returning selectionRect
104
105 2006-07-11  Tim Omernick  <timo@apple.com>
106
107         Reviewed by Geoff.
108
109         <http://bugzilla.opendarwin.org/show_bug.cgi?id=9843>:
110         Give Netscape plug-ins access to their own DOM element
111
112         * Plugins/WebBaseNetscapePluginView.h:
113         * Plugins/WebBaseNetscapePluginView.m:
114         (-[WebBaseNetscapePluginView dealloc]):
115         Release DOM element.
116         (-[WebBaseNetscapePluginView getVariable:value:]):
117         Return NPObject for plugin DOM element.
118
119         * Plugins/WebNetscapePluginEmbeddedView.h:
120         * Plugins/WebNetscapePluginEmbeddedView.m:
121         (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:DOMElement:]):
122         Now takes a DOMElement, in much the same way that WebKit plug-in views take a DOMElement.
123
124         * WebCoreSupport/WebFrameBridge.m:
125         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
126         Pass DOMElement to Netscape plug-ins.
127         (-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
128         ditto
129
130 2006-07-11  Justin Garcia  <justin.garcia@apple.com>
131
132         Reviewed by levi & thatcher
133         
134         <http://bugzilla.opendarwin.org/show_bug.cgi?id=9642>
135         GMail Editor: Operations that use drop down menus blow away the selection
136         
137         * WebView/WebHTMLView.m:
138         (-[NSArray maintainsInactiveSelection]): Maintain an inactive selection
139         when resigning as first responder if the selection is editable
140         or if the WebView tells us to.
141         * WebView/WebView.m:
142         (-[WebView maintainsInactiveSelection]): Just because a WebView is
143         editable doesn't mean selections inside subframes will be.  Return
144         NO by default.
145
146 2006-07-11  Tim Omernick  <timo@apple.com>
147
148         Reviewed by Tim Hatcher.
149
150         <rdar://problem/4622748> WebKit now uses deprecated AGL functions
151
152         * Plugins/WebBaseNetscapePluginView.m:
153         (-[WebBaseNetscapePluginView _createWindowedAGLContext]):
154         aglSetDrawable() is deprecated in AGL 3.0.  Use aglSetWindowRef() instead.
155         (-[WebBaseNetscapePluginView _createWindowlessAGLContext]):
156         aglSetOffScreen() is deprecated in AGL 3.0.  Use CGLSetOffScreen(), which does the same thing.
157
158 2006-07-11  Alexey Proskuryakov  <ap@nypop.com>
159
160         Reviewed by Tim O.
161
162         - http://bugzilla.opendarwin.org/show_bug.cgi?id=7808
163         Assertion failure in -[WebBaseNetscapePluginStream dealloc] when requesting an invalid URL
164
165         * Plugins/WebNetscapePluginStream.m:
166         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
167         Remove the early return when requesting an invalid (unsupported) URL.
168
169 === Safari-521.16 ===
170
171 2006-07-10  Mitz Pettel  <opendarwin.org@mitzpettel.com>
172
173         Reviewed by John Sullivan.
174
175         - fix <rdar://problem/4621541>, aka <http://bugzilla.opendarwin.org/show_bug.cgi?id=9838>
176           REGRESSION (r14968-r14977): View Source doesn't work for pages from the back/forward cache
177
178         * WebView/WebDataSource.m:
179         (-[WebDataSource _setPrimaryLoadComplete:]): Set our data only if the frame loader is
180         has just loaded it (when coming from the back/forward cache, it hasn't).
181
182 2006-07-10  Brady Eidson  <beidson@apple.com>
183
184         Reviewed by Alexey
185
186         Resolved the console error messages people got from the new DB even if they didn't have it enabled
187
188         * Misc/WebIconDatabase.m:
189         (-[WebIconDatabase init]):
190         Disabled initializing the IconDatabaseBridge if user is living on the old DB
191
192 2006-07-10  Darin Adler  <darin@apple.com>
193
194         - try to fix Windows build
195
196         * COM/WebFrame.h: Qualify DeprecatedString and KURL with WebCore:: prefixes.
197
198 2006-07-09  Darin Adler  <darin@apple.com>
199
200         - try to fix Windows build
201
202         * COM/WebFrame.cpp: Rename QChar to DeprecatedChar.
203
204 2006-07-09  Darin Adler  <darin@apple.com>
205
206         - fix newlines to be consistent for all files in the COM directory
207           (many had mixed style) and set the EOL style to "native" on them.
208
209         * COM/*: Set properties and changed files.
210
211 2006-07-09  Tim Omernick  <timo@apple.com>
212
213         Reviewed by Maciej.
214
215         <rdar://problem/4404652> Netscape plug-in mouse events broken in HiDPI
216
217         Multiply global mouse coordinates by the window scale factor so that plug-ins can use GlobalToLocal() in HiDPI.
218         This fixes many bugs involving plug-in mouse event handling in HiDPI.  Most notably, the Flash player will now
219         correctly respond to clicks.
220
221         * Plugins/WebBaseNetscapePluginView.m:
222         (+[WebBaseNetscapePluginView getCarbonEvent:]):
223         (-[WebBaseNetscapePluginView getCarbonEvent:withEvent:]):
224
225 2006-07-09  Darin Adler  <darin@apple.com>
226
227         Reviewed by Tim Hatcher.
228
229         - fix assertion firing in plug-in layout tests
230
231         * Plugins/WebBaseNetscapePluginView.m:
232         (-[WebBaseNetscapePluginView restartNullEvents]):
233         Don't start null events if the plug-in is not in the
234         started state. This happens when the plug-in moves within
235         its view hierarchy after it has been stopped.
236
237 2006-07-09  Timothy Hatcher  <timothy@apple.com>
238
239         Reviewed by Darin.
240
241         Bug 9820: Move new DOM API that has been through API review to public headers
242         http://bugzilla.opendarwin.org/show_bug.cgi?id=9820
243
244         * Misc/WebElementDictionary.m: include DOMExtensions.h
245         * Misc/WebNSViewExtras.m: include DOMExtensions.h
246         * WebKit.xcodeproj/project.pbxproj: make DOMXPath.h public
247
248 2006-07-09  Timothy Hatcher  <timothy@apple.com>
249
250         Reviewed by Kevin.
251
252         Bug 9818: move new UIDelegate API that has been through API review to public headers
253         http://bugzilla.opendarwin.org/show_bug.cgi?id=9818
254
255         <rdar://problem/4387541> API: Remove webView:setContentRect: & webViewContentRect: delegate methods?
256         The fix for 4310363 removed the only use of webViewContentRect: in our code. webView:setContentRect:
257         was never used to begin with. There's no harm in leaving these around in the API, but they'll cruft it up.
258
259         Also removes the never used webViewPrint: SPI that was replaced by webView:printFrameView:.
260
261         * DefaultDelegates/WebDefaultUIDelegate.m:
262         * WebCoreSupport/WebFrameBridge.m:
263         (-[WebFrameBridge print]):
264         * WebView/WebFrameView.h:
265         * WebView/WebFrameView.m:
266         * WebView/WebFrameViewPrivate.h:
267         * WebView/WebUIDelegate.h:
268         * WebView/WebUIDelegatePrivate.h:
269
270 2006-07-09  Timothy Hatcher  <timothy@apple.com>
271
272         Reviewed by Darin.
273
274         Bug 9814: Move new WebView API that has been through API review to public headers
275         http://bugzilla.opendarwin.org/show_bug.cgi?id=9814
276
277         * WebView/WebView.h:
278         * WebView/WebView.m:
279         (-[WebView close]):
280         (-[WebView setShouldCloseWithWindow:]):
281         (-[WebView shouldCloseWithWindow]):
282         (-[WebView selectedFrame]):
283         (-[WebView setMainFrameURL:]):
284         (-[WebView mainFrameURL]):
285         (-[WebView isLoading]):
286         (-[WebView mainFrameTitle]):
287         (-[WebView mainFrameIcon]):
288         (-[WebView mainFrameDocument]):
289         (-[WebView setDrawsBackground:]):
290         (-[WebView drawsBackground]):
291         (-[WebView toggleSmartInsertDelete:]):
292         (-[WebView toggleContinuousSpellChecking:]):
293         (-[WebView canMakeTextStandardSize]):
294         (-[WebView makeTextStandardSize:]):
295         (-[WebView maintainsInactiveSelection]):
296         * WebView/WebViewPrivate.h:
297
298 2006-07-09  Timothy Hatcher  <timothy@apple.com>
299
300         Reviewed by Maciej.
301
302         Bug 9487: The XPath section should be removed and/or moved.
303         http://bugzilla.opendarwin.org/show_bug.cgi?id=9487
304
305         * WebInspector/webInspector/inspector.css:
306         * WebInspector/webInspector/inspector.html:
307         * WebInspector/webInspector/inspector.js:
308
309 2006-07-09  Anders Carlsson  <acarlsson@apple.com>
310
311         Reviewed by Tim O.
312
313         * WebCoreSupport/WebSystemInterface.m:
314         (InitWebCoreSystemInterface):
315         Initialize wkPathFromFont.
316
317 2006-07-09  Darin Adler  <darin@apple.com>
318
319         - fix release build
320
321         * Plugins/WebBaseNetscapePluginView.m:
322         (-[WebBaseNetscapePluginView restorePortState:]): Cast inside the assertion so
323         that we don't have an unused variable in versions with assertions disabled.
324         The alternative would be to wrap the whole thing in an #if statement.
325
326 2006-07-08  Tim Omernick  <timo@apple.com>
327
328         Reviewed by John Sullivan.
329
330         * Plugins/WebBaseNetscapePluginView.h:
331         - Added ivars for OpenGL support.  Someday it would be nice to refactor this class so
332           that each drawing model is encapsulated in a class; this would allow
333           WebBaseNetscapePluginView to make more efficient use of space, for example by not
334           keeping OpenGL-related ivars for Quickdraw plug-ins.
335         
336         * Plugins/WebBaseNetscapePluginView.m:
337         - Declared a bunch of internal methods for OpenGL support (see below).
338         - Removed "forUpdate" from CoreGraphics port state struct; it was always set to "YES",
339           so I just cleaned up the silly code that used it.
340         - Declared OpenGL port state struct.
341         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
342         - Moved a CoreGraphics-related assertion down to the big "switch" statement.
343         - Don't set window.type here -- according to the Netscape Plug-in API docs, the plug-in
344           should default to "windowed" mode, and may call NPN_SetValue() during its NPN_New() to
345           request that the browser use a "windowless" (offscreen) context instead.
346         - Moved the assertion from the top of this method here; removed a less restrictive
347           assertion that is now obsolete.
348         - Removed "forUpdate" flag from CoreGraphics port state struct.
349         - Fill in OpenGL port state struct.  Set up the viewport appropriately for both windowed
350           and windowless OpenGL plug-ins.  Windowed plug-ins need to have their GL viewport
351           transformed by the amount the plug-in is clipped; windowless plug-ins are drawn off-screen
352           into a surface whose geometry is never changed or clipped, so they may always draw with
353           a viewport origin of (0, 0).
354         (-[WebBaseNetscapePluginView restorePortState:]):
355         - Removed "forUpdate" flag from CoreGraphics port state struct.
356         - Restore the old OpenGL context saved by -saveAndSetNewPortStateForUpdate:.
357         (-[WebBaseNetscapePluginView sendEvent:]):
358         - Updated an assertion to also include OpenGL.  To ensure that attached plug-in window movements
359           happen atomically with web page redisplays, we assert that the plug-in's window is set only while
360           the plug-in view is redrawing.
361         - Same deal as with the assertion; only save/set port state when redrawing the plug-in view.  Plug-ins
362           that use the new drawing models are only allowed to draw when the web page draws.  I might consider
363           changing this for windowed OpenGL plug-ins, since they always obscure the page content anyway.
364         (-[WebBaseNetscapePluginView isNewWindowEqualToOldWindow]):
365         - Compare new NP_GLContext structs.
366         (-[WebBaseNetscapePluginView updateAndSetWindow]):
367         - In OpenGL mode, can only set window when updating plug-in view.
368         (-[WebBaseNetscapePluginView setWindowIfNecessary]):
369         - ditto
370         - Updated logging for OpenGL drawing mode.
371         (-[WebBaseNetscapePluginView addWindowObservers]):
372         - No need to observe frame/bounds change notifications for this and all parent views.  See -renewGState
373           comments below.
374         (-[WebBaseNetscapePluginView removeWindowObservers]):
375         - Don't need to remove frame/bounds observers anymore.
376         (-[WebBaseNetscapePluginView start]):
377         - Plug-ins are "windowed" by default.  This is not a change from our previous behavior, but this is a
378           better place to set the default value as it allows the plug-in to override it later.
379         (-[WebBaseNetscapePluginView stop]):
380         - Destroy AGL context when the plug-in stops.
381         (-[WebBaseNetscapePluginView dealloc]):
382         - Assert that the AGL stuff has been cleaned up.
383         (-[WebBaseNetscapePluginView drawRect:]):
384         - If this is a windowless OpenGL plugin, blit its contents back into this view.
385         (-[WebBaseNetscapePluginView renewGState]):
386         - This method is called when the view or one of its parents is moved or resized (see comments).
387         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]):
388         - Hide the AGL window if the plug-in view is about to be removed from its window.
389         (-[WebBaseNetscapePluginView viewHasMoved:]):
390         - Renamed and moved to the "Internal" category.
391         (-[WebBaseNetscapePluginView invalidateRegion:]):
392         - Style changes.
393         - Add support for OpenGL (uses the same region type as CoreGraphics).
394         (-[WebBaseNetscapePluginView getVariable:value:]):
395         - Style changes.
396         - Implemented NPNVsupportsOpenGLBool; returns YES since we now support the OpenGL drawing model.
397         (-[WebBaseNetscapePluginView setVariable:value:]):
398         - Implemented NPPVpluginWindowBool, which allows plug-ins to specify whether they should be rendered in
399           "windowed" or "windowless" mode.  This is an older part of the Netscape Plug-in API that was never
400           implemented in WebKit.  "Windowed" Quickdraw plug-ins do not actually reside in a separate window, and
401           can already do many of the same things (such as transparency) that only "windowless" plug-ins can do on
402           other platforms.  However, we need the "windowed" vs. "windowless" distinction for OpenGL plug-ins so
403           that they have some way of specifying whether they should be rendered on an accelerated overlay surface,
404           composited into the browser window.
405         - Support for setting the drawing model to OpenGL.
406         (-[WebBaseNetscapePluginView _viewHasMoved]):
407         - Renamed from -viewHasMoved:, and moved down in the file.
408         - None of this work is necessary when the plug-in is not in a window; the plug-in's state will be properly
409           restored when it is moved back into a window.
410         - Reshape OpenGL surface window here.
411         (-[WebBaseNetscapePluginView _createAGLContextIfNeeded]):
412         - Creates the AGL context of the appropriate type (windowed/windowless).
413         (-[WebBaseNetscapePluginView _createWindowedAGLContext]):
414         - Creates a windowed AGL context, which is an AGL context attached to a child window.  This is the only way
415           to get true hardware acceleration.
416         (-[WebBaseNetscapePluginView _createWindowlessAGLContext]):
417         - Creates a windowless AGL context, which is an AGL context attached to an offscreen buffer.  This buffer can
418           then be blitted back into the browser window with a different alpha, or scaled, or whatever.
419         (-[WebBaseNetscapePluginView _cglContext]):
420         - Returns the underlying CGL context from the AGL context.  We give the plug-in access to the CGL context because
421           CGL is the more primitive of the GL drawable APIs and allows for finer control over the context.
422         (-[WebBaseNetscapePluginView _getAGLOffscreenBuffer:width:height:]):
423         - Returns the buffer allocated for the offscreen AGL context, if there is one.
424         (-[WebBaseNetscapePluginView _destroyAGLContext]):
425         - Destroys the AGL context, as well as the associated offscreen buffer or child window.
426         (-[WebBaseNetscapePluginView _reshapeAGLWindow]):
427         - Positions the AGL window over the browser window.
428         (-[WebBaseNetscapePluginView _hideAGLWindow]):
429         - Hides the AGL window.
430         (-[WebBaseNetscapePluginView _aglOffscreenImageForDrawingInRect:]):
431         - Returns an NSImage representation of the offscreen AGL context's framebuffer.  This is used to draw the offscreen
432           bits back into the plug-in view.  This is kind of tricky because it has to convert the offscreen buffer in-place
433           from BGRA to RGBA so that it can be wrapped in an NSBitmapImageRep.  See comments.
434
435         * WebKit.xcodeproj/project.pbxproj:
436         Link OpenGL and AGL.
437
438 2006-07-09  Brady Eidson  <beidson@apple.com>
439
440         Reviewed by Maciej
441
442         The ICONDEBUG flag now chooses either the new icon database or the old one
443         No longer any need to live side by side to compare results
444
445         * Misc/WebIconDatabase.m:
446         (-[NSMutableDictionary iconURLForURL:]):
447         (-[NSMutableDictionary retainIconForURL:]):
448         (-[NSMutableDictionary releaseIconForURL:]):
449         (-[WebIconDatabase _setHaveNoIconForIconURL:]):
450         (-[WebIconDatabase _setIconURL:forURL:]):
451         (-[WebIconDatabase _resetCachedWebPreferences:]):
452
453 2006-07-08  Timothy Hatcher  <timothy@apple.com>
454
455         Reviewed by Maciej.
456
457         Bug 5312: comments aren't available via DOM
458         http://bugzilla.opendarwin.org/show_bug.cgi?id=5312
459
460         Makes the Web Inspector show comment node contents.
461
462         * WebInspector/WebInspector.m:
463         (-[DOMNode _displayName]): return the contents of the comment
464         * WebInspector/webInspector/inspector.js: check for comment nodes
465
466 2006-07-09  Alexey Proskuryakov  <ap@nypop.com>
467
468         Reviewed by Darin.
469
470         - http://bugzilla.opendarwin.org/show_bug.cgi?id=9572
471         Add application/xhtml+xml to the Accept header
472
473         * WebView/WebFrame.m:
474         (-[WebFrame _addExtraFieldsToRequest:mainResource:alwaysFromRequest:]): Add an Accept header
475         to main resource requests.
476         * English.lproj/StringsNotToBeLocalized.txt: Added new strings.
477
478 2006-07-08  Darin Adler  <darin@apple.com>
479
480         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
481         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
482         Removed misleading old comment.
483
484 === Safari-521.15 ===
485
486 2006-07-07  Levi Weintraub  <lweintraub@apple.com>
487
488         Reviewed by justin
489
490         Finished moving deletion selection expansion across the bridge... say that 3 times fast.
491
492         * WebView/WebHTMLView.m:  Pass granularity to WebCore to handle expansion
493         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:granularity:]):
494         (-[WebHTMLView _deleteSelection]):
495         (-[NSArray _deleteWithDirection:granularity:killRing:isTypingAction:]):
496         (-[NSArray deleteToMark:]):
497
498 2006-07-07  Brady Eidson  <beidson@apple.com>
499
500         Reviewed by John
501
502         Changed an ASSERT to a LOG_ERROR for an error that could be handled gracefully, but
503         whose assertion was reproducibly causing a build bot failure
504
505         * Misc/WebIconDatabase.m:
506         (-[WebIconDatabase _releaseIconForIconURLString:]):
507
508 2006-07-06  Levi Weintraub  <lweintraub@apple.com>
509
510         Reviewed by justin
511
512         Improved table editing
513
514         * WebCoreSupport/WebFrameBridge.m: Added method to allow WebCore to trigger
515         deletion editing delegate
516         (-[WebFrameBridge shouldDeleteSelectedDOMRange:]):
517         * WebView/WebHTMLView.m: Moved code that expanded a selection when the delete
518         key is pressed over to WebCore so we can be more intelligent about how to handle it
519         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]):
520         (-[NSArray _deleteWithDirection:granularity:killRing:isTypingAction:]):
521
522 2006-07-07  John Sullivan  <sullivan@apple.com>
523
524         Reviewed by Tim Hatcher
525         
526         - fixed <rdar://problem/4606857> WebKit: WebPreferencesChangedNotification not exported
527
528         * WebKit.exp:
529         added surprisingly missing _WebPreferencesChangedNotification, defined in
530         WebPreferences.h
531
532 2006-07-06  Brady Eidson  <beidson@apple.com>
533
534         Reviewed by John.
535
536         Small fix to my previous small fix that only lets the ASSERT off the hook if the DB
537         is closing
538
539         * Misc/WebIconDatabase.m:
540         (-[WebIconDatabase _releaseIconForIconURLString:]):
541
542 2006-07-05  Brady Eidson  <beidson@apple.com>
543
544         Reviewed by Maciej
545
546         Small fix that prevents an assertion from triggering if the DB is being cleaned up 
547         (ie, the app being shut down)
548
549         * Misc/WebIconDatabase.h:
550         * Misc/WebIconDatabase.m:
551         (-[NSMutableDictionary init]):
552         (-[WebIconDatabase _applicationWillTerminate:]):
553         (-[WebIconDatabase _releaseIconForIconURLString:]):
554
555 2006-07-05  Adele Peterson  <adele@apple.com>
556
557         Reviewed by Maciej and Hyatt.
558
559         WebKit part of initial popup menu implementation.
560
561         * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface):
562         Initialize WKPopupMenu.
563
564 2006-07-05  Anders Carlsson  <acarlsson@apple.com>
565
566         Reviewed by Maciej.
567
568         http://bugzilla.opendarwin.org/show_bug.cgi?id=3581
569         iFrames set to display:none are Missing from frames array
570         
571         * WebCoreSupport/WebFrameBridge.m:
572         (-[WebFrameBridge initSubframeWithOwnerElement:frameName:view:]):
573         (-[WebFrameBridge createChildFrameNamed:withURL:referrer:ownerElement:allowsScrolling:marginWidth:marginHeight:]):
574         Modify to pass the owner element instead of the owner renderer.
575         
576         * WebView/WebHTMLView.m:
577         (-[WebHTMLView _topHTMLView]):
578         Remove assertion, it's not valid anymore.
579
580 2006-07-05  Timothy Hatcher  <timothy@apple.com>
581
582         Reviewed by Harrison.
583
584         <rdar://problem/4608423> HIViewAdapter used but not defined
585         Adds a new export file to fix the build.
586
587         * WebKit.LP64.exp: Added.
588         * WebKit.xcodeproj/project.pbxproj:
589
590 2006-07-04  Timothy Hatcher  <timothy@apple.com>
591
592         Reviewed by Maciej.
593
594         Bug 9731: [Drosera] crash when trying to access the scope chain
595         http://bugzilla.opendarwin.org/show_bug.cgi?id=9731
596
597         Because of <rdar://problem/4608404> the WebScriptObject, _globalObj, that
598         WebCoreScriptDebugger holds is unprotected each time the page changes.
599         This causes Drosera to crash Safari when trying to access the scope chain.
600         We simply need to detach and re-attach the debugger when the window script
601         object is cleared until 4608404 is fixed. This change also attaches the
602         debugger before we call the windowScriptObjectAvailable: delegate method,
603         so the debugger is ready before anyone might use the window object.
604
605         * WebCoreSupport/WebFrameBridge.m:
606         (-[WebFrameBridge windowObjectCleared]):
607
608 2006-07-04  Timothy Hatcher  <timothy@apple.com>
609
610         Reviewed by Darin.
611
612         Bug 9732: [Drosera] calling removeListener to many times will cause
613                   WebKit's listener count to underflow/wraparound
614         http://bugzilla.opendarwin.org/show_bug.cgi?id=9732
615
616         Adds a check to make sure the listener was in our listeners set before
617         decrementing the global listener count. Also checks for nil in addListner
618         to prevent a possible exception when adding the object to the set.
619
620         * DefaultDelegates/WebScriptDebugServer.m:
621         (-[WebScriptDebugServer addListener:]):
622         (-[WebScriptDebugServer removeListener:]):
623
624 2006-07-04  Alexey Proskuryakov  <ap@nypop.com>
625
626         Reviewed by Maciej.
627
628         - http://bugzilla.opendarwin.org/show_bug.cgi?id=8210
629         Conditional XMLHttpRequest gets should pass 304 responses unchanged
630
631         Test: http/tests/xmlhttprequest/cache-override.html
632
633         * Misc/WebNSURLRequestExtras.h: Added _web_isConditionalRequest
634         * Misc/WebNSURLRequestExtras.m:
635         (-[NSURLRequest _web_isConditionalRequest]):
636         * WebCoreSupport/WebFrameBridge.m:
637         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
638         Bypass the cache for conditional requests.
639         * WebCoreSupport/WebSubresourceLoader.m:
640         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): Ditto.
641
642 2006-07-01  David Kilzer  <ddkilzer@kilzer.net>
643
644         Reviewed by NOBODY (fixed Tim's build fix).
645
646         * WebView/WebView.m: Added back missing '/' at the beginning of the file.
647
648 2006-07-01  Tim Omernick  <timo@apple.com>
649
650         Reviewed by NOBODY (build fix)
651
652         * WebView/WebView.m:
653         (-[WebView _isMIMETypeRegisteredAsPlugin:]):
654         Changed nil to NO (typo).
655
656 === Safari-521.14 ===
657
658 2006-06-30  Timothy Hatcher  <timothy@apple.com>
659
660         Reviewed by Darin.
661
662         Only enable shouldCloseWithWindow when ObjC GC is enabled.
663         This maintains backwards compatibility with applications
664         that expect a WebView to be usable after the window closes.
665
666         * WebView/WebView.m:
667         (-[WebViewPrivate init]):
668
669 2006-06-30  Timothy Hatcher  <timothy@apple.com>
670
671         Reviewed by Anders.
672
673         Call _close in dealloc to ensure we cleanup for backwards
674         compatibility. This will safeguard and cleanup even if the
675         application doesn't use the new close API yet, like Mail.
676
677         * WebView/WebView.m:
678         (-[WebView dealloc]):
679
680 2006-06-29  Timothy Hatcher  <timothy@apple.com>
681
682         Reviewed by Darin.
683
684         <rdar://problem/4484405> WebKit leaks, improper tear-down
685         <rdar://problem/3694059> -[WebBackForwardList finalize] is incorrect; design change needed
686         <rdar://problem/3694103> -[WebFrame finalize] is incorrect; design change needed
687         <rdar://problem/3694104> -[WebHTMLView finalize] is incorrect; design change needed
688
689         Adds a close method to WebView, this needs to be called when the 
690         WebView is no longer needed. To make this easier for the common cases
691         there is now an "auto close" on WebView that listens to the view's
692         parent window. If the parent window closes and the WebView has no
693         hostWindow then the WebView is automatically closed if autoClose is YES.
694         To manage WebView closing yourself call setAutoClose: and pass NO.
695
696         When a WebView closes it will tear-down and not be usable anymore.
697         Close will will called on various other internal objects as a part
698         of this, to ensure proper tear-down in GC without relying on finalize.
699
700         * History/WebBackForwardList.m:
701         (-[WebBackForwardList dealloc]):
702         (-[WebBackForwardList finalize]):
703         (-[WebBackForwardList _close]):
704         * History/WebHistoryItem.m:
705         (+[WebHistoryItem _closeObjectsInPendingPageCaches]):
706         (+[WebHistoryItem _releaseAllPendingPageCaches]):
707         * History/WebHistoryItemPrivate.h:
708         * WebCoreSupport/WebFrameBridge.m:
709         (-[WebFrameBridge close]):
710         (-[WebFrameBridge saveDocumentToPageCache:]):
711         (-[WebFrameBridge canGoBackOrForward:]):
712         * WebView/WebFrame.m:
713         (-[WebFrame _detachFromParent]):
714         (-[WebFrame dealloc]):
715         (-[WebFrame finalize]):
716         * WebView/WebFrameView.m:
717         (-[WebFrameView _setWebFrame:]):
718         (-[WebFrameView finalize]):
719         * WebView/WebHTMLView.m:
720         (-[WebHTMLView close]):
721         (-[NSArray dealloc]):
722         (-[NSArray finalize]):
723         * WebView/WebHTMLViewInternal.h:
724         * WebView/WebHTMLViewPrivate.h:
725         * WebView/WebScriptDebugDelegate.m:
726         (-[WebScriptCallFrame _initWithFrame:initWithWebFrame:]):
727         (-[WebScriptCallFrame parsedSource:fromURL:sourceId:startLine:errorLine:errorMessage:]):
728         (-[WebScriptCallFrame enteredFrame:sourceId:line:]):
729         (-[WebScriptCallFrame hitStatement:sourceId:line:]):
730         (-[WebScriptCallFrame leavingFrame:sourceId:line:]):
731         * WebView/WebScriptDebugDelegatePrivate.h:
732         * WebView/WebView.m:
733         (-[WebViewPrivate init]):
734         (-[WebView _close]):
735         (-[WebView dealloc]):
736         (-[WebView finalize]):
737         (-[WebView viewWillMoveToWindow:]):
738         (-[WebView _windowWillClose:]):
739         (-[WebView setPreferencesIdentifier:]):
740         (-[WebView mainFrame]):
741         (-[WebView setHostWindow:]):
742         (-[WebView searchFor:direction:caseSensitive:wrap:]):
743         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]):
744         (-[WebView close]):
745         (-[WebView setAutoClose:]):
746         (-[WebView autoClose]):
747         (-[WebView _frameViewAtWindowPoint:]):
748         * WebView/WebViewPrivate.h:
749
750 2006-06-29  Kevin Decker  <kdecker@apple.com>
751
752         Reviewed by mjs and timo.
753         
754         Fixed: <rdar://problem/4609119> handleAuthenticationFromResource was removed; needed by the Dashboard
755
756         * WebView/WebViewPrivate.h: Added handleAuthenticationFromResource back into the header. Needed by the
757         Dashboard, but was removed in r.14028 on 2006-04-23. 
758
759 2006-06-29  Tim Omernick  <timo@apple.com>
760
761         Reviewed by Kevin Decker.
762
763         <rdar://problem/4608487> REGRESSION: reproducible crash in +[WebCoreFrameBridge supportedImageMIMETypes]
764
765         * Plugins/WebPluginDatabase.m:
766         (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
767         One might be tempted to add additionalWebPlugInPaths to the global WebPluginDatabase here.
768         For backward compatibility with earlier versions of the +setAdditionalWebPlugInPaths: SPI,
769         we need to save a copy of the additional paths and not cause a refresh of the plugin DB
770         at this time.
771         (-[WebPluginDatabase _plugInPaths]):
772         Include additionalWebPlugInPaths if this is the global DB.
773         (-[WebPluginDatabase refresh]):
774         Call -_plugInPaths to get the modified array of paths.  This is similar to what the old code
775         (before we had per-WebView plugin search paths).
776
777 2006-06-29  Tim Omernick  <timo@apple.com>
778
779         Reviewed by John Sullivan.
780
781         WebHistoryItem now supports getting and setting arbitrary properties via _transientPropertyForKey: and
782         -_setTransientProperty:forKey:.
783         For now, these properties do not persist with the rest of the history data.  They are intended to hold transient
784         per-history-item state, which is something that was until now difficult for a WebKit client app to do.
785         
786         * History/WebHistoryItemPrivate.h:
787         * History/WebHistoryItem.m:
788         (-[WebHistoryItemPrivate dealloc]):
789         (-[WebHistoryItem _transientPropertyForKey:]):
790         (-[WebHistoryItem _setTransientProperty:forKey:]):
791
792 2006-06-29  Timothy Hatcher  <timothy@apple.com>
793
794         Reviewed by Harrison.
795
796         Smart insert and delete, continuous spell checking and autoscroll
797         can now be used for any WebView, not just editable ones. All of
798         these make sense for documents that might contain content editable 
799         areas or our new text fields. Autoscroll is usefull for dragging
800         for file input controls also.
801
802         Added a SPI to toggle WebViews tab key behavior, tabKeyCyclesThroughElements.
803         WebHTMLView's _interceptEditingKeyEvent now uses WebView's
804         tabKeyCyclesThroughElements state to determine whether or not
805         to process tab key events. The idea here is that tabKeyCyclesThroughElements
806         will be YES when this WebView is being used in a browser, and we
807         desire the behavior where tab moves to the next element in tab order.
808         If tabKeyCyclesThroughElements is NO, it is likely that the WebView
809         is being embedded as the whole view, as in Mail, and tabs should input
810         tabs as expected in a text editor. Using Option-Tab always cycles
811         through elements.
812
813         * WebView/WebHTMLRepresentation.m:
814         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):
815         * WebView/WebHTMLView.m:
816         (-[NSArray _interceptEditingKeyEvent:]):
817         * WebView/WebView.m:
818         (-[WebViewPrivate init]):
819         (-[WebView _autoscrollForDraggingInfo:timeDelta:]):
820         (-[WebView _shouldAutoscrollForDraggingInfo:]):
821         (-[WebView validateUserInterfaceItem:]):
822         (-[WebView toggleSmartInsertDelete:]):
823         (-[WebView toggleContinuousSpellChecking:]):
824         (-[WebView setTabKeyCyclesThroughElements:]):
825         (-[WebView tabKeyCyclesThroughElements]):
826         * WebView/WebViewPrivate.h:
827
828 2006-06-29  Anders Carlsson  <acarlsson@apple.com>
829
830         Reviewed by Tim O.
831
832         * WebKit.xcodeproj/project.pbxproj:
833         Add DOMXPath.h header.
834
835 2006-06-28  David Hyatt  <hyatt@apple.com>
836
837         Fix custom highlighting so that you can paint the entire line (and go
838         outside the bounds of the line).
839
840         Reviewed by harrison
841
842         * WebCoreSupport/WebFrameBridge.m:
843         (-[WebFrameBridge customHighlightRect:forLine:]):
844         (-[WebFrameBridge paintCustomHighlight:forBox:onLine:behindText:entireLine:]):
845         * WebKit.xcodeproj/project.pbxproj:
846         * WebView/WebHTMLViewPrivate.h:
847
848 2006-06-28  Maciej Stachowiak  <mjs@apple.com>
849
850         Reviewed by Anders.
851         
852         - fix Frame leak on layout tests
853
854         * WebCoreSupport/WebPageBridge.m:
855         (-[WebPageBridge outerView]): Return WebFrameView for main frame instead
856         of WebView to avoid reference cycle between WebView and Page.
857
858 2006-06-28  Timothy Hatcher  <timothy@apple.com>
859
860         Prefer the Stabs debugging symbols format until DWARF bugs are fixed.
861
862         * WebKit.xcodeproj/project.pbxproj:
863
864 2006-06-28  Levi Weintraub  <lweintraub@apple.com>
865
866         Reviewed by justin
867
868         http://bugzilla.opendarwin.org/show_bug.cgi?id=7568
869         Bug 7568: Implement Indent/Outdent
870         Added undo action strings and enum values
871
872         * English.lproj/Localizable.strings:
873         * WebCoreSupport/WebFrameBridge.m: 
874         (-[WebFrameBridge nameForUndoAction:]):
875
876 2006-06-27  Brady Eidson  <beidson@apple.com>
877
878         Reviewed by Maciej
879
880         Hookup the new semi-functional SQLite icon database.
881         For now, it is living side-by-side with the old DB so one can compare the
882         two for debugging purposes.  Also, it is disabled (in WebKit) by default unless you
883         compile with ICONDEBUG #defined.
884         Note:  To repeat that, if you want to try the new DB, #define ICONDEBUG (WebKitPrefix.h is a good place to do it)
885
886         * Misc/WebIconDatabase.m:
887         (-[NSMutableDictionary iconForURL:withSize:cache:]):
888         (-[NSMutableDictionary iconURLForURL:]):
889         (-[NSMutableDictionary retainIconForURL:]):
890         (-[NSMutableDictionary releaseIconForURL:]):
891         (-[WebIconDatabase _setHaveNoIconForIconURL:]):
892         (-[WebIconDatabase _setIconURL:forURL:]):
893         (-[WebIconDatabase _hasIconForIconURL:]):
894         (-[WebIconDatabase _resetCachedWebPreferences:]):
895         * Misc/WebIconLoader.m:
896         (-[WebIconLoader didFinishLoading]):
897         * WebKit.xcodeproj/project.pbxproj:
898
899 2006-06-26  David Hyatt  <hyatt@apple.com>
900
901         Fix for 9538, support syntax highlighting for HTML source.
902
903         Reviewed by darin
904
905         * WebKit.xcodeproj/project.pbxproj:
906         * WebView/WebView.m:
907         (-[WebView _setInViewSourceMode:]):
908         (-[WebView _inViewSourceMode]):
909         * WebView/WebViewPrivate.h:
910
911 2006-06-25  Timothy Hatcher  <timothy@apple.com>
912
913         Reviewed by Darin.
914
915         Bug 9574: Drosera should show inline scripts within the original HTML
916         http://bugzilla.opendarwin.org/show_bug.cgi?id=9574
917
918         * Adds a new version of the didParseSource delegate callback with base line number.
919         * Adds a new delegate callback for when a script fails to parse.
920         * These new callbacks use NSURLs for the url parameter.
921         * Adds a new script listener callback to notify when the main resource loads.
922         * Adds a WebScriptErrorDomian and other keys for use with NSError.
923
924         * DefaultDelegates/WebDefaultScriptDebugDelegate.m:
925         (-[WebDefaultScriptDebugDelegate webView:didParseSource:baseLineNumber:fromURL:sourceId:forWebFrame:]):
926         (-[WebDefaultScriptDebugDelegate webView:failedToParseSource:baseLineNumber:fromURL:withError:forWebFrame:]):
927         * DefaultDelegates/WebScriptDebugServer.h:
928         * DefaultDelegates/WebScriptDebugServer.m:
929         (-[WebScriptDebugServer webView:didLoadMainResourceForDataSource:]):
930         (-[WebScriptDebugServer webView:didParseSource:baseLineNumber:fromURL:sourceId:forWebFrame:]):
931         (-[WebScriptDebugServer webView:failedToParseSource:baseLineNumber:fromURL:withError:forWebFrame:]):
932         * DefaultDelegates/WebScriptDebugServerPrivate.h:
933         * WebKit.exp:
934         * WebView/WebDataSource.m:
935         (-[WebDataSource _setPrimaryLoadComplete:]):
936         * WebView/WebScriptDebugDelegate.h:
937         * WebView/WebScriptDebugDelegate.m:
938         (-[WebScriptCallFrame parsedSource:fromURL:sourceId:startLine:errorLine:errorMessage:]):
939
940 2006-06-24  David Kilzer  <ddkilzer@kilzer.net>
941
942         Reviewed by Timothy.
943
944         * Info.plist: Fixed copyright to include 2003-2006.
945
946 2006-06-24  Alexey Proskuryakov  <ap@nypop.com>
947
948         Reviewed by Darin.
949
950         - http://bugzilla.opendarwin.org/show_bug.cgi?id=9418
951         WebKit will not build when Space exists in path
952
953         * WebKit.xcodeproj/project.pbxproj: Enclose search paths in quotes.
954
955 2006-06-23  Tim Omernick  <timo@apple.com>
956
957         Reviewed by John Sullivan.
958
959         * Plugins/WebBaseNetscapePluginView.m:
960         (-[WebBaseNetscapePluginView sendEvent:]):
961         Fixed a bug I found in the CoreGraphics drawing model that was preventing certain types of
962         events from being dispatched to the plugin, unless the plugin was being updated.  The check
963         for portState was only required to call -setWindowIfNecessary, not required for the entire
964         event dispatch.
965         Also, don't paint the green debug rect unless this is a QuickDraw plugin.  Otherwise the
966         current QD port is not set, and the green rect fills the entire screen.  Pretty awesome
967         looking, but not intended behavior.
968         (-[WebBaseNetscapePluginView setWindowIfNecessary]):
969         Improved the logging here to include the NPWindow's width and height.
970
971 2006-06-23  Timothy Hatcher  <timothy@apple.com>
972
973         Reviewed by Tim O.
974
975         Adds back SPI that Mail is still depending on.
976
977         * WebView/WebDataSource.m:
978         (-[WebDataSource _addSubframeArchives:]):
979         * WebView/WebDataSourcePrivate.h:
980
981 === WebKit-521.13 ===
982
983 2006-06-23  Timothy Hatcher  <timothy@apple.com>
984
985         Reviewed by Geoff.
986
987         script debugger should only attach to JavaScriptCore when there are listeners
988         http://bugzilla.opendarwin.org/show_bug.cgi?id=9552
989
990         Attaches the debugger to all WebFrames when the first listener
991         is added. Detaches when the last listener is removed.
992         Also detach when the script debug delegate is set to nil.
993
994         * DefaultDelegates/WebScriptDebugServer.m:
995         (+[WebScriptDebugServer listenerCount]):
996         (-[WebScriptDebugServer dealloc]):
997         (-[WebScriptDebugServer attachScriptDebuggerToAllWebViews]):
998         (-[WebScriptDebugServer detachScriptDebuggerFromAllWebViews]):
999         (-[WebScriptDebugServer listenerConnectionDidDie:]):
1000         (-[WebScriptDebugServer addListener:]):
1001         (-[WebScriptDebugServer removeListener:]):
1002         * DefaultDelegates/WebScriptDebugServerPrivate.h:
1003         * WebCoreSupport/WebFrameBridge.m:
1004         (-[WebFrameBridge windowObjectCleared]):
1005         * WebView/WebFrame.m:
1006         (-[WebFrame _attachScriptDebugger]):
1007         (-[WebFrame _detachScriptDebugger]):
1008         * WebView/WebFramePrivate.h:
1009         * WebView/WebScriptDebugDelegate.m:
1010         (-[WebScriptCallFrame parsedSource:fromURL:sourceId:]):
1011         (-[WebScriptCallFrame enteredFrame:sourceId:line:]):
1012         (-[WebScriptCallFrame hitStatement:sourceId:line:]):
1013         (-[WebScriptCallFrame leavingFrame:sourceId:line:]):
1014         * WebView/WebView.m:
1015         (-[WebView _attachScriptDebuggerToAllFrames]):
1016         (-[WebView _detachScriptDebuggerFromAllFrames]):
1017         (-[WebView setScriptDebugDelegate:]):
1018         * WebView/WebViewPrivate.h:
1019
1020 2006-06-22  John Sullivan  <sullivan@apple.com>
1021
1022         Reviewed by Tim Omernick
1023         
1024         - added support for UIDelegate to be notified of scrolling in any WebHTMLView
1025         - cleaned up recently-added UIDelegate code
1026
1027         * WebView/WebUIDelegatePrivate.h:
1028         declared webView:didScrollDocumentInFrameView: method
1029
1030         * DefaultDelegates/WebDefaultUIDelegate.m:
1031         (-[NSApplication webView:didDrawRect:]):
1032         provide default (empty) implementation of this recently-added method, so the
1033         DelegateForwarder mechanism will work for it
1034         (-[NSApplication webView:didScrollDocumentInFrameView:]):
1035         same thing for the new method
1036         
1037         * WebView/WebHTMLView.m:
1038         (-[WebHTMLView _frameOrBoundsChanged]):
1039         use _UIDelegateForwarder mechanism to notify delegate that scrolling occurred
1040         (-[NSArray drawSingleRect:]):
1041         use _UIDelegateForwarder mechanism instead of checking respondsToSelector stuff
1042         here (that's packaged up nicely by the forwarder mechanism)
1043         
1044 2006-06-22  Tim Omernick  <timo@apple.com>
1045
1046         Reviewed by NOBODY (build fix)
1047
1048         * WebView/WebFrameLoader.m:
1049         Import WebMainResourceLoader instead of using @class so that we can call WebMainResourceLoader
1050         methods.
1051         
1052 2006-06-22  Tim Omernick  <timo@apple.com>
1053
1054         Reviewed by NOBODY (build fix)
1055
1056         * WebView/WebFrameLoader.m:
1057         Import JavaScriptCore/Assertions.h instead of WebKit/WebAssertions.h (which no longer exists)
1058
1059 2006-06-22  Maciej Stachowiak  <mjs@apple.com>
1060
1061         Reviewed by Adele.
1062         
1063         - start moving loading logic to new WebFrameLoader class; move management of WebLoaders there
1064
1065         * Misc/WebIconLoader.h:
1066         * Misc/WebIconLoader.m:
1067         (-[WebIconLoader didFinishLoading]):
1068         * WebKit.xcodeproj/project.pbxproj:
1069         * WebView/WebDataSource.m:
1070         (-[WebDataSourcePrivate dealloc]):
1071         (-[WebDataSource _updateLoading]):
1072         (-[WebDataSource _loadIcon]):
1073         (-[WebDataSource _setPrimaryLoadComplete:]):
1074         (-[WebDataSource _stopLoading]):
1075         (-[WebDataSource _startLoading]):
1076         (-[WebDataSource _addSubresourceLoader:]):
1077         (-[WebDataSource _removeSubresourceLoader:]):
1078         (-[WebDataSource _addPlugInStreamLoader:]):
1079         (-[WebDataSource _removePlugInStreamLoader:]):
1080         (-[WebDataSource _iconLoaderReceivedPageIcon:]):
1081         (-[WebDataSource _defersCallbacksChanged]):
1082         (-[WebDataSource _stopLoadingWithError:]):
1083         (-[WebDataSource _setupForReplaceByMIMEType:]):
1084         (-[WebDataSource initWithRequest:]):
1085         (-[WebDataSource dealloc]):
1086         (-[WebDataSource finalize]):
1087         (-[WebDataSource data]):
1088         (-[WebDataSource isLoading]):
1089         * WebView/WebFrameLoader.h: Added.
1090         * WebView/WebFrameLoader.m: Added.
1091         (-[WebFrameLoader initWithDataSource:]):
1092         (-[WebFrameLoader dealloc]):
1093         (-[WebFrameLoader hasIconLoader]):
1094         (-[WebFrameLoader loadIconWithRequest:]):
1095         (-[WebFrameLoader stopLoadingIcon]):
1096         (-[WebFrameLoader addPlugInStreamLoader:]):
1097         (-[WebFrameLoader removePlugInStreamLoader:]):
1098         (-[WebFrameLoader setDefersCallbacks:]):
1099         (-[WebFrameLoader stopLoadingPlugIns]):
1100         (-[WebFrameLoader isLoadingMainResource]):
1101         (-[WebFrameLoader isLoadingSubresources]):
1102         (-[WebFrameLoader isLoading]):
1103         (-[WebFrameLoader stopLoadingSubresources]):
1104         (-[WebFrameLoader addSubresourceLoader:]):
1105         (-[WebFrameLoader removeSubresourceLoader:]):
1106         (-[WebFrameLoader mainResourceData]):
1107         (-[WebFrameLoader releaseMainResourceLoader]):
1108         (-[WebFrameLoader cancelMainResourceLoad]):
1109         (-[WebFrameLoader startLoadingMainResourceWithRequest:identifier:]):
1110         (-[WebFrameLoader stopLoadingWithError:]):
1111
1112 2006-06-21  Brady Eidson  <beidson@apple.com>
1113
1114         Reviewed by Maciej
1115
1116         The WebCoreIconDatabaseBridge was getting messages sent to it after it had been closed, resulting in a crash
1117         on an ASSERT().  After closing the databaseBridge, we simply set it to nil so this can't happen.
1118         anymore.
1119
1120         * Misc/WebIconDatabase.m:
1121         (-[WebIconDatabase _applicationWillTerminate:]):
1122
1123 2006-06-21  Tim Omernick  <timo@apple.com>
1124
1125         Reviewed by Geoff Garen.
1126
1127         <rdar://problem/4564131> WebPluginDatabase setAdditionalWebPlugInPaths needs to be per WebView
1128
1129         Added some WebView SPI so that individual WebViews may have different plugin search paths.  There are some 
1130         limitations with the approach taken here:
1131
1132         - JavaScript may only access the global plugin DB.
1133         - When this SPI is in use, certain WebView methods may not give accurate results, such as +canShowMIMEType:.
1134         - This only works for plugins referenced using the <object> or <embed> tags; plugins that reside in non-standard
1135         file system locations may not be loaded directly into frames.
1136         
1137         None of these issues are important to the client that needs this SPI.  Rather than re-architect our entire
1138         plugin database, I think it is better to simply accept these limitations for now.
1139
1140         * Plugins/WebPluginDatabase.h:
1141         Added "plugInPaths" ivar, so different plugin databases can have different search paths.
1142         * Plugins/WebPluginDatabase.m:
1143         (+[WebPluginDatabase installedPlugins]):
1144         Give the global plugin database the default plugin search paths.
1145         (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
1146         Removed static global; this method now sets the plugin paths on the global plugin database.
1147         (-[WebPluginDatabase setPlugInPaths:]):
1148         Setter method for plugin paths.
1149         (-[WebPluginDatabase close]):
1150         New method; called when the plugin database is no longer needed (when its WebView is being destroyed).
1151         (-[WebPluginDatabase init]):
1152         Don't refresh in -init, so that callers can set the DB's plugin path array before it refreshes.
1153         (-[WebPluginDatabase dealloc]):
1154         Moved here from near the bottom of the file.  Release new ivar.
1155         (-[WebPluginDatabase refresh]):
1156         Use the plugInPaths ivar instead of calling pluginLocations().
1157         Notify plugin packages when they are added to and removed from a plugin database.  A plugin package will
1158         unload itself when it is removed from all of its plugin databases.
1159         The only really tricky thing here is that the global MIME <-> view class registrations are only modified
1160         by the shared plugin DB.
1161         (+[WebPluginDatabase _defaultPlugInPaths]):
1162         Refactored from the old pluginLocations() function; returns the default set of plugin search paths.
1163
1164         * Plugins/WebBasePluginPackage.h:
1165         * Plugins/WebBasePluginPackage.m:
1166         (-[WebBasePluginPackage dealloc]):
1167         Assert that this package has been removed from all of its containing plugin databases.
1168         (-[WebBasePluginPackage finalize]):
1169         ditto
1170         (-[WebBasePluginPackage wasAddedToPluginDatabase:]):
1171         Add plugin database to set.
1172         (-[WebBasePluginPackage wasRemovedFromPluginDatabase:]):
1173         Remove plugin database from set.  If it was the last DB, then unload the plugin package.
1174
1175         * WebView/WebViewInternal.h:
1176         Added instance methods to find the view class or plugin package, given a MIME type or file extension.
1177         * WebView/WebViewPrivate.h:
1178         Added SPI to set plugin search paths per WebView.
1179         * WebView/WebView.m:
1180         (-[WebView _viewClass:andRepresentationClass:forMIMEType:]):
1181         New method; tries the global MIME <-> view map first; failing that, it checks the WebView's plugin DB.
1182         (-[WebView _close]):
1183         Close the plugin DB.
1184         (-[WebView _setAdditionalWebPlugInPaths:]):
1185         Create the plugin DB if necessary, and set its plugin paths.
1186         (-[WebView _pluginForMIMEType:]):
1187         Checks global plugin DB, falls back on WebView DB.
1188         (-[WebView _pluginForExtension:]):
1189         ditto
1190         (-[WebView _isMIMETypeRegisteredAsPlugin:]):
1191         ditto
1192
1193         * WebCoreSupport/WebFrameBridge.m:
1194         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
1195         Use new WebView instance methods to look for plugins.
1196         (-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
1197         ditto
1198         (-[WebFrameBridge determineObjectFromMIMEType:URL:]):
1199         ditto
1200
1201 2006-06-20  Brady Eidson  <beidson@apple.com>
1202
1203         Reviewed by Maciej
1204
1205         Added calls through to the WebCoreIconDatabaseBridge for all the major WebIconDatabase API.  For now these calls
1206         are wrapped with #ifdef's and are for debugging only.
1207
1208         * Misc/WebIconDatabase.h:
1209         * Misc/WebIconDatabase.m:
1210         (-[NSMutableDictionary _scaleIcon:toSize:]):
1211         (-[NSMutableDictionary init]):
1212         (-[NSMutableDictionary iconForURL:withSize:cache:]):
1213         (-[NSMutableDictionary iconURLForURL:]):
1214         (-[NSMutableDictionary retainIconForURL:]):
1215         (-[NSMutableDictionary releaseIconForURL:]):
1216         (-[WebIconDatabase _setHaveNoIconForIconURL:]):
1217         (-[WebIconDatabase _setIconURL:forURL:]):
1218         (-[WebIconDatabase _hasIconForIconURL:]):
1219         * Misc/WebIconLoader.m:
1220         (-[WebIconLoader didFinishLoading]):
1221
1222         * Misc/WebKitLogging.h:  Added a logging channel for WebIconDatabase debugging
1223         * Misc/WebKitLogging.m:
1224         (WebKitInitializeLoggingChannelsIfNecessary):
1225
1226 2006-06-20  Adele Peterson  <adele@apple.com>
1227
1228         Reviewed by Tim Hatcher.
1229
1230         * WebView/WebMainResourceLoader.m: Added missing header to fix build on Leopard.
1231
1232 2006-06-20  Timothy Hatcher  <timothy@apple.com>
1233
1234         Reviewed by Darin.
1235
1236         Removes the @try/@catch from the callbacks to improve performance,
1237         simply check if the proxy object's connection is still valid first.
1238         Listener objects are now required to be NSDistantObjects.
1239
1240         Adds pause, resume and step support. The debugger process use to handle this,
1241         but it caused problems when there were multiple listeners.
1242
1243         Sends the bundle identifier in the notification userInfo dictionary along with
1244         process name and process ID.
1245
1246         * DefaultDelegates/WebScriptDebugServer.h:
1247         * DefaultDelegates/WebScriptDebugServer.m:
1248         (-[WebScriptDebugServer serverQuery:]):
1249         (-[WebScriptDebugServer addListener:]):
1250         (-[WebScriptDebugServer removeListener:]):
1251         (-[WebScriptDebugServer step]):
1252         (-[WebScriptDebugServer pause]):
1253         (-[WebScriptDebugServer resume]):
1254         (-[WebScriptDebugServer isPaused]):
1255         (-[WebScriptDebugServer suspendProcessIfPaused]):
1256         (-[WebScriptDebugServer webView:didParseSource:fromURL:sourceId:forWebFrame:]):
1257         (-[WebScriptDebugServer webView:didEnterCallFrame:sourceId:line:forWebFrame:]):
1258         (-[WebScriptDebugServer webView:willExecuteStatement:sourceId:line:forWebFrame:]):
1259         (-[WebScriptDebugServer webView:willLeaveCallFrame:sourceId:line:forWebFrame:]):
1260         * DefaultDelegates/WebScriptDebugServerPrivate.h:
1261         * WebKit.exp:
1262
1263 2006-06-19  Alexey Proskuryakov  <ap@nypop.com>
1264
1265         Reviewed by Darin.
1266
1267         - http://bugzilla.opendarwin.org/show_bug.cgi?id=5499
1268         Page reload does not send any cache control headers
1269
1270         * WebView/WebFrame.m:
1271         (-[WebFrame _addExtraFieldsToRequest:mainResource:alwaysFromRequest:]): Set a proper Cache-Control header for 
1272         reload requests.
1273         (-[WebFrame loadRequest:]): Reset loadType to WebFrameLoadTypeStandard (after a reload, it stayed at 
1274         WebFrameLoadTypeReload, so _addExtraFieldsToRequest erroneously added a Cache-Control header to them).
1275
1276 2006-06-19  John Sullivan  <sullivan@apple.com>
1277
1278         Reviewed by Darin.
1279         
1280         - added mechanism to notify UIDelegate when part of the webview is redrawn. For now, it only
1281           works for HTML views.
1282
1283         * WebView/WebUIDelegatePrivate.h:
1284         Define a new UIDelegate method -webView:didDrawRect:
1285         * WebView/WebHTMLView.m:
1286         (-[WebView drawSingleRect:]):
1287         Call through to UIDelegate if it implements that method. I tested that this does not impact PLT numbers
1288         in the case where the delegate implements the method but does nothing in it.
1289
1290 2006-06-19  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1291
1292         Reviewed by Maciej.
1293
1294         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9452
1295           Assertion failure in -[WebFramePrivate setProvisionalDataSource:]
1296
1297         * WebView/WebFrame.m:
1298         (-[WebFrame _checkLoadCompleteForThisFrame]): Avoid re-entering the delegate's
1299         -[webView:didFailProvisionalLoadWithError:forFrame].
1300
1301 2006-06-18  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1302
1303         Reviewed by xenon.
1304
1305         - http://bugzilla.opendarwin.org/show_bug.cgi?id=9479
1306           Disassociate the inspector from the frame when it detaches from its parent
1307
1308         * WebInspector/WebInspector.m:
1309         (-[NSWindow setWebFrame:]): Added code to (de)register with the WebFrame
1310         the inspector is (no longer) targeting.
1311         (-[WebInspector _webFrameDetached:]): Added. Moved the code that was previously
1312         in -[inspectedWindowWillClose:] here. This is called by the WebFrame when it
1313         is detached from its parent.
1314         * WebInspector/WebInspectorInternal.h:
1315         * WebView/WebFrame.m:
1316         (-[WebFramePrivate dealloc]):
1317         (-[WebFrame _detachFromParent]): Added code to notify all registered inspectors
1318         that the WebFrame is detaching.
1319         (-[WebFrame _addInspector:]): Added.
1320         (-[WebFrame _removeInspector:]): Added.
1321         * WebView/WebFrameInternal.h:
1322
1323 2006-06-18  Anders Carlsson  <acarlsson@apple.com>
1324
1325         Reviewed by Geoff.
1326
1327         * WebCoreSupport/WebFrameBridge.m:
1328         (-[WebFrameBridge shouldInterruptJavaScript]):
1329         Ask the UI delegate if the script should be interrupted.
1330         
1331         * WebView/WebUIDelegatePrivate.h:
1332         Declare webViewShouldInterruptJavaScript: delegate method
1333
1334 2006-06-17  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1335
1336         Reviewed by Darin.
1337
1338         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=9466
1339           Assertion failure when dragging an image from the document into Safari's address bar
1340
1341         * WebView/WebFrameView.m:
1342         (-[WebFrameView _setDocumentView:]): Reset the WebView's initiatedDrag flag
1343         when the document view is changed.
1344         * WebView/WebHTMLView.m:
1345         (-[WebHTMLView draggedImage:endedAt:operation:]): Changed the ASSERT to allow
1346         for drags that end after the view has been removed from the WebView.
1347
1348 2006-06-16  Timothy Hatcher  <timothy@apple.com>
1349
1350         Reviewed by Tim O.
1351
1352         Exposes a distributed objects server for clients to register for script debugger calls.
1353         For preformance concerns this is disabled by default, you will need to enable this per application.
1354         To enable for Safari do this: defaults write com.apple.Safari WebKitScriptDebuggerEnabled -bool true
1355
1356         Clients will need to listen to the following distributed notification to discover servers:
1357         WebScriptDebugServerDidLoadNotification
1358
1359         To discover servers that previously loaded before the client, the client needs to send the following notification:
1360         WebScriptDebugServerQueryNotification
1361
1362         All servers will reply with the WebScriptDebugServerQueryReplyNotification notification that contains the
1363         registered server connection name to use with distributed objects.
1364
1365         * DefaultDelegates/WebScriptDebugServer.h: Added.
1366         * DefaultDelegates/WebScriptDebugServer.m: Added.
1367         (+[WebScriptDebugServer sharedScriptDebugServer]):
1368         (-[WebScriptDebugServer init]):
1369         (-[WebScriptDebugServer dealloc]):
1370         (-[WebScriptDebugServer serverQuery:]):
1371         (-[WebScriptDebugServer listenerConnectionDidDie:]):
1372         (-[WebScriptDebugServer addListener:]):
1373         (-[WebScriptDebugServer removeListener:]):
1374         (-[WebScriptDebugServer webView:didParseSource:fromURL:sourceId:forWebFrame:]):
1375         (-[WebScriptDebugServer webView:didEnterCallFrame:sourceId:line:forWebFrame:]):
1376         (-[WebScriptDebugServer webView:willExecuteStatement:sourceId:line:forWebFrame:]):
1377         (-[WebScriptDebugServer webView:willLeaveCallFrame:sourceId:line:forWebFrame:]):
1378         * DefaultDelegates/WebScriptDebugServerPrivate.h: Added.
1379         * WebCoreSupport/WebFrameBridge.m:
1380         (-[WebFrameBridge windowObjectCleared]):
1381         * WebKit.exp:
1382         * WebKit.xcodeproj/project.pbxproj:
1383         * WebView/WebScriptDebugDelegate.m:
1384         (-[WebScriptCallFrame parsedSource:fromURL:sourceId:]):
1385         (-[WebScriptCallFrame enteredFrame:sourceId:line:]):
1386         (-[WebScriptCallFrame hitStatement:sourceId:line:]):
1387         (-[WebScriptCallFrame leavingFrame:sourceId:line:]):
1388         * WebView/WebView.m:
1389         (+[WebView _developerExtrasEnabled]):
1390         (+[WebView _scriptDebuggerEnabled]):
1391         (-[WebView _menuForElement:defaultItems:]):
1392         (-[WebView _commonInitializationWithFrameName:groupName:]):
1393         * WebView/WebViewPrivate.h:
1394
1395 2006-06-16  Adele Peterson  <adele@apple.com>
1396
1397         Reviewed by Alice.
1398
1399         Added initialization for WKDrawBezeledTextArea.
1400
1401         * WebCoreSupport/WebSystemInterface.m:
1402         (InitWebCoreSystemInterface):
1403
1404 2006-06-15  Timothy Hatcher  <timothy@apple.com>
1405
1406         Reviewed by Geoff and Darin.
1407         
1408         Prefer the DWARF debugging symbols format for use in Xcode 2.3.
1409
1410         * WebKit.xcodeproj/project.pbxproj:
1411
1412 2006-06-15  John Sullivan  <sullivan@apple.com>
1413
1414         Reviewed by Tim O.
1415         
1416         Fixed bug in WebKit support for computing but not highlighting rects for text matches.
1417
1418         * WebView/WebView.m:
1419         (-[WebView rectsForTextMatches]):
1420         leave out empty rects, and convert rects to WebView coordinates. Since this makes a batch
1421         of autoreleased NSValue objects, use a local autorelease pool
1422
1423 2006-02-11  David Kilzer  <ddkilzer@kilzer.net>
1424
1425         Reviewed by John Sullivan.
1426
1427         * Plugins/WebPluginController.m:
1428         (-[WebPluginController _cancelOutstandingChecks]):
1429         add nil check before calling CFSetApplyFunction
1430
1431 2006-06-14  Levi Weintraub  <lweintraub@apple.com>
1432
1433         Reviewed by justin
1434         
1435         <http://bugzilla.opendarwin.org/show_bug.cgi?id=7580>
1436         TinyMCE: Implement execCommand(formatBlock, ...)
1437         
1438         * English.lproj/Localizable.strings:
1439         * WebCoreSupport/WebFrameBridge.m:
1440         (-[WebFrameBridge nameForUndoAction:]):
1441
1442 2006-06-14  Tim Omernick  <timo@apple.com>
1443
1444         Reviewed by John Sullivan.
1445
1446         <rdar://problem/4577988> GC: WebPluginController uses inefficient resurrecting enumeration
1447
1448         * Plugins/WebPluginController.m:
1449         (cancelOutstandingCheck):
1450         (-[WebPluginController _cancelOutstandingChecks]):
1451         Use CFSetApplyFunction() instead of an enumerator to guard against modifications to the set while enumerating.
1452
1453 2006-06-13  John Sullivan  <sullivan@apple.com>
1454
1455         Reviewed by Tim O.
1456         
1457         - fixed <rdar://problem/4498606> REGRESSION (417.8-420+): 3 missing items (but extra separators) in context 
1458         menu in Mail message body
1459
1460         * WebView/WebView.m:
1461         (-[WebView _menuForElement:defaultItems:]):
1462         Add special-case hackery to recover from this SPI -> API mismatch.
1463
1464 2006-06-13  Tim Omernick  <timo@apple.com>
1465
1466         Reviewed by Anders.
1467
1468         Fixed a recently-introduced assertion failure when handling 404 errors.
1469
1470         * WebView/WebDataSource.m:
1471         (-[WebDataSource _handleFallbackContent]):
1472         Use the -[WebFrame _bridge] instead of -[WebDataSource _bridge].  The former is not valid until the data
1473         source has been committed, which is not the case when the resource fails to load.  The latter is safe to call
1474         at any time.  This broke last night with Maciej's change to WebFrameResourceLoader.  The old code used to
1475         call -[WebFrame _bridge].
1476
1477 2006-06-13  Anders Carlsson  <acarlsson@apple.com>
1478
1479         Reviewed by Geoff.
1480
1481         http://bugzilla.opendarwin.org/show_bug.cgi?id=9406
1482         REGRESSION: fix for bug 9390 broke two layout tests
1483
1484         * Plugins/WebPluginDatabase.h:
1485         (-[WebPluginDatabase isMIMETypeRegistered:]):
1486         Add new function isMIMETypeRegistered which returns whether a given MIME type has a 
1487         plugin registered. 
1488
1489         * Plugins/WebPluginDatabase.m:
1490         (-[WebPluginDatabase init]):        
1491         Init set of registered MIME types.
1492         
1493         (-[WebPluginDatabase refresh]):
1494         Add and remove MIME types from the set of registered MIME types when registering and unregistering
1495         plugin MIME types.
1496         
1497         (-[WebPluginDatabase dealloc]):
1498         Release set of registered MIME types.
1499         
1500         * WebCoreSupport/WebFrameBridge.m:
1501         (-[WebFrameBridge determineObjectFromMIMEType:URL:]):
1502         Use isMIMETypeRegistered here.
1503
1504 2006-06-12  Maciej Stachowiak  <mjs@apple.com>
1505
1506         - fix for cocoa exception (whoops)
1507
1508         * WebView/WebView.m:
1509         (+[WebView _generatedMIMETypeForURLScheme:]): put this back
1510         * WebView/WebDataSource.m:
1511         (+[WebDataSource _generatedMIMETypeForURLScheme:]): call WebView
1512
1513 2006-06-12  Maciej Stachowiak  <mjs@apple.com>
1514
1515         Reviewed by Darin.
1516         
1517         - remove use of WebView and related from WebMainResourceLoader
1518
1519         * WebKit.xcodeproj/project.pbxproj:
1520         * WebView/WebDataSource.m:
1521         (+[WebDataSource _generatedMIMETypeForURLScheme:]):
1522         (+[WebDataSource _representationExistsForURLScheme:]):
1523         (+[WebDataSource _canShowMIMEType:]):
1524         (-[WebDataSource _handleFallbackContent]):
1525         (-[WebDataSource _decidePolicyForMIMEType:decisionListener:]):
1526         * WebView/WebDataSourceInternal.h:
1527         * WebView/WebFrame.m:
1528         (-[WebFrame _isMainFrame]):
1529         * WebView/WebFrameInternal.h:
1530         * WebView/WebMainResourceLoader.m:
1531         (-[WebMainResourceLoader willSendRequest:redirectResponse:]):
1532         (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
1533         (-[WebMainResourceLoader checkContentPolicyForResponse:]):
1534         (-[WebMainResourceLoader loadWithRequestNow:]):
1535         * WebView/WebView.m:
1536
1537 2006-06-12  Tim Omernick  <timo@apple.com>
1538
1539         Reviewed by Maciej.
1540
1541         <rdar://problem/4526052> intermittent assertion failure in -[WebBasePluginPackage dealloc] running layout tests
1542
1543         * Plugins/WebNetscapePluginPackage.m:
1544         (-[WebNetscapePluginPackage _initWithPath:]):
1545         Renamed from -initWithPath:.  Instead of releasing/deallocating self on error, return NO.
1546         (-[WebNetscapePluginPackage initWithPath:]):
1547         Call the new -_initWithPath:.  If it returns NO, unload the plugin package before deallocating it.
1548
1549 2006-06-11  Darin Adler  <darin@apple.com>
1550
1551         - try to fix Windows build
1552
1553         * COM/WebKitDLL.cpp: (loadResourceIntoArray): Use Vector<char> instead of
1554         DeprecatedByteArray.
1555
1556 2006-06-11  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1557
1558         Reviewed by Tim H.
1559
1560         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8672
1561           Red outline from web inspector reappears after inspector is closed
1562
1563         * WebInspector/WebInspector.m:
1564         (-[NSWindow windowWillClose:]): Added a call to setWebFrame to avoid further
1565         load progress notifications.
1566         (-[NSWindow setWebFrame:]): Changed to resign the WebView's hostWindow rather
1567         than its window for close notifications, to avoid resigning from all windows' close
1568         notifications (including the inspector window's) when the WebView is in a hidden tab.
1569         Also changed to prevent highlighting the initial focused node.
1570
1571 2006-06-11  Anders Carlsson  <acarlsson@apple.com>
1572
1573         Reviewed by Tim.
1574
1575         http://bugzilla.opendarwin.org/show_bug.cgi?id=9390
1576         Move full-frame plugins to WebCore
1577
1578         * Plugins/WebBaseNetscapePluginStream.h:
1579         * Plugins/WebBaseNetscapePluginStream.m:
1580         (-[WebBaseNetscapePluginStream instance]):
1581         Add instance method which returns the plugin instance.
1582         
1583         * Plugins/WebBasePluginPackage.h:
1584         Add WebPluginManualLoader protocol
1585         
1586         * Plugins/WebNetscapePluginDocumentView.h: Removed.
1587         * Plugins/WebNetscapePluginDocumentView.m: Removed.
1588
1589         * Plugins/WebNetscapePluginEmbeddedView.h:
1590         * Plugins/WebNetscapePluginEmbeddedView.m:
1591         (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:loadManually:]):
1592         (-[WebNetscapePluginEmbeddedView dealloc]):
1593         (-[WebNetscapePluginEmbeddedView didStart]):
1594         (-[WebNetscapePluginEmbeddedView pluginView:receivedResponse:]):
1595         (-[WebNetscapePluginEmbeddedView pluginView:receivedData:]):
1596         (-[WebNetscapePluginEmbeddedView pluginView:receivedError:]):
1597         (-[WebNetscapePluginEmbeddedView pluginViewFinishedLoading:]):
1598         (-[WebNetscapePluginEmbeddedView redeliverStream]):
1599         Make WebNetscapePluginEmbeddedView support the WebPluginManualLoader protocol. It creates a plugin stream and feeds the
1600         data manually. Much of this code has been copied from WebNetscapePluginRepresentation.
1601
1602         * Plugins/WebNetscapePluginRepresentation.h: Removed.
1603         * Plugins/WebNetscapePluginRepresentation.m: Removed.
1604
1605         * Plugins/WebPluginController.h:
1606         * Plugins/WebPluginController.m:
1607         (-[WebPluginController pluginView:receivedResponse:]):
1608         (-[WebPluginController pluginView:receivedData:]):
1609         (-[WebPluginController pluginView:receivedError:]):
1610         (-[WebPluginController pluginViewFinishedLoading:]):
1611         Make WebPluginController support the WebPluginManualLoader protocol so it can feed data manually to WebKit plugins.
1612
1613         * Plugins/WebPluginDatabase.m:        
1614         (-[WebPluginDatabase refresh]):
1615         Use WebHTMLView and WebHTMLRepresentation when registering/unregistering plug-in MIME types.
1616         
1617         * Plugins/WebPluginDocumentView.h: Removed.
1618         * Plugins/WebPluginDocumentView.m: Removed.
1619
1620         * WebCoreSupport/WebFrameBridge.m:
1621         (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:DOMElement:loadManually:]):
1622         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:loadManually:]):
1623         Add loadManually argument.
1624         
1625         (-[WebFrameBridge redirectDataToPlugin:]):
1626         Call down to the HTML representation.
1627         
1628         (-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
1629         Pass NO to loadManually.
1630         
1631         (-[WebFrameBridge determineObjectFromMIMEType:URL:]):
1632         Explicitly check if the MIME type is supported by a plug-in instead of checking the view class.
1633         
1634         * WebCoreSupport/WebViewFactory.m:
1635         (-[WebViewFactory pluginSupportsMIMEType:]):
1636         New function which returns whether any plugins support a given MIME type.
1637         
1638         * WebKit.xcodeproj/project.pbxproj:
1639         Update for removed files.
1640         
1641         * WebView/WebFrame.m:
1642         (-[WebFrame _reloadForPluginChanges]):
1643         Remove view type checks.
1644         
1645         (-[WebFrame _recursive_pauseNullEventsForAllNetscapePlugins]):
1646         (-[WebFrame _recursive_resumeNullEventsForAllNetscapePlugins]):
1647         Remove FIXME comments.
1648         
1649         * WebView/WebHTMLRepresentation.m:
1650         (-[WebHTMLRepresentation _redirectDataToManualLoader:forPluginView:]):        
1651         New function which redirects incoming data to a manual loader.
1652         
1653         (-[WebHTMLRepresentation receivedData:withDataSource:]):
1654         (-[WebHTMLRepresentation receivedError:withDataSource:]):
1655         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):
1656         Optionally redirect incoming data.
1657         
1658         * WebView/WebHTMLRepresentationPrivate.h:
1659
1660 2006-06-09  John Sullivan  <sullivan@apple.com>
1661
1662         Reviewed by Tim Omernick and Dave Hyatt.
1663
1664         WebKit support for computing but not highlighting rects for text matches.
1665
1666         * WebView/WebHTMLViewPrivate.h:
1667         added markedTextMatchesAreHighlighted/setMarkedTextMatchesAreHighlighted and
1668         rectsForTextMatches, and renamed related methods for clarity/consistency
1669         * WebView/WebHTMLView.m:
1670         (-[WebHTMLView markAllMatchesForText:caseSensitive:]):
1671         renamed, calls similarly-renamed method
1672         (-[WebHTMLView setMarkedTextMatchesAreHighlighted:]):
1673         new method, calls through to bridge
1674         (-[WebHTMLView markedTextMatchesAreHighlighted]):
1675         ditto
1676         (-[WebHTMLView unmarkAllTextMatches]):
1677         renamed
1678         (-[WebHTMLView rectsForTextMatches]):
1679         new method, calls through to bridge
1680
1681         * WebView/WebViewPrivate.h:
1682         added rectsForTextMatches, renamed other methods (and added highlight: parameter)
1683         * WebView/WebView.m:
1684         (-[WebView markAllMatchesForText:caseSensitive:highlight:]):
1685         renamed for clarity/consistency, and now has highlight: parameter, which is passed down
1686         (-[WebView unmarkAllTextMatches]):
1687         renamed for clarity/consistency, and calls similarly-renamed method lower down. diff got
1688         confused with the end of this and the end of the next method.
1689         (-[WebView rectsForTextMatches]):
1690         new method, calls through to WebHTMLView as related methods currently do
1691
1692 2006-06-10  Graham Dennis  <Graham.Dennis@gmail.com>
1693
1694         <http://bugzilla.opendarwin.org/show_bug.cgi?id=9384>
1695         WebView's initWithCoder: method does not set useBackForwardList
1696         correctly
1697         
1698         Reviewed by John Sullivan.
1699
1700         * WebView/WebView.m:
1701         (-[WebView initWithCoder:]):
1702         Make sure that the function variable useBackForwardList is correctly
1703         set, so that the copy in the _private ivar is set.
1704
1705 2006-06-09  David Hyatt  <hyatt@apple.com>
1706
1707         Rename updateFocusState to updateActiveState.
1708
1709         * WebView/WebHTMLView.m:
1710         (-[WebHTMLView _updateActiveState]):
1711         (-[NSArray viewDidMoveToWindow]):
1712         (-[NSArray windowDidBecomeKey:]):
1713         (-[NSArray windowDidResignKey:]):
1714         (-[NSArray becomeFirstResponder]):
1715         (-[NSArray resignFirstResponder]):
1716         (-[WebHTMLView _formControlIsBecomingFirstResponder:]):
1717         (-[WebHTMLView _formControlIsResigningFirstResponder:]):
1718         * WebView/WebHTMLViewPrivate.h:
1719
1720 2006-06-09  David Hyatt  <hyatt@apple.com>
1721
1722         Rename displaysWithFocusAttributes to isActive.
1723
1724         Reviewed by sfalken
1725
1726         * WebKit.xcodeproj/project.pbxproj:
1727         * WebView/WebHTMLView.m:
1728         (-[WebHTMLView _updateFocusState]):
1729
1730 2006-06-08  Justin Garcia  <justin.garcia@apple.com>
1731
1732         Reviewed by levi
1733         
1734         <http://bugzilla.opendarwin.org/show_bug.cgi?id=4468>
1735         Implement execCommand(Insert{Un}OrderedList)
1736
1737         * WebView/WebFrame.m:
1738         (-[WebFrame _findFrameWithSelection]): Removed an assertion
1739         that we only have one frame with a selection.  
1740         * WebView/WebView.m:
1741         (-[WebView selectedFrame]): Ditto.
1742
1743 2006-06-08  Timothy Hatcher  <timothy@apple.com>
1744
1745         Reviewed by Darin and John.
1746
1747         <rdar://problem/3600734> API: please add a way to turn vertical scrollbar
1748         always on (for Mail, to avoid reflow when typing)
1749
1750         Adds new methods to lock the scrolling mode on WebDynamicScrollBarsView.
1751         Locking the scroll mode prevents WebCore from changing it as needed.
1752         Also adds an SPI on WebView that will lock the "always on" mode
1753         for each scroller.
1754
1755         * WebKit.xcodeproj/project.pbxproj:
1756         * WebView/WebDynamicScrollBarsView.h:
1757         * WebView/WebDynamicScrollBarsView.m:
1758         (-[WebDynamicScrollBarsView setAllowsScrolling:]):
1759         (-[WebDynamicScrollBarsView allowsScrolling]):
1760         (-[WebDynamicScrollBarsView setAllowsHorizontalScrolling:]):
1761         (-[WebDynamicScrollBarsView setAllowsVerticalScrolling:]):
1762         (-[WebDynamicScrollBarsView setHorizontalScrollingMode:]):
1763         (-[WebDynamicScrollBarsView setVerticalScrollingMode:]):
1764         (-[WebDynamicScrollBarsView setScrollingMode:]):
1765         (-[WebDynamicScrollBarsView setHorizontalScrollingModeLocked:]):
1766         (-[WebDynamicScrollBarsView setVerticalScrollingModeLocked:]):
1767         (-[WebDynamicScrollBarsView setScrollingModesLocked:]):
1768         (-[WebDynamicScrollBarsView horizontalScrollingModeLocked]):
1769         (-[WebDynamicScrollBarsView verticalScrollingModeLocked]):
1770         * WebView/WebView.m:
1771         (-[WebView setAlwaysShowVerticalScroller:]):
1772         (-[WebView alwaysShowVerticalScroller]):
1773         (-[WebView setAlwaysShowHorizontalScroller:]):
1774         (-[WebView alwaysShowHorizontalScroller]):
1775         * WebView/WebViewPrivate.h:
1776
1777 2006-06-08  Darin Adler  <darin@apple.com>
1778
1779         Reviewed by Justin.
1780
1781         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8616
1782           REGRESSION: TinyMCE: Crash on Undo
1783
1784         * WebView/WebHTMLView.m:
1785         (-[WebHTMLView _topHTMLView]): Added.
1786         (-[WebHTMLView _isTopHTMLView]): Added.
1787         (-[WebHTMLView _insideAnotherHTMLView]): Changed to use _topHTMLView.
1788         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1789         Forward to the top HTML view, so that only the top view ever starts a dragging operation.
1790         Change dragging code to not assume that the dragged node is in the current view's document.
1791         Added checks that the node is an element in a couple places and coordinate conversions.
1792         (-[WebHTMLView _mayStartDragAtEventLocation:]): Forward to the top HTML view.
1793         (-[NSArray addMouseMovedObserver]): Change to do nothing when the dataSource field is 0,
1794         since we now use the dataSource field to get to the WebView.
1795         (-[NSArray removeMouseMovedObserver]): Added a comment.
1796         (-[NSArray dragImage:at:offset:event:pasteboard:source:slideBack:]):
1797         Forward to the top HTML view.
1798         (-[NSArray draggingSourceOperationMaskForLocal:]): Assert that it's the top HTML view.
1799         (-[NSArray draggedImage:movedTo:]): Ditto.
1800         (-[NSArray draggedImage:endedAt:operation:]): Ditto.
1801         (-[NSArray namesOfPromisedFilesDroppedAtDestination:]): Ditto.
1802         (-[NSArray _canProcessDragWithDraggingInfo:]): Ditto.
1803         (-[NSArray _isMoveDrag]): Ditto.
1804         (-[NSArray draggingUpdatedWithDraggingInfo:actionMask:]): Ditto.
1805         (-[NSArray draggingCancelledWithDraggingInfo:]): Ditto.
1806         (-[NSArray concludeDragForDraggingInfo:actionMask:]): Ditto. Also added code to work
1807         with the appropriate bridge when receiving a drag. This fixes the problem where the
1808         top level frame got a selection intended for the inner frame; the source of the bug.
1809         (-[NSArray elementAtPoint:allowShadowContent:]): Added code to convert the coordinates
1810         so this works properly when returning an element from an inner frame.
1811         (-[NSArray setDataSource:]): Added a call to addMouseMovedObserver, needed now that
1812         addMouseMovedObserver won't do anything if called when dataSource is nil.
1813         (-[WebHTMLView _delegateDragSourceActionMask]): Forward to the top HTML view.
1814
1815         * WebView/WebView.m:
1816         (-[WebViewPrivate dealloc]): Removed code to release dragCaretBridge since that field
1817         is now gone.
1818         (-[WebView moveDragCaretToPoint:]): Always call the main frame's bridge, since the
1819         drag caret is now a page-level item. Later we'll move it to the page bridge.
1820         (-[WebView removeDragCaret]): Ditto.
1821
1822 2006-06-07  David Hyatt  <hyatt@apple.com>
1823
1824         Add support for custom highlighting to WebKit.
1825
1826         Reviewed by justin
1827
1828         * WebCoreSupport/WebFrameBridge.m:
1829         (-[WebFrameBridge paintCustomHighlight:forBox:onLine:behindText:]):
1830         * WebView/WebHTMLView.m:
1831         (-[WebHTMLView _highlighterForType:]):
1832         * WebView/WebHTMLViewInternal.h:
1833         * WebView/WebHTMLViewPrivate.h:
1834
1835 2006-06-07  Adele Peterson  <adele@apple.com>
1836
1837         Reviewed by Hyatt. 
1838
1839         Added resources for missingImage and textAreaResizeCorner.
1840
1841         * COM/WebKitDLL.cpp:
1842         (loadResourceIntoArray): Added. Returns a DeprecatedByteArray with the resource's data.
1843         * WebKit.vcproj/WebKit.rc: Added missing image and resize pngs as resources. 
1844         * WebKit.vcproj/WebKit.vcproj: Added pngs.
1845         * WebKit.vcproj/missingImage.png: Added.
1846         * WebKit.vcproj/resource.h: Added entries for pngs.
1847         * WebKit.vcproj/textAreaResizeCorner.png: Added.
1848
1849 2006-06-07  David Hyatt  <hyatt@apple.com>
1850
1851         Add SPI for setting and removing custom highlighters.
1852
1853         Reviewed by Tim H
1854
1855         * WebView/WebHTMLView.m:
1856         (-[WebTextCompleteController dealloc]):
1857         (-[WebHTMLView _setHighlighter:ofType:]):
1858         (-[WebHTMLView _removeHighlighterOfType:]):
1859         * WebView/WebHTMLViewInternal.h:
1860         * WebView/WebHTMLViewPrivate.h:
1861
1862 2006-06-06  Adele Peterson  <adele@apple.com>
1863
1864         Reviewed by Justin. 
1865
1866         * COM/WebView.cpp:
1867         (WebView::keyPress): Added case for VK_RETURN. 
1868
1869 2006-06-06  Anders Carlsson  <acarlsson@apple.com>
1870
1871         Reviewed by John.
1872
1873         * WebView/WebFrame.m:
1874         (-[WebFrame _reloadForPluginChanges]):
1875         Don't traverse the view hierarchy looking for plugin views. Instead, just
1876         ask the frame whether it contains any plugins.
1877
1878 2006-06-03  Steve Falkenburg  <sfalken@apple.com>
1879
1880         Reviewed by hyatt.
1881         
1882         Add implementation of loadHTMLString for Spinneret
1883
1884         * COM/WebFrame.cpp:
1885         (WebFrame::loadHTMLString):
1886
1887 2006-06-02  Steve Falkenburg  <sfalken@apple.com>
1888
1889         Reviewed by darin.
1890
1891         New hosting for Spinneret to avoid static linking
1892
1893         * COM: Added.
1894         * COM/Interfaces: Added.
1895         * COM/Interfaces/DOMCSS.idl: Added.
1896         * COM/Interfaces/DOMCore.idl: Added.
1897         * COM/Interfaces/DOMHTML.idl: Added.
1898         * COM/Interfaces/DOMRange.idl: Added.
1899         * COM/Interfaces/IWebArchive.idl: Added.
1900         * COM/Interfaces/IWebAttributedString.idl: Added.
1901         * COM/Interfaces/IWebBackForwardList.idl: Added.
1902         * COM/Interfaces/IWebDataSource.idl: Added.
1903         * COM/Interfaces/IWebDocument.idl: Added.
1904         * COM/Interfaces/IWebDownload.idl: Added.
1905         * COM/Interfaces/IWebEditingDelegate.idl: Added.
1906         * COM/Interfaces/IWebError.idl: Added.
1907         * COM/Interfaces/IWebFrame.idl: Added.
1908         * COM/Interfaces/IWebFrameLoadDelegate.idl: Added.
1909         * COM/Interfaces/IWebFrameView.idl: Added.
1910         * COM/Interfaces/IWebHistoryItem.idl: Added.
1911         * COM/Interfaces/IWebIconDatabase.idl: Added.
1912         * COM/Interfaces/IWebImage.idl: Added.
1913         * COM/Interfaces/IWebMutableURLRequest.idl: Added.
1914         * COM/Interfaces/IWebNotification.idl: Added.
1915         * COM/Interfaces/IWebPolicyDelegate.idl: Added.
1916         * COM/Interfaces/IWebPreferences.idl: Added.
1917         * COM/Interfaces/IWebResource.idl: Added.
1918         * COM/Interfaces/IWebResourceLoadDelegate.idl: Added.
1919         * COM/Interfaces/IWebScriptObject.idl: Added.
1920         * COM/Interfaces/IWebUIDelegate.idl: Added.
1921         * COM/Interfaces/IWebURLAuthenticationChallenge.idl: Added.
1922         * COM/Interfaces/IWebURLRequest.idl: Added.
1923         * COM/Interfaces/IWebURLResponse.idl: Added.
1924         * COM/Interfaces/IWebUndoManager.idl: Added.
1925         * COM/Interfaces/IWebView.idl: Added.
1926         * COM/Interfaces/WebKit.idl: Added.
1927         * COM/WebBackForwardList.cpp: Added.
1928         (WebBackForwardList::WebBackForwardList):
1929         (WebBackForwardList::~WebBackForwardList):
1930         (WebBackForwardList::createInstance):
1931         (WebBackForwardList::QueryInterface):
1932         (WebBackForwardList::AddRef):
1933         (WebBackForwardList::Release):
1934         (WebBackForwardList::addItem):
1935         (WebBackForwardList::goBack):
1936         (WebBackForwardList::goForward):
1937         (WebBackForwardList::goToItem):
1938         (WebBackForwardList::backItem):
1939         (WebBackForwardList::currentItem):
1940         (WebBackForwardList::forwardItem):
1941         (WebBackForwardList::backListWithLimit):
1942         (WebBackForwardList::forwardListWithLimit):
1943         (WebBackForwardList::capacity):
1944         (WebBackForwardList::setCapacity):
1945         (WebBackForwardList::backListCount):
1946         (WebBackForwardList::forwardListCount):
1947         (WebBackForwardList::containsItem):
1948         (WebBackForwardList::itemAtIndex):
1949         (WebBackForwardList::setPageCacheSize):
1950         (WebBackForwardList::pageCacheSize):
1951         * COM/WebBackForwardList.h: Added.
1952         * COM/WebDataSource.cpp: Added.
1953         (WebDataSource::WebDataSource):
1954         (WebDataSource::~WebDataSource):
1955         (WebDataSource::createInstance):
1956         (WebDataSource::QueryInterface):
1957         (WebDataSource::AddRef):
1958         (WebDataSource::Release):
1959         (WebDataSource::initWithRequest):
1960         (WebDataSource::data):
1961         (WebDataSource::representation):
1962         (WebDataSource::webFrame):
1963         (WebDataSource::initialRequest):
1964         (WebDataSource::request):
1965         (WebDataSource::response):
1966         (WebDataSource::textEncodingName):
1967         (WebDataSource::isLoading):
1968         (WebDataSource::pageTitle):
1969         (WebDataSource::unreachableURL):
1970         (WebDataSource::webArchive):
1971         (WebDataSource::mainResource):
1972         (WebDataSource::subresources):
1973         (WebDataSource::subresourceForURL):
1974         (WebDataSource::addSubresource):
1975         * COM/WebDataSource.h: Added.
1976         * COM/WebFrame.cpp: Added.
1977         (WebFrame::WebFramePrivate::WebFramePrivate):
1978         (WebFrame::WebFramePrivate::~WebFramePrivate):
1979         (WebFrame::WebFrame):
1980         (WebFrame::~WebFrame):
1981         (WebFrame::createInstance):
1982         (WebFrame::QueryInterface):
1983         (WebFrame::AddRef):
1984         (WebFrame::Release):
1985         (WebFrame::initWithName):
1986         (WebFrame::name):
1987         (WebFrame::webView):
1988         (WebFrame::frameView):
1989         (WebFrame::DOMDocument):
1990         (WebFrame::frameElement):
1991         (WebFrame::loadRequest):
1992         (WebFrame::loadData):
1993         (WebFrame::loadHTMLString):
1994         (WebFrame::loadAlternateHTMLString):
1995         (WebFrame::loadArchive):
1996         (WebFrame::dataSource):
1997         (WebFrame::provisionalDataSource):
1998         (WebFrame::stopLoading):
1999         (WebFrame::reload):
2000         (WebFrame::findFrameNamed):
2001         (WebFrame::parentFrame):
2002         (WebFrame::childFrames):
2003         (WebFrame::paint):
2004         (WebFrame::impl):
2005         (WebFrame::loadDataSource):
2006         (WebFrame::loading):
2007         (WebFrame::goToItem):
2008         (WebFrame::loadItem):
2009         (WebSystemMainMemory):
2010         (WebFrame::getObjectCacheSize):
2011         (WebFrame::receivedRedirect):
2012         (WebFrame::receivedResponse):
2013         (WebFrame::receivedData):
2014         (WebFrame::receivedAllData):
2015         (WebFrame::openURL):
2016         (WebFrame::submitForm):
2017         (WebFrame::setTitle):
2018         (WebFrame::setStatusText):
2019         * COM/WebFrame.h: Added.
2020         * COM/WebHistoryItem.cpp: Added.
2021         (WebHistoryItem::WebHistoryItem):
2022         (WebHistoryItem::~WebHistoryItem):
2023         (WebHistoryItem::createInstance):
2024         (WebHistoryItem::QueryInterface):
2025         (WebHistoryItem::AddRef):
2026         (WebHistoryItem::Release):
2027         (WebHistoryItem::initWithURLString):
2028         (WebHistoryItem::originalURLString):
2029         (WebHistoryItem::URLString):
2030         (WebHistoryItem::title):
2031         (WebHistoryItem::lastVisitedTimeInterval):
2032         (WebHistoryItem::setAlternateTitle):
2033         (WebHistoryItem::alternateTitle):
2034         (WebHistoryItem::icon):
2035         * COM/WebHistoryItem.h: Added.
2036         * COM/WebIconDatabase.cpp: Added.
2037         (WebIconDatabase::WebIconDatabase):
2038         (WebIconDatabase::~WebIconDatabase):
2039         (WebIconDatabase::createInstance):
2040         (WebIconDatabase::QueryInterface):
2041         (WebIconDatabase::AddRef):
2042         (WebIconDatabase::Release):
2043         (WebIconDatabase::sharedIconDatabase):
2044         (WebIconDatabase::iconForURL):
2045         (WebIconDatabase::defaultIconWithSize):
2046         (WebIconDatabase::retainIconForURL):
2047         (WebIconDatabase::releaseIconForURL):
2048         (WebIconDatabase::delayDatabaseCleanup):
2049         (WebIconDatabase::allowDatabaseCleanup):
2050         * COM/WebIconDatabase.h: Added.
2051         * COM/WebKitClassFactory.cpp: Added.
2052         (WebKitClassFactory::WebKitClassFactory):
2053         (WebKitClassFactory::~WebKitClassFactory):
2054         (WebKitClassFactory::QueryInterface):
2055         (WebKitClassFactory::AddRef):
2056         (WebKitClassFactory::Release):
2057         (WebKitClassFactory::CreateInstance):
2058         (WebKitClassFactory::LockServer):
2059         * COM/WebKitClassFactory.h: Added.
2060         * COM/WebKitDLL.cpp: Added.
2061         (DllMain):
2062         (DllGetClassObject):
2063         (DllCanUnloadNow):
2064         (DllUnregisterServer):
2065         (DllRegisterServer):
2066         * COM/WebKitDLL.h: Added.
2067         * COM/WebMutableURLRequest.cpp: Added.
2068         (WebMutableURLRequest::WebMutableURLRequest):
2069         (WebMutableURLRequest::~WebMutableURLRequest):
2070         (WebMutableURLRequest::createInstance):
2071         (WebMutableURLRequest::QueryInterface):
2072         (WebMutableURLRequest::AddRef):
2073         (WebMutableURLRequest::Release):
2074         (WebMutableURLRequest::requestWithURL):
2075         (WebMutableURLRequest::allHTTPHeaderFields):
2076         (WebMutableURLRequest::cachePolicy):
2077         (WebMutableURLRequest::HTTPBody):
2078         (WebMutableURLRequest::HTTPBodyStream):
2079         (WebMutableURLRequest::HTTPMethod):
2080         (WebMutableURLRequest::HTTPShouldHandleCookies):
2081         (WebMutableURLRequest::initWithURL):
2082         (WebMutableURLRequest::mainDocumentURL):
2083         (WebMutableURLRequest::timeoutInterval):
2084         (WebMutableURLRequest::URL):
2085         (WebMutableURLRequest::valueForHTTPHeaderField):
2086         (WebMutableURLRequest::addValue):
2087         (WebMutableURLRequest::setAllHTTPHeaderFields):
2088         (WebMutableURLRequest::setCachePolicy):
2089         (WebMutableURLRequest::setHTTPBody):
2090         (WebMutableURLRequest::setHTTPBodyStream):
2091         (WebMutableURLRequest::setHTTPMethod):
2092         (WebMutableURLRequest::setHTTPShouldHandleCookies):
2093         (WebMutableURLRequest::setMainDocumentURL):
2094         (WebMutableURLRequest::setTimeoutInterval):
2095         (WebMutableURLRequest::setURL):
2096         (WebMutableURLRequest::setValue):
2097         (WebMutableURLRequest::setFormData):
2098         (WebMutableURLRequest::formData):
2099         * COM/WebMutableURLRequest.h: Added.
2100         * COM/WebView.cpp: Added.
2101         (WebView::WebView):
2102         (WebView::~WebView):
2103         (WebView::createInstance):
2104         (WebView::mouseMoved):
2105         (WebView::mouseDown):
2106         (WebView::mouseUp):
2107         (WebView::mouseDoubleClick):
2108         (WebView::keyPress):
2109         (registerWebView):
2110         (WebViewWndProc):
2111         (calculateScrollDelta):
2112         (scrollMessageForKey):
2113         (WebView::goToItem):
2114         (WebView::QueryInterface):
2115         (WebView::AddRef):
2116         (WebView::Release):
2117         (WebView::canShowMIMEType):
2118         (WebView::canShowMIMETypeAsHTML):
2119         (WebView::MIMETypesShownAsHTML):
2120         (WebView::setMIMETypesShownAsHTML):
2121         (WebView::URLFromPasteboard):
2122         (WebView::URLTitleFromPasteboard):
2123         (WebView::initWithFrame):
2124         (WebView::setUIDelegate):
2125         (WebView::uiDelegate):
2126         (WebView::setResourceLoadDelegate):
2127         (WebView::resourceLoadDelegate):
2128         (WebView::setDownloadDelegate):
2129         (WebView::downloadDelegate):
2130         (WebView::setFrameLoadDelegate):
2131         (WebView::frameLoadDelegate):
2132         (WebView::setPolicyDelegate):
2133         (WebView::policyDelegate):
2134         (WebView::mainFrame):
2135         (WebView::backForwardList):
2136         (WebView::setMaintainsBackForwardList):
2137         (WebView::goBack):
2138         (WebView::goForward):
2139         (WebView::goToBackForwardItem):
2140         (WebView::setTextSizeMultiplier):
2141         (WebView::textSizeMultiplier):
2142         (WebView::setApplicationNameForUserAgent):
2143         (WebView::applicationNameForUserAgent):
2144         (WebView::setCustomUserAgent):
2145         (WebView::customUserAgent):
2146         (WebView::userAgentForURL):
2147         (WebView::supportsTextEncoding):
2148         (WebView::setCustomTextEncodingName):
2149         (WebView::customTextEncodingName):
2150         (WebView::setMediaStyle):
2151         (WebView::mediaStyle):
2152         (WebView::stringByEvaluatingJavaScriptFromString):
2153         (WebView::windowScriptObject):
2154         (WebView::setPreferences):
2155         (WebView::preferences):
2156         (WebView::setPreferencesIdentifier):
2157         (WebView::preferencesIdentifier):
2158         (WebView::setHostWindow):
2159         (WebView::hostWindow):
2160         (WebView::searchFor):
2161         (WebView::registerViewClass):
2162         (WebView::takeStringURLFrom):
2163         (WebView::stopLoading):
2164         (WebView::reload):
2165         (WebView::canGoBack):
2166         (WebView::canGoForward):
2167         (WebView::canMakeTextLarger):
2168         (WebView::makeTextLarger):
2169         (WebView::canMakeTextSmaller):
2170         (WebView::makeTextSmaller):
2171         (WebView::computedStyleForElement):
2172         (WebView::editableDOMRangeForPoint):
2173         (WebView::setSelectedDOMRange):
2174         (WebView::selectedDOMRange):
2175         (WebView::selectionAffinity):
2176         (WebView::setEditable):
2177         (WebView::isEditable):
2178         (WebView::setTypingStyle):
2179         (WebView::typingStyle):
2180         (WebView::setSmartInsertDeleteEnabled):
2181         (WebView::smartInsertDeleteEnabled):
2182         (WebView::setContinuousSpellCheckingEnabled):
2183         (WebView::isContinuousSpellCheckingEnabled):
2184         (WebView::spellCheckerDocumentTag):
2185         (WebView::undoManager):
2186         (WebView::setEditingDelegate):
2187         (WebView::editingDelegate):
2188         (WebView::styleDeclarationWithText):
2189         (WebView::replaceSelectionWithNode):
2190         (WebView::replaceSelectionWithText):
2191         (WebView::replaceSelectionWithMarkupString):
2192         (WebView::replaceSelectionWithArchive):
2193         (WebView::deleteSelection):
2194         (WebView::applyStyle):
2195         (WebView::copy):
2196         (WebView::cut):
2197         (WebView::paste):
2198         (WebView::copyFont):
2199         (WebView::pasteFont):
2200         (WebView::delete_):
2201         (WebView::pasteAsPlainText):
2202         (WebView::pasteAsRichText):
2203         (WebView::changeFont):
2204         (WebView::changeAttributes):
2205         (WebView::changeDocumentBackgroundColor):
2206         (WebView::changeColor):
2207         (WebView::alignCenter):
2208         (WebView::alignJustified):
2209         (WebView::alignLeft):
2210         (WebView::alignRight):
2211         (WebView::checkSpelling):
2212         (WebView::showGuessPanel):
2213         (WebView::performFindPanelAction):
2214         (WebView::startSpeaking):
2215         (WebView::stopSpeaking):
2216         (WebView::viewWindow):
2217         * COM/WebView.h: Added.
2218         * WebKit.vcproj: Added.
2219         * WebKit.vcproj/Interfaces.vcproj: Added.
2220         * WebKit.vcproj/WebKit.def: Added.
2221         * WebKit.vcproj/WebKit.rc: Added.
2222         * WebKit.vcproj/WebKit.sln: Added.
2223         * WebKit.vcproj/WebKit.vcproj: Added.
2224         * WebKit.vcproj/WebKitGUID.vcproj: Added.
2225         * WebKit.vcproj/autoversion.h: Added.
2226         * WebKit.vcproj/resource.h: Added.
2227
2228 2006-06-02  Darin Adler  <darin@apple.com>
2229
2230         * WebCoreSupport/WebImageRendererFactory.m: Fix crash on Safari startup
2231         by include NSObject as a superclass (oops!).
2232
2233 2006-06-01  Darin Adler  <darin@apple.com>
2234
2235         Reviewed by Maciej.
2236
2237         - WebCore doesn't need to load WebKit images any more; removed code for that
2238
2239         * Resources/missing_image.tiff: Removed.
2240         * WebCoreSupport/WebImageRendererFactory.h: Removed.
2241
2242         * WebCoreSupport/WebImageRendererFactory.m: Moved @interface in here.
2243         Removed all but the "threaded decoding" calls that older Safari calls.
2244         This file can go altogether when compatibility with that older Safari
2245         is no longer needed.
2246
2247         * WebKit.xcodeproj/project.pbxproj: Removed WebImageRendererFactory.h
2248         and missing_image.tiff.
2249
2250         * WebView/WebFrameView.m: (-[WebFrameView initWithFrame:]): Removed call
2251         to [WebImageRendererFactory createSharedFactory].
2252
2253 2006-06-01  Brady Eidson  <beidson@apple.com>
2254
2255         Reviewed by Maciej.
2256
2257         Simple changes to hook up the new WebCore based Icon Database
2258         for testing.
2259
2260         * ChangeLog:
2261         * Misc/WebIconDatabase.m:
2262         (-[WebIconDatabase _applicationWillTerminate:]):
2263         * Misc/WebIconDatabasePrivate.h:
2264         * WebKit.xcodeproj/project.pbxproj:
2265
2266 2006-06-01  Anders Carlsson  <acarlsson@apple.com>
2267
2268         Reviewed by Darin.
2269
2270         http://bugzilla.opendarwin.org/show_bug.cgi?id=6309
2271         multiple problems prevent bookmarking/back button technique for AJAX/DHTML applications from working
2272
2273         * Misc/WebNSURLExtras.m:
2274         (-[NSString _webkit_URLFragment]):
2275         Don't include the "#" character in the fragment.
2276         
2277         * WebCoreSupport/WebFrameBridge.m:
2278         (-[WebFrameBridge historyURL:]):
2279         New function, returns the history URL for a given position in the back/forward list
2280         
2281         * WebView/WebFrame.m:
2282         (-[WebFrame _loadItem:withLoadType:]):
2283         Always call scrollToAnchorWithURL, even if there is no fragment. This way we keep the WebCore frame's
2284         URL up-to-date.
2285
2286 2006-06-01  Maciej Stachowiak  <mjs@apple.com>
2287
2288         Reviewed by Anders.
2289         
2290         - fixed "REGRESSION: Can't order from Pizza Hut (ToT, 05/24/06)"
2291         http://bugzilla.opendarwin.org/show_bug.cgi?id=9103
2292
2293         * WebView/WebDataSource.m:
2294         (-[WebDataSource _willSendRequest:forResource:redirectResponse:]): Set up the
2295         User-Agent header.
2296         * WebView/WebDataSourceInternal.h:
2297         * WebView/WebLoader.m:
2298         (-[NSURLProtocol willSendRequest:redirectResponse:]): Pass a mutable URL request
2299         so the above can work.
2300
2301 2006-06-01  Anders Carlsson  <acarlsson@apple.com>
2302
2303         Reviewed by Darin.
2304
2305         * WebView/WebFrameView.m:
2306         (+[WebFrameView _canShowMIMETypeAsHTML:]):
2307         Use _webkit_objectForMIMEType here so we'll get an object back for "text/".
2308
2309 2006-05-31  David Hyatt  <hyatt@apple.com>
2310
2311         Make programmatic focus/blur actually work on sub-frames.  Make the
2312         top-level UI delegate get called for deactivation of windows.
2313
2314         Reviewed by darin
2315
2316         * WebCoreSupport/WebFrameBridge.m:
2317         (-[WebFrameBridge activateWindow]):
2318         (-[WebFrameBridge deactivateWindow]):
2319         (-[WebFrameBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):
2320         (-[WebFrameBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
2321         * WebKit.xcodeproj/project.pbxproj:
2322
2323 === WebKit-521.12 ===
2324
2325 2006-05-26  David Harrison  <harrison@apple.com>
2326
2327         Reviewed by John Sullivan.
2328
2329         <rdar://problem/4514529> Add a list type parameter and a return value to _increaseSelectionListLevel
2330
2331         * WebView/WebHTMLView.m:
2332         (-[WebHTMLView _increaseSelectionListLevel]):
2333         - Now returns DOMNode*
2334
2335         (-[WebHTMLView _increaseSelectionListLevelOrdered]):
2336         (-[WebHTMLView _increaseSelectionListLevelUnordered]):
2337         - Added.  These also return DOMNode*
2338
2339         * WebView/WebHTMLViewPrivate.h:
2340         - Updated as above
2341
2342 2006-05-25  Tim Omernick  <timo@apple.com>
2343
2344         Reviewed by Anders.
2345
2346         <http://bugzilla.opendarwin.org/show_bug.cgi?id=8347>
2347         REGRESSION: Flash movie audible but not visible until window is resized
2348
2349         * Plugins/WebNetscapePluginDocumentView.m:
2350         (-[WebNetscapePluginDocumentView dataSourceUpdated:]):
2351         Layout if needed here.  Maciej recently removed the "LayoutAcceptable" frame state, which used to
2352         cause plugin document views to lay out immediately upon receiving data.  This call to -layout has
2353         the same effect.
2354
2355 === WebKit-521.11.1 ===
2356
2357 2006-05-25  Timothy Hatcher  <timothy@apple.com>
2358
2359         Reviewed by Tim O.
2360
2361         <rdar://problem/4559808> WebKit fails to compile for ppc64
2362         <rdar://problem/4522085> 64-bit: WebKit uses FSSpec which is not available in 64-bit
2363         Gets WebKit building under 64-bit. Rename WebNSInt and WebNSUInt to WebNSInteger and WebNSUInteger.
2364         Start using WebNSInteger where we need to match AppKit API usage of NSInteger.
2365
2366         HIWebView and a couple of helper functions are disabled until they can be moved off of QuickDraw.
2367         <rdar://problem/4561772> HIWebView needs to be reworked to not use QuickDraw, needed for 64-bit
2368
2369         * Carbon/CarbonUtils.m: disabled this file in 64-bit <rdar://problem/4561772>
2370         * Carbon/CarbonWindowAdapter.m:
2371         (-[CarbonWindowAdapter initWithCarbonWindowRef:takingOwnership:disableOrdering:carbon:]):
2372         * Carbon/CarbonWindowFrame.m:
2373         (+[CarbonWindowFrame frameRectForContentRect:styleMask:]):
2374         (+[CarbonWindowFrame contentRectForFrameRect:styleMask:]):
2375         (+[CarbonWindowFrame minFrameSizeForMinContentSize:styleMask:]):
2376         (-[CarbonWindowFrame frameRectForContentRect:styleMask:]):
2377         (-[CarbonWindowFrame contentRectForFrameRect:styleMask:]):
2378         (-[CarbonWindowFrame minFrameSizeForMinContentSize:styleMask:]):
2379         * Carbon/HIViewAdapter.m: disabled this file in 64-bit <rdar://problem/4561772>
2380         * Carbon/HIWebView.m: disabled this file in 64-bit <rdar://problem/4561772>
2381         (HIWebViewEventHandler):
2382         * DefaultDelegates/WebDefaultResourceLoadDelegate.m:
2383         (-[WebDefaultResourceLoadDelegate webView:resource:didReceiveContentLength:fromDataSource:]):
2384         * History/WebBackForwardList.m:
2385         (-[WebBackForwardList removeItem:]):
2386         (-[WebBackForwardList goToItem:]):
2387         * Misc/WebDownload.m:
2388         (-[WebDownloadInternal download:didReceiveDataOfLength:]):
2389         * Misc/WebFileDatabase.m:
2390         (UniqueFilePathForKey):
2391         * Misc/WebIconDatabase.m:
2392         (-[NSMutableDictionary retainIconForURL:]):
2393         (-[NSMutableDictionary releaseIconForURL:]):
2394         (-[WebIconDatabase _totalRetainCountForIconURLString:]):
2395         (-[WebIconDatabase _retainIconForIconURLString:]):
2396         (-[WebIconDatabase _releaseIconForIconURLString:]):
2397         * Misc/WebSearchableTextView.m:
2398         (-[NSString selectionRect]):
2399         * Misc/WebTypesInternal.h: Added.
2400         * Plugins/WebBaseNetscapePluginStream.m:
2401         (-[WebBaseNetscapePluginStream _destroyStream]):
2402         (CarbonPathFromPOSIXPath):
2403         * Plugins/WebBaseNetscapePluginView.m:
2404         (-[WebBaseNetscapePluginView sendActivateEvent:]):
2405         (-[WebBaseNetscapePluginView sendUpdateEvent]):
2406         (TSMEventHandler):
2407         (-[WebBaseNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]):
2408         (-[WebBaseNetscapePluginView _printedPluginBitmap]):
2409         (-[NSData _web_locationAfterFirstBlankLine]):
2410         * Plugins/WebBasePluginPackage.m:
2411         (-[WebBasePluginPackage hash]):
2412         * Plugins/WebNetscapePluginPackage.m:
2413         (-[WebNetscapePluginPackage load]):
2414         (functionPointerForTVector):
2415         * WebInspector/WebInspector.m:
2416         (-[WebInspector _updateSystemColors]):
2417         * WebKit.xcodeproj/project.pbxproj:
2418         * WebView/WebDataSource.m:
2419         (-[WebDataSource _didReceiveData:contentLength:forResource:]):
2420         * WebView/WebFrame.m:
2421         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
2422         * WebView/WebHTMLView.m:
2423         (-[NSArray drawRect:]):
2424         (-[WebHTMLView characterIndexForPoint:]):
2425         (-[WebHTMLView conversationIdentifier]):
2426         * WebView/WebResourceLoadDelegate.h:
2427         * WebView/WebUIDelegate.h:
2428         * WebView/WebView.h:
2429         * WebView/WebView.m:
2430         (-[WebView _mouseDidMoveOverElement:modifierFlags:]):
2431         (-[WebView spellCheckerDocumentTag]):
2432         * WebView/WebViewInternal.h:
2433         * WebView/WebViewPrivate.h:
2434
2435 === WebKit-521.11 ===
2436
2437 2006-05-23  Maciej Stachowiak  <mjs@apple.com>
2438
2439         Reviewed by Tim.
2440         
2441         - more loader refactoring to simplify things and remove knowledge of WebView from WebSubresourceLoader
2442
2443         * WebCoreSupport/WebSubresourceLoader.m:
2444         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
2445         (-[WebSubresourceLoader didReceiveResponse:]):
2446         * WebView/WebDataSource.m:
2447         (-[WebDataSource _loadIcon]):
2448         (-[WebDataSource _startLoading]):
2449         * WebView/WebFrame.m:
2450         (-[WebFrame _loadRequest:archive:]):
2451         (-[WebFrame _loadItem:withLoadType:]):
2452         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
2453         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
2454         (-[WebFrame _addExtraFieldsToRequest:mainResource:alwaysFromRequest:]):
2455         * WebView/WebFrameInternal.h:
2456         * WebView/WebFramePrivate.h:
2457         * WebView/WebLoader.h:
2458         * WebView/WebLoader.m:
2459         * WebView/WebMainResourceLoader.m:
2460         (-[WebMainResourceLoader initWithDataSource:]):
2461         (-[WebMainResourceLoader didReceiveResponse:]):
2462
2463 2006-05-23  Tim Omernick  <timo@apple.com>
2464
2465         Reviewed by John Sullivan.
2466
2467         <rdar://problem/4558301> REGRESSION (420+): After clearing history and closing bookmark view window,
2468         attempting to select Safari's menu bar results in a crash
2469
2470         * Misc/WebNSWindowExtras.m:
2471         (replacementPostWindowNeedsDisplay):
2472         My fix yesterday for 4557117 was not quite good enough.  Now that we cancel the display timer for a
2473         window *before* it deallocates, we need to make sure that while a window deallocates, no new display
2474         timers are scheduled for that window.  This is actually possible, as 4558301 demonstrates.
2475         Luckily, NSWindow sets a handy "windowDying" flag when it deallocates, so we can just check that flag
2476         and bail out of the throttle hack if it is set.  This should fix the last of the crashes involving
2477         display timers scheduled for deallocated or deallocating windows.
2478
2479 2006-05-23  Maciej Stachowiak  <mjs@apple.com>
2480
2481         Reviewed by Eric.
2482         
2483         - remove knowledge of WebView from WebLoader in preparation for moving the code down
2484
2485         * WebView/WebDataSource.m:
2486         (-[WebDataSource _defersCallbacks]):
2487         (-[WebDataSource _identifierForInitialRequest:]):
2488         (-[WebDataSource _willSendRequest:forResource:redirectResponse:]):
2489         (-[WebDataSource _didReceiveAuthenticationChallenge:forResource:]):
2490         (-[WebDataSource _didCancelAuthenticationChallenge:forResource:]):
2491         (-[WebDataSource _didReceiveResponse:forResource:]):
2492         (-[WebDataSource _didReceiveData:contentLength:forResource:]):
2493         (-[WebDataSource _didFinishLoadingForResource:]):
2494         (-[WebDataSource _didFailLoadingWithError:forResource:]):
2495         (-[WebDataSource _downloadWithLoadingConnection:request:response:proxy:]):
2496         (-[WebDataSource _privateBrowsingEnabled]):
2497         * WebView/WebDataSourceInternal.h:
2498         * WebView/WebLoader.h:
2499         * WebView/WebLoader.m:
2500         (-[WebLoader releaseResources]):
2501         (-[WebLoader setDataSource:]):
2502         (-[WebLoader willSendRequest:redirectResponse:]):
2503         (-[WebLoader didReceiveAuthenticationChallenge:]):
2504         (-[WebLoader didCancelAuthenticationChallenge:]):
2505         (-[WebLoader didReceiveResponse:]):
2506         (-[WebLoader didReceiveData:lengthReceived:]):
2507         (-[WebLoader signalFinish]):
2508         (-[WebLoader didFinishLoading]):
2509         (-[WebLoader didFailWithError:]):
2510         (-[WebLoader willCacheResponse:]):
2511         (-[WebLoader cancelWithError:]):
2512         * WebView/WebMainResourceLoader.m:
2513         (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
2514         * WebView/WebView.m:
2515         (-[WebView _incrementProgressForIdentifier:response:]):
2516         (-[WebView _incrementProgressForIdentifier:data:]):
2517         (-[WebView _completeProgressForIdentifier:]):
2518         * WebView/WebViewInternal.h:
2519
2520 === WebKit-521.10 ===
2521
2522 2006-05-22  Tim Omernick  <timo@apple.com>
2523
2524         Reviewed by Geoff.
2525
2526         <rdar://problem/4557117> TOT REGRESSION: Repro crash in cancelPendingWindowDisplay --> _timerRelease when
2527         opening file from file open dialog
2528
2529         Note that I could not reproduce this situation at all on any of my machines; I had to debug this on Geoff's
2530         machine.
2531
2532         * Misc/WebNSWindowExtras.m:
2533         (replacementDealloc):
2534         Cancel display timer before dealloc, not after.  Cancelling the timer can cause a message to be sent to the
2535         window; best to do that before the window deallocates.
2536         (replacementFinalize):
2537         ditto
2538
2539 2006-05-20  Maciej Stachowiak  <mjs@apple.com>
2540
2541         Reviewed by Beth.
2542         
2543         - fix assertion failure on layout tests
2544
2545         * WebView/WebDataSource.m:
2546         (-[WebDataSource _mainReceivedError:complete:]): Don't do anything
2547         if this data source is no longer connected to a frame. Used to be
2548         this couldn't happen because the WebView would have been nil, but
2549         we no longer go through the WebView.
2550
2551 2006-05-20  Timothy Hatcher  <timothy@apple.com>
2552
2553         Reviewed by Anders.
2554
2555         Bug 9018: REGRESSION: resizing the top area of the inspector does not grow as expected
2556         http://bugzilla.opendarwin.org/show_bug.cgi?id=9018
2557         
2558         Use clientHeight now that offsetHeight includes the border and padding.
2559         clientHeight should have been used initially.
2560
2561         * WebInspector/WebInspector.m:
2562         (-[WebInspector resizeTopArea]):
2563
2564 2006-05-18  Maciej Stachowiak  <mjs@apple.com>
2565
2566         Reviewed by Eric.
2567         
2568         - remove loading-related code from WebView
2569         http://bugzilla.opendarwin.org/show_bug.cgi?id=8981
2570
2571         * Plugins/WebNetscapePluginStream.m:
2572         (-[WebNetscapePlugInStreamLoader didFinishLoading]):
2573         (-[WebNetscapePlugInStreamLoader didFailWithError:]):
2574         * WebCoreSupport/WebSubresourceLoader.m:
2575         (-[WebSubresourceLoader receivedError:]):
2576         (-[WebSubresourceLoader signalFinish]):
2577         * WebView/WebDataSource.m:
2578         (-[WebDataSource _stopLoading]):
2579         (-[WebDataSource _receivedMainResourceError:complete:]):
2580         (-[WebDataSource _finishedLoadingResource]):
2581         (-[WebDataSource _mainReceivedBytesSoFar:complete:]):
2582         (-[WebDataSource _receivedError:]):
2583         (-[WebDataSource _mainReceivedError:complete:]):
2584         * WebView/WebDataSourceInternal.h:
2585         * WebView/WebFrame.m:
2586         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
2587         * WebView/WebMainResourceLoader.m:
2588         (-[WebMainResourceLoader didReceiveData:lengthReceived:]):
2589         (-[WebMainResourceLoader didFinishLoading]):
2590         * WebView/WebView.m:
2591         * WebView/WebViewInternal.h:
2592
2593 2006-05-18  Tim Omernick  <timo@apple.com>
2594
2595         Reviewed by John Sullivan.
2596
2597         <rdar://problem/4551938> More options needed for window display throttle
2598
2599         We decided to play it safe and leave our window flushing behavior unchanged from the previous
2600         public release.  By default, CoreGraphics deferred updates are once again OFF, and the window
2601         display throttle is OFF.
2602
2603         Individual applications should set the WebKitThrottleWindowDisplayPreferenceKey and 
2604         WebKitEnableDeferredUpdatesPreferenceKey defaults to suit their needs.
2605
2606         Old behavior (like 10.4.6): WebKitThrottleWindowDisplayPreferenceKey=0 (or unset), 
2607         WebKitEnableDeferredUpdatesPreferenceKey (or unset).
2608
2609         Tear-free scrolling/animations: WebKitThrottleWindowDisplayPreferenceKey=0 (or unset),
2610         WebKitEnableDeferredUpdatesPreferenceKey=1.  While this configuration fixes the tearing issues
2611         caused by over-flushing, some applications will experience performance problems as over-flushing
2612         with CG deferred updates enabled will cause the app to block.
2613
2614         Tear-free scrolling/animations, high performance: WebKitThrottleWindowDisplayPreferenceKey=1, 
2615         WebKitEnableDeferredUpdatesPreferenceKey=1.  This is the riskiest configuration in that it
2616         enables the window display throttle "feature", potentially breaking applications' assumptions
2617         about when displays occur.  However, it provides the "best of both worlds", in that updates
2618         are tear-free, and performance impact should me minimal.
2619
2620         * WebView/WebPreferenceKeysPrivate.h:
2621         Declared WebKitThrottleWindowDisplayPreferenceKey and WebKitEnableDeferredUpdatesPreferenceKey.
2622
2623         * WebView/WebFrameView.m:
2624         (-[WebFrameView initWithFrame:]):
2625         Turn off CG deferred updates if WebKitEnableDeferredUpdatesPreferenceKey is NO or has no value.
2626         Added some comments.
2627
2628 2006-05-18  John Sullivan  <sullivan@apple.com>
2629
2630         Reviewed by Darin Adler.
2631         
2632         - fixed <rdar://problem/4552713> REGRESSION: WebFrameView no longer responds to responder methods sent by Safari code
2633
2634         * WebView/WebView.m:
2635         (-[WebView _responderForResponderOperations]):
2636         Treat sibling views of the main frameView the same as views outside of the webview for the purposes of this mechanism.
2637
2638 2006-05-18  Tim Omernick  <timo@apple.com>
2639
2640         Reviewed by John Sullivan.
2641
2642         <rdar://problem/4553450> Make disabling window throttle safer
2643
2644         * Misc/WebNSWindowExtras.m:
2645         (+[NSWindow _webkit_enableWindowDisplayThrottle]):
2646         Don't assume that +_webkit_disableWindowDisplayThrottle restored the NSWindow method implementations; 
2647         now we'll only swizzle them once, and our replacement IMPs will call the old IMPs when the window
2648         throttle is disabled.  This is a safer approach when other components/"haxies" override the same methods
2649         that we are overriding, as it allows the overrides to "chain" properly.
2650         Moved the dictionary initialization code down a bit.  The order doesn't matter here.
2651         (disableWindowDisplayThrottleApplierFunction):
2652         Noticed that this could have been written safer with respect to the timer having the last reference to
2653         the window.  I never experienced a crash here, but this code is definitely safer.
2654         (+[NSWindow _webkit_disableWindowDisplayThrottle]):
2655         Don't restore NSWindow method implementations; just clear the flag, flush pending displays, and destroy
2656         the dictionary.
2657         (replacementPostWindowNeedsDisplay):
2658         If throttling is disabled, just call the original IMP.
2659         (clearWindowDisplayInfo):
2660         Added an assert.
2661         (replacementDealloc):
2662         Don't call clearWindowDisplayInfo() when throttling is disabled.
2663         (replacementFinalize):
2664         ditto
2665         (cancelPendingWindowDisplay):
2666         Removed an unnecessary assertion.
2667
2668 2006-05-17  Tim Omernick  <timo@apple.com>
2669
2670         Reviewed by Kevin Decker and John Sullivan.
2671
2672         <rdar://problem/4550801> REGRESSION: Window throttle code can sometimes leak NSWindows
2673
2674         The window display throttle depended on windows being closed before they were deallocated; this is
2675         not guaranteed by AppKit.  Windows that were being released without being closed were getting stuck
2676         in our NSWindow -> WindowDisplayInfo dictionary.
2677         
2678         * Misc/WebNSWindowExtras.m:
2679         (+[NSWindow _webkit_enableWindowDisplayThrottle]):
2680         Don't retain the NSWindow keys in the window display info dictionary.
2681         Instead of overriding -close, override -dealloc and -finalize so that we can remove the NSWindow ->
2682         WindowDisplayInfo mapping when a window deallocates.
2683         (+[NSWindow _webkit_disableWindowDisplayThrottle]):
2684         Restore -dealloc and -finalize.
2685         (clearWindowDisplayInfo):
2686         Factored the WindowDisplayInfo cleanup code out of the now-defunct replacementClose().
2687         (replacementClose):
2688         Removed; no longer needed.
2689         (replacementDealloc):
2690         Clear the WindowDisplayInfo for the window after deallocation.
2691         (replacementFinalize):
2692         ditto
2693         (-[NSWindow _webkit_doPendingPostWindowNeedsDisplay:]):
2694         Rewrote this method to be safe in the case where the firing display timer has the last reference to the
2695         window.
2696         Added comments.
2697         
2698 2006-05-17  bradeeoh  <beidson@apple.com>
2699
2700         Reviewed by Tim Hatcher
2701
2702         Consolidated WebDatabase base class into WebFileDatabase as the inheritance relationship became 
2703         obsolete.  This improves readability and sets the stage for a further in-depth rewrite of the 
2704         WebIcon* code.
2705
2706         * Misc/WebDatabase.h: Removed.
2707         * Misc/WebDatabase.m: Removed.
2708         * Misc/WebFileDatabase.h:
2709         * Misc/WebFileDatabase.m:
2710         (-[WebFileDatabaseOp dealloc]): 
2711         (-[WebFileDatabase dealloc]):  
2712         (-[WebFileDatabase path]):
2713         (-[WebFileDatabase isOpen]):
2714         (-[WebFileDatabase sizeLimit]):
2715         * WebKit.xcodeproj/project.pbxproj:
2716
2717 2006-05-17  Adele Peterson  <adele@apple.com>
2718
2719         Reviewed by Hyatt.
2720
2721         WebKit part of initial checkin to prepare for http://bugzilla.opendarwin.org/show_bug.cgi?id=8948
2722         Switch to use new text field implementation for <textarea>
2723
2724         * WebView/WebHTMLView.m:
2725         (-[NSArray insertNewline:]): If we're in plain text mode, insert a line break instead of a paragraph separator.
2726         (-[NSArray insertParagraphSeparator:]): ditto.
2727         * WebView/WebView.m: (-[WebView _menuForElement:defaultItems:]):
2728         Checks for textareas as well as textfields before allowing the delegate to control
2729         the context menu.  This won't affect the old textareas because AppKit handles those context menus.
2730
2731 2006-05-17  John Sullivan  <sullivan@apple.com>
2732
2733         Reviewed by Maciej.
2734
2735         First step towards making text-matching mechanism more flexible; updated for changes
2736         to WebCoreFrameBridge calls.
2737
2738         * WebView/WebHTMLView.m:
2739         (-[WebHTMLView highlightAllMatchesForString:caseSensitive:]):
2740         updated for name change in WebCoreFrameBridge, also now calls setMarkedTextMatchesAreHighlighted:
2741         (-[WebHTMLView clearHighlightedMatches]):
2742         updated for name change in WebCoreFrameBridge
2743
2744 2006-05-16  Matt Gough  <matt@softchaos.com>
2745
2746         Reviewed by Geoff.
2747         
2748         Ensured all the public headers have a newline at their end.
2749
2750         Client code can now have 'Missing Newline at end of File' warnings enabled without emitting
2751         such warnings against any WebKit includes.
2752
2753         * Misc/WebDownload.h:
2754         * Plugins/npfunctions.h:
2755         * WebView/WebResourceLoadDelegate.h:
2756         * WebView/WebUIDelegate.h:
2757         * WebView/WebView.h:
2758
2759 2006-05-16  Tim Omernick  <timo@apple.com>
2760
2761         Reviewed by Tim Hatcher.
2762
2763         http://bugzilla.opendarwin.org/show_bug.cgi?id=8945 (REGRESSION: Scrolling is very slow when dragging
2764         the thumb)
2765
2766         Rolled out one of my tweaks to the window display throttle hack (remember the last flush time instead
2767         of the last display time).  While that was technically a better approach, we discovered a problem
2768         with how it interacts with NSView scroll tracking.  Rather than further complicate this already
2769         crazy hack, I'm reverting back to the simple version.  This should yield similar numbers on iBench,
2770         but not exhibit the nasty scrolling problem.
2771         
2772         * Misc/WebNSWindowExtras.m:
2773         (+[NSWindow _webkit_enableWindowDisplayThrottle]):
2774         (+[NSWindow _webkit_disableWindowDisplayThrottle]):
2775         (getWindowDisplayInfo):
2776         (requestWindowDisplay):
2777
2778 2006-05-16  bradeeoh  <beidson@apple.com>
2779
2780         Reviewed by Maciej Stachowiak
2781
2782         - Fixed an old deprecated method in Misc/WebFileDatabase.m
2783
2784         * Misc/WebFileDatabase.m:
2785         (UniqueFilePathForKey):  changed `lossyCString` to `UTF8String`
2786
2787 2006-05-16  Darin Adler  <darin@apple.com>
2788
2789         Reviewed by Anders.
2790
2791         - did the name change from "ImageElement" to "ImageForElement" that I said I would
2792           (oops!)
2793
2794         * DefaultDelegates/WebDefaultContextMenuDelegate.m:
2795         (-[WebDefaultUIDelegate copyImageToClipboard:]):
2796         * Misc/WebNSPasteboardExtras.h:
2797         * Misc/WebNSPasteboardExtras.m:
2798         (-[NSPasteboard _web_declareAndWriteDragImageForElement:URL:title:archive:source:]):
2799         * Misc/WebNSViewExtras.h:
2800         * Misc/WebNSViewExtras.m:
2801         (-[NSView _web_DragImageForElement:rect:event:pasteboard:source:offset:]):
2802         * WebView/WebHTMLView.m:
2803         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
2804         * WebView/WebView.m:
2805         (-[WebView _writeImageForElement:withPasteboardTypes:toPasteboard:]):
2806         (-[WebView writeElement:withPasteboardTypes:toPasteboard:]):
2807         * WebView/WebViewInternal.h:
2808
2809 2006-05-16  Darin Adler  <darin@apple.com>
2810
2811         Reviewed by Anders.
2812
2813         - http://bugzilla.opendarwin.org/show_bug.cgi?id=8940
2814           remove extra copy of image code
2815
2816         * English.lproj/StringsNotToBeLocalized.txt: Updated for many recent changes.
2817
2818         * WebKit.xcodeproj/project.pbxproj: Removed files.
2819         * WebCoreSupport/WebImageData.h: Removed.
2820         * WebCoreSupport/WebImageData.m: Removed.
2821         * WebCoreSupport/WebImageDecodeItem.h: Removed.
2822         * WebCoreSupport/WebImageDecodeItem.m: Removed.
2823         * WebCoreSupport/WebImageDecoder.h: Removed.
2824         * WebCoreSupport/WebImageDecoder.m: Removed.
2825         * WebCoreSupport/WebImageRenderer.h: Removed.
2826         * WebCoreSupport/WebImageRenderer.m: Removed.
2827
2828         * WebCoreSupport/WebImageRendererFactory.h:
2829         * WebCoreSupport/WebImageRendererFactory.m: Removed everything except for
2830         shouldUseThreadedDecoding, setShouldUseThreadedDecoding, and imageDataForName:.
2831
2832         * Misc/WebNSPasteboardExtras.h: Removed WebImageRenderer parameter from
2833         _web_declareAndWriteDragImage and renamed _web_declareAndWriteDragImageElement.
2834         * Misc/WebNSPasteboardExtras.m:
2835         (-[NSPasteboard _web_writeImage:element:URL:title:archive:types:]): Changed to
2836         call +[WebFrameBridge supportedImageResourceMIMETypes] instead of
2837         -[WebImageRendererFactory supportedMIMETypes].
2838         (-[NSPasteboard _web_declareAndWriteDragImageElement:URL:title:archive:source:]):
2839         Removed WebImageRenderer parameter, and updated code since it was always nil.
2840
2841         * Misc/WebNSViewExtras.h: Removed WebImageRenderer parameter from
2842         _web_dragImage and renamed _web_dragImageElement.
2843         * Misc/WebNSViewExtras.m:
2844         (-[NSView _web_dragImageElement:rect:event:pasteboard:source:offset:]):
2845         Removed WebImageRenderer parameter, and updated code since it was always nil.
2846
2847         * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface): Added some new
2848         functions now used by WebCore.
2849
2850         * WebView/WebDataSource.m: (-[WebDataSource _documentFragmentWithArchive:]):
2851         Call +[WebFrameBridge supportedImageResourceMIMETypes] instead of
2852         -[WebImageRendererFactory supportedMIMETypes].
2853
2854         * WebView/WebFrameView.m: Removed include of WebImageRenderer.h.
2855
2856         * WebView/WebHTMLRepresentation.m: (+[WebHTMLRepresentation supportedImageMIMETypes]):
2857         Removed call to +[WebImageRendererFactory createSharedFactory].
2858
2859         * WebView/WebHTMLView.m:
2860         (-[WebHTMLView _imageExistsAtPaths:]): Call +[WebFrameBridge supportedImageResourceMIMETypes]
2861         instead of -[WebImageRendererFactory supportedMIMETypes].
2862         (-[WebHTMLView _documentFragmentWithPaths:]): Ditto.
2863         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): Update
2864         to no longer pass nil for an image to _web_declareAndWriteDragImageElement and to
2865         _web_dragImageElement.
2866         (-[WebHTMLView dealloc]): Remove call to now-unneeded _reset.
2867         (-[WebHTMLView finalize]): Ditto.
2868         (-[WebHTMLView viewDidMoveToWindow]): Remove logic for calling _reset, including the inWindow
2869         boolean field.
2870
2871         * WebView/WebHTMLViewInternal.h: Removed inWindow boolean.
2872         * WebView/WebHTMLViewPrivate.h: Removed _reset method.
2873
2874 2006-05-16  Darin Adler  <darin@apple.com>
2875
2876         Reviewed by Hyatt.
2877
2878         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8898
2879           REGRESSION: Attempting to right-click image in own tab on website causes crash
2880         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8919
2881           REGRESSION: image could not be dragged, subsequent click-drag activity caused crash
2882
2883         These fixes may become obsolete when Anders lands his standalone image viewer
2884         patch, but in my tree they are needed to make Copy Image work after the fix
2885         over on the WebCore side to avoid the crashes.
2886
2887         * Misc/WebNSPasteboardExtras.h: Change _web_writeImage parameter to an NSImage.
2888         * Misc/WebNSPasteboardExtras.m:
2889         (-[NSPasteboard _web_writeImage:element:URL:title:archive:types:]): Change parameter
2890         to an NSImage instead of a WebImageRenderer.
2891         (-[NSPasteboard _web_declareAndWriteDragImage:element:URL:title:archive:source:]):
2892         Call -[WebImageRenderer image] to get an NSImage to pass to _web_writeImage.
2893
2894         * WebView/WebView.m: (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]):
2895         Get the image using WebElementImageKey if WebElementDOMNodeKey is nil.
2896
2897 2006-05-16  Anders Carlsson  <acarlsson@apple.com>
2898
2899         Reviewed by Maciej.
2900
2901         http://bugzilla.opendarwin.org/show_bug.cgi?id=8921
2902         Use WebCore to render full-frame images
2903         
2904         * WebCoreSupport/WebFrameBridge.m:
2905         (-[WebFrameBridge determineObjectFromMIMEType:URL:]):
2906         Remove WebImageView handling.
2907         
2908         (-[WebFrameBridge mainResourceURLResponse]):
2909         New function which returns the URL response for the main resource. This is used by the
2910         manual loading of images.
2911         
2912         (-[WebFrameBridge imageTitleForFilename:size:]):
2913         New function which returns a correctly translated image title given a filename and a size.
2914         
2915         * WebCoreSupport/WebImageRenderer.m:
2916         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
2917         Remove WebImageView handling.
2918         
2919         * WebKit.xcodeproj/project.pbxproj:
2920         Remove WebImageRepresentation and WebImageView.
2921         
2922         * WebView/WebArchiver.h:
2923         * WebView/WebArchiver.m:
2924         (+[WebArchiver archiveMainResourceForFrame:]):
2925         New functions which returns a WebArchive with just the main resource, ignoring any subresources.
2926         
2927         * WebView/WebDataSource.m:
2928         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
2929         Use MIME types from WebHTMLRepresentation instead of WebImageRepresentation.
2930         
2931         * WebView/WebFrameView.m:
2932         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
2933         Use MIME types from WebHTMLRepresentation instead of WebImageRepresentation.
2934         
2935         (+[WebHTMLRepresentation supportedMIMETypes]):
2936         Create an array of image and non-image MIME Types.
2937         
2938         (+[WebHTMLRepresentation supportedNonImageMIMETypes]):
2939         (+[WebHTMLRepresentation supportedImageMIMETypes]):
2940         New functions, separating the list of MIME types into image and non-image ones.
2941         
2942         * WebView/WebHTMLView.m:
2943         (+[WebHTMLView supportedImageMIMETypes]):
2944         (+[WebHTMLView supportedNonImageMIMETypes]):
2945         New functions which call down to WebHTMLRepresentation.
2946         
2947         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
2948         If the image element comes from an ImageDocument, just use an archive of the main resource
2949         instead of the generated HTML document.
2950         
2951         * WebView/WebHTMLViewPrivate.h:
2952         Declare new functions.
2953         
2954         * WebView/WebImageRepresentation.h: Removed.
2955         * WebView/WebImageRepresentation.m: Removed.
2956         * WebView/WebImageView.h: Removed.
2957         * WebView/WebImageView.m: Removed.
2958         
2959 2006-05-15  Tim Omernick  <timo@apple.com>
2960
2961         Reviewed by John Sullivan.
2962
2963         Part of <rdar://problem/4466508> Add 64-bit support to the Netscape Plugin API
2964
2965         Added to the Netscape Plugin API the concept of "plugin drawing models".  The drawing model
2966         determines the kind of graphics context created by the browser for the plugin, as well as 
2967         the Mac types of various Netscape Plugin API data structures.
2968
2969         There is a drawing model to represent the old QuickDraw-based API.  It is used by default
2970         if QuickDraw is available on the system, unless the plugin specifies another drawing model.
2971
2972         The big change is the addition of the CoreGraphics drawing model.  A plugin may request this
2973         drawing model to obtain access to a CGContextRef for drawing, instead of a QuickDraw CGrafPtr.
2974
2975         * Plugins/WebBaseNetscapePluginView.h:
2976         Added PluginPort union, which wraps a NP_Port and a NP_CGContext.  This is to make access to
2977         the nPort and lastSetPort ivars more convenient now that the port type differs based on the 
2978         drawing model.
2979         Changed types of nPort and lastSetPort to PluginPort so they can be used with any drawing model.
2980         Added drawingModel ivar.
2981         * Plugins/WebBaseNetscapePluginView.m:
2982         Renamed PortState to PortState_QD.  PortState is now an opaque pointer.  PortState_QD cannot be
2983         used if QuickDraw is unavailable.
2984         (-[WebBaseNetscapePluginView fixWindowPort]):
2985         Cannot be used if QuickDraw is unavailable.
2986         (-[WebBaseNetscapePluginView saveAndSetNewPortStateForUpdate:]):
2987         Only fix window port if drawing model is QuickDraw.
2988         Re-ordered some code so I could group QuickDraw-specific stuff into switch and if blocks (that's
2989         why the diff here is so terrible).
2990         Now returns a malloc()'ed PortState that the caller is responsible for freeing.  Renamed to
2991         better reflect this behavior.
2992         Support for the CoreGraphics drawing model -- fill PortState_CG struct, save CGContext state.
2993         (-[WebBaseNetscapePluginView restorePortState:]):
2994         Switch based on drawing model.
2995         Support for the CoreGraphics drawing model -- restore CGContext state saved earlier.
2996         (-[WebBaseNetscapePluginView sendEvent:]):
2997         Formatting.
2998         Don't set save/set port state or set the window in CoreGraphics mode unless the event being
2999         sent is an updateEvt.  We can't provide the plugin with a CGContext outside of our view display
3000         cycle.
3001         Don't restore PortState if it's NULL (didn't used to be a pointer).  Free when we're done with it.
3002         (-[WebBaseNetscapePluginView isNewWindowEqualToOldWindow]):
3003         Formatting.
3004         Switch how we compare ports based on the drawing model.
3005         (-[WebBaseNetscapePluginView updateAndSetWindow]):
3006         Fixed for CoreGraphics by triggering a redisplay instead of sending an update event to the plugin
3007         outside of the view display cycle.
3008         Don't restore PortState if it's NULL (didn't used to be a pointer).  Free when we're done with it.
3009         (-[WebBaseNetscapePluginView setWindowIfNecessary]):
3010         Assert that the window is only set when updating in CoreGraphics mode.
3011         Log differently depending on the drawing model.
3012         (-[WebBaseNetscapePluginView start]):
3013         Fall back on QuickDraw if the plugin does not specify a drawing model.
3014         (-[WebBaseNetscapePluginView tellQuickTimeToChill]):
3015         Cannot be used if QuickDraw is unavailable.
3016         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]):
3017         Only call -tellQuickTimeToChill in QuickDraw mode.
3018         (-[WebBaseNetscapePluginView viewHasMoved:]):
3019         ditto
3020         (-[WebBaseNetscapePluginView invalidateRegion:]):
3021         NPRegion is a CGPathRef in CoreGraphics mode.
3022         (-[WebBaseNetscapePluginView getVariable:value:]):
3023         Added support for retriveing the NPNVpluginDrawingModel, NPNVsupportsQuickDrawBool, and
3024         NPNVsupportsCoreGraphicsBool browser variables.
3025         (-[WebBaseNetscapePluginView setVariable:value:]):
3026         Added support for setting the NPNVpluginDrawingModel variable.
3027
3028 2006-05-15  Tim Omernick  <timo@apple.com>
3029
3030         Reviewed by Kevin Decker.
3031
3032         Follow-up to my previous PLT fix.  I found upon further testing (by dramatically decreasing the
3033         allowed display rate) that +_webkit_displayThrottledWindows did not always force a display when
3034         necessary.  The reason is that I was not giving a proper timeout to CFRunLoopRunInMode().  I was
3035         passing 0, which was causing only "expired" timers to fire.  This method is actually supposed to
3036         block until all currently scheduled display timers fire.
3037
3038         I tested this change and found that it did not affect my PLT times when the display rate was
3039         capped to 60 fps.  It also behaves as expected when the display rate is set much lower (say, 1
3040         display per second); my previous fix did not work well at such display rates.
3041
3042         * Misc/WebNSWindowExtras.m:
3043         (+[NSWindow _webkit_displayThrottledWindows]):
3044         Run the runloop for an amount of time equal to the minimum allowed interval between displays.
3045         This ensures that we'll block until all currently scheduled display timers fire (but we won't
3046         block for future display timers).
3047
3048 2006-05-15  John Sullivan  <sullivan@apple.com>
3049
3050         Reviewed by Tim Omernick.
3051         
3052         - followup to previous fix; I hadn't tested quitting adequately
3053
3054         * WebView/WebHTMLView.m:
3055         (-[WebHTMLView dealloc]):
3056         call removeAllToolTips before clearing _private so that removeTrackingRect: override can work 
3057         properly. Normally removeAllToolTips would be called by super, but that's too late.
3058         (-[WebHTMLView finalize]):
3059         ditto
3060
3061 2006-05-15  John Sullivan  <sullivan@apple.com>
3062
3063         Reviewed by Darin.
3064         
3065         - fixed <rdar://problem/4503016> TOT assertion failure in -[WebHTMLView(WebPrivate) removeTrackingRect:]
3066         
3067         We have some tricky code to deal with tracking rects, which succumbed to a fix in AppKit. Updated our
3068         tricky code to work with the AppKit fix.
3069
3070         * WebView/WebHTMLViewInternal.h:
3071         new instance variable lastToolTipTag
3072         
3073         * WebView/WebHTMLView.m:
3074         (-[WebHTMLView removeTrackingRect:]):
3075         handle removing lastToolTipTag by calling super
3076         (-[WebHTMLView _setToolTip:]):
3077         save tool tip tag in lastToolTipTag; this apparently used to always return 0, so we formerly had no way
3078         to distinguish it from the no-tool-tips-yet case.
3079
3080         * WebKit.xcodeproj/project.pbxproj:
3081         Xcode removed some old cruft
3082
3083 2006-05-15  Tim Omernick  <timo@apple.com>
3084
3085         Reviewed by Darin.
3086
3087         Safari's Page Load Test (PLT) saturates the runloop with so many sources that timers are not allowed to fire 
3088         as frequently as they should.  This is a general problem with the PLT -- because of this, it does not measure
3089         work done in timer callbacks during/after the page load process.
3090
3091         Unfortunately, this aspect of the PLT interferes with our window display throttle hack.  Because we throttle
3092         display using timers, and the PLT starves timers, most of the pages loaded by the PLT do not actually display.
3093         This makes the PLT run "too fast", yielding ridiculously fast numbers compared to when throttling is disabled.
3094
3095         I've added a new method that the PLT can call after each page load to force any starved display throttle timers
3096         to fire.  By doing this, Safari's PLT will be guaranteed to display each page at least once.
3097
3098         * Misc/WebNSWindowExtras.h:
3099         * Misc/WebNSWindowExtras.m:
3100         Added a special internal runloop mode for the throttle timers.
3101         (+[NSWindow _webkit_displayThrottledWindows]):
3102         Run the runloop in our special internal mode until there are no more sources to handle.
3103         (requestWindowDisplay):
3104         Schedule the timer in the new mode as well as the standard modes.
3105         
3106 2006-05-15  Anders Carlsson  <acarlsson@apple.com>
3107
3108         Reviewed by Maciej.
3109
3110         http://bugzilla.opendarwin.org/show_bug.cgi?id=8913
3111         REGRESSION: Can view source for text files
3112
3113         * WebView/WebDocumentPrivate.h:
3114         Add canSaveAsWebArchive.
3115         
3116         * WebView/WebHTMLRepresentation.m:
3117         (-[WebHTMLRepresentation canProvideDocumentSource]):
3118         Call the bridge.
3119         
3120         (-[WebHTMLRepresentation canSaveAsWebArchive]):
3121         New function. This will be used in Safari ToT to determine if a page can be saved as an archive.
3122
3123 2006-05-14  Mitz Pettel  <opendarwin.org@mitzpettel.com>
3124
3125         Reviewed by Darin.
3126
3127         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8739
3128           Crash in RenderTableSection::paint due to manipulating DOM on resize
3129
3130         Manual test: manual-tests/dom-manipulation-on-resize.html
3131
3132         * WebView/WebHTMLView.m:
3133         (-[NSArray layoutToMinimumPageWidth:maximumPageWidth:adjustingViewSize:]): Relayout if necessary
3134         after sending the resize event.
3135
3136 2006-05-12  Maciej Stachowiak  <mjs@apple.com>
3137
3138         Reviewed by Brady.
3139         
3140         http://bugzilla.opendarwin.org/show_bug.cgi?id=8876
3141         - move most private WebDataSource methods to uninstalled header
3142         
3143         I put the declarations for the ones only used in WebKit in WebDataSourceInternal.h
3144         and removed two entirey unused ones.
3145
3146         * Plugins/WebNetscapePluginRepresentation.m:
3147         * Plugins/WebNetscapePluginStream.m:
3148         * Plugins/WebPluginController.m:
3149         * Plugins/WebPluginDocumentView.m:
3150         * WebCoreSupport/WebFrameBridge.m:
3151         (-[WebFrameBridge dataSource]):
3152         * WebCoreSupport/WebSubresourceLoader.m:
3153         * WebKit.xcodeproj/project.pbxproj:
3154         * WebView/WebDataSource.m:
3155         (-[WebDataSource _updateIconDatabaseWithURL:]):
3156         (-[WebDataSource _loadIcon]):
3157         (-[WebDataSource _clearErrors]):
3158         (-[WebDataSource _commitLoadWithData:]):
3159         (-[WebDataSource _doesProgressiveLoadWithMIMEType:]):
3160         (-[WebDataSource _addResponse:]):
3161         * WebView/WebDataSourceInternal.h: Added.
3162         * WebView/WebDataSourcePrivate.h:
3163         * WebView/WebFrame.m:
3164         * WebView/WebHTMLRepresentation.m:
3165         * WebView/WebHTMLView.m:
3166         * WebView/WebImageView.m:
3167         * WebView/WebLoader.m:
3168         * WebView/WebMainResourceLoader.m:
3169         * WebView/WebPDFView.m:
3170         * WebView/WebRenderNode.m:
3171         * WebView/WebView.m:
3172
3173 2006-05-12  Tim Omernick  <timo@apple.com>
3174
3175         Reviewed by John Sullivan.
3176
3177         <rdar://problem/4542808> REGRESSION: benchjs test 1 has slowed by over 150% (8740)
3178         <http://bugzilla.opendarwin.org/show_bug.cgi?id=8740>
3179
3180         Improvement to my NSWindow display throttle hack.  Remember the last flush time instead of the last display time.
3181         Our goal is to never draw less than 1/60th of a second after the window is flushed in order to avoid blocking on
3182         a CG coalesced update.  Using the last display time is close, but this is much more accurate.  I have verified that
3183         this further improves our score on BenchJS Test 1 (by 9.8% with the status bar shown compared to the previous build),
3184         as well as on our internal PLT scores by a smaller percentage.
3185
3186         * Misc/WebNSWindowExtras.m:
3187         Renamed lastDisplayTime to lastFlushTime.
3188         (+[NSWindow _webkit_enableWindowDisplayThrottle]):
3189         Replace -[NSWindow flushWindow] with our own implementation.
3190         (+[NSWindow _webkit_disableWindowDisplayThrottle]):
3191         Restore -[NSWindow flushWindow].
3192         (replacementFlushWindow):
3193         Use the last flush time instead of the last display time.
3194         (getWindowDisplayInfo):
3195         Renamed lastDisplayTime to lastFlushTime.
3196         (requestWindowDisplay):
3197         Moved some code to replacementFlushWindow().
3198
3199 2006-05-11  Timothy Hatcher  <timothy@apple.com>
3200
3201         Reviewed by Darin.
3202
3203         Bug 8856: Web Inspector should show the Xpath for the selected node
3204         http://bugzilla.opendarwin.org/show_bug.cgi?id=8856
3205         
3206         Adds an Xpath area to the Node panel.
3207
3208         * WebInspector/webInspector/inspector.css:
3209         * WebInspector/webInspector/inspector.html:
3210         * WebInspector/webInspector/inspector.js:
3211
3212 2006-05-11  Timothy Hatcher  <timothy@apple.com>
3213
3214         Reviewed by Anders.
3215
3216         Fixes <rdar://problem/4411845> lots of SPOD trying to scroll through
3217         Markup & Content inspecting body at apple.com (6614)
3218         http://bugzilla.opendarwin.org/show_bug.cgi?id=6614
3219
3220         Removed the Markup & Content pane when viewing a element.
3221         This pane was not that useful and made the inspector really slow
3222         when the markup was large. Only show this pane for text nodes.
3223
3224         * WebInspector/webInspector/inspector.css: use -webkit prefix
3225         * WebInspector/webInspector/inspector.html:
3226         * WebInspector/webInspector/inspector.js:
3227
3228 2006-05-11  Sam Weinig  <sam.weinig@gmail.com>
3229
3230         Reviewed by Timothy.
3231
3232         Patch for <http://bugzilla.opendarwin.org/show_bug.cgi?id=8810>
3233         Bug 8810: Scrollbars in WebInspector rendered incorrectly
3234
3235         * WebInspector/webInspector/inspector.css: 
3236         Make scroll bars absolutely positioned.
3237
3238 2006-05-10  Tim Omernick  <timo@apple.com>
3239
3240         Reviewed by Darin.
3241
3242         <rdar://problem/4542808> REGRESSION: benchjs test 1 has slowed by over 150% (8740)
3243         <http://bugzilla.opendarwin.org/show_bug.cgi?id=8740>
3244
3245         * Misc/WebNSWindowExtras.h:
3246         * Misc/WebNSWindowExtras.m:
3247         (+[NSWindow _webkit_enableWindowDisplayThrottle]):
3248         Overrides certain NSWindow methods so that window autodisplay can be throttled to 60Hz.
3249
3250         (disableWindowDisplayThrottleApplierFunction):
3251         CFDictionary applier function for when the throttle is disabled.  Cancels all pending window displays,
3252         and calls -displayIfNeeded on each window with a pending display.
3253
3254         (+[NSWindow _webkit_disableWindowDisplayThrottle]):
3255         Restores default NSWindow method implementations and clears pending window displays.
3256
3257         (swizzleInstanceMethod):
3258         Helper function to swizzle ObjC method implementations.
3259
3260         (replacementPostWindowNeedsDisplay):
3261         Don't call into -[NSWindow _postWindowNeedsDisplay] if requestWindowDisplay() returns NO (this is the
3262         function that throttles display).
3263
3264         (replacementClose):
3265         Clean up the WindowDisplayInfo struct for the window, since it's about to go away.
3266
3267         (getWindowDisplayInfo):
3268         Gets the WindowDisplayInfo struct for the window, or creates it if absent.
3269
3270         (requestWindowDisplay):
3271         Returns YES if a display is allowed right now.  Returns NO otherwise, and schedules a timer to try the
3272         display again.
3273
3274         (cancelPendingWindowDisplay):
3275         Cancels the pending display for the window, if any.
3276
3277         (-[NSWindow _webkit_doPendingPostWindowNeedsDisplay:]):
3278         Try to call _postWindowNeedsDisplay again.
3279
3280         * WebView/WebFrameView.m:
3281         (-[WebFrameView initWithFrame:]):
3282         If the secret "WebKitThrottleWindowDisplay" default is set, then enable the NSWindow throttle.
3283
3284 2006-05-10  Anders Carlsson  <acarlsson@apple.com>
3285
3286         Reviewed by Maciej.
3287
3288         * WebView/WebHTMLView.m:
3289         (+[WebHTMLView unsupportedTextMIMETypes]):
3290         Add text/rtf
3291         
3292 2006-05-09  Levi Weintraub  <lweintraub@apple.com>
3293
3294         Reviewed by justin.
3295
3296         <rdar://problem/4442395>
3297         Tiny MCE: Link isn't inserted after dragging into textarea field
3298         
3299         * WebView/WebHTMLView.m:
3300         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]):
3301         Modified to create an anchor object with a title as opposed to just the URL as text.
3302
3303 2006-05-09  Tim Omernick  <timo@apple.com>
3304
3305         Reviewed by Dave Harrison.
3306
3307         <rdar://problem/4523432> safari crashed right after disabling "block pop up windows" (or
3308         other WebPreferences changes)
3309
3310         * Plugins/WebBaseNetscapePluginView.m:
3311         (-[WebBaseNetscapePluginView viewWillMoveToHostWindow:]):
3312         When the plugin view is removed from both its window and its hostWindow, stop observing
3313         WebPreferences.
3314
3315 2006-05-09  Anders Carlsson  <acarlsson@apple.com>
3316
3317         Reviewed by Darin.
3318
3319         http://bugzilla.opendarwin.org/show_bug.cgi?id=8808
3320         WebCore should handle text files
3321
3322         * WebKit.exp:
3323         Remove WebTextView.
3324         
3325         * WebKit.xcodeproj/project.pbxproj:
3326         Get rid of WebTextView and WebTextRepresentation.
3327         
3328         * WebView/WebDataSource.m:
3329         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
3330         * WebView/WebFrameView.m:
3331         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
3332         * WebView/WebHTMLView.m:
3333         The text MIME types are now handled by WebHTMLView.
3334         
3335         (+[WebHTMLView unsupportedTextMIMETypes]):
3336         New function, moved here from WebTextView.
3337         
3338         * WebView/WebHTMLViewPrivate.h:
3339         * WebView/WebTextRepresentation.h: Removed.
3340         * WebView/WebTextRepresentation.m: Removed.
3341         * WebView/WebTextView.h: Removed.
3342         * WebView/WebTextView.m: Removed.
3343         
3344         * WebView/WebView.m:
3345         (+[WebView _viewClass:andRepresentationClass:forMIMEType:]):
3346         Now special-case WebHTMLView instead of WebTextView for MIME types
3347         that shouldn't be shown.
3348
3349 2006-05-09  Maciej Stachowiak  <mjs@apple.com>
3350
3351         Rubber stamped by Anders.
3352         
3353         - renamed kxmlcore to wtf
3354         
3355         kxmlcore --> wtf
3356         KXMLCore --> WTF
3357         KXC --> WTF
3358
3359         * Misc/WebKitLogging.h:
3360         * Misc/WebKitLogging.m:
3361         (initializeLogChannel):
3362
3363 2006-05-09  Timothy Hatcher  <timothy@apple.com>
3364
3365         Reviewed by Anders.
3366
3367         Bug 8804: Inspector should support searching by Xpath query
3368         http://bugzilla.opendarwin.org/show_bug.cgi?id=8804
3369
3370         * WebInspector/WebInspector.m:
3371         (-[WebInspector _refreshSearch]):
3372         * WebInspector/webInspector/inspector.js:
3373
3374 2006-05-08  Maciej Stachowiak  <mjs@apple.com>
3375
3376         Reviewed by Tim Hatcher.
3377         
3378         - refactor things so that WebKit doesn't save a WebResource for every loaded URL,
3379         but rather retrieves the data from the WebCore cache as needed.
3380         http://bugzilla.opendarwin.org/show_bug.cgi?id=8802
3381
3382         * WebCoreSupport/WebFrameBridge.m:
3383         (-[WebFrameBridge objectLoadedFromCacheWithURL:response:data:]):
3384         (-[WebFrameBridge syncLoadResourceWithMethod:URL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
3385         * WebCoreSupport/WebSubresourceLoader.m:
3386         (-[WebSubresourceLoader didReceiveResponse:]):
3387         * WebView/WebDataSource.m:
3388         (-[WebDataSourcePrivate dealloc]):
3389         (-[WebDataSource _setupForReplaceByMIMEType:]):
3390         (-[WebDataSource _archivedSubresourceForURL:]):
3391         (-[WebDataSource initWithRequest:]):
3392         (-[WebDataSource subresources]):
3393         (-[WebDataSource subresourceForURL:]):
3394         (-[WebDataSource addSubresource:]):
3395         * WebView/WebDataSourcePrivate.h:
3396         * WebView/WebFrame.m:
3397         * WebView/WebFrameInternal.h:
3398         * WebView/WebHTMLView.m:
3399         * WebView/WebLoader.h:
3400         * WebView/WebLoader.m:
3401         (-[NSURLProtocol loadWithRequest:]):
3402         (-[NSURLProtocol didFinishLoading]):
3403         * WebView/WebUnarchivingState.h:
3404         * WebView/WebUnarchivingState.m:
3405         (-[WebUnarchivingState addResource:]):
3406
3407 2006-05-04  Mitz Pettel  <opendarwin.org@mitzpettel.com>
3408
3409         Reviewed by Darin.
3410
3411         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8594
3412           REGRESSION: Exception on closing a page containing (just) an mp3
3413
3414         Test: plugins/pluginDocumentView-deallocated-dataSource.html
3415
3416         * Plugins/WebPluginDocumentView.m:
3417         (-[WebPluginDocumentView dealloc]): Release the dataSource.
3418         (-[WebPluginDocumentView setDataSource:]): Retain the dataSource.
3419
3420 2006-05-04  Tim Omernick  <timo@apple.com>
3421
3422         Reviewed by Darin.
3423
3424         <rdar://problem/4537606> Give Java WebKit plugin access to its own DOM element
3425
3426         * WebCoreSupport/WebFrameBridge.m:
3427         (-[WebFrameBridge viewForJavaAppletWithFrame:attributeNames:attributeValues:baseURL:DOMElement:]):
3428         Pass the DOMElement to the plugin if it's a WebKit plugin (we need to handle Netscape plugins
3429         differently).
3430
3431 2006-05-04  Tim Omernick  <timo@apple.com>
3432
3433         Reviewed by John Sullivan.
3434
3435         <rdar://problem/4480186> Give WebKit plugins access to their own DOM element
3436
3437         This does not fix <rdar://problem/4480187> Give Netscape plugins access to their own DOM element --
3438         we're not going to use the ObjC DOM API for that, but rather the NP bindings API.
3439
3440         * Plugins/WebPluginPackage.m:
3441         Declared WebPlugInContainingElementKey.  This is not a new plugin argument -- it's been in our public
3442         headers since all along, but has never been concretely declared -- plugins that referenced it would not
3443         link.
3444
3445         * WebCoreSupport/WebFrameBridge.m:
3446         (-[WebFrameBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:DOMElement:]):
3447         Added DOMElement parameter, which is now included in the plugin arguments dictionary.
3448         (-[WebFrameBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:DOMElement:]):
3449         ditto
3450
3451         * WebKit.exp:
3452         Export WebPlugInContainingElementKey.
3453
3454 2006-05-02  Darin Adler  <darin@apple.com>
3455
3456         Reviewed by Eric.
3457
3458         - http://bugzilla.opendarwin.org/show_bug.cgi?id=8677
3459           REGRESSION: wkSetUpFontCache() may be called before the SPIs are connected.
3460
3461         I don't know how reproduce this without one of Rosyna's hacks installed, so I
3462         did not include a test.
3463
3464         * Misc/WebStringTruncator.m: (+[WebStringTruncator initialize]): Add call to
3465         InitWebCoreSystemInterface.
3466
3467         * WebCoreSupport/WebSystemInterface.m: (InitWebCoreSystemInterface): Add a boolean
3468         so we will only do this one time.
3469
3470 2006-05-02  Adele Peterson  <adele@apple.com>
3471
3472         Reviewed by Tim O.
3473
3474         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=6988
3475         REGRESSION: Display correct context menus for new text fields
3476
3477         * WebView/WebView.m: (-[WebView _menuForElement:defaultItems:]):
3478         Don't let the UI delegate have control over the context menu for text fields.
3479
3480 2006-05-01  Mitz Pettel  <opendarwin.org@mitzpettel.com>
3481
3482         Reviewed by Darin.
3483
3484         - fix http://bugzilla.opendarwin.org/show_bug.cgi?id=8658
3485           Assertion failure in -[WebPluginContainerCheck _isForbiddenFileLoad]
3486           (bridge is null) when clicking QuickTime object with href
3487
3488         * WebView/WebHTMLView.m:
3489        (-[WebHTMLView setDataSource:]): Set the pluginController's dataSource.
3490
3491 2006-05-01  Maciej Stachowiak  <mjs@apple.com>
3492
3493         - fix build
3494
3495         * WebKit.exp: Add symbol that the new Safari will need.
3496
3497 2006-05-01  John Sullivan  <sullivan@apple.com>
3498
3499         Reviewed by Tim Omernick.
3500         
3501         - fixed <rdar://problem/3126419> history load enforces history limit, but deletes the newest instead of oldest items
3502         - added notification reporting items discarded during load because the age limit or item count limit is exceeded
3503         - a few other minor tweaks
3504
3505         * History/WebHistory.h:
3506         fixed a typo and an incorrect method name
3507         
3508         * History/WebHistoryPrivate.h:
3509         Added declaration of WebHistoryItemsDiscardedWhileLoadingNotification. Also changed signature of
3510         WebHistoryPrivate method -loadFromURL:error: to have new collectDiscardedItemsInto: parameter.
3511         Also deleted declarations of two methods that didn't actually exist (loadHistory and initWithFile:), 
3512         and added comments about which methods should become public API, WebKit-internal, or file-internal.
3513
3514         * History/WebHistory.m:
3515         (-[WebHistoryPrivate arrayRepresentation]):
3516         This method, called only by _saveHistoryGuts:, used to deliberately leave out items that violated
3517         either the age limit or the item count limit. Now all the items are included (and thus saved), and
3518         all the pruning is done at load time, so clients can keep track of the pruned items by observing
3519         the new WebHistoryItemsDiscardedWhileLoadingNotification
3520         (-[WebHistoryPrivate _loadHistoryGutsFromURL:savedItemsCount:collectDiscardedItemsInto:error:]):
3521         Now keeps track of all the items that violated the age