Reviewed by Dave Hyatt.
[WebKit-https.git] / WebKit / ChangeLog
1 2005-05-04  Darin Adler  <darin@apple.com>
2
3         Reviewed by Dave Hyatt.
4
5         - fixed layout tests
6
7         * WebKit.pbproj/project.pbxproj: Set deployment target to 10.3 in the build styles.
8         When built without a build style (by Apple B&I) we want to get the target from the
9         environment. But when built with a build style (by Safari engineers and others), we want
10         to use 10.3. Because our deployment target was not set, we ran into this bug:
11
12             <rdar://problem/4108717> CTFontGetGlyphWithName doesn't work with some strings
13
14         * Makefile.am: Took out extra parameters that make command-line building different from
15         Xcode building. Now that this is fixed, you should not get a full rebuild if you switch
16         from command line to Xcode or back.
17
18 2005-05-04  Chris Blumenberg  <cblu@apple.com>
19
20         Fixed: 
21         <rdar://problem/4078417> REGRESSION (125-412): MLB gameday page doesn't update (Flash)
22         <rdar://problem/4072280> XMLHttpRequest calls onReadyStateChange callback with bogus status value
23         
24         Reviewed by john.
25
26         Our WebKit-level caching of subresources "dumbed-down" information held in NSURLResponse. This caused some loads to lack response headers and thus disabling cache directives. Status codes were also not retained and this caused XMLHttpRequest to fail frequently. The fix is to have WebResource retain the NSURLResponse and to use the NSURLResponse when we decide to load from WebResources.
27
28         * WebCoreSupport.subproj/WebBridge.m:
29         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): call new [WebResource _initWithData:URL:response:]
30         * WebView.subproj/WebBaseResourceHandleDelegate.m:
31         (-[WebBaseResourceHandleDelegate _canUseResourceWithResponse:]): new, checks response cache directives
32         (-[WebBaseResourceHandleDelegate loadWithRequest:]): call _canUseResourceWithResponse:
33         (-[WebBaseResourceHandleDelegate saveResource]): call new [WebResource _initWithData:URL:response:]
34         * WebView.subproj/WebResource.m:
35         (-[WebResourcePrivate dealloc]):
36         (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call renamed _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:
37         (-[WebResource initWithCoder:]): decode the NSURLReponse
38         (-[WebResource encodeWithCoder:]): encode the NSURLReponse
39         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]): take the NSURLReponse
40         (-[WebResource _initWithData:URL:response:]): new
41         (-[WebResource _initWithPropertyList:]): decode the NSURLReponse
42         (-[WebResource _propertyListRepresentation]): encode the NSURLReponse
43         (-[WebResource _response]): return ivar if we have one
44         * WebView.subproj/WebResourcePrivate.h:
45
46 2005-05-03  David Hyatt  <hyatt@apple.com>
47
48         Fix object element support so that fallback content works.  With this change Safari passes the Acid2 test.
49         
50         Reviewed by Maciej
51
52         * WebCoreSupport.subproj/WebBridge.m:
53         (-[WebBridge determineObjectFromMIMEType:URL:]):
54         * WebView.subproj/WebDataSource.m:
55         (-[WebDataSource _receivedMainResourceError:complete:]):
56         * WebView.subproj/WebMainResourceClient.m:
57         (-[WebMainResourceClient continueAfterContentPolicy:response:]):
58
59 2005-05-03  Darin Adler  <darin@apple.com>
60
61         * WebView.subproj/WebUIDelegate.h: Fixed incorrect comment.
62
63 >>>>>>> 1.3131
64 2005-05-01  Darin Adler  <darin@apple.com>
65
66         - move to Xcode native targets and stop checking in generated files
67
68         * WebKit.pbproj/project.pbxproj: Updated to use native targets and generate all the generated
69         files, so we don't have to check them in any more.
70         * Info.plist: Added. Native targets use a separate file for this.
71
72         * Plugins.subproj/npapi.m: Fixed import statement to get npapi.h from <WebKit/> rather than current directory.
73
74         * Makefile.am: Removed timestamp cleaning rules since we don't use it any more.
75
76         * .cvsignore: Removed various timestamp files.
77
78         * DOM.subproj/DOM-compat.h: Removed.
79         * DOM.subproj/DOM.h: Removed.
80         * DOM.subproj/DOMCSS.h: Removed.
81         * DOM.subproj/DOMCore.h: Removed.
82         * DOM.subproj/DOMEvents.h: Removed.
83         * DOM.subproj/DOMExtensions.h: Removed.
84         * DOM.subproj/DOMHTML.h: Removed.
85         * DOM.subproj/DOMPrivate.h: Removed.
86         * DOM.subproj/DOMRange.h: Removed.
87         * DOM.subproj/DOMStylesheets.h: Removed.
88         * DOM.subproj/DOMTraversal.h: Removed.
89         * DOM.subproj/DOMViews.h: Removed.
90         * Plugins.subproj/WebScriptObject.h: Removed.
91         * Plugins.subproj/npapi.h: Removed.
92         * Plugins.subproj/npruntime.h: Removed.
93         * copy-webcore-files-to-webkit: Removed.
94         * embed-frameworks.sh: Removed.
95         * force-clean-timestamp: Removed.
96
97 2005-04-28  Darin Adler  <darin@apple.com>
98
99         Reviewed by Maciej.
100
101         - fixed problems preventing us from compiling with gcc 4.0
102
103         * WebKit.pbproj/project.pbxproj: Removed -fobjc-exceptions because I can't figure out an easy
104         way to pass it only when compiling Objective-C/C++. Removed -Wmissing-prototypes from
105         WARNING_CPLUSPLUSFLAGS since it's now a C-only warning.
106
107         * History.subproj/WebHistoryItem.m: (-[WebHistoryItem pageCache]): Changed return type
108         to match the declaration.
109         * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
110         Fixed a BOOL that should have been a Boolean.
111         * WebCoreSupport.subproj/WebTextRenderer.m: Removed redundant copy of ROUND_TO_INT, also in
112         a WebCore header.
113         (-[WebTextRenderer _computeWidthForSpace]): Had to add cast because of difference in type of
114         ROUND_TO_INT vs. CEIL_TO_INT.
115         (pathFromFont): Added a cast to convert UInt8 * to char *.
116         * WebView.subproj/WebFrameView.m:
117         (-[WebFrameView _setDocumentView:]): Fixed parameter type to match the declaration.
118         (-[WebFrameView documentView]): Fixed return type to match the declaration.
119         * WebView.subproj/WebHTMLView.m:
120         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
121         Initialized a variable to quiet an incorrect gcc 4.0 uninitialized variable warning.
122         (-[WebHTMLView deleteToMark:]): Switched from @try style to NS_DURING style of exception handler
123         because we can't pass -fobjc-exceptions just to Objective-C at the moment (see above).
124         (-[WebHTMLView selectToMark:]): Ditto.
125         (-[WebHTMLView swapWithMark:]): Ditto.
126
127 2005-04-27  John Sullivan  <sullivan@apple.com>
128
129         Reviewed by Dave Harrison.
130         
131         - fixed <rdar://problem/3547489> pop-up window blocking preference and 
132         menu item can easily get out of sync.
133
134         * WebView.subproj/WebPreferences.m:
135         (-[WebPreferences _setStringValue:forKey:]):
136         save local value before setting value in NSUserDefaults, so clients reacting to NSUserDefaults
137         change notification but calling back on WebPreferences API will see the updated value.
138         (-[WebPreferences _setIntegerValue:forKey:]):
139         ditto
140         (-[WebPreferences _setBoolValue:forKey:]):
141         ditto
142
143 2005-04-26  Richard Williamson   <rjw@apple.com>
144
145         Fixed <rdar://problem/4098713> Scripting API is incompatible with Mozilla
146
147         Reviewed by Chris.
148
149         * Plugins.subproj/npfunctions.h:
150         * Plugins.subproj/npruntime.h:
151
152 2005-04-26  Darin Adler  <darin@apple.com>
153
154         Reviewed by John.
155
156         - fixed <rdar://problem/3655817> please add support for mouse wheel events and the onmousewheel handler
157
158         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView scrollWheel:]): Call sendScrollWheelEvent: method
159         instead of the old scrollOverflowWithScrollWheelEvent: (just a name change).
160
161 2005-04-18  Darin Adler  <darin@apple.com>
162
163         Reviewed by Hyatt.
164
165         - fixed <rdar://problem/4092614> REGRESSION (Tiger): progressively loaded background images "scroll around" instead of just appearing
166
167         * WebCoreSupport.subproj/WebImageData.m:
168         (-[WebImageData _imageSourceOptions]): Moved a global inside this function, since it's only used here.
169         (-[WebImageData _cacheImages:allImages:]): Fixed a sizeof that was getting the size of the wrong thing.
170         (-[WebImageData _isSizeAvailable]): Used calloc in a more consistent way.
171         (drawPattern): Removed an unneeded cast.
172         (-[WebImageData tileInRect:fromPoint:context:]): Here's the actual bug fix. Don't use the image size
173         when deciding whether the image needs to be tiled as a pattern nor when creating the pattern: in both
174         cases, use the tile size. The old way was wrong, and the new way works perfectly. Also removed uneeded
175         error message when the image is not yet loaded enough to create a CGImageRef for it -- it's fine to
176         draw nothing in that case.
177
178 2005-04-14  John Sullivan  <sullivan@apple.com>
179
180         Reviewed by Chris.
181
182         * WebView.subproj/WebBaseResourceHandleDelegate.m:
183         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]):
184         Beefed up assertion that's been bugging me and Chris to include
185         the two troublemaking values.
186
187 2005-04-05  David Hyatt  <hyatt@apple.com>
188
189         Fix for 4077106, wheel scroll amount smaller in Tiger.  All along wheeling should have been 4x the default
190         line height of 10 (just as arrow keys did).  Scroll arrows should have done this too for scroll views (they did
191         already for overflow sections).  This patch puts the override into the scrollview itself, and removes the
192         multipliers in the private frame methods.
193         
194         Reviewed by darin
195
196         * WebView.subproj/WebFrameView.m:
197         (-[WebFrameView _verticalKeyboardScrollDistance]):
198         (-[WebFrameView initWithFrame:]):
199         (-[WebFrameView _horizontalKeyboardScrollDistance]):
200
201 === WebKit-312.1 ===
202
203 2005-03-31  Chris Blumenberg  <cblu@apple.com>
204
205         Fixed: <rdar://problem/4070729> REGRESSION (125-311, Panther-only?): Safari crashes while reloading "My eBay" page
206
207         Reviewed by rjw.
208
209         * WebView.subproj/WebBaseResourceHandleDelegate.m:
210         (-[WebBaseResourceHandleDelegate resourceData]): retain and autorelease resourceData since releaseResources (which releases resourceData) may be called before the caller of this method has an opporuntity to retain the returned data
211
212 === Safari-412 ===
213
214 === Safari-411 ===
215
216 2005-03-23  Richard Williamson   <rjw@apple.com>
217
218         Use Patti Yeh's hack to determine the appropriate rectangle
219         to place the "associated word" window.  
220         If there is no marked text firstRectForCharacterRange: will
221         use the selected range to determine the returned rectangle,
222         ignoring the input range.  This is the fix from
223         4029491 that I previously backed out.
224
225         Reviewed by Vicki.
226
227         * WebView.subproj/WebHTMLView.m:
228         (-[WebHTMLView firstRectForCharacterRange:]):
229
230 2005-03-23  Richard Williamson   <rjw@apple.com>
231
232         Fixed <rdar://problem/4062490> REGRESSION (WebKit-408): no subresources reported in Activity window after going back at hrweb.apple.com
233
234         Stop collecting subresource responses after the document
235         had loaded, not after it has been opened.
236
237         Reviewed by Chris.
238
239         * WebView.subproj/WebFrame.m:
240         (-[WebFrame _setState:]):
241         (-[WebFrame _opened]):
242
243 2005-03-21  Maciej Stachowiak  <mjs@apple.com>
244
245         Reviewed by Darin.
246
247         <rdar://problem/4051145> The QuickTime Cocoa plug-in needs an SPI that it can call to check for URL policy
248
249         * Plugins.subproj/WebPluginContainerCheck.h: Added.
250         * Plugins.subproj/WebPluginContainerCheck.m: Added this new helper class to encapsulate
251         an async plugin navigation check.
252         (+[WebPluginContainerCheck checkWithRequest:target:resultObject:selector:controller:]): Convenience allocator that gives autoreleased value.
253         (-[WebPluginContainerCheck initWithRequest:target:resultObject:selector:controller:]): Initializer.
254         (-[WebPluginContainerCheck finalize]): Just assert that we're done, it would
255         be bad to deallocate this object while request is still outstanding.
256         (-[WebPluginContainerCheck dealloc]): Ditto.
257         (-[WebPluginContainerCheck _continueWithPolicy:]): Method to continue after async
258         policy check.
259         (-[WebPluginContainerCheck _isDisallowedFileLoad]): Do "file: URL from remote content"
260         check.
261         (-[WebPluginContainerCheck _actionInformationWithURL:]): Helper to make action
262         dictionary.
263         (-[WebPluginContainerCheck _askPolicyDelegate]): Call policy delegate to let
264         the app decide if this load is allowed.
265         (-[WebPluginContainerCheck start]): Start the check.
266         (-[WebPluginContainerCheck cancel]): Cancel a check in progress.
267         * Plugins.subproj/WebPluginController.h:
268         * Plugins.subproj/WebPluginController.m:
269         (-[WebPluginController initWithDocumentView:]): Initialize new _checksInProgress field.
270         (-[WebPluginController _webPluginContainerCancelCheckIfAllowedToLoadRequest:]): Implement
271         this new SPI method.
272         (-[WebPluginController _cancelOutstandingChecks]): New helper to make sure to cancel
273         all outstanding requests when destroying all plugins.
274         (-[WebPluginController destroyAllPlugins]): Call above helper.
275         (-[WebPluginController _webPluginContainerCheckIfAllowedToLoadRequest:inFrame:resultObject:selector:]): Implement this new plug-in SPI method.
276         (-[WebPluginController bridge]): New helper method.
277         (-[WebPluginController webView]): New helper method.
278         * WebView.subproj/WebPolicyDelegatePrivate.h: Add new navigation
279         type WebNavigationTypePlugInRequest.
280         * WebKit.pbproj/project.pbxproj: Add new files.
281         * WebView.subproj/WebDefaultPolicyDelegate.m:
282         (-[WebDefaultPolicyDelegate webView:decidePolicyForNavigationAction:request:frame:decisionListener:]): Don't open externally on a plug-in request.
283
284 2005-03-23  Richard Williamson   <rjw@apple.com>
285
286         Fixed <rdar://problem/4053515> REGRESSION (Mail): Kotoeri input method reconversion does not work in WebViews
287
288         We now use actual document NSRanges to represent both marked text
289         ranges and selection ranges.
290
291         Reviewed by Ken Kocienda.
292
293         * WebView.subproj/WebHTMLView.m:
294         (-[WebHTMLView validAttributesForMarkedText]):
295         (-[WebHTMLView firstRectForCharacterRange:]):
296         (-[WebHTMLView selectedRange]):
297         (-[WebHTMLView markedRange]):
298         (-[WebHTMLView _selectMarkedText]):
299         (-[WebHTMLView setMarkedText:selectedRange:]):
300
301 === Safari-410 ===
302
303 2005-03-22  Darin Adler  <darin@apple.com>
304
305         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
306
307 === Safari-409 ===
308
309 2005-03-20  Maciej Stachowiak  <mjs@apple.com>
310
311         Reviewed by Darin.
312
313         <rdar://problem/4060020> Add stub version of security SPI for QuickTime plug-in so QuickTime team has something to compile and link against
314         
315         * Plugins.subproj/WebPluginContainerPrivate.h: Added.
316         * Plugins.subproj/WebPluginController.m:
317         (-[WebPluginController _webPluginContainerCheckIfAllowedToLoadRequest:inFrame:resultObject:selector:]):
318         (-[WebPluginController _webPluginContainerCancelCheckIfAllowedToLoadRequest:]):
319         * WebKit.pbproj/project.pbxproj:
320
321 2005-03-19  David Harrison  <harrison@apple.com>
322
323         Reviewed by Maciej.
324         
325         <rdar://problem/4059479> Misspelling underline does underline the whole word, could go farther to the right
326
327         * WebCoreSupport.subproj/WebTextRenderer.m:
328         (-[WebTextRenderer misspellingLinePatternGapWidth]):
329         (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
330         Consider that the last pixel in the underline dot pattern is transparent.
331
332 2005-03-19  Darin Adler  <darin@apple.com>
333
334         Reviewed by Maciej (a while back).
335
336         - fixed <rdar://problem/4059323> local-file security check is allowing plug-in streams, but must not
337
338         * Plugins.subproj/WebNetscapePluginStream.m:
339         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
340         Roll out change I made on 3-13. That change is needed for subresource, but not for plug-in streams.
341         For plug-in streams it's too risky, and leaves a serious security hole open.
342
343 2005-03-19  Darin Adler  <darin@apple.com>
344
345         Reviewed by Ken and John.
346
347         - fixed <rdar://problem/4059123> REGRESSION (402-403): deleteWordForward: and deleteWordBackward: start deleting single characters after the first delete
348
349         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
350         Fixed backwards logic in here and added missing check. Set action to one of the two typing actions only
351         if isTypingAction is YES.
352
353 2005-03-19  David Harrison  <harrison@apple.com>
354
355         Reviewed by me (written by Patti Yeh).
356         
357         <rdar://problem/4029491> <TCIM> CangJie: the candidate window appears at the top left hand corner during typing in Mail and iChat
358
359         * WebView.subproj/WebHTMLView.m:
360         (-[WebHTMLView firstRectForCharacterRange:]):
361         Use selected range if there is no marked range.
362
363 === Safari-408 ===
364
365 2005-03-18  David Harrison  <harrison@apple.com>
366
367         Reviewed by Darin.
368
369         <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
370
371         * WebView.subproj/WebFrameView.m:
372         (-[WebFrameView webCoreBridge]):
373         New to conform to WebCoreBridgeHolder protocol.
374
375 2005-03-18  Richard Williamson   <rjw@apple.com>
376         
377         Fixed <rdar://problem/4057004> Data from XMLHTTPRequest is never dealloced
378
379         WebDataSource keeps an array of all the NSURLResponses associated
380         with the load for a page.  This is used to playback delegate messages
381         when loading from the page cache.  However, after the document
382         has completed it's initial load, we continue to keep track of responses. 
383         So, this has the consequence of keeping all the responses for a page
384         around for the life of the page.  NSURLResponses are now very
385         heavy.  They indirectly reference the resource data (via the
386         download assessment dictionary).  This fix will keep
387         references to responses around for those resources loaded during initial
388         page load, but not after that point.
389
390         Reviewed by Ken.
391
392         * WebView.subproj/WebDataSource.m:
393         (-[WebDataSource _addResponse:]):
394         (-[WebDataSource _stopRecordingResponses]):
395         * WebView.subproj/WebDataSourcePrivate.h:
396         * WebView.subproj/WebFrame.m:
397         (-[WebFrame _opened]):
398
399 2005-03-18  Ken Kocienda  <kocienda@apple.com>
400
401         Reviewed by Darin
402
403         Fix for this bug:
404         
405         <rdar://problem/4053729> Copy/paste of page with frames into Blot or Mail does nothing and loses insertion point
406
407         * WebView.subproj/WebHTMLView.m:
408         (-[WebHTMLView _selectedArchive]): Wrap frameset documents in an iframe, so they can be pasted into 
409         existing documents which will have a body or frameset of their own.
410
411 === Safari-407 ===
412
413 2005-03-17  Richard Williamson   <rjw@apple.com>
414
415         Fixed <rdar://problem/4055562> REGRESSION (Tiger): Safari doesn't draw progressively-loaded JPEGs (www.theregister.co.uk, www.titantalk.com)
416
417         Anothe side effect of lazy loading of image meta data.  We now
418         don't cache image size until size meta data is actually available.
419
420         Reviewed by Darin.
421
422         * WebCoreSupport.subproj/WebImageData.m:
423         (-[WebImageData size]):
424
425 2005-03-16  David Harrison  <harrison@apple.com>
426
427         Reviewed by Maciej.
428         
429         <rdar://problem/4048506> Deleting from beginning of editable div deletes other document elements
430         
431         Also changed WebCore.
432
433         * WebView.subproj/WebHTMLView.m:
434         (-[WebHTMLView _shouldDeleteRange:]):
435         Added call to new bridge method canDeleteRange.
436
437 2005-03-16  Ken Kocienda  <kocienda@apple.com>
438
439         Reviewed by Darin
440
441         Fix for this bug:
442         
443         <rdar://problem/4042935> undo doesn't work properly during inline input
444
445         * WebView.subproj/WebHTMLView.m:
446         (-[WebHTMLView setMarkedText:selectedRange:]): Call new -[WebCoreBridge replaceMarkedTextWithText:] instead of 
447         -[WebCoreBridge replaceSelectionWithText:selectReplacement:smartReplace:]. The former call was just added in 
448         order to provide a better mapping of international text input onto the typing command/undo design.
449
450 2005-03-15  Richard Williamson   <rjw@apple.com>
451
452         Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance
453
454         If client mutates request use new Foundation SPI to address remove applewebdata properties      from request.
455
456         Reviewed by Ken Kocienda.
457
458         * WebView.subproj/WebBaseResourceHandleDelegate.m:
459         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
460         * WebView.subproj/WebDataProtocol.h:
461         * WebView.subproj/WebDataProtocol.m:
462         (+[NSURLRequest _webDataRequestPropertyKey]):
463
464 2005-03-15  Ken Kocienda  <kocienda@apple.com>
465
466         Reviewed by Vicki
467
468         Fox for this bug:
469         
470         <rdar://problem/4052642> Each delete keystroke is in its own undo group; not included in undo group with other typing
471
472         Calling -[WebCore setSelectedDOMRange:range affinity:] had the result of "closing" any active set of typing
473         keystrokes grouped together in a single undo operation. My change on 27 Jan to route delete keystrokes 
474         through _deleteRange:killRing:... made this feature regress. Previous to that change, the backwards delete
475         key went through separate code that is no longer in the tree that did not set the selection in the way
476         it is done now.
477         
478         The solution is to add an extra argument to the set-selection call. The WebCoreBridge now offers this method:
479         -[WebCore setSelectedDOMRange:range affinity:closeTyping:]. Now, callers must indicate whether setting the 
480         selection will act to close typing or not. The code changes below all add this new argument with the
481         appropriate value for closeTyping.
482
483         * WebView.subproj/WebHTMLView.m:
484         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Passes NO for closeTyping when
485         deletionAction is deleteKeyAction or forwardDeleteKeyAction; YES when deleteSelectionAction.
486         (-[WebHTMLView _expandSelectionToGranularity:]): Passes YES for closeTyping.
487         (-[WebHTMLView selectToMark:]): Passes YES for closeTyping.
488         (-[WebHTMLView swapWithMark:]): Passes YES for closeTyping.
489         (-[WebHTMLView transpose:]): Passes YES for closeTyping.
490         (-[WebHTMLView _selectMarkedText]): Passes NO for closeTyping.
491         (-[WebHTMLView _selectRangeInMarkedText:]): Passes NO for closeTyping.
492         * WebView.subproj/WebView.m:
493         (-[WebView setSelectedDOMRange:affinity:]): Passes YES for closeTyping.
494
495 2005-03-14  Richard Williamson   <rjw@apple.com>
496
497         Fix <rdar://problem/4051389> 8A413: gifs animating too fast
498
499         Reviewed by Maciej.
500
501         Match Mozilla's policy for minimum frame duration, which is somewhat odd:
502
503         <= 0.01 sec use .1 sec, otherwise use specified duration.
504
505         * WebCoreSupport.subproj/WebImageData.m:
506         (-[WebImageData _frameDurationAt:]):
507
508 2005-03-14  Darin Adler  <darin@apple.com>
509
510         Reviewed by Harrison.
511
512         - fixed <rdar://problem/4049776> Seed: Mail: Disable spellcheck leaves red artifacts
513
514         * WebView.subproj/WebFrameInternal.h: Added _unmarkAllMisspellings.
515         * WebView.subproj/WebFrame.m: (-[WebFrame _unmarkAllMisspellings]): Added.
516         Calls unmarkAllMisspellings on the bridge and self and all subframes.
517
518         * WebView.subproj/WebView.m: (-[WebView setContinuousSpellCheckingEnabled:]):
519         Call _unmarkAllMisspellings on the main frame when turning continuous spell checking off.
520
521 2005-03-14  Richard Williamson   <rjw@apple.com>
522
523         Fixed <rdar://problem/4027928> Tiger_8A394:Acrobat crashes while tried to remove the subscription errors by clicking on "Would you like to remove the subscription" from Tracker details view pane
524
525         The Acrobat application triggers loads of new documents in it's policy delegate.  This
526         ultimately causes the WebHTMLView to be released before their event handlers have
527         returned.  To bullet proof against this case we retain/release self before passing
528         the event on for further handling.
529         
530         Reviewed by Maciej.
531
532         * WebView.subproj/WebHTMLView.m:
533         (-[WebHTMLView _updateMouseoverWithEvent:]):
534         (-[WebHTMLView scrollWheel:]):
535         (-[WebHTMLView mouseDown:]):
536         (-[WebHTMLView mouseDragged:]):
537         (-[WebHTMLView mouseUp:]):
538         (-[WebHTMLView keyDown:]):
539         (-[WebHTMLView keyUp:]):
540         (-[WebHTMLView performKeyEquivalent:]):
541
542 2005-03-14  Vicki Murley  <vicki@apple.com>
543
544         - roll out the fix for 4040321, since it is still pending CCC review.
545
546     2005-03-10  Richard Williamson   <rjw@apple.com>
547
548         Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance 
549
550         Reviewed by Darin.
551
552         If a delegate returns a mutated applewebdata: request in it's willSendRequest:
553         method, we don't load using the WebDataRequest.  Instead we do a normal load.
554         Unfortunately, if the request they return is mutated *copy* of the applewebdata: 
555         request it will hold the applewebdata: special properties.  These properties 
556         will be encoded into the cache.   They should not be.  So, to fix, we sanitize the
557         request, by removing the special properties from the request.
558
559         Note that we had to dig into the private guts of NSURLRequest because there is
560         no public mechanism to remove properties from a request, see 4046775.
561
562         * WebView.subproj/WebBaseResourceHandleDelegate.m:
563         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
564         * WebView.subproj/WebDataProtocol.h:
565         * WebView.subproj/WebDataProtocol.m:
566         (-[NSURLRequest _webDataRequestExternalRequest]):
567         (-[NSURLRequest _webDataRequestSanitize]):
568
569 === Safari-406 ===
570
571 2005-03-13  Darin Adler  <darin@apple.com>
572
573         Reviewed by Ken and Maciej.
574
575         - fixed <rdar://problem/4049040> REGRESSION (403-405): security check prevents user stylesheet from loading (Dictionary.app doesn't work at all!)
576
577         * Plugins.subproj/WebNetscapePluginStream.m: (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
578         Allow plug-in subresource streams to load with any URL, ignoring the "canLoadURL" method's restriction (only
579         file URLs can load other file URLs), which now applies only to main resources, like web pages in frames or
580         object tags and plug-in main resources.
581
582         * WebCoreSupport.subproj/WebBridge.m:
583         (-[WebBridge startLoadingResource:withURL:customHeaders:]): Allow subresources to load with any URL, as above.
584         This allows things like images, stylesheets, and JavaScript to be loaded without the "canLoadURL" method's
585         restriction.
586         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
587         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Ditto.
588
589 2005-03-10  Richard Williamson   <rjw@apple.com>
590
591         Fixed <rdar://problem/4040321> Exception: Someone's trying to encode a WebDataRequestParameters instance 
592
593         Reviewed by Darin.
594
595         If a delegate returns a mutated applewebdata: request in it's willSendRequest:
596         method, we don't load using the WebDataRequest.  Instead we do a normal load.
597         Unfortunately, if the request they return is mutated *copy* of the applewebdata: 
598         request it will hold the applewebdata: special properties.  These properties 
599         will be encoded into the cache.   They should not be.  So, to fix, we sanitize the
600         request, by removing the special properties from the request.
601
602         Note that we had to dig into the private guts of NSURLRequest because there is
603         no public mechanism to remove properties from a request, see 4046775.
604
605         * WebView.subproj/WebBaseResourceHandleDelegate.m:
606         (-[WebBaseResourceHandleDelegate willSendRequest:redirectResponse:]):
607         * WebView.subproj/WebDataProtocol.h:
608         * WebView.subproj/WebDataProtocol.m:
609         (-[NSURLRequest _webDataRequestExternalRequest]):
610         (-[NSURLRequest _webDataRequestSanitize]):
611
612 === Safari-405 ===
613
614 2005-03-10  Maciej Stachowiak  <mjs@apple.com>
615
616         Reviewed by Vicki.
617
618         <rdar://problem/4046510> REGRESSION (TOT): All Flash and Shockwave plugin-based web content missing
619         
620         * Plugins.subproj/WebNetscapePluginStream.m:
621         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
622
623 2005-03-10  John Sullivan  <sullivan@apple.com>
624
625         Reviewed by Vicki.
626         
627         - fixed <rdar://problem/4045843> Going back/forward to error page 
628         hits assertion in -[WebDataSource(WebPrivate) _setData:]
629
630         * WebView.subproj/WebDataSource.m:
631         (-[WebDataSource _setData:]):
632         Removed bogus assertion
633
634 2005-03-09  Deborah Goldsmith  <goldsmit@apple.com>
635
636         Reviewed by Darin.
637
638         - fixed <rdar://problem/3997044> default encoding for non-Latin incorrect
639
640         * WebKit/WebView.subproj/WebPreferences.m: (+[WebPreferences _systemCFStringEncoding]):
641         Call __CFStringGetUserDefaultEncoding to get region, and TECGetWebTextEncodings to get
642         the first encoding to determine the default encoding.
643
644 2005-03-09  Darin Adler  <darin@apple.com>
645
646         Reviewed by Richard.
647
648         - fixed <rdar://problem/4034175> REGRESSION (Mail): Can't use any font with style Light/Condensed/Semibold/Extrabold, etc
649
650         * WebView.subproj/WebHTMLView.m:
651         (-[WebHTMLView _styleFromFontAttributes:]): Use a constant instead of hard-coded weight for clarity.
652         (-[WebHTMLView _originalFontA]): Ditto.
653         (-[WebHTMLView _originalFontB]): Ditto.
654         (-[WebHTMLView _addToStyle:fontA:fontB:]): Add code to detect the case where the family name is not good enough
655         to specify the font precisely. In that case, use the Postscript font name instead. Also change variable names
656         so it's easier to understand the method.
657
658 2005-03-06  Maciej Stachowiak  <mjs@apple.com>
659
660         Reviewed by Darin.
661
662         <rdar://problem/4005575> Arbitrary file disclosure vulnerability due to ability to load local html from remote content
663         
664         * Plugins.subproj/WebBaseNetscapePluginView.m:
665         (-[WebBaseNetscapePluginView requestWithURLCString:]):
666         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
667         (-[WebNetscapePluginEmbeddedView didStart]):
668         * Plugins.subproj/WebNetscapePluginStream.m:
669         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
670         * WebCoreSupport.subproj/WebBridge.m:
671         (-[WebBridge createWindowWithURL:frameName:]):
672         (-[WebBridge startLoadingResource:withURL:customHeaders:]):
673         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]):
674         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
675         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):
676         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]):
677         (-[WebBridge createChildFrameNamed:withURL:referrer:renderPart:allowsScrolling:marginWidth:marginHeight:]):
678         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]):
679         * WebView.subproj/WebFrame.m:
680         (-[WebFrame _loadURL:referrer:intoChild:]):
681         * WebView.subproj/WebFramePrivate.h:
682
683 2005-03-09  Richard Williamson   <rjw@apple.com>
684         
685         Fixed <rdar://problem/4032938> Safari: text layout for MS P Gothic font is corrupted
686
687         The AppKit and ATS reports that MS P Gothic is fixed pitch.  It is
688         not!  This is another case of "fixed pitch" being wrong.  I've
689         coalesced all the special cases into our isFontFixedPitch:, and
690         used a dictionary to improve speed.  No performance regression.
691
692         Reviewed by Maciej.
693
694         * WebCoreSupport.subproj/WebTextRenderer.m:
695         (-[WebTextRenderer _computeWidthForSpace]):
696         * WebCoreSupport.subproj/WebTextRendererFactory.m:
697         (-[WebTextRendererFactory clearCaches]):
698         (-[WebTextRendererFactory isFontFixedPitch:]):
699
700 2005-03-09  Darin Adler  <darin@apple.com>
701
702         Reviewed by Maciej.
703
704         <rdar://problem/4040388> REGRESSION (172-173): nonrepro crash in -[NSString(WebNSURLExtras) _web_isUserVisibleURL]
705
706         * Misc.subproj/WebNSURLExtras.m:
707         (-[NSString _web_isUserVisibleURL]): Fixed some pointer expressions that didn't include the index in the expression.
708         (readIDNScriptWhiteListFile): Removed NSLog statements in here since we decided they aren't useful and they will
709         write some messages on Tiger.
710
711 2005-03-09  Darin Adler  <darin@apple.com>
712
713         * DOM.subproj/DOMPrivate.h: Checked in file copied from WebCore.
714
715 2005-03-08  Richard Williamson   <rjw@apple.com>
716
717         Fixed <rdar://problem/4036949> many JPEG images fail to incremental-load due to change in ImageIO JPEG header parsing (to be fixed in WebKit)
718         Fixed <rdar://problem/4042570> Need to check image properties for presence of width/height properties
719
720         ImageIO-55 changed how image properties are created.  They
721         are now created incrementally.  So we need "re-get" the image
722         properties if the properties we care about (width/height) aren't
723         in the property dictionary.
724
725         Reviewed by John.
726
727         * WebCoreSupport.subproj/WebImageData.h:
728         * WebCoreSupport.subproj/WebImageData.m:
729         (-[WebImageData init]):
730         (-[WebImageData fileProperties]):
731         (-[WebImageData propertiesAtIndex:]):
732         (-[WebImageData _isSizeAvailable]):
733         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
734         (-[WebImageData size]):
735
736 2005-03-08  John Sullivan  <sullivan@apple.com>
737
738         A couple of tweaks to the previous patch, from Darin's review.
739
740         * Misc.subproj/WebNSPasteboardExtras.m:
741         (_writableTypesForImageWithoutArchive):
742         remove unnecessary _web prefix
743         (_writableTypesForImageWithArchive):
744         ditto
745         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
746         use mutableCopy rather than initWithArray:, and adjust for name changes
747
748 2005-03-08  John Sullivan  <sullivan@apple.com>
749
750         Reviewed by Ken.
751         
752         - fixed <rdar://problem/4031826> REGRESSION (Mail): standalone images from 
753         Safari can't be pasted into Mail (WebKit part of fix)
754         
755         We were always declaring webarchive-related pasteboard types, even in the standalone
756         image cases where we had no webarchive. Unfortunately, the WebView pasteboard-related
757         API doesn't prevent this kind of thing from happening, because the code that
758         declares the types isn't guaranteed to be anywhere near the code that writes
759         the pasteboard data.
760         
761         After this fix, I discovered that pasting standalone images into Mail still doesn't
762         work right, but the remaining issues seem to be entirely in Mail. I wrote up 4041671
763         to cover these.
764
765         * Misc.subproj/WebNSPasteboardExtras.h:
766         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
767         Added boolean parameter; clients must specify whether or not there's an
768         archive involved, because the array of types is different if there is.
769
770         * Misc.subproj/WebNSPasteboardExtras.m:
771         (_web_writableTypesForImageWithoutArchive):
772         new static function, constructs (once) and returns the array of types
773         for images that don't have archives
774         (_web_writableTypesForImageWithArchive):
775         new static function, constructs (once) and returns the array of types
776         for images that do have archives
777         (+[NSPasteboard _web_writableTypesForImageIncludingArchive:]):
778         added boolean parameter, now calls one of the two new static functions
779         
780         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]):
781         added asserts that we aren't declaring the archive types if we don't have archive data
782         
783         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
784         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
785         
786         * WebView.subproj/WebDefaultContextMenuDelegate.m:
787         (-[WebDefaultUIDelegate copyImageToClipboard:]):
788         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
789
790         * WebView.subproj/WebImageView.m:
791         (-[WebImageView copy:]):
792         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
793
794         * WebView.subproj/WebView.m:
795         (-[WebView pasteboardTypesForElement:]):
796         updated to pass parameter to _web_writableTypesForImageIncludingArchive:
797
798 2005-03-07  Richard Williamson   <rjw@apple.com>
799
800         More bullet proofing for <rdar://problem/4038304> CrashTracer: ....9 crashes at com.apple.WebKit: -[WebTextRenderer initWithFont:usingPrinterFont:] + 840
801
802         Protect against removal of Times and Times New Roman from
803         system.  If these fonts are removed attempt to get system font
804         instead of FATAL_ALWAYS.
805
806         Reviewed by John.
807
808         * WebCoreSupport.subproj/WebTextRenderer.m:
809         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
810
811 === Safari-403 ===
812
813 2005-03-06  Darin Adler  <darin@apple.com>
814
815         - fixed obvious mistake in IDN script code (luckily it hasn't been in a submission yet!)
816
817         * Misc.subproj/WebNSURLExtras.m: (readIDNScriptWhiteListFile): Use "index" to index into the array,
818         not "script", which is the script number, not the 32-bit-word index.
819
820 2005-03-05  Kevin Decker  <kdecker@apple.com>
821
822         Reviewed by Darin.
823
824         Fixed: <rdar://problem/4038529> Infinite progress bar loading webcams and other sites that use multipart/x-mixed-replace
825
826         The previous patch I landed prevented us from loading multipart/x-mixed-replace but did not always update the progress bar accordingly.  
827         This stops websites from having seemingly infinite progress in the browser UI.  
828
829         * WebCoreSupport.subproj/WebSubresourceClient.m:
830         (-[WebSubresourceClient didReceiveResponse:]): If this is "multipart/x-mixed-replace", remove the WebBaseResourceHandleDelegate client from 
831         the datasource's subresource array, otherwise -[WebDataSource isLoading] incorrectly returns YES.   Also it's possible at this point in
832          time we're done loading now (loaded everything else except for the multipart/x-mixed-replace content) so go ahead and check to see if 
833          in fact we're complete. 
834         * WebView.subproj/WebMainResourceClient.m:
835         (-[WebMainResourceClient connection:didReceiveResponse:]): ditto
836
837 2005-03-05  Richard Williamson   <rjw@apple.com>
838
839         Fixed panther build problem.  Shouldn't include
840         changes for 3968753 on panther.
841
842         Reviewed by John.
843
844         * WebView.subproj/WebView.m:
845         (-[WebView _commonInitializationWithFrameName:groupName:]):
846
847 2005-03-05  Darin Adler  <darin@apple.com>
848
849         Reviewed by John.
850
851         - fixed <rdar://problem/4034603> REGRESSION (185-188): RadarWeb can't send enclosures anymore
852
853         * WebView.subproj/WebFormDataStream.m:
854         (closeCurrentStream): Release currentData when closing the stream.
855         (advanceCurrentStream): Set up and retain currentData when the current stream is reading that data, so the
856         data won't be released while in use.
857         (formCreate): Initialize currentData to NULL.
858
859         - fixed <rdar://problem/4037562> Tiger8A402: Help Viewer crashed when viewing help for iChat (infinite recursion in WebView)
860
861         * WebView.subproj/WebView.m: (-[WebView _responderValidateUserInterfaceItem:]):
862         Check for the case where we ourselves are the responder. This avoids an infinite loop.
863         The actual code to perform operations avoids this with a global variable, but this lighter weight
864         solution is sufficient here because validate operations don't call through to the next responder.
865
866 2005-03-04  Richard Williamson   <rjw@apple.com>
867
868         Fixed <rdar://problem/3968753> REGRESSION: Poor performance with differing multiple animated GIFs (was fast in Panther)
869
870         Disable coalesced updates (in CG).  This restores the
871         panther behavior.
872
873         Reviewed by David Harrison.
874
875         * WebView.subproj/WebView.m:
876         (-[WebView _commonInitializationWithFrameName:groupName:]):
877
878 2005-03-04  Adele Amchan  <adele@apple.com>
879
880         Reviewed by Darin.
881
882         * English.lproj/StringsNotToBeLocalized.txt: added new strings "text/x-vcf" and "text/x-csv" to the list
883
884 2005-03-04  Adele Amchan  <adele@apple.com>
885
886         Reviewed by Chris.
887
888         Fix for <rdar://problem/4032982> Sun iPlanet app: not able to import AddressBook CSV format addresses properly
889         Fix for <rdar://problem/4032985> Sun iPlanet app: not able to import vCard format addresses properly
890
891         * WebView.subproj/WebTextView.m:
892         (+[WebTextView unsupportedTextMIMETypes]): added "text/x-csv" and "text/x-vcf" to the list of MIME types that our text view doesn't handle
893
894 2005-03-04  Darin Adler  <darin@apple.com>
895
896         Reviewed by John.
897
898         - fixed <rdar://problem/4036817> REGRESSION: ctrl-y broken when a line + carriage return cut
899
900         * WebView.subproj/WebHTMLView.m:
901         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:deletionAction:]): Merged _handleKillRing behavior
902         into this function, since there's now a more-complicated way the startNewKillRingSequence boolean needs to
903         be handled. Set the startNewKillRingSequence boolean after the entire process so changing the selection before
904         and during the editing dosn't clear it. Also change "isTypingAction" parameter to "deletionAction" so we can
905         handle forward delete with this method.
906         (-[WebHTMLView _deleteSelection]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
907         which is the way to say the same thing using the new parameter.
908         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Refactor to use the _deleteRange
909         method above. Also calls _shouldDeleteRange: for the pre-existing selection case; not doing that before was
910         a bug.
911         (-[WebHTMLView deleteToMark:]): Pass deleteSelectionAction for action rather than NO for isTypingAction,
912         which is the way to say the same thing using the new parameter.
913
914 2005-03-04  Darin Adler  <darin@apple.com>
915
916         Reviewed by John.
917
918         - fixed <rdar://problem/4020413> REGRESSION (Mail): can't use fonts with names that start with "#" in Mail (Korean fonts)
919
920         * WebView.subproj/WebHTMLView.m:
921         (-[WebHTMLView _styleFromFontAttributes:]): Quote font name when calling setFontFamily.
922         (-[WebHTMLView _addToStyle:fontA:fontB:]): Ditto.
923
924 2005-03-04  Darin Adler  <darin@apple.com>
925
926         Reviewed by John.
927
928         - fixed <rdar://problem/3965666> IDN spoofing vulnerability caused by Unicode characters that look like ASCII characters
929
930         * Misc.subproj/WebNSURLExtras.m:
931         (readIDNScriptWhiteListFile): Added. Reads file and parses script names.
932         (readIDNScriptWhiteList): Added. Calls readIDNScriptWhiteList on each of the white list locations in succession.
933         (allCharactersInIDNScriptWhiteList): Renamed from containsPossibleLatinLookalikes and changed sense.
934         Now calls readIDNScriptWhiteList first time, and then uses the read-in list to check the scripts.
935         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call allCharactersInIDNScriptWhiteList instead of
936         containsPossibleLatinLookalikes.
937         * Resources/IDNScriptWhiteList.txt: Added.
938         * WebKit.pbproj/project.pbxproj: Added IDNScriptWhiteList.txt file.
939
940         * Misc.subproj/WebKitLocalizableStrings.m: Removed. This is simply unused.
941         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
942
943 2005-03-04  Darin Adler  <darin@apple.com>
944
945         Reviewed by John.
946
947         - fixed <rdar://problem/3937667> REGRESSION (Mail): Zooming a window from titlebar button doesn't paint newly-exposed portions of window
948
949         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
950         Re-set-up the visRect if the bounds changes due to layout.
951
952 === Safari-402 ===
953
954 2005-03-03  Jens Alfke  <jens@apple.com>
955
956         Reviewed by rjw.
957
958         <rdar://problem/3991818> REGRESSION: Images scale while loading
959         The code could crop an image when not all the scanlines were available yet, and it could crop when only a sub-rect of the image was to be drawn; but if it had to do both at once, it got the coordinates wrong. Fixed that.
960
961         * WebCoreSupport.subproj/WebImageData.m:
962         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
963
964 2005-03-01  David Hyatt  <hyatt@apple.com>
965
966         Fix for 3841186, scrollbar shows up disabled when it should not appear at all.  Make sure updateScrollers
967         is never allowed to be re-entrant from any call point by moving the guard inside the function itself.
968         
969         Reviewed by John Sullivan
970
971         * WebView.subproj/WebDynamicScrollBarsView.m:
972         (-[WebDynamicScrollBarsView updateScrollers]):
973         (-[WebDynamicScrollBarsView reflectScrolledClipView:]):
974
975 2005-03-02  Chris Blumenberg  <cblu@apple.com>
976
977         Fixed: <rdar://problem/4029010> Expose method to retrieve drag image for WebView's selection
978
979         Reviewed by sullivan.
980
981         * WebView.subproj/WebHTMLView.m:
982         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call _selectionDraggingImage
983         (-[WebHTMLView _selectionDraggingImage]): new SPI for Mail, factored from previous method
984         (-[WebHTMLView _selectionDraggingRect]): new SPI for Mail
985         * WebView.subproj/WebHTMLViewPrivate.h:
986
987 2005-03-02  John Sullivan  <sullivan@apple.com>
988
989         Reviewed by Adele.
990         
991         - fixed <rdar://problem/4023337> Safari stops loading any page (-[NSCFDictionary setObject:forKey:]: 
992         attempt to insert nil key)
993         
994         It is very likely that the exception being hit is caused by the same problem as WebFoundation
995         bug 4018486. This change makes the code robust against this kind of problem regardless.
996
997         * WebView.subproj/WebBaseResourceHandleDelegate.m:
998         (-[WebBaseResourceHandleDelegate saveResource]):
999         Don't call addSubresource if newly-created resource is nil (but do assert on debug builds).
1000         Also assert that originalURL and MIMEType are not nil.
1001         
1002         * WebView.subproj/WebDataSource.m:
1003         (-[WebDataSource addSubresource:]):
1004         Don't add nil subresource to dictionary, but do assert on debug builds.
1005
1006 === Safari-401 ===
1007
1008 2005-03-01  John Sullivan  <sullivan@apple.com>
1009
1010         Reviewed by Darin.
1011         
1012         - fixed <rdar://problem/3987482> Format>Style>Italic is not enabled when a 
1013         compose window is empty (works in Blot)
1014
1015         * WebView.subproj/WebHTMLView.m:
1016         (-[WebHTMLView becomeFirstResponder]):
1017         call _updateFontPanel here so NSFontManager knows the right font for the menu
1018         items and the font panel
1019
1020 2005-03-01  David Harrison  <harrison@apple.com>
1021
1022         Reviewed by Chris.
1023         
1024         <rdar://problem/3915560> Mail would like an SPI to enable "smart" text paste/drop
1025
1026         * WebView.subproj/WebHTMLView.m:
1027         (-[WebHTMLView _smartDeleteRangeForProposedRange:]):
1028         (-[WebHTMLView _smartInsertForString:replacingRange:beforeString:afterString:]):
1029         New.
1030
1031 2005-02-28  John Sullivan  <sullivan@apple.com>
1032
1033         Reviewed by Ken.
1034         
1035         - WebKit part of fix for <rdar://problem/4023490> REGRESSION (125-185): Tabbing through links 
1036         on frameset page gets stuck at end (tivofaq.com)
1037         
1038         This tab-to-links stuff has been in shaky condition ever since AppKit futzed with
1039         tabbing behavior in Tiger to add support for including the toolbar in the key loop.
1040         I made some changes months ago to compensate for that, but some cases, such as this
1041         one, still weren't fixed.
1042
1043         * WebCoreSupport.subproj/WebBridge.m:
1044         (-[WebBridge _nextKeyViewOutsideWebFrameViewsWithValidityCheck:]):
1045         new bottleneck method, extracted from nextKeyViewOutsideWebFrameViews; handles
1046         nextKeyView or nextValidKeyView depending on parameter.
1047         (-[WebBridge nextKeyViewOutsideWebFrameViews]):
1048         now calls extracted method
1049         (-[WebBridge nextValidKeyViewOutsideWebFrameViews]):
1050         new method, calls new bottleneck method
1051         
1052         * WebView.subproj/WebHTMLView.m:
1053         (-[WebHTMLView nextValidKeyView]):
1054         when we're stuck at the end of a nextKeyView chain inside a nexted frame, use
1055         nextValidKeyViewOutsideWebFrameViews. Make sure we don't end up looking inside
1056         the web frame views while doing this.
1057
1058 2005-02-25  Darin Adler  <darin@apple.com>
1059
1060         Reviewed by John.
1061
1062         - fixed <rdar://problem/4025088> window onblur and onfocus don't fire when text field has focus
1063
1064         * WebView.subproj/WebHTMLView.m:
1065         (-[WebHTMLView updateFocusState]): Renamed from updateFocusDisplay. Added call to setWindowHasFocus: method.
1066         (-[WebHTMLView viewDidMoveToWindow]): Call method by new name.
1067         (-[WebHTMLView windowDidBecomeKey:]): Ditto.
1068         (-[WebHTMLView windowDidResignKey:]): Ditto.
1069         (-[WebHTMLView becomeFirstResponder]): Ditto.
1070         (-[WebHTMLView resignFirstResponder]): Ditto.
1071
1072 === Safari-400 ===
1073
1074 2005-02-25  Richard Williamson   <rjw@apple.com>
1075
1076         Fixed <rdar://problem/4000962> 8A375: Help Viewer displays voiced sound and semi-voiced characters strangely (characters don't seem to be composed)
1077
1078         Added special case for voiced marks.
1079
1080         Reviewed by John.
1081
1082         * WebCoreSupport.subproj/WebTextRenderer.m:
1083         (widthForNextCharacter):
1084
1085 2005-02-25  Darin Adler  <darin@apple.com>
1086
1087         Reviewed by John.
1088
1089         - fixed <rdar://problem/4019823> Seed: Control-Y doesn't work
1090
1091         * WebView.subproj/WebHTMLView.m:
1092         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Call _handleKillRing
1093         after setting the selection, since it uses the selection to get the text.
1094         (-[WebHTMLView _insertText:selectInsertedText:]): Check for empty string to avoid an assertion
1095         on the other side of the bridge when you yank the empty string.
1096
1097 2005-02-24  Richard Williamson   <rjw@apple.com>
1098
1099         Fixed <rdar://problem/3382926> Bidi neutrals at RTL/LTR boundaries not handled correctly.
1100
1101         If directionality is specified use that as initial directionality,
1102         rather than neutral directionality.     
1103
1104         Reviewed by Hyatt.
1105
1106         * WebCoreSupport.subproj/WebTextRenderer.m:
1107         (widthForNextCharacter):
1108
1109 2005-02-24  Adele Amchan  <adele@apple.com>
1110
1111         Reviewed by Chris.
1112        
1113         Fix for <rdar://problem/4023393> Safari crashed in khtml::RenderObject::repaintAfterLayoutIfNeeded(QRect const&, QRect const&)
1114
1115         We were crashing after hitting PageDown when viewing a pdf because 
1116         WebKit was calling over to WebCore to scroll overflow areas.
1117         Since this only needs to be done if we're dealing with a WebHTMLView, 
1118         I added a wrapper function to check the documentView before calling
1119         over to WebCore.
1120
1121         * WebView.subproj/WebFrameView.m:
1122         (-[WebFrameView _scrollOverflowInDirection:granularity:]): added wrapper function that checks if documentView is a WebHTMLView 
1123         (-[WebFrameView scrollToBeginningOfDocument:]): uses new wrapper function now
1124         (-[WebFrameView scrollToEndOfDocument:]): uses new wrapper function now
1125         (-[WebFrameView _pageVertically:]): uses new wrapper function now
1126         (-[WebFrameView _pageHorizontally:]): uses new wrapper function now
1127         (-[WebFrameView _scrollLineVertically:]): uses new wrapper function now
1128         (-[WebFrameView _scrollLineHorizontally:]): uses new wrapper function now
1129
1130 2005-02-24  Richard Williamson   <rjw@apple.com>
1131
1132         Fixed <rdar://problem/3985889> REGRESSION (125-180): setting <img> src to GIF that already animated does not animate; just shows final frame
1133         
1134         Reviewed by Hyatt.
1135
1136         * WebCoreSupport.subproj/WebImageData.h:
1137         * WebCoreSupport.subproj/WebImageData.m:
1138         (-[WebImageData resetAnimation]):
1139         * WebCoreSupport.subproj/WebImageRenderer.m:
1140         (-[WebImageRenderer resetAnimation]):
1141         (-[WebInternalImage resetAnimation]):
1142         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
1143
1144 2005-02-24  Kevin Decker  <kdecker@apple.com>
1145
1146         Reviewed by John.
1147
1148         Fixed <rdar://problem/3962401> Don't load multipart/x-mixed-replace content to prevent memory leak
1149
1150         Since we're not going to fix <rdar://problem/3087535> for Tiger, we should not load multipart/x-mixed-replace content.  Pages with such content contain what is essentially an infinite load and therefore may leak.
1151
1152         * WebView.subproj/WebMainResourceClient.m: 
1153         (-[WebMainResourceClient connection:didReceiveResponse:]):  Disabled loading of multipart/x-mixed-replace content until we fully implement server side push. 
1154          * WebCoreSupport.subproj/WebSubresourceClient.m: 
1155         (-[WebSubresourceClient didReceiveResponse:]): Ditto. Same exact thing for sub resources. 
1156
1157
1158 2005-02-23  John Sullivan  <sullivan@apple.com>
1159
1160         Reviewed by Ken.
1161         
1162         - fixed <rdar://problem/4021370> REGRESSION (Tiger): WebKit part of fix for 
1163         shift-tab on tivofaq doing the wrong thing
1164
1165         * WebView.subproj/WebFrameView.m:
1166         (-[WebFrameView becomeFirstResponder]):
1167         If our previousValidKeyView is nil or self (same as nil modulo AppKit oddness),
1168         look out of the box and get the previousValidKeyView of our webview.
1169
1170 2005-02-23  Darin Adler  <darin@apple.com>
1171
1172         Reviewed by Hyatt.
1173
1174         - fixed <rdar://problem/4010196> REGRESSION (125-186+): 8-character timestamps in gmail wrap to 2 lines (width:8ex; font-size:80%)
1175
1176         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer xHeight]): Return the maximum
1177         of the "x" height and width. Comment in the code explains why in more detail.
1178
1179 2005-02-22  Richard Williamson   <rjw@apple.com>
1180
1181         Fixed <rdar://problem/3937203> when a div adds a scrollbar (overflow:auto) we do not get regions
1182
1183         Compare regions after automatice scroll regions have been
1184         added.
1185
1186         Reviewed by Maciej.
1187
1188         * WebCoreSupport.subproj/WebBridge.h:
1189         * WebCoreSupport.subproj/WebBridge.m:
1190         (-[WebBridge dealloc]):
1191         (-[WebBridge _compareDashboardRegions:]):
1192         (-[WebBridge dashboardRegionsChanged:]):
1193
1194 2005-02-22  Richard Williamson   <rjw@apple.com>
1195
1196         Fixed <rdar://problem/4012463> Dashboard widgets don't work with authenticating proxies
1197
1198         Added new SPI for dashboard that just calls default delegate
1199         behavior.
1200
1201         Reviewed by Maciej.
1202
1203         * WebView.subproj/WebView.m:
1204         (-[WebView handleAuthenticationForResource:challenge:fromDataSource:]):
1205         * WebView.subproj/WebViewPrivate.h:
1206
1207 2005-02-22  Chris Blumenberg  <cblu@apple.com>
1208
1209         Reviewed by mjs.
1210
1211         * WebCoreSupport.subproj/WebBridge.m:
1212         (-[WebBridge issuePasteAndMatchStyleCommand]): support for new "PasteAndMatchStyle" exec command
1213
1214 === Safari-188 ===
1215
1216 2005-02-21  David Harrison  <harrison@apple.com>
1217
1218         Reviewed by Darin.
1219
1220         <rdar://problem/3943090> REGRESSION (Mail): Spelling underline incompletely erased following certain steps
1221
1222         * WebCoreSupport.subproj/WebTextRenderer.m:
1223         (-[WebTextRenderer misspellingLineThickness]):
1224         (-[WebTextRenderer misspellingLinePatternWidth]):
1225         Replaced #defines with these methods, so others can get the same info.
1226         
1227         (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
1228         Keep underline within originally specified bounds.
1229         
1230
1231 2005-02-21  Darin Adler  <darin@apple.com>
1232
1233         Reviewed by John.
1234
1235         - fixed <rdar://problem/4016358> don't ever display IDN URLs with characters from "possible Latin look-alike" scripts
1236
1237         * Misc.subproj/WebNSURLExtras.m:
1238         (containsPossibleLatinLookalikes): Added.
1239         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Call containsPossibleLatinLookalikes, and if true,
1240         don't decode the host name.
1241
1242 2005-02-19  Kevin Decker  <kdecker@apple.com>
1243
1244         Reviewed by Chris.
1245
1246         Fixed <rdar://problem/4010765> Flash player can be used to arbitrarily open popup windows without user permission
1247         
1248         Our window.open() policy is to refuse the <script>window.open(...)</script> case and allow the inline the <a href="javascript:window.open('foo')> case.  Clever advertisers at some point realized that by executing their Javascript through the Flash plugin, Safari would always treat their code as the inline case, and thus, they were able to work around our popup blocker. 
1249
1250         * Plugins.subproj/WebBaseNetscapePluginView.h: Addded currentEventIsUserGesture boolean ivar. 
1251         * Plugins.subproj/WebBaseNetscapePluginView.m:
1252         (-[WebBaseNetscapePluginView sendEvent:]): If at any point the user clicks or presses a key from within a plugin, set the currentEventIsUserGesture flag to true. This is important to differentiate legitimate window.open() calls originating from plugins;  we still want to allow those. 
1253         (-[WebBaseNetscapePluginView initWithFrame:]): In our asynchronous load, pass along currentEventIsUserGesture to the PluginRequest. 
1254         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): Inform WebCore if this was a user originated gesture when calling executeScript(). 
1255         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]):
1256         (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:didStartFromUserGesture:]):
1257         (-[WebPluginRequest isCurrentEventUserGesture]): Added. 
1258
1259 2005-02-18  Chris Blumenberg  <cblu@apple.com>
1260
1261         Fixed: <rdar://problem/3945271> REGRESSION (Mail): pasted plain text should pick up typing style instead of being unstyled
1262
1263         Reviewed by kocienda.
1264
1265         * WebView.subproj/WebDataSource.m:
1266         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for matchStyle to replaceSelection
1267         * WebView.subproj/WebHTMLView.m:
1268         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]): return new chosePlainText parameter
1269         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass chosePlainText for matchStyle to replaceSelection
1270         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
1271
1272 2005-02-17  Richard Williamson   <rjw@apple.com>
1273
1274         Removed code that should not have been checked in from
1275         last patch.
1276
1277         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1278         (-[WebTextRendererFactory isFontFixedPitch:]):
1279
1280 2005-02-17  Richard Williamson   <rjw@apple.com>
1281
1282         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
1283
1284         Fixed w/o introducing a performance regression.
1285
1286         Reviewed by Vicki (and earlier by Dave Harrison).
1287
1288         * WebCoreSupport.subproj/WebTextRenderer.m:
1289         (-[WebTextRenderer _computeWidthForSpace]):
1290         (widthForNextCharacter):
1291         * WebCoreSupport.subproj/WebTextRendererFactory.h:
1292         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1293         (-[NSFont _web_isFakeFixedPitch]):
1294         (-[WebTextRendererFactory isFontFixedPitch:]):
1295         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
1296
1297 2005-02-17  Richard Williamson   <rjw@apple.com>
1298
1299         Fixed <rdar://problem/3959304> PDF in img tag is not rendered correctly anymore
1300
1301         We were incorrectly adding image position when flipping coordinates.
1302
1303         Reviewed by David Harrison.
1304
1305         * WebCoreSupport.subproj/WebImageData.m:
1306         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):
1307
1308 2005-02-17  Richard Williamson   <rjw@apple.com>
1309
1310         Fixed <rdar://problem/4007262> Seed: Flight tracker scrolling moves to the left
1311
1312         Added SPI for dashboard to disable wheel scrolling of the WebClipView.
1313
1314         Reviewed by Ken.
1315
1316         * ChangeLog:
1317         * WebView.subproj/WebClipView.m:
1318         (-[WebClipView _focusRingVisibleRect]):
1319         (-[WebClipView scrollWheel:]):
1320         * WebView.subproj/WebView.m:
1321         (-[WebViewPrivate init]):
1322         (-[WebView drawRect:]):
1323         (-[WebView _dashboardBehavior:]):
1324         * WebView.subproj/WebViewInternal.h:
1325         * WebView.subproj/WebViewPrivate.h:
1326
1327 === Safari-187 ===
1328
1329 2005-02-17  Vicki Murley <vicki@apple.com>
1330
1331         - roll out this change, since it causes a 1.5% performance regression
1332
1333     2005-02-15  Richard Williamson   <rjw@apple.com>
1334         
1335         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
1336         
1337         Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
1338         strictly speaking it isn't.  (Similar to what we do with
1339         Courier New.)
1340
1341         Reviewed by David Harrison.
1342
1343         * WebCoreSupport.subproj/WebTextRenderer.m:
1344         (-[WebTextRenderer _computeWidthForSpace]):
1345         * WebCoreSupport.subproj/WebTextRendererFactory.h:
1346         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1347         (-[NSFont _web_isFakeFixedPitch]): 
1348         (-[WebTextRendererFactory isFontFixedPitch:]):
1349         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
1350
1351 2005-02-17  John Sullivan  <sullivan@apple.com>
1352
1353         Reviewed by Ken.
1354         
1355         - fixed <rdar://problem/3997185> The Web view on .Mac Prefs caused System Prefs 
1356         to lockup (resolved by re-boot only)
1357
1358         * WebCoreSupport.subproj/WebBridge.m:
1359         (-[WebBridge nextKeyViewOutsideWebFrameViews]):
1360         Don't allow recursion here; assert on debug build, return nil on deployment. I
1361         couldn't get my machine into a state to repro this problem (and neither could the
1362         originator), but it's obvious from the stack crawl that this method was recursing
1363         when it shouldn't have.
1364
1365 2005-02-16  John Sullivan  <sullivan@apple.com>
1366
1367         Written by Darin, reviewed by me.
1368         
1369         - WebKit part of fix for <rdar://problem/4007384> 
1370         FILTER: Bookmark of RSS with Japanese search word & multiple RSS pages loses filter
1371
1372         * DOM.subproj/DOMPrivate.h:
1373         updated this file, which is a copy of the WebCore version
1374
1375 2005-02-16  Richard Williamson   <rjw@apple.com>
1376
1377         Fixed <rdar://problem/3966973> Tiger 8A357: Binary Compatiblity: frequent Webstractor.app crashes [WebImageData _nextFrame]
1378
1379         Webstractor.app was playing tricks to create thumbnails of
1380         pages.  This caused the 'focusView' to be incorrect during
1381         animated GIF frame rendering.
1382
1383         Reviewed by Chris.
1384
1385         * WebCoreSupport.subproj/WebImageRenderer.m:
1386         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
1387
1388 2005-02-16  Vicki Murley  <vicki@apple.com>
1389
1390         Reviewed by me, code change by Darin.
1391
1392         - fixed the build on Panther
1393
1394         * WebView.subproj/WebFormDataStream.m: (webSetHTTPBody):
1395         Added a Panther-specific code path that just loads all the data into one big
1396         NSData object. This means that bug 3686434 won't be fixed on SUPanWheat; we'll
1397         still load the file into memory before sending it to the server on Panther.
1398
1399 2005-02-15  Richard Williamson   <rjw@apple.com>
1400
1401         Fixed <rdar://problem/3998368> Tiger8A376: WebTextRenderer assertion failure in Safari while browsing news.bbc.co.uk
1402
1403         Removed use of FATAL_ALWAYS from getUncachedWidth().  It's unclear
1404         why we would trigger the FATAL_ALWAYS.  In the past we've seen
1405         the message triggered because of corrupt fonts.  Anyway, in this
1406         particular case, we will now return 0 for the character width,
1407         rather than exiting.
1408
1409         Reviewed by David Harrison.
1410
1411         * WebCoreSupport.subproj/WebTextRenderer.m:
1412         (getUncachedWidth):
1413
1414 2005-02-15  Richard Williamson   <rjw@apple.com>
1415
1416         Fixed <rdar://problem/3999467> when Osaka-Mono is specified as fixed width font, Osaka used instead
1417
1418         Lie about Osaka-Mono.  Treat it as fixed pitch, even though,
1419         strictly speaking it isn't.  (Similar to what we do with
1420         Courier New.)
1421
1422         Reviewed by David Harrison.
1423
1424         * WebCoreSupport.subproj/WebTextRenderer.m:
1425         (-[WebTextRenderer _computeWidthForSpace]):
1426         * WebCoreSupport.subproj/WebTextRendererFactory.h:
1427         * WebCoreSupport.subproj/WebTextRendererFactory.m:
1428         (-[NSFont _web_isFakeFixedPitch]):
1429         (-[WebTextRendererFactory isFontFixedPitch:]):
1430         (-[WebTextRendererFactory fontWithFamily:traits:size:]):
1431
1432 2005-02-14  Darin Adler  <darin@apple.com>
1433
1434         Reviewed by John.
1435
1436         - fixed <rdar://problem/3686434> Safari uses too much RAM on file upload, leading to malloc errors and crashes (HP printers)
1437
1438         * WebView.subproj/WebFormDataStream.h: Added webSetHTTPBody, which creates and connects an appropriate
1439         stream to an NSMutableURLRequest.
1440         * WebView.subproj/WebFormDataStream.m: Added implementation here.
1441
1442         * WebCoreSupport.subproj/WebBridge.m:
1443         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
1444         Use webSetHTTPBody.
1445         * WebCoreSupport.subproj/WebSubresourceClient.m:
1446         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
1447         Use webSetHTTPBody.
1448         * WebView.subproj/WebFrame.m:
1449         (-[WebFrame _loadItem:withLoadType:]): Use webSetHTTPBody.
1450         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
1451
1452         * English.lproj/StringsNotToBeLocalized.txt: Updated for this change and other recent changes.
1453
1454 2005-02-11  Richard Williamson   <rjw@apple.com>
1455
1456         Fixed <rdar://problem/4002505> 8A378: Endlessly animating gif's on http://www.entropy.ch
1457         
1458         If animated images had no loop count property we were incorrectly
1459         looping forver.  Note, that in the course of fixing this bug
1460         I found that ImageIO is incorrectly NOT reporting the loop count
1461         for a whole class of animated GIFs.
1462
1463         Reviewed by Ken Kocienda.
1464
1465         * WebCoreSupport.subproj/WebImageData.m:
1466         (-[WebImageData _repetitionCount]):
1467
1468 === Safari-186 ===
1469
1470 2005-02-11  Vicki Murley  <vicki@apple.com>
1471
1472         Reviewed by Darin.
1473
1474         - fix deployment build on Panther
1475  
1476         * WebView.subproj/WebHTMLView.m:
1477         (-[WebHTMLView changeBaseWritingDirection:]): ifdef out NSWritingDirectionNatural
1478         (-[WebHTMLView toggleBaseWritingDirection:]): fix a spacing issue
1479
1480 2005-02-10  David Harrison  <harrison@apple.com>
1481
1482         Reviewed by Richard.
1483
1484         <rdar://problem/3991652> REGRESSION (Mail): Deleting entire line in reply deletes extra blank line and moves insertion point
1485         
1486         * WebView.subproj/WebHTMLView.m:
1487         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]):
1488         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1489         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
1490         (-[WebHTMLView selectToMark:]):
1491         (-[WebHTMLView swapWithMark:]):
1492         (-[WebHTMLView transpose:]):
1493         (-[WebHTMLView _selectMarkedText]):
1494         (-[WebHTMLView _selectRangeInMarkedText:]):
1495         Adopt new default affinity of NSSelectionAffinityDownstream as of <rdar://problem/3937447>.
1496         
1497 2005-02-10  Darin Adler  <darin@apple.com>
1498
1499         Reviewed by Harrison.
1500
1501         - fixed <rdar://problem/4002084> Setting ResourceLoadDelegate to nil can cause a crash
1502
1503         * WebView.subproj/WebView.m: (-[WebView _cacheResourceLoadDelegateImplementations]):
1504         Set booleans to either YES or NO, rather than setting them only in the YES case.
1505
1506 2005-02-10  Darin Adler  <darin@apple.com>
1507
1508         Reviewed by Harrison.
1509
1510         - fixed <rdar://problem/3991225> Format->Style->Underline menu item does not get checked when selected text is underlined
1511
1512         * WebView.subproj/WebHTMLView.m:
1513         (-[WebHTMLView validateUserInterfaceItem:]): Added tons of additional cases in here for all the
1514         "action" style methods in this class that don't always want to be valid. For the ones where state
1515         makes sense, added the state-checking code too for the menu item case.
1516         (-[WebHTMLView ignoreSpelling:]): Removed unnecessary "editable text only" check since this command
1517         would work fine on a non-editable selection.
1518         (-[WebHTMLView swapWithMark:]): Ditto.
1519         (-[WebHTMLView changeBaseWritingDirection:]): Added. Like toggle, but based on the sender's tag.
1520
1521 2005-02-08  Darin Adler  <darin@apple.com>
1522
1523         "Reviewed" by Richard (he told me the file was obsolete).
1524
1525         - got rid of an obsolete file
1526
1527         * Plugins.subproj/npsap.h: Removed.
1528         * copy-webcore-files-to-webkit: Removed npsap.h.
1529
1530 2005-02-09  Richard Williamson   <rjw@apple.com>
1531
1532         Fixed <rdar://problem/4000073> non-screen font error on www.worldofwarcraft.com
1533
1534         Reviewed by John Sullivan.
1535
1536         * WebCoreSupport.subproj/WebTextRenderer.m:
1537         (-[WebTextRenderer _smallCapsFont]):
1538
1539 === Safari-185 ===
1540
1541 2005-02-07  Chris Blumenberg  <cblu@apple.com>
1542
1543         Fixed: <rdar://problem/3993354> Safari claims to put RTFD on the pasteboard, but doesn't, in some cases
1544
1545         Reviewed by john.
1546
1547         * WebView.subproj/WebHTMLView.m:
1548         (-[WebHTMLView _stripAttachmentCharactersFromAttributedString:]): moved
1549         (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]): take cachedAttributedString parameter in case the attributed string was gotten already
1550         (-[WebHTMLView _writeSelectionToPasteboard:]): omit RTFD from the types list when there are no attachments
1551
1552 2005-02-07  David Harrison  <harrison@apple.com>
1553
1554         Reviewed by Ken.
1555
1556         <rdar://problem/3990693> REGRESSION (8A373): ctrl-k now deletes just one character instead of line
1557         
1558         * WebView.subproj/WebHTMLView.m:
1559         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]):
1560         Set the selection so that deleteKeyPressedWithSmartDelete knows what to delete.
1561
1562 2005-02-06  Darin Adler  <darin@apple.com>
1563
1564         Reviewed by Maciej.
1565
1566         - fixed <rdar://problem/3963166> PDFView SPI print method is being deprecated, moving to PDFDocument; please update WebKit
1567
1568         * WebView.subproj/WebPDFView.m: (-[WebPDFView printOperationWithPrintInfo:]): Target the document instead of the view.
1569
1570         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes and also moved one translation to be a file-specific
1571         item rather than a file-independent one.
1572
1573 2005-02-05  Chris Blumenberg  <cblu@apple.com>
1574
1575         Fixed: <rdar://problem/3991974> REGRESSION: www.jabra.com world location screen does not work
1576
1577         Reviewed by hyatt.
1578
1579         * WebCoreSupport.subproj/WebBridge.m:
1580         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): use the baseURL from the bridge rather than from the response
1581
1582 2005-02-04  Chris Blumenberg  <cblu@apple.com>
1583
1584         Fixed: <rdar://problem/3802781> rtf->html pasteboard conversion using xhtml
1585
1586         Reviewed by kocienda.
1587
1588         * WebView.subproj/WebHTMLView.m:
1589         (+[WebHTMLView _excludedElementsForAttributedStringConversion]): new
1590         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): call _excludedElementsForAttributedStringConversion
1591
1592 2005-02-04  Chris Blumenberg  <cblu@apple.com>
1593
1594         Fixed: <rdar://problem/3832973> copy text from PowerPoint, paste into Blot (or presumably Mail) and get a single missing image icon
1595
1596         Reviewed by john.
1597
1598         * WebView.subproj/WebHTMLView.m:
1599         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): prefer RTF and RTFD over images just as NSTextView does
1600
1601 2005-02-03  Chris Blumenberg  <cblu@apple.com>
1602
1603         Fixed: <rdar://problem/3555137> REGRESSION (125-173): Flash animation can erase parts of chrome (bookmarks bar & tab bar)
1604
1605         convertRect:toView: returns incorrect results inside of viewWillMoveToWindow: with a nil window. Workaround this by catching this case.
1606
1607         Reviewed by darin.
1608
1609         * Plugins.subproj/WebBaseNetscapePluginView.m:
1610         (-[WebBaseNetscapePluginView superviewsHaveSuperviews]): new
1611         (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]): clip out the plug-in view when superviewsHaveSuperviews returns NO
1612
1613 2005-02-03  Chris Blumenberg  <cblu@apple.com>
1614
1615         Fixed: <rdar://problem/3893513> Sun iPlanet app: when saving to a file it brings up a window with the thing to be saved instead
1616
1617         Reviewed by adele.
1618
1619         * WebView.subproj/WebTextView.m:
1620         (+[WebTextView unsupportedTextMIMETypes]): added "text/ldif" to the list of MIME types that our text view doesn't handle
1621
1622 === Safari-183 ===
1623
1624 2005-02-03  Chris Blumenberg  <cblu@apple.com>
1625
1626         * English.lproj/StringsNotToBeLocalized.txt: updated
1627
1628 2005-02-03  Chris Blumenberg  <cblu@apple.com>
1629
1630         Fixed: <rdar://problem/3989611> Evite style "add vCalendar to calendar" do not work
1631
1632         Reviewed by adele.
1633
1634         * WebView.subproj/WebTextView.m:
1635         (+[WebTextView unsupportedTextMIMETypes]): added "text/x-vcalendar" to the list of MIME types our text view doesn't handle
1636
1637 2005-02-03  Vicki Murley  <vicki@apple.com>
1638
1639         Reviewed by Darin.
1640
1641         - fix deployment build breakage on Panther
1642  
1643         * WebView.subproj/WebHTMLView.m:
1644         (-[WebHTMLView toggleBaseWritingDirection:]):
1645
1646 2005-02-02  John Sullivan  <sullivan@apple.com>
1647
1648         Reviewed by Chris.
1649         
1650         - WebKit part of fix for <rdar://problem/3980651> REGRESSION (125-180): Huge number of pages printed from certain page, 
1651         iFrame involved
1652         
1653         This also fixes the problems with printing from GMail, yay!
1654
1655         * WebView.subproj/WebHTMLView.m:
1656         (-[WebHTMLView _setPrinting:minimumPageWidth:maximumPageWidth:adjustViewSize:]):
1657         Don't adjust margins for header/footer here, because this is called for each subframe.
1658         (-[WebHTMLView knowsPageRange:]):
1659         Do adjust margins for header/footer here (analogous to WebTextView and WebImageView).
1660         Also, round the page height to an integer here (noticed in passing).
1661
1662 2005-02-02  Chris Blumenberg  <cblu@apple.com>
1663
1664         Fixed: <rdar://problem/3986546> Cut, delete, and paste menu items are active when a image is opened in window
1665
1666         Reviewed by john.
1667
1668         * WebView.subproj/WebView.m:
1669         (-[WebView _responderValidateUserInterfaceItem:]): new, has the responder validate the item 
1670         (-[WebView validateUserInterfaceItem:]): call VALIDATE for each repsonder selector using FOR_EACH_RESPONDER_SELECTOR macro
1671         (-[WebView _performResponderOperation:with:]): call factored out method _responderForResponderOperations
1672         (-[WebView _responderForResponderOperations]): new, code from _performResponderOperation:with:
1673
1674 2005-02-02  Chris Blumenberg  <cblu@apple.com>
1675
1676         Fixed: <rdar://problem/3983628> control-click on WebView is not selecting the word under the cursor (Mail, non-editable WebView)
1677
1678         Reviewed by rjw.
1679
1680         * WebCoreSupport.subproj/WebBridge.m:
1681         (-[WebBridge selectWordBeforeMenuEvent]): new
1682         * WebView.subproj/WebView.m:
1683         (-[WebView _selectWordBeforeMenuEvent]): new SPI
1684         (-[WebView _setSelectWordBeforeMenuEvent:]): new SPI
1685         * WebView.subproj/WebViewInternal.h:
1686         * WebView.subproj/WebViewPrivate.h:
1687
1688 2005-02-02  Chris Blumenberg  <cblu@apple.com>
1689
1690         Fixed: <rdar://problem/3986013> Assertion failure going back after page load error (no apparent problem in nondebug build)
1691
1692         Reviewed by rjw.
1693
1694         * WebView.subproj/WebDataSource.m:
1695         (-[WebDataSource _setPrimaryLoadComplete:]): don't set the data source data when the main client is nil
1696
1697 2005-02-02  Ken Kocienda  <kocienda@apple.com>
1698
1699         Reviewed by Darin
1700
1701         Fix for this bug:
1702         
1703         <rdar://problem/3823109> WebKit should support -toggleBaseWritingDirection: (bidi editing support)
1704
1705         * WebView.subproj/WebHTMLView.m:
1706         (-[WebHTMLView _applyParagraphStyleToSelection:withUndoAction:]): New function that calls through to
1707         new feature that allows callers to force all properties in a style to be applied as block styles.
1708         (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]): Removed FIXME comment for something that has been fixed.
1709         (-[WebHTMLView toggleBaseWritingDirection:]): Implemented.
1710
1711 2005-02-01  Richard Williamson   <rjw@apple.com>
1712
1713         Fixed <rdar://problem/3977727> WebKit should use new SPI to support faster GIF rendering
1714
1715         Note:  This REQUIRES build >= 3A362 when building on Tiger.
1716
1717         Reviewed by John.
1718
1719         * WebCoreSupport.subproj/WebImageData.m:
1720         (-[WebImageData _imageSourceOptions]):
1721
1722 === Safari-182 ===
1723
1724 2005-02-01  Richard Williamson   <rjw@apple.com>
1725
1726         Added new SPI for <rdar://problem/3967063> need spi on WebView to turn of lcd text for Dashboard
1727
1728         Reviewed by Chris.
1729
1730         * WebCoreSupport.subproj/WebTextRenderer.m:
1731         (_drawGlyphs):
1732         * WebView.subproj/WebView.m:
1733         (-[WebView drawRect:]):
1734         (-[WebView _dashboardBehavior:]):
1735         (+[WebView _setShouldUseFontSmoothing:]):
1736         (+[WebView _shouldUseFontSmoothing]):
1737         * WebView.subproj/WebViewInternal.h:
1738         * WebView.subproj/WebViewPrivate.h:
1739
1740 2005-01-31  Chris Blumenberg  <cblu@apple.com>
1741
1742         Fixed: <rdar://problem/3949806> REGRESSION: Source window fails to refresh correctly on reload
1743
1744         The data method was being called on WebDataSource before the data was set. This fix makes WebDataSource set the data before releasing the main client instead of waiting for the main client to set it when it is dealloced.
1745
1746         Reviewed by darin.
1747
1748         * WebView.subproj/WebDataSource.m:
1749         (-[WebDataSource _setData:]): moved within file
1750         (-[WebDataSource _setPrimaryLoadComplete:]): call _setData: with the data from the main client before letting go of the main client
1751         * WebView.subproj/WebDataSourcePrivate.h:
1752         * WebView.subproj/WebMainResourceClient.m:
1753         (-[WebMainResourceClient releaseResources]): removed call to _setData: since the data source may need the data before releaseResources is called
1754
1755 2005-01-31  Chris Blumenberg  <cblu@apple.com>
1756
1757         Fixed: <rdar://problem/3946285> Seed: Safari crashed by selecting all at internet-moebel.com
1758
1759         Reviewed by john.
1760
1761         * WebView.subproj/WebHTMLView.m:
1762         (-[WebHTMLView _hitViewForEvent:]): new, factored hit test hack to this method
1763         (-[WebHTMLView _updateMouseoverWithEvent:): call _hitViewForEvent:
1764         (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent: and _isSelectionEvent: on the hit HTMLView or else when it's asked to drag it will assert
1765         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
1766
1767 2005-01-31  David Harrison  <harrison@apple.com>
1768
1769         Reviewed by Darin.
1770
1771         <rdar://problem/3961239> AX Setting AXFocused on AXScrollArea of AXWebArea will cause keyboard selection change
1772
1773         * WebView.subproj/WebHTMLView.m:
1774         (-[WebHTMLView maintainsInactiveSelection]):
1775         Keep the selection when the new first respomder is our own scrollview, in both editable and non-editaqble content.
1776
1777 2005-01-31  Jens Alfke  <jens@apple.com>
1778
1779         Reviewed by John.
1780
1781         - Fixed <rdar://problem/3903199> REGRESSION: Large background patterns slide around while loading
1782
1783         * WebCoreSupport.subproj/WebImageData.m:
1784         (drawPattern):
1785         (-[WebImageData tileInRect:fromPoint:context:]):
1786
1787 2005-01-30  Darin Adler  <darin@apple.com>
1788
1789         Reviewed by John.
1790
1791         - fixed <rdar://problem/3965265> Safari displays HTML as source when default encoding is Hebrew (due to direction overrides added by encoding converter)
1792
1793         * WebView.subproj/WebPreferencesPrivate.h: Added _systemCFStringEncoding, and changed
1794         _setInitialDefaultTextEncodingToSystemEncoding to be a class method.
1795         * WebView.subproj/WebPreferences.m:
1796         (+[WebPreferences _systemCFStringEncoding]): Added. New SPI to be used by Safari. Broken out of
1797         _setInitialDefaultTextEncodingToSystemEncoding, but also added cases for MacArabic and MacHebrew.
1798         (+[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]): Refactor to use _systemCFStringEncoding.
1799
1800 2005-01-28  Jens Alfke  <jens@apple.com>
1801
1802         Reviewed by Richard.
1803
1804         <rdar://problem/3727680> printing some page with WebKit generates a PDF with a 1x1 image with soft mask (causes Acrobat to hang during print spooling)
1805
1806         Detect 1x1 images, extract and cache color of single pixel, reduce draw and tile operations to a color fill (or to a no-op if the pixel is clear.)
1807
1808         * WebCoreSupport.subproj/WebImageData.h:
1809         * WebCoreSupport.subproj/WebImageData.m:
1810         (-[WebImageData _invalidateImages]):
1811         (-[WebImageData _checkSolidColor:]):
1812         (-[WebImageData _cacheImages:allImages:]):
1813         (-[WebImageData _fillSolidColorInRect:compositeOperation:context:]):
1814         (-[WebImageData tileInRect:fromPoint:context:]):
1815
1816 2005-01-28  David Harrison  <harrison@apple.com>
1817
1818         Reviewed by Darin.
1819
1820         <rdar://problem/3584942> AX: Safari Accessibility parent-child mismatch
1821
1822         Use AppKit SPI _accessibilityParentForSubview to return KWQAccObject parent of AppKit AX object.
1823         
1824         * WebView.subproj/WebHTMLView.m:
1825         (-[WebHTMLView _accessibilityParentForSubview:]):
1826         New.
1827
1828 2005-01-28  Chris Blumenberg  <cblu@apple.com>
1829
1830         WebKit side of: <rdar://problem/3951283> can view pages from the back/forward cache that should be disallowed by Parental Controls
1831
1832         Reviewed by john.
1833
1834         * WebView.subproj/WebDefaultPolicyDelegate.m:
1835         (-[WebDefaultPolicyDelegate webView:shouldGoToHistoryItem:]): new private delegate method
1836         * WebView.subproj/WebFrame.m:
1837         (-[WebFrame _goToItem:withLoadType:]): call new delegate method
1838         * WebView.subproj/WebPolicyDelegatePrivate.h:
1839
1840 2005-01-26  Maciej Stachowiak  <mjs@apple.com>
1841
1842         Reviewed by Darin, Hyatt and Ken.
1843
1844         <rdar://problem/3790449> REGRESSION (Mail): underline behavior is flaky because of how CSS handles text-decoration
1845
1846         * WebView.subproj/WebHTMLView.m:
1847         (-[WebHTMLView _styleFromFontAttributes:]): Use new -khtml-text-decorations-in-effect
1848         property
1849         (-[WebHTMLView _styleForAttributeChange:]): likewise
1850         (-[WebHTMLView underline:]): likewise
1851
1852 2005-01-27  Ken Kocienda  <kocienda@apple.com>
1853
1854         Reviewed by Maciej
1855
1856         * WebView.subproj/WebHTMLView.m:
1857         (-[WebHTMLView _handleKillRing:prepend:]): New helper function. Code factored out from 
1858          _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:.
1859         (-[WebHTMLView _deleteRange:killRing:prepend:smartDeleteOK:isTypingAction:]): No longer takes 
1860         unused preflight argument. Now takes new isTypingAction argument. Uses isTypingAction to
1861         determine which flavor of delete command to call.
1862         (-[WebHTMLView _deleteSelection]): No longer passes unused preflight argument. Now passes new isTypingAction argument.
1863         (-[WebHTMLView _deleteWithDirection:granularity:killRing:isTypingAction:]): Rearranged code to call
1864         correct flavor of delete command, based on whether typing should be preserved. Some other cleanups.
1865         (-[WebHTMLView deleteForward:]): Add _isEditable check.
1866         (-[WebHTMLView deleteBackward:]): Now calls _deleteWithDirection instead of having unique behavior different 
1867         from forward delete.
1868         (-[WebHTMLView deleteWordForward:]): Add new isTypingAction flag to _deleteWithDirection call.
1869         (-[WebHTMLView deleteWordBackward:]): Ditto.
1870         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
1871         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
1872         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
1873         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto.
1874         (-[WebHTMLView deleteToMark:]): Ditto.
1875
1876 === Safari-181 ===
1877
1878 2005-01-27  Chris Blumenberg  <cblu@apple.com>
1879
1880         Fixed: <rdar://problem/3973272> REGRESSION: Safari uses QT plugin to display PNG images
1881
1882         Reviewed by john.
1883
1884         * Plugins.subproj/WebBasePluginPackage.m: use renamed QT bundle ID
1885
1886 2005-01-26  Darin Adler  <darin@apple.com>
1887
1888         Reviewed by John.
1889
1890         - fixed <rdar://problem/3829517> WebView still draws white when setDrawsBackground set to NO and no content loaded yet
1891
1892         * WebView.subproj/WebFrameView.m: (-[WebFrameView drawRect:]): Check drawsBackground, and don't
1893         draw the white "no document" background if it's NO. This fixes things for frames with no document.
1894         * WebView.subproj/WebImageView.m: (-[WebImageView drawRect:]): Same as above. This fixes things
1895         for frames with just an image.
1896         * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground: on the
1897         document view if it implements it. This fixes things for frames with plain text.
1898
1899 2005-01-25  John Sullivan  <sullivan@apple.com>
1900
1901         Reviewed by Chris.
1902         
1903         - WebKit part of fix for: <rdar://problem/3970670> Text context menu 
1904           in WebKit needs "Look Up in Dictionary" item
1905
1906         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1907         (localizedMenuTitleFromAppKit):
1908         return English string in the case where AppKit bundle is found but doesn't
1909         contain the expected string. This case will be hit by people testing with
1910         an older AppKit.
1911         (-[WebDefaultUIDelegate menuItemWithTag:]):
1912         create Look Up in Dictionary item
1913         (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
1914         add Look Up in Dictionary item and separator
1915         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
1916         ditto
1917
1918         * WebView.subproj/WebHTMLView.m:
1919         (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
1920         new method, handles bringing up the Dictionary window. Includes FIXMEs
1921         for a couple of the known loose ends.
1922         (-[WebHTMLView validateUserInterfaceItem:]):
1923         handle Look Up in Dictionary item like the other new items
1924         
1925         * WebView.subproj/WebUIDelegatePrivate.h:
1926         added SPI constant for Look Up in Dictionary menu item
1927
1928 2005-01-24  Maciej Stachowiak  <mjs@apple.com>
1929
1930         Fixed Panther build (missing ifdef)
1931
1932         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1933
1934 2005-01-24  John Sullivan  <sullivan@apple.com>
1935
1936         Reviewed by Darin.
1937         
1938         - WebKit part of fix for <rdar://problem/3960231> Text context menu in WebKit needs Spotlight and Google items
1939         
1940         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1941         (localizedMenuTitleFromAppKit):
1942         new function, gets localized string from AppKit so we can avoid adding localized
1943         strings to WebKit at this late date in Tiger. Returns the non-localized English
1944         string if we can't find the localized string in AppKit.
1945         (-[WebDefaultUIDelegate menuItemWithTag:]):
1946         handle the two new menu items by tag name
1947         (-[WebDefaultUIDelegate contextMenuItemsForElement:]):
1948         add menu items for Search in Google and Search in Spotlight to selected-text menu item
1949         for the noneditable case
1950         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]):
1951         add menu items for Search in Google and Search in Spotlight to selected-text menu item
1952         for the editable case
1953
1954         * WebView.subproj/WebHTMLView.m:
1955         (-[WebHTMLView _searchWithGoogleFromMenu:]):
1956         implement this menu item action method, using same method name and implementation as NSTextView
1957         (-[WebHTMLView _searchWithSpotlightFromMenu:]):
1958         implement this menu item action method, using same basic implementation as NSTextView
1959         (-[WebHTMLView validateUserInterfaceItem:]):
1960         validate new menu items
1961         
1962         * WebView.subproj/WebUIDelegatePrivate.h:
1963         define new tags for new menu items
1964
1965         * English.lproj/StringsNotToBeLocalized.txt:
1966         updated for these changes
1967
1968 2005-01-24  Darin Adler  <darin@apple.com>
1969
1970         * WebView.subproj/WebDataSource.m: (+[WebDataSource _repTypesAllowImageTypeOmission:]):
1971         Do the same check as for view types, so the representation types are consistent.
1972
1973 2005-01-24  Darin Adler  <darin@apple.com>
1974
1975         Reviewed by John.
1976
1977         - fixed <rdar://problem/3791158> REGRESSION (Mail): copyFont: and pasteFont: copy and paste only the NSFont, not other attributes
1978
1979         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): Added the last
1980         few loose ends here: strikethrough and underline.
1981
1982         - fixed <rdar://problem/3967393> add a user default that lets you turn off WebKit PDF support
1983
1984         * WebView.subproj/WebFrameView.m: (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
1985         Leave the PDF-handling classes out of the dictionary if the secret default is set.
1986
1987         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1988
1989 2005-01-20  Darin Adler  <darin@apple.com>
1990
1991         Reviewed by Kristin Forster.
1992
1993         - fixed <rdar://problem/3964972> update _initWithCGSEvent:eventRef: call in mouse moved workaround (breaks cursors in Carbon WebKit applications)
1994
1995         * Carbon.subproj/HIWebView.m: (MouseMoved): Instead of munging the event record's window number directly
1996         before calling _initWithCGSEvent, on Tiger we call _eventRelativeToWindow on the event after creating it.
1997         Also added a check so that with Macromedia Contribute's workaround in place we don't do anything at all
1998         to the event. Tested with both Contribute and CarbonWeb.
1999
2000         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
2001
2002 2005-01-20  Richard Williamson   <rjw@apple.com>
2003
2004         Fixed <rdar://problem/3815672> REGRESSION (Mail): Japanese text cannot be made bold
2005
2006         The AppKit's font substitution API doesn't match font traits! 
2007         It only find fonts that contain the appropriate glyphs.  This
2008         patch attempts to find the best variation within a family.
2009
2010         Reviewed by Maciej.
2011
2012         * WebCoreSupport.subproj/WebTextRenderer.m:
2013         (-[WebTextRenderer _substituteFontForString:families:]):
2014
2015 === Safari-180 ===
2016
2017 2005-01-20  Ken Kocienda  <kocienda@apple.com>
2018
2019         Reviewed by John
2020
2021         Fix for this bug:
2022         
2023         <rdar://problem/3786659> REGRESSION (Mail): editable WebViews don't work with "size up" and "size down" NSFontManager changes
2024
2025         * WebView.subproj/WebHTMLView.m:
2026         (-[WebHTMLView _addToStyle:fontA:fontB:]): This is the WebKit side of the fix. Replaced unimplemented code blocks
2027         with FIXME's in them for make bigger and make smaller with real working code.
2028
2029 2005-01-19  David Hyatt  <hyatt@apple.com>
2030
2031         Fix for 3513067, spaces being lost when RTL text is rendered.  Make sure not to allow hangers or spaces
2032         in the margin.
2033         
2034         Reviewed by john
2035         
2036         * WebCoreSupport.subproj/WebTextRenderer.m:
2037         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
2038
2039 2005-01-19  Darin Adler <darin@apple.com>
2040
2041         Reviewed by vicki
2042
2043         - fixed <rdar://problem/3962559> stopAnimationsInView leaks after cvs-base
2044  
2045         * WebCoreSupport.subproj/WebImageData.m: (+[WebImageData stopAnimationsInView:]): add a release
2046
2047 2005-01-19  Chris Blumenberg  <cblu@apple.com>
2048
2049         Fixed: <rdar://problem/3961809> plug-in code attempts to load empty URL
2050
2051         Reviewed by john.
2052
2053         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
2054         (-[WebNetscapePluginEmbeddedView didStart]): don't start load if URL is empty
2055
2056 2005-01-17  Darin Adler  <darin@apple.com>
2057
2058         * DOM.subproj/DOMPrivate.h: Check in generated file.
2059
2060 2005-01-17  Darin Adler  <darin@apple.com>
2061
2062         Reviewed by John and Richard.
2063
2064         - fixed <rdar://problem/3907453> printing a multi-page PDF document from Safari doesn't produce correct output
2065
2066         * WebView.subproj/WebFrameViewPrivate.h: Added.
2067         * WebView.subproj/WebFrameView.m:
2068         (-[WebFrameView canPrintHeadersAndFooters]): Added. Returnes NO for documents that can't print headers or footers,
2069         and delegates to the document view to answer the question. Defaults to NO, since only a view that actively does
2070         the work is compatible with our header and footer code.
2071         (-[WebFrameView printOperationWithPrintInfo:]): Added. Returns an NSPrintOperation set up for printing. The reason
2072         we return this rather than an NSView is that in the PDFView case, the print info is changed around before creating
2073         the NSPrintOperation, and also the PDFKit SPI works this way.
2074
2075         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView canPrintHeadersAndFooters]): Added. Returns YES.
2076         * WebView.subproj/WebImageView.m: (-[WebImageView canPrintHeadersAndFooters]): Ditto.
2077         * WebView.subproj/WebTextView.m: (-[WebTextView canPrintHeadersAndFooters]): Ditto.
2078
2079         * WebView.subproj/WebPDFView.m:
2080         (-[WebPDFView canPrintHeadersAndFooters]): Added. Returns NO.
2081         (-[WebPDFView printOperationWithPrintInfo:]): Added. Calls getPrintOperationForPrintInfo: autoRotate:YES on the PDFView.
2082
2083         * WebKit.pbproj/project.pbxproj: Added WebFrameViewPrivate.h as a new private header.
2084
2085 2005-01-13  Chris Blumenberg  <cblu@apple.com>
2086
2087         Fixed: <rdar://problem/3932107> Safari does not load QT Cocoa plug-in if the WebPluginMIMETypes key is not in the info.plist
2088
2089         Fixing this bug required that we allow WebKit plug-ins (as well as Netscape plug-ins) support BP_CreatePluginMIMETypesPreferences
2090         which allows plug-ins create an auxiliary MIME types file.
2091
2092         Reviewed by adele.
2093
2094         * Plugins.subproj/WebBasePluginPackage.h:
2095         * Plugins.subproj/WebBasePluginPackage.m:
2096         (+[WebBasePluginPackage preferredLocalizationName]): moved from WebNetscapePluginPackage
2097         (-[WebBasePluginPackage pListForPath:createFile:]): ditto
2098         (-[WebBasePluginPackage getPluginInfoFromPLists]): ditto
2099         (-[WebBasePluginPackage isLoaded]): return isLoaded ivar
2100         (-[WebBasePluginPackage load]): if loaded, get BP_CreatePluginMIMETypesPreferences symbol
2101         * Plugins.subproj/WebNetscapePluginPackage.h:
2102         * Plugins.subproj/WebNetscapePluginPackage.m:
2103         (-[WebNetscapePluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized
2104         * Plugins.subproj/WebPluginPackage.m:
2105         (-[WebPluginPackage initWithPath:]): call getPluginInfoFromPLists
2106         (-[WebPluginPackage load]): call super when done so BP_CreatePluginMIMETypesPreferences can be initialized
2107
2108 2005-01-13  Richard Williamson   <rjw@apple.com>
2109
2110         Fixed <rdar://problem/3952809> WebJavaPlugIn.h comments need method name corrected (webPlugInCallJava)
2111
2112         Reviewed by Maciej.
2113
2114         * Plugins.subproj/WebJavaPlugIn.h:
2115
2116 === Safari-179 ===
2117
2118 2005-01-13  Vicki Murley <vicki@apple.com>
2119
2120         Reviewed by Adele.
2121
2122         - fix <rdar://problem/3946836> Safari about box lists 2004 instead of 2005
2123
2124         * WebKit.pbproj/project.pbxproj: bump "2004" to "2005"
2125
2126 2005-01-13  Richard Williamson   <rjw@apple.com>
2127
2128         Fixed <rdar://problem/3951911> REGRESSION: Animated GIF images with loop counts no longer update
2129
2130         Draw last image after animation loop terminates.  (We
2131         were drawing the image at index+1, which doesn't exist!)
2132
2133         Reviewed by Darin.
2134
2135         * WebCoreSupport.subproj/WebImageData.m:
2136         (-[WebImageData _nextFrame:]):
2137
2138 2005-01-13  Richard Williamson   <rjw@apple.com>
2139
2140         Fixed <rdar://problem/3952084> REGRESSION: Links at projectseven.com now draw and update incorrectly during hover
2141
2142         Turn off use of new CGContextStrokeLineSegments API.  We should
2143         turn back on when 3952944 is fixed.
2144
2145         Reviewed by Darin.
2146
2147         * WebCoreSupport.subproj/WebTextRenderer.m:
2148         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
2149
2150 2005-01-13  Chris Blumenberg  <cblu@apple.com>
2151
2152         Fixed: <rdar://problem/3937663> repro assertion failure and crash dragging image that has PDF source
2153
2154         Reviewed by adele.
2155
2156         * Misc.subproj/WebNSViewExtras.m:
2157         (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]): if [WebImageRenderer image] returns nil, fallback to code that uses a file icon as the drag image
2158         * WebCoreSupport.subproj/WebImageRendererFactory.m:
2159         (-[WebImageRendererFactory supportedMIMETypes]): removed code that omits PDF and PostScript from the list since this omission is only needed in WebImageView
2160         * WebView.subproj/WebImageView.m:
2161         (+[WebImageView supportedImageMIMETypes]): added code that omits PDF and PostScript since we don't want WebImageView to render these types
2162
2163 2005-01-10  Maciej Stachowiak  <mjs@apple.com>
2164
2165         Reviewed by Darin.
2166
2167         <rdar://problem/3758033> REGRESSION (Mail): Support attributes in marked text (International input)
2168         
2169         * WebCoreSupport.subproj/WebTextRenderer.m:
2170         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]): Changed to support
2171         underline thickness. Also added a bit of a hack here to move thickness 2 underlines down by
2172         .5 pixels, since the rendering engine can't give a fractional pixel offset.
2173         * WebView.subproj/WebHTMLView.m:
2174         (-[WebHTMLView validAttributesForMarkedText]): Support underline, underline color and marked
2175         clause attributes. Others that NSText supports are unimplemented for now.
2176         (-[WebHTMLView firstRectForCharacterRange:]): Remove needless logging.
2177         (-[WebHTMLView unmarkText]): Updated for new WebCore SPI.
2178         (-[WebHTMLView _extractAttributes:ranges:fromAttributedString:]): New method to pull the attributes
2179         and ranges out of an attributed string.
2180         (-[WebHTMLView setMarkedText:selectedRange:]): Extract attributes and pass to WebCore.
2181         (-[WebHTMLView insertText:]): Add comment noting that we don't really handle attributed strings
2182         here.
2183
2184 2005-01-12  Darin Adler  <darin@apple.com>
2185
2186         Reviewed by Ken.
2187
2188         - fixed <rdar://problem/3848257> WebView will draw more than AppKit asks it to, so views behind won't redraw enough (transparent WebView)
2189
2190         * WebView.subproj/WebHTMLView.m:
2191         (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]): As recommended by Troy Stephens, do the
2192         layouts here in this call, since it's before propagating the dirty rects to our ancestors.
2193         This fixes the bug, but we only do it if the WebView is not opaque, because otherwise we can
2194         optimize by only doing layouts you really need, and doing them later on is safe because we
2195         know we don't need to draw any of the views behind us.
2196         (-[WebHTMLView _layoutIfNeeded]): Added. Factored out from the method below.
2197         (-[WebHTMLView _web_layoutIfNeededRecursive]): Added. Like the other "layout if needed" call,
2198         but unconditional.
2199         (-[WebHTMLView _web_layoutIfNeededRecursive:testDirtyRect:]): Factored out the guts into the
2200         _layoutIfNeeded method above. Otherwise unchanged.
2201         (-[NSView _web_layoutIfNeededRecursive]): Added.
2202
2203         * WebView.subproj/WebFrame.m: (-[WebFrame _updateDrawsBackground]): Call setDrawsBackground:NO
2204         on the scroll view when changing the frame to no longer be in "draws background" mode. This
2205         is needed because the frame manages the "draws background" mode of the scroll view. It won't
2206         have any effect if you call setDrawsBackground:NO before starting to use a WebView, but without
2207         it calling setDrawsBackground:NO later won't have an immediate effect (easily visible in Safari).
2208         This was hidden before because the HTML view was filling with transparent color, which blew away
2209         the fill that was done by NSScrollView.
2210
2211         - fixed <rdar://problem/3921129> reproducible crash at www.funnychristmas.com in CFSet manipulation in WebImageData
2212
2213         * WebCoreSupport.subproj/WebImageData.m:
2214         (-[WebImageData _imageSourceOptions]): Changed types so we don't need a cast.
2215         (+[WebImageData stopAnimationsInView:]): Instead of building a set of sets, by putting in the sets with addObject,
2216         build a single set using unionSet, and then iterate the objects instead of having to iterate the sets and then the
2217         objects in each set. The old code ended up sharing the sets with the live code, when the whole idea was to gather
2218         all the renderers because the process of stopping modifies the active sets.
2219
2220 2005-01-12  Richard Williamson   <rjw@apple.com>
2221
2222         Fixed <rdar://problem/3926825> Safari ignores GIF loop count
2223
2224         Get loop count from file properties, not image properties.
2225
2226         Reviewed by Ken Kocienda.
2227
2228         * WebCoreSupport.subproj/WebImageData.h:
2229         * WebCoreSupport.subproj/WebImageData.m:
2230         (-[WebImageData _commonTermination]):
2231         (-[WebImageData fileProperties]):
2232         (-[WebImageData _floatProperty:type:at:]):
2233         (-[WebImageData _floatFileProperty:type:]):
2234         (-[WebImageData _repetitionCount]):
2235
2236 2005-01-11  Chris Blumenberg  <cblu@apple.com>
2237
2238         Fixed: <rdar://problem/3934749> assertion failure in WebBaseNetscapePluginView loading movie
2239
2240         Reviewed by john.
2241
2242         * Plugins.subproj/WebBaseNetscapePluginView.m:
2243         (-[WebBaseNetscapePluginView start]): call canStart before asserting about the webView
2244
2245 2005-01-11  John Sullivan  <sullivan@apple.com>
2246
2247         Reviewed by Darin.
2248         
2249         - fixed <rdar://problem/3446838> REGRESSION (Mail): text decorations don't print 
2250         (e.g. <strike>, underline)
2251
2252         * WebCoreSupport.subproj/WebTextRenderer.m:
2253         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
2254         This bottleneck routine for drawing a line was setting the linewidth to 0 when
2255         the graphics context was not drawing to the screen. Thus, no lines. Now links
2256         are underlined when printing from Safari (as well as Mail).
2257
2258 2005-01-11  Richard Williamson   <rjw@apple.com>
2259
2260         Fixed 3949145.  CG has a much faster API for drawing lines.
2261         Switched over to that new API (CGContextStrokeLineSegments).
2262
2263         Reviewed by John Sullivan.
2264
2265         * WebCoreSupport.subproj/WebTextRenderer.m:
2266         (-[WebTextRenderer drawLineForCharacters:yOffset:withWidth:withColor:]):
2267
2268 2005-01-10  Chris Blumenberg  <cblu@apple.com>
2269
2270         Fixed: <rdar://problem/3948862> REGRESSION: missing images when RTFD is pasted into editable WebView
2271
2272         This problem occurred because we were creating image elements before creating corresponding image resources. The fix is to have AppKit call us back to create the resources before it creates the elements.
2273
2274         Reviewed by john.
2275
2276         * WebView.subproj/WebHTMLView.m:
2277         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): don't deal with subresources since that's now done by the following method
2278         (-[WebHTMLView resourceForData:preferredFilename:]): new handler method called by AppKit
2279
2280 === Safari-178 ===
2281
2282 2005-01-06  David Harrison  <harrison@apple.com>
2283
2284         Reviewed by Dave Hyatt
2285
2286         <rdar://problem/3588548> AX: tabbing does not work correctly with the screen reader and a focused link; need AXFocusedUIElement to work.
2287
2288         * WebView.subproj/WebHTMLView.m:
2289         (-[WebHTMLView accessibilityFocusedUIElement]):
2290         Implement this so that AppKit can use it from NSAccessibilityHandleFocusChanged.
2291
2292 2005-01-05  Chris Blumenberg  <cblu@apple.com>
2293
2294         Fixed: <rdar://problem/3936865> REGRESSION: canvas.drawImage no longer scales properly
2295
2296         Reviewed by john.
2297
2298         * WebCoreSupport.subproj/WebImageData.m: use the height of the inRect instead of the fromRect when setting the origin of the context
2299
2300 2005-01-04  Chris Blumenberg  <cblu@apple.com>
2301
2302         Fixed: <rdar://problem/3928329> WebKit should pass nil for "language" to checkSpellingOfString:
2303
2304         Reviewed by kocienda.
2305
2306         * WebView.subproj/WebHTMLView.m:
2307         (-[WebHTMLView _isSelectionMisspelled]): pass nil not @"" for language
2308
2309 2004-12-21  Maciej Stachowiak  <mjs@apple.com>
2310
2311         Reviewed by Darin.
2312
2313         <rdar://problem/3888931> frame naming allows malicious site to bring up a window when you click on a link in another
2314
2315         Implement a security check on name frame visbility. This is the
2316         same rule as mozilla. You can only target frames by name if you
2317         are in the same window, have the same domain as the frame or an
2318         ancestor, or if it's a top level window have the same domain as
2319         the opener.
2320         
2321         * WebView.subproj/WebFrame.m:
2322         (-[WebFrame _shouldAllowAccessFrom:]):
2323         (-[WebFrame _descendantFrameNamed:sourceFrame:]):
2324         (-[WebFrame findFrameNamed:]):
2325         * WebView.subproj/WebFramePrivate.h:
2326         * WebView.subproj/WebView.m:
2327         (-[WebView _findFrameInThisWindowNamed:sourceFrame:]):
2328         (-[WebView _findFrameNamed:sourceFrame:]):
2329         * WebView.subproj/WebViewPrivate.h:
2330
2331 === Safari-177 ===
2332
2333 === Safari-176 ===
2334
2335 2004-12-20  Richard Williamson   <rjw@apple.com>
2336
2337         Add call to new API.  ImageIO deprecated some older (although
2338         quite new!) API.   This caused us to fail to build on 337 or later.
2339
2340         Developers wanting to build on older versions of Tiger must define
2341         USE_DEPRECATED_IMAGESOURCE_API in WebImageData.m.
2342
2343         Reviewed by Vicki.
2344
2345         * WebCoreSupport.subproj/WebImageData.m:
2346         (-[WebImageData propertiesAtIndex:]):
2347
2348 2004-12-20  Richard Williamson   <rjw@apple.com>
2349
2350         Don't call Tiger SPI on Panther.
2351
2352         Reviewed by Vicki.
2353
2354         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2355         (+[WebTextRendererFactory createSharedFactory]):
2356
2357 2004-12-20  Richard Williamson   <rjw@apple.com>
2358
2359         Fixed <rdar://problem/3884448> WebKit should turn on CG local font cache
2360
2361         Enable mutli-tier font caching.  We should see a performance boost with this
2362         change.
2363
2364         Reviewed by Chris.
2365
2366         * WebCoreSupport.subproj/WebTextRendererFactory.m:
2367         (+[WebTextRendererFactory createSharedFactory]):
2368
2369 2004-12-20  Richard Williamson   <rjw@apple.com>
2370
2371         Fix image decoding to separately decode image meta data from actual image bits.  I
2372         incorrectly consolidated decode of meta data and image bits resulting in a huge
2373         performance regression.
2374
2375         Double size of WebCore cache on lower end machines.  On the PLT run on machines with
2376         256MB of memory, too many images were being evicted, causing a re-decode on the PLT.
2377         Upping the lower limit of the cache size ensure that no images are evicted (this
2378         goes hand-in-hand with the change to the minimum object size from 32K to 40K).
2379
2380         Reviewed by Ken.
2381
2382         * WebCoreSupport.subproj/WebImageData.h:
2383         * WebCoreSupport.subproj/WebImageData.m:
2384         (+[WebImageData initialize]):
2385         (-[WebImageData _commonTermination]):
2386         (-[WebImageData _invalidateImages]):
2387         (-[WebImageData _invalidateImageProperties]):
2388         (-[WebImageData imageAtIndex:]):
2389         (-[WebImageData propertiesAtIndex:]):
2390         (-[WebImageData _cacheImages:allImages:]):
2391         (-[WebImageData decodeData:isComplete:callback:]):
2392         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
2393         * WebView.subproj/WebPreferences.m:
2394         (+[WebPreferences initialize]):
2395
2396 2004-12-20  Richard Williamson   <rjw@apple.com>
2397
2398         Fixed build problem caused by change to ImageIO API.
2399
2400         Reviewed by Adele.
2401
2402         * WebCoreSupport.subproj/WebImageData.m:
2403
2404 2004-12-19  Darin Adler  <darin@apple.com>
2405
2406         Reviewed by Kevin.
2407
2408         - some garbage collection fixes
2409
2410         * Misc.subproj/WebNSObjectExtras.h: (WebCFAutorelease): Replaced the old WebNSRetainCFRelease with this
2411         much-easier-to-understand function cribbed from what David Harrison did in WebCore.
2412
2413         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use CFRelease here to
2414         get rid of an unnecessary use of WebNSRetainCFRelease.
2415         * Misc.subproj/WebNSURLExtras.m:
2416         (+[NSURL _web_URLWithData:relativeToURL:]): Use WebCFAutorelease instead of WebNSRetainCFRelease and autorelease.
2417         (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
2418         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Use WebCFAutorelease here; the old code would not
2419         work correctly under GC.
2420         * Plugins.subproj/WebNetscapePluginPackage.m: (+[WebNetscapePluginPackage preferredLocalizationName]):
2421         Use WebCFAutorelease here; the old code would not work correctly under GC.
2422
2423 2004-12-18  Chris Blumenberg  <cblu@apple.com>
2424
2425         Fixed: <rdar://problem/3766915> PDF content needs search to work
2426
2427         Reviewed by kevin, john.
2428
2429         * WebView.subproj/WebPDFView.m:
2430         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]): implemented
2431         (-[WebPDFView takeFindStringFromSelection:]): new
2432         (-[WebPDFView jumpToSelection:]): new
2433         (-[WebPDFView validateUserInterfaceItem:]): new
2434
2435 2004-12-17  Richard Williamson   <rjw@apple.com>
2436
2437         Make image decoding as lazy as possible for non threaded case; in some cases
2438         can avoid unnecessary decoding work.
2439
2440         Reviewed by Chris.
2441
2442         * WebCoreSupport.subproj/WebImageData.h:
2443         * WebCoreSupport.subproj/WebImageData.m:
2444         (-[WebImageData imageAtIndex:]):
2445         (-[WebImageData propertiesAtIndex:]):
2446         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
2447
2448 2004-12-16  John Sullivan  <sullivan@apple.com>
2449
2450         Reviewed by Chris.
2451         
2452         One of the assertions from my previous checkin fired, so
2453         I made this code more robust.
2454
2455         * WebCoreSupport.subproj/WebBridge.m:
2456         (-[WebBridge _preferences]):
2457         new helper method, returns global preferences if webView is nil,
2458         otherwise returns webView's preferences
2459         (-[WebBridge getObjectCacheSize]):
2460         use new helper method, remove now-unnecessary assert
2461         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
2462         ditto
2463
2464 2004-12-16  John Sullivan  <sullivan@apple.com>
2465
2466         Reviewed by Darin.
2467         
2468         - fixed <rdar://problem/3913523> Mail needs SPI for adding tooltips to links
2469         - cleaned up some calls to +[WebPreferences standardPreferences] that should
2470           have been using -[WebView preferences]
2471           
2472         This adds a (currently SPI-only) new feature that shows the URL of the link
2473         under the mouse in a toolTip. I tested this in Safari, but we're adding this
2474         feature for Mail, and Safari won't use it (unless of course you know the
2475         magic defaults command)
2476
2477         * Plugins.subproj/WebBaseNetscapePluginView.m:
2478         (-[WebBaseNetscapePluginView start]):
2479         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
2480         
2481         * WebCoreSupport.subproj/WebBridge.m:
2482         (-[WebBridge getObjectCacheSize]):
2483         ditto
2484         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
2485         ditto
2486         
2487         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2488         (-[WebBaseResourceHandleDelegate willCacheResponse:]):
2489         ditto
2490         
2491         * WebView.subproj/WebFrame.m:
2492         (-[WebFrame _transitionToCommitted:]):
2493         ditto
2494         (-[WebFrame _loadItem:withLoadType:]):
2495         ditto
2496         
2497         * WebView.subproj/WebHTMLViewInternal.h:
2498         private struct now keeps ivar for cached value of showsURLsInToolTips
2499         so it doesn't have look it up in preferences a zillion times
2500         
2501         * WebView.subproj/WebHTMLView.m:
2502         (-[WebHTMLView _updateMouseoverWithEvent:]):
2503         if private->showsURLsInToolTips is true, set the toolTip from the URL.
2504         Fall back to showing the title attribute in case some element has a title
2505         attribute but no URL.
2506         (-[WebHTMLView _mayStartDragAtEventLocation:]):
2507         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
2508         (-[WebHTMLView _resetCachedWebPreferences:]):
2509         get a fresh value for private->showsURLsInToolTips
2510         (-[WebHTMLView initWithFrame:]):
2511         call _resetCachedWebPreferences the first time, and listen for WebPreferencesChanged notifications
2512         (-[WebHTMLView _handleStyleKeyEquivalent:]):
2513         use -[WebView preferences] instead of +[WebPreferences standardPreferences]
2514         
2515         * WebView.subproj/WebPreferenceKeysPrivate.h:
2516         added WebKitShowsURLsInToolTipsPreferenceKey
2517         
2518         * WebView.subproj/WebPreferences.m:
2519         (+[WebPreferences initialize]):
2520         initialize WebKitShowsURLsInToolTipsPreferenceKey to 0
2521         (-[WebPreferences showsURLsInToolTips]):
2522         return WebKitShowsURLsInToolTipsPreferenceKey value
2523         (-[WebPreferences setShowsURLsInToolTips:]):
2524         set WebKitShowsURLsInToolTipsPreferenceKey value
2525         
2526         * WebView.subproj/WebPreferencesPrivate.h:
2527         add declarations for showsURLsInToolTips and setter
2528         
2529         * WebView.subproj/WebTextView.m:
2530         (-[WebTextView _preferences]):
2531         new helper method that gets preferences from webView if there is a webView,
2532         otherwise gets global preferences
2533         (-[WebTextView setFixedWidthFont]):
2534         use new helper method rather than always using global preferences
2535         (-[WebTextView initWithFrame:]):
2536         observe WebPreferencesChangedNotification instead of unnecessarily general
2537         NSUserDefaultsChangedNotification
2538
2539 2004-12-14  John Sullivan  <sullivan@apple.com>
2540
2541         Reviewed by Ken.
2542         
2543         - rest of WebKit fix for <rdar://problem/3790011> undoable operations all say "Undo" 
2544         in the menu, no specific action names
2545         
2546         I only know of one loose end currently, which I wrote up as <rdar://problem/3920971> Edit menu 
2547         says "Undo Change Attributes" when it should say "Undo Set Color", from font panel
2548
2549         * WebView.subproj/WebHTMLView.m:
2550         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
2551         use WebUndoActionSetColor when dragging color swatch
2552         (-[WebHTMLView _applyStyleToSelection:withUndoAction:]):
2553         new WebUndoAction parameter, passed across bridge
2554         (-[WebHTMLView _toggleBold]):
2555         use WebUndoActionSetFont
2556         (-[WebHTMLView _toggleItalic]):
2557         use WebUndoActionSetFont
2558         (-[WebHTMLView pasteFont:]):
2559         use WebUndoActionPasteFont
2560         (-[WebHTMLView changeFont:]):
2561         use WebUndoActionSetFont
2562         (-[WebHTMLView changeAttributes:]):
2563         use WebUndoActionChangeAttributes
2564         (-[WebHTMLView _undoActionFromColorPanelWithSelector:]):
2565         new method, returns WebUndoActionSetBackgroundColor or WebUndoActionSetColor
2566         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
2567         now calls _undoActionFromColorPanelWithSelector
2568         (-[WebHTMLView changeColor:]):
2569         use WebUndoActionSetColor
2570         (-[WebHTMLView _alignSelectionUsingCSSValue:withUndoAction:]):
2571         new WebUndoAction parameter, passed through
2572         (-[WebHTMLView alignCenter:]):
2573         use WebUndoActionCenter
2574         (-[WebHTMLView alignJustified:]):
2575         use WebUndoActionJustify
2576         (-[WebHTMLView alignLeft:]):
2577         use WebUndoActionAlignLeft
2578         (-[WebHTMLView alignRight:]):
2579         use WebUndoActionAlignRight
2580         (-[WebHTMLView subscript:]):
2581         use WebUndoActionAlignSubscript
2582         (-[WebHTMLView superscript:]):
2583         use WebUndoActionAlignSuperscript
2584         (-[WebHTMLView unscript:]):
2585         use WebUndoActionAlignUnscript
2586         (-[WebHTMLView underline:]):
2587         use WebUndoActionAlignUnderline
2588         
2589         * WebView.subproj/WebView.m:
2590         (-[WebView setTypingStyle:]):
2591         pass WebUndoActionUnspecified through as new parameter since we don't have any more specific info
2592         (-[WebView applyStyle:]):
2593         ditto
2594
2595 2004-12-14  Richard Williamson   <rjw@apple.com>
2596
2597         Helper method to get URL of plugin view.
2598
2599         Reviewed by Chris.
2600
2601         * Misc.subproj/WebNSViewExtras.m:
2602         (-[NSView _webViewURL]):
2603
2604 2004-12-14  Vicki Murley <vicki@apple.com>
2605
2606         Reviewed by rjw.
2607  
2608         <rdar://problem/3855573> Remove reference to "WebScriptMethods" from WebScriptObject.h comments
2609
2610         * Plugins.subproj/WebPlugin.h: changed instances of "WebScriptMethods" to "WebScripting" in this
2611         file as well, as requested in the bug report
2612
2613 2004-12-13  Maciej Stachowiak  <mjs@apple.com>
2614
2615         Reviewed by John.
2616
2617         <rdar://problem/3912488> Mail throws an exception after backspacing "away" inline input
2618         
2619         * WebView.subproj/WebHTMLView.m:
2620         (-[WebHTMLView setMarkedText:selectedRange:]): Don't try to set a selection if
2621         we end up with no marked text, since that case fails and is unnecessary.
2622
2623 2004-12-14  John Sullivan  <sullivan@apple.com>
2624
2625         Reviewed by Ken.
2626
2627         - WebKit part of plumbing of fix for <rdar://problem/3790011> undoable operations all say "Undo" in the menu, 
2628         no specific action names
2629
2630         * WebCoreSupport.subproj/WebBridge.m:
2631         (-[WebBridge nameForUndoAction:]):
2632         renamed from setUndoActionNamePlaceholder, replaced arbitrary integers with enum values, and
2633         handled new "unspecified" case as a fallback
2634
2635 2004-12-13  Richard Williamson   <rjw@apple.com>
2636
2637         Fixed <rdar://problem/3887767> LiveConnect doesn't propagate Java exceptions back to JavaScript (prevents security suite from running)
2638
2639         Reviewed by John.
2640
2641         * Plugins.subproj/WebJavaPlugIn.h:
2642
2643 2004-12-13  John Sullivan  <sullivan@apple.com>
2644
2645         Reviewed by Maciej.
2646         
2647         - fixed <rdar://problem/3744583> Safari can not quit when a webpage has a login sheet 
2648         that can't be cancelled.
2649         
2650         The proper fix for this would be to change the class of the NSPanel in the nib file.
2651         But since this would require a localization change, I did a run-time hack instead.
2652         I'll file a bug about fixing this when we're out of localization freeze.
2653
2654         * Panels.subproj/WebAuthenticationPanel.m:
2655         (-[WebAuthenticationPanel replacePanelWithSubclassHack]):
2656         new method, creates a new panel that is identical to the original one except that
2657         it's our subclass, and moves all the subviews of the original panel into the new one.
2658         (-[WebAuthenticationPanel loadNib]):
2659         call replacePanelWithSubclassHack
2660         (-[NonBlockingPanel _blocksActionWhenModal:]):
2661         only method of new NSPanel subclass; overrides this SPI to allow the user to quit
2662         when one of these panels/sheets is on-screen
2663
2664 2004-12-10  Richard Williamson   <rjw@apple.com>
2665
2666         Fixed <rdar://problem/3898708> REGRESSION (8A314-8A317): World Clock's short hand not displayed (ImageIO problem with PDF?)
2667         Fixed <rdar://problem/3914012> use CG directly for pdf images not ImageIO
2668
2669         Create a PDF document and draw that instead of using ImageIO to create a rasterized image.
2670
2671         Reviewed by Maciej.
2672
2673         * WebCoreSupport.subproj/WebImageData.h:
2674         * WebCoreSupport.subproj/WebImageData.m:
2675         (-[WebImageData setIsPDF:]):
2676         (-[WebImageData isPDF]):
2677         (-[WebImageData dealloc]):
2678         (-[WebImageData decodeData:isComplete:callback:]):
2679         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
2680         (-[WebImageData size]):
2681         (-[WebImageData animate]):
2682         (-[WebImageData _createPDFWithData:]):
2683         (-[WebImageData _PDFDocumentRef]):
2684         (-[WebImageData _PDFDrawInContext:]):
2685         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]):
2686         * WebCoreSupport.subproj/WebImageRenderer.h:
2687         * WebCoreSupport.subproj/WebImageRenderer.m:
2688         (-[WebImageRenderer size]):
2689         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
2690         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
2691         (_createImageRef):
2692
2693 2004-12-10  John Sullivan  <sullivan@apple.com>
2694
2695         Reviewed by Ken.
2696         
2697         - fixed <rdar://problem/3855127> Error while printing w/o sheet, then window is left in a bad state, 
2698         if there's no default printer set
2699
2700         * WebView.subproj/WebHTMLView.m:
2701         (-[WebHTMLView beginDocument]):
2702         Our implementation of knowsPageRange puts the WebHTMLView into a special "printing mode". We must
2703         exit the "printing mode" to return to normal behavior. This is normally done in endDocument.
2704         However, it turns out that if there's an exception in [super beginDocument], then endDocument
2705         will not be called (lame-o AppKit API). So, we handle that case by catching the exception and
2706         exiting the "printing mode" in beginDocument when it occurs.
2707
2708 2004-12-09  Richard Williamson   <rjw@apple.com>
2709
2710         Fixed <rdar://problem/3905789> Burn Disc image vibrates rapidly
2711
2712         Restrict our support for animated images to GIF.  We used to
2713         use presence of more than one image in a resource to determine
2714         if an image should be animated.  This caused us to animate icns!
2715         If we ever support any other animated image formats we'll have
2716         to extend.
2717
2718         Reviewed by Hyatt.
2719
2720         * WebCoreSupport.subproj/WebImageData.h:
2721         * WebCoreSupport.subproj/WebImageData.m:
2722         (-[WebImageData shouldAnimate]):
2723         * WebCoreSupport.subproj/WebImageRenderer.m:
2724         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
2725
2726 2004-12-09  Richard Williamson   <rjw@apple.com>
2727
2728         Make WebPluginDatabase.h private (Dashboard needs SPI).
2729
2730         * WebKit.pbproj/project.pbxproj:
2731
2732 === Safari-175 ===
2733
2734 2004-12-09  Chris Blumenberg  <cblu@apple.com>
2735
2736         Workaround for this exception being raised during download:
2737         [WebDownload connection:willStopBufferingData:]: selector not recognized
2738
2739         Reviewed by john.
2740
2741         * Misc.subproj/WebDownload.m:
2742         (-[WebDownload connection:willStopBufferingData:]): implement this method so no exception is raised. It is a bug in Foundation that this method is being called, but it's too late to fix Foundation since it has already been submitted this week. This workaround will prevent any problems from affecting users.
2743
2744 2004-12-08  Richard Williamson   <rjw@apple.com>
2745
2746         Fixed <rdar://problem/3911719> REGRESSION: Images no longer scale vertically
2747         Account for scaling correctly when taking into account progressively
2748         loaded images.
2749
2750         Also added implementation of repetition count for animated GIF images.
2751         Also replaced strings with new constants from CFImageProperties.h
2752
2753         Also fixed possible problem with -(NSSize)size implementation,
2754         relevant to Panther only.
2755
2756         Reviewed by Chris.
2757
2758         * WebCoreSupport.subproj/WebImageData.m:
2759         (-[WebImageData _floatProperty:type:at:]):
2760         (-[WebImageData _frameDurationAt:]):
2761         (-[WebImageData _repetitionCount]):
2762         * WebCoreSupport.subproj/WebImageRenderer.m:
2763         (-[WebImageRenderer size]):
2764
2765 2004-12-08  Chris Blumenberg  <cblu@apple.com>
2766
2767         Removed NPN wrappers since these no longer need to be defined to make the QT plug-in work
2768         since 3828925 has been fixed.
2769
2770         Reviewed by john.
2771
2772         * Plugins.subproj/WebNetscapePluginPackage.m:
2773         (-[WebNetscapePluginPackage load]): use under-bar symbols since non-under-bar wrappers have been removed
2774         * Plugins.subproj/npapi.m: removed NPN wrappers
2775         * WebKit.exp: removed symbols
2776
2777 2004-12-08  Ken Kocienda  <kocienda@apple.com>
2778
2779         Reviewed by Darin
2780
2781         * WebView.subproj/WebHTMLView.m:
2782         (-[WebHTMLView drawRect:]): Work around for this bug:
2783         <rdar://problem/3908282> REGRESSION (Mail): No drag image dragging selected text in Blot and Mail
2784         The reason for the workaround is that this method is called explicitly from the code
2785         to generate a drag image, and at that time, getRectsBeingDrawn:count: will return a zero count.
2786         This code change uses the passed-in rect when the count is zero.
2787
2788 2004-12-07  Administrator  <cblu@apple.com>
2789
2790         Support for fix for:
2791         <rdar://problem/3734309> Safari doesn't open folders in title bar menu with non-Roman names using Cmd+click
2792
2793         Reviewed by john.
2794
2795         * Misc.subproj/WebNSURLExtras.h:
2796         * Misc.subproj/WebNSURLExtras.m:
2797         (+[NSURL _web_URLWithUserTypedString:relativeToURL:]): renamed to take relativeToURL parameter
2798         (+[NSURL _web_URLWithUserTypedString:]): call _web_URLWithUserTypedString:relativeToURL: with nil for URL
2799
2800 2004-12-07  Richard Williamson   <rjw@apple.com>
2801
2802         Fixed <rdar://problem/3905564> REGRESSION (Tiger); in History menu, pixel size appears but is wrong for standalone images in Safari.
2803
2804         Reviewed by Chris.
2805
2806         * WebCoreSupport.subproj/WebImageRenderer.m:
2807         (-[WebImageRenderer size]):
2808
2809 2004-12-07  Richard Williamson   <rjw@apple.com>
2810
2811         Support threaded image decoding on machines w/ >= 2 CPUs.
2812
2813         Reviewed by Maciej and Chris.
2814
2815         * Misc.subproj/WebKitSystemBits.h:
2816         * Misc.subproj/WebKitSystemBits.m:
2817         (WebSystemMainMemory):
2818         (WebNumberOfCPUs):
2819         * WebCoreSupport.subproj/WebImageData.h:
2820         * WebCoreSupport.subproj/WebImageData.m:
2821         (+[WebImageData initialize]):
2822         (-[WebImageData init]):
2823         (-[WebImageData _commonTermination]):
2824         (-[WebImageData dealloc]):
2825         (-[WebImageData _invalidateImages]):
2826         (-[WebImageData _imageSourceOptions]):
2827         (-[WebImageData imageAtIndex:]):
2828         (-[WebImageData propertiesAtIndex:]):
2829         (-[WebImageData _createImages]):
2830         (-[WebImageData decodeData:isComplete:callback:]):
2831         (-[WebImageData incrementalLoadWithBytes:length:complete:callback:]):
2832         (drawPattern):
2833         (-[WebImageData tileInRect:fromPoint:context:]):
2834         (-[WebImageData isNull]):
2835         (-[WebImageData size]):
2836         (-[WebImageData _frameDurationAt:]):
2837         (-[WebImageData _frameDuration]):
2838         (+[WebImageData stopAnimationsInView:]):
2839         (-[WebImageData addAnimatingRenderer:inView:]):
2840         (-[WebImageData removeAnimatingRenderer:]):
2841         * WebCoreSupport.subproj/WebImageDecodeItem.h: Added.
2842         * WebCoreSupport.subproj/WebImageDecodeItem.m: Added.
2843         (+[WebImageDecodeItem decodeItemWithImage:data:isComplete:callback:]):
2844         (-[WebImageDecodeItem initWithImage:data:isComplete:callback:]):
2845         (-[WebImageDecodeItem finalize]):
2846         (-[WebImageDecodeItem dealloc]):
2847         * WebCoreSupport.subproj/WebImageDecoder.h: Added.
2848         * WebCoreSupport.subproj/WebImageDecoder.m: Added.
2849         (decoderNotifications):
2850         (+[WebImageDecoder initialize]):
2851         (+[WebImageDecoder notifyMainThread]):
2852         (+[WebImageDecoder sharedDecoder]):
2853         (+[WebImageDecoder performDecodeWithImage:data:isComplete:callback:]):
2854         (+[WebImageDecoder imageDecodesPending]):
2855         (+[WebImageDecoder decodeComplete:status:]):
2856         (-[WebImageDecoder init]):
2857         (-[WebImageDecoder dealloc]):
2858         (-[WebImageDecoder finalize]):
2859         (-[WebImageDecoder removeItem]):
2860         (-[WebImageDecoder addItem:]):
2861         (-[WebImageDecoder decodeItem:]):
2862         (decoderThread):
2863         (startDecoderThread):
2864         * WebCoreSupport.subproj/WebImageRenderer.m:
2865         (-[WebImageRenderer initWithData:MIMEType:]):
2866         (-[WebImageRenderer initWithContentsOfFile:]):
2867         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:callback:]):
2868         (-[WebInternalImage incrementalLoadWithBytes:length:complete:callback:]):
2869         * WebKit.pbproj/project.pbxproj:
2870         * WebView.subproj/WebImageRepresentation.m:
2871         (-[WebImageRepresentation receivedData:withDataSource:]):
2872         (-[WebImageRepresentation receivedError:withDataSource:]):
2873         (-[WebImageRepresentation finishedLoadingWithDataSource:]):
2874
2875 2004-12-07  Chris Blumenberg  <cblu@apple.com>
2876
2877         Fix for performance regression.
2878
2879         Reviewed by kevin.
2880
2881         * WebCoreSupport.subproj/WebBridge.m:
2882         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): construct the WebResource without copying the data
2883
2884 2004-12-07  Chris Blumenberg  <cblu@apple.com>
2885
2886         Fixed: <rdar://problem/3909243> REGRESSION: large standalone images stop loading part way through
2887
2888         Reviewed by kevin.
2889
2890         * WebView.subproj/WebBaseResourceHandleDelegate.h:
2891         * WebView.subproj/WebMainResourceClient.m:
2892         (-[WebMainResourceClient addData:]): call super so it buffers the data
2893
2894 2004-12-06  Richard Williamson   <rjw@apple.com>
2895
2896         Use the AppKit's font rendering mode.  This fixes 3905347, but we still need to track down
2897         and resolve why metrics have changed for Courier.  This may be caused by changes in
2898         AppKit for 3902394.
2899
2900         Reviewed by John.
2901
2902         * WebCoreSupport.subproj/WebTextRenderer.m:
2903         (_AppkitGetCGRenderingMode):
2904         (getUncachedWidth):
2905         (_drawGlyphs):
2906
2907 2004-12-06  Chris Blumenberg  <cblu@apple.com>
2908
2909         Forgot to commit copied header.
2910
2911         * DOM.subproj/DOMPrivate.h:
2912
2913 2004-12-06  Chris Blumenberg  <cblu@apple.com>
2914
2915         Fixed: <rdar://problem/3907381> NSURLConnection and WebKit buffer 2 copies of incoming data
2916
2917         Reviewed by darin.
2918
2919         * WebView.subproj/WebBaseResourceHandleDelegate.h:
2920         * WebView.subproj/WebBaseResourceHandleDelegate.m:
2921         (+[WebBaseResourceHandleDelegate initialize]): cache check to see if Foundation supports access to its buffered data
2922         (-[WebBaseResourceHandleDelegate addData:]): don't buffer data if Foundation is buffering it for us
2923         (-[WebBaseResourceHandleDelegate saveResource]): when creating a WebResource, pass NO for copyData since we know it won't be mutated
2924         (-[WebBaseResourceHandleDelegate resourceData]): return the buffered data from the connection if it supports it
2925         (-[WebBaseResourceHandleDelegate willStopBufferingData:]): make a mutable copy of the data from NSURLConnection so we can continue buffering 
2926         (-[WebBaseResourceHandleDelegate willCacheResponse:]): removed optimization that used the cached response data to save the resource since that is obsolete by this change
2927         (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): new callback from NSURLConnection, informs us that NSURLConnection has given up buffering
2928         * WebView.subproj/WebDataSource.m:
2929         (-[WebDataSource _receivedData:]): removed buffering code since that's done by NSURLConnection and the main client
2930         (-[WebDataSource _setData:]): removed unnecessary cast since the resourceData ivar is now an NSData instead of NSMutableData
2931         (-[WebDataSource data]): return resourceData ivar, else return the resourceData from the main client
2932         * WebView.subproj/WebDataSourcePrivate.h:
2933         * WebView.subproj/WebMainResourceClient.m:
2934         (-[WebMainResourceClient releaseResources]): store resourceData on the data source so it can continue to have data after the main client has gone away 
2935         (-[WebMainResourceClient connection:didReceiveData:lengthReceived:]):don't call [dataSource data] just to get the length of data received since [dataSource data] can now cause data to be copied
2936         (-[WebMainResourceClient connectionDidFinishLoading:]): ditto
2937         * WebView.subproj/WebResource.m:
2938         (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call following method with YES for copyData
2939         (-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:copyData:]): new initializer, allows caller to choose whether or not the data is copied
2940         * WebView.subproj/WebResourcePrivate.h:
2941
2942 2004-12-06  Richard Williamson   <rjw@apple.com>
2943
2944         Fixed <rdar://problem/3903749> REGRESSION (8A321): WebKit gets incorrect glyph metrics due to change in how AppKit uses CGFont
2945
2946         Use CGFontRef direction when both getting font metrics and drawing
2947         glyphs, instead on depending on [NSFont set].
2948
2949         Reviewed by John.
2950
2951         * WebCoreSupport.subproj/WebTextRenderer.m:
2952         (getUncachedWidth):
2953         (_drawGlyphs):
2954
2955 2004-12-06  Ken Kocienda  <kocienda@apple.com>
2956
2957         Reviewed by Harrison
2958         
2959         Fix for this bug:
2960         
2961         <rdar://problem/3906930> Hitting return key in editable content inserts br elements instead of blocks
2962
2963         * WebView.subproj/WebHTMLView.m:
2964         (-[WebHTMLView insertNewline:]): One-line change to call insert-block rather than insert-br method 
2965         on bridge.
2966
2967 2004-12-04  Darin Adler  <darin@apple.com>
2968
2969         Reviewed by John.
2970
2971         - fixed <rdar://problem/3846079> assertion failure in WebHTMLView(WebPrivate) removeTrackingRect at boots.com
2972         - fixed <rdar://problem/3857737> REGRESSION (165-166): clicking in a text field that's scrolled to the right causes it to scroll all the way left
2973         - fixed <rdar://problem/3861952> REGRESSION (165-166): selection is cleared when you start to scroll a frame
2974
2975         * WebView.subproj/WebHTMLViewInternal.h: Added handlingMouseDown flag.
2976         * WebView.subproj/WebHTMLView.m:
2977         (-[WebHTMLView _addTrackingRect:owner:userData:assumeInside:useTrackingNum:]): Allow passing in a
2978         tracking number of 0, which means no existing tracking number.
2979         (-[WebHTMLView _addTrackingRects:owner:userDataList:assumeInsideList:trackingNums:count:]): Ditto.
2980         (-[WebHTMLView removeTrackingRect:]): Allow removing a tracking number of 0, which is a no-op.
2981         (-[WebHTMLView _removeTrackingRects:count:]): Ditto.
2982         (-[WebHTMLView acceptsFirstResponder]): Changed check to use handlingMouseDown flag instead of mouseDownEvent
2983         field since that field is set up too early in the mouse down event handling process.
2984         (-[WebHTMLView mouseDown:]): Added code to set handlingMouseDown flag.
2985
2986         - fixed part of <rdar://problem/3829808> Safari crashes when adding a DOM node that was removed from an XMLHTTP request result
2987
2988         * WebCoreSupport.subproj/WebBridge.m:
2989         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
2990         Changed code around so that it won't try to create a WebResource when the load fails.
2991
2992         - moved next/previous links into private structure with the rest of WebFrame fields
2993           (We have a rule against putting new fields into obejcts that are part of our public API.)
2994
2995         * WebView.subproj/WebFrame.h: Remove _nextSibling and _previousSibling.
2996         * WebView.subproj/WebFramePrivate.h: Added nextSibling and previousSibling fields to private class.
2997         * WebView.subproj/WebFrame.m: Got rid of some tabs in this file.
2998         (-[WebFrame _addChild:]): Changed code to use fields inside _private.
2999         (-[WebFrame _removeChild:]): Ditto.
3000         (-[WebFrame _nextFrameWithWrap:]): Ditto.
3001         (-[WebFrame _previousFrameWithWrap:]): Ditto.
3002
3003 2004-12-04  Chris Blumenberg  <cblu@apple.com>
3004
3005         New fixes for:
3006         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
3007         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
3008         <rdar://problem/3903173> REGRESSION (172-TOT): assertion failure and crash in slotAllData logging into hotmail account
3009         <rdar://problem/3902749> REGRESSION (Tiger): missing image symbol does not appear
3010
3011         Reviewed by darin, rjw, kocienda.
3012
3013         * WebCoreSupport.subproj/WebBridge.m:
3014         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
3015         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
3016         * WebCoreSupport.subproj/WebSubresourceClient.m:
3017         (-[WebSubresourceClient didFinishLoading]):
3018         * WebView.subproj/WebFrame.m:
3019         (-[WebFrame _opened]):
3020         (-[WebFrame _internalLoadDelegate]):
3021         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]):
3022         * WebView.subproj/WebFrameInternal.h:
3023
3024 2004-12-04  Darin Adler  <darin@apple.com>
3025
3026         Reviewed by Maciej.
3027
3028         - fixed remaining bit of <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
3029
3030         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _styleFromFontAttributes:]): When translating from
3031         an attribute dictionary to a CSS declaration, treat missing values according to the defaults defined
3032         in <AppKit/NSAttributedString.h>. Before the code was treating them as "no change", which is incorrect.
3033
3034         * English.lproj/StringsNotToBeLocalized.txt: Add a string from the above change.
3035
3036 === Safari-173 ===
3037
3038 2004-12-03  Ken Kocienda  <kocienda@apple.com>
3039
3040         Reviewed by me
3041
3042         Roll out some recent changes by Chris that caused a performance regression.
3043         Fix is in hand, but it is a little risky this close to a submission. So,
3044         we have decided to roll back the change with the regression and roll in
3045         the new code after we submit.
3046
3047         * WebCoreSupport.subproj/WebBridge.m:
3048         (-[WebBridge objectLoadedFromCacheWithURL:response:size:]):
3049         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
3050         * WebCoreSupport.subproj/WebSubresourceClient.m:
3051         (-[WebSubresourceClient didFinishLoading]):
3052         * WebView.subproj/WebFrame.m:
3053         (-[WebFrame _opened]):
3054         (-[WebFrame _internalLoadDelegate]):
3055         * WebView.subproj/WebFrameInternal.h:
3056
3057 2004-12-02  Richard Williamson   <rjw@apple.com>
3058
3059         Fixed <rdar://problem/3841332> REGRESSION (125.9-167u): repro crash in -[KWQPageState invalidate] involving .Mac images
3060
3061         Ensure that the document is cleared when leaving a non-HTML page.  This ensures that
3062         the b/f cache won't incorrectly trash the previous state when restoring.
3063
3064         Reviewed by John.
3065
3066         * WebView.subproj/WebFrame.m:
3067         (-[WebFrame _setState:]):
3068
3069 2004-12-02  Ken Kocienda  <kocienda@apple.com>
3070
3071         Reviewed by Richard
3072
3073         <rdar://problem/3748323> Problem with -[WebView editableDOMRangeForPoint:] (-isFlipped not taken into account?)
3074         <rdar://problem/3852590> REGRESSION (Mail): Dropped content appears in wrong place if Mail message is scrolled down
3075
3076         When implementing drag and drop, moveDragCaretToPoint: and editableDOMRangeForPoint: are used in
3077         concert to track the mouse and determine a drop location, respectively. However, moveDragCaretToPoint:
3078         did a conversion of the passed-in point to the document view's coordinate space, whereas 
3079         editableDOMRangeForPoint: did not. Now it does.
3080         
3081         Note that I will need to coordinate with Grant to have him roll out some code in Mail that
3082         attempts to work around this problem (unsuccessfully), and actually manages to block the
3083         real fix (which needs to be in WebKit).
3084
3085         * WebView.subproj/WebView.m:
3086         (-[WebView editableDOMRangeForPoint:]): Convert the passed-in point to the document view's coordinate space.
3087
3088 2004-12-02  Richard Williamson   <rjw@apple.com>
3089
3090         Fixed <rdar://problem/3895810> FATAL ERROR: <WebTextRenderer: 0x9328a20> unable to initialize with font "Times-Roman 16.00 pt. S ....
3091
3092         We have a hack to replace Times with Times New Roman if we fail
3093         to setup Times.  If we then fail to setup Times New Roman we
3094         don't attempt to further fallback to the system font.  Added
3095         that additional fallback.
3096
3097         Reviewed by Ken.
3098
3099         * WebCoreSupport.subproj/WebTextRenderer.m:
3100         (+[WebTextRenderer webFallbackFontFamily]):
3101         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
3102
3103 2004-12-02  Richard Williamson   <rjw@apple.com>
3104
3105         Fixed build problem on Tiger8A821.  Private macro and function
3106         we were using have been deprecated,
3107
3108         Reviewed by Vicki.
3109
3110         * WebCoreSupport.subproj/WebTextRenderer.m:
3111         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
3112
3113 2004-12-01  Chris Blumenberg  <cblu@apple.com>
3114
3115         Fixed: <rdar://problem/3879870> Flash Player unable to stop data stream from continuing to download by returning -1 from NPP_Write
3116         Also improved and cleaned-up the plug-in stream termination code.
3117
3118         Reviewed by john.
3119
3120         * Plugins.subproj/WebBaseNetscapePluginStream.h:
3121         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3122         (+[WebBaseNetscapePluginStream reasonForError:]): return NPRES_DONE for a nil error
3123         (-[WebBaseNetscapePluginStream _pluginCancelledConnectionError]): new, factored out from other methods
3124         (-[WebBaseNetscapePluginStream errorForReason:]): new
3125         (-[WebBaseNetscapePluginStream dealloc]): release MIME type
3126         (-[WebBaseNetscapePluginStream setMIMEType:]): new
3127         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): call setMIMEType so we can use it in _pluginCancelledConnectionError, call renamed methods
3128         (-[WebBaseNetscapePluginStream _destroyStream]): prepended underscore, replaced some early returns with asserts as the callers are now smarter
3129         (-[WebBaseNetscapePluginStream _destroyStreamWithReason:]): prepended underscore, only call _destroyStream if there is an error or if the load is complete and there is no more data to be streamed
3130         (-[WebBaseNetscapePluginStream cancelLoadWithError:]): new, overridden by subclasses to cancel the actual NSURLConnection
3131         (-[WebBaseNetscapePluginStream destroyStreamWithError:]): new, calls _destroyStreamWithReason
3132         (-[WebBaseNetscapePluginStream finishedLoadingWithData:]): call renamed methods
3133         (-[WebBaseNetscapePluginStream _deliverData]): prepended underscore, call cancelLoadAndDestroyStreamWithError if NPP_Write returns a negative number
3134         * Plugins.subproj/WebBaseNetscapePluginView.m:
3135         (-[WebBaseNetscapePluginView destroyStream:reason:]): call cancelLoadAndDestroyStreamWithError
3136         * Plugins.subproj/WebNetscapePluginRepresentation.m:
3137         (-[WebNetscapePluginRepresentation receivedError:withDataSource:]): call destroyStreamWithError
3138         (-[WebNetscapePluginRepresentation cancelLoadWithError:]): new, override method, tell the data source to stop loading
3139         * Plugins.subproj/WebNetscapePluginStream.m:
3140         (-[WebNetscapePluginStream cancelLoadWithError:]): new, override method, tell the loader to stop
3141         (-[WebNetscapePluginStream stop]): call cancelLoadAndDestroyStreamWithError
3142         (-[WebNetscapePluginConnectionDelegate isDone]): new
3143         (-[WebNetscapePluginConnectionDelegate didReceiveResponse:]): call cancelLoadAndDestroyStreamWithError
3144         (-[WebNetscapePluginConnectionDelegate didFailWithError:]): call destroyStreamWithError
3145
3146 2004-12-01  Kevin Decker  <kdecker@apple.com>
3147
3148         Reviewed by Harrison.
3149
3150         Fixed: <rdar://problem/3228878> potential performance problem in finding in large framesets
3151
3152         Got rid of O(N^2) conditions in _nextSibling and _previousSibling of where we were looking up self in the parent array of frames.
3153
3154         * WebView.subproj/WebFrame.h: Added two new pointers, one for the previous kid and one for the next kid
3155         * WebView.subproj/WebFrame.m: 
3156         (-[WebFrame _addChild:]): Updates the previous frame and the next frame after this child
3157         (-[WebFrame _removeChild:]): ditto
3158         (-[WebFrame _nextSibling]): just return the pointer now
3159         (-[WebFrame _previousSibling]): ditto
3160
3161 2004-11-30  Chris Blumenberg  <cblu@apple.com>
3162
3163         Fixed:
3164         <rdar://problem/3685766> WebDataSource is missing subresources when they use cached WebCore data
3165         <rdar://problem/3722434> REGRESSION?: Assertion failure trying to drag image in iframe (itapema.sc.gov.br)
3166
3167         Reviewed by darin.
3168
3169         * WebCoreSupport.subproj/WebBridge.m:
3170         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): renamed to pass all data for the resource, moved delegate code to new method
3171         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call renamed method
3172         * WebCoreSupport.subproj/WebSubresourceClient.m:
3173         (-[WebSubresourceClient didFinishLoading]): call renamed method
3174         * WebView.subproj/WebFrame.m:
3175         (-[WebFrame _opened]): call _sendResourceLoadDelegateMessagesForURL:response:length:, not objectLoadedFromCacheWithURL:response:data:
3176         (-[WebFrame _internalLoadDelegate]):
3177         (-[WebFrame _sendResourceLoadDelegateMessagesForURL:response:length:]): moved from objectLoadedFromCacheWithURL:response:data:
3178         * WebView.subproj/WebFrameInternal.h:
3179
3180 2004-11-29  Darin Adler  <darin@apple.com>
3181
3182         Reviewed by John.
3183
3184         - worked around bug in Panther where NSScroller calls _destinationFloatValueForScroller: on superview
3185           without first checking if it's implemented
3186
3187         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _destinationFloatValueForScroller:]):
3188         Implemented. Calls floatValue on the scroller.
3189
3190         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
3191
3192 2004-11-23  Chris Blumenberg  <cblu@apple.com>
3193
3194         Fixed: <rdar://problem/3890944> disable icon database for Dashboard
3195
3196         Reviewed by kevin.
3197
3198         * Misc.subproj/WebIconDatabase.h:
3199         * Misc.subproj/WebIconDatabase.m:
3200         (-[WebIconDatabase init]): don't create dictionaries if disabled
3201         (-[WebIconDatabase iconForURL:withSize:cache:]): return default icon if disabled
3202         (-[WebIconDatabase iconURLForURL:]): return nil if disabled
3203         (-[WebIconDatabase retainIconForURL:]): return if disabled
3204         (-[WebIconDatabase releaseIconForURL:]): ditto
3205         (-[WebIconDatabase delayDatabaseCleanup]): ditto
3206         (-[WebIconDatabase allowDatabaseCleanup]): ditto
3207         (-[WebIconDatabase _isEnabled]): new
3208         (-[WebIconDatabase _setIcon:forIconURL:]): assert if called when disabled, moved to own category implementation
3209         (-[WebIconDatabase _setHaveNoIconForIconURL:]): ditto
3210         (-[WebIconDatabase _setIconURL:forURL:]): ditto
3211         (-[WebIconDatabase _createFileDatabase]): tweak
3212         (-[WebIconDatabase _applicationWillTerminate:]): moved out of public code
3213         * Misc.subproj/WebIconDatabasePrivate.h:
3214         * Misc.subproj/WebIconLoader.m:
3215         * WebView.subproj/WebDataSource.m:
3216         (-[WebDataSource _updateIconDatabaseWithURL:]): assert if called when icon DB is disabled
3217         (-[WebDataSource _loadIcon]): don't load icon if icon DB is disabled
3218
3219 2004-11-22  David Hyatt  <hyatt@apple.com>
3220
3221         Make sure the WebCore cache grows at 512mb and at 1024mb exactly.
3222         
3223         Reviewed by mjs
3224
3225         * WebCoreSupport.subproj/WebBridge.m:
3226         (-[WebBridge getObjectCacheSize]):
3227
3228 2004-11-22  Richard Williamson   <rjw@apple.com>
3229
3230         Fixed <rdar://problem/3891737> WebPreferences do not work if they are set before set on the WebView
3231
3232         John found this problem and suggested the fix.
3233
3234         Reviewed by John Louch.
3235
3236         * WebView.subproj/WebView.m:
3237         (-[WebView setPreferences:]):
3238
3239 2004-11-22  Ken Kocienda  <kocienda@apple.com>
3240
3241         Reviewed by Harrison
3242
3243         * WebCoreSupport.subproj/WebBridge.m:
3244         (-[WebBridge canPaste]): Call WebView _canPaste.
3245         * WebView.subproj/WebView.m:
3246         (-[WebView _canPaste]): Try to forward to document view's implementation. Only WebHTMLView
3247         answers right now. Returns NO otherwise.
3248         * WebView.subproj/WebViewInternal.h: Add _canPaste method to WebView.
3249
3250 2004-11-22  Maciej Stachowiak  <mjs@apple.com>
3251
3252         Back  out the window closing fix, it seems to be causing crashes.
3253
3254         * WebView.subproj/WebFrame.m:
3255         (-[WebFrame _detachFromParent]):
3256
3257 2004-11-20  Maciej Stachowiak  <mjs@apple.com>
3258  
3259         Reviewed by John.
3260  
3261         <rdar://problem/3710101> _web_userVisibleString makes URL autocomplete roughly 2x slower
3262          
3263         * Misc.subproj/WebNSURLExtras.h:
3264         * Misc.subproj/WebNSURLExtras.m:
3265         (-[NSString _web_isUserVisibleURL]): New SPI to check if a URL
3266         string is already in user-visible form (i.e. converting it to an
3267         NSURL and then back via _web_userVisibleString would not change
3268         anything).
3269  
3270 2004-11-19  Maciej Stachowiak  <mjs@apple.com>
3271
3272         Reviewed by John.
3273
3274         <rdar://problem/3190977> closing window with many tabs in it can be quite slow
3275         
3276         * WebView.subproj/WebFrame.m:
3277         (-[WebFrame _detachFromParent]): autorelease bridge instead of releasing it,
3278         to make window and tab closing more responsive - this way the deallocation happens
3279         after the windoow or tab appears to close.
3280
3281 === Safari-172 ===
3282
3283 2004-11-19  Chris Blumenberg  <cblu@apple.com>
3284
3285         Fixed: <rdar://problem/3880387> REGRESSION: www.shockplay.com site gives "Unexpected server response"
3286
3287         Reviewed by mjs.
3288
3289         * Plugins.subproj/WebBaseNetscapePluginView.m:
3290         (-[NSData _web_locationAfterFirstBlankLine]): support both formats ("\r\n\n" and "\r\n\r\n") for separating header data from body data because Shockwave still sends the prior format
3291
3292 2004-11-19  Ken Kocienda  <kocienda@apple.com>
3293
3294         Reviewed by Harrison
3295
3296         Fix for this bug:
3297
3298         <rdar://problem/3655241> setTypingStyle: does not set the real typing style, and typingStyle does not return it
3299
3300         * WebCoreSupport.subproj/WebBridge.m:
3301         (-[WebBridge respondToChangedContents]): No longer call through to WebKit to set the typing style. The call
3302         was part of the misguided use of the setTypingStyle: and typingStyle as a cache of what was stored on
3303         the WebCore side.
3304         (-[WebBridge respondToChangedSelection]): Ditto.
3305         * WebView.subproj/WebView.m:
3306         (-[WebViewPrivate dealloc]): Object no longer has typingStyle ivar.
3307         (-[WebView setTypingStyle:]): Call over the bridge to set typing style.
3308         (-[WebView typingStyle]): Call over the bridge to retrieve typing style.
3309         * WebView.subproj/WebViewInternal.h: Object no longer has typingStyle ivar.
3310
3311 2004-11-18  John Sullivan  <sullivan@apple.com>
3312
3313         Reviewed by Darin.
3314         
3315         - fixed <rdar://problem/3886042> should save history file as binary XML so serialization, 
3316         parsing, reading and writing is faster
3317
3318         * History.subproj/WebHistory.m:
3319         (-[WebHistoryPrivate _saveHistoryGuts:URL:error:]):
3320         convert dictionary to binary data before saving
3321
3322 2004-11-18  Chris Blumenberg  <cblu@apple.com>
3323
3324         * WebView.subproj/WebHTMLRepresentation.m:
3325         (-[WebHTMLRepresentation currentForm]): removed stray ";"
3326
3327 2004-11-18  Chris Blumenberg  <cblu@apple.com>
3328
3329         Fixed development build failure.
3330
3331         * Misc.subproj/WebIconDatabase.m:
3332         (+[WebIconDatabase sharedIconDatabase]): call LOG not Log
3333
3334 2004-11-18  Chris Blumenberg  <cblu@apple.com>
3335
3336         <rdar://problem/3885708> save memory in icon DB by not using NSSets when holding 1 object
3337         
3338         Reviewed by sullivan.
3339
3340         * Misc.subproj/WebIconDatabase.m:
3341         (+[WebIconDatabase sharedIconDatabase]): added timing code
3342         (-[WebIconDatabase _clearDictionaries]): new
3343         (-[WebIconDatabase _loadIconDictionaries]): call _clearDictionaries in 2 places before we bail, use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
3344         (-[WebIconDatabase _updateFileDatabase]): fixed comment
3345         (-[WebIconDatabase _setIconURL:forURL:]): use _web_setObjectUsingSetIfNecessary:forKey: when adding site URLs to the iconURLToURLs dictionary
3346         (-[WebIconDatabase _releaseIconForIconURLString:]): handle NSString objects retured from iconURLToURLs
3347         (-[NSMutableDictionary _web_setObjectUsingSetIfNecessary:forKey:]): new, puts a set on the dictionary when there are 2 or more object for s key
3348
3349 2004-11-17  Richard Williamson   <rjw@apple.com>
3350
3351         Fixed <rdar://problem/3885073> REGRESSION: Tab images at top of news.com.com replicated and squished
3352
3353         Correctly account for scaled image size and clipping.
3354
3355         Reviewed by Maciej.
3356
3357         * WebCoreSupport.subproj/WebImageData.h:
3358         * WebCoreSupport.subproj/WebImageData.m:
3359         * WebCoreSupport.subproj/WebImageRenderer.m:
3360         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
3361
3362 2004-11-17  Maciej Stachowiak  <mjs@apple.com>
3363
3364         Reviewed by Richard.
3365
3366         <rdar://problem/3885076> Don't make IDN calls for all-ascii URLs to save about 3 pages
3367         at Safari startup.
3368         
3369         * Misc.subproj/WebNSURLExtras.m:
3370         (mapHostNames): If encoding and not decoding, then bail early if the URL is all ascii.
3371         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Remove earlier special-case
3372         check for localhost, no longer needed.
3373
3374 2004-11-17  Richard Williamson   <rjw@apple.com>
3375
3376         Fixed <rdar://problem/3863601> Legacy font cache code in [WebTextRendererFactory createSharedFactory] may be unnecesary
3377
3378         and added call to SPI for
3379
3380         <rdar://problem/3884448> WebKit should turn on CG local font cache
3381
3382         currently disabled until a Tiger build shows up with the SPI.
3383
3384         Reviewed by David Harrison.
3385
3386         * WebCoreSupport.subproj/WebTextRendererFactory.m:
3387         (+[WebTextRendererFactory createSharedFactory]):
3388
3389 2004-11-17  Richard Williamson   <rjw@apple.com>
3390
3391         Fixed <rdar://problem/3882212> REGRESSION: Images clipped instead of scaled
3392         Fixed <rdar://problem/3884088> Crash terminating image load
3393
3394         Also added code to turn off color correction for images created
3395         via CGImageSources.  This code is currently disabled because CG  
3396         can't change the color space of images loaded progressively.
3397         Further, according to Dave Hayward, CG will no longer attempt
3398         to color correct images that don't have embedded profiles as of
3399         Tiger 8A306.
3400
3401         Reviewed by Chris.
3402
3403         * WebCoreSupport.subproj/WebImageData.m:
3404         (-[WebImageData _commonTermination]):
3405         (-[WebImageData dealloc]):
3406         (-[WebImageData _invalidateImageProperties]):
3407         (-[WebImageData imageAtIndex:]):
3408         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
3409         (-[WebImageData propertiesAtIndex:]):
3410
3411 2004-11-16  Chris Blumenberg  <cblu@apple.com>
3412
3413         Fixed: <rdar://problem/3882034> REGRESSION: Context menu incorrect for PDF content
3414
3415         Reviewed by darin.
3416
3417         * WebView.subproj/WebPDFView.m:
3418         (-[WebPDFView hitTest:]): return self if the current event is a context menu event
3419         (-[WebPDFView menuForEvent:]): use the PDFView subview
3420
3421 2004-11-15  Chris Blumenberg  <cblu@apple.com>
3422
3423         Fixed: <rdar://problem/3880410> save 5 dirty pages by soft-linking against PDFKit framework
3424
3425         Reviewed by john.
3426
3427         * WebKit.pbproj/project.pbxproj:
3428         * WebView.subproj/WebPDFRepresentation.m:
3429         (+[WebPDFRepresentation PDFDocumentClass]): new
3430         (-[WebPDFRepresentation finishedLoadingWithDataSource:]): use PDFDocumentClass
3431         * WebView.subproj/WebPDFView.h:
3432         * WebView.subproj/WebPDFView.m:
3433         (+[WebPDFView PDFKitBundle]): new
3434         (+[WebPDFView PDFViewClass]): new
3435         (-[WebPDFView initWithFrame:]): create a PDFView subview
3436         (-[WebPDFView dealloc]): release the PDFView subview
3437         (-[WebPDFView PDFSubview]): new
3438
3439 2004-11-15  Chris Blumenberg  <cblu@apple.com>
3440
3441         Fixed: <rdar://problem/3879891> WebKit should link against PDFKit instead of Quartz
3442
3443         Reviewed by darin.
3444
3445         * WebKit.pbproj/project.pbxproj: link against PDFKit if it is present instead of Quartz.framework
3446
3447 2004-11-15  Richard Williamson   <rjw@apple.com>
3448
3449         Fixed missing retain of image property data.
3450
3451         Reviewed by John.
3452
3453         * WebCoreSupport.subproj/WebImageData.h:
3454         * WebCoreSupport.subproj/WebImageData.m:
3455         (-[WebImageData dealloc]):
3456         (-[WebImageData _invalidateImages]):
3457         (-[WebImageData imageAtIndex:]):
3458         (-[WebImageData propertiesAtIndex:]):
3459         (-[WebImageData _frameDuration]):
3460
3461 2004-11-15  Richard Williamson   <rjw@apple.com>
3462
3463         Cache image properties and frame durations.
3464         Create NSImage and TIFF representations from CGImage, lazily, as needed for
3465         dragging and element info dictionary.
3466
3467         Reviewed by John.
3468
3469         * WebCoreSupport.subproj/WebImageData.h:
3470         * WebCoreSupport.subproj/WebImageData.m:
3471         (-[WebImageData dealloc]):
3472         (-[WebImageData size]):
3473         (-[WebImageData propertiesAtIndex:]):
3474         (-[WebImageData _frameDurationAt:]):
3475         (-[WebImageData _frameDuration]):
3476         * WebCoreSupport.subproj/WebImageRenderer.h:
3477         * WebCoreSupport.subproj/WebImageRenderer.m:
3478         (-[WebImageRenderer dealloc]):
3479         (-[WebImageRenderer TIFFRepresentation]):
3480         (-[WebImageRenderer image]):
3481
3482 2004-11-14  Maciej Stachowiak  <mjs@apple.com>
3483
3484         Reviewed by John.
3485
3486         <rdar://problem/3879226> WebKit needlessly uses extra memory to store icon refcounts as NSNumbers       
3487
3488         * Misc.subproj/WebIconDatabase.m:
3489         (-[WebIconDatabase init]):
3490         (-[WebIconDatabase _setIconURL:forURL:]):
3491         (-[WebIconDatabase _retainIconForIconURLString:]):
3492         (-[WebIconDatabase _releaseIconForIconURLString:]):
3493         (-[WebIconDatabase _retainFutureIconForURL:]):
3494         (-[WebIconDatabase _releaseFutureIconForURL:]):
3495         * Misc.subproj/WebIconDatabasePrivate.h:
3496
3497 2004-11-15  John Sullivan  <sullivan@apple.com>
3498
3499         Reviewed by Ken.
3500