Land updated layout tests with scroll info.
[WebKit-https.git] / WebKit / ChangeLog
1 2004-10-20  Darin Adler  <darin@apple.com>
2
3         Reviewed by Dave.
4
5         - fixed <rdar://problem/3470715> Pattern cache can get huge with use of css background-image in Safari
6
7         * WebCoreSupport.subproj/WebImageRenderer.h: Change WebImageRenderer to be a subclass of NSObject
8         rather than NSImage and contain a pointer to a WebInternalImage.
9         * WebCoreSupport.subproj/WebImageRenderer.m:
10         (-[WebInternalImage releasePatternColor]): Added. Releases patternColor.
11         (-[WebImageRenderer initWithMIMEType:]): Added. Makes WebInternalImage and then self.
12         (-[WebImageRenderer initWithData:MIMEType:]): Ditto.
13         (-[WebImageRenderer initWithContentsOfFile:]): Ditto.
14         (-[WebImageRenderer dealloc]): Added. Calls releasePatternColor and then releases WebInternalImage.
15         (-[WebImageRenderer image]): Added. Returns pointer to image.
16         (-[WebImageRenderer MIMEType]): Added. Calls through to image.
17         (-[WebImageRenderer TIFFRepresentation]): Ditto.
18         (-[WebImageRenderer frameCount]): Ditto.
19         (-[WebImageRenderer setOriginalData:]): Added. Sets image data pointer.
20         (+[WebImageRenderer stopAnimationsInView:]): Added. Calls through to image.
21         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]): Ditto.
22         (-[WebImageRenderer size]): Ditto.
23         (-[WebImageRenderer resize:]): Ditto.
24         (-[WebImageRenderer drawImageInRect:fromRect:]): Ditto.
25         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]): Ditto.
26         (-[WebImageRenderer stopAnimation]): Ditto.
27         (-[WebImageRenderer tileInRect:fromPoint:context:]): Ditto.
28         (-[WebImageRenderer isNull]): Ditto.
29         (-[WebImageRenderer retainOrCopyIfNeeded]): Ditto.
30         (-[WebImageRenderer increaseUseCount]): Ditto.
31         (-[WebImageRenderer decreaseUseCount]): Ditto.
32         (-[WebImageRenderer flushRasterCache]): Ditto.
33         (-[WebImageRenderer imageRef]): Ditto.
34         (-[WebImageRenderer copyWithZone:]): Ditto.
35
36         * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]):
37         Update for slight changes to WebImageRenderer API.
38         * WebCoreSupport.subproj/WebImageRendererFactory.m:
39         (-[WebImageRendererFactory imageRendererWithMIMEType:]): Ditto.
40         (-[WebImageRendererFactory imageRendererWithData:MIMEType:]): Ditto.
41         (-[WebImageRendererFactory imageRendererWithSize:]): Ditto.
42         (-[WebImageRendererFactory imageRendererWithName:]): Ditto.
43         * WebView.subproj/WebImageView.m: (-[WebImageView image]): Ditto.
44
45 2004-10-20  Chris Blumenberg  <cblu@apple.com>
46         
47         Fixed: <rdar://problem/3846943> REGRESSION: JNLP files are rendered instead of downloaded
48
49         Reviewed by john.
50
51         * Plugins.subproj/WebBasePluginPackage.h:
52         * Plugins.subproj/WebBasePluginPackage.m:
53         (-[WebBasePluginPackage isJavaPlugIn]): new
54         * Plugins.subproj/WebPluginDatabase.m:
55         (-[WebPluginDatabase refresh]): don't register the Java plug-in for a document view since Java file should be downloaded when not embedded.
56
57 2004-10-20  Chris Blumenberg  <cblu@apple.com>
58
59         Fixed:
60         <rdar://problem/3842030> WebKit needs to pass the mode (NP_FULL, NP_EMBED, etc) when calling plugInViewWithArguments
61         <rdar://problem/3792852> Safari is loading the new QuickTime Cocoa plugin on Panther
62
63         Reviewed by darin.
64
65         * Plugins.subproj/WebPluginDocumentView.m:
66         (-[WebPluginDocumentView setDataSource:]): pass "full" as the mode
67         * Plugins.subproj/WebPluginPackage.m:
68         (-[WebPluginPackage initWithPath:]): load plug-in with the "webplugin" extension
69         * WebCoreSupport.subproj/WebBridge.m:
70         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): pass "embed" as the mode
71         * WebKit.pbproj/project.pbxproj:
72
73 2004-10-19  Vicki Murley <vicki@apple.com>
74
75         - bump WebKit version to 167.1, so that we can do a quick dot submission for <rdar://problem/3843951> 
76
77         * WebKit.pbproj/project.pbxproj:
78
79 2004-10-19  Darin Adler  <darin@apple.com>
80
81         Change suggested by Maciej during code review.
82
83         * WebCoreSupport.subproj/WebTextRenderer.m: Changed rounding hack table to be const so it can be in shared instead
84         of private memory, and doesn't require an initialization function.
85         (+[WebTextRenderer initialize]): Removed initialization.
86
87 2004-10-19  Darin Adler  <darin@apple.com>
88
89         Reviewed by Maciej.
90
91         - fixed <rdar://problem/3838934> Safari stops loading pages after rangeOfCharacterFromSet nil argument exception
92         - fixed <rdar://problem/3843951> REGRESSION (166-167): Safari crashes in widthForNextCharacter (belkin.com, at startup for others)
93         - fixed <rdar://problem/3841049> REGRESSION (109-110): control characters render as square boxes
94
95         * WebCoreSupport.subproj/WebTextRenderer.m:
96         (isSpace): Merged in isAlternateSpace, never used.
97         (setupRoundingHackCharacterTable): Fixed size of table, was 1 entry too short. Got rid of unneeded call to bzero,
98         since globals start out zeroed automatically.
99         (isRoundingHackCharacter): Fixed backwards logic causing the crash in widthForNextCharacter.
100         Also removed explicit compare with 1; check for non-zero is just fine.
101         (fontContainsString): Change code so we'll just skip the font if the covered character set returns nil rather than
102         throwing an exception like the old version did. This should make bug 3838934 go away, although perhaps covering up
103         the underlying problem.
104         (-[WebTextRenderer _convertCharacters:length:toGlyphs:]): Removed unused skipControlCharacters: parameter and also
105         the unnecessary code to copy the buffer to change newline characters and non-break spaces to spaces.
106         (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Removed unused local.
107         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]): Added code to set up special cases for control characters,
108         \n and non-break spaces.
109         (-[WebTextRenderer _createATSUTextLayoutForRun:]): Added comment about the cases this code does not handle that
110         are handled by the CG case.
111         (widthForNextCharacter): Call isSpace instead of checking specifically for the space character here. The old code
112         would not handle cases with '\n' coming across from WebCore properly.
113
114 2004-10-18  Chris Blumenberg  <cblu@apple.com>
115
116         Fixed: <rdar://problem/3840916> GC: -[WebNetscapePluginPackage initWithPath:] leaks an NSURL
117
118         Reviewed by kevin.
119
120         * Plugins.subproj/WebNetscapePluginPackage.m:
121         (-[WebNetscapePluginPackage initWithPath:]): use executablePath on NSBundle instead of CFBundleCopyExecutableURL
122
123 2004-10-18  Chris Blumenberg  <cblu@apple.com>
124
125         * DOM.subproj/DOMPrivate.h: change to copied header that was never committed
126
127 2004-10-18  John Sullivan  <sullivan@apple.com>
128
129         Reviewed by Ken.
130         
131         - fixed <rdar://problem/3810183> Make WebHTMLView respect return value of webView:doCommandBySelector:
132
133         * WebView.subproj/WebHTMLView.m:
134         (-[WebHTMLView doCommandBySelector:]):
135         only do default action if delegate returns NO; this works with Mail as of Tiger 8A275.
136
137 === Safari-167 ===
138
139 2004-10-14  Ken Kocienda  <kocienda@apple.com>
140
141         Reviewed by John
142
143         Final fix for these bugs:
144         
145         <rdar://problem/3806306> HTML editing puts spaces at start of line
146         <rdar://problem/3814252> HTML editing groups space with word causing wrapping
147
148         This change sets some new CSS properties that have been added to WebCore to 
149         enable whitespace-handling and line-breaking features that make WebView work
150         more like a text editor.
151
152         * WebView.subproj/WebHTMLRepresentation.m:
153         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): Turn on special editing
154         CSS properties when loading an HTML document into a WebView that is editable.
155         * WebView.subproj/WebView.m:
156         (-[WebView setEditable:]): Add and remove special editing CSS properties in current
157         document being displayed.
158
159 2004-10-14  Richard Williamson   <rjw@apple.com>
160
161         Fixed <rdar://problem/3823026> making isRoundingHackCharacter use -O3 and an 8-bit lookup-table will speed "XBS" test up by 3% (actually < 1%)
162
163         Careful testing shows a small performance gain on very large text files.  
164         I saw large variations in timings, but taking the lowest PLT timing 
165         with and without this change showed a 0.9% gain.  Note the cvs-base showed
166         no improvement.  The improvement was for the large page attached to the
167         bug.
168
169         Reviewed by Ken.
170
171         * WebCoreSupport.subproj/WebTextRenderer.m:
172         (setupRoundingHackCharacterTable):
173         (isRoundingHackCharacter):
174         (+[WebTextRenderer initialize]):
175
176 2004-10-14  Ken Kocienda  <kocienda@apple.com>
177
178         Reviewed by me
179
180         Fix build breakage. These three functions need to return the values from their
181         calls to WebCGColorSpaceCreateXXX.
182
183         * WebCoreSupport.subproj/WebGraphicsBridge.m:
184         (-[WebGraphicsBridge createRGBColorSpace])
185         (-[WebGraphicsBridge createGrayColorSpace])
186         (-[WebGraphicsBridge createCMYKColorSpace])
187
188 2004-10-13  Richard Williamson   <rjw@apple.com>
189
190         Addressed concerns in <rdar://problem/3803117> RESP: High complexity in icu uidna_IDNToASCII called by [NSString(WebNSURLExtras) _web_mapHostNameWithRange:encode:makeString:]
191
192         In practice I saw NO improvement in performance.  Although,
193         special-case tests could possibly show improvement.  Anyway,
194         the changes don't hurt performance.
195
196         Reviewed by Maciej.
197
198         * Misc.subproj/WebNSURLExtras.m:
199         (-[NSString _web_mapHostNameWithRange:encode:makeString:]):
200
201 2004-10-13  Maciej Stachowiak  <mjs@apple.com>
202
203         Reviewed by Ken.
204
205         <rdar://problem/3824626> Change to do colormatching for DeviceRGB colorspace causes ~11% Safari slowdown
206         
207         - I fixed this by turning off all colormatching for WebKit
208         content. We might turn it back on later. For now, it's possible to
209         turn it on temporarily by defining COLORMATCH_EVERYTHING.
210         
211         * WebCoreSupport.subproj/WebGraphicsBridge.m:
212         (-[WebGraphicsBridge setFocusRingStyle:radius:color:]):
213         (-[WebGraphicsBridge additionalPatternPhase]):
214         (-[WebGraphicsBridge createRGBColorSpace]):
215         (-[WebGraphicsBridge createGrayColorSpace]):
216         (-[WebGraphicsBridge createCMYKColorSpace]):
217         * WebCoreSupport.subproj/WebImageData.m:
218         * WebCoreSupport.subproj/WebImageRenderer.h:
219         * WebCoreSupport.subproj/WebImageRenderer.m:
220         (-[WebImageRenderer _adjustSizeToPixelDimensions]):
221         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
222         (-[WebImageRenderer _adjustColorSpace]):
223         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
224         (-[WebImageRenderer tileInRect:fromPoint:context:]):
225         (_createImageRef):
226         (WebCGColorSpaceCreateRGB):
227         (WebCGColorSpaceCreateGray):
228         (WebCGColorSpaceCreateCMYK):
229         * WebKitPrefix.h:
230
231 2004-10-13  Richard Williamson   <rjw@apple.com>
232
233         Don't fill background with transparency unless debug flag
234         is enabled.
235
236         Reviewed by Hyatt.
237
238         * WebView.subproj/WebHTMLView.m:
239         (-[WebHTMLView drawRect:]):
240
241 2004-10-12  Richard Williamson   <rjw@apple.com>
242
243         Fixed <rdar://problem/3829705> Need to remove filling w/ transparency when not drawing backgroundy.
244
245         Reviewed by Ken.
246
247         * WebView.subproj/WebHTMLView.m:
248         (-[WebHTMLView _transparentBackground]):
249         (-[WebHTMLView _setTransparentBackground:]):
250         (-[WebHTMLView drawRect:]):
251         * WebView.subproj/WebHTMLViewInternal.h:
252         * WebView.subproj/WebHTMLViewPrivate.h:
253
254 2004-10-11  Chris Blumenberg  <cblu@apple.com>
255
256         Fixed: <rdar://problem/3802039> 8A259: Can't use Grab services to grab selection from screen
257
258         Reviewed by john.
259
260         * WebView.subproj/WebHTMLView.m:
261         (+[WebHTMLView initialize]): register service "return types" which are types that can be inserted into a WebView
262         (-[WebHTMLView writeSelectionToPasteboard:types:]): service protocol method, be sure to only write specified types
263         (-[WebHTMLView readSelectionFromPasteboard:]): new, service protocol method, insert types
264         (-[WebHTMLView validRequestorForSendType:returnType:]): moved, handle return types
265
266 2004-10-11  Darin Adler  <darin@apple.com>
267
268         Reviewed by John.
269
270         - fixed <rdar://problem/3834130> nil-object-in-dictionary exception seen in -[WebView _elementAtWindowPoint:]
271
272         * WebView.subproj/WebView.m: (-[WebView _elementAtWindowPoint:]): Added a check for nil frame.
273
274 2004-10-11  Darin Adler  <darin@apple.com>
275
276         Reviewed by John.
277
278         - fixed <rdar://problem/3834166> <input type=file> sends onchange even when the same file is chosen twice
279
280         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton chooseFilename:]):
281         Do nothing if filename is the same as before.
282
283 2004-10-11  Ken Kocienda  <kocienda@apple.com>
284
285         Reviewed by Darin
286
287         * WebView.subproj/WebHTMLView.m:
288         (-[WebTextCompleteController doCompletion]): bridge call to get caret rect at a node
289         now takes an affinity: caretRectAtNode:offset:affinity:.
290
291 2004-10-10  Ken Kocienda  <kocienda@apple.com>
292
293         Reviewed by Chris
294
295         Fix for this bug:
296         
297         <rdar://problem/3814236> REGRESSION (Mail): Can't set the color of text in Mail compose window using drag/drag from color panel
298
299         * WebView.subproj/WebHTMLView.m:
300         (+[WebHTMLView _insertablePasteboardTypes]): Add NSColorPboardType to list.
301         (-[WebHTMLView _isNSColorDrag:]): New helper. Determines if drag is an NSColor drag.
302         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): Add a case for NSColor drags,
303         else do what we did before.
304         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): Add a case for NSColor drags, which creates
305         a CSS style containing color info and calls the bridge to apply the style. Otherwise, do what we did before.
306
307 2004-10-11  Darin Adler  <darin@apple.com>
308
309         Reviewed by Ken.
310
311         - fixed <rdar://problem/3833848> REGRESSION (133-134): each keydown event is getting sent multiple times
312
313         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView performKeyEquivalent:]):
314         Don't send an event through WebCore if it has already been through once.
315
316 2004-10-10  John Sullivan  <sullivan@apple.com>
317
318         Reviewed by Ken.
319         
320         - fixed <rdar://problem/3777253> Crash in redirect mechanism trying to display error page for bad scheme
321
322         * WebView.subproj/WebMainResourceClient.m:
323         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
324         add retain/autorelease to the request returned from call to super. In this case, the return value
325         was being dealloc'ed before being returned.
326
327 2004-10-09  Chris Blumenberg  <cblu@apple.com>
328
329         Fixed: 
330         <rdar://problem/3625352> up and down arrow and page up/down keys don't work to scroll overflow:auto/scroll/overlay areas
331         <rdar://problem/3397658> scroll wheel does not work to scroll overflow:auto/scroll/overlay areas (RSS)
332
333         Reviewed by hyatt.
334
335         * Plugins.subproj/WebBaseNetscapePluginStream.m:
336         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): fixed typo in comment
337         * Plugins.subproj/WebNetscapePluginStream.m:
338         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
339         * WebView.subproj/WebFramePrivate.h:
340         * WebView.subproj/WebFrameView.m:
341         (-[WebFrameView _bridge]): new
342         (-[WebFrameView scrollToBeginningOfDocument:]): call the bridge to scroll, if that fails, scroll the document view
343         (-[WebFrameView scrollToEndOfDocument:]): ditto
344         (-[WebFrameView _pageVertically:]): ditto
345         (-[WebFrameView _pageHorizontally:]): ditto
346         (-[WebFrameView _scrollLineVertically:]): ditto
347         (-[WebFrameView _scrollLineHorizontally:]): ditto
348         * WebView.subproj/WebHTMLView.m:
349         (-[WebHTMLView scrollWheel:]): call the bridge to scroll, if that fails, pass to next responder
350
351 === Safari-166 ===
352
353 2004-10-05  Chris Blumenberg  <cblu@apple.com>
354
355         Fixed: <rdar://problem/3827002> assertion failure in WebBaseNetscapePluginStream on abc.go.com
356
357         Reviewed by rjw.
358
359         * Plugins.subproj/WebBaseNetscapePluginStream.m:
360         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): avoid assertion failure in dealloc by temporarily setting isTerminated to YES in case we are released in this method
361         * Plugins.subproj/WebNetscapePluginStream.m:
362         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): ditto
363
364 2004-10-05  John Sullivan  <sullivan@apple.com>
365
366         * WebCoreSupport.subproj/WebBridge.m:
367         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]):
368         initialize "arguments" var to nil to satisfy compiler on deployment build.
369
370 2004-10-05  Richard Williamson   <rjw@apple.com>
371
372         Fixed <rdar://problem/3825442> first click lost for Dashboard
373         Allow dashboard to force acceptsFirstMouse:
374
375         Reviewed by Chris.
376
377         * WebView.subproj/WebHTMLView.m:
378         (-[WebHTMLView acceptsFirstMouse:]):
379         * WebView.subproj/WebView.m:
380         (-[WebView _dashboardBehavior:]):
381         * WebView.subproj/WebViewInternal.h:
382         * WebView.subproj/WebViewPrivate.h:
383
384         * WebCoreSupport.subproj/WebImageRenderer.h:
385         Comment change only
386
387 2004-10-05  Chris Blumenberg  <cblu@apple.com>
388
389         Fixed: <rdar://problem/3760920> Need to record plugin view instances
390         
391         Reviewed by rjw.
392
393         * Plugins.subproj/WebPluginController.h:
394         * Plugins.subproj/WebPluginController.m:
395         (+[WebPluginController plugInViewWithArguments:fromPluginPackage:]): new, creates plug-in view and adds it to global list
396         (+[WebPluginController isPlugInView:]): new, checks if the plug-in view is in the global list
397         (-[WebPluginController destroyAllPlugins]): remove the plug-in from the global list 
398         * Plugins.subproj/WebPluginDocumentView.m:
399         (-[WebPluginDocumentView setDataSource:]): call [WebPluginController plugInViewWithArguments:fromPluginPackage:]
400         * WebCoreSupport.subproj/WebBridge.m:
401         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): ditto
402         * WebView.subproj/WebFrame.m:
403         (-[WebFrame _reloadForPluginChanges]): call [WebPluginController isPlugInView:]
404         * WebView.subproj/WebHTMLView.m:
405         (-[WebHTMLView addSubview:]): ditto
406
407 2004-10-05  David Hyatt  <hyatt@apple.com>
408
409         Fix to make selection more like NSTextView.  All gap painting is now done by WebCore, so WebKit no longer
410         needs to try to fill gaps around text.
411         
412         Reviewed by kocienda
413
414         * WebCoreSupport.subproj/WebTextRenderer.m:
415         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
416         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
417
418 2004-10-05  Darin Adler  <darin@apple.com>
419
420         Reviewed by John.
421
422         - fixed <rdar://problem/3577255> custom file icon shows up upside down in <input type=file>
423
424         * WebCoreSupport.subproj/WebFileButton.m: (-[WebFileButton setFilename:]): Added a call to
425         setFlipped that fixes the problem, even though I don't know why.
426
427 2004-10-04  Darin Adler  <darin@apple.com>
428
429         Reviewed by Maciej.
430
431         - fixed <rdar://problem/3814237> REGRESSION (Mail): Copy/paste style does not set color in Mail compose window
432
433         * WebView.subproj/WebHTMLView.m:
434         (-[WebHTMLView _selectionStartFontAttributesAsRTF]): Changed to call new bridge method
435         named fontAttributesForSelectionStart, deleted the method this used to use, and renamed
436         this to have the word "start" in it.
437         (-[WebHTMLView copyFont:]): Updated for name change.
438
439         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
440
441 2004-10-04  Chris Blumenberg  <cblu@apple.com>
442
443         * WebView.subproj/WebFrameInternal.h: removed constant declarations that I committed by mistake
444
445 2004-10-04  Chris Blumenberg  <cblu@apple.com>
446
447         Fixed: <rdar://problem/3798948> NPP_URLNotify is not called if plug-in calls NPN_*URLNotfy
448         Fixed a number of FIXME's related to notifying plug-ins of loaded pages.
449
450         Reviewed by rjw.
451
452         * Plugins.subproj/WebBaseNetscapePluginStream.h: 
453                 - replaced URL ivar with requestURL and responseURL ivars since we need to pass both to plug-ins
454                 - added sendNotification boolean. Relying on notifyData not being NULL was not information to know whether to call NPP_URLNotify or not.
455                 - added isTerminated boolean because determining whether or not stream.ndata is NULL is not enough to know if the stream has been cancelled.
456         * Plugins.subproj/WebBaseNetscapePluginStream.m:
457         (+[WebBaseNetscapePluginStream reasonForError:]): new, factored out from receivedError:
458         (-[WebBaseNetscapePluginStream initWithRequestURL:pluginPointer:notifyData:sendNotification:]): new
459         (-[WebBaseNetscapePluginStream dealloc]): release new ivars
460         (-[WebBaseNetscapePluginStream finalize]): added assert
461         (-[WebBaseNetscapePluginStream setRequestURL:]): new
462         (-[WebBaseNetscapePluginStream setResponseURL:]): new
463         (-[WebBaseNetscapePluginStream startStreamResponseURL:expectedContentLength:lastModifiedDate:MIMEType:]): renamed, use responseURL as it basically did before
464         (-[WebBaseNetscapePluginStream startStreamWithResponse:]): call renamed method
465         (-[WebBaseNetscapePluginStream destroyStream]): 
466                 - do nothing if terminated
467                 - call NPP_StreamAsFile and NPP_DestroyStream if stream.ndata is not NULL
468                 - call NPP_URLNotify if sendNotification is YES regardless of value of notifyData
469         (-[WebBaseNetscapePluginStream receivedError:]): call reasonForError
470         (-[WebBaseNetscapePluginStream deliverData]): use renamed ivar
471         * Plugins.subproj/WebBaseNetscapePluginView.h:
472                 - added observingFrameLoadNotification boolean
473                 - renamed dictionary ivar to pendingFrameLoads which has WebFrame keys and WebPluginRequest values
474         * Plugins.subproj/WebBaseNetscapePluginView.m:
475         (-[WebBaseNetscapePluginView addFrameLoadObserver]): new
476         (-[WebBaseNetscapePluginView removeFrameLoadObserver]): new
477         (-[WebBaseNetscapePluginView stop]): call removeFrameLoadObserver
478         (-[WebBaseNetscapePluginView initWithFrame:]): use renamed pendingFrameLoads ivar
479         (-[WebBaseNetscapePluginView dealloc]): ditto
480         (-[WebBaseNetscapePluginView requestWithURLCString:]): set referrer on the request just as IE does
481         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): 
482                 - call NPP_URLNotify depending of value of sendNotification
483                 - call new init method on WebBaseNetscapePluginStream rather then setting variables individually
484         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithReason:]): new, calls NPP_URLNotify at the right time with the right value
485         (-[WebBaseNetscapePluginView webFrame:didFinishLoadWithError:]): new, delegate method called from WebFrame
486         (-[WebBaseNetscapePluginView loadPluginRequest:]): call addFrameLoadObserver
487         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:sendNotification:]): take new sendNotification parameter and pass it
488         (-[WebBaseNetscapePluginView getURLNotify:target:notifyData:]): pass YES for sendNotification
489         (-[WebBaseNetscapePluginView getURL:target:]): pass NO for sendNotification
490         (-[WebBaseNetscapePluginView _postURL:target:len:buf:file:notifyData:sendNotification:allowHeaders:]): take new sendNotification parameter and pass it
491         (-[WebBaseNetscapePluginView postURLNotify:target:len:buf:file:notifyData:]): pass YES for sendNotification
492         (-[WebBaseNetscapePluginView postURL:target:len:buf:file:]): pass NO for sendNotification
493         (-[WebPluginRequest initWithRequest:frameName:notifyData:sendNotification:]): take new sendNotification parameter
494         (-[WebPluginRequest sendNotification]): new
495         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
496         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
497         (-[WebNetscapePluginEmbeddedView didStart]): set referrer on the request just as IE does
498         * Plugins.subproj/WebNetscapePluginRepresentation.m:
499         (-[WebNetscapePluginRepresentation receivedData:withDataSource:]): set the request URL on the stream
500         * Plugins.subproj/WebNetscapePluginStream.h:
501         * Plugins.subproj/WebNetscapePluginStream.m:
502         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]): take new sendNotification parameter and pass it
503         (-[WebNetscapePluginStream dealloc]): use renamed ivar
504         (-[WebNetscapePluginStream start]): ditto
505         * WebView.subproj/WebFrame.m:
506         (-[WebFrame _setState:]): removed notification posting code. This was only used by WebBaseNetscapePluginView and it was the wrong notification to send.
507         (-[WebFrame _checkLoadCompleteForThisFrame]): call internal load delegate to tell it that the load has finished
508         (-[WebFrame _loadItem:withLoadType:]): ditto
509         (-[WebFrame _continueFragmentScrollAfterNavigationPolicy:formState:]): ditto
510         (-[WebFrame _setInternalLoadDelegate:]): new
511         (-[WebFrame _internalLoadDelegate]): new
512         * WebView.subproj/WebFrameInternal.h:
513         * WebView.subproj/WebFramePrivate.h:
514
515 2004-10-04  Chris Blumenberg  <cblu@apple.com>
516
517         Fixed: <rdar://problem/3758113> REGRESSION: Macromedia ColdFusion page doesn't show main content
518
519         After bumping up our plug-in version, Flash now sends 2 CRLF's between the headers and body of their POST request. Our code was not prepared for this.
520
521         Reviewed by darin.
522
523         * Plugins.subproj/WebBaseNetscapePluginView.m:
524         (-[NSData _web_locationAfterFirstBlankLine]): looks for 2 CRLF's, not for 2 LF's
525
526 2004-10-04  Darin Adler  <darin@apple.com>
527
528         Reviewed by Ken.
529
530         - fixed a potential storage leak when we turn on CGImageRef image rendering
531
532         * WebCoreSupport.subproj/WebImageRenderer.m: (-[WebImageRenderer dealloc]): Fix potential storage leak
533         by adding [super dealloc], but leak was not real yet because the code is commented out.
534
535         - make paste style work with color as part of fix to <rdar://problem/3814237> REGRESSION (Mail):
536           Copy/paste style does not set color in Mail compose window
537
538         * WebView.subproj/WebHTMLView.m:
539         (-[WebHTMLView _selectionFontAttributes]): Change structure so it's easy to add more attributes.
540         For now I haven't added any yet.
541         (-[WebHTMLView _colorAsString:]): Moved this earlier in the file.
542         (-[WebHTMLView _shadowAsString:]): Ditto.
543         (-[WebHTMLView _styleFromFontAttributes:]): Add background color, foreground color, and text shadow.
544
545 2004-09-30  Richard Williamson   <rjw@apple.com>
546
547         Fixed <rdar://problem/3821215> NPN hasMethod and hasProperty functions should take NPObjects, not NPClass
548
549         Also changed dashboard regions dictionary to use "control"
550         for scroller region label, instead of "scroller, per
551         request from ouch. 
552                 
553         Reviewed by Chris.
554
555         * Plugins.subproj/npruntime.h:
556         * WebView.subproj/WebView.m:
557         (-[WebView _addScrollerDashboardRegions:from:]):
558
559 2004-09-30  Chris Blumenberg  <cblu@apple.com>
560
561         Fixed: <rdar://problem/3498680> switching back and forth between tabs stops calling anything in a plug-in
562
563         Reviewed by darin.
564
565         * Plugins.subproj/WebBaseNetscapePluginView.m:
566         (-[WebBaseNetscapePluginView sendEvent:]): call setWindowIfNecessary because the window may have changed
567         (-[WebBaseNetscapePluginView updateAndSetWindow]): new
568         (-[WebBaseNetscapePluginView setWindowIfNecessary]): was setWindow, this method now just sets the window
569         (-[WebBaseNetscapePluginView start]): call updateAndSetWindow
570         (-[WebBaseNetscapePluginView viewDidMoveToWindow]): ditto
571         (-[WebBaseNetscapePluginView viewHasMoved:]): ditto
572
573 2004-09-30  Chris Blumenberg  <cblu@apple.com>
574
575         Fixed: <rdar://problem/3498668> switching out of tab doesn't send loseFocusEvent to plug-in
576
577         Reviewed by rjw.
578
579         * Plugins.subproj/WebBaseNetscapePluginView.h:
580         * Plugins.subproj/WebBaseNetscapePluginView.m:
581         (-[WebBaseNetscapePluginView setHasFocus:]): new, sends events to plug-in
582         (-[WebBaseNetscapePluginView becomeFirstResponder]): call setHasFocus
583         (-[WebBaseNetscapePluginView resignFirstResponder]): ditto 
584         (-[WebBaseNetscapePluginView viewWillMoveToWindow:]): ditto
585
586 2004-09-30  Chris Blumenberg  <cblu@apple.com>
587
588         Fixed:
589         Assertion failure when loading standalone netscape plug-in content.
590         Document loads of WebKit plug-in content should be cancelled since the plug-in does its own loading.
591
592         Reviewed by john.
593
594         * Misc.subproj/WebKitErrors.m: removed deprecated method
595         * Misc.subproj/WebKitErrorsPrivate.h:
596         * Plugins.subproj/WebNetscapePluginDocumentView.m:
597         (-[WebNetscapePluginDocumentView setDataSource:]): fixed the assertion statement
598         * Plugins.subproj/WebPluginDocumentView.h:
599         * Plugins.subproj/WebPluginDocumentView.m:
600         (-[WebPluginDocumentView dealloc]): remove retained plug-in
601         (-[WebPluginDocumentView setDataSource:]): retain the plug-in, cancel the laod
602
603 2004-09-29  Chris Blumenberg  <cblu@apple.com>
604         
605         Fixed:
606         <rdar://problem/3763832> Safari-155: Non-Embeded movies fail to open in Cocoa QT plug-in
607         <rdar://problem/3820517> "*** -[WebPluginPackage NPP_New]: selector not recognized [self = 0x5552c10]"
608
609         Reviewed by rjw.
610
611         * History.subproj/WebHistoryItem.m:
612         * Misc.subproj/WebNSViewExtras.h:
613         * Misc.subproj/WebNSViewExtras.m:
614         (-[NSView _web_firstResponderCausesFocusDisplay]):
615         (-[NSView _webView]):
616         (-[NSView _frame]):
617         (-[NSView _bridge]):
618         (-[NSView _dataSource]):
619         * Plugins.subproj/WebBasePluginPackage.h:
620         * Plugins.subproj/WebBasePluginPackage.m:
621         (-[WebBasePluginPackage hash]):
622         (-[WebBasePluginPackage isQuickTimePlugIn]):
623         * Plugins.subproj/WebNetscapePluginDocumentView.m:
624         (-[WebNetscapePluginDocumentView setDataSource:]):
625         * Plugins.subproj/WebNetscapePluginRepresentation.m:
626         * Plugins.subproj/WebPluginController.h:
627         * Plugins.subproj/WebPluginController.m:
628         (-[WebPluginController initWithDocumentView:]):
629         (-[WebPluginController addPlugin:]):
630         (-[WebPluginController destroyAllPlugins]):
631         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
632         (-[WebPluginController webPlugInContainerShowStatus:]):
633         (-[WebPluginController webPlugInContainerSelectionColor]):
634         (-[WebPluginController webFrame]):
635         * Plugins.subproj/WebPluginDatabase.h:
636         * Plugins.subproj/WebPluginDatabase.m:
637         (-[WebPluginDatabase pluginForKey:withEnumeratorSelector:]):
638         (-[WebPluginDatabase refresh]):
639         (WebPluginDocumentView::while):
640         * Plugins.subproj/WebPluginDocumentView.h: Added.
641         * Plugins.subproj/WebPluginDocumentView.m: Added.
642         (-[WebPluginDocumentView initWithFrame:]):
643         (-[WebPluginDocumentView dealloc]):
644         (-[WebPluginDocumentView drawRect:]):
645         (-[WebPluginDocumentView setDataSource:]):
646         (-[WebPluginDocumentView setNeedsLayout:]):
647         (-[WebPluginDocumentView layout]):
648         (-[WebPluginDocumentView currentWindow]):
649         (-[WebPluginDocumentView viewWillMoveToWindow:]):
650         (-[WebPluginDocumentView viewDidMoveToWindow]):
651         (-[WebPluginDocumentView viewWillMoveToHostWindow:]):
652         (-[WebPluginDocumentView viewDidMoveToHostWindow]):
653         (-[WebPluginDocumentView receivedData:withDataSource:]):
654         (-[WebPluginDocumentView receivedError:withDataSource:]):
655         (-[WebPluginDocumentView finishedLoadingWithDataSource:]):
656         (-[WebPluginDocumentView canProvideDocumentSource]):
657         (-[WebPluginDocumentView documentSource]):
658         (-[WebPluginDocumentView title]):
659         * Plugins.subproj/npapi.m:
660         (NPN_ReleaseVariantValue):
661         (NPN_GetStringIdentifier):
662         (NPN_GetStringIdentifiers):
663         (NPN_GetIntIdentifier):
664         (NPN_IdentifierIsString):
665         (NPN_UTF8FromIdentifier):
666         (NPN_IntFromIdentifier):
667         (NPN_CreateObject):
668         (NPN_RetainObject):
669         (NPN_ReleaseObject):
670         (NPN_Invoke):
671         (NPN_InvokeDefault):
672         (NPN_Evaluate):
673         (NPN_GetProperty):
674         (NPN_SetProperty):
675         (NPN_RemoveProperty):
676         (NPN_HasProperty):
677         (NPN_HasMethod):
678         (NPN_SetException):
679         (NPN_Call):
680         * WebCoreSupport.subproj/WebBridge.m:
681         (-[WebBridge frameRequiredForMIMEType:URL:]):
682         * WebCoreSupport.subproj/WebViewFactory.m:
683         * WebKit.exp:
684         * WebKit.pbproj/project.pbxproj:
685         * WebView.subproj/WebDebugDOMNode.m:
686         * WebView.subproj/WebDocumentInternal.h:
687         * WebView.subproj/WebHTMLView.m:
688         (-[WebHTMLView initWithFrame:]):
689         * WebView.subproj/WebHTMLViewPrivate.h:
690         * WebView.subproj/WebImageRepresentation.h:
691         * WebView.subproj/WebRenderNode.m:
692         * WebView.subproj/WebView.m:
693
694 2004-09-29  Richard Williamson   <rjw@apple.com>
695
696         Fixed <rdar://problem/3779998> bringing window to front or sending to back does not send focus/blur events to JavaScript window object
697
698         The fix has two parts, 1) make onblur and onfocus work for windows, 
699         and 2), allow the dashboard to override WebKit's special key/non-key
700         behaviors.
701
702         Reviewed by Maciej.
703
704         * Plugins.subproj/WebBaseNetscapePluginView.m:
705         (-[WebBaseNetscapePluginView restartNullEvents]):
706         * WebView.subproj/WebHTMLView.m:
707         (-[WebHTMLView addMouseMovedObserver]):
708         (-[WebHTMLView removeMouseMovedObserver]):
709         * WebView.subproj/WebView.m:
710         (-[WebView _dashboardBehavior:]):
711         * WebView.subproj/WebViewInternal.h:
712         * WebView.subproj/WebViewPrivate.h:
713
714 2004-09-29  Maciej Stachowiak  <mjs@apple.com>
715
716         Reviewed by John.
717
718         - consolidated OS version checks into prefix header
719
720         * Misc.subproj/WebFileDatabase.m:
721         (-[WebFileDatabase _createLRUList:]):
722         (+[WebFileDatabase _syncLoop:]):
723         * Misc.subproj/WebKitErrors.m:
724         (registerErrors):
725         * Misc.subproj/WebNSObjectExtras.h:
726         (WebNSRetainCFRelease):
727         * Misc.subproj/WebNSPasteboardExtras.m:
728         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
729         * Misc.subproj/WebUnicode.m:
730         (_unicodeDirection):
731         * WebCoreSupport.subproj/WebImageData.h:
732         * WebCoreSupport.subproj/WebImageRenderer.h:
733         * WebCoreSupport.subproj/WebKeyGenerator.h:
734         * WebCoreSupport.subproj/WebNewKeyGeneration.c:
735         * WebKitPrefix.h:
736         * WebView.subproj/WebDataSource.m:
737         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
738         (-[WebDataSource isLoading]):
739         * WebView.subproj/WebFrameView.m:
740         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
741         * WebView.subproj/WebHTMLView.m:
742         * WebView.subproj/WebPDFRepresentation.h:
743         * WebView.subproj/WebPDFRepresentation.m:
744         * WebView.subproj/WebPDFView.h:
745         * WebView.subproj/WebPDFView.m:
746
747 2004-09-29  Ken Kocienda  <kocienda@apple.com>
748
749         Reviewed by Hyatt
750
751         Fix for this bug:
752         
753         <rdar://problem/3818296> REGRESSION (Mail): centerSelectionInVisibleArea does not work correctly
754
755         * WebView.subproj/WebHTMLView.m:
756         (-[WebHTMLView centerSelectionInVisibleArea:]): Now calls new centerSelectionInVisibleArea
757         bridge function instead of ensureCaretVisible. Now handles caret selections and range
758         selections correctly.
759
760 2004-09-28  Chris Blumenberg  <cblu@apple.com>
761
762         Added timing code so that Doug can time RTF conversion. 
763
764         * WebView.subproj/WebHTMLView.m:
765         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]):
766         (-[WebHTMLView _attributeStringFromDOMRange:]):
767
768 2004-09-28  Richard Williamson   <rjw@apple.com>
769
770         <rdar://problem/3817421> add getter for dashboard regions (debugging)
771         
772         <rdar://problem/3817417> NSScrollView need autoregions for dashboard
773         Also KWQScrollBars
774
775         Reviewed by Hyatt.
776
777         * WebCoreSupport.subproj/WebBridge.m:
778         (-[WebBridge dashboardRegionsChanged:]):
779         * WebView.subproj/WebView.m:
780         (-[WebView _setInitiatedDrag:]):
781         (-[WebView _addScrollerDashboardRegions:from:]):
782         (-[WebView _addScrollerDashboardRegions:]):
783         (-[WebView _dashboardRegions]):
784         * WebView.subproj/WebViewPrivate.h:
785
786 2004-09-27  John Sullivan  <sullivan@apple.com>
787
788         - fixed <rdar://problem/3814705> 8A266: Safari authentication dialog "remember password" text should match Mail
789
790         * Panels.subproj/English.lproj/WebAuthenticationPanel.nib:
791         changed "Remember this password" to "Remember this password in my keychain";
792         this will need to go through CCC for this week's build.
793
794 2004-09-27  Chris Blumenberg  <cblu@apple.com>
795
796         Fixed: <rdar://problem/3594754> change null event interval from 20 ms to 10 ms to match speed on Windows
797
798         Reviewed by John.
799
800         * Plugins.subproj/WebBaseNetscapePluginView.m:
801
802 2004-09-27  Chris Blumenberg  <cblu@apple.com>
803
804         Fixed previous reviewer line.
805
806         * ChangeLog:
807
808 2004-09-27  Chris Blumenberg  <cblu@apple.com>
809
810         Fixed: <rdar://problem/3502138> text files don't remember scroll position when going back or reloading
811
812         Reviewed by john.
813
814         * WebView.subproj/WebTextView.m:
815         (-[WebTextView layout]): implemented, call sizeToFit, without this scrollPoint: won't work
816
817 2004-09-27  John Sullivan  <sullivan@apple.com>
818
819         Reviewed by Ken.
820
821         - WebKit part of fix for <rdar://problem/3734466> ER: Support standard editing keystrokes 
822         like Cmd-B while editing rich text
823
824         * WebView.subproj/WebHTMLView.m:
825         (-[WebHTMLView _toggleBold]):
826         new method, toggles font-weight from "bold" to "normal"
827         (-[WebHTMLView _toggleItalic]):
828         new method, toggles font-style from "italic" to "normal"
829         (-[WebHTMLView _handleStyleKeyEquivalent:]):
830         new method, if the new preference is set and we're in an editable state, check for standard
831         key equivalents for toggling styles (just command-B and command-I for now).
832         (-[WebHTMLView performKeyEquivalent:]):
833         Moved in file, now calls _handleStyleKeyEquivalent:
834         
835         * WebView.subproj/WebPreferenceKeysPrivate.h:
836         new preference key WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
837         * WebView.subproj/WebPreferences.m:
838         (+[WebPreferences initialize]):
839         initial value of WebKitRespectStandardStyleKeyEquivalentsPreferenceKey is NO (maybe we'll
840         change our minds about this, but this is more guaranteed to be backward-compatible)
841         (-[WebPreferences respectStandardStyleKeyEquivalents]):
842         read WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
843         (-[WebPreferences setRespectStandardStyleKeyEquivalents:]):
844         write WebKitRespectStandardStyleKeyEquivalentsPreferenceKey
845         
846         * WebView.subproj/WebPreferencesPrivate.h:
847         declare getter and setter
848         
849         * English.lproj/StringsNotToBeLocalized.txt:
850         updated for these and other recent changes
851
852 2004-09-27  Chris Blumenberg  <cblu@apple.com>
853
854         Fixed: <rdar://problem/3806649> assertion failure after control-click of webcam
855
856         Reviewed by john.
857
858         * WebView.subproj/WebDefaultContextMenuDelegate.m:
859         (-[WebDefaultUIDelegate contextMenuItemsForElement:]): don't provide "Copy Image" if the image is not fully loaded
860
861 2004-09-27  Chris Blumenberg  <cblu@apple.com>
862
863         Fixed: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
864
865         Reviewed by john.
866
867         * WebView.subproj/WebHTMLView.m:
868         (-[WebHTMLView _setMouseDownEvent:]): new
869         (-[WebHTMLView acceptsFirstMouse:]): call _setMouseDownEvent
870         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
871         (-[WebHTMLView mouseDown:]): ditto
872         (-[WebHTMLView _delegateDragSourceActionMask]): removed temp fix, assert that the mouse event is not nil
873
874 2004-09-27  Darin Adler  <darin@apple.com>
875
876         * WebKit.pbproj/project.pbxproj: Added WebDashboardRegion.h as a private header.
877
878 2004-09-24  Chris Blumenberg  <cblu@apple.com>
879
880         Reviewed by rjw.
881
882         * WebView.subproj/WebHTMLView.m:
883         (-[WebHTMLView _selectedArchive]): added timing code for copying markup
884
885 === Safari-165 ===
886
887 2004-09-24  Chris Blumenberg  <cblu@apple.com>
888
889         Temp fix for: <rdar://problem/3814810> REGRESSION (125-164): Exception adding nil to dictionary in dragging code
890
891         Reviewed by john.
892
893         * WebView.subproj/WebHTMLView.m:
894         (-[WebHTMLView _delegateDragSourceActionMask]): return none if the mouse down event is nil
895
896 2004-09-24  Ken Kocienda  <kocienda@apple.com>
897
898         Reviewed by John
899
900         Fix for this bug:
901         
902         <rdar://problem/3813917> REGRESSION (125-163): The font panel will change the font of any web page
903         
904         We were doing a laughably bad job at preventing edits in documents that were not editable.
905         This change fixes the specific case of the bug mentioned above, and makes an attempt to
906         fix similar bugs by checking for whether the view is in editing mode before making edits.
907
908         * WebView.subproj/WebHTMLView.m:
909         (-[WebHTMLView _canEdit]): Renamed from _canType. Used in many more places in the code now.
910         (-[WebHTMLView _isMoveDrag]): Change around code to make the meaning more clear. This one
911         was actually performing a correct check before.
912         (-[WebHTMLView keyDown:]): Renamed _canType to _canEdit.
913         (-[WebHTMLView paste:]): Don't beep if can't paste. This matches AppKit. Any paste-related beeps
914         will come from failure to handle key equivalent. Menu validation will kick in to dim menu.
915         (-[WebHTMLView _applyStyleToSelection:]): Bail if !_canEdit.
916         (-[WebHTMLView pasteAsPlainText:]): Ditto.
917         (-[WebHTMLView _alignSelectionUsingCSSValue:]): Ditto.
918         (-[WebHTMLView insertNewline:]): Ditto.
919         (-[WebHTMLView insertParagraphSeparator:]): Ditto.
920         (-[WebHTMLView _changeWordCaseWithSelector:]): Ditto.
921         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Ditto.
922         (-[WebHTMLView complete:]): Ditto.
923         (-[WebHTMLView _changeSpellingToWord:]): Ditto. Some code rearranging to eliminate bridge local variable.
924         (-[WebHTMLView ignoreSpelling:]): Ditto.
925         (-[WebHTMLView yank:]): Bail if !_canEdit.
926         (-[WebHTMLView yankAndSelect:]): Ditto.
927         (-[WebHTMLView deleteToMark:]): Ditto.
928         (-[WebHTMLView swapWithMark:]): Ditto.
929         (-[WebHTMLView transpose:]): Ditto.
930         (-[WebHTMLView _updateFontPanel]): Ditto. Some code rearranging to eliminate bridge local variable.
931         (-[WebHTMLView setMarkedText:selectedRange:]): Bail if !_canEdit.
932         (-[WebHTMLView _insertText:selectInsertedText:]): Ditto. Some code rearranging to eliminate bridge local variable.
933         * WebView.subproj/WebHTMLViewPrivate.h: Renamed _canType to _canEdit.
934
935 2004-09-24  Ken Kocienda  <kocienda@apple.com>
936
937         Reviewed by me
938
939         * WebCoreSupport.subproj/WebDashboardRegion.h: Check in file copied from WebCore.
940
941 2004-09-23  Maciej Stachowiak  <mjs@apple.com>
942
943         Reviewed by Darin.
944
945         <rdar://problem/3685235> REGRESSION (Mail): links are not properly editable
946         
947         * WebView.subproj/WebDefaultUIDelegate.m: By default, don't allow
948         link dragging if the element under the mouse pointer is
949         editable. This way, you can drag-select starting inside a link.
950
951 2004-09-23  John Sullivan  <sullivan@apple.com>
952
953         Reviewed by Chris.
954         
955         - WebKit part of fix for <rdar://problem/3415264> 
956         Default encoding should initially be set to current system encoding
957
958         * WebView.subproj/WebPreferences.m:
959         (-[WebPreferences _setInitialDefaultTextEncodingToSystemEncoding]):
960         new SPI that sets the initial value of the default text encoding to
961         be the system encoding, with a special-case conversion of MacRoman->Latin1.
962         This is not done automatically for WebKit clients for fear of breaking them.
963         
964         * WebView.subproj/WebPreferencesPrivate.h:
965         declare new SPI
966
967 2004-09-23  Darin Adler  <darin@apple.com>
968
969         Reviewed by Ken.
970
971         - fixed <rdar://problem/3811584> REGRESSION (85-125): iframe.document undefined in function called from button onclick; works from img onclick
972
973         The fix is to not let "defers callbacks" have any effect on loading "about:blank".
974         I also had to fix one bug in WebCore that could then be reproduced by going to "about:blank"
975         while using a button.
976
977         * WebView.subproj/WebMainResourceClient.m:
978         (-[WebMainResourceClient connection:didReceiveResponse:]): Loosen asserts to allow this callback
979         for the specific case of "about:blank" even if the defers callbacks flag is true.
980         (-[WebMainResourceClient connectionDidFinishLoading:]): Ditto.
981         (-[WebMainResourceClient loadWithRequestNow:]): Added NSURLRequest return value. Loosened asserts
982         as above. Changed code to return a new request if we get a new request back that is not empty
983         when the defers callbacks flag is true.
984         (-[WebMainResourceClient loadWithRequest:]): If the defers callbacks flag is set, but the
985         URL is one that gives us an empty document, then do the work right away, don't defer it.
986
987 2004-09-23  Darin Adler  <darin@apple.com>
988
989         - fixed B&I builds by checking in generated file
990
991         * WebCoreSupport.subproj/WebDashboardRegion.h: Added.
992
993 2004-09-22  Richard Williamson   <rjw@apple.com>
994
995         Pass dashboard regions to UI delegate.
996
997         Reviewed by Hyatt.
998
999         * WebCoreSupport.subproj/WebBridge.m:
1000         (-[WebBridge dashboardRegionsChanged:]):
1001         * WebView.subproj/WebUIDelegatePrivate.h:
1002         * copy-webcore-files-to-webkit:
1003
1004 2004-09-22  Chris Blumenberg  <cblu@apple.com>
1005
1006         Fixed build that I just broke.
1007
1008         * WebView.subproj/WebHTMLView.m:
1009         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]):
1010
1011 2004-09-22  Chris Blumenberg  <cblu@apple.com>
1012
1013         <rdar://problem/3812091> REGRESSION (Mail): double-clicked word is not smart inserted on drag
1014
1015         Reviewed by john.
1016
1017         * WebView.subproj/WebHTMLView.m:
1018         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass value for smartMove
1019
1020 2004-09-22  Chris Blumenberg  <cblu@apple.com>
1021
1022         Fixed:
1023         <rdar://problem/3667301> Frequent crashes in Mail when viewing HTML messages (CFURLGetByteRangeForComponent)
1024         <rdar://problem/3810354> WebResourceLoadDelegate can't refuse requests by returning nil; code asserts/crashes instead
1025
1026         Reviewed by rjw.
1027
1028         * WebCoreSupport.subproj/WebSubresourceClient.m:
1029         (+[WebSubresourceClient startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]): removed broken code that handled loadWithRequest returning NO
1030         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1031         (-[WebBaseResourceHandleDelegate loadWithRequest:]): if nil is returned from the client for willSendRequest, report the cancelled error and return
1032
1033 2004-09-22  Ken Kocienda  <kocienda@apple.com>
1034
1035         Reviewed by Darin
1036
1037         * WebView.subproj/WebFrameView.m:
1038         (-[WebFrameView _webcore_effectiveFirstResponder]): New function to yield the correct responder
1039         to check for firstResponder-ness before calling makeFirstResonder. This helps to prevent 
1040         unwanted firstResponder switching.
1041         * WebView.subproj/WebView.m:
1042         (-[WebView _webcore_effectiveFirstResponder]): Ditto.
1043
1044 2004-09-21  Chris Blumenberg  <cblu@apple.com
1045
1046         Fixed:
1047         <rdar://problem/3735071> REGRESSION (Mail): WebCore Editing must do smart paste
1048         <rdar://problem/3799163> REGRESSION (Mail): Deleting a word doesn't delete whitespace
1049
1050         Reviewed by darin.
1051
1052         * WebView.subproj/WebDataSource.m:
1053         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): pass NO for smartReplace
1054         * WebView.subproj/WebHTMLView.m:
1055         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
1056         (-[WebHTMLView _changeSpellingFromMenu:]): pass NO for smartReplace
1057         (-[WebHTMLView pasteboardTypesForSelection]): include WebSmartPastePboardType when _canSmartCopyOrDelete return YES
1058         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): ditto
1059         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
1060         (-[WebHTMLView delete:]): call _deleteSelection
1061         (-[WebHTMLView cut:]): don't call delegate twice, call _deleteRange to delete
1062         (-[WebHTMLView pasteAsPlainText:]): pass parameter for smartReplace using _canSmartReplaceWithPasteboard
1063         (-[WebHTMLView _changeWordCaseWithSelector:]): pass NO for smartReplace
1064         (-[WebHTMLView deleteBackward:]): call _deleteSelection when there is a selected range
1065         (-[WebHTMLView _changeSpellingToWord:]): pass NO for smartReplace
1066         (-[WebHTMLView deleteToMark:]): pass NO for smartDeleteOK
1067         (-[WebHTMLView transpose:]): pass NO for smartReplace
1068         (-[WebHTMLView _shouldDeleteRange:]): moved
1069         (-[WebHTMLView _deleteRange:preflight:killRing:prepend:smartDeleteOK:]): moved, handle smartDelete
1070         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): moved
1071         (-[WebHTMLView _deleteSelection]): new
1072         (-[WebHTMLView _canSmartReplaceWithPasteboard]): new
1073         (-[WebHTMLView _canSmartCopyOrDelete]): new
1074         (-[WebHTMLView setMarkedText:selectedRange:]): pass NO for smartReplace
1075         (-[WebHTMLView _discardMarkedText]): call _deleteSelection
1076         (-[WebTextCompleteController _insertMatch:]): pass NO for smartReplace
1077         (-[WebTextCompleteController endRevertingChange:moveLeft:]): pass NO for smartReplace
1078         * WebView.subproj/WebHTMLViewInternal.h:
1079         * WebView.subproj/WebView.m:
1080         (-[WebView _commonInitializationWithFrameName:groupName:]): set smartInsertDeleteEnabled to YES
1081         (-[WebView replaceSelectionWithNode:]): pass NO for smartReplace
1082         (-[WebView replaceSelectionWithText:]): pass NO for smartReplace
1083         (-[WebView replaceSelectionWithMarkupString:]): pass NO for smartReplace
1084         (-[WebView deleteSelection]): call _deleteSelection on WebHTMLView
1085
1086 2004-09-21  John Sullivan  <sullivan@apple.com>
1087
1088         Reviewed by Darin.
1089
1090         - WebKit part of fix for <rdar://problem/3618274> REGRESSION (125-135): 
1091         Option-tab doesn't always work as expected
1092
1093         * WebCoreSupport.subproj/WebBridge.m:
1094         (-[WebBridge _retrieveKeyboardUIModeFromPreferences:]):
1095         Don't set WebCoreKeyboardAccessFull when setting WebCoreKeyboardAccessTabsToLinks
1096         after all; these need to be tested independently to get the option-tab behavior
1097         correct.
1098
1099 2004-09-21  John Sullivan  <sullivan@apple.com>
1100
1101         * WebView.subproj/WebHTMLView.m:
1102         (-[WebHTMLView doCommandBySelector:]):
1103         Commented out part of previous change; it breaks Mail editing until Mail
1104         fixes bug 3810158.
1105
1106 2004-09-21  John Sullivan  <sullivan@apple.com>
1107
1108         Reviewed by Ken.
1109
1110         * WebView.subproj/WebHTMLView.m:
1111         (-[WebHTMLView doCommandBySelector:]):
1112         Fix build failure from previous checkin, d'oh! Didn't set up webview variable.
1113
1114 2004-09-21  John Sullivan  <sullivan@apple.com>
1115
1116         Reviewed by Ken.
1117         
1118         - fixed <rdar://problem/3809477> WebHTMLView needs to pass doCommandBySelector through delegate
1119
1120         * WebView.subproj/WebHTMLView.m:
1121         (-[WebHTMLView doCommandBySelector:]):
1122         Call through to editing delegate. If editing delegate returns YES, don't call super.
1123
1124         * WebView.subproj/WebDefaultEditingDelegate.m:
1125         (-[WebDefaultEditingDelegate webView:doCommandBySelector:]):
1126         default implementation (which was never called) was returning YES, but it should
1127         return NO to signal that it didn't handle the selector.
1128         
1129 2004-09-21  Chris Blumenberg  <cblu@apple.com>
1130
1131         Fixed: <rdar://problem/3647229> Safari does not play inline Windows Media Content on some sites (miggy.net and ministryofsound.com)
1132
1133         Reviewed by john.
1134
1135         * Plugins.subproj/WebBaseNetscapePluginView.m:
1136         * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
1137         (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:MIMEType:attributeKeys:attributeValues:]): set the plug-in before calling setting the attributes, so we can avoid passing certain attributes to the WMP plug-in that cause it to crash
1138
1139 2004-09-20  Chris Blumenberg  <cblu@apple.com>
1140
1141         Fixed: <rdar://problem/3781290> REGRESSION (Mail): Crash in ReplaceSelectionCommandImpl attaching file to new message
1142
1143         Reviewed by kocienda.
1144
1145         * WebView.subproj/WebView.m:
1146         (-[WebView setEditable:]): call updateSelectionFromEmpty on the bridge if there is no selection
1147
1148 2004-09-20  Chris Blumenberg  <cblu@apple.com>
1149
1150         Changes to implement renamed bridge methods.
1151
1152         Reviewed by darin.
1153
1154         * ChangeLog:
1155         * DOM.subproj/WebDOMOperations.m:
1156         (-[DOMDocument URLWithAttributeString:]): call renamed bridge method
1157         * WebCoreSupport.subproj/WebBridge.m:
1158         (-[WebBridge pluginViewWithPackage:attributeNames:attributeValues:baseURL:]): take 2 parameter arrays rather than 1 which will have to be parsed
1159         (-[WebBridge viewForPluginWithURL:attributeNames:attributeValues:MIMEType:]): ditto
1160
1161 2004-09-20  Darin Adler  <darin@apple.com>
1162
1163         Reviewed by Chris.
1164
1165         * WebView.subproj/WebFramePrivate.h: Added back.
1166         * WebView.subproj/WebFrameViewPrivate.h: Removed.
1167
1168 2004-09-20  Darin Adler  <darin@apple.com>
1169
1170         Reviewed by Ken.
1171
1172         - fixed <rdar://problem/3655360> REGRESSION (Mail): Ctrl-V emacs key binding, -pageDown: method, unimplemented (and pageUp, and selection-modifying versions)
1173         - fixed <rdar://problem/3792138> REGRESSION (Mail): Spell checker doesn't check current selected word
1174
1175         * WebView.subproj/WebFrameViewInternal.h: Moved WebFrameViewPrivate inside the WebFrameView.m file.
1176         Removed a bunch of methods that don't need to be seen in other files, and added _verticalPageScrollDistance.
1177         * WebView.subproj/WebFrameViewPrivate.h: Removed. Renamed to WebFrameViewInternal.h.
1178         * WebView.subproj/WebFrameView.m:
1179         (-[WebFrameView _verticalKeyboardScrollDistance]): Move in the file because of internal vs. private.
1180         (-[WebFrameView _shouldDrawBorder]): Ditto.
1181         (-[WebFrameView _tile]): Ditto.
1182         (-[WebFrameView _verticalPageScrollDistance]): Added. Separate method so it can be called
1183         by the code to implement pageDown:.
1184         (-[WebFrameView _drawBorder]): Move in the file because of internal vs. private.
1185         (-[WebFrameView _goBack]): Ditto.
1186         (-[WebFrameView _goForward]): Ditto.
1187         (-[WebFrameView _scrollVerticallyBy:]): Ditto.
1188         (-[WebFrameView _scrollHorizontallyBy:]): Ditto.
1189         (-[WebFrameView _horizontalKeyboardScrollDistance]): Ditto.
1190         (-[WebFrameView _horizontalPageScrollDistance]): Added. Separate method for consistency with
1191         vertical method above.
1192         (-[WebFrameView _pageVertically:]): Moved and changed to use _verticalPageScrollDistance.
1193         (-[WebFrameView _pageHorizontally:]): Moved and changed to use _horizontalPageScrollDistance.
1194         (-[WebFrameView _scrollLineVertically:]): Move in the file because of internal vs. private.
1195         (-[WebFrameView _scrollLineHorizontally:]): Ditto.
1196         (-[WebFrameView scrollPageUp:]): Ditto.
1197         (-[WebFrameView scrollPageDown:]): Ditto.
1198         (-[WebFrameView scrollLineUp:]): Ditto.
1199         (-[WebFrameView scrollLineDown:]): Ditto.
1200         (-[WebFrameView _firstResponderIsControl]): Ditto.
1201         (-[WebFrameView keyDown:]): Changed to eliminate _pageLeft, _lineLeft, _pageRight, and _lineRight.
1202
1203         * WebView.subproj/WebDataSource.m: Use WebFrameView.h instead of WebFrameViewPrivate.h.
1204
1205         * WebView.subproj/WebHTMLView.m:
1206         (-[WebHTMLView _alterCurrentSelection:verticalDistance:]): Added.
1207         (-[WebHTMLView moveToBeginningOfDocument:]): Use WebSelectToDocumentBoundary.
1208         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
1209         (-[WebHTMLView moveToEndOfDocument:]): Ditto.
1210         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
1211         (-[WebHTMLView moveParagraphBackwardAndModifySelection:]): Added.
1212         (-[WebHTMLView moveParagraphForwardAndModifySelection:]): Added.
1213         (-[WebHTMLView pageUp:]): Added.
1214         (-[WebHTMLView pageDown:]): Added.
1215         (-[WebHTMLView pageUpAndModifySelection:]): Added.
1216         (-[WebHTMLView pageDownAndModifySelection:]): Added.
1217         (-[WebHTMLView showGuessPanel:]): Changed to call advanceToNextMisspellingStartingJustBeforeSelection.
1218         This fixes the problem with spell checking.
1219
1220         * WebView.subproj/WebImageView.m:
1221         (-[WebImageView webView]): Changed to use _web_parentWebView.
1222         (-[WebImageView menuForEvent:]): Changed to use [self webView].
1223         (-[WebImageView mouseDown:]): Ditto.
1224         (-[WebImageView mouseDragged:]): Ditto.
1225         (-[WebImageView draggedImage:endedAt:operation:]): Ditto.
1226
1227         * WebView.subproj/WebTextView.m:
1228         (-[WebTextView _textSizeMultiplierFromWebView]): Changed to use _web_parentWebView.
1229         (-[WebTextView menuForEvent:]): Ditto.
1230         (-[WebTextView drawPageBorderWithSize:]): Ditto.
1231         (-[WebTextView knowsPageRange:]): Ditto.
1232
1233         * Plugins.subproj/WebPluginDatabase.m: Updated filename of WebFrameViewInternal.h.
1234         * WebCoreSupport.subproj/WebBridge.m: Ditto.
1235         * WebKit.pbproj/project.pbxproj: Ditto.
1236         * WebView.subproj/WebFrame.m: Ditto.
1237         * WebView.subproj/WebView.m: Ditto.
1238         * Misc.subproj/WebNSViewExtras.m: Ditto.
1239
1240 2004-09-20  Darin Adler  <darin@apple.com>
1241
1242         Reviewed by Ken.
1243
1244         - added helper method _web_parentWebView so fewer files need to get at WebFrame private methods
1245
1246         * Misc.subproj/WebNSViewExtras.h: Added _web_parentWebView.
1247         * Misc.subproj/WebNSViewExtras.m: (-[NSView _web_parentWebView]): Added.
1248
1249 === Safari-164 ===
1250
1251 2004-09-17  Chris Blumenberg  <cblu@apple.com>
1252         
1253         Fixed:
1254         <rdar://problem/3805757> don't unnecessarily put RTFD on the pasteboard
1255         <rdar://problem/3805756> strip attachments before generating RTF
1256
1257         Reviewed by john.
1258
1259         * WebView.subproj/WebHTMLView.m:
1260         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): only put RTFD on the pasteboard if it has attachments, strip attachments when writing RTF
1261
1262 2004-09-16  Darin Adler  <darin@apple.com>
1263
1264         Reviewed by John.
1265
1266         - fixed <rdar://problem/3804648> 8A262: Safari crashed in -[WebView(WebPrivate) _editingDelegateForwarder] inside QuickTime Cocoa Plug-in during WebView deallocation
1267
1268         * WebView.subproj/WebView.m: (-[WebView _editingDelegateForwarder]):
1269         Check _private for nil before dereferencing it.
1270
1271 2004-09-16  Chris Blumenberg  <cblu@apple.com>
1272
1273         Fixed: <rdar://problem/3779150> REGRESSION: images not copied when copying HTML in Safari and pasting into TextEdit
1274
1275         Reviewed by john.
1276
1277         * WebView.subproj/WebHTMLView.m:
1278         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): use RTFDFromRange:: for RTFD
1279         * WebView.subproj/WebHTMLViewPrivate.h:
1280
1281 2004-09-15  Darin Adler  <darin@apple.com>
1282
1283         Reviewed by John.
1284
1285         - fixed assertion I saw using the font panel
1286
1287         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _colorAsString:]):
1288         Convert color space before trying to get R, G, and B components.
1289
1290 2004-09-15  Chris Blumenberg  <cblu@apple.com>
1291
1292         Fixed: <rdar://problem/3802232> REGRESSION (Mail): WebCore Editing must do smart copy
1293         
1294         Reviewed by kocienda.
1295
1296         * WebView.subproj/WebHTMLView.m:
1297         (-[WebHTMLView _writeSelectionToPasteboard:]): call instance method not class method to get pasteboard types since the types depends on the current selection granularity
1298         (-[WebHTMLView pasteboardTypesForSelection]): if the selection granularity is "word" include the smart pasteboard type
1299         (-[WebHTMLView writeSelectionWithPasteboardTypes:toPasteboard:]): put nil on the pasteboard for smart copy
1300
1301 2004-09-14  Darin Adler  <darin@apple.com>
1302
1303         Reviewed by Maciej.
1304
1305         - fixed <rdar://problem/3788894> REGRESSION (Mail): ctrl-t emacs key binding does not work (transpose)
1306         - fixed <rdar://problem/3798946> REGRESSION (Mail): Cursor does not disappear when typing
1307
1308         * WebView.subproj/WebHTMLView.m:
1309         (-[WebHTMLView keyDown:]): Hide cursor by calling setHiddenUntilMouseMoves:YES.
1310         (-[WebHTMLView transpose:]): Added.
1311
1312 2004-09-14  Richard Williamson   <rjw@apple.com>
1313
1314         1.  Add class parameter to object allocation function.  This is somewhat redundant, given that
1315         the allocation function is in the class function vector, but people wanted to use the same
1316         allocation function for different classes.
1317         
1318         2.  Renamed NPN_Class to NPN_Invoke to match the name in the function vector.
1319         
1320         3.  Add support for a default function on an object.  This is a feature that ActiveX supports,
1321         and will allow JavaScript code to be written that will look exactly the same for both ActiveX
1322         plugins and Netscape or WebKit plugins.  There are implementations included for the 'C' and
1323         'Objective-C' bindings.
1324         
1325         There bugs are covered by
1326         
1327         <rdar://problem/3776343> Support for default functions in the JavaScript bindings
1328         <rdar://problem/3779186> NPN_Call needs to be renamed to NPN_Invoke
1329         <rdar://problem/3674754> Need to implement latest npruntime.h
1330
1331         Reviewed by John.
1332
1333         * Plugins.subproj/WebNetscapePluginPackage.m:
1334         (-[WebNetscapePluginPackage load]):
1335         * Plugins.subproj/WebScriptObject.h:
1336         * Plugins.subproj/npfunctions.h:
1337         * Plugins.subproj/npruntime.h:
1338
1339 2004-09-13  Richard Williamson   <rjw@apple.com>
1340
1341         D'oh.  How many times can I screw up a simple fix!
1342
1343         * WebCoreSupport.subproj/WebTextRenderer.m:
1344         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
1345
1346 2004-09-13  Richard Williamson   <rjw@apple.com>
1347
1348         Fixed snafu from 3782533 checkin.
1349         
1350         Reviewed by John.
1351
1352         * WebCoreSupport.subproj/WebTextRenderer.m:
1353         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
1354
1355 2004-09-12  Chris Blumenberg  <cblu@apple.com>
1356
1357         Support for: <rdar://problem/3794790> drop rate or time remaining from download status when window is too small to fit it
1358
1359         Reviewed by john.
1360
1361         * Misc.subproj/WebStringTruncator.h:
1362         * Misc.subproj/WebStringTruncator.m:
1363         (+[WebStringTruncator widthOfString:font:]): new
1364
1365 2004-09-10  Richard Williamson   <rjw@apple.com>
1366
1367         Fixed <rdar://problem/3782533> CrashTracer: .1459 crashes at com.apple.WebKit: -[WebTextRenderer initWithFont:usingPrinterFont:] + 0x138
1368
1369         We were explicitly failing when we encountered deprecated fonts.
1370         (Those with unsupported glyph packings).
1371         Deprecated fonts should only appear on a system that have 
1372         stuff migrated from OS 9.  Ugh, thats probably why we've never seen
1373         the problem here.
1374         
1375         Reviewed by John.
1376
1377         * WebCoreSupport.subproj/WebTextRenderer.m:
1378         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
1379
1380 2004-09-10  John Sullivan  <sullivan@apple.com>
1381
1382         Reviewed by Chris.
1383         
1384         - added _isFrameSet as a private method, so it can be used in WebBrowser.
1385         This is needed to merge the fix for 3123987 to SUPanNavy.
1386
1387         * WebView.subproj/WebFrame.m:
1388         (-[WebFrame _isFrameSet]):
1389         new method
1390         
1391         * WebView.subproj/WebFramePrivate.h:
1392         declare new method
1393
1394 2004-09-10  Chris Blumenberg  <cblu@apple.com>
1395
1396         Fixed previous "Reviewed by" line.
1397
1398         * ChangeLog:
1399
1400 2004-09-09  Chris Blumenberg  <cblu@apple.com>
1401
1402         Support for: <rdar://problem/3795485> debug menu item to enable RSS animation on first layout
1403
1404         Reviewed by rjw.
1405
1406         * WebCoreSupport.subproj/WebBridge.m:
1407         (-[WebBridge didFirstLayout]): new
1408         * WebView.subproj/WebDefaultFrameLoadDelegate.m:
1409         (-[WebDefaultFrameLoadDelegate webView:didFirstLayoutInFrame:]): new
1410         * WebView.subproj/WebViewPrivate.h:
1411
1412 2004-09-09  Richard Williamson   <rjw@apple.com>
1413
1414         Alternate implementation of image rendering.  Use CGImageRefs instead
1415         of NSImages.
1416         
1417         Mostly works, but currently disabled because of issues w/ CG.
1418         
1419         Reviewed by Chris.
1420
1421         * ChangeLog:
1422         * WebCoreSupport.subproj/WebImageData.h: Added.
1423         * WebCoreSupport.subproj/WebImageData.m: Added.
1424         (-[WebImageData _commonTermination]):
1425         (-[WebImageData dealloc]):
1426         (-[WebImageData finalize]):
1427         (-[WebImageData copyWithZone:]):
1428         (-[WebImageData numberOfImages]):
1429         (-[WebImageData currentFrame]):
1430         (-[WebImageData _invalidateImages]):
1431         (-[WebImageData imageAtIndex:]):
1432         (-[WebImageData incrementalLoadWithBytes:length:complete:]):
1433         (drawPattern):
1434         (-[WebImageData tileInRect:fromPoint:context:]):
1435         (-[WebImageData isNull]):
1436         (-[WebImageData size]):
1437         (-[WebImageData _frameDuration]):
1438         (-[WebImageData _repetitionCount]):
1439         (-[WebImageData isAnimationFinished]):
1440         (+[WebImageData stopAnimationsInView:]):
1441         (-[WebImageData addAnimatingRenderer:inView:]):
1442         (-[WebImageData removeAnimatingRenderer:]):
1443         (-[WebImageData _stopAnimation]):
1444         (-[WebImageData _nextFrame:]):
1445         (-[WebImageData animate]):
1446         * WebCoreSupport.subproj/WebImageRenderer.h:
1447         * WebCoreSupport.subproj/WebImageRenderer.m:
1448         (-[WebImageRenderer initWithMIMEType:]):
1449         (-[WebImageRenderer initWithData:MIMEType:]):
1450         (-[WebImageRenderer initWithContentsOfFile:]):
1451         (-[WebImageRenderer dealloc]):
1452         (-[WebImageRenderer copyWithZone:]):
1453         (-[WebImageRenderer retainOrCopyIfNeeded]):
1454         (-[WebImageRenderer resize:]):
1455         (-[WebImageRenderer size]):
1456         (-[WebImageRenderer MIMEType]):
1457         (-[WebImageRenderer frameCount]):
1458         (-[WebImageRenderer isNull]):
1459         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
1460         (-[WebImageRenderer drawImageInRect:fromRect:]):
1461         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
1462         (-[WebImageRenderer tileInRect:fromPoint:context:]):
1463         (-[WebImageRenderer _startOrContinueAnimationIfNecessary]):
1464         (+[WebImageRenderer stopAnimationsInView:]):
1465         (-[WebImageRenderer stopAnimation]):
1466         (-[WebImageRenderer targetAnimationRect]):
1467         (-[WebImageRenderer increaseUseCount]):
1468         (-[WebImageRenderer decreaseUseCount]):
1469         (-[WebImageRenderer flushRasterCache]):
1470         (-[WebImageRenderer imageRef]):
1471         (-[WebImageRenderer TIFFRepresentation]):
1472         (-[WebImageRenderer image]):
1473         * WebCoreSupport.subproj/WebImageRendererFactory.m:
1474         (-[WebImageRendererFactory imageRendererWithMIMEType:]):
1475         (-[WebImageRendererFactory imageRendererWithData:MIMEType:]):
1476         (-[WebImageRendererFactory imageRendererWithSize:]):
1477         (-[WebImageRendererFactory imageRendererWithName:]):
1478         * WebKit.pbproj/project.pbxproj:
1479         * WebView.subproj/WebImageView.m:
1480         (-[WebImageView image]):
1481
1482 === Safari-163 ===
1483
1484 2004-09-09  Maciej Stachowiak  <mjs@apple.com>
1485
1486         - rolled out last two changes, they seem to cause a performance regression
1487
1488         * WebView.subproj/WebHTMLView.m:
1489         (-[WebHTMLView firstRectForCharacterRange:]):
1490
1491 2004-09-09  Maciej Stachowiak  <mjs@apple.com>
1492
1493         - fixed build
1494
1495         * WebView.subproj/WebHTMLView.m:
1496         (-[WebHTMLView firstRectForCharacterRange:]):
1497
1498 2004-09-08  Maciej Stachowiak  <mjs@apple.com>
1499
1500         Reviewed by Dave.
1501
1502         WebKit part of fix for:
1503         
1504         <rdar://problem/3759187> REGRESSION (Mail): implement firstRectForCharacterRange:
1505
1506         * WebView.subproj/WebHTMLView.m:
1507         (-[WebHTMLView firstRectForCharacterRange:]): Call the appropriate new bridge method,
1508         and translate to screen coordinates.
1509
1510 2004-09-09  Darin Adler  <darin@apple.com>
1511
1512         Reviewed by Ken.
1513
1514         - fixed <rdar://problem/3790526> mark-related methods not implemented (needed for people with them in their key bindings files)
1515
1516         * WebKit.pbproj/project.pbxproj: Update MACOSX_DEPLOYMENT_TARGET to 10.3 and add -fobjc-exceptions
1517         so we can use new exceptions.
1518
1519         * WebView.subproj/WebHTMLView.m:
1520         (-[WebHTMLView setMark:]): Added.
1521         (unionDOMRanges): Added.
1522         (-[WebHTMLView deleteToMark:]): Added.
1523         (-[WebHTMLView selectToMark:]): Added.
1524         (-[WebHTMLView swapWithMark:]): Added.
1525         (-[WebHTMLView markedRange]): Updated for change to bridge method names.
1526         (-[WebHTMLView hasMarkedText]): Ditto.
1527         (-[WebHTMLView unmarkText]): Ditto.
1528         (-[WebHTMLView _selectMarkedText]): Ditto.
1529         (-[WebHTMLView _selectRangeInMarkedText:]): Ditto.
1530         (-[WebHTMLView setMarkedText:selectedRange:]): Ditto.
1531         (-[WebHTMLView _insertText:selectInsertedText:]): Removed check for empty string. An empty string
1532         should not be filtered out here. We need to allow inserting an empty string.
1533         (-[WebHTMLView _selectionIsInsideMarkedText]): Updated for change to bridge method names.
1534         (-[WebHTMLView _updateSelectionForInputManager]): Ditto.
1535
1536         * WebView.subproj/WebView.m: (-[WebView searchFor:direction:caseSensitive:wrap:]):
1537         Changed to use selectionDOMRange instead of selectionStart.
1538
1539         * WebView.subproj/WebHTMLRepresentation.h: Removed unused setSelectionFrom method.
1540         * WebView.subproj/WebHTMLRepresentation.m: Ditto.
1541
1542 2004-09-08  John Sullivan  <sullivan@apple.com>
1543
1544         Reviewed by Darin.
1545         
1546         - fixed the localization aspect of: 
1547         <rdar://problem/3790011> undoable operations all say "Undo" in the menu, no specific action names
1548         
1549         We now have all the strings ready for localization; we just don't actually use them yet.
1550
1551         * English.lproj/Localizable.strings:
1552         updated for this change
1553         
1554         * WebCoreSupport.subproj/WebBridge.m:
1555         (-[WebBridge setUndoActionNamePlaceholder]):
1556         added this placeholder method whose purpose is to hold localizable strings for all the Undo
1557         action names that NSTextView uses. Later we will use some or all of these, but we can do
1558         that part after the localization freeze.
1559
1560 2004-09-08  Chris Blumenberg  <cblu@apple.com>
1561
1562         Fixed previous "Reviewed by" line.
1563
1564         * ChangeLog:
1565
1566 2004-09-08  Chris Blumenberg  <cblu@apple.com>
1567
1568         Fixed: <rdar://problem/3778785> REGRESSION (Mail): copying from MS word and pasting into editable region leaves internal clipboard data
1569
1570         Reviewed by kocienda.
1571
1572         * WebView.subproj/WebHTMLView.m:
1573         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ignore Microsoft's header meta data
1574
1575 2004-09-08  Chris Blumenberg  <cblu@apple.com>
1576
1577         Fixed: <rdar://problem/3792893> WebBaseResourceHandleDelegate always returns cached data for subresource loads
1578
1579         Reviewed by rjw.
1580
1581         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1582         (-[WebBaseResourceHandleDelegate _canUseResourceForRequest:]): new
1583         (-[WebBaseResourceHandleDelegate loadWithRequest:]): call _canUseResourceForRequest:
1584
1585 2004-09-08  Chris Blumenberg  <cblu@apple.com>
1586
1587         Forgot to add this in previous check-in.        
1588
1589         * English.lproj/WebViewEditingContextMenu.nib: Added.
1590
1591 2004-09-08  Chris Blumenberg  <cblu@apple.com>
1592
1593         Fixed: <rdar://problem/3791240> WebKit uses the NSTextViewContextMenu nib from inside AppKit
1594
1595         Reviewed by john.
1596
1597         * English.lproj/StringsNotToBeLocalized.txt:
1598         * WebKit.pbproj/project.pbxproj:
1599         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1600         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): use our copy of the nib
1601
1602 2004-09-07  Darin Adler  <darin@apple.com>
1603
1604         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
1605
1606 2004-09-07  Chris Blumenberg  <cblu@apple.com>
1607
1608         Fixed: <rdar://problem/3790143> exception raised when dragging a URL with 2-byte characters
1609
1610         (checked in with last check-in)
1611
1612 2004-09-07  Chris Blumenberg  <cblu@apple.com>
1613
1614         Fixed:
1615         <rdar://problem/3080103> Need to pass cmd-modified keys to plug-ins
1616         <rdar://problem/3751509> can't use safari edit menu to copy and paste with Vantage Learning's My Access
1617
1618         Reviewed by john.
1619
1620         * Plugins.subproj/WebBaseNetscapePluginView.m: fake up command-key events for cut, copy, paste and select all so these menu items work for plug-ins
1621         (-[WebBaseNetscapePluginView sendModifierEventWithKeyCode:character:]):
1622         (-[WebBaseNetscapePluginView cut:]):
1623         (-[WebBaseNetscapePluginView copy:]):
1624         (-[WebBaseNetscapePluginView paste:]):
1625         (-[WebBaseNetscapePluginView selectAll:]):
1626
1627 2004-09-07  Darin Adler  <darin@apple.com>
1628
1629         - fixed deployment build
1630
1631         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _deleteWithDirection:granularity:killRing:]):
1632         Initialize prepend variable.
1633
1634 2004-09-06  Darin Adler  <darin@apple.com>
1635
1636         Reviewed by John.
1637
1638         - fixed <rdar://problem/3696542> REGRESSION (Mail): Editable WebKit doesn't support underline yet (in the iChat profile window, at least)
1639         - fixed <rdar://problem/3780249> REGRESSION (Mail): copy style/paste style doesn't work in HTML editing in Mail
1640         - fixed <rdar://problem/3788857> REGRESSION (Mail): Home and End keys don't work in message composer
1641         - fixed <rdar://problem/3788884> REGRESSION (Mail): ctrl-d emacs key binding does not work (delete forward)
1642         - fixed <rdar://problem/3788890> REGRESSION (Mail): ctrl-k emacs key binding does not work (delete to end of paragraph)
1643         - fixed <rdar://problem/3788899> REGRESSION (Mail): ctrl-y emacs key binding does not work (yank)
1644         - fixed <rdar://problem/3788901> REGRESSION (Mail): ctrl-o emacs key binding does not work (insert newline in front of insertion point)
1645         - fixed <rdar://problem/3788908> REGRESSION (Mail): ctrl-left-arrow emacs key binding does not work (move to beginning of line)
1646         - fixed <rdar://problem/3788913> REGRESSION (Mail): ctrl-right-arrow emacs key binding does not work (move to end of line)
1647         - implemented a first cut at other attribute changes from Text Panel besides underline (bugs?)
1648         - dealt with a couple of FIXMEs in WebHTMLView.m
1649         - updated list of not-yet-implemented methods in WebHTMLView.m
1650         - fixed many deletion operations to call the correct editing delegate methods
1651
1652         * WebView.subproj/WebFrameViewPrivate.h: Remove _scrollToTopLeft and _scrollToBottomLeft.
1653         No one was calling them anyway, so they should really have been marked internal and not private.
1654         * WebView.subproj/WebFrameView.m:
1655         (-[WebFrameView scrollToBeginningOfDocument:]): Renamed _scrollToTopLeft to this, so the home key
1656         would start working with the key bindings machinery.
1657         (-[WebFrameView scrollToEndOfDocument:]): Same thing, for end key.
1658         (-[WebFrameView keyDown:]): Update for name changes, and also make sure we don't try to grab
1659         control-arrow keys here (probably not necessary, but good anyway).
1660
1661         * WebView.subproj/WebHTMLViewInternal.h: Added keyDownEvent field, and startNewKillRingSequence
1662         and nextResponderDisabledOnce flags.
1663         * WebView.subproj/WebHTMLView.m:
1664         Rearrange declarations at the top of the file so that external things are up with
1665         the #import directives and things inside this file are declared below.
1666         (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): Ditto.
1667         (-[WebHTMLView _calculatePrintHeight]): Moved up into the "internal to file" category.
1668         (-[WebHTMLView _updateTextSizeMultiplier]): Ditto.
1669         (-[WebHTMLView _selectedRange]): Added.
1670         (-[WebHTMLView _openLinkFromMenu:]): Left this method lying around even though I deleted the
1671         other APPKIT_CODE_FOR_REFERENCE in case this shows up in the context menu we are now sharing
1672         with the AppKit. Chris will look at this later, and he can delete it then.
1673         (+[WebHTMLView initialize]): Call _NSInitializeKillRing.
1674         (-[WebHTMLView _documentRange]): Added.
1675         (-[WebHTMLView string]): Call the bridge to get the plain text rather than making an attributed
1676         string and then getting the text from there.
1677         (-[WebHTMLView becomeFirstResponder]): Set startNewKillRingSequence flag, so that new deletions
1678         will create a new kill ring entry.
1679         (-[WebHTMLView moveToBeginningOfDocument:]): Use backward direction instead of left direction.
1680         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
1681         (-[WebHTMLView moveToBeginningOfLine:]): Ditto.
1682         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]): Ditto.
1683         (-[WebHTMLView moveToBeginningOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
1684         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
1685         (-[WebHTMLView moveToEndOfDocument:]): Use forward direction instead of right direction.
1686         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
1687         (-[WebHTMLView moveToEndOfLine:]): Ditto.
1688         (-[WebHTMLView moveToEndOfLineAndModifySelection:]): Ditto.
1689         (-[WebHTMLView moveToEndOfParagraph:]): Ditto, also use WebSelectToParagraphBoundary.
1690         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
1691         (-[WebHTMLView _shouldDeleteRange:]): Added.
1692         (-[WebHTMLView _deleteRange:preflight:killRing:prepend:]): Added.
1693         (-[WebHTMLView delete:]): Changed to call new _deleteRange method.
1694         (-[WebHTMLView cut:]): Changed to preflight property and call new _deleteRange method.
1695         (-[WebHTMLView _selectionFontAttributes]): Added.
1696         (-[WebHTMLView _selectionFontAttributesAsRTF]): Added.
1697         (-[WebHTMLView _fontAttributesFromFontPasteboard]): Added.
1698         (-[WebHTMLView _emptyStyle]): Added.
1699         (-[WebHTMLView _styleFromFontAttributes:]): Added.
1700         (-[WebHTMLView _applyStyleToSelection:]): Added.
1701         (-[WebHTMLView copyFont:]): Implemented.
1702         (-[WebHTMLView pasteFont:]): Implemented.
1703         (-[WebHTMLView _originalFontA]): Added.
1704         (-[WebHTMLView _originalFontB]): Added.
1705         (-[WebHTMLView _addToStyle:fontA:fontB:]): Added. Has code from the method that figures out
1706         what the font manager is doing for changeFont:, now needed for changeAttribute: too.
1707         (-[WebHTMLView _styleFromFontManagerOperation]): Renamed and now calls shared methods.
1708         (-[WebHTMLView changeFont:]): Call shared method, still does the same thing.
1709         (-[WebHTMLView _colorAsString:]): Added. Has code from the method we were using with the
1710         color panel before.
1711         (-[WebHTMLView _shadowAsString:]): Added.
1712         (-[WebHTMLView _styleForAttributeChange:]): Added.
1713         (-[WebHTMLView changeAttributes:]): Implemented.
1714         (-[WebHTMLView _styleFromColorPanelWithSelector:]): Renamed and now calls shared methods.
1715         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]): Call method by new name.
1716         (-[WebHTMLView changeDocumentBackgroundColor:]): Call method by new name.
1717         (-[WebHTMLView changeColor:]): Changed around a bit; still doesn't work yet.
1718         (-[WebHTMLView _alignSelectionUsingCSSValue:]): Call shared methods.
1719         (-[WebHTMLView indent:]): Removed, since NSTextView doesn't implement this method. Added to list
1720         of methods to possibly implement later in the file.
1721         (-[WebHTMLView insertTab:]): Call insertText: to save code and so we get WebViewInsertActionTyped
1722         instead of WebViewInsertActionPasted.
1723         (-[WebHTMLView changeCaseOfLetter:]): Removed, since NSTextView doesn't implement this method.
1724         Added to list of methods to possibly implement later in the file.
1725         (-[WebHTMLView _deleteWithDirection:granularity:killRing:]): Added.
1726         (-[WebHTMLView deleteForward:]): Implemented. This makes Control-D work.
1727         (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Implemented by just calling
1728         deleteBackward for now; probably better than doing nothing.
1729         (-[WebHTMLView deleteWordForward:]): Changed to call new _delete method above. Fixes things
1730         so that we delete the selection if there is one, get the appropriate delegate calls, handle
1731         the kill ring properly, and don't do any selection if we can't delete.
1732         (-[WebHTMLView deleteWordBackward:]): Ditto.
1733         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
1734         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
1735         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
1736         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto. Added additional behavior needed since this
1737         is bound to Control-K, so it's not really just delete to end of paragraph.
1738         (-[WebHTMLView insertNewlineIgnoringFieldEditor:]): Added. Calls insertNewline:.
1739         (-[WebHTMLView insertTabIgnoringFieldEditor:]): Added. Calls insertTab:.
1740         (-[WebHTMLView subscript:]): Added.
1741         (-[WebHTMLView superscript:]): Added.
1742         (-[WebHTMLView unscript:]): Added.
1743         (-[WebHTMLView underline:]): Added.
1744         (-[WebHTMLView yank:]): Added.
1745         (-[WebHTMLView yankAndSelect:]): Added. Calls _insertText.
1746         (-[WebHTMLView _arrowKeyDownEventSelectorIfPreprocessing:]): Added. Part of workaround for
1747         control-arrow key trouble.
1748         (-[WebHTMLView respondsToSelector:]): Added. More of workaround.
1749         (-[WebHTMLView nextResponder:]): Added. More of workaround.
1750         (-[WebHTMLView _selectionChanged]): Set startNewKillRingSequence flag, so that new deletions
1751         will create a new kill ring entry.
1752         (-[WebHTMLView _updateFontPanel]): Remove a bunch of code here that wasn't working very well
1753         because it walked a DOM range incorrectly, and instead use the new method that does all the
1754         right stuff on the other side of the bridge.
1755         (-[WebHTMLView _insertText:selectInsertedText:]): Added new helper method for use by both
1756         insertText and yankAndSelect, with most of the guts of insertText and one additional parameter.
1757         (-[WebHTMLView insertText:]): Call the new _insertText.
1758
1759         * WebView.subproj/WebView.m: Use macros to make the forwarding from WebView more terse.
1760         Updated the list to include a few methods it didn't before.
1761
1762 2004-09-06  John Sullivan  <sullivan@apple.com>
1763
1764         Reviewed by Darin.
1765         
1766         - put preference keys in a private header file so Safari can use them for Managed Preferences
1767
1768         * WebView.subproj/WebPreferenceKeysPrivate.h:
1769         new Private header file, includes the #defines for NSUserDefaults preference keys
1770         
1771         * WebView.subproj/WebPreferences.m:
1772         moved the preference key #defines out of here; now imports WebPreferenceKeysPrivate.h
1773
1774         * WebKit.pbproj/project.pbxproj:
1775         updated for new file
1776
1777 2004-09-03  Chris Blumenberg  <cblu@apple.com>
1778
1779         Fixed: <rdar://problem/3782543> CrashTracer: ...87 crashes at com.apple.WebKit: -[WebNetscapePluginPackage initWithPath:] + 0x18c
1780
1781         Reviewed by john.
1782
1783         * Plugins.subproj/WebNetscapePluginPackage.m:
1784         (-[WebNetscapePluginPackage initWithPath:]): make sure the file is at least 8 bytes long before calling memcmp
1785
1786 2004-09-03  Chris Blumenberg  <cblu@apple.com>
1787         
1788         Fixed:
1789         <rdar://problem/3788328> assertion failure when moving an image
1790         <rdar://problem/3783628> REGRESSION (Mail): when I try to reorder an image, the image is duplicated
1791
1792         Reviewed by NOBODY (OOPS!).
1793
1794         * DOM.subproj/WebDOMOperations.m:
1795         (-[DOMDocument _createRangeWithNode:]): new, convenience
1796         (-[DOMDocument _documentRange]): use _ createRangeWithNode:
1797         * DOM.subproj/WebDOMOperationsPrivate.h:
1798         * WebView.subproj/WebHTMLView.m:
1799         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): set the selection to the image when starting the drag. This allows "move selection" to work and this matches NSText's behavior
1800
1801 === Safari-162 ===
1802
1803 2004-09-02  Richard Williamson   <rjw@apple.com>
1804
1805         Support for patterns in <canvas>.  
1806         (These changes attempt to create a CGImageRef from a WebImageRenderer that
1807         is used by the pattern drawing function.)
1808         
1809         Reviewed by Hyatt.
1810
1811         * WebCoreSupport.subproj/WebImageRenderer.h:
1812         * WebCoreSupport.subproj/WebImageRenderer.m:
1813         (-[WebImageRenderer dealloc]):
1814         (-[WebImageRenderer finalize]):
1815         (-[WebImageRenderer imageRef]):
1816         (_createImageRef):
1817         * WebView.subproj/WebPDFView.h:
1818         * WebView.subproj/WebPDFView.m:
1819
1820 2004-09-01  Chris Blumenberg  <cblu@apple.com>
1821
1822         Fixed deployment build failure.
1823
1824         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1825         (-[WebDefaultUIDelegate menuItemWithTag:]):
1826
1827 2004-08-31  Chris Blumenberg  <cblu@apple.com>
1828
1829         Fixed: 
1830         <rdar://problem/3699498> Context menu for editable WebViews should provide items like Cut and Paste
1831         <rdar://problem/3781535> REGRESSION (Mail): no context menu after ctrl-clicking a misspelled word
1832
1833         Reviewed by kocienda.
1834
1835         * English.lproj/Localizable.strings:
1836         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1837         (-[WebDefaultUIDelegate menuItemWithTag:]): updated to handle new menu items
1838         (-[WebDefaultUIDelegate contextMenuItemsForElement:]): renamed from webView:contextMenuItemsForElement:defaultMenuItems:
1839         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:]): new
1840         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): moved, now call contextMenuItemsForElement: or editingContextMenuItemsForElement:
1841         * WebView.subproj/WebDefaultUIDelegate.h:
1842         * WebView.subproj/WebHTMLView.m:
1843         (-[WebHTMLView _isSelectionMisspelled]): new
1844         (-[WebHTMLView _guessesForMisspelledSelection]): new
1845         (-[WebHTMLView _changeSpellingFromMenu:]): new
1846         (-[WebHTMLView _ignoreSpellingFromMenu:]): new
1847         (-[WebHTMLView _learnSpellingFromMenu:]): new
1848         * WebView.subproj/WebHTMLViewPrivate.h:
1849         * WebView.subproj/WebUIDelegate.h:
1850
1851 2004-08-31  Darin Adler  <darin@apple.com>
1852
1853         - fixed B&I build failure
1854
1855         * WebView.subproj/WebHTMLView.m: (-[WebTextCompleteController _buildUI]):
1856         Work around unwanted warning by adding a cast.
1857
1858 2004-08-27  Maciej Stachowiak  <mjs@apple.com>
1859
1860         Reviewed by John.
1861
1862         <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
1863         
1864         Because we will stop parsing when there is a pending redirection,
1865         avoid setting one if no navigation would actually take place
1866         because the number of steps is out of range.
1867
1868         * WebCoreSupport.subproj/WebBridge.m:
1869         (-[WebBridge canGoBackOrForward:]):
1870
1871 2004-08-30  Darin Adler  <darin@apple.com>
1872
1873         Reviewed by John.
1874
1875         - part of fix for <rdar://problem/3637519> REGRESSION (125-128): unrepro crash in QListBox::sizeForNumberOfLines at istweb.apple.com
1876
1877         * WebCoreSupport.subproj/WebTextRendererFactory.m: (-[WebTextRendererFactory clearCaches]):
1878         Call [super clearCaches].
1879
1880 2004-08-30  Darin Adler  <darin@apple.com>
1881
1882         Reviewed by Chris.
1883
1884         - did work to prepare for uploading files incrementally when submitting forms
1885
1886         * History.subproj/WebHistoryItem.m:
1887         (-[WebHistoryItem _setFormInfoFromRequest:]): Use NSArray instead of NSData for form data.
1888         (-[WebHistoryItem formData]): Ditto.
1889         * History.subproj/WebHistoryItemPrivate.h: Ditto.
1890         * WebCoreSupport.subproj/WebBridge.m:
1891         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]): Ditto.
1892         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Ditto.
1893         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
1894         * WebCoreSupport.subproj/WebSubresourceClient.h: Ditto.
1895         * WebCoreSupport.subproj/WebSubresourceClient.m:
1896         (+[WebSubresourceClient startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]): Ditto.
1897         * WebView.subproj/WebFrame.m:
1898         (-[WebFrame _loadItem:withLoadType:]): Ditto.
1899         (-[WebFrame _postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): Ditto.
1900         * WebView.subproj/WebFramePrivate.h: Ditto.
1901
1902         * WebView.subproj/WebFormDataStream.h: Added.
1903         * WebView.subproj/WebFormDataStream.m:
1904         (-[WebFormDataStream initWithFormDataArray:]): Placeholder; not done yet.
1905         (-[WebFormDataStream formDataArray]): Ditto.
1906         * WebKit.pbproj/project.pbxproj: Added WebFormDataStream files.
1907
1908 2004-08-30  John Sullivan  <sullivan@apple.com>
1909
1910         Reviewed by Ken.
1911
1912         - WebKit part of fix for <rdar://problem/3607720> myFrame.print() prints the window 
1913         but should only print the frame
1914
1915         * WebView.subproj/WebUIDelegatePrivate.h:
1916         declare new delegate method that includes which frame to print
1917
1918         * WebView.subproj/WebDefaultUIDelegate.m:
1919         (-[WebDefaultUIDelegate webView:printFrameView:]):
1920         implement default (no-op) version of new delegate method
1921
1922         * WebCoreSupport.subproj/WebBridge.m:
1923         (-[WebBridge print]):
1924         call new delegate method if available, otherwise call old delegate method, for
1925         backward compatibility.
1926
1927 2004-08-27  Maciej Stachowiak  <mjs@apple.com>
1928
1929         Reviewed by John. 
1930         Checked in by Ken
1931         
1932         Ken comments: It looks like Maciej forgot to land this when he checked in the
1933         WebCore portion of this change.
1934
1935         <rdar://problem/3778314> REGRESSION: Can't proceed to survey questions on Lominger's Apple website
1936             
1937         Because we will stop parsing when there is a pending redirection,
1938         avoid setting one if no navigation would actually take place
1939         because the number of steps is out of range.
1940     
1941         * WebCoreSupport.subproj/WebBridge.m:
1942         (-[WebBridge canGoBackOrForward:]):
1943
1944 2004-08-27  Ken Kocienda  <kocienda@apple.com>
1945
1946         Reviewed by Chris
1947
1948         Fix for this bug:
1949         
1950         <rdar://problem/3756997> WebKit aggressive in making pasted text into a URL, even when it's not much like a URL
1951
1952         * WebView.subproj/WebHTMLView.m:
1953         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Don't try so hard to coerce data
1954         on the pasteboard into a URL, and do not make an anchor with an href for any URLs that are 
1955         explicitly present on the pasteboard. Also, move URL pasteboard type check beneath the RTF
1956         checks.
1957
1958 === Safari-161 ===
1959
1960 2004-08-26  Chris Blumenberg  <cblu@apple.com>
1961
1962         Fixed build failure on Panther.
1963
1964         Reviewed by john.
1965
1966         * WebView.subproj/WebHTMLView.m:
1967         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): ifdef'd out call to AppKit SPI
1968         (-[WebHTMLView _attributeStringFromDOMRange:]): ditto
1969
1970 2004-08-26  Chris Blumenberg  <cblu@apple.com>
1971
1972         Tweak to last check-in.
1973
1974         * WebView.subproj/WebHTMLView.m:
1975         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]):
1976
1977 2004-08-26  Chris Blumenberg  <cblu@apple.com>
1978
1979         Fixed: 
1980         <rdar://problem/3546412> support for pasting and drag and dropping of RTF and RTFD to editable WebViews
1981         <rdar://problem/3745345> use AppKit for converting from DOM to RTF
1982
1983         Reviewed by rjw.
1984
1985         * DOM.subproj/WebDOMOperations.m:
1986         (-[DOMDocument _documentRange]): new
1987         * DOM.subproj/WebDOMOperationsPrivate.h:
1988         * WebView.subproj/WebHTMLView.m:
1989         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): call AppKit SPI to get a document fragment from an attributed string
1990         (-[WebHTMLView string]): added a FIXME
1991         (-[WebHTMLView _attributeStringFromDOMRange:]): new, calls AppKit SPI that creates an attributed string from a DOM Range
1992         (-[WebHTMLView attributedString]): call _attributeStringFromDOMRange:, fallback to old code if it returns nil
1993         (-[WebHTMLView selectedAttributedString]): ditto
1994
1995 2004-08-26  Chris Blumenberg  <cblu@apple.com>
1996
1997         Fixed: <rdar://problem/3774178> Plugin hooks for selected state aren't being called
1998
1999         Reviewed by darin.
2000
2001         * WebCoreSupport.subproj/WebBridge.m:
2002         (-[WebBridge setIsSelected:forView:]): don't forget colons in method names
2003
2004 2004-08-26  Chris Blumenberg  <cblu@apple.com>
2005
2006         Fixed: <rdar://problem/3768439> can't click in WebView in Carbon WebKit apps (GetEventPlatformEventRecord returns false)
2007
2008         Reviewed by rjw.
2009
2010         * Carbon.subproj/HIWebView.m:
2011         (Click): use WebGetEventPlatformEventRecord not GetEventPlatformEventRecord
2012         (MouseUp): ditto
2013         (MouseMoved): ditto
2014         (MouseDragged): ditto
2015         (MouseWheelMoved): ditto
2016         (WindowHandler): ditto
2017         (HIWebViewEventHandler): ditto
2018         (UpdateObserver): ditto
2019         (WebGetEventPlatformEventRecord): Call GetEventPlatformEventRecord, if that fails fallback to the current event. This is code Eric Schlegel to me to use. 
2020
2021 2004-08-24  Chris Blumenberg  <cblu@apple.com>
2022
2023         Fixed with help from Trey:
2024         <rdar://problem/3764856> REGRESSION !25-154): Safari accepts mouse clicks (follows links) when not key
2025
2026         Reviewed by rjw.
2027
2028         * WebView.subproj/WebHTMLView.m:
2029         (-[WebHTMLView _isSelectionEvent:]): brought back from CVS
2030         (-[WebHTMLView acceptsFirstMouse:]): only call eventMayStartDrag if _isSelectionEvent returns YES since we only want to allow selection dragging on the first mouse down
2031         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
2032
2033 2004-08-24  Ken Kocienda  <kocienda@apple.com>
2034
2035         Reviewed by Hyatt
2036
2037         Improved the checks used to see if certain operations can be done based
2038         on the state of the selection and whether the selection is editable. I
2039         added some helpers and improved some others to assist in making these
2040         determinations.
2041         
2042         This helps to fix this bug:
2043         <rdar://problem/3764987> Crash after adding newline to quoted text
2044         
2045         Since some editing methods expect the the selection to be in a certain state 
2046         in order to work, these checks help obviate crashes like 3764987.
2047
2048         * WebView.subproj/WebHTMLView.m:
2049         (-[WebHTMLView _writeSelectionToPasteboard:]): _haveSelection name changed to _hasSelection.
2050         (-[WebHTMLView _canCopy]): Checks to see if state is appropriate to perform this operation.
2051         (-[WebHTMLView _canCut]): Ditto. Function added.
2052         (-[WebHTMLView _canDelete]): Ditto. Function refined.
2053         (-[WebHTMLView _canPaste]): Ditto. Function refined.
2054         (-[WebHTMLView _canType]): Ditto. Function added.
2055         (-[WebHTMLView _hasSelection]): Name changed from _haveSelection.
2056         (-[WebHTMLView _hasSelectionOrInsertionPoint]): Added.
2057         (-[WebHTMLView _isEditable]): Added.
2058         (-[WebHTMLView takeFindStringFromSelection:]): _haveSelection name changed to _hasSelection.
2059         (-[WebHTMLView validateUserInterfaceItem:]): Ditto
2060         (-[WebHTMLView validRequestorForSendType:returnType:]): Ditto
2061         (-[WebHTMLView keyDown:]):
2062         (-[WebHTMLView copy:]): Uses new _canCopy check.
2063         (-[WebHTMLView cut:]): Uses new _canCut check.
2064         (-[WebHTMLView delete:]): Now uses _canDelete check.
2065         (-[WebHTMLView paste:]): Now uses _canPaste check.
2066         (-[WebHTMLView _updateFontPanel]): _haveSelection name changed to _hasSelection.
2067         * WebView.subproj/WebHTMLViewPrivate.h:
2068         * WebView.subproj/WebView.m:
2069         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]): Use selectionState check to
2070         determine whether or not operation can be done.
2071
2072 2004-08-24  Richard Williamson   <rjw@apple.com>
2073
2074         Fixed <rdar://problem/3770469> Some PDFs open with line of previous page above PDF view
2075         
2076         Set height resize flags on WebPDFView.
2077                 
2078         Reviewed by Chris.
2079
2080         * WebView.subproj/WebPDFView.m:
2081         (-[WebPDFView initWithFrame:]):
2082
2083 2004-08-24  David Hyatt  <hyatt@apple.com>
2084
2085         Add Atom and RSS MIME types to set of supported XML types.
2086         
2087         Reviewed by rjw
2088
2089         * WebView.subproj/WebDataSource.m:
2090         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
2091         * WebView.subproj/WebFrameView.m:
2092         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
2093
2094 2004-08-23  Maciej Stachowiak  <mjs@apple.com>
2095
2096         Reviewed by Kevin.
2097
2098         - remove annoying ERROR spew and replace with comment
2099         
2100         * WebView.subproj/WebHTMLView.m:
2101         (-[WebHTMLView validAttributesForMarkedText]):
2102
2103 2004-08-23  Maciej Stachowiak  <mjs@apple.com>
2104
2105         Reviewed by Richard.
2106
2107         - a bit of code cleanup
2108
2109         * WebView.subproj/WebDataSource.m:
2110         (-[WebDataSource _stringWithData:]): Call textEncodingName instead of
2111         copying it's code.
2112         (-[WebDataSource textEncodingName]): Tweak formatting.
2113
2114 2004-08-23  Chris Blumenberg  <cblu@apple.com>
2115
2116         Fixed build.
2117
2118         * WebKit.pbproj/project.pbxproj: make sure we're doing -f on a file, not a directory
2119
2120 2004-08-23  Chris Blumenberg  <cblu@apple.com>
2121
2122         Fixed: <rdar://problem/3674867> use new Security framework SPI's to reenable cert acquisition
2123
2124         Reviewed by john.
2125
2126         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
2127         * WebCoreSupport.subproj/WebKeyGeneration.h:
2128         * WebCoreSupport.subproj/WebKeyGenerator.h:
2129         * WebCoreSupport.subproj/WebKeyGenerator.m:
2130         (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): re-enabled cert code, call Panther version on Panther, Tiger version on Tiger
2131         (-[WebKeyGenerator addCertificatesToKeychainFromData:]): ditto
2132         * WebCoreSupport.subproj/WebNewKeyGeneration.c: Added.
2133         (gnrAddContextAttribute):
2134         (gnrGetSubjPubKey):
2135         (gnrNullAlgParams):
2136         (gnrSign):
2137         (gnrFreeCssmData):
2138         (nssArraySize):
2139         (signedPublicKeyAndChallengeString):
2140         (addCertificateToKeychainFromData):
2141         (addCertificatesToKeychainFromData):
2142         * WebCoreSupport.subproj/WebNewKeyGeneration.h: Added.
2143         * WebKit.pbproj/project.pbxproj:
2144
2145 2004-08-20  David Hyatt  <hyatt@apple.com>
2146
2147         Fix the directionality of the unicode hyphen so that on Panther it now matches Tiger.
2148         
2149         Reviewed by darin
2150
2151         * Misc.subproj/WebUnicode.m:
2152         (_unicodeDirection):
2153
2154 2004-08-20  Richard Williamson   <rjw@apple.com>
2155
2156             Implemented new JNI abstraction.  We no longer invoke Java methods
2157             directly with JNI, rather we call into the plugin.  This allows the
2158             plugin to dispatch the call to the appropriate VM thread.  This
2159             change should (will?) fix a whole class of threading related problems with
2160             the Java VM.
2161
2162         Reviewed by Hyatt.
2163
2164         * WebCoreSupport.subproj/WebBridge.m:
2165         (-[WebBridge getAppletInView:]):
2166
2167 2004-08-20  Trey Matteson  <trey@apple.com>
2168
2169         3655407 - Editing: -complete: method unimplemented (WebKit editing API)
2170
2171         This feature is mostly implemented.  The only loose ends I know of are:
2172
2173         3769654 - text insertions done via complete: should preserve case of full replacement string
2174         3769652 - positioning of complete: popup window wrong for right-to-left languages
2175
2176         Reviewed by John
2177
2178         * WebView.subproj/WebHTMLView.m:
2179         (-[WebHTMLViewPrivate dealloc]):  Free new object.
2180         (-[WebHTMLView menuForEvent:]):  Bail on completion session.
2181         (-[WebHTMLView windowDidResignKey:]):  Ditto.
2182         (-[WebHTMLView windowWillClose:]):  Ditto.
2183         (-[WebHTMLView mouseDown:]):  Ditto.
2184         (-[WebHTMLView resignFirstResponder]):  Ditto.
2185         (-[WebHTMLView keyDown:]):  Bail on completion session if WebCore takes the event.
2186         Give the CompleteController a crack at the key event.
2187         (-[WebHTMLView _expandSelectionToGranularity:]):  Adopt method rename
2188         (-[WebHTMLView complete:]):  Make CompleteController, tell it to do its thing.
2189         (-[WebHTMLView checkSpelling:]):  Add ERROR().
2190         (-[WebHTMLView showGuessPanel:]): Add ERROR().
2191         (-[WebHTMLView _changeSpellingToWord:]): Add ERROR().
2192         (-[WebHTMLView ignoreSpelling:]): Add ERROR().
2193
2194         (-[WebTextCompleteController initWithHTMLView:]):
2195         (-[WebTextCompleteController dealloc]):
2196         (-[WebTextCompleteController _insertMatch:]): Stick the new string into the doc.
2197         (-[WebTextCompleteController _buildUI]):  Make popup window.
2198         (-[WebTextCompleteController _placePopupWindow:]):  Position popup window.
2199         (-[WebTextCompleteController doCompletion]):  Lookup matches, display window.
2200         (-[WebTextCompleteController endRevertingChange:moveLeft:]):  Bail on complete: session.
2201         (-[WebTextCompleteController filterKeyDown:]):  Process keys while popup is up.
2202         (-[WebTextCompleteController _reflectSelection]):  Handle choice in popup.
2203         (-[WebTextCompleteController tableAction:]):  Handle double click in popup
2204         (-[WebTextCompleteController numberOfRowsInTableView:]):  Fill table with matches.
2205         (-[WebTextCompleteController tableView:objectValueForTableColumn:row:]):  Ditto.
2206         (-[WebTextCompleteController tableViewSelectionDidChange:]):  Handle selection change.
2207         * WebView.subproj/WebHTMLViewInternal.h:
2208
2209 2004-08-20  John Sullivan  <sullivan@apple.com>
2210
2211         * English.lproj/StringsNotToBeLocalized.txt:
2212         checked this in; the only difference is that
2213         the strings were out of order.
2214
2215 2004-08-19  Richard Williamson   <rjw@apple.com>
2216
2217         Continue to call old pollForAppletInView: in Tiger until
2218         we get an plugin that supports the new API.
2219                 
2220         Reviewed by Chris.
2221
2222         * WebCoreSupport.subproj/WebBridge.m:
2223         (-[WebBridge getAppletInView:]):
2224         * WebKit.pbproj/project.pbxproj:
2225
2226 === Safari-158 ===
2227
2228 2004-08-19  Chris Blumenberg  <cblu@apple.com>
2229
2230         Fixed typo in comment.
2231
2232         * Misc.subproj/WebIconDatabase.m:
2233         (-[WebIconDatabase _updateFileDatabase]):
2234
2235 2004-08-19  Chris Blumenberg  <cblu@apple.com>
2236
2237         Fixed: <rdar://problem/3566336> CrashTracer: .2403 crashes at com.apple.WebKit: -[WebFileDatabase performSetObject:forKey:] + 0x94
2238
2239         Reviewed by trey.
2240
2241         * Misc.subproj/WebIconDatabase.m:
2242         (-[WebIconDatabase _updateFileDatabase]): pass WebFileDatabase copies of the mutable dictionaries or else they may be accessed on a separate thread as the main thread is modifying them
2243
2244 2004-08-18  Richard Williamson   <rjw@apple.com>
2245
2246         Replace horrible pollForAppletInView: with new
2247         webPlugInGetApplet.  The details of how the applet instance
2248         is provided now belong to the Java team.  Yeh.
2249                 
2250         Reviewed by Chris.
2251
2252         * WebCoreSupport.subproj/WebBridge.m:
2253         (-[WebBridge getAppletInView:]):
2254
2255 2004-08-17  Richard Williamson   <rjw@apple.com>
2256
2257         Fixed <rdar://problem/3759093> Need PDF context menu: "Open in Preview" or other external app
2258
2259         Added support for "Open with ..." in PDF view.
2260                 
2261         Reviewed by Chris and Trey.
2262
2263         * ChangeLog:
2264         * English.lproj/Localizable.strings:
2265         * English.lproj/StringsNotToBeLocalized.txt:
2266         * WebView.subproj/WebPDFView.h:
2267         * WebView.subproj/WebPDFView.m:
2268         (-[WebPDFView initWithFrame:]):
2269         (-[WebPDFView dealloc]):
2270         (applicationInfoForMIMEType):
2271         (-[WebPDFView path]):
2272         (-[WebPDFView menuForEvent:]):
2273         (-[WebPDFView setDataSource:]):
2274         (-[WebPDFView layout]):
2275         (-[WebPDFView viewDidMoveToHostWindow]):
2276         (-[WebPDFView openWithFinder:]):
2277
2278 2004-08-17  Richard Williamson   <rjw@apple.com>
2279
2280         JNI needs both the jmethodID and return type.  Changed API to 
2281         pass both.
2282                 
2283         Reviewed by Chris.
2284
2285         * Plugins.subproj/WebJavaPlugIn.h:
2286
2287 2004-08-17  Trey Matteson  <trey@apple.com>
2288
2289         3764147 - failure of subframe to load leaves links in parent doc broken
2290
2291         Reviewed by Maciej.
2292
2293         * WebView.subproj/WebDataSource.m:
2294         (-[WebDataSource _receivedMainResourceError:complete:]):
2295         Need to call [bridge end] in the case of an error, so WC can clean up.
2296
2297 === Safari-157 ===
2298
2299 2004-08-15  Richard Williamson   <rjw@apple.com>
2300
2301         More changes to np headers.
2302         
2303         Reviewed by Darin.
2304
2305         * Plugins.subproj/WebNetscapePluginPackage.m:
2306         (-[WebNetscapePluginPackage load]):
2307         * Plugins.subproj/npapi.h:
2308         * Plugins.subproj/npfunctions.h:
2309         * Plugins.subproj/npruntime.h:
2310
2311 2004-08-13  Darin Adler  <darin@apple.com>
2312
2313         Reviewed by Chris.
2314
2315         - fixed <rdar://problem/3760924> Carbon path passed in NPP_StreamAsFile must be in local character set, not UTF-8
2316
2317         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2318         (CarbonPathFromPOSIXPath): Added. New function that uses the path pieces from an FSSpec.
2319         This has many advantages; the big one that fixes the bug is that it gives the mangled names
2320         that work even for files that have names that can't otherwise be encoded in Carbon-style
2321         path names. I didn't write this from scratch: I started with the method in Foundation
2322         and just changed it to use FSSpec.
2323         (-[WebBaseNetscapePluginStream destroyStream]): Remove code that used NSString and just call
2324         CarbonPathFromPOSIXPath instead.
2325
2326         * Plugins.subproj/npapi.h: The Revision tag wanted to touch this file.
2327         I think we are going to have some trouble with this; I'd like to take that out.
2328
2329         * English.lproj/StringsNotToBeLocalized.txt: Updated.
2330
2331 2004-08-12  Trey Matteson  <trey@apple.com>
2332
2333         3761329 - query result links all dead in ingrammicro.com (sometimes)
2334         3761328 - links in some docs dead when doc is loaded from WebArchive
2335
2336         Nasty problem.  It turns out that these result pages are a parent frame with two child
2337         frames.  One of the child frames is a 1 or 2 byte text document.  When the text child
2338         is the last doc to complete, because we use a Text rep instead of an HTMLRep, it turns
2339         out we never send [bridge end] from WebKit.  That mistake results in checkCompleted not
2340         being called enough in the part, and we never realize the load is done.  WebCore does
2341         not allow redirects to happen until the entire load is complete,  and  the links on this
2342         results page are actually little pieces of JS that set location to a generated URL.  Since
2343         redirects are not allowed these links all silently fail to do anything, and the doc never
2344         achieves a completed state where they will work.
2345
2346         Solution is to make sure we always call [bridge end] from the DataSource instead of only
2347         the HTML rep doing it.
2348
2349         Reviewed by Richard and Darin.
2350
2351         * WebView.subproj/WebDataSource.m:
2352         (-[WebDataSource _finishedLoading]):  Call [bridge end] here for all kinds of docs.
2353         * WebView.subproj/WebHTMLRepresentation.m:
2354         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):  Don't call is just for HTMLReps.
2355
2356 2004-08-12  Richard Williamson   <rjw@apple.com>
2357
2358         Bring npruntime.h and friends closer to compliance with
2359         latest spec.
2360
2361         Reviewed by Maciej.
2362
2363         * Plugins.subproj/npapi.h:
2364         * Plugins.subproj/npfunctions.h:
2365         * Plugins.subproj/npruntime.h:
2366         (_NPString::):
2367         (_NPString::_NPVariant::):
2368         * copy-webcore-files-to-webkit:
2369
2370 2004-08-12  Chris Blumenberg  <cblu@apple.com>
2371
2372         Fixed: <rdar://problem/3761097> should be able to option-drag selection so HTML can be copied within a page
2373
2374         Reviewed by rjw.
2375
2376         * WebView.subproj/WebHTMLView.m:
2377         (-[WebHTMLView _isMoveDrag]): new, take into account the option key
2378         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call _isMoveDrag
2379         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): call _isMoveDrag
2380
2381 2004-08-12  Richard Williamson   <rjw@apple.com>
2382
2383         Quick fix for 3760903.  The real fix is described in 3760920.  Needed
2384         by Java plugin guys so they can be unblocked for feature freeze.
2385                 
2386         Reviewed by Chris.
2387
2388         * WebView.subproj/WebFrame.m:
2389         (-[WebFrame _reloadForPluginChanges]):
2390         * WebView.subproj/WebHTMLView.m:
2391         (-[WebHTMLView addSubview:]):
2392
2393 2004-08-12  Chris Blumenberg  <cblu@apple.com>
2394
2395         Fixed: <rdar://problem/3760898> error pages in subframes attempt to load appledata URLs when reloaded
2396
2397         Reviewed by darin.
2398
2399         * WebView.subproj/WebFrame.m:
2400         (-[WebFrame _createItem:]): when setting the original URL of the history item, use the unreachable URL
2401
2402 === Safari-156 ===
2403
2404 2004-08-11  Adele Amchan  <adele@apple.com>
2405
2406         Reviewed by me, bug fix by Darin.
2407
2408         - fixed <rdar://problem/3736477> Pages don't load if hard drive is named with non-ASCII Symbol
2409
2410         * Plugins.subproj/WebBaseNetscapePluginStream.m:
2411         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]):
2412         Use UTF8String instead of cString to convert the MIME type to a C string. Safer, since it can't
2413         ever fail due to encoding problems even though this string should always be ASCII.
2414         (-[WebBaseNetscapePluginStream destroyStream]): Use stringWithUTF8String to convert the path name
2415         to an NSString, since stringWithCString is deprecated (doesn't really matter since the path is always
2416         all ASCII). Fix the bug by calling fileSystemRepresentation on the NSString to turn it into a C
2417         string form. Even though the POSIX path can't have any non-ASCII characters in it, the Carbon path
2418         can, so we need to use this instead of cString which can fail depending on characters and encoding.
2419
2420 2004-08-09  Maciej Stachowiak  <mjs@apple.com>
2421
2422         Reviewed by Trey.
2423
2424         WebKit part of:
2425
2426         - made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing
2427
2428         * WebView.subproj/WebHTMLView.m:
2429         (-[WebHTMLView markedRange]): Use new bridge calls instead of internal marked range storage.
2430         (-[WebHTMLView hasMarkedText]): Likewise.
2431         (-[WebHTMLView unmarkText]): Likewise.
2432         (-[WebHTMLView _selectMarkedText]): Likewise.
2433         (-[WebHTMLView _selectRangeInMarkedText:]): Likewise.
2434         (-[WebHTMLView _selectionIsInsideMarkedText]): Likewise.
2435         (-[WebHTMLView _updateSelectionForInputManager]): Likewise.
2436         (-[WebHTMLView setMarkedText:selectedRange:]): Use direct bridge call instead
2437         of private _selectMarkedDOMRange: method, which would now be trivial.
2438         * WebView.subproj/WebHTMLViewInternal.h: Remove unneeded
2439
2440 2004-08-10  Darin Adler  <darin@apple.com>
2441
2442         Reviewed by Ken.
2443
2444         - change name of WebMakeCollectable to WebNSRetainCFRelease so it fits into the
2445           "NS and CF retain counts are separate" mental model, rather than the "think about
2446           how garbage collection works" one
2447
2448         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Rename.
2449         * Misc.subproj/WebNSObjectExtras.h: (WebNSRetainCFRelease): Ditto.
2450         * Misc.subproj/WebNSURLExtras.m:
2451         (+[NSURL _web_URLWithData:relativeToURL:]): Ditto.
2452         (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
2453
2454 2004-08-09  Trey Matteson  <trey@apple.com>
2455
2456         3756599 - REGRESSION: hit assertion in KWQPageState invalidate
2457
2458         By inspection I found a flaw in the recently added logic, although
2459         I have no steps to repro.  My theoretical explanation is that we would
2460         get two errors and go through _receivedMainResourceError: twice, which
2461         would cause the pageState to be invalidated twice, which is the only
2462         way I can see to hit the assert.
2463
2464         Reviewed by Darin
2465
2466         * WebView.subproj/WebFrame.m:
2467         (-[WebFrame _receivedMainResourceError:]):  Clear the pageState out
2468         of the history item after it's been invalidated by WebCore.
2469
2470 2004-08-09  Richard Williamson   <rjw@apple.com>
2471
2472         Inspired by Trey we have a much better approach for conditionally
2473         linking Quart.framework.  Instead of multiple targets we use 
2474         `` to invoke some inline script to extend COMMON_LDFLAGS as
2475         necessary.  Thanks Trey!
2476         
2477         Reviewed by Trey.
2478
2479         * WebKit.pbproj/project.pbxproj:
2480
2481 2004-08-09  Trey Matteson  <trey@apple.com>
2482
2483         Hookup UI for "Continuous Spelling" menu item.
2484
2485         Reviewed by Richard.
2486
2487         * WebView.subproj/WebView.m:
2488         (-[WebView validateUserInterfaceItem:]):  Enable and check the
2489         menu item to reflect our state.
2490         (-[WebView toggleContinuousSpellChecking:]):  Change type to
2491         IBAction, just cosmetic.
2492         * WebView.subproj/WebViewPrivate.h:
2493
2494 2004-08-08  Trey Matteson  <trey@apple.com>
2495
2496         3745023 - Safari crashes trying to access anchor while downloading
2497
2498         I bet this is behind a few other crashers as well.  In this bug the start of the
2499         download leaves a KWQPageState hanging around, and when that is freed it damages
2500         the part and view.  If you're still using that page, you're dead.
2501
2502         The fix is to properly invalidate the PageState when we receive an error before
2503         reaching WebFrameCommitted state.  Normally this happens when a page is reheated
2504         from the PageState, but in this case we never manage to leave the page to begin
2505         with, although we've already created the PageState.
2506
2507         Other errors besides the synthetic one download generates would have caused similar
2508         crashing.  Another example would be clicking on a second link before the load
2509         caused by clicking on the first link reached committed state.
2510
2511         Reviewed by Richard
2512
2513         * WebView.subproj/WebDataSource.m:
2514         (-[WebDataSource _receivedMainResourceError:complete:]):  Let the frame do the
2515         main work (since it has access to the pageCache state).  Also renamed to make
2516         it clear that this is about an error for the main resource.
2517         * WebView.subproj/WebDataSourcePrivate.h:
2518         * WebView.subproj/WebFrame.m:
2519         (-[WebFrame _receivedMainResourceError:]):  Let WC know about the failure, as
2520         the DataSource used to, but now pass the pageCache state along too.
2521         * WebView.subproj/WebFramePrivate.h:
2522         * WebView.subproj/WebMainResourceClient.m:
2523         (-[WebMainResourceClient receivedError:]):  Call renamed method.
2524         (-[WebMainResourceClient cancelWithError:]):  Ditto.
2525
2526 2004-08-08  Vicki Murley  <vicki@apple.com>
2527
2528         Reviewed by vicki (changes by rjw)
2529  
2530         - make "weak" linking with Quartz work with buildit
2531
2532         * WebKit.pbproj/project.pbxproj: 
2533
2534 2004-08-06  Ken Kocienda  <kocienda@apple.com>
2535
2536         Reviewed by Maciej
2537
2538         Finish off spellchecking support to HTML editing. Includes work to
2539         enable continuous spellchecking.
2540
2541         * WebCoreSupport.subproj/WebBridge.m:
2542         (-[WebBridge isContinuousSpellCheckingEnabled]): Simple bridge method.
2543         * WebCoreSupport.subproj/WebTextRenderer.m:
2544         (-[WebTextRenderer drawLineForMisspelling:withWidth:]): New method to add
2545         AppKit-style misspelling underline.
2546
2547 === Safari-155 ===
2548
2549 2004-08-05  Darin Adler  <darin@apple.com>
2550
2551         * WebView.subproj/WebHTMLView.m: Added a list of methods that NSTextView implements that we don't.
2552         All inside #if 0.
2553
2554 2004-08-05  Chris Blumenberg  <cblu@apple.com>
2555
2556         Fixed unnecessary import of NSURLFileTypeMappings.
2557
2558         * WebView.subproj/WebMainResourceClient.m:
2559
2560 2004-08-05  Richard Williamson   <rjw@apple.com>
2561
2562         Make builds conditionally include -framework Quartz.
2563                 
2564         Reviewed by Chris.
2565
2566         * WebKit.pbproj/project.pbxproj:
2567
2568 2004-08-04  Darin Adler  <darin@apple.com>
2569
2570         - fixed broken Deployment build
2571
2572         * Carbon.subproj/HIWebView.m: (Click):
2573         Remove code that checks err variable before setting it.
2574
2575 2004-08-03  Richard Williamson   <rjw@apple.com>
2576
2577         First cut at dirt simple PDF support.  This feature
2578         depends on Quartz.framework (parent of PDFKit), which only exists
2579         on Tiger.  So, we "weak" link against Quartz.
2580                 
2581         We do very basic PDF rendering.  Coming up are support for
2582         "Find..." and linearized PDF (incremental).  Linearized PDF 
2583         support will require API changes in PDFKit.
2584                 
2585         No UI is added to Safari, yet.
2586                 
2587         Reviewed by John.
2588
2589         * WebKit.pbproj/project.pbxproj:
2590         * WebView.subproj/WebDataSource.m:
2591         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
2592         * WebView.subproj/WebFrameView.m:
2593         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
2594         * WebView.subproj/WebPDFRepresentation.h: Added.
2595         * WebView.subproj/WebPDFRepresentation.m: Added.
2596         (-[WebPDFRepresentation finishedLoadingWithDataSource:]):
2597         (-[WebPDFRepresentation canProvideDocumentSource]):
2598         (-[WebPDFRepresentation documentSource]):
2599         (-[WebPDFRepresentation title]):
2600         * WebView.subproj/WebPDFView.h: Added.
2601         * WebView.subproj/WebPDFView.m: Added.
2602         (-[WebPDFView initWithFrame:]):
2603         (-[WebPDFView setDataSource:]):
2604         (-[WebPDFView dataSourceUpdated:]):
2605         (-[WebPDFView setNeedsLayout:]):
2606         (-[WebPDFView layout]):
2607         (-[WebPDFView viewWillMoveToHostWindow:]):
2608         (-[WebPDFView viewDidMoveToHostWindow]):
2609
2610         Copied fix from Jaguar carbon/cocoa work.
2611                 
2612         Reviewed by Darin (Jaguar version)
2613
2614         * Carbon.subproj/CarbonWindowAdapter.h:
2615         * Carbon.subproj/CarbonWindowAdapter.m:
2616         (-[CarbonWindowAdapter relinquishFocus]):
2617         * Carbon.subproj/HIWebView.m:
2618         (Click):
2619         (OwningWindowChanged):
2620         (WindowHandler):
2621
2622 2004-08-03  David Hyatt  <hyatt@apple.com>
2623
2624         Add the text/xsl MIME type as one that can be displayed.
2625         
2626         Reviewed by john
2627
2628         * WebView.subproj/WebDataSource.m:
2629         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
2630         * WebView.subproj/WebFrameView.m:
2631         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
2632
2633 2004-08-03  Maciej Stachowiak  <mjs@apple.com>
2634
2635         Reviewed by Ken.
2636
2637         - implemented enough of the NSTextInput protocol and added the
2638         proper calls to NSInputManager to allow input methods to
2639         work. However, the text is not marked yet.
2640
2641         * WebView.subproj/WebHTMLViewInternal.h: Added new fields to track
2642         marked range.
2643         * WebView.subproj/WebHTMLView.m:
2644         (-[WebHTMLView markedRange]): Implemented
2645         (-[WebHTMLView conversationIdentifier]): Implemented
2646         (-[WebHTMLView hasMarkedText]): Implemented
2647         (-[WebHTMLView unmarkText]): Implemented
2648         (-[WebHTMLView setMarkedText:selectedRange:]): Implemented - does
2649         not yet handle attributes in attributed strings
2650         (-[WebHTMLView insertText:]): Modified to handle replacing or abandoning
2651         the marked text when set.
2652         (-[WebHTMLView _selectMarkedText]): new helper method, self-explanatory
2653         (-[WebHTMLView _setMarkedDOMRange:]): hitto.
2654         (-[WebHTMLView _selectRangeInMarkedText:]): ditto
2655         (-[WebHTMLView _discardMarkedText]): ditto
2656         (-[WebHTMLView _selectionIsInsideMarkedText]): ditto
2657         (-[WebHTMLView _updateSelectionForInputManager]): ditto
2658
2659         - did a bit of refactoring while I was in here.
2660
2661         * WebView.subproj/WebHTMLView.m:
2662         (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): added this new
2663         helper method to simplify the common case of calling the shouldInsertText: delegate
2664         (-[WebHTMLView pasteAsPlainText:]): use it
2665         (-[WebHTMLView insertTab:]): ditto
2666         (-[WebHTMLView insertNewline:]): ditto
2667         (-[WebHTMLView _changeWordCaseWithSelector:]): ditto
2668         (-[WebHTMLView _changeSpellingToWord:]): ditto
2669         (-[WebHTMLView _selectionChanged]): ditto
2670
2671 2004-08-03  Chris Blumenberg  <cblu@apple.com>
2672
2673         Fixed: <rdar://problem/3572737> Images not resizing at www.bmx-test.com (spoof nofix)
2674
2675         Reviewed by darin.
2676
2677         * WebCoreSupport.subproj/WebImageRendererFactory.m:
2678         (-[WebImageRendererFactory supportedMIMETypes]): hard code image/pjpeg to the list of image mime types that we can handle
2679
2680 2004-08-03  Darin Adler  <darin@apple.com>
2681
2682         Reviewed by Ken.
2683
2684         - fixed <rdar://problem/3740937> ER: A way to turn a DOMRange into text (equivalent of -innerText)
2685
2686         * DOM.subproj/DOMPrivate.h: Added.
2687         * WebKit.pbproj/project.pbxproj: Added DOMPrivate.h.
2688         * copy-webcore-files-to-webkit: Added DOMPrivate.h.
2689
2690 2004-08-02  John Sullivan  <sullivan@apple.com>
2691
2692         Reviewed by Darin.
2693
2694         WebKit part of fix for <rdar://problem/3631868> NSToolbar adoption: 
2695         Tab key should cycle around toolbar and page content
2696
2697         * WebView.subproj/WebHTMLView.m:
2698         removed overrides of nextKeyView and previousKeyView
2699         (-[WebHTMLView nextValidKeyView]):
2700         call super only if we can't move the focus within the frame hierarchy
2701         (-[WebHTMLView previousValidKeyView]):
2702         ditto
2703         * WebView.subproj/WebHTMLViewInternal.h:
2704         removed nextKeyViewAccessShouldMoveFocus ivar
2705
2706 2004-08-02  Ken Kocienda  <kocienda@apple.com>
2707
2708         Reviewed by John
2709
2710         Update name of firstResponderIsSelfOrDescendantView, adding _web_ prefix to this SPI call.
2711         
2712         Do some work to make caret blinking in newly-created editable WebView's that are 
2713         similar in structure to Blot more "automatic".
2714
2715         * Misc.subproj/WebNSViewExtras.h: Change name of firstResponderIsSelfOrDescendantView. Add _web_ prefix.
2716         * Misc.subproj/WebNSViewExtras.m:
2717         (-[NSView _web_firstResponderIsSelfOrDescendantView]): Name change.
2718         (-[NSView _web_firstResponderCausesFocusDisplay]): Adds an additional check for whether the view's
2719         is first responder. This helps to make the focus setting in viewDidMoveToWindow work right.
2720         * WebView.subproj/WebHTMLView.m:
2721         (-[WebHTMLView updateFocusDisplay]): Use _web_firstResponderCausesFocusDisplay now instead of 
2722         firstResponderIsSelfOrDescendantView.
2723         (-[WebHTMLView viewDidMoveToWindow]): Schedule call to updateFocusDisplay for the next crank of the
2724         run loop. The reason is that placing the caret in the just-installed view requires the HTML/XML 
2725         document to be available on the WebCore side, but it is not at the time this code is running. 
2726         However, it will be there on the next crank of the run loop. Doing this helps to make a 
2727         blinking caret appear in a new, empty window "automatic".
2728         (-[WebHTMLView performKeyEquivalent:]):  _web_firstResponderIsSelfOrDescendantView name change.
2729         * WebView.subproj/WebView.m:
2730         (-[WebView _performResponderOperation:with:]): _web_firstResponderIsSelfOrDescendantView name change.
2731
2732 2004-07-29  Maciej Stachowiak  <mjs@apple.com>
2733
2734         Reviewed by John.
2735
2736         Added stubbed-out versions of all the NSTextInput protocol
2737         methods, and put comments in places where we will need to call the
2738         input manager to make input methods work 100%.
2739         
2740         * WebCoreSupport.subproj/WebBridge.m:
2741         (-[WebBridge respondToChangedSelection]):
2742         * WebView.subproj/WebHTMLView.m:
2743         (-[WebHTMLView mouseDown:]):
2744         (-[WebHTMLView mouseDragged:]):
2745         (-[WebHTMLView mouseUp:]):
2746         (-[WebHTMLView _interceptEditingKeyEvent:]):
2747         (-[WebHTMLView keyDown:]):
2748         (-[WebHTMLView _selectionChanged]):
2749         (-[WebHTMLView _delegateDragSourceActionMask]):
2750         (-[WebHTMLView validAttributesForMarkedText]):
2751         (-[WebHTMLView characterIndexForPoint:]):
2752         (-[WebHTMLView firstRectForCharacterRange:]):
2753         (-[WebHTMLView selectedRange]):
2754         (-[WebHTMLView markedRange]):
2755         (-[WebHTMLView attributedSubstringFromRange:]):
2756         (-[WebHTMLView conversationIdentifier]):
2757         (-[WebHTMLView hasMarkedText]):
2758         (-[WebHTMLView unmarkText]):
2759         (-[WebHTMLView setMarkedText:selectedRange:]):
2760         (-[WebHTMLView doCommandBySelector:]):
2761         (-[WebHTMLView insertText:]):
2762         * WebView.subproj/WebHTMLViewInternal.h:
2763         * WebView.subproj/WebView.m:
2764
2765 === Safari-154 ===
2766
2767 2004-07-29  Darin Adler  <darin@apple.com>
2768
2769         Reviewed by Ken.
2770
2771         - fill in some unimplemented methods
2772
2773         * WebView.subproj/WebHTMLView.m:
2774         (-[WebHTMLView moveToBeginningOfDocument:]): Implement, using new document granularity.
2775         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
2776         (-[WebHTMLView moveToBeginningOfParagraph:]): Implement, even though the underlying WebCore
2777         code is not yet implemented.
2778         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
2779         (-[WebHTMLView moveToEndOfDocument:]): More of the same.
2780         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
2781         (-[WebHTMLView moveToEndOfParagraph:]): More of the same.
2782         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
2783         (-[WebHTMLView pageDown:]): Added comment describing desired behavior.
2784         (-[WebHTMLView pageUp:]): Ditto.
2785         (-[WebHTMLView copyFont:]): Ditto.
2786         (-[WebHTMLView pasteFont:]): Ditto.
2787         (-[WebHTMLView changeAttributes:]): Ditto.
2788         (-[WebHTMLView indent:]): Ditto.
2789
2790 2004-07-28  Chris Blumenberg  <cblu@apple.com>
2791
2792         Fixed: <rdar://problem/3737864> Can not download image from web by using drag and drop
2793
2794         Reviewed by john.
2795
2796         * Misc.subproj/WebNSPasteboardExtras.m:
2797         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]): On Tiger, to use NSFilesPromisePboardType with other pasteboard types, set the file types of the promise on the pasteboard as a property list instead of mucking with the NSFilePromiseDragSource class
2798
2799 2004-07-28  Maciej Stachowiak  <mjs@apple.com>
2800
2801         Reviewed by John.
2802
2803         - avoid triggering an assertion when using dead keys (like option-e)
2804
2805         * WebView.subproj/WebHTMLView.m:
2806         (-[WebHTMLView insertText:]): Don't pass zero-length strings to
2807         WebCore. Dead-key input seems to insert empty strings as a side
2808         effect.
2809
2810 2004-07-28  Trey Matteson  <trey@apple.com>
2811
2812         Spellchecking, Part I.  Basic spellcheck is working.  Spelling panel is hooked up.
2813
2814         At this point, no special marking of misspellings, no grammar check, no context
2815         menu integration, no "check continually" mode.
2816
2817         Reviewed by Ken.
2818
2819         * WebCoreSupport.subproj/WebBridge.m:
2820         (-[WebBridge spellCheckerDocumentTag]):  Typical bridge glue.
2821         * WebView.subproj/WebHTMLView.m:
2822         (-[WebHTMLView validateUserInterfaceItem:]):  Validate various spelling actions.
2823         (-[WebHTMLView checkSpelling:]):  Call WC for real work, update panel.
2824         (-[WebHTMLView showGuessPanel:]):  Show panel, call WC for real work.
2825         (-[WebHTMLView _changeSpellingToWord:]):  Apply correction to our doc.
2826         (-[WebHTMLView changeSpelling:]):  Simple pass through to above method.
2827         (-[WebHTMLView ignoreSpelling:]):  Tell checker to ignore the word.
2828         * WebView.subproj/WebView.m:
2829         (-[WebView _close]):  Call AK's closeSpellDocumentWithTag: for proper cleanup.
2830
2831 2004-07-27  John Sullivan  <sullivan@apple.com>
2832
2833         Reviewed by Trey.
2834         
2835         WebKit part of fix for <rdar://problem/3622268> Reload failed pages when a 
2836         network problem is corrected, inc. using Network Diagnostics
2837
2838         * WebView.subproj/WebFrame.m:
2839         (-[WebFrame reload]):
2840         This method did not handle unreachableURLs at all. The reason Safari's Reload
2841         did work with unreachableURLs was that Safari does "reloadObeyingLocationField"
2842         which never actually calls -[WebFrame reload]. Fixed by creating a fresh
2843         request for the previously-unreachable URL.
2844
2845 2004-07-26  Richard Williamson   <rjw@apple.com>
2846
2847         Fixed 3739737.  When setting the focus to a NSView, set the focus
2848         carbon focus to kControlIndicatorPart.  kControlIndicatorPart is a
2849         placeholder value for use to indicate that Cocoa has the focus.  
2850         
2851         Reviewed by Ken.
2852
2853         * Carbon.subproj/CarbonWindowAdapter.m:
2854         (-[CarbonWindowAdapter makeFirstResponder:]):
2855         * Carbon.subproj/HIWebView.m:
2856         (Click):
2857         (SetFocusPart):
2858
2859 2004-07-26  Chris Blumenberg  <cblu@apple.com>
2860
2861         Fixed: <rdar://problem/3689734> dragging to an editable WebView does not scroll document
2862
2863         Reviewed by rjw.
2864
2865         * WebView.subproj/WebView.m:
2866         (-[WebView documentViewAtWindowPoint:]): new, factored from draggingDocumentViewAtWindowPoint:
2867         (-[WebView _draggingDocumentViewAtWindowPoint:]): call documentViewAtWindowPoint:
2868         (-[WebView _autoscrollForDraggingInfo:timeDelta:]): forward call to the document view
2869         (-[WebView _shouldAutoscrollForDraggingInfo:]): ditto
2870
2871 === Safari-153 ===
2872
2873 2004-07-23  Ken Kocienda  <kocienda@apple.com>
2874
2875         Reviewed by Trey
2876
2877         Fix for this bug:
2878         
2879         <rdar://problem/3738920> Caret blinks in inactive window
2880
2881         As part of the fix, I cleaned up the way we handle special drawing that needs
2882         to be done in the HTML view that is first responder in the key window (e.g the
2883         drawing of text selection highlight and caret blinking).
2884
2885         * WebView.subproj/WebHTMLView.m:
2886         (-[WebHTMLView updateFocusDisplay]): New method that centralizes the changes
2887         we need to make when the first responder-ness of the view or key-ness of the
2888         window changes.
2889         (-[WebHTMLView viewDidMoveToWindow]): Call new updateFocusDisplay helper.
2890         (-[WebHTMLView windowDidBecomeKey:]): Ditto.
2891         (-[WebHTMLView windowDidResignKey:]): Ditto.
2892         (-[WebHTMLView becomeFirstResponder]): Ditto.
2893         (-[WebHTMLView resignFirstResponder]): Ditto.
2894
2895 2004-07-22  Darin Adler  <darin@apple.com>
2896
2897         * Plugins.subproj/npruntime.h: Update with new version from newer JavaScriptCore.
2898
2899 2004-07-21  Ken Kocienda  <kocienda@apple.com>
2900
2901         Reviewed by Trey
2902
2903         * WebCoreSupport.subproj/WebBridge.m: Remove interceptEditingKeyEvent
2904         bridge call over. This method of handling editing key events is now
2905         obsolete.
2906         * WebView.subproj/WebHTMLView.m:
2907         (-[WebHTMLView performKeyEquivalent:]): Send key event over to the 
2908         DOM if this view is or contains the first responder. This now
2909         happens unconditionally.
2910         (-[WebHTMLView keyDown:]): Send key event to the DOM, then see if
2911         the web view wants to interpret it an an editing key event. This
2912         is the new place to intercept key events for editing.
2913
2914 2004-07-21  Ken Kocienda  <kocienda@apple.com>
2915
2916         Reviewed by John
2917
2918         Add implementations for these methods. Formerly, they logged an error.
2919
2920         * WebView.subproj/WebHTMLView.m:
2921         (-[WebHTMLView moveToBeginningOfLine:]):
2922         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]):
2923         (-[WebHTMLView moveToEndOfLine:]):
2924         (-[WebHTMLView moveToEndOfLineAndModifySelection:]):
2925
2926 2004-07-21  Ken Kocienda  <kocienda@apple.com>
2927
2928         Reviewed by John
2929
2930         Added some more handlers for standard Cocoa key bindings. 
2931         These are "secrets" of NSText, meaning they are not public API, but we choose to mimic.
2932
2933         * WebView.subproj/WebHTMLView.m:
2934         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]):
2935         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]):
2936         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]):
2937         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]):
2938         (-[WebHTMLView moveToEndOfLineAndModifySelection:]):
2939         (-[WebHTMLView moveToEndOfParagraph:]):
2940         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]):
2941         * WebView.subproj/WebView.h: Add these declarations to the comment in the header listing
2942         the responder-like methods we support.
2943         * WebView.subproj/WebView.m:
2944         (-[WebView moveToBeginningOfParagraphAndModifySelection:]):
2945         (-[WebView moveToEndOfParagraphAndModifySelection:]):
2946         (-[WebView moveToBeginningOfLineAndModifySelection:]):
2947         (-[WebView moveToEndOfLineAndModifySelection:]):
2948         (-[WebView moveToBeginningOfDocumentAndModifySelection:]):
2949         (-[WebView moveToEndOfDocumentAndModifySelection:]):
2950
2951 2004-07-20  Ken Kocienda  <kocienda@apple.com>
2952
2953         Reviewed by Richard
2954
2955         * Misc.subproj/WebNSEventExtras.h: Added helper that returns whether
2956         a key event has a binding in the key binding manager.
2957         * Misc.subproj/WebNSEventExtras.m: 
2958         (-[NSEvent _web_keyBindingManagerHasBinding]): New helper mentioned above.
2959         * Plugins.subproj/npruntime.h:
2960         * WebView.subproj/WebHTMLView.m:
2961         (-[WebHTMLView performKeyEquivalent:]): Add a check of whether the key event 
2962         has a binding in the key binding manager. This works around the fact that
2963         NSResponder's interpretKeyEvents does not return a value telling whether
2964         or not the key was handled. This now makes it possible for us to trap
2965         modified key events we know we can handle (like those command-key + arrow events 
2966         used for text navigation), while letting all others pass.
2967
2968 2004-07-20  Chris Blumenberg  <cblu@apple.com>
2969
2970         Fixed:
2971         <rdar://problem/3580589> REGRESSION (1.1-1.2): can't open a new window for an image that has not loaded
2972         <rdar://problem/3612691> Missing image icons (blue ?) lack context menu
2973
2974         Reviewed by john.
2975
2976         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2977         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): if there is no image, but there is an image URL, provide image context menu items besides "Copy Image" 
2978         * WebView.subproj/WebHTMLView.m:
2979         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): don't drag an image with an actual image
2980         (-[WebHTMLView _mayStartDragAtEventLocation:]): ditto
2981
2982 2004-07-20  Maciej Stachowiak  <mjs@apple.com>
2983
2984         Reviewed by Chris.
2985
2986         <rdar://problem/3721690> REGRESSION (125.7-148u) clicking on links at macosx.apple.com/Builds does not load new page in frame
2987         
2988         * Plugins.subproj/npruntime.h:
2989         * WebCoreSupport.subproj/WebBridge.m:
2990         (-[WebBridge canTargetLoadInFrame:]): Don't apply the restrictions to frames
2991         that are in the same window (Mozilla does this too).
2992
2993 2004-07-20  Richard Williamson   <rjw@apple.com>
2994
2995                 Fix for 3728558.  Fixed the key event handling in the carbon/cocoa
2996                 integration code.  This does not fix the arrow keys not working on
2997                 initial focus problem also mentioned in the bug.
2998                 
2999                 Bumped the version of the NP function structures.
3000                 
3001         Reviewed by John.
3002
3003         * Carbon.subproj/CarbonUtils.m:
3004         (WebInitForCarbon):
3005         (PoolCleaner):
3006         * Carbon.subproj/HIWebView.m:
3007         (OwningWindowChanged):
3008         (WindowHandler):
3009         * Plugins.subproj/npapi.h:
3010
3011 2004-07-20  Trey Matteson  <trey@apple.com>
3012
3013         3733698 REGRESSION: sometimes dragging photos on homepage.mac.com leads to an assertion
3014
3015         Relax an assertion, as we ran into a valid case where it's not true.
3016
3017         Reviewed by Chris.
3018
3019         * WebView.subproj/WebHTMLView.m:
3020         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
3021         Removing this assert allows for the oddball case of a drag gesture that
3022         starts on one element, but then the element is no longer there when
3023         the drag is about to start.
3024
3025 2004-07-20  Ken Kocienda  <kocienda@apple.com>
3026
3027         Reviewed by Hyatt
3028
3029         Fix for this bug:
3030         
3031         <rdar://problem/3707505> HTMLCompose: blinking cursor in both an address text field and the message body
3032
3033         * WebView.subproj/WebHTMLView.m:
3034         (-[WebHTMLView setCaretVisible:]): New helper. Calls over bridge to do the work.
3035         (-[WebHTMLView windowDidBecomeKey:]): This function cannot just assume that self is first responder
3036         (and do things like adjusting text background color and restoring focus rings). 
3037         First-responder-ness needs to be checked first. Now it is.
3038         (-[WebHTMLView windowDidResignKey:]): Ditto.
3039         (-[WebHTMLView becomeFirstResponder]): Call new helper to make caret visible.
3040         (-[WebHTMLView resignFirstResponder]): Call new helper to make caret invisible.
3041
3042 2004-07-12  Richard Williamson   <rjw@apple.com>
3043
3044         Fixed 3721917.  The RealPlayer plugin doesn't support the new 
3045         NPPVpluginScriptableNPObject variable passed to NPP_GetValue and
3046         incorrectly returns NPERR_NO_ERROR.  We interpret this to the
3047         mean the variable has been set.  The variable has not been set 
3048         and will consequently be uninitialized.
3049
3050         Reviewed by NOBODY (OOPS!).
3051
3052         * Plugins.subproj/WebBaseNetscapePluginView.m:
3053         (-[WebBaseNetscapePluginView pluginScriptableObject]):
3054
3055 2004-07-19  Ken Kocienda  <kocienda@apple.com>
3056
3057         Reviewed by Richard
3058
3059         Fix for this bug:
3060         
3061         <rdar://problem/3707504> HTMLCompose: key events are stolen by Web(HTML)View
3062
3063         * Misc.subproj/WebNSViewExtras.h:
3064         * Misc.subproj/WebNSViewExtras.m:
3065         (-[NSView firstResponderIsSelfOrDescendantView]): New helper to 
3066         (-[WebHTMLView performKeyEquivalent:]): Do not pass key events through to the editing
3067         key handler unless the WebHTMLView is first responder or contains the first responder.
3068         This prevents the "stealing" of key events mentioned in the bug.
3069         * WebView.subproj/WebView.m:
3070         (-[WebView _performResponderOperation:with:]): Uses the new firstResponderIsSelfOrDescendantView
3071         helper. The code I replaced used the same logic as the new helper.
3072
3073 === Safari-152 ===
3074
3075 2004-07-12  Maciej Stachowiak  <mjs@apple.com>
3076
3077         Reviewed by Kevin.
3078
3079         <rdar://problem/3673988>: (REGRESSION(141-144): connection assertion failure at http://traffic.511.org/sfgate)
3080         
3081         * WebView.subproj/WebBaseResourceHandleDelegate.m:
3082         (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]):
3083         Don't check connection consistency if this load got cancelled
3084         while finishing, because in this case we have cleared the
3085         connection field already. This can happen when a redirect fires
3086         from an onload handler.
3087
3088 2004-07-12  Maciej Stachowiak  <mjs@apple.com>
3089
3090         Reviewed by John.
3091
3092         <rdar://problem/3632570>: (REGRESSION: SocialText.net wiki keeps asking for auth, even though pages load)
3093
3094         * Misc.subproj/WebIconLoader.m:
3095         (-[WebIconLoader didReceiveAuthenticationChallenge:]): Ignore the challenge - we don't
3096         want an auth panel for favicons.
3097         (-[WebIconLoader didCancelAuthenticationChallenge:]): Ignore cancel, since we are ignoring
3098         the challenge.
3099
3100 2004-07-09  Chris Blumenberg  <cblu@apple.com>
3101         
3102         Allowed my change for 3715785 to compile on Jaguar.
3103
3104         Reviewed by kocienda.
3105
3106         * WebCoreSupport.subproj/WebBridge.m:
3107         (-[WebBridge canTargetLoadInFrame:]): don't use the DOM API since it doesn't exist on Jaguar, instead call the new domain method on the bridge
3108
3109 2004-07-09  Ken Kocienda  <kocienda@apple.com>
3110
3111         Reviewed by John
3112
3113         * Plugins.subproj/npruntime.h: Updated license to lawyer-approved 
3114         joint Apple-Mozilla BSD-style license.
3115
3116 2004-07-08  Chris Blumenberg  <cblu@apple.com>
3117
3118         Fixed: <rdar://problem/3720728> REGRESSION (125.8-146): Crash moving mouse over plugin at manray-photo.com
3119         
3120         Reviewed by john.
3121
3122         * Plugins.subproj/WebBaseNetscapePluginView.m:
3123         (-[WebBaseNetscapePluginView pluginScriptableObject]): don't call NPP_GetValue unless the plug-in implements it
3124
3125 2004-07-08  Chris Blumenberg  <cblu@apple.com>
3126
3127         Fixed: <rdar://problem/3706296> VIP: ifilm.com crashing reproducibly with Safari
3128
3129         Reviewed by kocienda.
3130
3131         * Plugins.subproj/WebNetscapePluginPackage.m:
3132         (-[WebNetscapePluginPackage launchRealPlayer]): don't release a NULL appURL
3133
3134 2004-07-08  Chris Blumenberg  <cblu@apple.com>
3135
3136         Fixed: <rdar://problem/3650140> reproducible assertion failure going to plugin page with JavaScript disabled
3137
3138         Reviewed by john.
3139
3140         * Plugins.subproj/WebBaseNetscapePluginView.m:
3141         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): don't call NPP_NewStream and other stream methods if there is no JS result to deliver. This is what Mozilla does.
3142         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Return NPERR_GENERIC_ERROR if JS is disabled. This is what Mozilla does.
3143
3144 === Safari-151 ===
3145
3146 2004-07-07  Trey Matteson  <trey@apple.com>
3147
3148         3719051 - Safari doesn't update form inputs when a page was refreshed by javascript window.location
3149         ... and at least 5 other cases in Radar
3150
3151         Very similar problem to the Harvard PIN bug.  We need to be sure
3152         to not carry any state over when we are processing a client
3153         redirect, which reuses the same WebHistoryItem.
3154
3155         Reviewed by John.
3156
3157         * WebView.subproj/WebFrame.m:
3158         (-[WebFrame _transitionToCommitted:]):  Comment
3159         (-[WebFrame _opened]):  Clear form and scroll state on client redirect.
3160
3161 2004-07-06  Chris Blumenberg  <cblu@apple.com>
3162
3163         Fixed: <rdar://problem/3715785> multiple frame injection vulnerability reported by Secunia, affects almost all browsers
3164         
3165         Reviewed by john, trey, kocienda.
3166
3167         * WebCoreSupport.subproj/WebBridge.m:
3168         (-[WebBridge canTargetLoadInFrame:]): new method, return YES if the requesting frame is local, the target frame is an entire window or if the domain of the parent of the targeted frame equals this domain
3169         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): call canTargetLoadInFrame: to make sure we can load the request
3170         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto
3171
3172 2004-07-06  John Sullivan  <sullivan@apple.com>
3173
3174         Reviewed by Trey.
3175
3176         - fixed <rdar://problem/3717147> folder icon used for error page in back/forward 
3177         menu when iTunes is not installed
3178
3179         * WebView.subproj/WebFrame.m:
3180         (-[WebFrame _transitionToCommitted:]):
3181         When displaying the error page for an unreachable URL, leave the requested URL
3182         in the WebHistoryItem; don't clobber it with a bogus one that represents the
3183         error page. This not only avoids the wrong-icon problem, but should also help
3184         in cases where an unreachable URL becomes reachable later on.
3185
3186 2004-07-06  Trey Matteson  <trey@apple.com>
3187
3188         3716053 - www.theage.com.au has extra back/forward items due to ads
3189
3190         The real change was in WebKit.  Here was are just renaming a method and folding
3191         all the WebFrameLoadTypeOnLoadEvent uses to be WebFrameLoadTypeInternal, since there
3192         was never any difference anyway.
3193
3194         Reviewed by Richard
3195
3196         * WebCoreSupport.subproj/WebBridge.m:
3197         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):  rename part of the method.
3198         * WebView.subproj/WebFrame.m:  Nuke WebFrameLoadTypeOnLoadEvent.
3199         (-[WebFrame _transitionToCommitted:]):
3200         (-[WebFrame _checkLoadCompleteForThisFrame]):
3201         (-[WebFrame _loadItem:withLoadType:]):
3202         (-[WebFrame _itemForRestoringDocState]):
3203         * WebView.subproj/WebFramePrivate.h:
3204
3205 2004-07-06  Ken Kocienda  <kocienda@apple.com>
3206
3207         Reviewed by Trey
3208         
3209         Only register the editing delegate for those notifications for which it implements the callbacks.
3210
3211         * WebView.subproj/WebView.m:
3212         (-[WebView registerForEditingDelegateNotification:selector:]):
3213         (-[WebView setEditingDelegate:]):
3214
3215 2004-07-06  Trey Matteson  <trey@apple.com>
3216
3217         3294652 - Failed drag of links doesn't slide back
3218
3219         The only reason for this is that because of some hacks, we lie to
3220         AK about the drag image offset, which means we slide back to
3221         slightly the wrong place.  But it's very minor, so we should
3222         just fix it.
3223
3224         Reviewed by Ken.
3225
3226         * WebView.subproj/WebHTMLView.m:
3227         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
3228         Ask for slideback.
3229
3230 2004-07-02  Darin Adler  <darin@apple.com>
3231
3232         Reviewed by Dave.
3233
3234         - fixed problem where tabsToLinks and privateBrowsingEnabled did not work with non-
3235           standard WebPreferences objects
3236
3237         * WebView.subproj/WebPreferences.m:
3238         (-[WebPreferences _valueForKey:]): New helper.
3239         (-[WebPreferences _stringValueForKey:]): Use _valueForKey.
3240         (-[WebPreferences _integerValueForKey:]): Use _valueForKey.
3241         (-[WebPreferences _boolValueForKey:]): Use _valueForKey.
3242         (-[WebPreferences tabsToLinks]): Use _boolValueForKey; this is the bug fix.
3243         (-[WebPreferences privateBrowsingEnabled]): Ditto.
3244         (+[WebPreferences _setIBCreatorID:]): Use copy instead of retain for keeping an NSString.
3245
3246 2004-07-01  Trey Matteson  <trey@apple.com>
3247
3248         3556159 - Crashes in -[WebFrame(WebPrivate) _transitionToCommitted:] at www.mastercardbusiness.com
3249
3250         We know from the line number of the crash that it is due to [self parentFrame]==nil.
3251
3252         Looking at the HTML and that of the related bugs, they do special stuff with onload
3253         handlers.  It is no longer repro, presumably because the includes JS files changed,
3254         as the bugs only included the top level HTML.  I suspect that the problem is that the
3255         WebFrameLoadTypeOnLoadEvent case was added, and in some weird sequence specific to
3256         MasterCard, they hit a case where we would be in WebFrameLoadTypeOnLoadEvent mode but
3257         not have a parent frame.
3258
3259         So we guard in the code against hitting a nil parentFrame, and log an error just in
3260         case this ever crops up again and we can learn more about it.
3261
3262         Reviewed by Richard.
3263
3264         * WebView.subproj/WebFrame.m:
3265         (-[WebFrame _transitionToCommitted:]):  Guard against nil parentFrame.
3266
3267 2004-07-01  John Sullivan  <sullivan@apple.com>
3268
3269         Reviewed by Trey.
3270         
3271         - fixed these bugs:
3272         <rdar://problem/3709110> REGRESSION (Tiger): Pressing Tab key to move focus 
3273         onto links skips every other link
3274         <rdar://problem/3692576> focus ring is in odd place after clicking RSS button 
3275         with "Tab to links" enabled
3276         
3277         WebHTMLView has some trickery by which we advance the focused link when nextKeyView
3278         or previousKeyView is called within nextValidKeyView or previousValidKeyView. This
3279         broke in Tiger because AppKit now (sometimes at least) calls nextKeyView more than
3280         once within nextValidKeyView. Fixed 3709110 by making sure we only advance the focus 
3281         once within a call to nextValidKeyView or previousValidKeyView.
3282         
3283         Also, this same trickery didn't work right with hidden views. Fixed 3692576 by checking
3284         whether the view is hidden and bypassing the focus-moving trickery in that case.
3285
3286         * WebView.subproj/WebHTMLViewInternal.h:
3287         renamed inNextValidKeyView -> nextKeyViewAccessShouldMoveFocus
3288         
3289         * WebView.subproj/WebHTMLView.m:
3290         (-[WebHTMLView nextKeyView]):
3291         now clears nextKeyViewAccessShouldMoveFocus
3292         (-[WebHTMLView previousKeyView]):
3293         ditto
3294         (-[WebHTMLView nextValidKeyView]):
3295         now doesn't set focus-moving trigger ivar if view is hidden or has hidden ancestor
3296         (-[WebHTMLView previousValidKeyView]):
3297         ditto
3298
3299 2004-06-30  Trey Matteson  <trey@apple.com>
3300
3301         Dragging within a web view should be allowed to start when the window isn't key.
3302
3303         A few months ago, Chris made this work, but it relied on the fact that all dragging
3304         was done in WebKit.  When WebCore got involved in dragging, it was broken.  Now we
3305         have a new scheme that gets it working again that properly involves WebCore.
3306
3307         The general idea is that when AK asks us whether to accept the first mouse and do
3308         "delayed window ordering", we must consult WC to see if we might start a drag.  In
3309         addition, instead of these drags in non-active windows being started as a special
3310         case in WK, they go through the normal WK-WC drag machinery.  Finally to work in
3311         frames we have to drill to the deepest hit view in acceptsFirstMouse, because previous
3312         hacks to hitTest make the top-most WebHTMLView field all events for its view tree
3313         (which leads to it fielding all acceptFirstMouse messages too).
3314
3315         Reviewed by John.
3316
3317         * WebCoreSupport.subproj/WebBridge.m:
3318         (-[WebBridge mayStartDragAtEventLocation:]):  Glue change for new arg type.
3319         * WebView.subproj/WebHTMLView.m:
3320         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
3321         firstMouseDownEvent ivar is no longer needed.
3322         (-[WebHTMLView _mayStartDragAtEventLocation:]):  Receives a location instead of a drag
3323         event, since we need to do this work when we have no drag event.  This means the
3324         check of the delay for text dragging is moved down to WebCore.
3325         (-[WebHTMLView acceptsFirstMouse:]):  Respond based on whether we might do a drag.
3326         This includes drilling to the deepest view the event hits, whereas we used to only
3327         respond considering the topmost WebHTMLView.
3328         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]):  Ditto.
3329         (-[WebHTMLView mouseDown:]):  Get rid of special case where some activating
3330         mouseDown events weren't sent to WC.  We need to go through the whole pipeline
3331         now to get a drag started properly.
3332         (-[WebHTMLView mouseDragged:]):  Ditto, let WC start the drag.
3333         (-[WebHTMLView mouseUp:]):  firstMouseDownEvent ivar is no longer needed.
3334         * WebView.subproj/WebHTMLViewInternal.h:
3335         * WebView.subproj/WebHTMLViewPrivate.h:
3336
3337 2004-06-25  Trey Matteson  <trey@apple.com>
3338
3339         Added new utility method.
3340
3341         Reviewed by John.
3342
3343         * WebView.subproj/WebFrame.m:
3344         (-[WebFrame _isDescendantOfFrame:]):   New code.
3345         * WebView.subproj/WebFramePrivate.h:
3346
3347 2004-06-24  Richard Williamson   <rjw@apple.com>
3348
3349                 Fixed <rdar://problem/3710313>: CGContext not zeroed when WebImageRenderer is copied
3350                 The context ivar of WebImageRenderer wasn't being nil when the object was copied.
3351
3352         Reviewed by Darin.
3353
3354         * WebCoreSupport.subproj/WebImageRenderer.m:
3355         (-[WebImageRenderer copyWithZone:]):
3356         (-[WebImageRenderer dealloc]):
3357         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
3358
3359 2004-06-24  Trey Matteson  <trey@apple.com>
3360
3361         3672725 - Assertion failure in URLCompletion code with particular set of bookmarks
3362
3363         Problem was caused by a URL with unescaped unicodes getting into
3364         the Bookmarks file, presumably from import from IE.  We now test
3365         for this case and convert the data on the way in as if it were
3366         user-entered.
3367
3368         Reviewed by John and Darin.
3369
3370         * History.subproj/WebHistoryItem.m:
3371         (-[WebHistoryItem initFromDictionaryRepresentation:]):
3372
3373 2004-06-24  Trey Matteson  <trey@apple.com>
3374
3375         3704950 drag image in DB ConfigBar has horizontal graphics turd WebCore JavaScript
3376
3377         When we generate a drag image (or a selection image too, for that matter) we
3378         translate the CTM using a CG call.  Later, WebImageRenderer adjusts the pattern
3379         phase based on the CTM of the focused view, which doesn't include our translate.
3380         So we must inform WebKit about the additional phase adjustment.
3381
3382         Reviewed by Richard
3383
3384         * WebCoreSupport.subproj/WebGraphicsBridge.h:
3385         * WebCoreSupport.subproj/WebGraphicsBridge.m:
3386         (-[WebGraphicsBridge setAdditionalPatternPhase:]):  New trivial setter.
3387         (-[WebGraphicsBridge additionalPatternPhase]):      ...and getter.
3388         * WebCoreSupport.subproj/WebImageRenderer.m:
3389         (-[WebImageRenderer tileInRect:fromPoint:context:]):  Take any additional phase
3390         adjustment into account when setting phase.
3391
3392 2004-06-24  Trey Matteson  <trey@apple.com>
3393
3394         3693420 - onbeforecut and onbeforepaste need real implementaion
3395
3396         Reviewed by Chris.
3397
3398         * WebView.subproj/WebHTMLView.m:
3399         (-[WebHTMLView validateUserInterfaceItem:]):  Check with WebCore
3400         to see if cut, copy, paste should be enabled.
3401
3402 2004-06-24  John Sullivan  <sullivan@apple.com>
3403
3404         Reviewed by Darin.
3405         
3406         - fixed <rdar://problem/3706792> 8A161: Choosing text encoding for 
3407         error page opens finder window!?
3408
3409         * WebView.subproj/WebFrame.m:
3410         (-[WebFrame _reloadAllowingStaleDataWithOverrideEncoding:]):
3411         take unreachableURL into account
3412
3413 2004-06-23  Richard Williamson   <rjw@apple.com>
3414
3415         Implemented changes for latest npruntime.h.
3416         Made npruntime.h public.
3417                 
3418         Reviewed by Chris.
3419
3420         * Plugins.subproj/WebBaseNetscapePluginView.h:
3421         * Plugins.subproj/WebBaseNetscapePluginView.m:
3422         (-[WebBaseNetscapePluginView pluginScriptableObject]):
3423         (-[WebBaseNetscapePluginView forceRedraw]):
3424         (-[WebBaseNetscapePluginView getVariable:value:]):
3425         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
3426         * Plugins.subproj/WebNetscapePluginPackage.m:
3427         (-[WebNetscapePluginPackage load]):
3428         * Plugins.subproj/npapi.h:
3429         * Plugins.subproj/npapi.m:
3430         (NPN_GetValue):
3431         * Plugins.subproj/npfunctions.h:
3432         * Plugins.subproj/npruntime.h:
3433         * WebKit.pbproj/project.pbxproj:
3434
3435 2004-06-21  Darin Adler  <darin@apple.com>
3436
3437         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
3438
3439 2004-06-21  Chris Blumenberg  <cblu@apple.com>
3440
3441         Made WebKitErrorDescriptionPlugInCancelledConnection have its own description string
3442         (Not for software update branch)
3443
3444         Reviewed by john.
3445
3446         * English.lproj/Localizable.strings:
3447         * Misc.subproj/WebKitErrors.m:
3448
3449 2004-06-21  Chris Blumenberg  <cblu@apple.com>
3450
3451         Made WebKitErrorDescriptionPlugInCancelledConnection properly reuse an already localized string to avoid loc changes.
3452
3453         Reviewed by john.
3454
3455         * ChangeLog:
3456         * Misc.subproj/WebKitErrors.m:
3457
3458 2004-06-21  Chris Blumenberg  <cblu@apple.com>
3459
3460         Fixed: <rdar://problem/3701269> change in error handling behavior from 10.3.3 to 10.3.4 breaks unreleased Adobe PDF plug-in
3461
3462         Reviewed by john.
3463
3464         * Misc.subproj/WebKitErrors.m:
3465         (registerErrors): register string for WebKitErrorPlugInCancelledConnection
3466         * Misc.subproj/WebKitErrorsPrivate.h:
3467         * Plugins.subproj/WebBaseNetscapePluginStream.h:
3468         * Plugins.subproj/WebBaseNetscapePluginStream.m:
3469         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): use renamed WEB_REASON_PLUGIN_CANCELLED constant
3470         (-[WebBaseNetscapePluginStream destroyStream]): ditto
3471         * Plugins.subproj/WebNetscapePluginRepresentation.m:
3472         (-[WebNetscapePluginRepresentation cancelWithReason:]): if the reason is WEB_REASON_PLUGIN_CANCELLED, cancel the load with WebKitErrorPlugInCancelledConnection
3473         * Plugins.subproj/WebNetscapePluginStream.m:
3474         (-[WebNetscapePluginStream cancelWithReason:]): ditto
3475
3476 === Safari-146 ===
3477
3478 2004-06-17  Richard Williamson   <rjw@apple.com>
3479
3480                 Changed private headers to be pubic for npapi.h and npfunctions.h.  That
3481                 API was approved but never marked as public in the project file.  This change does
3482                 not make npruntime.h public, which contains the not yet approved changes
3483                 for script-ability of netscape plugins.  Unfortunately, that API will not
3484                 be public for WWDC.
3485                                 
3486         Reviewed by Chris.
3487