b63bffdae3b72f9c60158e69042fc2b336c0991b
[WebKit-https.git] / WebKit / ChangeLog
1 2004-08-26  Chris Blumenberg  <cblu@apple.com>
2
3         Fixed: <rdar://problem/3774178> Plugin hooks for selected state aren't being called
4
5         Reviewed by darin.
6
7         * WebCoreSupport.subproj/WebBridge.m:
8         (-[WebBridge setIsSelected:forView:]): don't forget colons in method names
9
10 2004-08-26  Chris Blumenberg  <cblu@apple.com>
11
12         Fixed: <rdar://problem/3768439> can't click in WebView in Carbon WebKit apps (GetEventPlatformEventRecord returns false)
13
14         Reviewed by rjw.
15
16         * Carbon.subproj/HIWebView.m:
17         (Click): use WebGetEventPlatformEventRecord not GetEventPlatformEventRecord
18         (MouseUp): ditto
19         (MouseMoved): ditto
20         (MouseDragged): ditto
21         (MouseWheelMoved): ditto
22         (WindowHandler): ditto
23         (HIWebViewEventHandler): ditto
24         (UpdateObserver): ditto
25         (WebGetEventPlatformEventRecord): Call GetEventPlatformEventRecord, if that fails fallback to the current event. This is code Eric Schlegel to me to use. 
26
27 2004-08-24  Chris Blumenberg  <cblu@apple.com>
28
29         Fixed with help from Trey:
30         <rdar://problem/3764856> REGRESSION !25-154): Safari accepts mouse clicks (follows links) when not key
31
32         Reviewed by rjw.
33
34         * WebView.subproj/WebHTMLView.m:
35         (-[WebHTMLView _isSelectionEvent:]): brought back from CVS
36         (-[WebHTMLView acceptsFirstMouse:]): only call eventMayStartDrag if _isSelectionEvent returns YES since we only want to allow selection dragging on the first mouse down
37         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]): ditto
38
39 2004-08-24  Ken Kocienda  <kocienda@apple.com>
40
41         Reviewed by Hyatt
42
43         Improved the checks used to see if certain operations can be done based
44         on the state of the selection and whether the selection is editable. I
45         added some helpers and improved some others to assist in making these
46         determinations.
47         
48         This helps to fix this bug:
49         <rdar://problem/3764987> Crash after adding newline to quoted text
50         
51         Since some editing methods expect the the selection to be in a certain state 
52         in order to work, these checks help obviate crashes like 3764987.
53
54         * WebView.subproj/WebHTMLView.m:
55         (-[WebHTMLView _writeSelectionToPasteboard:]): _haveSelection name changed to _hasSelection.
56         (-[WebHTMLView _canCopy]): Checks to see if state is appropriate to perform this operation.
57         (-[WebHTMLView _canCut]): Ditto. Function added.
58         (-[WebHTMLView _canDelete]): Ditto. Function refined.
59         (-[WebHTMLView _canPaste]): Ditto. Function refined.
60         (-[WebHTMLView _canType]): Ditto. Function added.
61         (-[WebHTMLView _hasSelection]): Name changed from _haveSelection.
62         (-[WebHTMLView _hasSelectionOrInsertionPoint]): Added.
63         (-[WebHTMLView _isEditable]): Added.
64         (-[WebHTMLView takeFindStringFromSelection:]): _haveSelection name changed to _hasSelection.
65         (-[WebHTMLView validateUserInterfaceItem:]): Ditto
66         (-[WebHTMLView validRequestorForSendType:returnType:]): Ditto
67         (-[WebHTMLView keyDown:]):
68         (-[WebHTMLView copy:]): Uses new _canCopy check.
69         (-[WebHTMLView cut:]): Uses new _canCut check.
70         (-[WebHTMLView delete:]): Now uses _canDelete check.
71         (-[WebHTMLView paste:]): Now uses _canPaste check.
72         (-[WebHTMLView _updateFontPanel]): _haveSelection name changed to _hasSelection.
73         * WebView.subproj/WebHTMLViewPrivate.h:
74         * WebView.subproj/WebView.m:
75         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]): Use selectionState check to
76         determine whether or not operation can be done.
77
78 2004-08-24  Richard Williamson   <rjw@apple.com>
79
80         Fixed <rdar://problem/3770469> Some PDFs open with line of previous page above PDF view
81         
82         Set height resize flags on WebPDFView.
83                 
84         Reviewed by Chris.
85
86         * WebView.subproj/WebPDFView.m:
87         (-[WebPDFView initWithFrame:]):
88
89 2004-08-24  David Hyatt  <hyatt@apple.com>
90
91         Add Atom and RSS MIME types to set of supported XML types.
92         
93         Reviewed by rjw
94
95         * WebView.subproj/WebDataSource.m:
96         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
97         * WebView.subproj/WebFrameView.m:
98         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
99
100 2004-08-23  Maciej Stachowiak  <mjs@apple.com>
101
102         Reviewed by Kevin.
103
104         - remove annoying ERROR spew and replace with comment
105         
106         * WebView.subproj/WebHTMLView.m:
107         (-[WebHTMLView validAttributesForMarkedText]):
108
109 2004-08-23  Maciej Stachowiak  <mjs@apple.com>
110
111         Reviewed by Richard.
112
113         - a bit of code cleanup
114
115         * WebView.subproj/WebDataSource.m:
116         (-[WebDataSource _stringWithData:]): Call textEncodingName instead of
117         copying it's code.
118         (-[WebDataSource textEncodingName]): Tweak formatting.
119
120 2004-08-23  Chris Blumenberg  <cblu@apple.com>
121
122         Fixed build.
123
124         * WebKit.pbproj/project.pbxproj: make sure we're doing -f on a file, not a directory
125
126 2004-08-23  Chris Blumenberg  <cblu@apple.com>
127
128         Fixed: <rdar://problem/3674867> use new Security framework SPI's to reenable cert acquisition
129
130         Reviewed by john.
131
132         * WebCoreSupport.subproj/WebKeyGeneration.cpp:
133         * WebCoreSupport.subproj/WebKeyGeneration.h:
134         * WebCoreSupport.subproj/WebKeyGenerator.h:
135         * WebCoreSupport.subproj/WebKeyGenerator.m:
136         (-[WebKeyGenerator signedPublicKeyAndChallengeStringWithStrengthIndex:challenge:pageURL:]): re-enabled cert code, call Panther version on Panther, Tiger version on Tiger
137         (-[WebKeyGenerator addCertificatesToKeychainFromData:]): ditto
138         * WebCoreSupport.subproj/WebNewKeyGeneration.c: Added.
139         (gnrAddContextAttribute):
140         (gnrGetSubjPubKey):
141         (gnrNullAlgParams):
142         (gnrSign):
143         (gnrFreeCssmData):
144         (nssArraySize):
145         (signedPublicKeyAndChallengeString):
146         (addCertificateToKeychainFromData):
147         (addCertificatesToKeychainFromData):
148         * WebCoreSupport.subproj/WebNewKeyGeneration.h: Added.
149         * WebKit.pbproj/project.pbxproj:
150
151 2004-08-20  David Hyatt  <hyatt@apple.com>
152
153         Fix the directionality of the unicode hyphen so that on Panther it now matches Tiger.
154         
155         Reviewed by darin
156
157         * Misc.subproj/WebUnicode.m:
158         (_unicodeDirection):
159
160 2004-08-20  Richard Williamson   <rjw@apple.com>
161
162             Implemented new JNI abstraction.  We no longer invoke Java methods
163             directly with JNI, rather we call into the plugin.  This allows the
164             plugin to dispatch the call to the appropriate VM thread.  This
165             change should (will?) fix a whole class of threading related problems with
166             the Java VM.
167
168         Reviewed by Hyatt.
169
170         * WebCoreSupport.subproj/WebBridge.m:
171         (-[WebBridge getAppletInView:]):
172
173 2004-08-20  Trey Matteson  <trey@apple.com>
174
175         3655407 - Editing: -complete: method unimplemented (WebKit editing API)
176
177         This feature is mostly implemented.  The only loose ends I know of are:
178
179         3769654 - text insertions done via complete: should preserve case of full replacement string
180         3769652 - positioning of complete: popup window wrong for right-to-left languages
181
182         Reviewed by John
183
184         * WebView.subproj/WebHTMLView.m:
185         (-[WebHTMLViewPrivate dealloc]):  Free new object.
186         (-[WebHTMLView menuForEvent:]):  Bail on completion session.
187         (-[WebHTMLView windowDidResignKey:]):  Ditto.
188         (-[WebHTMLView windowWillClose:]):  Ditto.
189         (-[WebHTMLView mouseDown:]):  Ditto.
190         (-[WebHTMLView resignFirstResponder]):  Ditto.
191         (-[WebHTMLView keyDown:]):  Bail on completion session if WebCore takes the event.
192         Give the CompleteController a crack at the key event.
193         (-[WebHTMLView _expandSelectionToGranularity:]):  Adopt method rename
194         (-[WebHTMLView complete:]):  Make CompleteController, tell it to do its thing.
195         (-[WebHTMLView checkSpelling:]):  Add ERROR().
196         (-[WebHTMLView showGuessPanel:]): Add ERROR().
197         (-[WebHTMLView _changeSpellingToWord:]): Add ERROR().
198         (-[WebHTMLView ignoreSpelling:]): Add ERROR().
199
200         (-[WebTextCompleteController initWithHTMLView:]):
201         (-[WebTextCompleteController dealloc]):
202         (-[WebTextCompleteController _insertMatch:]): Stick the new string into the doc.
203         (-[WebTextCompleteController _buildUI]):  Make popup window.
204         (-[WebTextCompleteController _placePopupWindow:]):  Position popup window.
205         (-[WebTextCompleteController doCompletion]):  Lookup matches, display window.
206         (-[WebTextCompleteController endRevertingChange:moveLeft:]):  Bail on complete: session.
207         (-[WebTextCompleteController filterKeyDown:]):  Process keys while popup is up.
208         (-[WebTextCompleteController _reflectSelection]):  Handle choice in popup.
209         (-[WebTextCompleteController tableAction:]):  Handle double click in popup
210         (-[WebTextCompleteController numberOfRowsInTableView:]):  Fill table with matches.
211         (-[WebTextCompleteController tableView:objectValueForTableColumn:row:]):  Ditto.
212         (-[WebTextCompleteController tableViewSelectionDidChange:]):  Handle selection change.
213         * WebView.subproj/WebHTMLViewInternal.h:
214
215 2004-08-20  John Sullivan  <sullivan@apple.com>
216
217         * English.lproj/StringsNotToBeLocalized.txt:
218         checked this in; the only difference is that
219         the strings were out of order.
220
221 2004-08-19  Richard Williamson   <rjw@apple.com>
222
223         Continue to call old pollForAppletInView: in Tiger until
224         we get an plugin that supports the new API.
225                 
226         Reviewed by Chris.
227
228         * WebCoreSupport.subproj/WebBridge.m:
229         (-[WebBridge getAppletInView:]):
230         * WebKit.pbproj/project.pbxproj:
231
232 === Safari-158 ===
233
234 2004-08-19  Chris Blumenberg  <cblu@apple.com>
235
236         Fixed typo in comment.
237
238         * Misc.subproj/WebIconDatabase.m:
239         (-[WebIconDatabase _updateFileDatabase]):
240
241 2004-08-19  Chris Blumenberg  <cblu@apple.com>
242
243         Fixed: <rdar://problem/3566336> CrashTracer: .2403 crashes at com.apple.WebKit: -[WebFileDatabase performSetObject:forKey:] + 0x94
244
245         Reviewed by trey.
246
247         * Misc.subproj/WebIconDatabase.m:
248         (-[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
249
250 2004-08-18  Richard Williamson   <rjw@apple.com>
251
252         Replace horrible pollForAppletInView: with new
253         webPlugInGetApplet.  The details of how the applet instance
254         is provided now belong to the Java team.  Yeh.
255                 
256         Reviewed by Chris.
257
258         * WebCoreSupport.subproj/WebBridge.m:
259         (-[WebBridge getAppletInView:]):
260
261 2004-08-17  Richard Williamson   <rjw@apple.com>
262
263         Fixed <rdar://problem/3759093> Need PDF context menu: "Open in Preview" or other external app
264
265         Added support for "Open with ..." in PDF view.
266                 
267         Reviewed by Chris and Trey.
268
269         * ChangeLog:
270         * English.lproj/Localizable.strings:
271         * English.lproj/StringsNotToBeLocalized.txt:
272         * WebView.subproj/WebPDFView.h:
273         * WebView.subproj/WebPDFView.m:
274         (-[WebPDFView initWithFrame:]):
275         (-[WebPDFView dealloc]):
276         (applicationInfoForMIMEType):
277         (-[WebPDFView path]):
278         (-[WebPDFView menuForEvent:]):
279         (-[WebPDFView setDataSource:]):
280         (-[WebPDFView layout]):
281         (-[WebPDFView viewDidMoveToHostWindow]):
282         (-[WebPDFView openWithFinder:]):
283
284 2004-08-17  Richard Williamson   <rjw@apple.com>
285
286         JNI needs both the jmethodID and return type.  Changed API to 
287         pass both.
288                 
289         Reviewed by Chris.
290
291         * Plugins.subproj/WebJavaPlugIn.h:
292
293 2004-08-17  Trey Matteson  <trey@apple.com>
294
295         3764147 - failure of subframe to load leaves links in parent doc broken
296
297         Reviewed by Maciej.
298
299         * WebView.subproj/WebDataSource.m:
300         (-[WebDataSource _receivedMainResourceError:complete:]):
301         Need to call [bridge end] in the case of an error, so WC can clean up.
302
303 === Safari-157 ===
304
305 2004-08-15  Richard Williamson   <rjw@apple.com>
306
307         More changes to np headers.
308         
309         Reviewed by Darin.
310
311         * Plugins.subproj/WebNetscapePluginPackage.m:
312         (-[WebNetscapePluginPackage load]):
313         * Plugins.subproj/npapi.h:
314         * Plugins.subproj/npfunctions.h:
315         * Plugins.subproj/npruntime.h:
316
317 2004-08-13  Darin Adler  <darin@apple.com>
318
319         Reviewed by Chris.
320
321         - fixed <rdar://problem/3760924> Carbon path passed in NPP_StreamAsFile must be in local character set, not UTF-8
322
323         * Plugins.subproj/WebBaseNetscapePluginStream.m:
324         (CarbonPathFromPOSIXPath): Added. New function that uses the path pieces from an FSSpec.
325         This has many advantages; the big one that fixes the bug is that it gives the mangled names
326         that work even for files that have names that can't otherwise be encoded in Carbon-style
327         path names. I didn't write this from scratch: I started with the method in Foundation
328         and just changed it to use FSSpec.
329         (-[WebBaseNetscapePluginStream destroyStream]): Remove code that used NSString and just call
330         CarbonPathFromPOSIXPath instead.
331
332         * Plugins.subproj/npapi.h: The Revision tag wanted to touch this file.
333         I think we are going to have some trouble with this; I'd like to take that out.
334
335         * English.lproj/StringsNotToBeLocalized.txt: Updated.
336
337 2004-08-12  Trey Matteson  <trey@apple.com>
338
339         3761329 - query result links all dead in ingrammicro.com (sometimes)
340         3761328 - links in some docs dead when doc is loaded from WebArchive
341
342         Nasty problem.  It turns out that these result pages are a parent frame with two child
343         frames.  One of the child frames is a 1 or 2 byte text document.  When the text child
344         is the last doc to complete, because we use a Text rep instead of an HTMLRep, it turns
345         out we never send [bridge end] from WebKit.  That mistake results in checkCompleted not
346         being called enough in the part, and we never realize the load is done.  WebCore does
347         not allow redirects to happen until the entire load is complete,  and  the links on this
348         results page are actually little pieces of JS that set location to a generated URL.  Since
349         redirects are not allowed these links all silently fail to do anything, and the doc never
350         achieves a completed state where they will work.
351
352         Solution is to make sure we always call [bridge end] from the DataSource instead of only
353         the HTML rep doing it.
354
355         Reviewed by Richard and Darin.
356
357         * WebView.subproj/WebDataSource.m:
358         (-[WebDataSource _finishedLoading]):  Call [bridge end] here for all kinds of docs.
359         * WebView.subproj/WebHTMLRepresentation.m:
360         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):  Don't call is just for HTMLReps.
361
362 2004-08-12  Richard Williamson   <rjw@apple.com>
363
364         Bring npruntime.h and friends closer to compliance with
365         latest spec.
366
367         Reviewed by Maciej.
368
369         * Plugins.subproj/npapi.h:
370         * Plugins.subproj/npfunctions.h:
371         * Plugins.subproj/npruntime.h:
372         (_NPString::):
373         (_NPString::_NPVariant::):
374         * copy-webcore-files-to-webkit:
375
376 2004-08-12  Chris Blumenberg  <cblu@apple.com>
377
378         Fixed: <rdar://problem/3761097> should be able to option-drag selection so HTML can be copied within a page
379
380         Reviewed by rjw.
381
382         * WebView.subproj/WebHTMLView.m:
383         (-[WebHTMLView _isMoveDrag]): new, take into account the option key
384         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call _isMoveDrag
385         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): call _isMoveDrag
386
387 2004-08-12  Richard Williamson   <rjw@apple.com>
388
389         Quick fix for 3760903.  The real fix is described in 3760920.  Needed
390         by Java plugin guys so they can be unblocked for feature freeze.
391                 
392         Reviewed by Chris.
393
394         * WebView.subproj/WebFrame.m:
395         (-[WebFrame _reloadForPluginChanges]):
396         * WebView.subproj/WebHTMLView.m:
397         (-[WebHTMLView addSubview:]):
398
399 2004-08-12  Chris Blumenberg  <cblu@apple.com>
400
401         Fixed: <rdar://problem/3760898> error pages in subframes attempt to load appledata URLs when reloaded
402
403         Reviewed by darin.
404
405         * WebView.subproj/WebFrame.m:
406         (-[WebFrame _createItem:]): when setting the original URL of the history item, use the unreachable URL
407
408 === Safari-156 ===
409
410 2004-08-11  Adele Amchan  <adele@apple.com>
411
412         Reviewed by me, bug fix by Darin.
413
414         - fixed <rdar://problem/3736477> Pages don't load if hard drive is named with non-ASCII Symbol
415
416         * Plugins.subproj/WebBaseNetscapePluginStream.m:
417         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]):
418         Use UTF8String instead of cString to convert the MIME type to a C string. Safer, since it can't
419         ever fail due to encoding problems even though this string should always be ASCII.
420         (-[WebBaseNetscapePluginStream destroyStream]): Use stringWithUTF8String to convert the path name
421         to an NSString, since stringWithCString is deprecated (doesn't really matter since the path is always
422         all ASCII). Fix the bug by calling fileSystemRepresentation on the NSString to turn it into a C
423         string form. Even though the POSIX path can't have any non-ASCII characters in it, the Carbon path
424         can, so we need to use this instead of cString which can fail depending on characters and encoding.
425
426 2004-08-09  Maciej Stachowiak  <mjs@apple.com>
427
428         Reviewed by Trey.
429
430         WebKit part of:
431
432         - made basic marked text highlighting work to complete basic level of <rdar://problem/3704359> input method support not yet implemented for HTML editing
433
434         * WebView.subproj/WebHTMLView.m:
435         (-[WebHTMLView markedRange]): Use new bridge calls instead of internal marked range storage.
436         (-[WebHTMLView hasMarkedText]): Likewise.
437         (-[WebHTMLView unmarkText]): Likewise.
438         (-[WebHTMLView _selectMarkedText]): Likewise.
439         (-[WebHTMLView _selectRangeInMarkedText:]): Likewise.
440         (-[WebHTMLView _selectionIsInsideMarkedText]): Likewise.
441         (-[WebHTMLView _updateSelectionForInputManager]): Likewise.
442         (-[WebHTMLView setMarkedText:selectedRange:]): Use direct bridge call instead
443         of private _selectMarkedDOMRange: method, which would now be trivial.
444         * WebView.subproj/WebHTMLViewInternal.h: Remove unneeded
445
446 2004-08-10  Darin Adler  <darin@apple.com>
447
448         Reviewed by Ken.
449
450         - change name of WebMakeCollectable to WebNSRetainCFRelease so it fits into the
451           "NS and CF retain counts are separate" mental model, rather than the "think about
452           how garbage collection works" one
453
454         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Rename.
455         * Misc.subproj/WebNSObjectExtras.h: (WebNSRetainCFRelease): Ditto.
456         * Misc.subproj/WebNSURLExtras.m:
457         (+[NSURL _web_URLWithData:relativeToURL:]): Ditto.
458         (-[NSURL _web_URLWithLowercasedScheme]): Ditto.
459
460 2004-08-09  Trey Matteson  <trey@apple.com>
461
462         3756599 - REGRESSION: hit assertion in KWQPageState invalidate
463
464         By inspection I found a flaw in the recently added logic, although
465         I have no steps to repro.  My theoretical explanation is that we would
466         get two errors and go through _receivedMainResourceError: twice, which
467         would cause the pageState to be invalidated twice, which is the only
468         way I can see to hit the assert.
469
470         Reviewed by Darin
471
472         * WebView.subproj/WebFrame.m:
473         (-[WebFrame _receivedMainResourceError:]):  Clear the pageState out
474         of the history item after it's been invalidated by WebCore.
475
476 2004-08-09  Richard Williamson   <rjw@apple.com>
477
478         Inspired by Trey we have a much better approach for conditionally
479         linking Quart.framework.  Instead of multiple targets we use 
480         `` to invoke some inline script to extend COMMON_LDFLAGS as
481         necessary.  Thanks Trey!
482         
483         Reviewed by Trey.
484
485         * WebKit.pbproj/project.pbxproj:
486
487 2004-08-09  Trey Matteson  <trey@apple.com>
488
489         Hookup UI for "Continuous Spelling" menu item.
490
491         Reviewed by Richard.
492
493         * WebView.subproj/WebView.m:
494         (-[WebView validateUserInterfaceItem:]):  Enable and check the
495         menu item to reflect our state.
496         (-[WebView toggleContinuousSpellChecking:]):  Change type to
497         IBAction, just cosmetic.
498         * WebView.subproj/WebViewPrivate.h:
499
500 2004-08-08  Trey Matteson  <trey@apple.com>
501
502         3745023 - Safari crashes trying to access anchor while downloading
503
504         I bet this is behind a few other crashers as well.  In this bug the start of the
505         download leaves a KWQPageState hanging around, and when that is freed it damages
506         the part and view.  If you're still using that page, you're dead.
507
508         The fix is to properly invalidate the PageState when we receive an error before
509         reaching WebFrameCommitted state.  Normally this happens when a page is reheated
510         from the PageState, but in this case we never manage to leave the page to begin
511         with, although we've already created the PageState.
512
513         Other errors besides the synthetic one download generates would have caused similar
514         crashing.  Another example would be clicking on a second link before the load
515         caused by clicking on the first link reached committed state.
516
517         Reviewed by Richard
518
519         * WebView.subproj/WebDataSource.m:
520         (-[WebDataSource _receivedMainResourceError:complete:]):  Let the frame do the
521         main work (since it has access to the pageCache state).  Also renamed to make
522         it clear that this is about an error for the main resource.
523         * WebView.subproj/WebDataSourcePrivate.h:
524         * WebView.subproj/WebFrame.m:
525         (-[WebFrame _receivedMainResourceError:]):  Let WC know about the failure, as
526         the DataSource used to, but now pass the pageCache state along too.
527         * WebView.subproj/WebFramePrivate.h:
528         * WebView.subproj/WebMainResourceClient.m:
529         (-[WebMainResourceClient receivedError:]):  Call renamed method.
530         (-[WebMainResourceClient cancelWithError:]):  Ditto.
531
532 2004-08-08  Vicki Murley  <vicki@apple.com>
533
534         Reviewed by vicki (changes by rjw)
535  
536         - make "weak" linking with Quartz work with buildit
537
538         * WebKit.pbproj/project.pbxproj: 
539
540 2004-08-06  Ken Kocienda  <kocienda@apple.com>
541
542         Reviewed by Maciej
543
544         Finish off spellchecking support to HTML editing. Includes work to
545         enable continuous spellchecking.
546
547         * WebCoreSupport.subproj/WebBridge.m:
548         (-[WebBridge isContinuousSpellCheckingEnabled]): Simple bridge method.
549         * WebCoreSupport.subproj/WebTextRenderer.m:
550         (-[WebTextRenderer drawLineForMisspelling:withWidth:]): New method to add
551         AppKit-style misspelling underline.
552
553 === Safari-155 ===
554
555 2004-08-05  Darin Adler  <darin@apple.com>
556
557         * WebView.subproj/WebHTMLView.m: Added a list of methods that NSTextView implements that we don't.
558         All inside #if 0.
559
560 2004-08-05  Chris Blumenberg  <cblu@apple.com>
561
562         Fixed unnecessary import of NSURLFileTypeMappings.
563
564         * WebView.subproj/WebMainResourceClient.m:
565
566 2004-08-05  Richard Williamson   <rjw@apple.com>
567
568         Make builds conditionally include -framework Quartz.
569                 
570         Reviewed by Chris.
571
572         * WebKit.pbproj/project.pbxproj:
573
574 2004-08-04  Darin Adler  <darin@apple.com>
575
576         - fixed broken Deployment build
577
578         * Carbon.subproj/HIWebView.m: (Click):
579         Remove code that checks err variable before setting it.
580
581 2004-08-03  Richard Williamson   <rjw@apple.com>
582
583         First cut at dirt simple PDF support.  This feature
584         depends on Quartz.framework (parent of PDFKit), which only exists
585         on Tiger.  So, we "weak" link against Quartz.
586                 
587         We do very basic PDF rendering.  Coming up are support for
588         "Find..." and linearized PDF (incremental).  Linearized PDF 
589         support will require API changes in PDFKit.
590                 
591         No UI is added to Safari, yet.
592                 
593         Reviewed by John.
594
595         * WebKit.pbproj/project.pbxproj:
596         * WebView.subproj/WebDataSource.m:
597         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
598         * WebView.subproj/WebFrameView.m:
599         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
600         * WebView.subproj/WebPDFRepresentation.h: Added.
601         * WebView.subproj/WebPDFRepresentation.m: Added.
602         (-[WebPDFRepresentation finishedLoadingWithDataSource:]):
603         (-[WebPDFRepresentation canProvideDocumentSource]):
604         (-[WebPDFRepresentation documentSource]):
605         (-[WebPDFRepresentation title]):
606         * WebView.subproj/WebPDFView.h: Added.
607         * WebView.subproj/WebPDFView.m: Added.
608         (-[WebPDFView initWithFrame:]):
609         (-[WebPDFView setDataSource:]):
610         (-[WebPDFView dataSourceUpdated:]):
611         (-[WebPDFView setNeedsLayout:]):
612         (-[WebPDFView layout]):
613         (-[WebPDFView viewWillMoveToHostWindow:]):
614         (-[WebPDFView viewDidMoveToHostWindow]):
615
616         Copied fix from Jaguar carbon/cocoa work.
617                 
618         Reviewed by Darin (Jaguar version)
619
620         * Carbon.subproj/CarbonWindowAdapter.h:
621         * Carbon.subproj/CarbonWindowAdapter.m:
622         (-[CarbonWindowAdapter relinquishFocus]):
623         * Carbon.subproj/HIWebView.m:
624         (Click):
625         (OwningWindowChanged):
626         (WindowHandler):
627
628 2004-08-03  David Hyatt  <hyatt@apple.com>
629
630         Add the text/xsl MIME type as one that can be displayed.
631         
632         Reviewed by john
633
634         * WebView.subproj/WebDataSource.m:
635         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
636         * WebView.subproj/WebFrameView.m:
637         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
638
639 2004-08-03  Maciej Stachowiak  <mjs@apple.com>
640
641         Reviewed by Ken.
642
643         - implemented enough of the NSTextInput protocol and added the
644         proper calls to NSInputManager to allow input methods to
645         work. However, the text is not marked yet.
646
647         * WebView.subproj/WebHTMLViewInternal.h: Added new fields to track
648         marked range.
649         * WebView.subproj/WebHTMLView.m:
650         (-[WebHTMLView markedRange]): Implemented
651         (-[WebHTMLView conversationIdentifier]): Implemented
652         (-[WebHTMLView hasMarkedText]): Implemented
653         (-[WebHTMLView unmarkText]): Implemented
654         (-[WebHTMLView setMarkedText:selectedRange:]): Implemented - does
655         not yet handle attributes in attributed strings
656         (-[WebHTMLView insertText:]): Modified to handle replacing or abandoning
657         the marked text when set.
658         (-[WebHTMLView _selectMarkedText]): new helper method, self-explanatory
659         (-[WebHTMLView _setMarkedDOMRange:]): hitto.
660         (-[WebHTMLView _selectRangeInMarkedText:]): ditto
661         (-[WebHTMLView _discardMarkedText]): ditto
662         (-[WebHTMLView _selectionIsInsideMarkedText]): ditto
663         (-[WebHTMLView _updateSelectionForInputManager]): ditto
664
665         - did a bit of refactoring while I was in here.
666
667         * WebView.subproj/WebHTMLView.m:
668         (-[WebHTMLView _shouldReplaceSelectionWithText:givenAction:]): added this new
669         helper method to simplify the common case of calling the shouldInsertText: delegate
670         (-[WebHTMLView pasteAsPlainText:]): use it
671         (-[WebHTMLView insertTab:]): ditto
672         (-[WebHTMLView insertNewline:]): ditto
673         (-[WebHTMLView _changeWordCaseWithSelector:]): ditto
674         (-[WebHTMLView _changeSpellingToWord:]): ditto
675         (-[WebHTMLView _selectionChanged]): ditto
676
677 2004-08-03  Chris Blumenberg  <cblu@apple.com>
678
679         Fixed: <rdar://problem/3572737> Images not resizing at www.bmx-test.com (spoof nofix)
680
681         Reviewed by darin.
682
683         * WebCoreSupport.subproj/WebImageRendererFactory.m:
684         (-[WebImageRendererFactory supportedMIMETypes]): hard code image/pjpeg to the list of image mime types that we can handle
685
686 2004-08-03  Darin Adler  <darin@apple.com>
687
688         Reviewed by Ken.
689
690         - fixed <rdar://problem/3740937> ER: A way to turn a DOMRange into text (equivalent of -innerText)
691
692         * DOM.subproj/DOMPrivate.h: Added.
693         * WebKit.pbproj/project.pbxproj: Added DOMPrivate.h.
694         * copy-webcore-files-to-webkit: Added DOMPrivate.h.
695
696 2004-08-02  John Sullivan  <sullivan@apple.com>
697
698         Reviewed by Darin.
699
700         WebKit part of fix for <rdar://problem/3631868> NSToolbar adoption: 
701         Tab key should cycle around toolbar and page content
702
703         * WebView.subproj/WebHTMLView.m:
704         removed overrides of nextKeyView and previousKeyView
705         (-[WebHTMLView nextValidKeyView]):
706         call super only if we can't move the focus within the frame hierarchy
707         (-[WebHTMLView previousValidKeyView]):
708         ditto
709         * WebView.subproj/WebHTMLViewInternal.h:
710         removed nextKeyViewAccessShouldMoveFocus ivar
711
712 2004-08-02  Ken Kocienda  <kocienda@apple.com>
713
714         Reviewed by John
715
716         Update name of firstResponderIsSelfOrDescendantView, adding _web_ prefix to this SPI call.
717         
718         Do some work to make caret blinking in newly-created editable WebView's that are 
719         similar in structure to Blot more "automatic".
720
721         * Misc.subproj/WebNSViewExtras.h: Change name of firstResponderIsSelfOrDescendantView. Add _web_ prefix.
722         * Misc.subproj/WebNSViewExtras.m:
723         (-[NSView _web_firstResponderIsSelfOrDescendantView]): Name change.
724         (-[NSView _web_firstResponderCausesFocusDisplay]): Adds an additional check for whether the view's
725         is first responder. This helps to make the focus setting in viewDidMoveToWindow work right.
726         * WebView.subproj/WebHTMLView.m:
727         (-[WebHTMLView updateFocusDisplay]): Use _web_firstResponderCausesFocusDisplay now instead of 
728         firstResponderIsSelfOrDescendantView.
729         (-[WebHTMLView viewDidMoveToWindow]): Schedule call to updateFocusDisplay for the next crank of the
730         run loop. The reason is that placing the caret in the just-installed view requires the HTML/XML 
731         document to be available on the WebCore side, but it is not at the time this code is running. 
732         However, it will be there on the next crank of the run loop. Doing this helps to make a 
733         blinking caret appear in a new, empty window "automatic".
734         (-[WebHTMLView performKeyEquivalent:]):  _web_firstResponderIsSelfOrDescendantView name change.
735         * WebView.subproj/WebView.m:
736         (-[WebView _performResponderOperation:with:]): _web_firstResponderIsSelfOrDescendantView name change.
737
738 2004-07-29  Maciej Stachowiak  <mjs@apple.com>
739
740         Reviewed by John.
741
742         Added stubbed-out versions of all the NSTextInput protocol
743         methods, and put comments in places where we will need to call the
744         input manager to make input methods work 100%.
745         
746         * WebCoreSupport.subproj/WebBridge.m:
747         (-[WebBridge respondToChangedSelection]):
748         * WebView.subproj/WebHTMLView.m:
749         (-[WebHTMLView mouseDown:]):
750         (-[WebHTMLView mouseDragged:]):
751         (-[WebHTMLView mouseUp:]):
752         (-[WebHTMLView _interceptEditingKeyEvent:]):
753         (-[WebHTMLView keyDown:]):
754         (-[WebHTMLView _selectionChanged]):
755         (-[WebHTMLView _delegateDragSourceActionMask]):
756         (-[WebHTMLView validAttributesForMarkedText]):
757         (-[WebHTMLView characterIndexForPoint:]):
758         (-[WebHTMLView firstRectForCharacterRange:]):
759         (-[WebHTMLView selectedRange]):
760         (-[WebHTMLView markedRange]):
761         (-[WebHTMLView attributedSubstringFromRange:]):
762         (-[WebHTMLView conversationIdentifier]):
763         (-[WebHTMLView hasMarkedText]):
764         (-[WebHTMLView unmarkText]):
765         (-[WebHTMLView setMarkedText:selectedRange:]):
766         (-[WebHTMLView doCommandBySelector:]):
767         (-[WebHTMLView insertText:]):
768         * WebView.subproj/WebHTMLViewInternal.h:
769         * WebView.subproj/WebView.m:
770
771 === Safari-154 ===
772
773 2004-07-29  Darin Adler  <darin@apple.com>
774
775         Reviewed by Ken.
776
777         - fill in some unimplemented methods
778
779         * WebView.subproj/WebHTMLView.m:
780         (-[WebHTMLView moveToBeginningOfDocument:]): Implement, using new document granularity.
781         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]): Ditto.
782         (-[WebHTMLView moveToBeginningOfParagraph:]): Implement, even though the underlying WebCore
783         code is not yet implemented.
784         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]): Ditto.
785         (-[WebHTMLView moveToEndOfDocument:]): More of the same.
786         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]): Ditto.
787         (-[WebHTMLView moveToEndOfParagraph:]): More of the same.
788         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]): Ditto.
789         (-[WebHTMLView pageDown:]): Added comment describing desired behavior.
790         (-[WebHTMLView pageUp:]): Ditto.
791         (-[WebHTMLView copyFont:]): Ditto.
792         (-[WebHTMLView pasteFont:]): Ditto.
793         (-[WebHTMLView changeAttributes:]): Ditto.
794         (-[WebHTMLView indent:]): Ditto.
795
796 2004-07-28  Chris Blumenberg  <cblu@apple.com>
797
798         Fixed: <rdar://problem/3737864> Can not download image from web by using drag and drop
799
800         Reviewed by john.
801
802         * Misc.subproj/WebNSPasteboardExtras.m:
803         (-[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
804
805 2004-07-28  Maciej Stachowiak  <mjs@apple.com>
806
807         Reviewed by John.
808
809         - avoid triggering an assertion when using dead keys (like option-e)
810
811         * WebView.subproj/WebHTMLView.m:
812         (-[WebHTMLView insertText:]): Don't pass zero-length strings to
813         WebCore. Dead-key input seems to insert empty strings as a side
814         effect.
815
816 2004-07-28  Trey Matteson  <trey@apple.com>
817
818         Spellchecking, Part I.  Basic spellcheck is working.  Spelling panel is hooked up.
819
820         At this point, no special marking of misspellings, no grammar check, no context
821         menu integration, no "check continually" mode.
822
823         Reviewed by Ken.
824
825         * WebCoreSupport.subproj/WebBridge.m:
826         (-[WebBridge spellCheckerDocumentTag]):  Typical bridge glue.
827         * WebView.subproj/WebHTMLView.m:
828         (-[WebHTMLView validateUserInterfaceItem:]):  Validate various spelling actions.
829         (-[WebHTMLView checkSpelling:]):  Call WC for real work, update panel.
830         (-[WebHTMLView showGuessPanel:]):  Show panel, call WC for real work.
831         (-[WebHTMLView _changeSpellingToWord:]):  Apply correction to our doc.
832         (-[WebHTMLView changeSpelling:]):  Simple pass through to above method.
833         (-[WebHTMLView ignoreSpelling:]):  Tell checker to ignore the word.
834         * WebView.subproj/WebView.m:
835         (-[WebView _close]):  Call AK's closeSpellDocumentWithTag: for proper cleanup.
836
837 2004-07-27  John Sullivan  <sullivan@apple.com>
838
839         Reviewed by Trey.
840         
841         WebKit part of fix for <rdar://problem/3622268> Reload failed pages when a 
842         network problem is corrected, inc. using Network Diagnostics
843
844         * WebView.subproj/WebFrame.m:
845         (-[WebFrame reload]):
846         This method did not handle unreachableURLs at all. The reason Safari's Reload
847         did work with unreachableURLs was that Safari does "reloadObeyingLocationField"
848         which never actually calls -[WebFrame reload]. Fixed by creating a fresh
849         request for the previously-unreachable URL.
850
851 2004-07-26  Richard Williamson   <rjw@apple.com>
852
853         Fixed 3739737.  When setting the focus to a NSView, set the focus
854         carbon focus to kControlIndicatorPart.  kControlIndicatorPart is a
855         placeholder value for use to indicate that Cocoa has the focus.  
856         
857         Reviewed by Ken.
858
859         * Carbon.subproj/CarbonWindowAdapter.m:
860         (-[CarbonWindowAdapter makeFirstResponder:]):
861         * Carbon.subproj/HIWebView.m:
862         (Click):
863         (SetFocusPart):
864
865 2004-07-26  Chris Blumenberg  <cblu@apple.com>
866
867         Fixed: <rdar://problem/3689734> dragging to an editable WebView does not scroll document
868
869         Reviewed by rjw.
870
871         * WebView.subproj/WebView.m:
872         (-[WebView documentViewAtWindowPoint:]): new, factored from draggingDocumentViewAtWindowPoint:
873         (-[WebView _draggingDocumentViewAtWindowPoint:]): call documentViewAtWindowPoint:
874         (-[WebView _autoscrollForDraggingInfo:timeDelta:]): forward call to the document view
875         (-[WebView _shouldAutoscrollForDraggingInfo:]): ditto
876
877 === Safari-153 ===
878
879 2004-07-23  Ken Kocienda  <kocienda@apple.com>
880
881         Reviewed by Trey
882
883         Fix for this bug:
884         
885         <rdar://problem/3738920> Caret blinks in inactive window
886
887         As part of the fix, I cleaned up the way we handle special drawing that needs
888         to be done in the HTML view that is first responder in the key window (e.g the
889         drawing of text selection highlight and caret blinking).
890
891         * WebView.subproj/WebHTMLView.m:
892         (-[WebHTMLView updateFocusDisplay]): New method that centralizes the changes
893         we need to make when the first responder-ness of the view or key-ness of the
894         window changes.
895         (-[WebHTMLView viewDidMoveToWindow]): Call new updateFocusDisplay helper.
896         (-[WebHTMLView windowDidBecomeKey:]): Ditto.
897         (-[WebHTMLView windowDidResignKey:]): Ditto.
898         (-[WebHTMLView becomeFirstResponder]): Ditto.
899         (-[WebHTMLView resignFirstResponder]): Ditto.
900
901 2004-07-22  Darin Adler  <darin@apple.com>
902
903         * Plugins.subproj/npruntime.h: Update with new version from newer JavaScriptCore.
904
905 2004-07-21  Ken Kocienda  <kocienda@apple.com>
906
907         Reviewed by Trey
908
909         * WebCoreSupport.subproj/WebBridge.m: Remove interceptEditingKeyEvent
910         bridge call over. This method of handling editing key events is now
911         obsolete.
912         * WebView.subproj/WebHTMLView.m:
913         (-[WebHTMLView performKeyEquivalent:]): Send key event over to the 
914         DOM if this view is or contains the first responder. This now
915         happens unconditionally.
916         (-[WebHTMLView keyDown:]): Send key event to the DOM, then see if
917         the web view wants to interpret it an an editing key event. This
918         is the new place to intercept key events for editing.
919
920 2004-07-21  Ken Kocienda  <kocienda@apple.com>
921
922         Reviewed by John
923
924         Add implementations for these methods. Formerly, they logged an error.
925
926         * WebView.subproj/WebHTMLView.m:
927         (-[WebHTMLView moveToBeginningOfLine:]):
928         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]):
929         (-[WebHTMLView moveToEndOfLine:]):
930         (-[WebHTMLView moveToEndOfLineAndModifySelection:]):
931
932 2004-07-21  Ken Kocienda  <kocienda@apple.com>
933
934         Reviewed by John
935
936         Added some more handlers for standard Cocoa key bindings. 
937         These are "secrets" of NSText, meaning they are not public API, but we choose to mimic.
938
939         * WebView.subproj/WebHTMLView.m:
940         (-[WebHTMLView moveToBeginningOfDocumentAndModifySelection:]):
941         (-[WebHTMLView moveToBeginningOfLineAndModifySelection:]):
942         (-[WebHTMLView moveToBeginningOfParagraphAndModifySelection:]):
943         (-[WebHTMLView moveToEndOfDocumentAndModifySelection:]):
944         (-[WebHTMLView moveToEndOfLineAndModifySelection:]):
945         (-[WebHTMLView moveToEndOfParagraph:]):
946         (-[WebHTMLView moveToEndOfParagraphAndModifySelection:]):
947         * WebView.subproj/WebView.h: Add these declarations to the comment in the header listing
948         the responder-like methods we support.
949         * WebView.subproj/WebView.m:
950         (-[WebView moveToBeginningOfParagraphAndModifySelection:]):
951         (-[WebView moveToEndOfParagraphAndModifySelection:]):
952         (-[WebView moveToBeginningOfLineAndModifySelection:]):
953         (-[WebView moveToEndOfLineAndModifySelection:]):
954         (-[WebView moveToBeginningOfDocumentAndModifySelection:]):
955         (-[WebView moveToEndOfDocumentAndModifySelection:]):
956
957 2004-07-20  Ken Kocienda  <kocienda@apple.com>
958
959         Reviewed by Richard
960
961         * Misc.subproj/WebNSEventExtras.h: Added helper that returns whether
962         a key event has a binding in the key binding manager.
963         * Misc.subproj/WebNSEventExtras.m: 
964         (-[NSEvent _web_keyBindingManagerHasBinding]): New helper mentioned above.
965         * Plugins.subproj/npruntime.h:
966         * WebView.subproj/WebHTMLView.m:
967         (-[WebHTMLView performKeyEquivalent:]): Add a check of whether the key event 
968         has a binding in the key binding manager. This works around the fact that
969         NSResponder's interpretKeyEvents does not return a value telling whether
970         or not the key was handled. This now makes it possible for us to trap
971         modified key events we know we can handle (like those command-key + arrow events 
972         used for text navigation), while letting all others pass.
973
974 2004-07-20  Chris Blumenberg  <cblu@apple.com>
975
976         Fixed:
977         <rdar://problem/3580589> REGRESSION (1.1-1.2): can't open a new window for an image that has not loaded
978         <rdar://problem/3612691> Missing image icons (blue ?) lack context menu
979
980         Reviewed by john.
981
982         * WebView.subproj/WebDefaultContextMenuDelegate.m:
983         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]): if there is no image, but there is an image URL, provide image context menu items besides "Copy Image" 
984         * WebView.subproj/WebHTMLView.m:
985         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): don't drag an image with an actual image
986         (-[WebHTMLView _mayStartDragAtEventLocation:]): ditto
987
988 2004-07-20  Maciej Stachowiak  <mjs@apple.com>
989
990         Reviewed by Chris.
991
992         <rdar://problem/3721690> REGRESSION (125.7-148u) clicking on links at macosx.apple.com/Builds does not load new page in frame
993         
994         * Plugins.subproj/npruntime.h:
995         * WebCoreSupport.subproj/WebBridge.m:
996         (-[WebBridge canTargetLoadInFrame:]): Don't apply the restrictions to frames
997         that are in the same window (Mozilla does this too).
998
999 2004-07-20  Richard Williamson   <rjw@apple.com>
1000
1001                 Fix for 3728558.  Fixed the key event handling in the carbon/cocoa
1002                 integration code.  This does not fix the arrow keys not working on
1003                 initial focus problem also mentioned in the bug.
1004                 
1005                 Bumped the version of the NP function structures.
1006                 
1007         Reviewed by John.
1008
1009         * Carbon.subproj/CarbonUtils.m:
1010         (WebInitForCarbon):
1011         (PoolCleaner):
1012         * Carbon.subproj/HIWebView.m:
1013         (OwningWindowChanged):
1014         (WindowHandler):
1015         * Plugins.subproj/npapi.h:
1016
1017 2004-07-20  Trey Matteson  <trey@apple.com>
1018
1019         3733698 REGRESSION: sometimes dragging photos on homepage.mac.com leads to an assertion
1020
1021         Relax an assertion, as we ran into a valid case where it's not true.
1022
1023         Reviewed by Chris.
1024
1025         * WebView.subproj/WebHTMLView.m:
1026         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1027         Removing this assert allows for the oddball case of a drag gesture that
1028         starts on one element, but then the element is no longer there when
1029         the drag is about to start.
1030
1031 2004-07-20  Ken Kocienda  <kocienda@apple.com>
1032
1033         Reviewed by Hyatt
1034
1035         Fix for this bug:
1036         
1037         <rdar://problem/3707505> HTMLCompose: blinking cursor in both an address text field and the message body
1038
1039         * WebView.subproj/WebHTMLView.m:
1040         (-[WebHTMLView setCaretVisible:]): New helper. Calls over bridge to do the work.
1041         (-[WebHTMLView windowDidBecomeKey:]): This function cannot just assume that self is first responder
1042         (and do things like adjusting text background color and restoring focus rings). 
1043         First-responder-ness needs to be checked first. Now it is.
1044         (-[WebHTMLView windowDidResignKey:]): Ditto.
1045         (-[WebHTMLView becomeFirstResponder]): Call new helper to make caret visible.
1046         (-[WebHTMLView resignFirstResponder]): Call new helper to make caret invisible.
1047
1048 2004-07-12  Richard Williamson   <rjw@apple.com>
1049
1050         Fixed 3721917.  The RealPlayer plugin doesn't support the new 
1051         NPPVpluginScriptableNPObject variable passed to NPP_GetValue and
1052         incorrectly returns NPERR_NO_ERROR.  We interpret this to the
1053         mean the variable has been set.  The variable has not been set 
1054         and will consequently be uninitialized.
1055
1056         Reviewed by NOBODY (OOPS!).
1057
1058         * Plugins.subproj/WebBaseNetscapePluginView.m:
1059         (-[WebBaseNetscapePluginView pluginScriptableObject]):
1060
1061 2004-07-19  Ken Kocienda  <kocienda@apple.com>
1062
1063         Reviewed by Richard
1064
1065         Fix for this bug:
1066         
1067         <rdar://problem/3707504> HTMLCompose: key events are stolen by Web(HTML)View
1068
1069         * Misc.subproj/WebNSViewExtras.h:
1070         * Misc.subproj/WebNSViewExtras.m:
1071         (-[NSView firstResponderIsSelfOrDescendantView]): New helper to 
1072         (-[WebHTMLView performKeyEquivalent:]): Do not pass key events through to the editing
1073         key handler unless the WebHTMLView is first responder or contains the first responder.
1074         This prevents the "stealing" of key events mentioned in the bug.
1075         * WebView.subproj/WebView.m:
1076         (-[WebView _performResponderOperation:with:]): Uses the new firstResponderIsSelfOrDescendantView
1077         helper. The code I replaced used the same logic as the new helper.
1078
1079 === Safari-152 ===
1080
1081 2004-07-12  Maciej Stachowiak  <mjs@apple.com>
1082
1083         Reviewed by Kevin.
1084
1085         <rdar://problem/3673988>: (REGRESSION(141-144): connection assertion failure at http://traffic.511.org/sfgate)
1086         
1087         * WebView.subproj/WebBaseResourceHandleDelegate.m:
1088         (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]):
1089         Don't check connection consistency if this load got cancelled
1090         while finishing, because in this case we have cleared the
1091         connection field already. This can happen when a redirect fires
1092         from an onload handler.
1093
1094 2004-07-12  Maciej Stachowiak  <mjs@apple.com>
1095
1096         Reviewed by John.
1097
1098         <rdar://problem/3632570>: (REGRESSION: SocialText.net wiki keeps asking for auth, even though pages load)
1099
1100         * Misc.subproj/WebIconLoader.m:
1101         (-[WebIconLoader didReceiveAuthenticationChallenge:]): Ignore the challenge - we don't
1102         want an auth panel for favicons.
1103         (-[WebIconLoader didCancelAuthenticationChallenge:]): Ignore cancel, since we are ignoring
1104         the challenge.
1105
1106 2004-07-09  Chris Blumenberg  <cblu@apple.com>
1107         
1108         Allowed my change for 3715785 to compile on Jaguar.
1109
1110         Reviewed by kocienda.
1111
1112         * WebCoreSupport.subproj/WebBridge.m:
1113         (-[WebBridge canTargetLoadInFrame:]): don't use the DOM API since it doesn't exist on Jaguar, instead call the new domain method on the bridge
1114
1115 2004-07-09  Ken Kocienda  <kocienda@apple.com>
1116
1117         Reviewed by John
1118
1119         * Plugins.subproj/npruntime.h: Updated license to lawyer-approved 
1120         joint Apple-Mozilla BSD-style license.
1121
1122 2004-07-08  Chris Blumenberg  <cblu@apple.com>
1123
1124         Fixed: <rdar://problem/3720728> REGRESSION (125.8-146): Crash moving mouse over plugin at manray-photo.com
1125         
1126         Reviewed by john.
1127
1128         * Plugins.subproj/WebBaseNetscapePluginView.m:
1129         (-[WebBaseNetscapePluginView pluginScriptableObject]): don't call NPP_GetValue unless the plug-in implements it
1130
1131 2004-07-08  Chris Blumenberg  <cblu@apple.com>
1132
1133         Fixed: <rdar://problem/3706296> VIP: ifilm.com crashing reproducibly with Safari
1134
1135         Reviewed by kocienda.
1136
1137         * Plugins.subproj/WebNetscapePluginPackage.m:
1138         (-[WebNetscapePluginPackage launchRealPlayer]): don't release a NULL appURL
1139
1140 2004-07-08  Chris Blumenberg  <cblu@apple.com>
1141
1142         Fixed: <rdar://problem/3650140> reproducible assertion failure going to plugin page with JavaScript disabled
1143
1144         Reviewed by john.
1145
1146         * Plugins.subproj/WebBaseNetscapePluginView.m:
1147         (-[WebBaseNetscapePluginView evaluateJavaScriptPluginRequest:]): don't call NPP_NewStream and other stream methods if there is no JS result to deliver. This is what Mozilla does.
1148         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Return NPERR_GENERIC_ERROR if JS is disabled. This is what Mozilla does.
1149
1150 === Safari-151 ===
1151
1152 2004-07-07  Trey Matteson  <trey@apple.com>
1153
1154         3719051 - Safari doesn't update form inputs when a page was refreshed by javascript window.location
1155         ... and at least 5 other cases in Radar
1156
1157         Very similar problem to the Harvard PIN bug.  We need to be sure
1158         to not carry any state over when we are processing a client
1159         redirect, which reuses the same WebHistoryItem.
1160
1161         Reviewed by John.
1162
1163         * WebView.subproj/WebFrame.m:
1164         (-[WebFrame _transitionToCommitted:]):  Comment
1165         (-[WebFrame _opened]):  Clear form and scroll state on client redirect.
1166
1167 2004-07-06  Chris Blumenberg  <cblu@apple.com>
1168
1169         Fixed: <rdar://problem/3715785> multiple frame injection vulnerability reported by Secunia, affects almost all browsers
1170         
1171         Reviewed by john, trey, kocienda.
1172
1173         * WebCoreSupport.subproj/WebBridge.m:
1174         (-[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
1175         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): call canTargetLoadInFrame: to make sure we can load the request
1176         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto
1177
1178 2004-07-06  John Sullivan  <sullivan@apple.com>
1179
1180         Reviewed by Trey.
1181
1182         - fixed <rdar://problem/3717147> folder icon used for error page in back/forward 
1183         menu when iTunes is not installed
1184
1185         * WebView.subproj/WebFrame.m:
1186         (-[WebFrame _transitionToCommitted:]):
1187         When displaying the error page for an unreachable URL, leave the requested URL
1188         in the WebHistoryItem; don't clobber it with a bogus one that represents the
1189         error page. This not only avoids the wrong-icon problem, but should also help
1190         in cases where an unreachable URL becomes reachable later on.
1191
1192 2004-07-06  Trey Matteson  <trey@apple.com>
1193
1194         3716053 - www.theage.com.au has extra back/forward items due to ads
1195
1196         The real change was in WebKit.  Here was are just renaming a method and folding
1197         all the WebFrameLoadTypeOnLoadEvent uses to be WebFrameLoadTypeInternal, since there
1198         was never any difference anyway.
1199
1200         Reviewed by Richard
1201
1202         * WebCoreSupport.subproj/WebBridge.m:
1203         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]):  rename part of the method.
1204         * WebView.subproj/WebFrame.m:  Nuke WebFrameLoadTypeOnLoadEvent.
1205         (-[WebFrame _transitionToCommitted:]):
1206         (-[WebFrame _checkLoadCompleteForThisFrame]):
1207         (-[WebFrame _loadItem:withLoadType:]):
1208         (-[WebFrame _itemForRestoringDocState]):
1209         * WebView.subproj/WebFramePrivate.h:
1210
1211 2004-07-06  Ken Kocienda  <kocienda@apple.com>
1212
1213         Reviewed by Trey
1214         
1215         Only register the editing delegate for those notifications for which it implements the callbacks.
1216
1217         * WebView.subproj/WebView.m:
1218         (-[WebView registerForEditingDelegateNotification:selector:]):
1219         (-[WebView setEditingDelegate:]):
1220
1221 2004-07-06  Trey Matteson  <trey@apple.com>
1222
1223         3294652 - Failed drag of links doesn't slide back
1224
1225         The only reason for this is that because of some hacks, we lie to
1226         AK about the drag image offset, which means we slide back to
1227         slightly the wrong place.  But it's very minor, so we should
1228         just fix it.
1229
1230         Reviewed by Ken.
1231
1232         * WebView.subproj/WebHTMLView.m:
1233         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1234         Ask for slideback.
1235
1236 2004-07-02  Darin Adler  <darin@apple.com>
1237
1238         Reviewed by Dave.
1239
1240         - fixed problem where tabsToLinks and privateBrowsingEnabled did not work with non-
1241           standard WebPreferences objects
1242
1243         * WebView.subproj/WebPreferences.m:
1244         (-[WebPreferences _valueForKey:]): New helper.
1245         (-[WebPreferences _stringValueForKey:]): Use _valueForKey.
1246         (-[WebPreferences _integerValueForKey:]): Use _valueForKey.
1247         (-[WebPreferences _boolValueForKey:]): Use _valueForKey.
1248         (-[WebPreferences tabsToLinks]): Use _boolValueForKey; this is the bug fix.
1249         (-[WebPreferences privateBrowsingEnabled]): Ditto.
1250         (+[WebPreferences _setIBCreatorID:]): Use copy instead of retain for keeping an NSString.
1251
1252 2004-07-01  Trey Matteson  <trey@apple.com>
1253
1254         3556159 - Crashes in -[WebFrame(WebPrivate) _transitionToCommitted:] at www.mastercardbusiness.com
1255
1256         We know from the line number of the crash that it is due to [self parentFrame]==nil.
1257
1258         Looking at the HTML and that of the related bugs, they do special stuff with onload
1259         handlers.  It is no longer repro, presumably because the includes JS files changed,
1260         as the bugs only included the top level HTML.  I suspect that the problem is that the
1261         WebFrameLoadTypeOnLoadEvent case was added, and in some weird sequence specific to
1262         MasterCard, they hit a case where we would be in WebFrameLoadTypeOnLoadEvent mode but
1263         not have a parent frame.
1264
1265         So we guard in the code against hitting a nil parentFrame, and log an error just in
1266         case this ever crops up again and we can learn more about it.
1267
1268         Reviewed by Richard.
1269
1270         * WebView.subproj/WebFrame.m:
1271         (-[WebFrame _transitionToCommitted:]):  Guard against nil parentFrame.
1272
1273 2004-07-01  John Sullivan  <sullivan@apple.com>
1274
1275         Reviewed by Trey.
1276         
1277         - fixed these bugs:
1278         <rdar://problem/3709110> REGRESSION (Tiger): Pressing Tab key to move focus 
1279         onto links skips every other link
1280         <rdar://problem/3692576> focus ring is in odd place after clicking RSS button 
1281         with "Tab to links" enabled
1282         
1283         WebHTMLView has some trickery by which we advance the focused link when nextKeyView
1284         or previousKeyView is called within nextValidKeyView or previousValidKeyView. This
1285         broke in Tiger because AppKit now (sometimes at least) calls nextKeyView more than
1286         once within nextValidKeyView. Fixed 3709110 by making sure we only advance the focus 
1287         once within a call to nextValidKeyView or previousValidKeyView.
1288         
1289         Also, this same trickery didn't work right with hidden views. Fixed 3692576 by checking
1290         whether the view is hidden and bypassing the focus-moving trickery in that case.
1291
1292         * WebView.subproj/WebHTMLViewInternal.h:
1293         renamed inNextValidKeyView -> nextKeyViewAccessShouldMoveFocus
1294         
1295         * WebView.subproj/WebHTMLView.m:
1296         (-[WebHTMLView nextKeyView]):
1297         now clears nextKeyViewAccessShouldMoveFocus
1298         (-[WebHTMLView previousKeyView]):
1299         ditto
1300         (-[WebHTMLView nextValidKeyView]):
1301         now doesn't set focus-moving trigger ivar if view is hidden or has hidden ancestor
1302         (-[WebHTMLView previousValidKeyView]):
1303         ditto
1304
1305 2004-06-30  Trey Matteson  <trey@apple.com>
1306
1307         Dragging within a web view should be allowed to start when the window isn't key.
1308
1309         A few months ago, Chris made this work, but it relied on the fact that all dragging
1310         was done in WebKit.  When WebCore got involved in dragging, it was broken.  Now we
1311         have a new scheme that gets it working again that properly involves WebCore.
1312
1313         The general idea is that when AK asks us whether to accept the first mouse and do
1314         "delayed window ordering", we must consult WC to see if we might start a drag.  In
1315         addition, instead of these drags in non-active windows being started as a special
1316         case in WK, they go through the normal WK-WC drag machinery.  Finally to work in
1317         frames we have to drill to the deepest hit view in acceptsFirstMouse, because previous
1318         hacks to hitTest make the top-most WebHTMLView field all events for its view tree
1319         (which leads to it fielding all acceptFirstMouse messages too).
1320
1321         Reviewed by John.
1322
1323         * WebCoreSupport.subproj/WebBridge.m:
1324         (-[WebBridge mayStartDragAtEventLocation:]):  Glue change for new arg type.
1325         * WebView.subproj/WebHTMLView.m:
1326         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1327         firstMouseDownEvent ivar is no longer needed.
1328         (-[WebHTMLView _mayStartDragAtEventLocation:]):  Receives a location instead of a drag
1329         event, since we need to do this work when we have no drag event.  This means the
1330         check of the delay for text dragging is moved down to WebCore.
1331         (-[WebHTMLView acceptsFirstMouse:]):  Respond based on whether we might do a drag.
1332         This includes drilling to the deepest view the event hits, whereas we used to only
1333         respond considering the topmost WebHTMLView.
1334         (-[WebHTMLView shouldDelayWindowOrderingForEvent:]):  Ditto.
1335         (-[WebHTMLView mouseDown:]):  Get rid of special case where some activating
1336         mouseDown events weren't sent to WC.  We need to go through the whole pipeline
1337         now to get a drag started properly.
1338         (-[WebHTMLView mouseDragged:]):  Ditto, let WC start the drag.
1339         (-[WebHTMLView mouseUp:]):  firstMouseDownEvent ivar is no longer needed.
1340         * WebView.subproj/WebHTMLViewInternal.h:
1341         * WebView.subproj/WebHTMLViewPrivate.h:
1342
1343 2004-06-25  Trey Matteson  <trey@apple.com>
1344
1345         Added new utility method.
1346
1347         Reviewed by John.
1348
1349         * WebView.subproj/WebFrame.m:
1350         (-[WebFrame _isDescendantOfFrame:]):   New code.
1351         * WebView.subproj/WebFramePrivate.h:
1352
1353 2004-06-24  Richard Williamson   <rjw@apple.com>
1354
1355                 Fixed <rdar://problem/3710313>: CGContext not zeroed when WebImageRenderer is copied
1356                 The context ivar of WebImageRenderer wasn't being nil when the object was copied.
1357
1358         Reviewed by Darin.
1359
1360         * WebCoreSupport.subproj/WebImageRenderer.m:
1361         (-[WebImageRenderer copyWithZone:]):
1362         (-[WebImageRenderer dealloc]):
1363         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
1364
1365 2004-06-24  Trey Matteson  <trey@apple.com>
1366
1367         3672725 - Assertion failure in URLCompletion code with particular set of bookmarks
1368
1369         Problem was caused by a URL with unescaped unicodes getting into
1370         the Bookmarks file, presumably from import from IE.  We now test
1371         for this case and convert the data on the way in as if it were
1372         user-entered.
1373
1374         Reviewed by John and Darin.
1375
1376         * History.subproj/WebHistoryItem.m:
1377         (-[WebHistoryItem initFromDictionaryRepresentation:]):
1378
1379 2004-06-24  Trey Matteson  <trey@apple.com>
1380
1381         3704950 drag image in DB ConfigBar has horizontal graphics turd WebCore JavaScript
1382
1383         When we generate a drag image (or a selection image too, for that matter) we
1384         translate the CTM using a CG call.  Later, WebImageRenderer adjusts the pattern
1385         phase based on the CTM of the focused view, which doesn't include our translate.
1386         So we must inform WebKit about the additional phase adjustment.
1387
1388         Reviewed by Richard
1389
1390         * WebCoreSupport.subproj/WebGraphicsBridge.h:
1391         * WebCoreSupport.subproj/WebGraphicsBridge.m:
1392         (-[WebGraphicsBridge setAdditionalPatternPhase:]):  New trivial setter.
1393         (-[WebGraphicsBridge additionalPatternPhase]):      ...and getter.
1394         * WebCoreSupport.subproj/WebImageRenderer.m:
1395         (-[WebImageRenderer tileInRect:fromPoint:context:]):  Take any additional phase
1396         adjustment into account when setting phase.
1397
1398 2004-06-24  Trey Matteson  <trey@apple.com>
1399
1400         3693420 - onbeforecut and onbeforepaste need real implementaion
1401
1402         Reviewed by Chris.
1403
1404         * WebView.subproj/WebHTMLView.m:
1405         (-[WebHTMLView validateUserInterfaceItem:]):  Check with WebCore
1406         to see if cut, copy, paste should be enabled.
1407
1408 2004-06-24  John Sullivan  <sullivan@apple.com>
1409
1410         Reviewed by Darin.
1411         
1412         - fixed <rdar://problem/3706792> 8A161: Choosing text encoding for 
1413         error page opens finder window!?
1414
1415         * WebView.subproj/WebFrame.m:
1416         (-[WebFrame _reloadAllowingStaleDataWithOverrideEncoding:]):
1417         take unreachableURL into account
1418
1419 2004-06-23  Richard Williamson   <rjw@apple.com>
1420
1421         Implemented changes for latest npruntime.h.
1422         Made npruntime.h public.
1423                 
1424         Reviewed by Chris.
1425
1426         * Plugins.subproj/WebBaseNetscapePluginView.h:
1427         * Plugins.subproj/WebBaseNetscapePluginView.m:
1428         (-[WebBaseNetscapePluginView pluginScriptableObject]):
1429         (-[WebBaseNetscapePluginView forceRedraw]):
1430         (-[WebBaseNetscapePluginView getVariable:value:]):
1431         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
1432         * Plugins.subproj/WebNetscapePluginPackage.m:
1433         (-[WebNetscapePluginPackage load]):
1434         * Plugins.subproj/npapi.h:
1435         * Plugins.subproj/npapi.m:
1436         (NPN_GetValue):
1437         * Plugins.subproj/npfunctions.h:
1438         * Plugins.subproj/npruntime.h:
1439         * WebKit.pbproj/project.pbxproj:
1440
1441 2004-06-21  Darin Adler  <darin@apple.com>
1442
1443         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
1444
1445 2004-06-21  Chris Blumenberg  <cblu@apple.com>
1446
1447         Made WebKitErrorDescriptionPlugInCancelledConnection have its own description string
1448         (Not for software update branch)
1449
1450         Reviewed by john.
1451
1452         * English.lproj/Localizable.strings:
1453         * Misc.subproj/WebKitErrors.m:
1454
1455 2004-06-21  Chris Blumenberg  <cblu@apple.com>
1456
1457         Made WebKitErrorDescriptionPlugInCancelledConnection properly reuse an already localized string to avoid loc changes.
1458
1459         Reviewed by john.
1460
1461         * ChangeLog:
1462         * Misc.subproj/WebKitErrors.m:
1463
1464 2004-06-21  Chris Blumenberg  <cblu@apple.com>
1465
1466         Fixed: <rdar://problem/3701269> change in error handling behavior from 10.3.3 to 10.3.4 breaks unreleased Adobe PDF plug-in
1467
1468         Reviewed by john.
1469
1470         * Misc.subproj/WebKitErrors.m:
1471         (registerErrors): register string for WebKitErrorPlugInCancelledConnection
1472         * Misc.subproj/WebKitErrorsPrivate.h:
1473         * Plugins.subproj/WebBaseNetscapePluginStream.h:
1474         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1475         (-[WebBaseNetscapePluginStream startStreamWithURL:expectedContentLength:lastModifiedDate:MIMEType:]): use renamed WEB_REASON_PLUGIN_CANCELLED constant
1476         (-[WebBaseNetscapePluginStream destroyStream]): ditto
1477         * Plugins.subproj/WebNetscapePluginRepresentation.m:
1478         (-[WebNetscapePluginRepresentation cancelWithReason:]): if the reason is WEB_REASON_PLUGIN_CANCELLED, cancel the load with WebKitErrorPlugInCancelledConnection
1479         * Plugins.subproj/WebNetscapePluginStream.m:
1480         (-[WebNetscapePluginStream cancelWithReason:]): ditto
1481
1482 === Safari-146 ===
1483
1484 2004-06-17  Richard Williamson   <rjw@apple.com>
1485
1486                 Changed private headers to be pubic for npapi.h and npfunctions.h.  That
1487                 API was approved but never marked as public in the project file.  This change does
1488                 not make npruntime.h public, which contains the not yet approved changes
1489                 for script-ability of netscape plugins.  Unfortunately, that API will not
1490                 be public for WWDC.
1491                                 
1492         Reviewed by Chris.
1493
1494         * WebKit.pbproj/project.pbxproj:
1495
1496 2004-06-17  Trey Matteson  <trey@apple.com>
1497
1498         3698514 - coordinates in ondragstart and ondrag events are wrong
1499
1500         This part fixes the ondrag coords.  I thought Cocoa passed us the mouse location
1501         in draggedImage:movedTo:, but no, it's the position of the dragged image.
1502         WebCore needs the mouse location, so to calc that we must save away the
1503         offset of the mouse relative to the image when we kick off the drag.
1504
1505         Reviewed by Maciej.
1506
1507         * Misc.subproj/WebNSViewExtras.h:
1508         * Misc.subproj/WebNSViewExtras.m:
1509         (-[NSView _web_dragImage:rect:event:pasteboard:source:offset:]): Add the ability
1510         to return the offset of the cursor wrt to the drag image, since this routine
1511         generates its own drag image and positions it.
1512         * WebView.subproj/WebHTMLView.m:
1513         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1514         Calc the offset of the cursor wrt to the drag image in the myriad of ways
1515         that we kick off the drag.      
1516         (-[WebHTMLView draggedImage:movedTo:]):  Adjust the location by the
1517         offset we save when we kicked off the drag.
1518         (-[WebHTMLView draggedImage:endedAt:operation:]):  Ditto.
1519         * WebView.subproj/WebHTMLViewInternal.h:
1520         * WebView.subproj/WebImageView.m:
1521         (-[WebImageView mouseDragged:]):  Pass nil for new arg, we don't care.
1522
1523 2004-06-16  David Hyatt  <hyatt@apple.com>
1524
1525         In order to support truncation in Emerson, enhance pointToOffset so that it needn't include partial
1526         character glyphs (the left half of a glyph).
1527         
1528         Reviewed by mjs
1529
1530         * WebCoreSupport.subproj/WebTextRenderer.m:
1531         (-[WebTextRenderer pointToOffset:style:position:reversed:includePartialGlyphs:]):
1532         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
1533         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
1534
1535 === Safari-145 ===
1536
1537 2004-06-16  Darin Adler  <darin@apple.com>
1538
1539         - fixed <rdar://problem/3696081> REGRESSION: <WebKit/CarbonUtils.h> doesn't build any more
1540
1541         Reviewed by Trey.
1542
1543         * Carbon.subproj/CarbonUtils.h: Fixed include. Need to include <ApplicationServices/ApplicationServices.h>
1544         to get CGImageRef; can't include an individual header.
1545
1546 2004-06-15  Richard Williamson   <rjw@apple.com>
1547
1548         Fixed <rdar://problem/3695875>: Objective-C instances that are exported to JavaScript are too promiscuous
1549         
1550         Flip the policy for exposing Objective-C methods and properties.
1551         
1552         Reviewed by Trey.
1553         
1554         * Plugins.subproj/WebPluginPackage.m:
1555         (+[NSObject isSelectorExcludedFromWebScript:]):  Just return YES.
1556         (+[NSObject isKeyExcludedFromWebScript:]):  Just return YES.
1557
1558 2004-06-15  Trey Matteson  <trey@apple.com>
1559
1560         3639321 - Harvard PIN authentication ends up sending PIN as clear text with POST action
1561
1562         When going back/forward to an item, if we went there originally via a POST, 
1563         we ask the user about rePOSTing, and if they say yes, we resend the POST. 
1564         This rePOST case is triggered by the form data that we saved on the b/f item.
1565         In the case of this bug, the overall navigation was accomplished by a POST,
1566         then a redirect, causing a GET.  When a load of type redirect achieves the Committed
1567         stage, we replace the current URL in the b/f item with the new URL (instead of
1568         adding a new item to the b/f list).
1569
1570         The bug is that at the same time we should also update the form data in
1571         the b/f item to match that of the new request.  I think this will normally
1572         mean nil'ing it out, unless there's some way for the result of the redirect
1573         to be another POST.
1574  
1575         The security leak occurred because we did not clear the form data on the item,
1576         so when going back or forward to the page, we would go into the rePOSTing code,
1577         even though we eventually reached that page via a GET (caused by the redirect).
1578         So we would do a POST to the redirect URL containing the private data sent in
1579         the original POST.
1580
1581         Reviewed by mjs and rjw.
1582
1583         * History.subproj/WebHistoryItem.m:
1584         (-[WebHistoryItem _setFormInfoFromRequest:]):  New method, just wraps 3 old set methods.
1585         (-[WebHistoryItem formData]):  Diff being dumb, no change.
1586         (-[WebHistoryItem formContentType]):  Ditto
1587         (-[WebHistoryItem formReferrer]): Ditto
1588         * History.subproj/WebHistoryItemPrivate.h:
1589         * WebView.subproj/WebFrame.m:
1590         (-[WebFrame _createItem:]):  Call new WebHistoryItem method - no change in real behavior
1591         (-[WebFrame _transitionToCommitted:]):  Clear out the form data at the key time, to fix the bug.
1592
1593 2004-06-15  Chris Blumenberg  <cblu@apple.com>
1594
1595         Fixed: <rdar://problem/3695724> WebKit plug-ins should only have to implement plugInViewWithArguments:
1596
1597         Reviewed by rjw.
1598
1599         * ChangeLog:
1600         * Plugins.subproj/WebPluginViewFactory.h: mention that plugInViewWithArguments is required
1601         * WebView.subproj/WebFrame.m:
1602         (-[WebFrame _reloadForPluginChanges]): check for plugInViewWithArguments: not webPlugInInitialize
1603         * WebView.subproj/WebHTMLView.m:
1604         (-[WebHTMLView addSubview:]): ditto
1605
1606 2004-06-15  Chris Blumenberg  <cblu@apple.com>
1607
1608         Reviewed by NOBODY (OOPS!).
1609
1610         * WebView.subproj/WebFrame.m:
1611         (-[WebFrame _reloadForPluginChanges]):
1612         * WebView.subproj/WebHTMLView.m:
1613         (-[WebHTMLView addSubview:]):
1614
1615 2004-06-15  Trey Matteson  <trey@apple.com>
1616
1617         3695240 - pasting plain text with newlines in it turns them into spaces
1618
1619         Easy fix, we just need to consume the incoming data as text instead of markup.
1620
1621         Reviewed by John and Darin.
1622
1623         * WebView.subproj/WebHTMLView.m:
1624         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]):
1625
1626 2004-06-15  Darin Adler  <darin@apple.com>
1627
1628         - fixed crash introduced by my earlier change
1629
1630         * WebCoreSupport.subproj/WebImageRenderer.m:
1631         (-[WebImageContext dealloc]): Set _cgsContext to 0 before calling super as before.
1632         (-[WebImageContext finalize]): Ditto.
1633
1634 2004-06-14  Darin Adler  <darin@apple.com>
1635
1636         Reviewed by Maciej.
1637
1638         - fixed some things for GC that Patrick missed, or that happened after the branch
1639
1640         * Carbon.subproj/HIWebView.m:
1641         (HIWebViewConstructor): Use CFRetain instead of retain.
1642         (HIWebViewDestructor): Use CFRelease instead of release.
1643         * Misc.subproj/WebFileDatabase.m:
1644         (-[WebFileDatabase initWithPath:]): Use release instead of dealloc.
1645         * WebCoreSupport.subproj/WebImageRenderer.m:
1646         (-[WebImageContext finalize]): Had [super dealloc] here by mistake; change to [super finalize].
1647         * WebCoreSupport.subproj/WebTextRenderer.m:
1648         (-[WebTextRenderer finalize]): Added.
1649         * WebView.subproj/WebDebugDOMNode.m:
1650         (-[WebDebugDOMNode initWithWebFrameView:]): Use release instead of dealloc.
1651         * WebView.subproj/WebRenderNode.m:
1652         (-[WebRenderNode initWithWebFrameView:]): Use release instead of dealloc.
1653
1654 2004-06-15  Trey Matteson  <trey@apple.com>
1655
1656         Fix ASSERT/crash we get sometimes when dragging link images.  Turns
1657         out there was an uninitialized variable for the image size,
1658         so at random we would try to create huge images that could not
1659         be focused.
1660         
1661         Reviewed by Maciej and Darin.
1662
1663         * WebView.subproj/WebHTMLView.m:
1664         (-[WebHTMLView _dragImageForLinkElement:]):  Trivial fix to
1665         not use += with uninited variable.
1666
1667 2004-06-14  Darin Adler  <darin@apple.com>
1668
1669         Reviewed by me, code changes by Patrick Beard.
1670
1671         - fixed <rdar://problem/3671507>: (WebKit should adopt GC changes and compile with GC enabled)
1672
1673         * WebKit.pbproj/project.pbxproj: Added WebNSObjectExtras.h.
1674         * Misc.subproj/WebNSObjectExtras.h: Added. Includes WebMakeCollectable, a cover for
1675         CFMakeCollectable that returns type id, for less casting, and works on Panther as well
1676         as Tiger. Also declares finalize in NSObject so we can call super without warnings on Panther.
1677
1678         * Carbon.subproj/CarbonWindowAdapter.m: Fixed header and includes a bit.
1679         (-[CarbonWindowAdapter finalize]): Added.
1680         * History.subproj/WebBackForwardList.m:
1681         (-[WebBackForwardList dealloc]): Got count outside loop.
1682         (-[WebBackForwardList finalize]): Added.
1683         * History.subproj/WebHistoryItem.m:
1684         (-[WebHistoryItem finalize]): Added.
1685         * Misc.subproj/WebFileDatabase.m:
1686         (-[WebFileDatabase _createLRUList:]): Use release on Panther, drain on Tiger.
1687         (+[WebFileDatabase _syncLoop:]): Ditto.
1688         (-[WebFileDatabase dealloc]): Removed, since we never deallocate objects of this class, and
1689         the method was untested.
1690         * Misc.subproj/WebKitErrors.m: (registerErrors): Use release on Panther, drain on Tiger.
1691         * Misc.subproj/WebKitNSStringExtras.m: (+[NSString _web_encodingForResource:]): Use
1692         WebMakeCollectable. Also fixed indenting.
1693         * Misc.subproj/WebNSURLExtras.m:
1694         (+[NSURL _web_URLWithData:relativeToURL:]): Use WebMakeCollectable.
1695         (-[NSURL _web_URLWithLowercasedScheme]): Use WebMakeCollectable.
1696         (-[NSString _web_mapHostNameWithRange:encode:makeString:]): Change code to use CFRelease
1697         to balance CFURLCreateStringByReplacingPercentEscapes CFString creation, not release.
1698         * Plugins.subproj/WebBaseNetscapePluginStream.m:
1699         (-[WebBaseNetscapePluginStream finalize]): Added.
1700         * Plugins.subproj/WebBaseNetscapePluginView.m:
1701         (-[WebBaseNetscapePluginView freeAttributeKeysAndValues]): Added. Shared code for dealloc and finalize.
1702         (-[WebBaseNetscapePluginView dealloc]): Call freeAttributeKeysAndValues.
1703         (-[WebBaseNetscapePluginView finalize]): Added.
1704         (-[WebBaseNetscapePluginView requestWithURLCString:]): Changed so that CFString objects are
1705         released with CFRelease, not release.
1706         (-[WebBaseNetscapePluginView loadRequest:inTarget:withNotifyData:]): Fixed storage leak in
1707         error case. Made sure CFString object is released with CFRelease, not release.
1708         (-[WebBaseNetscapePluginView _postURLNotify:target:len:buf:file:notifyData:allowHeaders:]):
1709         Another CFString that needed to a CFRelease, not a release.
1710         (-[WebBaseNetscapePluginView status:]): Ditto.
1711         * Plugins.subproj/WebBasePluginPackage.m:
1712         (-[WebBasePluginPackage pathByResolvingSymlinksAndAliasesInPath:]): Changed code to
1713         CFRelease a CFURLRef, instead of release.
1714         (-[WebBasePluginPackage finalize]): Added.
1715         * WebCoreSupport.subproj/WebBridge.m:
1716         (-[WebBridge fini]): Added. Shared code for dealloc and finalize.
1717         (-[WebBridge dealloc]): Call fini.
1718         (-[WebBridge finalize]): Added.
1719         * WebCoreSupport.subproj/WebGlyphBuffer.m:
1720         (-[WebGlyphBuffer finalize]): Added.
1721         * WebCoreSupport.subproj/WebImageRenderer.m:
1722         (-[WebImageContext initWithBounds:context:]): Use CGContextRetain to avoid cast.
1723         (-[WebImageContext dealloc]): Tweaked.
1724         (-[WebImageContext finalize]): Added.
1725         (-[WebImageRenderer finalize]): Added.
1726         (-[WebPDFDocument finalize]): Added.
1727         * WebView.subproj/WebDataProtocol.m:
1728         (+[NSURL _web_uniqueWebDataURL]): Changed so that CFString object is released with
1729         CFRelease, not release.
1730         * WebView.subproj/WebDataSource.m:
1731         (-[WebDataSourcePrivate dealloc]): Took non-release work out of here.
1732         (-[WebDataSource dealloc]): Moved it here.
1733         (-[WebDataSource finalize]): Added.
1734         (-[WebDataSource isLoading]): Use release on Panther, drain on Tiger.
1735         * WebView.subproj/WebFrame.m:
1736         (-[WebFramePrivate dealloc]): Took non-release work out of here.
1737         (-[WebFrame dealloc]): Moved it here.
1738         (-[WebFrame finalize]): Added.
1739         * WebView.subproj/WebFrameView.m:
1740         (-[WebFrameView finalize]): Added.
1741         * WebView.subproj/WebHTMLRepresentation.m:
1742         (-[WebHTMLRepresentation finalize]): Added.
1743         * WebView.subproj/WebHTMLView.m:
1744         (-[WebHTMLViewPrivate dealloc]): Moved non-release work out of here.
1745         (-[WebHTMLView dealloc]): Moved it here.
1746         (-[WebHTMLView finalize]): Added.
1747         * WebView.subproj/WebImageView.m:
1748         (-[WebImageView finalize]): Added.
1749         * WebView.subproj/WebMainResourceClient.m:
1750         (-[WebMainResourceClient finalize]): Added.
1751         * WebView.subproj/WebTextView.m:
1752         (-[WebTextView finalize]): Added.
1753         * WebView.subproj/WebView.m:
1754         (-[WebView finalize]): Added.
1755
1756 2004-06-14  Ken Kocienda  <kocienda@apple.com>
1757
1758         Reviewed by Darin
1759         
1760         Fix for this bug:
1761         
1762         <rdar://problem/3693202> WebView.h header unnecessarily lists NSResponder methods it overrides
1763
1764         * WebView.subproj/WebView.h: NSResponder overrides now gathered in a comment section.
1765
1766 2004-06-13  Trey Matteson  <trey@apple.com>
1767
1768         Support for DHTML cut/copy/paste.
1769
1770         Reviewed by Chris
1771
1772         * WebView.subproj/WebHTMLView.m:
1773         (-[WebHTMLView copy:]):  Give DHTML first crack at executing the command.
1774         (-[WebHTMLView cut:]):  Ditto
1775         (-[WebHTMLView paste:]):  Ditto
1776
1777 2004-06-14  Chris Blumenberg  <cblu@apple.com>
1778
1779         Fixed: <rdar://problem/3674456> make new drag & drop API compatible with DHTML dragging
1780
1781         Reviewed by trey.
1782
1783         * WebView.subproj/WebHTMLView.m:
1784         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): tweak
1785         * WebView.subproj/WebUIDelegate.h: removed old, added new methods
1786         * WebView.subproj/WebUIDelegatePrivate.h: moved new methods to public header
1787         * WebView.subproj/WebView.h: removed old, added new methods
1788         * WebView.subproj/WebView.m: moved methods around
1789         (-[WebView moveDragCaretToPoint:]): moved
1790         (-[WebView removeDragCaret]): moved
1791         (-[WebView _bridgeAtPoint:]): moved
1792         (-[WebView editableDOMRangeForPoint:]): moved
1793         * WebView.subproj/WebViewInternal.h: add new internal method
1794         * WebView.subproj/WebViewPrivate.h: moved new methods to public header
1795
1796 2004-06-14  Trey Matteson  <trey@apple.com>
1797
1798         Use a different hack, as recommended by Kristin, to force the drag
1799         manager to exit a modal event wait it is in.  The hack is required
1800         to update the drag image on the fly.  Instead of posting a CG
1801         event we post at the AppKit level.
1802
1803         Reviewed by Louch
1804
1805         * WebCoreSupport.subproj/WebGraphicsBridge.m:
1806         (-[WebGraphicsBridge setDraggingImage:at:]):
1807
1808 2004-06-14  Chris Blumenberg  <cblu@apple.com>
1809
1810         Fixed:
1811         <rdar://problem/3692668> REGRESSION: delay when images and links
1812         <rdar://problem/3692675> links should drag when dragging images that are links when drag source action is WebDragSourceActionLink
1813
1814         Reviewed by trey.
1815
1816         * WebView.subproj/WebHTMLView.m:
1817         (-[WebHTMLView _mayStartDragWithMouseDragged:]): cleaned up, only use selection delay for selections, allow links to be dragged when image dragging is disabled 
1818
1819 2004-06-12  Trey Matteson  <trey@apple.com>
1820
1821         Small rearrangement to support dynamic changing of the drag
1822         image during DHTML dragging.
1823
1824         Reviewed by John
1825
1826         * WebCoreSupport.subproj/WebBridge.m:  Bridge glue moved to WebGraphicsBridge.
1827         * WebCoreSupport.subproj/WebGraphicsBridge.m:
1828         (FlipImageSpec):  Code moved from WebHTMLView.m.
1829         (-[WebGraphicsBridge setDraggingImage:at:]):  Ditto.  Plus, we've added a gross
1830         event posting hack to force CG drag manager to update the display when we set
1831         the drag image.
1832         * WebView.subproj/WebHTMLView.m:  Code moved to WebGraphicsBridge.
1833         * WebView.subproj/WebHTMLViewPrivate.h:
1834
1835 2004-06-11  Chris Blumenberg  <cblu@apple.com>
1836
1837         Implemented the remainder of the drag & drop API.
1838
1839         Reviewed by trey.
1840
1841         * Misc.subproj/WebNSPasteboardExtras.h:
1842         * Misc.subproj/WebNSPasteboardExtras.m:
1843         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]): new
1844         * Misc.subproj/WebNSViewExtras.h:
1845         * Misc.subproj/WebNSViewExtras.m:
1846         (-[NSView _web_dragImage:rect:event:pasteboard:source:]): simplified, this method now just creates a drag image and starts the drag
1847         * WebCoreSupport.subproj/WebBridge.m:
1848         (-[WebBridge allowDHTMLDrag:UADrag:]): now calls _delegateDragSourceActionMask on WebHTMLView to interact with the delegate
1849         * WebView.subproj/WebDefaultUIDelegate.m:
1850         * WebView.subproj/WebHTMLView.m:
1851         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]): call new delegate method, cleaned-up a little
1852         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): call drag caret methods on WebView instead of WebBridge so WebView can make sure only 1 HTML view has a drag cursor
1853         (-[WebHTMLView draggingCancelledWithDraggingInfo:]): ditto
1854         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
1855         (-[WebHTMLView _delegateDragSourceActionMask]): new, gets drag source action mask from delegate
1856         * WebView.subproj/WebHTMLViewInternal.h:
1857         * WebView.subproj/WebImageView.h:
1858         * WebView.subproj/WebImageView.m:
1859         (-[WebImageView mouseDown:]): get the drag source action mask from the delegate
1860         (-[WebImageView mouseDragged:]): inform the delegate of the drag
1861         * WebView.subproj/WebView.m:
1862         (-[WebViewPrivate dealloc]): assert that dragCursorBridge is nil
1863         (-[WebView _close]): release dragCursorBridge
1864         (-[WebView _bridgeAtPoint:]): new
1865         (-[WebView editableDOMRangeForPoint:]): new API
1866         (-[WebView moveDragCaretToPoint:]): new API
1867         (-[WebView removeDragCaret]): new API
1868         (-[WebView _frameViewAtWindowPoint:]): moved so this can be called internally
1869         * WebView.subproj/WebViewInternal.h:
1870         * WebView.subproj/WebViewPrivate.h:
1871
1872 2004-07-10  Trey Matteson  <trey@apple.com>
1873
1874         Prep work for latest delegate API for dragging.  In addition, I also straightened out all
1875         the cases of DHTML setting a drag image or setting pasteboard data, and how that would
1876         override WebKit's default behavior (which follows how WinIE does things).
1877
1878         Reviewed by Chris.
1879
1880         * Misc.subproj/WebNSViewExtras.h:
1881         * Misc.subproj/WebNSViewExtras.m:
1882         (-[NSView _web_dragImage:archive:rect:URL:title:event:dragImage:dragLocation:writePasteboard:]):
1883         New args to allow WebCore override of dragImage and pasteboard data.
1884         * WebCoreSupport.subproj/WebBridge.m:
1885         (-[WebBridge allowDHTMLDrag:UADrag:]):  New method to return the drag action info to WC.
1886         (-[WebBridge startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1887         Pass along new args.
1888         * WebView.subproj/WebHTMLView.m:
1889         (-[WebHTMLView _startDraggingImage:at:operation:event:sourceIsDHTML:DHTMLWroteData:]):
1890         Allow WebCore to override drag image and pasteboard data for any type of drag.
1891         (-[WebHTMLView mouseDragged:]):  Pass NO for new args.
1892         * WebView.subproj/WebHTMLViewPrivate.h:
1893         * WebView.subproj/WebImageView.m:
1894         (-[WebImageView mouseDragged:]):  Pass NO/nil for new args.
1895
1896 === Safari-144 ===
1897
1898 2004-06-10  Kevin Decker  <kdecker@apple.com>
1899
1900         Reviewed by John.
1901
1902         * WebView.subproj/WebResource.m:
1903         (-[WebResource description]):
1904             -added per request of cblu
1905         (-[WebResource _response]):
1906             -added this method to the header
1907         (-[WebResource _stringValue]):
1908             - gives the string value of the NSData representation
1909         * WebView.subproj/WebResourcePrivate.h:
1910
1911 2004-06-10  Darin Adler  <darin@apple.com>
1912
1913         Reviewed by Ken.
1914
1915         * WebCoreSupport.subproj/WebBridge.m: Removed undo-related methods.
1916         (-[WebBridge undoManager]): Added.
1917
1918         * WebKit.pbproj/.cvsignore: Updated for new Xcode files.
1919
1920 2004-06-09  Ken Kocienda  <kocienda@apple.com>
1921
1922         Reviewed by Darin
1923
1924         Fix for this bug:
1925         
1926         <rdar://problem/3672088>: "Editable WebViews should maintain a selection even when they're not firstResponder"
1927
1928         Add some code to determine whether a WebHTMLView should maintain an
1929         inactive selection when the view is not first responder. Traditionally,
1930         these views have not maintained such selections, clearing them when the
1931         view was not first responder. However, for appls embedding this view as
1932         an editing widget, it is desirable to act more like an NSTextView. For
1933         now, however, the view only acts in this way when the web view is set to
1934         be editable with -[WebView setEditable:YES]. This will maintain
1935         traditional behavior for WebKit clients dating back to before this
1936         change, and will likely be a decent switch for the long term, since
1937         clients to ste the web view to be editable probably want it to act like
1938         a "regular" Cocoa view in terms of its selection behavior.
1939
1940         * WebView.subproj/WebHTMLView.m:
1941         (-[WebHTMLView updateTextBackgroundColor]): Add code to tell whether the view is resigning first responder,
1942         and if it is, use the inactive text background color.
1943         (-[WebHTMLView maintainsInactiveSelection]): New helper which does checks to see if the new selection
1944         behavior should be used, or whether we should continue with traditional WebKit behavior.
1945         (-[WebHTMLView resignFirstResponder]): Call new maintainsInactiveSelection helper. If true,
1946         do not clear the selection.
1947         * WebView.subproj/WebHTMLViewInternal.h: Add resigningFirstResponder flag.
1948
1949 2004-06-09  Chris Blumenberg  <cblu@apple.com>
1950
1951         Implemented drag destination portion of the new drag & drop API.
1952
1953         Reviewed by trey.
1954
1955         * WebView.subproj/WebDefaultUIDelegate.m:
1956         (-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]): new delegate implementation
1957         (-[WebDefaultUIDelegate webView:willPerformDragDestinationAction:forDraggingInfo:]): ditto
1958         * WebView.subproj/WebDocumentInternal.h:
1959         * WebView.subproj/WebHTMLView.m:
1960         (-[WebHTMLView draggingUpdatedWithDraggingInfo:actionMask:]): handle the action mask
1961         (-[WebHTMLView concludeDragForDraggingInfo:actionMask:]): ditto
1962         * WebView.subproj/WebUIDelegate.h:
1963         * WebView.subproj/WebUIDelegatePrivate.h:
1964         * WebView.subproj/WebView.m:
1965         (-[WebView _dragOperationForDraggingInfo:]): call new delegate methods
1966         (-[WebView performDragOperation:]): ditto
1967         * WebView.subproj/WebViewInternal.h:
1968         * WebView.subproj/WebViewPrivate.h:
1969
1970 2004-06-09  Richard Williamson   <rjw@apple.com>
1971
1972         Implemented PDF rendering for the drawImage() function
1973         in Context2D.  This allows PDF files to be drawn in scaled
1974         or rotated context without rasterization artifacts.
1975         
1976         The PDF image is currently NOT cached.  Caching can/will be added
1977         as an optimization.  The hooks are already in place to flush
1978         the cache as necessary.
1979         
1980         Reviewed by John.
1981
1982         * WebCoreSupport.subproj/WebImageRenderer.h:
1983         * WebCoreSupport.subproj/WebImageRenderer.m:
1984         (-[WebImageRenderer dealloc]):
1985         (-[WebImageRenderer _needsRasterFlush]):
1986         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
1987         (-[WebImageRenderer _PDFDocumentRef]):
1988         (-[WebImageRenderer _PDFDraw]):
1989         (-[WebImageRenderer _PDFDrawFromRect:toRect:operation:alpha:flipped:]):
1990         (-[WebImageRenderer MIMEType]):
1991         (ReleasePDFDocumentData):
1992         (-[WebPDFDocument initWithData:]):
1993         (-[WebPDFDocument dealloc]):
1994         (-[WebPDFDocument documentRef]):
1995         (-[WebPDFDocument mediaBox]):
1996         (-[WebPDFDocument bounds]):
1997         (-[WebPDFDocument adjustCTM:]):
1998         (-[WebPDFDocument setCurrentPage:]):
1999         (-[WebPDFDocument currentPage]):
2000         (-[WebPDFDocument pageCount]):
2001
2002         Added back check for old plugin API.
2003         
2004         * WebView.subproj/WebFrame.m:
2005         (-[WebFrame _reloadForPluginChanges]):
2006         * WebView.subproj/WebHTMLView.m:
2007         (-[WebHTMLView addSubview:]):
2008         * WebCoreSupport.subproj/WebBridge.m:
2009         (-[WebBridge frameRequiredForMIMEType:URL:]):
2010
2011 2004-06-08  Trey Matteson  <trey@apple.com>
2012
2013         In DHTML dragging there is no notion of registering for types, so we'd
2014         like to just pass all types down to WebCore.  It turns out that the per-type
2015         registration doesn't matter as far as the underlying drag service is
2016         concerned, so Cocoa is already getting called for any type.  We just hack and
2017         override a private method to ensure we accept any type.
2018
2019         Reviewed by Chris.
2020
2021         * WebView.subproj/WebView.m:
2022         (-[WebView _hitTest:dragTypes:]):  We accept any drag type if it is within
2023         our view, without overriding a subview's decision.
2024
2025 2004-06-08  Trey Matteson  <trey@apple.com>
2026
2027         A DHTML drag source can now change the dragging image during the drag.  Currently
2028         it may only be set to a static image.
2029
2030         Reviewed by John
2031
2032         * WebCoreSupport.subproj/WebBridge.m:
2033         (-[WebBridge setDraggingImage:at:]):  Typical bridge glue.
2034         * WebView.subproj/WebHTMLView.m:
2035         (FlipImageSpec):  New utility, copied from AppKit.
2036         (-[WebHTMLView _setDraggingImage:at:]):  Mostly copied from AppKit.  Sets the drag
2037         image using CG API.
2038         * WebView.subproj/WebHTMLViewPrivate.h:
2039
2040 2004-06-08  Chris Blumenberg  <cblu@apple.com>
2041
2042         Fixed: <rdar://problem/3640423>: (REGRESSION: can't paste text copied from web page into Excel (due to HTML on the pasteboard?))
2043
2044         Reviewed by darin.
2045
2046         * WebView.subproj/WebHTMLView.m:
2047         (+[WebHTMLView _selectionPasteboardTypes]): don't include NSHTMLPboardType
2048         (-[WebHTMLView _selectedArchive]): removed markup string parameter
2049         (_selectionPasteboardTypes::if): don't put NSHTMLPboardType on the pasteboard
2050         * WebView.subproj/WebHTMLViewPrivate.h:
2051
2052 2004-06-07  Darin Adler  <darin@apple.com>
2053
2054         Reviewed by Chris.
2055
2056         - fixed <rdar://problem/3676761>: (REGRESSION: Text Bigger/Smaller commands are always disabled in TOT)
2057
2058         * WebView.subproj/WebHTMLView.m: Add @interface declaration for WebTextSizing category
2059         on WebHTMLView. This must have gotten lost somewhere along the way.
2060
2061 2004-06-05  Trey Matteson  <trey@apple.com>
2062
2063         WebKit no longer causes an endless stream of dragexit events to
2064         occur at the DHTML level when hovering over an element that is
2065         not accepting the drag.
2066
2067         Reviewed by Chris
2068
2069         * WebView.subproj/WebView.m:
2070         (-[WebView _dragOperationForDraggingInfo:]):  If the potential target refuses
2071         the item, don't turn around and immediately tell it to cancel the drag, which is
2072         what leads to the exit event happening at the DOM level.  If the target just
2073         refused the drag, it should not have anything it needs to cancel.
2074
2075 2004-06-03  Trey Matteson  <trey@apple.com>
2076
2077         DHTML dragging uses the Cocoa NSDragOperation on both the source and dest ends.
2078         Most of the real work is in WebCore.
2079
2080         Reviewed by rjw
2081
2082         * WebCoreSupport.subproj/WebBridge.m:
2083         (-[WebBridge startDraggingImage:at:operation:event:]):  Pass the drag op along.
2084         * WebView.subproj/WebHTMLView.m:
2085         (-[WebHTMLView _startDraggingImage:at:operation:event:]):  Remember drag op from WC.
2086         (-[WebHTMLView mouseDragged:]):  Pass None for the op (alternate code path that will
2087         be going away).
2088         (-[WebHTMLView draggingSourceOperationMaskForLocal:]):  Use the WC drag op.
2089         * WebView.subproj/WebHTMLViewInternal.h:
2090         * WebView.subproj/WebHTMLViewPrivate.h:
2091
2092 === Safari-143 ===
2093
2094 2004-06-04  Chris Blumenberg  <cblu@apple.com>
2095
2096         Fixed: <rdar://problem/3674921>: (can't drag an image from Desktop to Blot document)
2097
2098         Reviewed by mjs.
2099
2100         * WebView.subproj/WebDataSource.m:
2101         (-[WebDataSource _imageElementWithImageResource:]): factored out from _documentFragmentWithImageResource:
2102         (-[WebDataSource _documentFragmentWithImageResource:]): call _imageElementWithImageResource:
2103         * WebView.subproj/WebDataSourcePrivate.h:
2104         * WebView.subproj/WebHTMLView.m:
2105         (-[WebHTMLView _imageExistsAtPaths:]): new
2106         (-[WebHTMLView _documentFragmentWithPaths:]): new
2107         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): handle NSFilenamesPboardType
2108         (+[WebHTMLView _insertablePasteboardTypes]): include NSFilenamesPboardType
2109         (-[WebHTMLView _canProcessDragWithDraggingInfo:]): check for NSFilenamesPboardType and check that the files are images
2110
2111 2004-06-04  Richard Williamson   <rjw@apple.com>
2112
2113         Fixed crasher from last checkin.
2114         
2115         Reviewed by Ken.
2116
2117         * Plugins.subproj/WebPluginDatabase.m:
2118         (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
2119         (pluginLocations):
2120
2121 2004-06-03  Richard Williamson   <rjw@apple.com>
2122
2123         Add SPI to allow setting of plugin load path.
2124                 Reviewed by Hyatt.
2125
2126         * Plugins.subproj/WebPluginDatabase.h:
2127         * Plugins.subproj/WebPluginDatabase.m:
2128         (+[WebPluginDatabase setAdditionalWebPlugInPaths:]):
2129         (pluginLocations):
2130
2131 2004-06-03  Darin Adler  <darin@apple.com>
2132
2133         Reviewed by Chris.
2134
2135         - fixed <rdar://problem/3677038>: (Need SPI to get URL of favicon for a site)
2136
2137         * Misc.subproj/WebIconDatabase.h: Add iconURLForURL: method.
2138         * Misc.subproj/WebIconDatabase.m: (-[WebIconDatabase iconURLForURL:]): Added.
2139
2140 2004-06-02  Ken Kocienda  <kocienda@apple.com>
2141
2142         Reviewed by John
2143
2144         Fix for these bugs:
2145         
2146         <rdar://problem/3675806>: "Make API name change for -webViewShouldBeginEditing:inDOMRange:"
2147         <rdar://problem/3675809>: "Make API name change for -webViewShouldEndEditing:inDOMRange:"
2148
2149         New names are -webView:shouldBeginEditingInDOMRange: and -webView:shouldEndEditingInDOMRange:, 
2150         respectively.
2151
2152         * WebView.subproj/WebDefaultEditingDelegate.m:
2153         (-[WebDefaultEditingDelegate webView:shouldBeginEditingInDOMRange:]):
2154         (-[WebDefaultEditingDelegate webView:shouldEndEditingInDOMRange:]):
2155         * WebView.subproj/WebEditingDelegate.h:
2156         * WebView.subproj/WebView.m:
2157         (-[WebView _shouldBeginEditingInDOMRange:]):
2158         (-[WebView _shouldEndEditingInDOMRange:]):
2159
2160 2004-06-02  Richard Williamson   <rjw@apple.com>
2161
2162         conformsToProtocol:@protocol(WebPlugin) becomes
2163         respondsToSelector:@selector(webPlugInInitialize) because
2164         protocol was changed to an informal protocol.
2165                 Reviewed by Kevin.
2166
2167         * WebCoreSupport.subproj/WebBridge.m:
2168         (-[WebBridge frameRequiredForMIMEType:URL:]):
2169         * WebView.subproj/WebHTMLView.m:
2170         (-[WebHTMLView addSubview:]):
2171
2172 2004-06-01  Trey Matteson  <trey@apple.com>
2173
2174         First cut at source side of DHTML dragging.  Most of the work is in WebCore.
2175
2176         Reviewed by hyatt.
2177
2178         * WebCoreSupport.subproj/WebBridge.m:
2179         (-[WebBridge startDraggingImage:at:event:]):  Added image and loc args for
2180         when WC tells WK to start a drag.
2181         * WebView.subproj/WebHTMLView.m:
2182         (-[WebHTMLView _startDraggingImage:at:event:]):  New image and loc args coming
2183         from WebCore.  Hysteresis is moved to WC.
2184         (-[WebHTMLView mouseDragged:]):  Call new _startDragging method.
2185         (-[WebHTMLView draggedImage:movedTo:]):  Pass event to WC.
2186         (-[WebHTMLView draggedImage:endedAt:operation:]):  Pass event to WC.
2187         (-[WebHTMLView mouseUp:]):  Reset firstMouseDownEvent.  Fixes bug where
2188         we would occasionally short-circuit WC event handling due to aliasing
2189         problem with this event.
2190         * WebView.subproj/WebHTMLViewPrivate.h:
2191
2192 2004-06-02  Darin Adler  <darin@apple.com>
2193
2194         Reviewed by John.
2195
2196         - fixed problem with timing of delegate callbacks in the back/forward cache case
2197
2198         * WebView.subproj/WebFrame.m:
2199         (-[WebFrame _transitionToCommitted:]): Move code to indicate page is done loading in the
2200         back/forward cache case from here ...
2201         (-[WebFrame _opened]): ... to here.
2202
2203 2004-06-01  Richard Williamson   <rjw@apple.com>
2204
2205         Fixed deployment build warning.
2206
2207         * WebCoreSupport.subproj/WebImageRenderer.m:
2208         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
2209
2210 2004-06-01  Richard Williamson   <rjw@apple.com>
2211
2212         Added support for drawImage and drawImageFromRect to <CANVAS>
2213         Added support for composite attribute to <CANVAS>
2214
2215         Reviewed by Trey.
2216
2217         * WebCoreSupport.subproj/WebImageRenderer.h:
2218         * WebCoreSupport.subproj/WebImageRenderer.m:
2219         (-[WebImageContext initWithBounds:context:]):
2220         (-[WebImageContext dealloc]):
2221         (-[WebImageContext saveGraphicsState]):
2222         (-[WebImageContext restoreGraphicsState]):
2223         (-[WebImageContext isDrawingToScreen]):
2224         (-[WebImageContext focusStack]):
2225         (-[WebImageContext setFocusStack:]):
2226         (-[WebImageContext bounds]):
2227         (-[WebImageContext isFlipped]):
2228         (-[WebImageRenderer incrementalLoadWithBytes:length:complete:]):
2229         (-[WebImageRenderer dealloc]):
2230         (-[WebImageRenderer _beginRedirectContext:]):
2231         (-[WebImageRenderer _endRedirectContext:]):
2232         (-[WebImageRenderer _needsRasterFlush]):
2233         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
2234         (-[WebImageRenderer drawImageInRect:fromRect:]):
2235         (-[WebImageRenderer flushRasterCache]):
2236         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
2237         (-[WebImageRenderer tileInRect:fromPoint:context:]):
2238         * WebCoreSupport.subproj/WebImageRendererFactory.m:
2239         (-[WebImageRendererFactory imageRendererWithMIMEType:]):
2240         (-[WebImageRendererFactory imageRendererWithName:]):
2241         (-[WebImageRendererFactory CGCompositeOperationInContext:]):
2242         (-[WebImageRendererFactory setCGCompositeOperation:inContext:]):
2243         (-[WebImageRendererFactory setCGCompositeOperationFromString:inContext:]):
2244
2245 2004-06-01  John Sullivan  <sullivan@apple.com>
2246
2247         Reviewed by Trey.
2248         
2249         Work on text-align API. Marked these bugs fixed:
2250         <rdar://problem/3655380>: (Editing:Ê-alignCenter:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI))
2251         <rdar://problem/3655381>: (Editing:Ê-alignJustified:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI))
2252         <rdar://problem/3655383>: (Editing:Ê-alignLeft:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI))
2253         <rdar://problem/3655384>: (Editing:Ê-alignRight:ÊmethodÊunimplementedÊ(WebKitÊeditingÊAPI))        
2254         
2255         in favor of opening this bug:
2256         <rdar://problem/3675191>: (Editing: -alignLeft: and friends mostly implemented but not 
2257         yet working (WebKit editing API))        
2258
2259         * English.lproj/StringsNotToBeLocalized.txt:
2260         updated for these changes
2261         
2262         * WebView.subproj/WebHTMLView.m:
2263         (-[WebHTMLView changeDocumentBackgroundColor:]):
2264         added a FIXME about why this is still not quite right
2265         (-[WebHTMLView _alignSelectionUsingCSSValue:]):
2266         new method, bottleneck for the various values
2267         (-[WebHTMLView alignCenter:]):
2268         call _alignSelectionUsingCSSValue:@"center"
2269         (-[WebHTMLView alignJustified:]):
2270         call _alignSelectionUsingCSSValue:@"justify"
2271         (-[WebHTMLView alignLeft:]):
2272         call _alignSelectionUsingCSSValue:@"left"
2273         (-[WebHTMLView alignRight:]):
2274         call _alignSelectionUsingCSSValue:@"right"
2275
2276 2004-06-01  John Sullivan  <sullivan@apple.com>
2277
2278         Reviewed by Ken.
2279         
2280         - fixed <rdar://problem/3655378>: (Editing:Ê-changeDocumentBackgroundColor:Ê
2281         methodÊunimplementedÊ(WebKitÊeditingÊAPI))
2282         - made startSpeaking: actually work; previous implementation raised a DOMException
2283
2284         * WebView.subproj/WebHTMLView.m:
2285         (-[WebHTMLView _changeCSSColorUsingSelector:inRange:]):
2286         added range parameter
2287         (-[WebHTMLView _entireDOMRange]):
2288         new convenience method
2289         (-[WebHTMLView changeDocumentBackgroundColor:]):
2290         now affects entire document, not just selected range, a la NSTextView
2291         (-[WebHTMLView changeColor:]):
2292         now passes in a range to _changeCSSColorUsingSelector:inRange:
2293         (-[WebHTMLView startSpeaking:]):
2294         now uses _entireDOMRange
2295
2296 2004-06-01  Chris Blumenberg  <cblu@apple.com>
2297
2298         Fixed: <rdar://problem/3661505>: (REGRESSION (Safari-140) can't drag standalone images more than once)
2299
2300         Reviewed by john.
2301
2302         * WebView.subproj/WebImageView.m:
2303         (-[WebImageView mouseDown:]): set ignoringMouseDraggedEvents to NO. This line of code was deleted somehow.
2304
2305 2004-06-01  John Sullivan  <sullivan@apple.com>
2306
2307         Reviewed by Darin.
2308         
2309         - fixed <rdar://problem/3657003>: (HTML Editing: Color panel doesn't work)
2310
2311         * WebView.subproj/WebHTMLView.m:
2312         (-[WebHTMLView _colorPanelColorAsStyleUsingSelector:]):
2313         new method, returns a DOMCSSStyleDeclaration *
2314         (-[WebHTMLView _changeCSSColorUsingSelector:]):
2315         new method, sets a color-related style attribute on the selection
2316         (-[WebHTMLView changeDocumentBackgroundColor:]):
2317         call _changeCSSColorUsingSelector: with @selector(setBackgroundColor:)
2318         (-[WebHTMLView changeColor:]):
2319         call _changeCSSColorUsingSelector: with @selector(setColor:); also added
2320         comments explaining why changeDocumentBackgroundColor: will never actually
2321         be called until an AppKit code-incest mess is straighted out.
2322
2323 2004-06-01  Ken Kocienda  <kocienda@apple.com>
2324
2325         Reviewed by Darin
2326
2327         * WebView.subproj/WebHTMLView.m:
2328         (-[WebHTMLView _fontManagerOperationAsStyle]): Fixed typo in family-name code that caused
2329         family names to match when they should not.
2330
2331 2004-06-01  Chris Blumenberg  <cblu@apple.com>
2332
2333         Made paste and drop ask the delegate before making any replacements.
2334
2335         Reviewed by kocienda.
2336
2337         * WebView.subproj/WebHTMLView.m:
2338         (-[WebHTMLView _pasteWithPasteboard:allowPlainText:]): renamed, now calls _shouldInsertFragment:replacingDOMRange:givenAction:
2339         (-[WebHTMLView _shouldInsertFragment:replacingDOMRange:givenAction:]): new, asks delegate
2340         (-[WebHTMLView concludeDragForDraggingInfo:]): now calls _shouldInsertFragment:replacingDOMRange:givenAction:
2341         (-[WebHTMLView paste:]): call renamed _pasteWithPasteboard:allowPlainText:
2342         (-[WebHTMLView pasteAsRichText:]): ditto
2343
2344 2004-05-28  Darin Adler  <darin@apple.com>
2345
2346         Reviewed by Maciej.
2347
2348         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _fontManagerOperationAsStyle]):
2349         First cut at figuring out what operation the font manager is doing without
2350         digging into its private data structures.
2351
2352 2004-05-28  Darin Adler  <darin@apple.com>
2353
2354         Reviewed by Ken.
2355
2356         - various editing-related improvements
2357         - fixed <rdar://problem/3655366>: (Editing: -selectParagraph: method unimplemented (WebKit editing API))
2358         - fixed <rdar://problem/3655367>: (Editing: -selectLine: method unimplemented (WebKit editing API))
2359         - fixed <rdar://problem/3655369>: (Editing: -selectWord: method unimplemented (WebKit editing API))
2360         - fixed <rdar://problem/3655392>: (Editing: -uppercaseWord: method unimplemented (WebKit editing API))
2361         - fixed <rdar://problem/3655393>: (Editing: -lowercaseWord: method unimplemented (WebKit editing API))
2362         - fixed <rdar://problem/3655394>: (Editing: -capitalizeWord: method unimplemented (WebKit editing API))
2363
2364         * WebView.subproj/WebHTMLView.m:
2365         (-[WebHTMLView _alterCurrentSelection:direction:granularity:]): Removed the call to
2366         ensureCaretVisible. This is now handled on the other side of the bridge.
2367         (-[WebHTMLView moveDown:]): Changed to use WebSelectByLine granularity instead of
2368         WebSelectDown direction.
2369         (-[WebHTMLView moveDownAndModifySelection:]): Ditto.
2370         (-[WebHTMLView moveUp:]): Ditto.
2371         (-[WebHTMLView moveUpAndModifySelection:]): Ditto.
2372         (-[WebHTMLView _expandSelectionToGranularity:]): Added.
2373         (-[WebHTMLView selectParagraph:]): Implemented by calling _expandSelectionToGranularity.
2374         (-[WebHTMLView selectLine:]): Ditto.
2375         (-[WebHTMLView selectWord:]): Ditto.
2376         (-[WebHTMLView _fontManagerOperationAsStyle]): Added. Placeholder for the job of figuring
2377         out what style change to make based on NSFontManager.
2378         (-[WebHTMLView changeFont:]): Implemented, but not really tested because guts are still
2379         missing due to lack of above method.
2380         (-[WebHTMLView insertTab:]): Removed the call to ensureCaretVisible.
2381         (-[WebHTMLView insertNewline:]): Removed the call to ensureCaretVisible.
2382         (-[WebHTMLView insertParagraphSeparator:]): Made this insert a newline for now.
2383         (-[WebHTMLView _changeWordCaseWithSelector:]): Added.
2384         (-[WebHTMLView uppercaseWord:]): Implemented by calling _changeWordCaseWithSelector.
2385         (-[WebHTMLView lowercaseWord:]): Ditto.
2386         (-[WebHTMLView capitalizeWord:]): Ditto.
2387         (-[WebHTMLView deleteBackward:]): Removed the call to ensureCaretVisible.
2388         (-[WebHTMLView checkSpelling:]): Put a pile of AppKit code in here as a placeholder.
2389         (-[WebHTMLView startSpeaking:]): Use the new stringForRange: method instead of outerText.
2390         That way we can handle cases where the entire document is selected.
2391         (-[WebHTMLView insertText:]): Removed the call to ensureCaretVisible.
2392
2393 2004-05-28  Chris Blumenberg  <cblu@apple.com>
2394
2395         Fixed: <rdar://problem/3672129>: (selection deselects when clicking editable WebView in background window)
2396
2397         Fixed this problem by using NSTextView's approach of only allowing dragging on first mouse down.
2398
2399         Reviewed by john.
2400
2401         * WebView.subproj/WebHTMLView.m:
2402         (-[WebHTMLView acceptsFirstMouse:]): store the first mouse down
2403         (-[WebHTMLView mouseDown:]): Don't tell WebCore about the first mouse down event since only dragging can occur on the first mouse down.
2404         (-[WebHTMLView mouseDragged:]): Don't tell WebCore about the drags that occur after the first mouse down since only dragging can occur after the first mouse down.
2405         * WebView.subproj/WebHTMLViewInternal.h:
2406
2407 2004-05-28  Darin Adler  <darin@apple.com>
2408
2409         * WebView.subproj/WebView.m: At Ken's suggestion, for better efficiency and safety,
2410         use _cmd rather than explicit selector names in the forwarding methods.
2411
2412 2004-05-28  Darin Adler  <darin@apple.com>
2413
2414         Reviewed by Ken.
2415
2416         - implemented a few more editing operations, moved code from WebView to WebHTMLView
2417
2418         * WebCoreSupport.subproj/WebBridge.m:
2419         (-[WebBridge respondToChangedContents]): Call _updateFontPanel on the WebHTMLView, not the WebView.
2420         (-[WebBridge respondToChangedSelection]): Ditto.
2421
2422         * WebView.subproj/WebHTMLView.m: Moved WebElementOrTextFilter class here from WebView and
2423         gave it a prefix so it won't conflict with developers' class names.
2424         (-[WebHTMLView _updateFontPanel]): Moved here from WebView.
2425
2426         * WebView.subproj/WebView.m:
2427         (-[WebView toggleSmartInsertDelete:]): Added.
2428         (-[WebView toggleContinuousSpellChecking:]): Added.
2429         (-[WebView isContinuousGrammarCheckingEnabled]): Added.
2430         (-[WebView setContinuousGrammarCheckingEnabled:]): Added.
2431         (-[WebView toggleContinuousGrammarChecking:]): Added.
2432         (-[WebView setSmartInsertDeleteEnabled:]): Implemented. We have the flag now, although we
2433         still don't actually have smart insert and delete implemented.
2434         (-[WebView smartInsertDeleteEnabled]): Ditto.
2435         (-[WebView setContinuousSpellCheckingEnabled:]): Implemented.
2436         (-[WebView isContinuousSpellCheckingEnabled]): Implemented.
2437         (-[WebView spellCheckerDocumentTag]): Implemented.
2438         (-[WebView _preflightSpellCheckerNow:]): Added.
2439         (-[WebView _preflightSpellChecker]): Added.
2440         (-[WebView _continuousCheckingAllowed]): Added.
2441
2442         * WebView.subproj/WebHTMLViewInternal.h: Added. We'll things here from WebHTMLViewPrivate so
2443         they are internal to the framework, rather than SPI.
2444         * WebKit.pbproj/project.pbxproj: Added WebHTMLViewInternal.h.
2445         * WebView.subproj/WebHTMLViewPrivate.h: Moved WebHTMLViewPrivate into the internal header.
2446         Despite its name, it's internal, not SPI.
2447
2448         * WebView.subproj/WebViewPrivate.h: Moved WebViewPrivate into the internal header.
2449         Despite its name, it's internal, not SPI. Added a number of new operations which should
2450         be public API. We'll have to figure out what to do about API review and the WWDC deadline.
2451         * WebView.subproj/WebViewInternal.h: Removed _updateFontPanel method.
2452
2453         * English.lproj/StringsNotToBeLocalized.txt: Update.
2454
2455 2004-05-27  Ken Kocienda  <kocienda@apple.com>
2456
2457         Reviewed by John
2458
2459         The font panel now updates correctly, reflecting the current selection. There may
2460         still be some bugs and corner cases to handle, but this will work for a general
2461         implementation of the feature.
2462
2463         * WebView.subproj/WebView.m:
2464         (+[ElementOrTextFilter filter]): Added. This filter will accept DOM elements and
2465         text nodes and skip everything else. This filter is used when walking a selection
2466         to determine the fonts in use.
2467         (-[ElementOrTextFilter acceptNode:]): DOM node filter implementation method.
2468         (-[WebView _fontFromStyle]): Removed, in lieu of new fontForCurrentPosition call on the bridge.
2469         (-[WebView _updateFontPanel]): Reworked to use a TreeWalker instead of a NodeIterator. This
2470         was done since the iterator must be rooted at the document root, but start iterating 
2471         at the start of the selection. TreeWalker's setCurrentNode allows this to be done.
2472
2473
2474 2004-05-27  Kevin Decker  <kdecker@apple.com>
2475
2476         Reviewed by NOBODY (OOPS!).
2477
2478         * Plugins.subproj/WebScriptObject.h:
2479
2480 2004-05-27  Kevin Decker  <kdecker@apple.com>
2481
2482         Reviewed by Ken.
2483         
2484         - error messages (eg. from JavaScriptCore) sent to the bridge now 
2485           get delievered to a new delegate method.  
2486     
2487         * WebCoreSupport.subproj/WebBridge.m:
2488         (-[WebBridge addMessageToConsole:]):
2489         * WebKit.pbproj/project.pbxproj:
2490         * WebView.subproj/WebUIDelegatePrivate.h:
2491
2492 === Safari-142 ===
2493
2494 2004-05-27  Trey Matteson  <trey@apple.com>
2495
2496         First cut at DHTML dragging, destination side.  Dragging text, files and URLs onto
2497         elements works.  Type conversion from NSPasteboard to MIME types is hardwired.
2498         No JS access yet to modifier keys, or operations mask.
2499
2500         Reviewed by Chris.
2501
2502         * WebView.subproj/WebHTMLView.m:
2503         (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): Call DHTML dragging via bridge.
2504         (-[WebHTMLView draggingCancelledWithDraggingInfo:]): Ditto.
2505         (-[WebHTMLView concludeDragForDraggingInfo:]): Ditto.
2506         * WebView.subproj/WebHTMLViewPrivate.h:
2507         * WebView.subproj/WebView.m:
2508         (-[WebView _setWebKitDragRespondsToDragging:]):  New SPI for finer grained control than the
2509         delegate currently has.
2510         (-[WebView _webKitDragRespondsToDragging]): Ditto.
2511         (-[WebView _commonInitializationWithFrameName:groupName:]):  Init new flag.
2512         (-[WebView _dragOperationForDraggingInfo:]):  Comment.
2513         * WebView.subproj/WebViewPrivate.h:
2514
2515 2004-05-27  Darin Adler  <darin@apple.com>
2516
2517         * WebView.subproj/WebFrameView.m: (-[WebFrameView _scrollVerticallyBy:]): Added comment.
2518
2519 2004-05-27  Darin Adler  <darin@apple.com>
2520
2521         Reviewed by Maciej.
2522
2523         - fixed <rdar://problem/3667948>: (REGRESSION: Page Down key goes down two pages when smooth scrolling is on)
2524
2525         * WebView.subproj/WebFrameView.m:
2526         (-[WebFrameView _scrollVerticallyBy:]): Added return value to indicate if any scrolling was done.
2527         This requires using secret AppKit methods; the public methods don't have a return value.
2528         (-[WebFrameView _pageVertically:]): Added return value to indicate if any scrolling was done.
2529         (-[WebFrameView scrollPageUp:]): Base call through to next responder on whether any scrolling was done,
2530         using return value, rather than looking at new scroll position. This was the cause of the bug,
2531         since with smooth scrolling no scrolling has happened yet when the function returns.
2532         (-[WebFrameView scrollPageDown:]): Ditto.
2533
2534         - removed temporary DOMDocument method from WebView
2535
2536         * WebView.subproj/WebView.m:
2537         (-[WebView computedStyleForElement:pseudoElement:]): Call getComputedStyle on the document that owns the
2538         element rather than on the document that currently contains the selection.
2539         (-[WebView _updateFontPanel]): Get the document from the DOM range rather than using the DOMDocument method.
2540         (-[WebView styleDeclarationWithText:]): Change this method to not use the DOMDocument method, but do the same
2541         job with inline code.
2542
2543         * WebView.subproj/WebViewPrivate.h: Moved a recently-added category that is not SPI out of here.
2544         * WebView.subproj/WebViewInternal.h: Moved the category in here. And removed the DOMDocument method from it.
2545
2546         - other changes
2547
2548         * English.lproj/StringsNotToBeLocalized.txt: Updated for recent changes.
2549
2550         * copy-webcore-files-to-webkit: Change tabs to spaces. Quiet the script down by
2551         making it no longer echo each command or print messages about what it's doing by default.
2552
2553 2004-05-27  Darin Adler  <darin@apple.com>
2554
2555         Reviewed by Maciej.
2556
2557         - moved to new symlink technique for embedding frameworks
2558
2559         * WebKit.pbproj/project.pbxproj: Get rid of embed-frameworks build step
2560         because we don't need it any more.
2561
2562 2004-05-27  Darin Adler  <darin@apple.com>
2563
2564         - fixed Deployment build
2565
2566         * WebView.subproj/WebView.m: (-[WebView concludeDragOperation:]):
2567         Got rid of ASSERT-only local variable.
2568
2569 2004-05-26  Maciej Stachowiak  <mjs@apple.com>
2570
2571         Reviewed by Dave.
2572
2573         - fix further problems with Emerson feed: redirection for RSS feeds
2574
2575         This is done by removing removing the calls to defer callbacks
2576         while waiting for [... Maciej stopped typing here ...]
2577
2578         * WebView.subproj/WebMainResourceClient.m:
2579         (-[WebMainResourceClient continueAfterNavigationPolicy:formState:]):
2580         (-[WebMainResourceClient connection:willSendRequest:redirectResponse:]):
2581         (-[WebMainResourceClient continueAfterContentPolicy:response:]):
2582         (-[WebMainResourceClient checkContentPolicyForResponse:]):
2583
2584 2004-05-26  Chris Blumenberg  <cblu@apple.com>
2585
2586         Added and implemented proposed dragging API changes. These changes are necessary to make JS dragging work properly.
2587
2588         Reviewed by trey.
2589
2590         * WebView.subproj/WebDefaultUIDelegate.m:
2591         (-[WebDefaultUIDelegate webView:shouldDetermineDragOperationForDraggingInfo:dragOperation:]): instead of calling back to the WebView to get the default drag operation, return YES. Return NO in order to return a custom drag operation. Removed element parameter since another new API provides a way to get that.
2592         (-[WebDefaultUIDelegate webView:shouldProcessDragWithDraggingInfo:]): Removed element parameter since another new API provides a way to get that.
2593         * WebView.subproj/WebDocumentInternal.h:
2594         * WebView.subproj/WebHTMLView.m:
2595         (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): now returns a drag operation
2596         (-[WebHTMLView draggingCancelledWithDraggingInfo:]): moved
2597         * WebView.subproj/WebUIDelegatePrivate.h:
2598         * WebView.subproj/WebView.m:
2599         (-[WebView elementAtPoint:]): new proposed API
2600         (-[WebView dragOperationForDraggingInfo:]): removed code from this API that should be removed
2601         (-[WebView _dragOperationForDraggingInfo:]): call new API
2602         (-[WebView concludeDragOperation:]): call new API
2603
2604 2004-05-26  Darin Adler  <darin@apple.com>
2605
2606         Reviewed by John.
2607
2608         - moved HTML editing operations from WebView to WebHTMLView, leaving only forwarding machinery
2609           at the WebView level
2610
2611         - fixed <rdar://problem/3655412>: (Editing: -startSpeaking: method unimplemented (WebKit editing API))
2612         - fixed <rdar://problem/3655414>: (Editing: -stopSpeaking: method unimplemented (WebKit editing API))
2613         - fixed <rdar://problem/3655375>: (Editing: -pasteAsRichText: method unimplemented (WebKit editing API))
2614
2615         * WebView.subproj/WebView.h: Added missing declaration of selectionAffinity. I think this
2616         omission was an editorial mistake.
2617
2618         * WebView.subproj/WebView.m:
2619         (-[WebView searchFor:direction:caseSensitive:wrap:]): Use _frameForCurrentSelection directly,
2620         since it no longer returns nil.
2621         (-[WebView pasteboardTypesForSelection]): Use _frameForCurrentSelection instead of going through the bridge.
2622         (-[WebView _frameForCurrentSelection]): Renamed from _currentFrame and changed to return main frame
2623         rather than nil when called on WebView that has no current selection.
2624         (-[WebView _bridgeForCurrentSelection]): Moved in file.
2625         (-[WebView _updateFontPanel]): Removed the one call to _currentSelectionIsEditable here, since
2626         it was the only one left in this file. Eventually this code will move to WebHTMLView.
2627         (-[WebView _performResponderOperation:with:]): Name change.
2628
2629         * WebView.subproj/WebDataSource.m: (-[WebDataSource _documentFragmentWithImageResource:]):
2630         Build document fragment using DOM instead of composing HTML text.
2631
2632         * WebView.subproj/WebHTMLView.m:
2633         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:]): Added allowPlainText boolean,
2634         moved method into new location in file so it can be in the right category, changed link pasting
2635         to use DOM instead of composing HTML text.
2636         (-[WebHTMLView _replaceSelectionWithPasteboard:selectReplacement:allowPlainText:]): Added allowPlainText
2637         boolean, moved method into new location in file so it can be in the right category.
2638         (-[WebHTMLView concludeDragForDraggingInfo:]): Pass YES for allowPlainText.
2639         (-[WebHTMLView centerSelectionInVisibleArea:]): Moved here from WebView.
2640         (-[WebHTMLView _alterCurrentSelection:direction:granularity:]): Ditto.
2641         (-[WebHTMLView moveBackward:]): Ditto.
2642         (-[WebHTMLView moveBackwardAndModifySelection:]): Ditto.
2643         (-[WebHTMLView moveDown:]): Ditto.
2644         (-[WebHTMLView moveDownAndModifySelection:]): Ditto.
2645         (-[WebHTMLView moveForward:]): Ditto.
2646         (-[WebHTMLView moveForwardAndModifySelection:]): Ditto.
2647         (-[WebHTMLView moveLeft:]): Ditto.
2648         (-[WebHTMLView moveLeftAndModifySelection:]): Ditto.
2649         (-[WebHTMLView moveRight:]): Ditto.
2650         (-[WebHTMLView moveRightAndModifySelection:]): Ditto.
2651         (-[WebHTMLView moveToBeginningOfDocument:]): Ditto.
2652         (-[WebHTMLView moveToBeginningOfLine:]): Ditto.
2653         (-[WebHTMLView moveToBeginningOfParagraph:]): Ditto.
2654         (-[WebHTMLView moveToEndOfDocument:]): Ditto.
2655         (-[WebHTMLView moveToEndOfLine:]): Ditto.
2656         (-[WebHTMLView moveToEndOfParagraph:]): Ditto.
2657         (-[WebHTMLView moveUp:]): Ditto.
2658         (-[WebHTMLView moveUpAndModifySelection:]): Ditto.
2659         (-[WebHTMLView moveWordBackward:]): Ditto.
2660         (-[WebHTMLView moveWordBackwardAndModifySelection:]): Ditto.
2661         (-[WebHTMLView moveWordForward:]): Ditto.
2662         (-[WebHTMLView moveWordForwardAndModifySelection:]): Ditto.
2663         (-[WebHTMLView moveWordLeft:]): Ditto.
2664         (-[WebHTMLView moveWordLeftAndModifySelection:]): Ditto.
2665         (-[WebHTMLView moveWordRight:]): Ditto.
2666         (-[WebHTMLView moveWordRightAndModifySelection:]): Ditto.
2667         (-[WebHTMLView pageDown:]): Ditto.
2668         (-[WebHTMLView pageUp:]): Ditto.
2669         (-[WebHTMLView selectParagraph:]): Ditto.
2670         (-[WebHTMLView selectLine:]): Ditto.
2671         (-[WebHTMLView selectWord:]): Ditto.
2672         (-[WebHTMLView copy:]): Moved down in file so it's in the right category.
2673         (-[WebHTMLView cut:]): Ditto.
2674         (-[WebHTMLView delete:]): Ditto.
2675         (-[WebHTMLView paste:]): Ditto.
2676         (-[WebHTMLView copyFont:]): Moved here from WebView.
2677         (-[WebHTMLView pasteFont:]): Ditto.
2678         (-[WebHTMLView pasteAsPlainText:]): Ditto.
2679         (-[WebHTMLView pasteAsRichText:]): Implemented this by calling the paste code with
2680         allowPlainText:NO; believe it or not, that's what this means in NSTextView.
2681         (-[WebHTMLView changeFont:]): Moved here from WebView.
2682         (-[WebHTMLView changeAttributes:]): Ditto.
2683         (-[WebHTMLView changeDocumentBackgroundColor:]): Ditto.
2684         (-[WebHTMLView changeColor:]): Ditto.
2685         (-[WebHTMLView alignCenter:]): Ditto.
2686         (-[WebHTMLView alignJustified:]): Ditto.
2687         (-[WebHTMLView alignLeft:]): Ditto.
2688         (-[WebHTMLView alignRight:]): Ditto.
2689         (-[WebHTMLView indent:]): Ditto.
2690         (-[WebHTMLView insertTab:]): Moved here from WebView, also call insertText rather than
2691         replaceSelectionWithText so it's undoable like a typed character.
2692         (-[WebHTMLView insertBacktab:]): Moved here from WebView.
2693         (-[WebHTMLView insertNewline:]): Moved here from WebView, also call insertText rather than
2694         replaceSelectionWithText so it's undoable like a typed character.
2695         (-[WebHTMLView insertParagraphSeparator:]): Moved here from WebView.
2696         (-[WebHTMLView changeCaseOfLetter:]): Ditto.
2697         (-[WebHTMLView uppercaseWord:]): Ditto.
2698         (-[WebHTMLView lowercaseWord:]): Ditto.
2699         (-[WebHTMLView capitalizeWord:]): Ditto.
2700         (-[WebHTMLView deleteForward:]): Ditto.
2701         (-[WebHTMLView deleteBackward:]): Ditto.
2702         (-[WebHTMLView deleteBackwardByDecomposingPreviousCharacter:]): Ditto.
2703         (-[WebHTMLView deleteWordForward:]): Ditto.
2704         (-[WebHTMLView deleteWordBackward:]): Ditto.
2705         (-[WebHTMLView deleteToBeginningOfLine:]): Ditto.
2706         (-[WebHTMLView deleteToEndOfLine:]): Ditto.
2707         (-[WebHTMLView deleteToBeginningOfParagraph:]): Ditto.
2708         (-[WebHTMLView deleteToEndOfParagraph:]): Ditto.
2709         (-[WebHTMLView complete:]): Ditto.
2710         (-[WebHTMLView checkSpelling:]): Ditto.
2711         (-[WebHTMLView showGuessPanel:]): Ditto.
2712         (-[WebHTMLView performFindPanelAction:]): Ditto.
2713         (-[WebHTMLView startSpeaking:]): Implemented this.
2714         (-[WebHTMLView stopSpeaking:]): Implemented this.
2715         (-[WebHTMLView insertText:]): Moved here from WebView.
2716
2717         * WebView.subproj/WebHTMLViewPrivate.h: Removed declarations of methods that are neither
2718         SPI nor needed outside WebHTMLView.m.
2719
2720         * WebView.subproj/WebViewInternal.h: Removed _currentFrame, and added _frameForCurrentSelection and
2721         _bridgeForCurrentSelection.
2722
2723 2004-05-25  Maciej Stachowiak  <mjs@apple.com>
2724
2725         Reviewed by Richard.
2726
2727         <rdar://problem/3652498>: new sniffing support is crashing
2728         
2729         * WebView.subproj/WebMainResourceClient.m:
2730         (-[WebMainResourceClient checkContentPolicyForResponse:]): Retain
2731         listener around call, in case delegate does something that ends up
2732         invalidating it, like navigating to a new URL.
2733
2734 2004-05-25  Chris Blumenberg  <cblu@apple.com>
2735
2736         Fixed regression where undoing typing would undo character-by-character.
2737
2738         Reviewed by kocienda.
2739
2740         * WebView.subproj/WebView.m:
2741         (-[WebView insertText:]): call insertText: rather than replaceSelectionWithText:: since text insertion via insertText: is coalesced and this is the behavior we want here
2742
2743 2004-05-25  Ken Kocienda  <kocienda@apple.com>
2744
2745         Reviewed by John
2746
2747         Change postDidChangeSelectionNotification and postDidChangeNotification tp
2748         respondToChangedSelection and respondToChangedContents, respectively, to
2749         account for the fact that we do work in these calls other than post a
2750         notification. The need to clear the typing style on both kinds of changes
2751         inspired the name change.
2752
2753         Add in support to set and access typing style. We don't do anything with it yet
2754         except store and return it. Using the typing style is still to come.
2755
2756         * WebCoreSupport.subproj/WebBridge.m:
2757         (-[WebBridge respondToChangedContents]): Change name of functions as described.
2758         (-[WebBridge respondToChangedSelection]): Change name of functions as described.
2759         * WebView.subproj/WebView.m:
2760         (-[WebView dealloc:]): Dealloc typing style ivar.
2761         (-[WebView setTypingStyle:]): Change to set typing style ivar.
2762         (-[WebView typingStyle]): Return new typing style ivar.
2763         * WebView.subproj/WebViewPrivate.h: Add ivar for typing style.
2764
2765 2004-05-25  Ken Kocienda  <kocienda@apple.com>
2766
2767         Reviewed by John
2768         
2769         Improve _bridgeForCurrentSelection so that it is frame-savvy.
2770         Fixup setSelectedDOMRange:affinity: so that it uses the right bridge.
2771
2772         * WebView.subproj/WebView.m:
2773         (-[WebView _bridgeForCurrentSelection]): Use _currentFrame not mainFrame. 
2774         (-[WebView _currentFrame]): Moved to WebView (WebInternal) category so _bridgeForCurrentSelection can use it.
2775         (-[WebView setSelectedDOMRange:affinity:]): Derive the bridge to use from the range passed in; _bridgeForCurrentSelection
2776         is not the right way to get at the document for the range.
2777         * WebView.subproj/WebViewInternal.h: Add _currentFrame declaration.
2778
2779 2004-05-24  Darin Adler  <darin@apple.com>
2780
2781         Reviewed by Ken.
2782
2783         - fixed <rdar://problem/3666022>: (REGRESSION: crash from infinite regress in -[WebFrameView(WebPrivate) scrollPageDown:])
2784
2785         * WebView.subproj/WebView.m:
2786         (-[WebView _performResponderOperation:sender:]): Helper method that knows how to pass on operations
2787         to the responder chain, allowing us to implement operations that will get passed to views inside
2788         us as necessary. Moved a few methods to this, and soon will move even more.
2789         (-[WebView scrollLineDown:]): Use the above method.
2790         (-[WebView scrollLineUp:]): Ditto.
2791         (-[WebView scrollPageDown:]): Ditto.
2792         (-[WebView scrollPageUp:]): Ditto.
2793         (-[WebView copy:]): Ditto.
2794         (-[WebView cut:]): Ditto.
2795         (-[WebView paste:]): Ditto.
2796         (-[WebView delete:]): Ditto.
2797         (-[WebView insertBacktab:]): Ditto.
2798
2799 2004-05-24  Chris Blumenberg  <cblu@apple.com>
2800
2801         Improved editing via drag
2802  
2803         Reviewed by kocienda.
2804
2805         * WebView.subproj/WebDataSource.m: 
2806         (-[WebDataSource _documentFragmentWithImageResource:]): made this method return a fragment instead of replace the selection so that the caller do other things with the fragment
2807         (-[WebDataSource _documentFragmentWithArchive:]): ditto
2808         (-[WebDataSource _replaceSelectionWithArchive:selectReplacement:]): call renamed methods
2809         * WebView.subproj/WebDataSourcePrivate.h:
2810         * WebView.subproj/WebDocumentInternal.h:
2811         * WebView.subproj/WebHTMLView.m:
2812         (-[WebHTMLView _documentFragmentFromPasteboard:]): made this method return a fragment instead of replace the selection so that the caller do other things with the fragment
2813         (-[WebHTMLView _replaceSelectionWithPasteboard:selectReplacement:]): new
2814         (-[WebHTMLView paste:]): call _replaceSelectionWithPasteboard:selectReplacement:
2815         (-[WebHTMLView dragOperationForDraggingInfo:]): handle the case where the destination is editable, but the source is not
2816         (-[WebHTMLView draggingCancelledWithDraggingInfo:]): new, removes drag caret
2817         (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): remove drag caret when we can't handle the drag
2818         (-[WebHTMLView concludeDragForDraggingInfo:]): instead of calling paste, move the selection when doing a move and replace the drag caret when doing a copy
2819         * WebView.subproj/WebHTMLViewPrivate.h:
2820         * WebView.subproj/WebView.m:
2821         (-[WebViewPrivate dealloc]):
2822         (-[WebView _setDraggingDocumentView:]): new
2823         (-[WebView _dragOperationForDraggingInfo:]): if the current dragging document view changes, tell the previous dragging document view that dragging cancelled 
2824         (-[WebView draggingExited:]): new, tell the previous dragging document view that dragging cancelled
2825         (-[WebView concludeDragOperation:]): release the dragging document view
2826         (-[WebView replaceSelectionWithNode:]): pass the selectReplacement BOOL to the bridge
2827         (-[WebView replaceSelectionWithText:]): ditto
2828         (-[WebView replaceSelectionWithMarkupString:]): ditto
2829         (-[WebView replaceSelectionWithArchive:]): ditto
2830         (-[WebView pasteAsPlainText:]): ditto
2831         (-[WebView insertTab:]): ditto
2832         (-[WebView insertText:]): ditto
2833         * WebView.subproj/WebViewPrivate.h: 
2834
2835 2004-05-24  John Sullivan  <sullivan@apple.com>
2836
2837         Reviewed by Dave.
2838         
2839         - added private RSSFeedReferrer field to WebHistoryItem so RSS feeds in the
2840         back/forward list can remember what page (if any) they were initiated from.
2841
2842         * History.subproj/WebHistoryItem.m:
2843         new RSSFeedReferrer ivar in private structure
2844         (-[WebHistoryItemPrivate dealloc]):
2845         release RSSFeedReferrer
2846         (-[WebHistoryItem copyWithZone:]):
2847         copy RSSFeedReferrer
2848         (-[WebHistoryItem RSSFeedReferrer]):
2849         return RSSFeedReferrer
2850         (-[WebHistoryItem setRSSFeedReferrer:]):
2851         set RSSFeedReferrer
2852
2853         * History.subproj/WebHistoryItemPrivate.h:
2854         declare -RSSFeedReferrer and -setRSSFeedReferrer:
2855
2856 2004-05-22  Darin Adler  <darin@apple.com>
2857
2858         Reviewed by Ken.
2859
2860         - implemented some of the trivial WebView editing operations; some had bug reports, to wit:
2861         - fixed <rdar://problem/3655342>: (Editing: -centerSelectionInVisibleArea: method unimplemented (WebKit editing API))
2862         - fixed <rdar://problem/3655398>: (Editing: -deleteWordBackward: method unimplemented (WebKit editing API))
2863         - fixed <rdar://problem/3655397>: (Editing: -deleteWordForward: method unimplemented (WebKit editing API))
2864         - fixed <rdar://problem/3655387>: (Editing: -insertBacktab: method unimplemented (WebKit editing API))
2865         - fixed <rdar://problem/3655386>: (Editing: -insertTab: method unimplemented (WebKit editing API))
2866         - fixed <rdar://problem/3655351>: (Editing: -moveWordBackward: method unimplemented (WebKit editing API))
2867         - fixed <rdar://problem/3655352>: (Editing: -moveWordBackwardAndModifySelection: method unimplemented (WebKit editing API))
2868         - fixed <rdar://problem/3655353>: (Editing: -moveWordForward: method unimplemented (WebKit editing API))
2869         - fixed <rdar://problem/3655354>: (Editing: -moveWordForwardAndModifySelection: method unimplemented (WebKit editing API))
2870         - fixed <rdar://problem/3655374>: (Editing: -pasteAsPlainText: method unimplemented (WebKit editing API))
2871         - fixed <rdar://problem/3655362>: (Editing: -scrollLineDown: method unimplemented (WebKit editing API))
2872         - fixed <rdar://problem/3655363>: (Editing: -scrollLineUp: method unimplemented (WebKit editing API))
2873
2874         * WebView.subproj/WebView.m:
2875         (-[WebView centerSelectionInVisibleArea:]): Implemented. The implementation isn't perfect, but it's hooked
2876         up. It simply calls ensureCaretVisible for now.
2877         (-[WebView moveBackward:]): Implemented. The WebCore API already has a way to specify backward as opposed
2878         to left. A separate issue is the fact that these operations don't have bi-di-savvy implementations, but
2879         now this method is hooked up and will work at least for left-to-right text.
2880         (-[WebView moveBackwardAndModifySelection:]): Ditto.
2881         (-[WebView moveForward:]): Ditto.
2882         (-[WebView moveForwardAndModifySelection:]): Ditto.
2883         (-[WebView moveWordBackward:]): Ditto.
2884         (-[WebView moveWordBackwardAndModifySelection:]): Ditto.
2885         (-[WebView moveWordForward:]): Ditto.
2886         (-[WebView moveWordForwardAndModifySelection:]): Ditto.
2887         (-[WebView scrollLineDown:]): Forward to WebFrameView.
2888         (-[WebView scrollLineUp:]): Ditto.
2889         (-[WebView scrollPageDown:]): Ditto.
2890         (-[WebView scrollPageUp:]): Ditto.
2891         (-[WebView delete:]): Implemented. Follows pattern used in cut, copy, and paste.
2892         (-[WebView pasteAsPlainText:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
2893         (-[WebView insertTab:]): Implemented. Calls delegate, then replaceSelectionWithText: on the bridge.
2894         (-[WebView insertBacktab:]): Implemented. Does nothing. If we ever change so that you can use a WebView as
2895         a field editor, then we might have to add code here.
2896         (-[WebView deleteWordForward:]): Implement by calling moveForwardAndModifySelection: and then delete:.
2897         Might not be a perfect implementation in the presence of delegates who refuse to delete because it will
2898         change the selection even if the delete is disallowed.
2899         (-[WebView deleteWordBackward:]): Implement by calling moveBackwardAndModifySelection: and then delete:.
2900         Same issue about about delegates as deleteWordForward:.
2901
2902         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Added a FIXME.
2903
2904         * DOM.subproj/DOMViews.h: Updated from recent change to WebCore.
2905
2906 2004-05-21  Richard Williamson   <rjw@apple.com>
2907
2908         Removed _bindObject:forFrame: SPI.
2909
2910         Reviewed by Chris.
2911
2912         * WebView.subproj/WebView.m:
2913         * WebView.subproj/WebViewPrivate.h:
2914
2915 === Safari-141 ===
2916
2917 2004-05-21  Darin Adler  <darin@apple.com>
2918
2919         Reviewed by Ken and Chris.
2920
2921         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _pasteFromPasteboard:]): Call replaceSelectionWithText:
2922         instead of replaceSelectionWithMarkupString: when pasting plain text.
2923
2924         * WebView.subproj/WebDataSource.m: (-[WebDataSource _replaceSelectionWithMarkupString:baseURL:]):
2925         Remove bogus check for empty markup. There's nothing wrong with an empty string, and no reason
2926         that replacing with empty string should be a no-op instead of a delete.
2927
2928 2004-05-20  Darin Adler  <darin@apple.com>
2929
2930         Reviewed by Chris.
2931
2932         - fixed <rdar://problem/3662383>: (REGRESSION: drag slide-back sometimes causes link to load)
2933
2934         * WebCoreSupport.subproj/WebBridge.m: (-[WebBridge handleMouseDragged:]):
2935         Added BOOL result to handleMouseDragged:.
2936         * WebView.subproj/WebHTMLViewPrivate.h: Added BOOL result to _handleMouseDragged:.
2937
2938         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _handleMouseDragged:]): Added BOOL result,
2939         returning YES when the drag started, and no when the hysteresis has not yet been overcome.
2940
2941 2004-05-20  Ken Kocienda  <kocienda@apple.com>
2942
2943         Reviewed by Hyatt
2944
2945         Provide the methods to glue the WebView's editing delegate so that these methods work:
2946         
2947         <rdar://problem/3655316>: "Editing: -webViewShouldBeginEditing:inDOMRange: method unimplemented (WebKit editing API)"
2948         <rdar://problem/3655317>: "Editing: -webViewShouldEndEditing:inDOMRange: method unimplemented (WebKit editing API)"
2949
2950         * WebCoreSupport.subproj/WebBridge.m:
2951         (-[WebBridge shouldBeginEditing:]): New method used to glue delegate to focus shifts.
2952         (-[WebBridge shouldEndEditing:]): Ditto.
2953         * WebView.subproj/WebView.m:
2954         (-[WebView _shouldBeginEditingInDOMRange:]): Ditto.
2955         (-[WebView _shouldEndEditingInDOMRange:]): Ditto.
2956         * WebView.subproj/WebViewPrivate.h: Ditto.
2957
2958 2004-05-20  Richard Williamson   <rjw@apple.com>
2959
2960         Fixed typo in header comment.
2961
2962         Reviewed by Ken.
2963
2964         * Plugins.subproj/WebScriptObject.h:
2965
2966 2004-05-19  Chris Blumenberg  <cblu@apple.com>
2967
2968         Fixed: <rdar://problem/3462627>: (API: Need a way to disable/customize dragging)
2969
2970         Reviewed by john.
2971
2972         * Misc.subproj/WebNSPasteboardExtras.m:
2973         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]): fixed bug that caused exception
2974         * WebView.subproj/WebDefaultUIDelegate.m:
2975         (-[WebDefaultUIDelegate webView:shouldBeginDragForElement:dragImage:mouseDownEvent:mouseDraggedEvent:]): new, returns YES
2976         (-[WebDefaultUIDelegate webView:dragOperationForDraggingInfo:overElement:]): new, returns [WebView dragOperationForDraggingInfo:]
2977         (-[WebDefaultUIDelegate webView:shouldProcessDragWithDraggingInfo:overElement:]): new, returns YES
2978         * WebView.subproj/WebDocumentInternal.h: added WebDocumentDragging and WebDocumentElement for document dragging
2979         * WebView.subproj/WebDocumentPrivate.h: moved WebDocumentSelection to WebDocumentInternal.h
2980         * WebView.subproj/WebFrame.m:
2981         (-[WebFrame _actionInformationForNavigationType:event:originalURL:]): 
2982         * WebView.subproj/WebHTMLView.h:
2983         * WebView.subproj/WebHTMLView.m:
2984         (+[WebHTMLView _insertablePasteboardTypes]): new 
2985         (-[WebHTMLView _handleMouseDragged:]): call shouldBeginDragForElement:::: delegate API
2986         (-[WebHTMLView _mayStartDragWithMouseDragged:]): call renamed elementAtPoint SPI
2987         (-[WebHTMLView initWithFrame:]): don't register for drag types since this is handled at the WebView
2988         (-[WebHTMLView menuForEvent:]): call renamed elementAtPoint SPI
2989         (-[WebHTMLView _isSelectionEvent:]): call renamed elementAtPoint SPI
2990         (-[WebHTMLView dragImage:at:offset:event:pasteboard:source:slideBack:]): rather than unregistering drag types on the WebView, just tell it that we're dragging
2991         (-[WebHTMLView draggedImage:endedAt:operation:]): ditto
2992         (-[WebHTMLView _canProcessDragWithDraggingInfo:]): new
2993         (-[WebHTMLView dragOperationForDraggingInfo:]): new WebDocumentDragging SPI
2994         (-[WebHTMLView draggingUpdatedWithDraggingInfo:]): ditto
2995         (-[WebHTMLView concludeDragForDraggingInfo:]): ditto
2996         (-[WebHTMLView elementAtPoint:]): renamed from _elementAtPoint since this is part of the WebDocumentElement SPI
2997         * WebView.subproj/WebHTMLViewPrivate.h:
2998         * WebView.subproj/WebImageView.h:
2999         * WebView.subproj/WebImageView.m:
3000         (-[WebImageView elementAtPoint:]): new
3001         (-[WebImageView menuForEvent:]): call elementAtPoint
3002         (-[WebImageView mouseDragged:]): rather than unregistering drag types on the WebView, just tell it that we're dragging
3003         (-[WebImageView draggedImage:endedAt:operation:]): ditto
3004         * WebView.subproj/WebTextView.h:
3005         * WebView.subproj/WebTextView.m:
3006         (-[WebTextView _elementAtWindowPoint:]): new
3007         (-[WebTextView elementAtPoint:]): new
3008         (-[WebTextView menuForEvent:]): call _elementAtWindowPoint
3009         * WebView.subproj/WebView.h:
3010         * WebView.subproj/WebView.m:
3011         (-[WebViewPrivate dealloc]): removed draggedTypes ivar
3012         (+[WebView URLFromPasteboard:]): implemented
3013         (+[WebView URLTitleFromPasteboard:]): implemented
3014         (-[WebView _registerDraggedTypes]): moved
3015         (-[WebView _frameViewAtWindowPoint:]): new
3016         (-[WebView _draggingDocumentViewAtWindowPoint:]): new
3017         (-[WebView _elementAtWindowPoint:]): new
3018         (-[WebView dragOperationForDraggingInfo:]): updated this API to handle subviews that may want to handle drags
3019         (-[WebView _dragOperationForDraggingInfo:]): new, handles UI delegate for drag control
3020         (-[WebView draggingEntered:]): call _dragOperationForDraggingInfo:
3021         (-[WebView draggingUpdated:]): ditto
3022         (-[WebView concludeDragOperation:]): work with the UI delegate and the subview to handle what happens
3023         * WebView.subproj/WebViewPrivate.h:
3024
3025 2004-05-19  Richard Williamson   <rjw@apple.com>
3026
3027         Removed extraneous tabs that were added (by XCode?).
3028         
3029         * DOM.subproj/DOM-compat.h:
3030         * Plugins.subproj/WebScriptObject.h:
3031
3032 2004-05-19  Richard Williamson   <rjw@apple.com>
3033
3034         Updated header copy script to only copy if modified headers
3035         are different.
3036
3037         * copy-webcore-files-to-webkit:
3038
3039 2004-05-19  Ken Kocienda  <kocienda@apple.com>
3040
3041         Reviewed by Hyatt and Darin
3042
3043         Fix for this bug:
3044         
3045         <rdar://problem/3643230>: "can't tab out of contentEditable Elements"
3046
3047         * WebCoreSupport.subproj/WebBridge.m:
3048         (-[WebBridge interceptEditingKeyEvent:]): Renamed from _editingKeyDown. Also now returns
3049         a BOOL to report whether the event was handled or not.
3050         * WebView.subproj/WebView.m:
3051         (-[WebView _interceptEditingKeyEvent:]): Also renamed from _editingKeyDown. Now includes
3052         a check if the web view is editable and whether the event is a tab key event. If the former
3053         is not true and the latter is, the key is not intercepted. This causes the tab to shift once
3054         the key is processed by other non-editing key-handling mechanisms.
3055         * WebView.subproj/WebViewPrivate.h: Changed declaration due to name change.
3056
3057 2004-05-19  Ken Kocienda  <kocienda@apple.com>
3058
3059         Reviewed by Hyatt
3060
3061         * WebCoreSupport.subproj/WebBridge.m:
3062         (-[WebBridge isEditable]): Return the isEditable value for the
3063         WebView which contains this bridge's frame.
3064
3065 2004-05-19  Darin Adler  <darin@apple.com>
3066
3067         - fixed headers with licenses mangled by Xcode auto-indenting
3068
3069         * DOM.subproj/DOMExtensions.h:
3070         * WebCoreSupport.subproj/WebGraphicsBridge.h:
3071         * WebCoreSupport.subproj/WebGraphicsBridge.m:
3072
3073 2004-05-18  David Hyatt  <hyatt@apple.com>
3074
3075         Improve layout scheduling.
3076         Reviewed by kocienda
3077
3078         * WebView.subproj/WebFrame.m:
3079         (-[WebFrame _transitionToLayoutAcceptable]):
3080         (-[WebFrame _checkLoadCompleteForThisFrame]):
3081         * WebView.subproj/WebHTMLRepresentation.m:
3082         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]):
3083
3084 2004-05-18  Richard Williamson   <rjw@apple.com>
3085
3086         Finished implementation of windowScriptObject.
3087                 Reviewed by Maciej.
3088
3089         * WebView.subproj/WebView.m:
3090         (-[WebView windowScriptObject]):
3091
3092 2004-05-18  Richard Williamson   <rjw@apple.com>
3093
3094         Added WebKit portion of webView:windowScriptObjectAvailable:
3095         implementation.  Still need to implement creating the WebScriptObject
3096         wrapper on the WebCore side.
3097         
3098         Reviewed by Maciej.
3099
3100         Removed "_" from _setPageWidthForPrinting:.  This method facilitates
3101         a work-around for carbon printing.  At some point we may make this
3102         method public API.
3103                 Reviewed by Chris.
3104
3105         * WebCoreSupport.subproj/WebBridge.m:
3106         (-[WebBridge overrideMediaType]):
3107         (-[WebBridge windowObjectCleared]):
3108         * WebView.subproj/WebDefaultFrameLoadDelegate.m:
3109         (-[WebDefaultFrameLoadDelegate webView:windowScriptObjectAvailable:]):
3110         * WebView.subproj/WebHTMLView.m:
3111         (-[WebHTMLView setPageWidthForPrinting:]):
3112
3113 2004-05-18  Darin Adler  <darin@apple.com>
3114
3115         Reviewed by John.
3116
3117         - fixed <rdar://problem/3520322>: "can't use <WebKit/HIWebView.h> or <WebKit/CarbonUtils.h> from non-Objective C"
3118
3119         * Carbon.subproj/CarbonUtils.h: Added ifdefs so file compiles when included from non-Objective-C.
3120         Changed style to match other Carbon headers a bit more closely. Also remove unnecessary includes.
3121         * Carbon.subproj/HIWebView.h: Ditto.
3122
3123         - fixed <rdar://problem/3648505>: "this text file scrolls to the second line instead of first when pressing home"
3124
3125         * WebView.subproj/WebFrameView.m:
3126         (-[WebFrameView _scrollToTopLeft]): Scroll to origin.y instead of assuming that top is 0; can be non-0 for text view.
3127         (-[WebFrameView _scrollToBottomLeft]): Use NSMaxY instead of height for the same reason.
3128
3129 2004-05-17  David Hyatt  <hyatt@apple.com>
3130
3131         Fix for performance regression in PLT caused by not setting _timeOfLastCompletedLoad, causing
3132         page cache to release during the benchmark.
3133         * WebView.subproj/WebFrame.m:
3134         (-[WebFrame _setState:]):
3135
3136 2004-05-17  Chris Blumenberg  <cblu@apple.com>
3137
3138         Implemented new WebView pasteboard methods. Made a lot of factoring changes related to pasteboard management.
3139
3140         Reviewed by john.
3141
3142         * Misc.subproj/WebNSPasteboardExtras.h:
3143         * Misc.subproj/WebNSPasteboardExtras.m:
3144         (+[NSPasteboard _web_writableTypesForURL]): renamed to not include "drag" these types are also used for copying
3145         (+[NSPasteboard _web_writableTypesForImage]): new
3146         (-[NSPasteboard _web_bestURL]): tweak
3147         (-[NSPasteboard _web_writeURL:andTitle:types:]): take an array of types that this method should write, don't declare the types since this complicates things for the caller
3148         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]): ditto
3149         * Misc.subproj/WebNSViewExtras.m:
3150         (-[NSView _web_dragImage:archive:rect:URL:title:event:]): call renamed methods
3151         * WebView.subproj/WebDefaultContextMenuDelegate.m:
3152         (-[WebDefaultUIDelegate copyLinkToClipboard:]): call code factored out to WebView
3153         (-[WebDefaultUIDelegate copyImageToClipboard:]): ditto
3154         * WebView.subproj/WebDocumentPrivate.h:
3155         * WebView.subproj/WebHTMLView.h:
3156         * WebView.subproj/WebHTMLView.m:
3157         (-[WebHTMLView _selectedRTFData]): new factored out method
3158         (-[WebHTMLView _writeSelectionToPasteboard:]): factored code out to writeSelectionWithPasteboardTypes:toPasteboard:
3159         (-[WebHTMLView _dragImageForLinkElement:]): tweak
3160         (-[WebHTMLView _handleMouseDragged:]): call renamed methods
3161         (-[WebHTMLView pasteboardTypesForSelection]): new
3162         (-[WebTextView writeSelectionWithPasteboardTypes:toPasteboard:]): new, code moved from _writeSelectionToPasteboard:
3163         * WebView.subproj/WebHTMLViewPrivate.h:
3164         * WebView.subproj/WebImageView.h:
3165         * WebView.subproj/WebImageView.m:
3166         (-[WebImageView writeImageToPasteboard:types:]): call renamed methods
3167         (-[WebImageView copy:]):
3168         (-[WebImageView writeSelectionToPasteboard:types:]): call renamed methods
3169         * WebView.subproj/WebTextView.h:
3170         * WebView.subproj/WebTextView.m:
3171         (-[WebTextView pasteboardTypesForSelection]): new
3172         (-[WebTextView writeSelectionWithPasteboardTypes:toPasteboard:]): new
3173         * WebView.subproj/WebView.m:
3174         (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]): new
3175         (-[WebView _writeLinkElement:withPasteboardTypes:toPasteboard:]): mew
3176         (-[WebView dragOperationForDraggingInfo:]): implemented API
3177         (-[WebView draggingEntered:]): call API
3178         (-[WebView draggingUpdated:]): ditto
3179         (-[WebView concludeDragOperation:]): ditto
3180         (-[WebView pasteboardTypesForSelection]): implemented API
3181         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]): ditto
3182         (-[WebView pasteboardTypesForElement:]): ditto
3183         (-[WebView writeElement:withPasteboardTypes:toPasteboard:]): ditto
3184         * WebView.subproj/WebViewPrivate.h:
3185
3186 2004-05-17  Ken Kocienda  <kocienda@apple.com>
3187
3188         Reviewed by John
3189
3190         Remove overrides in WebView for scrollPageDown and scrollPageUp.
3191         NSView behavior gives us just what we want, and there is no
3192         special behavior required for editing.
3193
3194         <rdar://problem/3655364>: "Editing: -scrollPageDown: method unimplemented (WebKit editing API)"
3195         <rdar://problem/3655365>: "Editing: -scrollPageUp: method unimplemented (WebKit editing API)"
3196
3197         * WebView.subproj/WebView.h: Comment methods out and add a note about why.
3198         * WebView.subproj/WebView.m: Remove stubbed out implementation.
3199
3200 2004-05-14  Vicki Murley  <vicki@apple.com>
3201
3202         Reviewed by mjs.
3203  
3204         <rdar://problem/3642427>: framework marketing number should be 2.0 for DoubleBarrel release
3205
3206         * WebKit.pbproj/project.pbxproj: change CFBundleShortVersionString to 2.0
3207
3208 2004-05-14  David Hyatt  <hyatt@apple.com>
3209
3210         Eliminate timedLayout.
3211         Reviewed by darin
3212
3213         * WebView.subproj/WebFrame.m:
3214         (-[WebFramePrivate dealloc]):
3215         (-[WebFrame _detachFromParent]):
3216         (-[WebFrame _transitionToLayoutAcceptable]):
3217         (-[WebFrame _setState:]):
3218         (-[WebFrame _checkLoadCompleteForThisFrame]):
3219         (-[WebFrame stopLoading]):
3220         * WebView.subproj/WebFramePrivate.h:
3221
3222 === Safari-140 ===
3223
3224 2004-05-14  Chris Blumenberg  <cblu@apple.com>
3225
3226         Fixed: <rdar://problem/3655495>: (exception loading applets)
3227
3228         Reviewed by kocienda.
3229
3230         * WebCoreSupport.subproj/WebBridge.m:
3231         (-[WebBridge pluginViewWithPackage:attributes:baseURL:]): when calling old cocoa plug-ins, use old keys
3232
3233 2004-05-14  Chris Blumenberg  <cblu@apple.com>
3234
3235         Fixed: <rdar://problem/3655204>: (repro assertion failure and crash loading java applets)
3236
3237         Reviewed by kocienda.
3238
3239         * WebCoreSupport.subproj/WebBridge.m:
3240         (-[WebBridge pluginViewWithPackage:attributes:baseURL:]): call pluginViewWithArguments: for old Cocoa plug-ins
3241
3242 2004-05-14  Chris Blumenberg  <cblu@apple.com>
3243
3244         Copied headers from WebCore.
3245
3246         * DOM.subproj/DOMCore.h:
3247         * DOM.subproj/DOMEvents.h:
3248
3249 2004-05-14  Ken Kocienda  <kocienda@apple.com>
3250
3251         Reviewed by me
3252
3253         * Plugins.subproj/WebPluginController.m:
3254         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]): Fixed a compile error: undeclared identifier. 
3255         Looked like a typo.
3256
3257 2004-05-13  Richard Williamson   <rjw@apple.com>
3258
3259         Backed out mistaken change that I didn't mean to checkin.
3260
3261         * WebCoreSupport.subproj/WebBridge.m:
3262         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
3263
3264 2004-05-13  Richard Williamson   <rjw@apple.com>
3265
3266         Updated to reflect new API.
3267
3268         Reviewed by Chris.
3269
3270         * WebCoreSupport.subproj/WebBridge.m:
3271         (-[WebBridge setIsSelected:forView:]):
3272         * WebView.subproj/WebFrame.m:
3273         (-[WebFrame _reloadForPluginChanges]):
3274
3275 2004-05-13  Chris Blumenberg  <cblu@apple.com>
3276
3277         Fixed some indenting issues in public headers.
3278
3279         * Plugins.subproj/WebJavaPlugIn.h:
3280         * Plugins.subproj/WebPlugin.h:
3281         * Plugins.subproj/WebScriptObject.h:
3282         * WebView.subproj/WebEditingDelegate.h:
3283         * WebView.subproj/WebFrameView.h:
3284         * WebView.subproj/WebPolicyDelegate.h:
3285         * WebView.subproj/WebResourceLoadDelegate.h:
3286         * WebView.subproj/WebView.h:
3287
3288 2004-05-13  Ken Kocienda  <kocienda@apple.com>
3289
3290         Reviewed by Chris
3291
3292         Moved -DOMDocument convenience back to private header.
3293         I mistakenly moved it to the public header earlier today.
3294
3295         * WebView.subproj/WebView.h: Removed
3296         * WebView.subproj/WebViewPrivate.h: Re-added
3297
3298 2004-05-13  Richard Williamson   <rjw@apple.com>
3299
3300         Updated to implementation to reflect new API.  Left old SPI
3301         in place for compatibility.  Can remove when the Java plug-in
3302         updates.
3303
3304         Reviewed by Chris.
3305
3306         * Plugins.subproj/WebPlugin.h:
3307         * Plugins.subproj/WebPluginContainer.h:
3308         * Plugins.subproj/WebPluginController.h:
3309         * Plugins.subproj/WebPluginController.m:
3310         (-[WebPluginController startAllPlugins]):
3311         (-[WebPluginController stopAllPlugins]):
3312         (-[WebPluginController addPlugin:]):
3313         (-[WebPluginController destroyAllPlugins]):
3314         (-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):
3315         (-[WebPluginController showURL:inFrame:]):
3316         (-[WebPluginController webPlugInContainerShowStatus:]):
3317         (-[WebPluginController showStatus:]):
3318         (-[WebPluginController webPlugInContainerSelectionColor]):
3319         (-[WebPluginController selectionColor]):
3320         (-[WebPluginController webFrame]):
3321
3322 2004-05-13  Chris Blumenberg  <cblu@apple.com>
3323
3324         - Added stubs for WebView action and drag & drop customization API's
3325         - Fixed: <rdar://problem/3616555>: (API: Make DOM extensions and WebKit DOM operations public)
3326
3327         Reviewed by rjw.
3328
3329         * DOM.subproj/WebDOMOperations.h: added remaining DOM operations
3330         * DOM.subproj/WebDOMOperationsPrivate.h:
3331         * Misc.subproj/WebKit.h: added new public headers
3332         * WebKit.pbproj/project.pbxproj:
3333         * WebKit.exp: added symbol for WebElementDOMNodeKey
3334         * WebView.subproj/WebUIDelegate.h: added new UI delegate methods
3335         * WebView.subproj/WebView.h: added new pasteboard related methods
3336         * WebView.subproj/WebView.m:
3337         (+[WebView URLFromPasteboard:]): new stub
3338         (+[WebView URLTitleFromPasteboard:]): new stub
3339         (-[WebView dragOperationForDraggingInfo:]): new stub
3340         (-[WebView pasteboardTypesForSelection]): new stub
3341         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]): new stub
3342         (-[WebView pasteboardTypesForElement:]): new stub
3343         (-[WebView writeElement:withPasteboardTypes:toPasteboard:]): new stub
3344         * WebView.subproj/WebViewPrivate.h:
3345
3346 2004-05-13  Richard Williamson   <rjw@apple.com>
3347
3348         Changed imports of all DOM headers.  DOM headers
3349         should be imported using the normal #import <WebCore/foo.h>,
3350         they import is modified when copied to WebKit.
3351
3352         Other approved API changes.  Currently unimplemented.
3353
3354         Reviewed by Chris.
3355
3356         * ChangeLog:
3357         * DOM.subproj/DOM.h:
3358         * DOM.subproj/DOMCSS.h:
3359         * DOM.subproj/DOMCore.h:
3360         * DOM.subproj/DOMEvents.h:
3361         * DOM.subproj/DOMExtensions.h:
3362         * DOM.subproj/DOMHTML.h:
3363         * DOM.subproj/DOMRange.h:
3364         * DOM.subproj/DOMStylesheets.h:
3365         * DOM.subproj/DOMTraversal.h:
3366         * DOM.subproj/DOMViews.h:
3367         * Plugins.subproj/WebPlugin.h:
3368         * Plugins.subproj/WebPluginContainer.h:
3369         * Plugins.subproj/WebPluginPackage.m:
3370         * Plugins.subproj/WebPluginViewFactory.h:
3371         * Plugins.subproj/WebScriptObject.h:
3372         * WebCoreSupport.subproj/WebBridge.m:
3373         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
3374         (-[WebBridge pluginViewWithPackage:attributes:baseURL:]):
3375         * WebKit.exp:
3376         * WebKit.pbproj/project.pbxproj:
3377         * WebView.subproj/WebFrameLoadDelegate.h:
3378         * WebView.subproj/WebView.h:
3379         * WebView.subproj/WebView.m:
3380         (-[WebView windowScriptObject]):
3381         * copy-webcore-files-to-webkit:
3382
3383 2004-05-13  Ken Kocienda  <kocienda@apple.com>
3384
3385         Reviewed by Kevin
3386
3387         Move WebKit editing APIs to public API files.
3388
3389         * WebCoreSupport.subproj/WebBridge.m: Add WebEditingDelegate include.
3390         * WebKit.pbproj/project.pbxproj: Go Xcode!
3391         * WebView.subproj/WebDefaultEditingDelegate.m: Remove WebViewPrivate include; add WebEditingDelegate include.
3392         * WebView.subproj/WebEditingDelegate.h: Added. New file.
3393         * WebView.subproj/WebView.h: Move API-approved interfaces to this file.
3394         * WebView.subproj/WebView.m: Add WebEditingDelegate include.
3395         * WebView.subproj/WebViewPrivate.h: Move API-approved interfaces from this file.
3396
3397 2004-05-12  Chris Blumenberg  <cblu@apple.com>
3398
3399         Fixed: 
3400         <rdar://problem/3633296>: (Japanese input is not working properly in Carbon Web Kit applications (including CarbonWeb))
3401         <rdar://problem/3631390>: (can't toggle between Input Methods (IMEs) using cmd-space in Carbon Web Kit applications)
3402
3403         Reviewed by rjw.
3404
3405         * Carbon.subproj/CarbonWindowAdapter.m:
3406         (-[CarbonWindowAdapter sendSuperEvent:]): call [NSInputContext processInputKeyBindings:inEvent] just as NSApp does
3407         * Carbon.subproj/HIWebView.m:
3408         (HIWebViewEventHandler): [NSApp setWindowsNeedUpdate:YES] must be called before events so that ActivateTSMDocument is called to set an active document. Without an active document, TSM will use a default document which uses a bottom-line input window which we don't want.
3409
3410 2004-05-11  Chris Blumenberg  <cblu@apple.com>
3411
3412         Fixed:
3413         <rdar://problem/3616537>: (API: Make WebResource, WebArchive and related API's public)
3414         <rdar://problem/3616471>: (API: provide way to get from WebFrame to DOMDocument and vice versa)
3415
3416         Reviewed by rjw.
3417
3418         * DOM.subproj/WebDOMOperations.h:
3419         * DOM.subproj/WebDOMOperations.m:
3420         (-[DOMHTMLFrameElement contentFrame]): new
3421         (-[DOMHTMLIFrameElement contentFrame]): new
3422         (-[DOMHTMLObjectElement contentFrame]): new
3423         * DOM.subproj/WebDOMOperationsPrivate.h:
3424         * Misc.subproj/WebNSImageExtras.m:
3425         (-[NSImage _web_saveAndOpen]): fixed leak
3426         * WebKit.pbproj/project.pbxproj:
3427         * WebView.subproj/WebDataSource.h:
3428         * WebView.subproj/WebDataSource.m:
3429         (-[WebDataSource _addSubresources:]): made private
3430         (-[WebDataSource _archiveWithMarkupString:nodes:]): handle object tags with frame content
3431         (-[WebDataSource _archiveWithCurrentState:]): renamed from _archive, now takes flag
3432         (-[WebDataSource _replaceSelectionWithArchive:]): call renamed _addSubresources
3433         (-[WebDataSource webArchive]): new
3434         (-[WebDataSource mainResource]): new
3435         (-[WebDataSource subresources]): made public
3436         (-[WebDataSource subresourceForURL:]): made public
3437         (-[WebDataSource addSubresource:]): made public
3438         * WebView.subproj/WebDataSourcePrivate.h:
3439         * WebView.subproj/WebDocumentPrivate.h:
3440         * WebView.subproj/WebFrame.h:
3441         * WebView.subproj/WebFrame.m:
3442         (-[WebFrame _loadRequest:subresources:subframeArchives:]): call renamed _addSubresources
3443         (-[WebFrame DOMDocument]): new
3444         (-[WebFrame frameElement]): new
3445         (-[WebFrame loadArchive:]): made public
3446         * WebView.subproj/WebFramePrivate.h:
3447         * WebView.subproj/WebHTMLRepresentation.m:
3448         (-[WebHTMLRepresentation loadArchive]): call renamed _addSubresources
3449         * WebView.subproj/WebImageRepresentation.m:
3450         (-[WebImageRepresentation archive]): call webArchive on WebDataSource
3451
3452 2004-05-10  Maciej Stachowiak  <mjs@apple.com>
3453
3454         Reviewed by Darin.
3455
3456         - avoid redecoding animated images that are only used once for
3457         ~2.5% iBench speedup (WebCore part of fix)
3458
3459         * WebCoreSupport.subproj/WebImageRenderer.h:
3460         * WebCoreSupport.subproj/WebImageRenderer.m:
3461         (-[WebImageRenderer increaseUseCount]):
3462         (-[WebImageRenderer decreaseUseCount]):
3463         (-[WebImageRenderer retainOrCopyIfNeeded]):
3464
3465 2004-05-10  Maciej Stachowiak  <mjs@apple.com>
3466
3467         Fix build.
3468
3469         * WebView.subproj/WebFrame.m:
3470
3471 2004-05-09  Maciej Stachowiak  <mjs@apple.com>
3472
3473         Reviewed by Ken.
3474
3475         - avoid messing with undo manager needlessly for ~1% HTML iBench speedup
3476
3477         * WebCoreSupport.subproj/WebBridge.h:
3478         * WebCoreSupport.subproj/WebBridge.m:
3479         (-[WebBridge registerCommandForUndo:]): mark undo/redo item flag
3480         (-[WebBridge registerCommandForRedo:]): ditto
3481         (-[WebBridge clearUndoRedoOperations]): check flag before removing items,
3482         and clear it after removing them
3483
3484 2004-05-08  Maciej Stachowiak  <mjs@apple.com>
3485
3486         Reviewed by Darin.
3487
3488         - -[WebFrame childFrames] is so hot that a special internal
3489         version which avoids the copy and autorelease results in a .75%
3490         performance improvement on HTML iBench.
3491
3492         * WebView.subproj/WebFramePrivate.h: Prototype new method.
3493         * WebView.subproj/WebFrame.m:
3494         (-[WebFrame _internalChildFrames]): New method, just returns
3495         internal value instead of copying.
3496
3497         (-[WebFrame _descendantFrameNamed:]): Use it
3498         (-[WebFrame _textSizeMultiplierChanged]): likewise
3499         (-[WebFrame _viewWillMoveToHostWindow:]): likewise
3500         (-[WebFrame _viewDidMoveToHostWindow]): likewise
3501         (-[WebFrame _saveDocumentAndScrollState]): likewise
3502         (-[WebFrame _numPendingOrLoadingRequests:]): likewise
3503         (-[WebFrame _checkLoadComplete]): Refactored this and it's two
3504         helpers a little so we could get away with using
3505         _internalChildFrames.
3506         (-[WebFrame _checkLoadCompleteForThisFrame]): Renamed from
3507         _isLoadComplete
3508         (-[WebFrame _recursiveCheckLoadComplete]): renamed from (class
3509         method) _recursiveCheckCompleteFromFrame:
3510         * WebView.subproj/WebDataSource.m:
3511         (-[WebDataSource _defersCallbacksChanged]): Use it
3512         (-[WebDataSource isLoading]): likewise
3513         * WebView.subproj/WebView.m:
3514         (-[WebView _frameForDataSource:fromFrame:]): likewise
3515         (-[WebView _frameForView:fromFrame:]): likewise
3516
3517 2004-05-10  Chris Blumenberg  <cblu@apple.com>
3518
3519         Forgot to commit this copied header.
3520
3521         * DOM.subproj/DOMExtensions.h:
3522
3523 === Safari-139 ===
3524
3525 2004-05-06  Chris Blumenberg  <cblu@apple.com>
3526
3527         * DOM.subproj/WebDOMOperations.h: improved a header doc comment
3528
3529 2004-05-05  Chris Blumenberg  <cblu@apple.com>
3530
3531         - DOM Extensions API tweaks
3532
3533         Reviewed by kocienda.
3534
3535         * DOM.subproj/DOMExtensions.h: copied from WebCore
3536         * DOM.subproj/WebDOMOperations.h: added header doc comments
3537         * DOM.subproj/WebDOMOperations.m:
3538         (-[DOMNode _URLsFromSelectors:]): use renamed URLWithAttributeString
3539         (-[DOMDocument URLWithAttributeString:]): renamed
3540         (-[DOMHTMLTableElement _web_background]): new private method
3541         (-[DOMHTMLTableElement _subresourceURLs]): use new private method
3542         (-[DOMHTMLTableCellElement _web_background]): new private method
3543         (-[DOMHTMLTableCellElement _subresourceURLs]): use new private method
3544
3545 2004-05-04  Ken Kocienda  <kocienda@apple.com>
3546
3547         Reviewed by Hyatt
3548
3549         * DOM.subproj/DOMTraversal.h: File coppied from WebCore
3550
3551 2004-05-02  Darin Adler  <darin@apple.com>
3552
3553         Reviewed by Ken.
3554
3555         - fixed <rdar://problem/3640419>: "_webkit_stringByReplacingValidPercentEscapes does not handle %00 properly"
3556
3557         * Misc.subproj/WebNSURLExtras.m: (-[NSString _webkit_stringByReplacingValidPercentEscapes]):
3558         Use the function in NSURL instead of implementing our own here.
3559
3560 2004-04-30  John Sullivan  <sullivan@apple.com>
3561
3562         * WebView.subproj/WebView.m:
3563         fixed deployment build breakage
3564         
3565 2004-04-30  John Sullivan  <sullivan@apple.com>
3566
3567         - more work on getting the font panel to work with editable HTML.
3568         The font panel in Blot now correctly reflects the first selected font when the
3569         selection is at least one character long.
3570
3571         Reviewed by Ken.
3572
3573         * WebView.subproj/WebView.m:
3574         removed unfinished plumbing to support reflecting selected attributes (e.g. text color,
3575         underline) in font panel, since this doesn't work in Mail or TextEdit either.
3576         (_fontFromStyle):
3577         removed assertion for now
3578         (-[WebView _updateFontPanel]):
3579         now uses new bridge method to get the NSFont from the node, instead of trying
3580         to create an NSFont from a DOMCSSStyleDeclaration
3581
3582 2004-04-29  John Sullivan  <sullivan@apple.com>
3583
3584         - more work on getting the font panel to work with editable HTML
3585
3586         Reviewed by Ken.
3587
3588         * WebView.subproj/WebView.m:
3589         (-[WebView computedStyleForElement:pseudoElement:]):
3590         convert nil pseudoElement to empty string because lower level chokes on nil
3591         (_fontFromStyle):
3592         I tried to implement this, but was thwarted by missing API, so I added a
3593         bunch of FIXMEs instead
3594         (_stylesRepresentSameFont):
3595         new function, not yet implementable
3596         (_stylesRepresentSameAttributes):
3597         new function, not yet implementable
3598         (-[WebView _updateFontPanel]):
3599         added code to get first and last element in selection, and to use
3600         NodeIterator to walk through the entire selection to see if more than one
3601         font or set of attributes is in use. However, createNodeIterator is declared
3602         in DOMTraversal.h but not actually defined anywhere, so I had to prevent this
3603         code from actually being called.
3604
3605 2004-04-28  Chris Blumenberg  <cblu@apple.com>
3606
3607         - Made WebArchive and WebResource conform to NSCoding and NSCopying.
3608
3609         Reviewed by rjw.
3610
3611         * DOM.subproj/WebDOMOperations.h: added header doc comment for WebArchive methods
3612         * WebView.subproj/WebArchive.h:
3613         * WebView.subproj/WebArchive.m:
3614         (-[WebArchive initWithCoder:]): new
3615         (-[WebArchive encodeWithCoder:]): new
3616         (-[WebArchive copyWithZone:]): new
3617         * WebView.subproj/WebResource.h:
3618         * WebView.subproj/WebResource.m:
3619         (-[WebResource init]): new
3620         (-[WebResource initWithData:URL:MIMEType:textEncodingName:frameName:]): call [self init]
3621         (-[WebResource initWithCoder:]): new
3622         (-[WebResource encodeWithCoder:]): new
3623         (-[WebResource copyWithZone:]): new
3624
3625 2004-04-28  John Sullivan  <sullivan@apple.com>
3626
3627         A little bit more progress in wiring up the font panel.
3628
3629         Reviewed by Ken.
3630
3631         * WebView.subproj/WebViewInternal.h:
3632         put _updateFontPanel here. Also moved _isLoading here, since it was
3633         already in a category named WebInternal
3634
3635         * WebView.subproj/WebView.m:
3636         (-[WebView _isLoading]):
3637         moved into WebInternal category implementation
3638         (_textAttributesFromStyle):
3639         changed from method to function
3640         (_fontFromStyle):
3641         added, guts not filled in yet
3642         (-[WebView _updateFontPanel]):
3643         now calls these two functions (but results are always nil)
3644         (-[WebView setSelectedDOMRange:affinity:]):
3645         remove call to _updateFontPanel here since it's now called in
3646         the proper bottleneck
3647
3648         * WebCoreSupport.subproj/WebBridge.m:
3649         (-[WebBridge postDidChangeNotification]):
3650         call -[WebView _updateFontPanel] in addition to sending notification
3651         (-[WebBridge postDidChangeSelectionNotification]):
3652         ditto
3653
3654 2004-04-28  John Sullivan  <sullivan@apple.com>
3655
3656         - fixed these bugs:
3657         <rdar://problem/3636570>: "API: [WebPreferences tabsToLinks] should be public API"        
3658         <rdar://problem/3610597>: "API: could turn "stealth browsing" preference into API"
3659
3660         Reviewed by Darin.
3661         
3662         I just moved the declarations and implementations from one place to another.
3663         (No clients in WebKit needed their #imports updated.) This confused cvs diff quite a bit.
3664
3665         * WebView.subproj/WebPreferences.h:
3666         * WebView.subproj/WebPreferences.m:
3667         (-[WebPreferences setTabsToLinks:]):
3668         (-[WebPreferences tabsToLinks]):
3669         (-[WebPreferences setPrivateBrowsingEnabled:]):
3670         (-[WebPreferences privateBrowsingEnabled]):
3671         (-[WebPreferences _pageCacheSize]):
3672         (-[WebPreferences _objectCacheSize]):
3673         (-[WebPreferences _backForwardCacheExpirationInterval]):
3674         * WebView.subproj/WebPreferencesPrivate.h:
3675
3676 2004-04-27  David Hyatt  <hyatt@apple.com>
3677
3678         Cut the time spent on an operation inside widthForNextCharacter from 17% of the function time down to less than 
3679         5% merely by adding a check for non-zero letter-spacing (thus avoiding double precision math in the 
3680         common case where we just add 0 between letters).
3681         Reviewed by rjw
3682
3683         * WebCoreSupport.subproj/WebTextRenderer.m:
3684         (widthForNextCharacter):
3685
3686 2004-04-28  John Sullivan  <sullivan@apple.com>
3687
3688         Initial plumbing to get the font panel to be updated from an editable
3689         WebView.
3690
3691         Reviewed by Ken.
3692
3693         * WebView.subproj/WebView.m:
3694         (-[WebView _textAttributesFromStyle:]):
3695         new dummy method, will need implementation
3696         (-[WebView _updateFontPanel]):
3697         new method, sets the font shown in the font panel from the current
3698         selection. Lots of placeholder stuff.
3699         (-[WebView setSelectedDOMRange:affinity:]):
3700         call _updateFontPanel here for now.
3701
3702 2004-04-28  Ken Kocienda  <kocienda@apple.com>
3703
3704         Reviewed by Darin
3705
3706         * WebCoreSupport.subproj/WebBridge.m:
3707         (-[WebBridge postDidChangeNotification]): Posts Cocoa notification when the document changes
3708         due to editing.
3709         (-[WebBridge postDidChangeSelectionNotification]): Posts Cocoa notification when the document selection
3710         changes.
3711         * WebKit.exp: Export editing notification string constants.
3712         * WebView.subproj/WebView.m: Define editing notification string constants.
3713         (-[WebView computedStyleForElement:pseudoElement:]): Add implementation.
3714         (-[WebView setEditingDelegate:]): Do work to set up delegate to receive notification callbacks.
3715         (-[WebView DOMDocument]): Simplify to just call the bridge DOMDocument. No need to jump through hoops here.
3716         (-[WebView insertNewline:]): Consult delegate before taking action.
3717         (-[WebView deleteBackward:]): Ditto.
3718         (-[WebView insertText:]): Ditto.
3719
3720 2004-04-27  John Sullivan  <sullivan@apple.com>
3721
3722         Fixed broken development build.
3723
3724         * WebView.subproj/WebFrame.m:
3725         (-[WebFrame _transitionToLayoutAcceptable]):
3726         updated bad variable name used only in LOG statement to match
3727         recent change.
3728
3729 2004-04-27  Richard Williamson   <rjw@apple.com>
3730
3731         Fixes for:
3732
3733         <rdar://problem/3279301>: API: WebKitErrorCannotFindPlugin and WebKitErrorCannotLoadPlugin should use PlugIn
3734         <rdar://problem/3278513>: API: Need API to control the size of WebHistory
3735         <rdar://problem/3564519>: API: please add a way to set the media type for a WebView
3736         <rdar://problem/3565642>: API: allow a way to extend the MIME types that a WebView will display
3737         <rdar://problem/3577693>: API: add ability to subclass WebView but still use it with Carbon
3738         
3739         Reviewed by Chris.
3740
3741         * Carbon.subproj/HIWebView.h:
3742         * Carbon.subproj/HIWebView.m:
3743         (HIWebViewCreate):
3744         (HIWebViewCreateWithClass):
3745         (HIWebViewConstructor):
3746         * History.subproj/WebHistory.h:
3747         * History.subproj/WebHistory.m:
3748         (-[WebHistoryPrivate setHistoryAgeInDaysLimit:]):
3749         (-[WebHistoryPrivate historyAgeInDaysLimit]):
3750         (-[WebHistoryPrivate setHistoryItemLimit:]):
3751         (-[WebHistoryPrivate historyItemLimit]):
3752         (-[WebHistoryPrivate _ageLimitDate]):
3753         (-[WebHistoryPrivate arrayRepresentation]):
3754         (-[WebHistory setHistoryItemLimit:]):
3755         (-[WebHistory historyItemLimit]):
3756         (-[WebHistory setHistoryAgeInDaysLimit:]):
3757         (-[WebHistory historyAgeInDaysLimit]):
3758         * History.subproj/WebHistoryPrivate.h:
3759         * Misc.subproj/WebKitErrors.h:
3760         * Misc.subproj/WebKitErrors.m:
3761         (registerErrors):
3762         * Plugins.subproj/WebNetscapePluginDocumentView.m:
3763         (-[WebNetscapePluginDocumentView setDataSource:]):
3764         * WebCoreSupport.subproj/WebBridge.m:
3765         (-[WebBridge isViewSelected:]):
3766         (-[WebBridge overrideMediaType]):
3767         * WebView.subproj/WebView.h:
3768         * WebView.subproj/WebView.m:
3769         (-[WebViewPrivate dealloc]):
3770         (+[WebView MIMETypesShownAsHTML]):
3771         (+[WebView setMIMETypesShownAsHTML:]):
3772         (-[WebView customUserAgent]):
3773         (-[WebView setMediaStyle:]):
3774         (-[WebView mediaStyle]):
3775         * WebView.subproj/WebViewPrivate.h:
3776
3777 2004-04-27  David Hyatt  <hyatt@apple.com>
3778
3779         Eliminate the preferences for timed/resource layouts.  Accessing them is now taking 0.5% on the cvs-base
3780         test, so we're just going to hardcode the values instead.
3781         Reviewed by mjs
3782
3783         * WebView.subproj/WebFrame.m:
3784         (-[WebFrame _transitionToLayoutAcceptable]):
3785         (-[WebFrame _isLoadComplete]):
3786         * WebView.subproj/WebPreferences.m:
3787         (+[WebPreferences initialize]):
3788         (-[WebPreferences _objectCacheSize]):
3789         * WebView.subproj/WebPreferencesPrivate.h:
3790         * WebView.subproj/WebView.m:
3791         (-[WebView _mainReceivedBytesSoFar:fromDataSource:complete:]):
3792
3793 2004-04-27  Ken Kocienda  <kocienda@apple.com>
3794
3795         Reviewed by Hyatt
3796         
3797         Make selections draw in a more Cocoa-like way, where
3798         fully-selected lines draw out to the ends of lines, and
3799         spaces between lines are drawn with the selection color as well.
3800
3801         * Misc.subproj/WebKitNSStringExtras.m: Use new WebCoreTextGeometry struct. No change in functionality.
3802         * WebCoreSupport.subproj/WebTextRenderer.m:
3803         (-[WebTextRenderer drawRun:style:geometry:]): Use new WebCoreTextGeometry struct. No change in functionality.
3804         (-[WebTextRenderer drawHighlightForRun:style:geometry:]): Ditto.
3805         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]): Many changes to add the new selection drawing behavior.
3806         (-[WebTextRenderer _CG_drawRun:style:geometry:]):  Use new WebCoreTextGeometry struct. No change in functionality.
3807         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]): Many changes to add the new selection drawing behavior.
3808         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):  Use new WebCoreTextGeometry struct. No change in functionality.
3809
3810 2004-04-26  Richard Williamson   <rjw@apple.com>
3811
3812         Added support for specifying composite operation on an
3813         image element, i.e.:
3814
3815         <img composite="source-over" src="triangle.png">
3816         <img style="position:relative; left:-200px;" composite="destination-in" src="circle.png">
3817
3818         This feature was requested by the dashboard guys.  They can use it to apply
3819         transparency masks to widgies.
3820
3821
3822         Reviewed by Ken.
3823
3824         * WebCoreSupport.subproj/WebImageRenderer.h:
3825         * WebCoreSupport.subproj/WebImageRenderer.m:
3826         (-[WebImageRenderer initWithMIMEType:]):
3827         (-[WebImageRenderer initWithData:MIMEType:]):
3828         (-[WebImageRenderer initWithContentsOfFile:]):
3829         (-[WebImageRenderer copyWithZone:]):
3830         (-[WebImageRenderer drawClippedToValidInRect:fromRect:]):
3831         (-[WebImageRenderer drawImageInRect:fromRect:]):
3832         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:]):
3833
3834 2004-04-26  Chris Blumenberg  <cblu@apple.com>
3835
3836         More header doc changes after John's review.
3837         * WebView.subproj/WebDataSourcePrivate.h:
3838         * WebView.subproj/WebResource.h:
3839
3840 2004-04-26  Chris Blumenberg  <cblu@apple.com>
3841
3842         * WebView.subproj/WebDataSourcePrivate.h: added some header doc comments
3843         * WebView.subproj/WebFramePrivate.h: fixed header doc typo
3844
3845 2004-04-24  Darin Adler  <darin@apple.com>
3846
3847         Reviewed by Dave.
3848
3849         * Misc.subproj/WebNSURLExtras.m: (hexDigit): Use capitalized hex, not lowercase, for consistency
3850         with similar functions in WebCore and what other web browsers do.
3851
3852 2004-04-23  Darin Adler  <darin@apple.com>
3853
3854         Reviewed by Maciej.
3855
3856         - fixed <rdar://problem/3627362>: "bad access with libgmalloc in -[_WebCoreHistoryProvider containsItemForURLUnicode:length:]"
3857
3858         * History.subproj/WebHistory.m:
3859         (-[_WebCoreHistoryProvider containsItemForURLUnicode:length:]): Add range checks so we
3860         don't overrun the buffer while looking for slashes.
3861
3862 2004-04-23  Chris Blumenberg  <cblu@apple.com>
3863
3864         Reviewed by John
3865
3866         Added header doc comments to proposed API's.
3867
3868         * WebView.subproj/WebArchive.h:
3869         * WebView.subproj/WebFramePrivate.h:
3870         * WebView.subproj/WebResource.h:
3871
3872 === Safari-138 ===
3873
3874 2004-04-23  Ken Kocienda  <kocienda@apple.com>
3875
3876         Reviewed by John
3877
3878         Added some plumbing for applying styles.
3879
3880         * DOM.subproj/DOMExtensions.h: Copied from WebCore.
3881         * WebView.subproj/WebView.m:
3882         (-[WebView DOMDocument]): Added new helper.
3883         (-[WebView styleDeclarationWithText:]): Added new helper.
3884         * WebView.subproj/WebViewPrivate.h: Declare above methods.
3885
3886 2004-04-22  Richard Williamson   <rjw@apple.com>
3887
3888         Updates to plugin binding APIs.
3889         Updates to Java plugin APIs.
3890         Transparency fix for Dashboard.
3891         Reviewed by John and Greg Bolsinga.
3892
3893         * Plugins.subproj/WebPluginJava.h: Added.
3894         New API for Java plugin.        
3895
3896         * Plugins.subproj/npfunctions.h:
3897         * Plugins.subproj/npruntime.h:
3898         (_NPString::):
3899         (_NPString::_NPVariant::):
3900         * Plugins.subproj/npsap.h: Added.
3901         New API for plugin bindings.        
3902
3903         * WebView.subproj/WebHTMLView.m:
3904         (-[WebHTMLView drawRect:]):
3905         Update for Dashboard.  View must fill with transparency when not
3906         drawing background.        
3907
3908         * copy-webcore-files-to-webkit:
3909
3910 2004-04-22  Ken Kocienda  <kocienda@apple.com>
3911
3912         Reviewed by Hyatt
3913
3914         More work to bring code up to date with the latest API proposal. Note that
3915         all of the replaceXXX methods below now operate on the current selection, so
3916         the method implementations have been simplifed accordingly.
3917
3918         * WebView.subproj/WebDataSource.m:
3919         (-[WebDataSource _replaceSelectionWithArchive:]): New name for _replaceSelectionWithWebArchive.
3920         * WebView.subproj/WebDataSourcePrivate.h: Ditto.
3921         * WebView.subproj/WebDefaultEditingDelegate.m:
3922         (-[WebDefaultEditingDelegate webViewShouldBeginEditing:inDOMRange:]): Added inDOMRange: parameter.
3923         (-[WebDefaultEditingDelegate webViewShouldEndEditing:inDOMRange:]): Ditto.
3924         (-[WebDefaultEditingDelegate webView shouldChangeSelectedDOMRange:toDOMRange:proposedRange affinity:stillSelecting:]):
3925         Missed adding affinity in last patch.
3926         * WebView.subproj/WebHTMLView.m:
3927         (-[WebHTMLView _pasteFromPasteboard:]): Call old method with new name: _replaceSelectionWithArchive
3928         * WebView.subproj/WebView.m:
3929         (-[WebView replaceSelectionWithNode:]): New version of insertNode:replacingDOMRange:
3930         (-[WebView replaceSelectionWithText:]): New version of insertText:replacingDOMRange:
3931         (-[WebView replaceSelectionWithMarkupString:]): New version of insertMarkupString:replacingDOMRange:
3932         (-[WebView replaceSelectionWithArchive:]): New version of insertWebArchive:replacingDOMRange:
3933         (-[WebView deleteSelection]): New version of deleteDOMRange:
3934         (-[WebView applyStyle:]): New version of applyStyle:toElementsInDOMRange:
3935         * WebView.subproj/WebViewPrivate.h:
3936
3937 2004-04-22  Ken Kocienda  <kocienda@apple.com>
3938
3939         Reviewed by John
3940
3941         Adds the notion of selection affinity to the editing API, bringing it up to
3942         date with the latest proposal.
3943
3944         * WebView.subproj/WebView.m:
3945         (-[WebView _alterCurrentSelection:direction:granularity:]): Pass selection affinity
3946         to the delegate. We can just pass the current one since this does not change with arrow keys.
3947         (-[WebView setSelectedDOMRange:affinity:]): Set the affinity on the selection.
3948         (-[WebView selectionAffinity]): New accessor.
3949         (-[WebView insertNode:replacingDOMRange:]): Change to pass selection affinity to call
3950         to set selection. This is just to get the code to compile for now, since this method
3951         will soon be removed in place of a similar one from the latest proposal that always
3952         works on the current selection.
3953         (-[WebView insertText:replacingDOMRange:]): Ditto.
3954         (-[WebView insertMarkupString:replacingDOMRange:]): Ditto.
3955         (-[WebView insertWebArchive:replacingDOMRange:]): Ditto.
3956         (-[WebView deleteDOMRange:]): Ditto.
3957         (-[WebView applyStyle:toElementsInDOMRange:]): Ditto.
3958         * WebView.subproj/WebViewPrivate.h: Add selection affinity to API declarations as needed.
3959
3960 2004-04-22  Ken Kocienda  <kocienda@apple.com>
3961
3962         Reviewed by Darin
3963
3964         Work around this bug:
3965         <rdar://problem/3630640>: "Calling interpretKeyEvents: in a custom text view can fail to process keys right after app startup"
3966
3967         * WebView.subproj/WebView.m:
3968         (-[WebView _editingKeyDown:]): The issue is with a message to nil in AppKit
3969         key binding manager code. Add call to [NSKeyBindingManager sharedKeyBindingManager] to make
3970         sure the not-supposed-to-be-nil object is created before calling interpretKeyEvents:.
3971
3972 2004-04-22  Ken Kocienda  <kocienda@apple.com>
3973
3974         Reviewed by Hyatt
3975
3976         Added calls to ensure caret visibility after the editing action is done.
3977
3978         * WebView.subproj/WebView.m:
3979         (-[WebView _alterCurrentSelection:direction:granularity:]):
3980         (-[WebView insertNewline:]):
3981         (-[WebView deleteBackward:]):
3982         (-[WebView insertText:]):
3983
3984 2004-04-20  Chris Blumenberg  <cblu@apple.com>
3985
3986         Fixed: <rdar://problem/3605209>: "HITLIST: REGRESSION (131-132): iframes/frames no longer dump on layout tests"
3987
3988         Reviewed by hyatt.
3989
3990         * WebView.subproj/WebHTMLRepresentation.m:
3991         (-[WebHTMLRepresentation finishedLoadingWithDataSource:]): the encoding was not being set in the about:blank case. Call receivedData:textEncodingName: as we did in the past to set it.
3992
3993 2004-04-20  Ken Kocienda  <kocienda@apple.com>
3994
3995         Reviewed by Hyatt
3996
3997          Added implementations for these methods.
3998
3999         * WebView.subproj/WebView.m:
4000         (-[WebView moveUpAndModifySelection:]):
4001         (-[WebView moveWordLeft:]):
4002         (-[WebView moveWordLeftAndModifySelection:]):
4003         (-[WebView moveWordRight:]):
4004         (-[WebView moveWordRightAndModifySelection:]):
4005
4006 2004-04-20  John Sullivan  <sullivan@apple.com>
4007
4008         - fixed <rdar://problem/3622393>: When in stealth mode, visited webpage 
4009         contents should not be cached to disk
4010
4011         Reviewed by Ken.
4012
4013         * WebView.subproj/WebBaseResourceHandleDelegate.m:
4014         (-[WebBaseResourceHandleDelegate willCacheResponse:]):
4015         if will cache to disk and in stealth mode, replace cache response with
4016         an identical one that won't cache to disk.
4017
4018 2004-04-19  Ken Kocienda  <kocienda@apple.com>
4019
4020         Reviewed by Hyatt
4021
4022         * WebView.subproj/WebView.m:
4023         (-[WebView moveDown:]): Added implementation.
4024         (-[WebView moveUp:]): Added implementation.
4025
4026 2004-04-19  Chris Blumenberg  <cblu@apple.com>
4027
4028         Added support for pasting frames via WebArchives.
4029
4030         Reviewed by kocienda.
4031
4032         * WebView.subproj/WebDataSource.m:
4033         (-[WebDataSource _addSubframeArchives:]): renamed, now allows subframe archives to be added at anytime
4034         (-[WebDataSource _popSubframeArchiveWithName:]): renamed, now deletes the returned subframe to consume less memory
4035         (-[WebDataSource _replaceSelectionWithWebArchive:]): added support for subframes
4036         * WebView.subproj/WebDataSourcePrivate.h:
4037         * WebView.subproj/WebFrame.m:
4038         (-[WebFrame _loadRequest:subresources:subframeArchives:]): call renamed methods
4039         (-[WebFrame _loadURL:intoChild:]): ditto
4040         * WebView.subproj/WebHTMLRepresentation.m:
4041         (-[WebHTMLRepresentation loadArchive]): ditto
4042
4043 === Safari-137 ===
4044
4045 2004-04-16  Richard Williamson   <rjw@apple.com>
4046
4047         Added an SPI to allow ObjC instances to be easily bound to 
4048         JS.  This is needed by the dashboard guys for their prototyping.
4049         Eventually they will use new API.
4050
4051         Reviewed by Chris.
4052
4053         * WebView.subproj/WebView.m:
4054         (-[WebView _bindObject:withName:toFrame:]):
4055         * WebView.subproj/WebViewPrivate.h:
4056
4057 2004-04-16  Chris Blumenberg  <cblu@apple.com>
4058
4059         Fixed: <rdar://problem/3587599>: Mail Page, Web Archives don't preserve subframes
4060         Moved code that assembled subresource URLs from DOM nodes from WebCore to WebKit.
4061
4062         Reviewed by rjw.
4063
4064         * DOM.subproj/DOMExtensions.h: copied from WebCore
4065         * DOM.subproj/WebDOMOperations.h:
4066         * DOM.subproj/WebDOMOperations.m:
4067         (-[DOMNode webArchive]): call renamed methods
4068         (-[DOMNode markupString]): ditto
4069         (-[DOMNode _URLsFromSelectors:]): new, returns array of URLs given selectors
4070         (-[DOMNode _subresourceURLs]): new, base class does nothing, subclasses call _URLsFromSelectors with URL selectors
4071         (-[DOMDocument webFrame]): new
4072         (-[DOMRange webArchive]): call renamed methods
4073         (-[DOMRange markupString]): ditto
4074         (-[DOMHTMLBodyElement _subresourceURLs]): new
4075         (-[DOMHTMLInputElement _subresourceURLs]): new
4076         (-[DOMHTMLLinkElement _subresourceURLs]): new
4077         (-[DOMHTMLScriptElement _subresourceURLs]): new
4078         (-[DOMHTMLImageElement _subresourceURLs]): new
4079         (-[DOMHTMLEmbedElement _subresourceURLs]): new
4080         (-[DOMHTMLObjectElement _subresourceURLs]): new
4081         (-[DOMHTMLParamElement _subresourceURLs]): new
4082         (-[DOMHTMLTableElement _subresourceURLs]): new
4083         (-[DOMHTMLTableCellElement _subresourceURLs]): new
4084         * WebKit.pbproj/project.pbxproj:
4085         * WebView.subproj/WebArchive.h:
4086         * WebView.subproj/WebArchive.m:
4087         (-[WebArchivePrivate dealloc]): release new subframeArchives ivar