Reviewed by Darin Adler.
[WebKit-https.git] / WebKit / ChangeLog
1 2005-11-01  John Sullivan  <sullivan@apple.com>
2
3         Reviewed by Darin Adler.
4         
5         fixed deployment build by hiding local variables used only in ASSERTs on builds for
6         which ASSERT_DISABLED is true.
7
8         * History.subproj/WebHistory.m:
9         (-[WebHistoryPrivate removeItemForURLString:]):
10         (-[WebHistoryPrivate setLastVisitedTimeInterval:forItem:]):
11
12 2005-11-01  John Sullivan  <sullivan@apple.com>
13
14         Reviewed by Tim Omernick.
15         
16         - fixed <rdar://problem/4324104> Assertion failure (foundDate) in WebHistory
17         
18         WebFrame was updating the last visited date on a WebHistoryItem behind WebHistory's
19         back, causing WebHistory's caches of items by date to get out of sync with reality.
20         Changed to set the date through WebHistory rather than directly.
21
22         * History.subproj/WebHistory.m:
23         (-[WebHistoryPrivate _removeItemFromDateCaches:]):
24         New method, extracted from removeItemForURLString.
25         (-[WebHistoryPrivate removeItemForURLString:]):
26         Now calls extracted method. Cleaned up white space a little.
27         (-[WebHistoryPrivate _addItemToDateCaches:]):
28         New method, extracted from addItem:
29         (-[WebHistoryPrivate addItem:]):
30         Now calls extracted method. Cleaned up white space a little.
31         (-[WebHistoryPrivate setLastVisitedTimeInterval:forItem:]):
32         New method, removes item from date caches, changes date, then adds item back to
33         date caches and sends notification.
34         (-[WebHistory setLastVisitedTimeInterval:forItem:]):
35         New method, cover for WebHistoryPrivate version.
36         
37         * History.subproj/WebHistoryItem.m:
38         (-[WebHistoryItem _setLastVisitedTimeInterval:]):
39         Don't send notification here; send from new WebHistory method instead.
40         
41         * History.subproj/WebHistoryItemPrivate.h:
42         Added comment about avoiding incorrect use of _setLastVisitedTimeInterval:
43         * History.subproj/WebHistoryPrivate.h:
44         Added declarations for WebHistory and WebHistoryPrivate versions of 
45         setLastVisitedTimeInterval:forItem:
46         
47         * WebView.subproj/WebFrame.m:
48         (-[WebFrame _transitionToCommitted:]):
49         change history item's date via new WebHistory method rather than directly
50
51 2005-10-25  Timothy Hatcher  <timothy@apple.com>
52
53         Reviewed by Darin.
54
55         Remove the use of a stamp file in the Frameworks symlink build phase.
56         This lets us pass the build verification.
57
58         * WebKit.xcodeproj/project.pbxproj:
59
60 2005-10-24  Darin Adler  <darin@apple.com>
61
62         Reviewed by Geoff.
63
64         - change internal methods in WebTextRenderer to be functions in case this
65           has any effect on speed (also makes things a bit clearer, in my opinion)
66
67         * WebCoreSupport.subproj/WebTextRenderer.h: Made all fields public, which is
68         OK since this is really a private class. Made setAlwaysUseATSU: class method
69         public too for the same reason.
70
71         * WebCoreSupport.subproj/WebTextRenderer.m: Change all methods to functions.
72         (destroy): Function name for method free.
73         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]): Removed code to first subtract
74         lineSpacing - descent, then later add it back.
75         (getSmallCapsRenderer): Function name for method smallCapsRenderer.
76         (findSubstituteFont): Function name for method substituteFontForString:families:.
77         (findSubstituteRenderer): Function name for method substituteRendererForCharacters:length:families:.
78         (updateGlyphMapEntry): Function name for method updateGlyphEntryForCharacter:glyphID:substituteRenderer:.
79         (extendGlyphMap): Function name for method extendCharacterToGlyphMapToInclude:.
80         (extendWidthMap): Function name for method extendGlyphToWidthMapToInclude:.
81         (getTextBounds): Function name for method trapezoidForRun:style:atPoint:.
82
83 2005-10-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
84
85         Reviewed by Darin.  Committed by David Harrison.
86
87         http://bugzilla.opendarwin.org/show_bug.cgi?id=5415
88         "Left border of selection highlight leaves behind a trail"
89         
90         * manual-tests/drag_select_highlighting.html: Added.
91         (this test case was added to WebCore)
92    
93         * WebCoreSupport.subproj/WebTextRenderer.m:
94         (overrideLayoutOperation):
95         (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]):
96         (-[WebTextRenderer ATSU_drawHighlightForRun:style:geometry:]):
97         (advanceWidthIterator):
98
99
100 2005-10-23  Tim Omernick  <tomernick@apple.com>
101
102         Reviewed by Dave Hyatt.
103
104         <http://bugzilla.opendarwin.org/show_bug.cgi?id=5365>
105
106         Send -webPlugInStop (or -pluginStop) and -webPluginDestroy (or -pluginDestroy)
107         to complying plugins right when they're removed from the WebHTMLView, and also
108         release them from the plugin controller's arrays.
109         
110         I think this patch makes WebKit behave more like plugins expect it to, which is
111         the way it already behaves with Netscape plugins.
112         
113         I expect complying plugins to stop making noise when receiving the stop
114         message, but QuickTime doesn't. If it's lucky, then it will be deallocated
115         because of the release and will stop then. However, JS, for one, can retain the
116         plugin (e.g. if you execute <javascript:document.getElementById('obj').width;>
117         before clicking Remove OBJECT), in which case it will just keep playing.
118         
119         * Plugins.subproj/WebPluginController.h:
120         * Plugins.subproj/WebPluginController.m:
121         (-[WebPluginController destroyPlugin:]):
122         Stop and destroy the plugin.
123         * WebView.subproj/WebHTMLView.m:
124         (-[NSArray willRemoveSubview:]):
125         Destroy plugins when they are removed from the HTML view.
126         
127 2005-10-23  Geoffrey Garen  <ggaren@apple.com>
128
129         Reviewed by Maciej.
130
131         For better abstraction, made the tokenizer -- instead of the 
132         data source -- responsible for calling [WebFrame _checkLoadComplete]
133         when the tokenizer stops.
134
135         * WebView.subproj/WebDataSource.m:
136         (-[WebDataSource _stopLoadingInternal]):
137
138 2005-10-21  Geoffrey Garen  <ggaren@apple.com>
139
140         Reviewed by darin.
141         
142         WebKit side of the fix for <rdar://problem/4184719> window.print() followed by 
143         window.close() causes world leak
144         
145         No test case added because I have another reviewed patch that will include a test
146         for this bug as well as many others.
147
148         Under some conditions, [WebDataSource stopLoading] did not set [WebDataSource isLoading]
149         to false, so the didFInishLoad delegates never fired.
150         
151         The reason isLoading didn't become false was that the tokenizer was still running.
152         The fix here is to move the call to [WebCoreBridge stopLoading] above the early return
153         inside [WebDataSource stopLoading] -- since the tokenizer may still be running even if the
154         loader is finished loading -- and then to call [WebFrame _checkLoadComplete] to 
155         give the frame a chance to fire its delegates.
156         
157         * WebView.subproj/WebDataSource.m:
158         (-[WebDataSource _stopLoadingInternal]):
159
160 2005-10-21  Beth Dakin  <bdakin@apple.com>
161
162         Reviewed by Darin??
163
164         Fix for <rdar://problem/3853672> Malformed HTML using crashes Safari in NSFireTimer
165
166         The webFrame was being deleted prematurely by a call to stop(), so we changed it
167         so that the calls to _receivedMainResourceError and _mainReceivedError happen 
168         before the stop(), and we retain the bridge.
169
170         * WebView.subproj/WebDataSource.m:
171         (-[WebDataSource _receivedMainResourceError:complete:]):
172
173 2005-10-21  Geoffrey Garen  <ggaren@apple.com>
174
175         Patch by TimO, Reviewed by hyatt, tested and landed by me.
176
177         Found what appears to be a misguided optimization that actually causes a measurable performance problem.
178         A fixed-size buffer was allocated on the stack to pass into CFURLGetBytes(), presumably to avoid malloc()
179         for URLs less than 2048 bytes.  There was also a fallback which malloc()'ed a buffer in case the fixed-size
180         buffer was too small to hold the URL's bytes.  This malloc()'ed buffer was then wrapped in an NSData using
181         +dataWithBytesNoCopy:length:, avoiding a memory copy (yay!)
182
183         The problem with this approach is two-fold:
184     
185         1. Regardless of how the buffer was allocated and filled, it is immediately wrapped in an NSData using
186         +dataWithBytes:length:, which copies the input bytes.  This is pretty much unavoidable; we need to get
187         the data into a malloc()'ed buffer to return it to the caller, unless the caller provides its own storage
188         (which would be super inconvenient).
189     
190         2. The size of the fixed buffer was large enough that it fit most (if not all) URLs involved in our Page
191         Load Test.  This means the unintentionally-inefficient case was by far the most *common* case!
192         
193         My fix is to malloc() the buffer from the start, and then use +[NSData dataWithBytes:length:freeWhenDone:]
194         to wrap the buffer in an NSData.  This avoids a memory copy for the normal case where a URL is less than
195         2048 bytes, and keeps the efficient behavior for the uncommon long URL case.
196
197         * Misc.subproj/WebNSURLExtras.m:
198         (-[NSURL _web_originalData]):
199
200 2005-10-21  Mitz Pettel  <opendarwin.org@mitzpettel.com>
201
202         Reviewed and landed by Darin.
203
204         - fixed a couple regressions caused by my last check-in
205           http://bugzilla.opendarwin.org/show_bug.cgi?id=5437
206           http://bugzilla.opendarwin.org/show_bug.cgi?id=5443
207
208         * WebCoreSupport.subproj/WebTextRenderer.m:
209         (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]): Compute background width
210         correctly, by subtracting position after run from position before run.
211         (addDirectionalOverride): Make the range include only the characters between the
212         directional override characters, not the directional override characters themselves.
213         (initializeWidthIterator): Correctly compute "widthToStart" based on the offset to
214         the beginning of the run, not to the end of the run!
215
216 2005-10-19  Darin Adler  <darin@apple.com>
217
218         Reviewed by Maciej.
219
220         - optimizations for a total of about 1% speed-up on PLT
221
222         * WebCoreSupport.subproj/WebTextRenderer.h: Updated to use bool instead of BOOL,
223         since BOOL is a signed char (which is not so efficient, at least on PPC).
224         * WebCoreSupport.subproj/WebTextRenderer.m:
225         (isSpace): Changed BOOL to bool and UniChar to UChar32. This actually fixes a
226         potential bug when the passed-in character is a non-BMP character (> FFFF).
227         (isRoundingHackCharacter): Ditto.
228         (widthForGlyph): Merged getUncachedWidth, widthFromMap, and widthForGlyph into
229         one function. Marked it inline. Changed to include syntheticBoldOffset in the
230         cached widths to save an add in the cached case. Instead of the special constant
231         UNINITIALIZED_GLYPH_WIDTH, just check for a width >= 0. This allows us to use
232         a negative number or NAN for the uninitialized width value -- I chose NAN.
233         (overrideLayoutOperation): Use bool instead of Boolean in one place.
234         (-[WebTextRenderer initWithFont:]): Use lroundf instead of ROUND_TO_INT.
235         (-[WebTextRenderer floatWidthForRun:style:]): Put the code to choose the ATSU
236         vs. CG code path back in here, because there are no callers inside the class
237         that need to call both.
238         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
239         Use bool instead of BOOL.
240         (+[WebTextRenderer setAlwaysUseATSU:]): Ditto.
241         (fontContainsString): Ditto.
242         (-[WebTextRenderer computeWidthForSpace]): Ditto. Also use roundf instead of
243         using ROUND_TO_INT.
244         (-[WebTextRenderer setUpFont]): Use bool instead of BOOL.
245         (drawGlyphs): Ditto.
246         (-[WebTextRenderer CG_drawHighlightForRun:style:geometry:]): Restructure the
247         code so it can use the new advanceWidthIterator function instead of the old
248         widthForNextCharacter function.
249         (-[WebTextRenderer CG_drawRun:style:geometry:]): Use malloc instead of calloc
250         since we don't need initialization. Call CG_floatWidthForRun instead of
251         floatWidthForRun -- no need to re-check whether to use the CG or ATSU code path.
252         Removed code to handle a renderer of 0 since we no longer generate that in
253         the renderers array in advanceWidthIterator.
254         (CG_floatWidthForRun): Changed to call the new advanceWidthIterator instead of
255         the old widthForNextCharacter.
256         (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]): Use malloc instead of
257         calloc and explicitly initialize the one field that needs it. Fixed a potential
258         storage leak by adding a call to WKClearGlyphVector. Initialize the renderers
259         to self instead of to 0.
260         (-[WebTextRenderer extendGlyphToWidthMapToInclude:]): Initialize the widths to
261         NAN instead of UNINITIALIZED_GLYPH_WIDTH.
262         (addDirectionalOverride): Fixed bug where the first and last character in the buffer
263         could be uninitialized and where characters before and after the direction override
264         could be incorrect.
265         (-[WebTextRenderer ATSU_drawRun:style:geometry:]): Use bool instead of BOOL.
266         (-[WebTextRenderer ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
267         Ditto.
268         (advanceWidthIteratorOneCharacter): Added new helper function for CG_pointToOffset.
269         (-[WebTextRenderer CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
270         Reimplemented to use advanceWidthIteratorOneCharacter instead of widthForNextCharacter.
271         Also call CG_floatWidthForRun instead of floatWidthForRun since we don't need to
272         reconsider whether to use CG or ATSU.
273         (glyphForCharacter): Removed the map parameter and changed the renderer parameter to
274         be an in-out one. Removed uneeded special case for when map is 0 and always get the
275         renderer from the map. Also call extendCharacterToGlyphMapToInclude in here instead of
276         making that the caller's responsibility.
277         (initializeWidthIterator): Renamed to make the name shorter (removed "Character").
278         Streamlned common cases like "no padding" and removed some unneeded casts. Changed to
279         use advanceWidthIterator to compute width fo the first part of the run.
280         (normalizeVoicingMarks): Factored this out into a separate function, since it's not part
281         of the common case.
282         (advanceWidthIterator): Changed widthForNextCharacter to this, eliminating per-character
283         function overhead for iterating past a few characters. Merged the handling of surrogate
284         pairs and of voicing marks so that we typically only have to do one "if" to rule out both.
285         Merged the mirroring for RTL and uppercasing for small caps into a single boolean so that
286         we only need one "if" to rule out both. Call the new glyphForCharacter. Check for the
287         character '\t' first since that's cheaper than looking at tabWidth. Check tabWidth for 0
288         first so that we don't have to convert it to floating point when not using it. Changed
289         the special case for spaces to first check width, so that we don't bother with the rest
290         of the code for glyphs not the same width as spaces. Fixed substitution code to call
291         CG_floatWidthForRun -- no need to reconsider whether to use CG or ATSU. Also changed to
292         properly get width from the result of that function. Merged the handling of letter spacing,
293         padding, and word spacing into a single boolean so that we typically only have to do one
294         "if" to rule out all three. Check for letterSpacing of 0 first so that we don't have to
295         convert it to floating point when not using it. Same for padding and wordSpacing.
296         Move the work from ceilCurrentWidth in line into this function. Assume that either we have
297         all three pointers (widths, renderers, glyphs), or none of the three, to cut down on branches.
298         (fillStyleWithAttributes): Use bool instead of BOOL.
299         (shouldUseATSU): Ditto.
300
301         * Misc.subproj/WebKitNSStringExtras.m: (-[NSString _web_widthWithFont:]): Update since
302         the floatWidthForRun method no longer takes a widths parameter.
303         * Misc.subproj/WebStringTruncator.m: (stringWidth): Ditto.
304
305 2005-10-19  Tim Omernick  <tomernick@apple.com>
306
307         Reviewed by eseidel & darin.
308
309         Changed some of the run measurement methods to C functions
310         to avoid overhead associated with objc_msgSend().
311                 
312         * WebCoreSupport.subproj/WebTextRenderer.m:
313         (-[WebTextRenderer floatWidthForRun:style:widths:]):
314         Updated to call new run measurement functions instead
315         of calling ObjC methods.
316         (-[WebTextRenderer CG_drawRun:style:geometry:]): ditto
317         (floatWidthForRun): ditto
318         (CG_floatWidthForRun): ditto
319         (ATSU_floatWidthForRun): ditto
320         (widthForNextCharacter): ditto
321
322 2005-10-14  Vicki Murley  <vicki@apple.com>
323
324         Changes by Mitz Pettel, reviewed by Maciej.
325
326         Fix http://bugzilla.opendarwin.org/show_bug.cgi?id=5029 (Assertion failure in -[NSPasteboard(WebExtras) 
327         _web_writeImage:URL:title:archive:types:] when trying to drag an image from a site with no favicon)
328
329         * Misc.subproj/WebNSPasteboardExtras.m:
330         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]): Prefer the main resource if it is an image
331
332 2005-10-12  Vicki Murley  <vicki@apple.com>
333
334         Reviewed by Darin.
335
336         - fix <rdar://problem/4043643> iframe swallows events for overlapping elements (3449)
337
338         * WebView.subproj/WebHTMLView.m:
339         (-[WebHTMLView hitTest:]): 
340         (-[WebHTMLView _updateMouseoverWithEvent:]): eliminate _hitViewForEvent hackery and self
341         dependency from this function
342
343 2005-10-12  Timothy Hatcher  <timothy@apple.com>
344
345         Reviewed by Darin.
346         
347         Define WebNSInt and WebNSUInt to wrap around NSInt on Leopard and still build on Tiger
348         Once building on Tiger isn't needed we will drop WebNSInt and use NSInt
349
350         * WebView.subproj/WebDefaultResourceLoadDelegate.m:
351         (-[WebDefaultResourceLoadDelegate webView:resource:didReceiveContentLength:fromDataSource:]):
352         * WebView.subproj/WebFrame.m:
353         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
354         * WebView.subproj/WebLoader.m:
355         (-[NSURLProtocol didReceiveData:lengthReceived:]):
356         * WebView.subproj/WebResourceLoadDelegate.h:
357         * WebView.subproj/WebUIDelegate.h:
358         * WebView.subproj/WebView.h:
359         * WebView.subproj/WebView.m:
360         (-[WebView _mouseDidMoveOverElement:modifierFlags:]):
361         (-[WebView spellCheckerDocumentTag]):
362         * WebView.subproj/WebViewInternal.h:
363         * WebView.subproj/WebViewPrivate.h:
364
365 2005-10-12  Darin Adler  <darin@apple.com>
366
367         * WebView.subproj/WebPolicyDelegate.h: Fix a comment.
368
369 2005-10-11  Timothy Hatcher  <timothy@apple.com>
370
371         Reviewed by Darin.
372         
373         Test for 10.4 because of <rdar://problem/4243463>
374
375         * WebView.subproj/WebHTMLView.m:
376         (-[WebHTMLView conversationIdentifier]):
377
378 2005-10-11  Adele Peterson  <adele@apple.com>
379
380         Rolling out fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=5195
381         since it caused:
382
383         REGRESSION text areas draw focus ring around each glyph, no caret in text fields
384         http://bugzilla.opendarwin.org/show_bug.cgi?id=5335
385
386         * WebView.subproj/WebHTMLView.m:
387         (-[WebHTMLView _propagateDirtyRectsToOpaqueAncestors]):
388         (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
389         (-[WebHTMLView _recursiveDisplayAllDirtyWithLockFocus:visRect:]):
390
391 2005-10-09  Darin Adler  <darin@apple.com>
392
393         Reviewed by Maciej.
394
395         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5195
396           Would like API to flush rendering of pending DOM changes
397
398         This was actually a Tiger regression. When AppKit added a new code path for rendering
399         NSView, our special hack for doing layout when we draw didn't work any more. So we
400         were able to fix this without adding any API.
401
402         * WebView.subproj/WebHTMLView.m:
403         (-[WebHTMLView _recursiveDisplayRectIgnoringOpacity:inContext:topView:]): Added.
404         Does the same thing that other _recursiveDisplay methods do.
405
406 2005-10-08  Alexey Proskuryakov  <ap@nypop.com>
407
408         Reviewed by Maciej.
409
410         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5187
411           UTF-8 in long text files breaks at some point
412
413         * WebView.subproj/WebTextRepresentation.m:
414         (-[WebTextRepresentation finishedLoadingWithDataSource:]):
415         Call flushReceivedData on the WebTextView so it can decode any final bytes.
416
417         * WebView.subproj/WebTextView.h: Added WebCoreTextDecoder field and flushReceivedData method.
418         * WebView.subproj/WebTextView.m:
419         (-[WebTextView dealloc]): Release WebCoreTextDecoder.
420         (-[WebTextView appendReceivedData:fromDataSource:]): Create a WebCoreTextDecoder to decode
421         the text; use the textEncodingName from the data source. Use it to decode instead of the
422         data source's stringWithData.
423         (-[WebTextView flushReceivedData]): Call flush on the decoder and append any last bytes to
424         the text view.
425
426 2005-10-07  John Sullivan  <sullivan@apple.com>
427
428         Reviewed by Tim Omernick.
429         
430         WebKit support for allowing clients to know which frame originated a particular JavaScript alert/dialog.
431
432         * WebView.subproj/WebUIDelegatePrivate.h:
433         New optional delegate methods for the three JavaScript alert/dialogs. These are just like the existing
434         ones in WebUIDelegate.h except that each adds a parameter specifying the frame that the JavaScript was
435         running in. Eventually we'll deprecate the old three methods in favor of these in the public API.
436         
437         * WebCoreSupport.subproj/WebBridge.m:
438         (-[WebBridge runJavaScriptAlertPanelWithMessage:]):
439         Call version of the delegate method that has the frame parameter if the delegate supports it.
440         (-[WebBridge runJavaScriptConfirmPanelWithMessage:]):
441         ditto
442         (-[WebBridge runJavaScriptTextInputPanelWithPrompt:defaultText:returningText:]):
443         ditto
444         
445         * WebView.subproj/WebDefaultUIDelegate.m:
446         (-[WebDefaultUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:]):
447         Now implements the new version of the delegate method that includes the frame parameter. (Still
448         doesn't do anything though.)
449         (-[WebDefaultUIDelegate webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:]):
450         Now implements the new version of the delegate method that includes the frame parameter. (Still
451         doesn't do anything though.)
452         (-[WebDefaultUIDelegate webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:]):
453         Now implements the new version of the delegate method that includes the frame parameter. Doesn't
454         actually use the frame parameter here yet though.
455         
456 2005-10-06  Darin Adler  <darin@apple.com>
457
458         - fixed compiling on Deployment
459
460         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer initWithFont:]):
461         Put initialFont inside !LOG_DISABLED.
462
463 2005-10-06  Darin Adler  <darin@apple.com>
464
465         Reviewed by Eric.
466
467         - tweaked formatting
468
469         * WebCoreSupport.subproj/WebTextRenderer.m: Changed function names to remove underscores;
470         fixed formatting to match our coding guidelines, other related tweaks.
471
472 2005-10-06  Darin Adler  <darin@apple.com>
473
474         Reviewed by Eric.
475
476         - fixed regression in drawing of text in non-flipped contexts from my last check-in
477
478         * WebCoreSupport.subproj/WebTextRenderer.m:
479         (drawGlyphs): Only flip the matrix if the NSGraphicsContext is flipped.
480         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]): Use -[NSGraphicsContext isFlipped]
481         instead of [[NSView focusView] isFlipped].
482
483 2005-10-06  Darin Adler  <darin@apple.com>
484
485         Reviewed by Hyatt.
486
487         - fixed <rdar://problem/3217793> Monaco bold comes out as Helvetica bold, very bad if you choose Monaco as your fixed-width font
488         - fixed <rdar://problem/3256269> CSS1: bold/italic font styles not programmatically created if font doesn't include them (3231)
489           also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3231>
490
491         * WebCoreSupport.subproj/WebTextRenderer.h: Removed public declarations of private structures that are not
492         used in the header. Removed the separate 16-bit character map; the difference in code size is only a few
493         bytes per page and there's no measurable performance difference by always using the 32-bit character version.
494         Removed substitute font width maps altogether, since we now use the width map in the substitute font's renderer.
495         Also removed a few more now-unused fields and methods. Changed initWithFont to take WebCoreFont. Changed
496         the setAlwaysUseATSU: method to remove the underscore prefix.
497
498         * WebCoreSupport.subproj/WebTextRenderer.m:
499         (getUncachedWidth): Get font from WebCoreFont directly instead of taking a parameter, since we now use only
500         one NSFont per WebTextRenderer.
501         (widthFromMap): Removed NSFont parameter for same reason as above; simplified.
502         (widthForGlyph): Ditto.
503         (overrideLayoutOperation): Updated for change to WebCoreFont.
504         (-[WebTextRenderer initWithFont:]): Changed to use WebCoreFont. Removed code to deal with substitute font maps.
505         Changed lineGap computation to use floats instead of doubles. Added code to compute a synthetic bold offset.
506         Currently this is the font size divided by 24 and then rounded up to an integer.
507         (-[WebTextRenderer dealloc]): Updated for change to WebCoreFont and other related changes.
508         (-[WebTextRenderer finalize]): Ditto.
509         (-[WebTextRenderer xHeight]): Ditto.
510         (-[WebTextRenderer drawRun:style:geometry:]): Remove small caps case here; no longer needed. Also updated as above.
511         (-[WebTextRenderer floatWidthForRun:style:widths:]): Ditto.
512         (-[WebTextRenderer drawHighlightForRun:style:geometry:]): Ditto.
513         (-[WebTextRenderer pointToOffset:style:position:reversed:includePartialGlyphs:]): Ditto.
514         (+[WebTextRenderer setAlwaysUseATSU:]): Renamed to remove underscore prefix.
515         (-[WebTextRenderer smallCapsRenderer]): Ditto. Changed to create a renderer for the smaller sized font.
516         (-[WebTextRenderer _substituteFontForString:families:]): Reorganized this to be more readable and to call
517         the new rendererForAlternateFont method.
518         (-[WebTextRenderer rendererForAlternateFont:]): Added. Used to select an alternate font taking into account
519         bold and italic synthesis.
520         (-[WebTextRenderer substituteRendererForCharacters:length:families:]): Renamed to remove underscore prefix.
521         Updated to use rendererForAlternateFont.
522         (-[WebTextRenderer _computeWidthForSpace]): Updated for name changes and to remove unnecessary parameters.
523         (-[WebTextRenderer setUpFont]): Renamed to remove underscore prefix. Added code to get printer or screen
524         font as specified by WebCoreFont so calers don't need to do this.
525         (drawGlyphs): Renamed to remove underscore prefix. Added code for synthetic oblique (14 degree slant), and
526         synthetic bold (add offset and draw text a second time).
527         (-[WebTextRenderer _CG_drawRun:style:geometry:]): Keep an array of substitute renderers instead of fonts.
528         Changed around the loop to reverse the run to be a single loop instead of 3.
529         (-[WebTextRenderer floatWidthForRun:style:widths:substituteRenderers:glyphs:startPosition:numGlyphs:]):
530         Renamed to remove the underscore prefix.
531         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:substituteRenderers:glyphs:startPosition:numGlyphs:]):
532         Changed to use subsitute renderers rather than fonts.
533         (-[WebTextRenderer updateGlyphEntryForCharacter:glyphID:substituteRenderer:]): Renamed to remove underscore
534         prefix and changed to use a substitute renderer rather than a substitute NSFont.
535         (-[WebTextRenderer extendCharacterToGlyphMapToInclude:]): Updated to work with all characters, both ones
536         that fit into 16-bit and ones that don't.
537         (-[WebTextRenderer _extendGlyphToWidthMapToInclude:]): Removed NSFont parameter and simplified. This fixes
538         a bug where numberOfGlyphs was accidentally used from the main font instead of "subFont".
539         (glyphForCharacter): Changed to use subsitute renderers instead of substitute fonts.
540         (widthForNextCharacter): Ditto. Also removed small caps code no longer needed here and replaced it with
541         simpler small caps code that no longer assumes glyphs match.
542         (shouldUseATSU): Changed the code to check ranges in order to slightly reduce the number of cases and
543         to create earlier exit for lower character codes.
544
545         * WebCoreSupport.subproj/WebTextRendererFactory.h: Added caches for synthesized font and oblique
546         variants so we can still use the NSFont as the dictionary key. Removed coalesceTextDrawing methods.
547         Changed methods to use WebCoreFont as the parameters and results instead of NSFont.
548         * WebCoreSupport.subproj/WebTextRendererFactory.m:
549         (-[WebTextRendererFactory clearCaches]): Clear all 8 caches.
550         (-[WebTextRendererFactory isFontFixedPitch:]): Changed code slightly so there's only one call to
551         the CFDictionarySetValue function.
552         (-[WebTextRendererFactory init]): Create all 8 caches.
553         (-[WebTextRendererFactory dealloc]): Release all 8 caches.
554         (-[WebTextRendererFactory rendererWithFont:]): Select the appropriate cache based on 3 booleans:
555         synthetic bold, synthetic oblique, and printer. Use WebCoreFont instead of NSFont.
556         (-[WebTextRendererFactory fontWithFamilies:traits:size:]): Set the synthetic bold and oblique flags
557         when returning a WebCoreFont based on requested traits that are not present in the NSFont.
558         (acceptableChoice): Ignore the synthesizable traits when deciding if a chosen font is acceptable.
559         (betterChoice): Rather than assuming that every font has all the desired traits, implement a rule
560         that says a font with an unwanted trait loses out over a font that does not have an unwanted trait.
561         This lets us chose a bold font over a non-bold font that could use synthesized bold but treat both
562         as candidates.
563
564         * WebCoreSupport.subproj/WebGlyphBuffer.h: Removed.
565         * WebCoreSupport.subproj/WebGlyphBuffer.m: Removed.
566         * WebKit.xcodeproj/project.pbxproj: Removed WebGlyphBuffer source files.
567
568         * Misc.subproj/WebKitNSStringExtras.m:
569         (-[NSString _web_drawAtPoint:font:textColor:]): Update to use WebCoreFont.
570         (-[NSString _web_widthWithFont:]): Ditto.
571         * Misc.subproj/WebStringTruncator.m:
572         (truncateString): Ditto.
573         (+[WebStringTruncator widthOfString:font:]): Ditto.
574
575         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView drawRect:]): Removed text drawing coalesce method calls.
576         * WebView.subproj/WebTextView.m: (-[WebTextView setFixedWidthFont]): Updated to use cachedFontFromFamily
577         method, which we still have, rather than fontWithFamilies method which we don't (since it now uses WebCoreFont).
578         * WebView.subproj/WebView.m: (+[WebView _setAlwaysUseATSU:]): Updated for name change to underlying method.
579
580 2005-10-05  Maciej Stachowiak  <mjs@apple.com>
581
582         Reviewed by Eric.
583
584         <rdar://problem/4158439> Safari appears to hang when sending synchronous XMLHttpRequest that gets no server response
585
586         No testcase - not testable w/o network.
587         
588         * WebCoreSupport.subproj/WebBridge.m:
589         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): Set a timeout of 10.
590
591 2005-10-04  Beth Dakin  <bdakin@apple.com>
592
593         Reviewed by Darin
594
595         Fix for <rdar://problem/4285538> TOT fix for Denver Regression: Drawing glitch in the transparent dialog's cancel/ok 
596         button in the widget manager. 
597
598         * WebCoreSupport.subproj/WebImageData.m: Calls WKSetPatternPhaseInUserSpace() which is a new function that lies in 
599                                                 WebKitSystemInterface that and takes care of pattern-setting. Prevents 
600                                                 regression that occurred with image tiling in transparency layers. 
601         (-[WebImageData tileInRect:fromPoint:context:]):
602
603 2005-10-03  Tim Omernick  <tomernick@apple.com>
604
605         Reviewed by John Sullivan.
606
607         <rdar://problem/4281095> Denver regression: Seed: Safari HTML 4.01 <object ...> tag problem
608
609         * WebCoreSupport.subproj/WebBridge.m:
610         (-[WebBridge determineObjectFromMIMEType:URL:]):
611         If no view class is registered to handle the MIME type, check to see if there is a plugin registered which can handle it.
612         This check is required because the Java plugin does not register an NSView class, so that Java files are downloaded when
613         not embedded.
614
615         Prior to this fix, -determineObjectFromMIMEType:URL: would always return ObjectElementNone for Java applets (MIME type
616         "application/x-java-applet"), which would cause Java applets embedded in <OBJECT> elements to not be loaded.
617
618         This broke on 05-03-2005, when we changed how we handle fallback content for <OBJECT> elements so that we could pass the
619         Acid2 test.
620
621 2005-09-28  Justin Garcia  <justin.garcia@apple.com>
622
623         Reviewed by geoff
624         
625         Fixed <rdar://problem/4276596> multipart/x-mixed-replace: saved inline images appear only partially loaded
626         Fixed <rdar://problem/4265439> progress bar should look complete even if there is some more multipart content being loaded
627
628         * WebCoreSupport.subproj/WebSubresourceLoader.h:
629         * WebCoreSupport.subproj/WebSubresourceLoader.m:
630         (-[WebSubresourceLoader didReceiveResponse:]):
631         Now calls signalFinish and saveResource.
632         
633         (-[WebSubresourceLoader signalFinish]): 
634         Added.  Does the part of didFinishLoading that signals to the WebDataSource and load delegates that the load is finished.
635         
636         (-[WebSubresourceLoader didFinishLoading]):
637         * WebView.subproj/WebLoader.h:
638         * WebView.subproj/WebLoader.m:
639         (-[NSURLProtocol signalFinish]):
640         Similar to above
641         
642         (-[NSURLProtocol didFinishLoading]):
643
644 2005-09-28  Adele Peterson  <adele@apple.com>
645
646         Reviewed by John.
647
648         Moved _downloadWithLoadingConnection and _downloadWithRequestfrom WebDownload.h to WebDownloadInternal.h
649
650         * Misc.subproj/WebDownload.h:
651         * Misc.subproj/WebDownloadInternal.h: Added.
652         * WebKit.xcodeproj/project.pbxproj: Added WebDownloadInternal.h
653         * WebView.subproj/WebMainResourceLoader.m: Added import of WebDownloadInternal.h
654         * WebView.subproj/WebView.m: ditto.
655
656 2005-09-27  Adele Peterson  <adele@apple.com>
657
658         Reviewed by Maciej.
659
660         Changed ints to size_t where appropriate.
661
662         * Misc.subproj/WebCoreStatistics.h:
663         * Misc.subproj/WebCoreStatistics.m:
664         (+[WebCoreStatistics javaScriptObjectsCount]):
665         (+[WebCoreStatistics javaScriptInterpretersCount]):
666         (+[WebCoreStatistics javaScriptNoGCAllowedObjectsCount]):
667         (+[WebCoreStatistics javaScriptReferencedObjectsCount]):
668         * WebView.subproj/WebPreferences.m:
669         (-[WebPreferences _pageCacheSize]):
670         (-[WebPreferences _objectCacheSize]):
671         * WebView.subproj/WebPreferencesPrivate.h:
672
673 2005-09-26  John Sullivan  <sullivan@apple.com>
674
675         Reviewed by Tim Omernick.
676
677         - fixed <rdar://problem/4118126> Drag-and-drop text with text containing a colon causes a crash
678         
679         There were two problems here. One is that dragging and dropping text within the same WebTextView
680         should have done nothing rather than try to navigate. The other is that navigating while processing
681         the end of the drag would dealloc the drag-initiating WebTextView, leading to a crash. Fixing the
682         former doesn't fix all cases of the latter, since dropping onto (e.g.) Safari's location field
683         could cause a navigation during the drag. So these two issues needed to be fixed separately.
684
685         * WebView.subproj/WebTextView.m:
686         (-[WebTextView dragSelectionWithEvent:offset:slideBack:]):
687         Before drag, retain self, and tell WebView that the drag is self-initiated. After drag, do the
688         opposite. This is the same approach as WebImageView, but it can all be contained in one method
689         here due to NSTextView's dragging API, which wraps up some of the drag-machinery guts.
690
691 2005-09-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
692
693         Reviewed and landed by Darin.
694
695         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=5100
696           -[WebTextRenderer _ATSU_drawRun:...] does not check view flippedness
697
698         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
699         Set up a the CGContext with a matrix that flips the text if the view is not flipped.
700
701 2005-09-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
702
703         Reviewed, tweaked a tiny bit, and landed by Darin.
704
705         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4940
706           CG and ATSUI give different width to the same text
707
708         * WebCoreSupport.subproj/WebTextRenderer.m:
709         (overrideLayoutOperation): Added. ATSU callback to do the rounding.
710         (-[WebTextRenderer _trapezoidForRun:style:atPoint:]): Use the new createATSULayoutParameters
711         function instead of calling _createATSUTextLayoutForRun.
712         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]): Use createATSULayoutParameters,
713         and also compute the width in a way that works for any direction combination.
714         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]): Use createATSULayoutParameters.
715         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
716         Use createATSULayoutParameters. Also put in code that seems to work around an ATSU bug.
717         (createATSULayoutParameters): Added.
718         (disposeATSULayoutParameters): Added.
719
720 2005-09-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>
721
722         Reviewed by Dave.
723         Landed by Darin.
724
725         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4862
726           Incorrect layout of bidi overrides
727
728         * WebCoreSupport.subproj/WebTextRenderer.m:
729         (addDirectionalOverride): Renamed, and made it work in both directions.
730         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]): Updated to call addDirectionalOverride.
731         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]): More of the same.
732         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]): Ditto.
733
734 2005-09-24  Alexey Proskuryakov  <ap@nypop.com>
735
736         Tweaked, reviewed, and landed by Darin.
737
738         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4394
739           Mouse clicks ignored in inline input areas
740
741         * WebView.subproj/WebHTMLView.m:
742         (-[NSArray mouseDown:]): Removed misleading comment and added code to send mouse event to input manager.
743         (-[NSArray mouseDragged:]): Added code to send mouse event to input manager.
744         (-[NSArray mouseUp:]): Ditto.
745         (-[WebHTMLView _discardMarkedText]): Umnmark text before calling markedTextAbandoned: to match behavior
746         of NSTextView (not sure why we did things in the opposite order before).
747         (-[WebHTMLView _updateSelectionForInputManager]): Ditto.
748
749         - unrelated tweak
750
751         * WebView.subproj/WebView.m:
752         (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:newScaleFactor:]):
753         Fix typecast that used ... for no good reason.
754
755 2005-09-23  Duncan Wilcox  <duncan@mclink.it>
756
757         Reviewed and landed by Darin.
758
759         - name changes to prepare for fixing bugzilla bug 4582
760
761         * WebView.subproj/WebHTMLView.m: Changed names to match WebCore changes.
762
763 2005-09-20  John Sullivan  <sullivan@apple.com>
764
765         Reviewed by Tim Omernick.
766
767         - fixed <rdar://problem/3228554> We should enforce one selection per WebView instead of per window
768         
769         Note that this checkin does not mean that we will always maintain a selection in a WebView when
770         the focus is elsewhere. Instead it means that there should never be more than one frame containing
771         a selection in a WebView, and that it's possible to maintain a selection in a WebView when the focus 
772         is elsewhere.
773
774         * WebView.subproj/WebView.m:
775         (-[WebView searchFor:direction:caseSensitive:wrap:]):
776         removed unnecessary and somewhat confusing comment
777         (-[WebView selectedFrame]):
778         now calls the extracted method -_focusedFrame
779         (-[WebView _focusedFrame]):
780         new method, extracted from -selectedFrame; returns frame containing first responder, if any
781         (-[WebView _findSelectedFrameStartingFromFrame:skippingFrame:]):
782         added skippingFrame parameter, which is never returned
783         (-[WebView _findSelectedFrameSkippingFrame:]):
784         new method, starts from main frame and passes a frame to skip
785         (-[WebView _findSelectedFrame]):
786         now calls _findSelectedFrameSkippingFrame:nil
787         (-[WebView _selectedFrameDidChange]):
788         new method, called by WebDocumentText protocol implementors; calls -deselectAll on frame that
789         formerly displayed a selection, if any
790
791         * WebView.subproj/WebViewInternal.h:
792         added category WebDocumentSelectionExtras, with the one method _selectedFrameDidChange
793
794         * WebView.subproj/WebHTMLView.m:
795         (-[WebHTMLView becomeFirstResponder]):
796         call -[WebView _selectedFrameDidChange]
797
798         * WebView.subproj/WebPDFView.m:
799         (-[WebPDFView becomeFirstResponder]):
800         call -[WebView _selectedFrameDidChange]
801         (-[WebPDFView resignFirstResponder]):
802         deselect all unless webview says not to; note that this doesn't work in all cases due to:
803         <rdar://problem/4265966> PDFs continue to show a (secondary) selection when the focus moves elsewhere        
804
805         * WebView.subproj/WebTextView.m:
806         (-[WebTextView becomeFirstResponder]):
807         call -[WebView _selectedFrameDidChange]
808         (-[WebTextView resignFirstResponder]):
809         deselect all unless webview says not to
810
811 2005-09-20  Eric Seidel  <eseidel@apple.com>
812
813         Reviewed by mjs.
814
815         Moved MIME type support from a hard coded list
816         (in two places) to single lists in the corresponding
817         *Representation classes.  Also moved the list of types
818         supported by WebCore (WebHTMLRepresentation) into WebCore.
819         http://bugzilla.opendarwin.org/show_bug.cgi?id=5037
820
821         * WebView.subproj/WebDataSource.m:
822         (addTypesFromClass): new inline function
823         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
824         * WebView.subproj/WebFrameView.m:
825         (addTypesFromClass): new inline function
826         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
827         * WebView.subproj/WebHTMLRepresentation.h:
828         * WebView.subproj/WebHTMLRepresentation.m:
829         (+[WebHTMLRepresentation supportedMIMETypes]):
830         * WebView.subproj/WebHTMLView.m:
831         (+[WebHTMLView supportedMIMETypes]):
832         * WebView.subproj/WebHTMLViewPrivate.h:
833         * WebView.subproj/WebImageRepresentation.h:
834         * WebView.subproj/WebImageRepresentation.m:
835         (+[WebImageRepresentation supportedMIMETypes]):
836         * WebView.subproj/WebImageView.h:
837         * WebView.subproj/WebImageView.m:
838         (+[WebImageView supportedMIMETypes]):
839         * WebView.subproj/WebPDFRepresentation.h:
840         * WebView.subproj/WebPDFRepresentation.m:
841         (+[WebPDFRepresentation supportedMIMETypes]):
842         * WebView.subproj/WebPDFView.h:
843         * WebView.subproj/WebPDFView.m:
844         (+[WebPDFView supportedMIMETypes]):
845         * WebView.subproj/WebTextRepresentation.h:
846         * WebView.subproj/WebTextRepresentation.m:
847         (+[WebTextRepresentation supportedMIMETypes]):
848         * WebView.subproj/WebTextView.h:
849         * WebView.subproj/WebTextView.m:
850         (+[WebTextView supportedMIMETypes]):
851         * WebView.subproj/WebView.m:
852         (+[WebView _viewClass:andRepresentationClass:forMIMEType:]):
853         (+[WebView MIMETypesShownAsHTML]): updated to match style
854         (+[WebView setMIMETypesShownAsHTML:]): ditto
855
856 2005-09-16  John Sullivan  <sullivan@apple.com>
857
858         * WebView.subproj/WebImageView.m:
859         (-[WebImageView copy:]):
860         fixed build-breaking silly error in previous checkin
861
862 2005-09-16  John Sullivan  <sullivan@apple.com>
863
864         Reviewed by Tim Omernick
865         
866         - fixed <rdar://problem/4256557> CrashTracer: 238 crashes in Safari at 
867         com.apple.AppKit: -[NSPasteboard setData:forType:] + 188
868
869         * WebView.subproj/WebImageView.m:
870         (-[WebImageView copy:]):
871         declare types to pasteboard before starting to set their data
872         (-[WebImageView writeSelectionToPasteboard:types:]):
873         ditto
874
875 2005-09-16  Adele Peterson  <adele@apple.com>
876
877         Rolling out the fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=4924
878             QPainter should use CGContext as much as possible rather than NSGraphicsContext 
879         since it caused a performance regression.
880
881 2005-09-16  Adele Peterson  <adele@apple.com>
882
883         Change by Darin, reviewed by me and Maciej.
884
885         Fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=4547
886         use int instead of long for 32-bit (to prepare for LP64 compiling)
887
888         * Plugins.subproj/npapi.m: changed types to match those defined in npapi.h
889         (NPN_MemAlloc):
890         (NPN_MemFlush):
891         (NPN_PostURLNotify):
892         (NPN_PostURL):
893         (NPN_Write):
894
895 2005-09-14  Justin Garcia  <justin.garcia@apple.com>
896
897         Reviewed by john
898
899         Fixes <rdar://problem/4237479> REGRESSION (Cambridge-Denver): old QuickTime movie continues to play sound after reload
900         We were adding the movie to the document twice after the changes were added to handle fallback content.
901         There are some errors for which we should not render fall back content
902
903         * Misc.subproj/WebKitErrorsPrivate.h:
904         Introduced WebKitErrorPlugInWillHandleLoad to represent the cancel we do
905         to prevent loading plugin content twice
906         
907         * Plugins.subproj/WebPluginDocumentView.m:
908         (-[WebPluginDocumentView dataSourceUpdated:]): Ditto
909         
910         * WebView.subproj/WebDataSource.m:
911         (-[WebDataSource _receivedMainResourceError:complete:]):
912         Don't handleFallbackContent on WebKitErrorPlugInWillHandleLoad or on a user cancel
913
914 2005-09-14  Timothy Hatcher  <thatcher@apple.com>
915
916         Reviewed by Eric.
917         
918         * WebKit.xcodeproj/project.pbxproj:
919         made WebDashboardRegion.h a private header
920
921 2005-09-14  Darin Adler  <darin@apple.com>
922
923         Reviewed by Maciej.
924
925         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4924
926           QPainter should use CGContext as much as possible rather than NSGraphicsContext
927
928         * WebCoreSupport.subproj/WebImageRendererFactory.m: Remove setCGCompositeOperationFromString
929         method, no longer needed.
930
931 2005-09-13  Tim Omernick  <tomernick@apple.com>
932
933         Reviewed by Justin Garcia, Darin Adler.
934
935         - <rdar://problem/3163393> Safari does not support Windowless mode in Flash
936
937         * Plugins.subproj/WebBaseNetscapePluginView.h:
938         Added 'isTransparent' instance variable.
939
940         * Plugins.subproj/WebBaseNetscapePluginView.m:  
941         (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]):
942         When updating a plugin in "windowless" (transparent) mode, clip drawing to the dirty
943         region of the opaque ancestor.  This means that a partially-transparent plugin, which
944         by definition does not clear its port on redraw, will not overdraw the valid parts
945         of its port.
946         (-[WebBaseNetscapePluginView sendEvent:]):
947         Disabled the "green debug background" for transparent plugins -- since they are not
948         expected to cover their entire port every redraw, this debug code makes no sense.
949         (-[WebBaseNetscapePluginView setVariable:value:]):
950         Implemented -setVariable:value:, which is called from NPN_SetValue() (previously
951         unimplemented).
952         Right now we only handle NPPVpluginTransparentBool; if we choose to handle the other
953         plugin variables, then we may do so here.
954         * Plugins.subproj/WebBaseNetscapePluginViewPrivate.h:
955         Added SPI for -[WebBaseNetscapePluginView setVariable:value].
956         * Plugins.subproj/npapi.m:
957         (NPN_SetValue):
958         Implemented this function so that plugins may set state (such as window mode).
959         
960 2005-09-11  Mark Rowe  <opendarwin.org@bdash.net.nz>
961
962         Reviewed, tweaked, and landed by Darin.
963
964         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4286
965           .Mac prefpane crashes when Safari using CVS WebKit is running
966
967         * WebView.subproj/WebView.m: (-[WebView initWithFrame:frameName:groupName:]):
968         If ENABLE_WEBKIT_UNSET_DYLD_FRAMEWORK_PATH, and WEBKIT_UNSET_DYLD_FRAMEWORK_PATH
969         is set in the environment, then unset DYLD_FRAMEWORK_PATH.
970
971         * WebKit.xcodeproj/project.pbxproj: Set ENABLE_WEBKIT_UNSET_DYLD_FRAMEWORK_PATH
972         in configurations other than Default -- we don't want that code in production
973         builds, but we want it in builds we do ourselves and nightly builds.
974
975 2005-09-10  Ingmar J Stein  <IngmarStein@gmail.com>
976
977         Reviewed and landed by Darin.
978
979         * WebCoreSupport.subproj/WebImageRenderer.m:
980         (-[WebImageRenderer drawImageInRect:fromRect:compositeOperator:context:]):
981         Removed unused local variable.
982
983 2005-09-09  Tim Omernick  <tomernick@apple.com>
984
985         Reviewed by John Sullivan.
986
987         * History.subproj/WebBackForwardList.m:
988         (-[WebBackForwardList removeItem:]):
989         SPI to remove a given WebHistoryItem.
990
991         * History.subproj/WebBackForwardListPrivate.h: Added.
992
993         * WebKit.xcodeproj/project.pbxproj:
994         Added WebBackForwardListPrivate.h as a private header.
995
996 2005-09-09  John Sullivan  <sullivan@apple.com>
997
998         Reviewed by Tim Omernick.
999         
1000         fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4070:
1001         Find in plain text won't find only occurrence if it overlaps selection
1002
1003         * Misc.subproj/WebSearchableTextView.m:
1004         (-[NSString findString:selectedRange:options:wrap:]):
1005         in the wrap case, extend the search range far enough that text overlapping the
1006         selection (including the exact-match case) will be considered.
1007
1008 2005-09-08  Justin Garcia  <justin.garcia@apple.com>
1009
1010         Reviewed by darin
1011         
1012         WebKit portion of multipart/x-mixed-replace support
1013
1014         * WebCoreSupport.subproj/WebSubresourceLoader.m:
1015         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
1016         Subresource case: Check for Foundation level multipart support
1017         (-[WebSubresourceLoader didReceiveResponse:]): 
1018         Send previously received data in a multipart section to the coreLoader
1019         (-[WebSubresourceLoader didReceiveData:lengthReceived:]): 
1020         Don't send data to the coreLoader until it has been completely received
1021         * WebView.subproj/WebDataSource.m:
1022         (-[WebDataSource _startLoading:]): 
1023         Main resource case: check for Foundation level multipart support 
1024         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
1025         Some server apps send data right after declaring content multipart/x-mixed-replace, and expect it to be treated as html
1026         (-[WebDataSource _commitIfReady:]):
1027         Don't ask the WebFrame to close its old WebDataSource when loading a multipart section, because we're going to reuse it
1028         (-[WebDataSource _receivedData:]):
1029         For non text/html multipart sections, we commit the data all at once, at the end
1030         (-[WebDataSource _doesProgressiveLoadWithMIMEType:]):
1031         Added heuristic for when to commit the load incrementally
1032         (-[WebDataSource _commitLoadWithData:]):
1033         Moved from _receivedData into its own function
1034         (-[WebDataSource _revertToProvisionalState]):
1035         (-[WebDataSource _setupForReplaceByMIMEType:]):
1036         Commits the data received for the previous multipart section if it wasn't loaded progresively, clears out the WebFrame and WebDatasource for the next multipart section
1037         * WebView.subproj/WebDataSourcePrivate.h:
1038         * WebView.subproj/WebFrame.m:
1039         (-[WebFrame _transitionToCommitted:]): 
1040         The very first multipart section is treated as a normal load, so that the back/forward list and history are updated.
1041         All later sections have a new load type, WebFrameLoadTypeReplace, and are treated like reloads
1042         (-[WebFrame _checkLoadCompleteForThisFrame]): Ditto
1043         (-[WebFrame _itemForRestoringDocState]): Ditto
1044         (-[WebFrame _setupForReplace]):
1045         Clears out the WebFrame for the next multipart section
1046         * WebView.subproj/WebFrameInternal.h:
1047         * WebView.subproj/WebFramePrivate.h:
1048         * WebView.subproj/WebFrameView.m:
1049         (+[WebFrameView _viewTypesAllowImageTypeOmission:]): See above
1050         * WebView.subproj/WebLoader.h:
1051         * WebView.subproj/WebLoader.m:
1052         (-[NSURLProtocol clearResourceData]):
1053         (-[NSURLProtocol setSupportsMultipartContent:]):
1054         * WebView.subproj/WebMainResourceLoader.m: Straightforward
1055         (-[WebMainResourceLoader didReceiveResponse:]):
1056
1057 2005-09-06  Geoffrey Garen  <ggaren@apple.com>
1058
1059         - fixed build bustage from last checkin.
1060         
1061         Reviewed by haytt.
1062
1063         * History.subproj/WebBackForwardList.m:
1064         (-[WebBackForwardList pageCacheSize]): updated debug printf since we no
1065         longer have a variable called 'multiplier'
1066
1067 2005-09-06  David Hyatt  <hyatt@apple.com>
1068
1069         Reduce the # of cached pages for a back/forward list.  The old cache would cache the
1070         following per tab:
1071         > 1gb memory = 16 pages per tab/window
1072         > 512mb memory = 8 pages per tab/window
1073         <= 512mb memory = 4 pages per tab/window
1074
1075         This consumes far too much memory and is way too aggressive.  The new cache sizes are
1076         as follows:
1077         >= 1gb memory = 3 pages per tab/window
1078         >= 512mb memory = 2 pages per tab/window
1079         < 512mb memory = 1 page per tab/window
1080
1081         Reviewed by john
1082
1083         * History.subproj/WebBackForwardList.m:
1084         (-[WebBackForwardList pageCacheSize]):
1085         * WebView.subproj/WebPreferences.m:
1086         (+[WebPreferences initialize]):
1087
1088 2005-09-05  Darin Adler  <darin@apple.com>
1089
1090         Reviewed by John Sullivan.
1091
1092         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4846
1093           REGRESSION: Carbon WebKit applications don't work at all
1094
1095         * Carbon.subproj/HIWebView.m: Remove lots of unneeded declarations of private stuff.
1096         (Draw): Call WKNSWindowOverrideCGContext and WKNSWindowRestoreCGContext rather
1097         than calling a non-existent setCGContext: method on the context.
1098
1099 2005-09-05  John Sullivan  <sullivan@apple.com>
1100
1101         Reviewed by Dave Hyatt.
1102         
1103         - change related to <rdar://problem/4211999> Safari quits when click-drag-hold an image 
1104         that is set to automatically change.
1105
1106         * WebView.subproj/WebHTMLView.m:
1107         (-[NSArray namesOfPromisedFilesDroppedAtDestination:]):
1108         handle nil wrapper with ERROR and early return rather than ASSERT, since we now know
1109         of a way to reproduce this (written up as 4244861)
1110
1111 2005-09-05  Darin Adler  <darin@apple.com>
1112
1113         Reviewed by John Sullivan.
1114
1115         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4357
1116           crash related to animated GIFs, reproducible in non-Safari WebKit application
1117
1118         * WebCoreSupport.subproj/WebImageData.m:
1119         (removeAnimatingRendererFromView): Added.
1120         (removeFromDictionary): Added.
1121         (-[WebImageData removeAnimatingRenderer:]): Rewrote using CF functions rather than
1122         NS functions so that we never retain the views, since this can be called from
1123         a view's dealloc method.
1124         (setNeedsDisplayInAnimationRect): Added.
1125         (-[WebImageData _nextFrame:]): Rewrote as above, even though in this case it can't
1126         be called from the dealloc method.
1127
1128 2005-08-26  David Hyatt  <hyatt@apple.com>
1129
1130         Add support for a new scaling and tiling function so that border images from CSS3
1131         can be implemented.
1132         
1133         Reviewed by darin
1134
1135         * WebCoreSupport.subproj/WebImageData.h:
1136         * WebCoreSupport.subproj/WebImageData.m:
1137         (-[WebImageData scaleAndTileInRect:fromRect:withHorizontalTileRule:withVerticalTileRule:context:]):
1138         * WebCoreSupport.subproj/WebImageRenderer.m:
1139         (-[WebImageRenderer scaleAndTileInRect:fromRect:withHorizontalTileRule:withVerticalTileRule:context:]):
1140         (-[WebImageRenderer setAnimationRect:]):
1141         * WebView.subproj/WebHTMLView.m:
1142         (-[WebHTMLView updateFocusState]):
1143
1144 2005-08-26  Adele Peterson  <adele@apple.com>
1145
1146         Reviewed by Beth.
1147
1148         * WebKit.xcodeproj/project.pbxproj: Changed WebKit.Framework to WebKit.framework in UMBRELLA_FRAMEWORK.
1149
1150 2005-08-25  David Harrison  <harrison@apple.com>
1151
1152         Reviewed by Maciej.
1153
1154         <rdar://problem/4227734> Denver Regression: WebCore selection bug on lines starting with tab (clownfish)
1155
1156         The text is in a DIV styled with "white-space:pre", and uses newline characters as linebreaks.
1157         WebKit's text renderer is erroneously considering the width of the lines leading up to the tab
1158         character when calculating the width of the tab.
1159         Easily fixed by having widthForNextCharacter ignore the widthToStart when working with tabWidth.
1160         Any prior text that fits in the same line is already factored into the xpos, which is paid attention to.
1161
1162         * WebCoreSupport.subproj/WebTextRenderer.m:
1163         (widthForNextCharacter):
1164         Ignore the widthToStart when working with tabWidth.
1165
1166 2005-08-23  John Sullivan  <sullivan@apple.com>
1167
1168         Reviewed by Beth Dakin.
1169         
1170         - fixed <rdar://problem/4229167> 14 leaks of WebFileButton and associated objects, 
1171         seen after running webkit layout tests
1172
1173         * WebCoreSupport.subproj/WebBridge.m:
1174         (-[WebBridge fileButtonWithDelegate:]):
1175         this method was returning a retained object; I added an autorelease
1176
1177 2005-08-23  Darin Adler  <darin@apple.com>
1178
1179         * English.lproj/StringsNotToBeLocalized.txt: Update for recent changes.
1180
1181 2005-08-23  Mitz Pettel  <opendarwin.org@mitzpettel.com>
1182
1183         Reviewed and landed by Darin.
1184
1185         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4604
1186           LEAK -[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:] leaks an ATSUTextLayout
1187           <rdar://problem/4228787> ATSUTextLayout leak in _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs: (4604)
1188
1189         * WebCoreSupport.subproj/WebTextRenderer.m:
1190         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
1191         Added missing call to ATSUDisposeTextLayout.
1192
1193 2005-08-22  Geoffrey Garen  <ggaren@apple.com>
1194
1195         - fixed <rdar://problem/4227011> Debugger SPI should be removed from WebView.h API
1196         
1197         Reviewed by mjs and adele.
1198
1199         Cut and pasted debugging SPI from WebView to WebView(WebPendingPublic)
1200         
1201         * WebView.subproj/WebView.h:
1202         * WebView.subproj/WebView.m:
1203         (-[WebView setScriptDebugDelegate:]):
1204         (-[WebView scriptDebugDelegate]):
1205         * WebView.subproj/WebViewPrivate.h:
1206
1207 2005-08-20  John Sullivan  <sullivan@apple.com>
1208
1209         Reviewed by Darin Adler.
1210         
1211         - WebKit part of fix for 
1212         <rdar://problem/3977607> ER: Safari should check framework versions at launch
1213
1214         * WebView.subproj/WebViewPrivate.h:
1215         * WebView.subproj/WebView.m:
1216         (+[WebView _minimumRequiredSafariBuildNumber]):
1217         new method, returns the minimum build number of Safari that this WebKit is
1218         willing to work with. (The Safari version has to be new enough to check
1219         for this value in order for this to have any effect.)
1220
1221 2005-08-19  Justin Garcia  <justin.garcia@apple.com>
1222
1223         Reviewed by rjw
1224         
1225         The boolean justOpenedForTargetedLink is never used to determine a course of action.  
1226         It was added long ago for findOrCreateFramedNamed, which has since been removed.
1227
1228         * WebView.subproj/WebDataSource.m:
1229         * WebView.subproj/WebDataSourcePrivate.h:
1230         * WebView.subproj/WebFrame.m:
1231         (-[WebFrame _loadDataSource:withLoadType:formState:]):
1232         * WebView.subproj/WebFramePrivate.h:
1233
1234 2005-08-19  Darin Adler  <darin@apple.com>
1235
1236         Reviewed by John.
1237
1238         * English.lproj/Localizable.strings: Updated to include a new localizable string
1239         that was added a long while back. Apprently no one has run into the code using
1240         this string, because if they had, they'd have seen an assert.
1241         * English.lproj/StringsNotToBeLocalized.txt: Updated for various recent changes.
1242
1243 2005-08-17  Maciej Stachowiak  <mjs@apple.com>
1244
1245         Reviewed by Darin.
1246
1247         - fix mysterious CGImageSource error message and possibly crash on layout tests.
1248
1249         * WebView.subproj/WebMainResourceLoader.m:
1250         (-[WebMainResourceLoader receivedError:]): Retain the data source since it may
1251         prematurely self-destruct otherwise.
1252         (-[WebMainResourceLoader cancelWithError:]): ditto
1253
1254 2005-08-17  Justin Garcia  <justin.garcia@apple.com>
1255
1256         Reviewed by rjw
1257         
1258         Addresses <rdar://problem/4192534> new frame load delegate SPI needed for Dashboard
1259             Added handledOnloadEvents delegate method (private for now)
1260
1261         * WebCoreSupport.subproj/WebBridge.m:
1262         (-[WebBridge handledOnloadEvents]):
1263         * WebView.subproj/WebDefaultFrameLoadDelegate.m:
1264         (-[WebDefaultFrameLoadDelegate webView:didHandleOnloadEventsForFrame:]):
1265         * WebView.subproj/WebFrame.m:
1266         (-[WebFrame _handledOnloadEvents]):
1267         * WebView.subproj/WebFramePrivate.h:
1268         * WebView.subproj/WebViewPrivate.h:
1269
1270 2005-08-17  John Sullivan  <sullivan@apple.com>
1271
1272         Reviewed by Geoff Garen.
1273         
1274         - fixed <rdar://problem/4219817> Particular icon database + bookmarks + history crashes Safari on launch
1275
1276         * Misc.subproj/WebIconDatabase.m:
1277         (-[WebIconDatabase releaseIconForURL:]):
1278         Move line that might remove last reference to iconURL to the end of the block.
1279
1280 2005-08-16  Darin Adler  <darin@apple.com>
1281
1282         Reviewed by Trey.
1283
1284         - improved fix for <rdar://problem/4211631>, tiled images tiled incorrectly when printing or 
1285           drawing offscreen
1286
1287         * WebCoreSupport.subproj/WebImageData.m: (-[WebImageData tileInRect:fromPoint:context:]):
1288         Fix pattern phase origin to use the image tile origin, which is clearly right, rather than
1289         the image rectangle, which isn't right, but often is the same.
1290
1291 2005-08-16  Adele Peterson  <adele@apple.com>
1292
1293         Reviewed by John.
1294
1295         - fixed <rdar://problem/4210320> URL tooltips should display a URL for elements that submit forms
1296
1297         When the setShowsURLsInToolTips preference is set, we will display a tooltip containing 
1298         the form's url when you mouse over a submit button.
1299
1300         * WebView.subproj/WebHTMLView.m: (-[WebHTMLView _updateMouseoverWithEvent:]):
1301
1302 2005-08-16  Darin Adler  <darin@apple.com>
1303
1304         Reviewed by Beth Dakin.
1305
1306         - removed Panther-only code that was not being compiled and was
1307           simply "bit-rotting"
1308
1309         * Misc.subproj/WebFileDatabase.m:
1310         (-[WebFileDatabase _createLRUList:]):
1311         (+[WebFileDatabase _syncLoop:]):
1312         * Misc.subproj/WebKitErrors.m:
1313         (registerErrors):
1314         * Misc.subproj/WebNSObjectExtras.h:
1315         (WebCFAutorelease):
1316         * Misc.subproj/WebNSPasteboardExtras.m:
1317         (-[NSPasteboard _web_declareAndWriteDragImage:URL:title:archive:source:]):
1318         * WebCoreSupport.subproj/WebImageData.h:
1319         * WebCoreSupport.subproj/WebImageDecodeItem.h:
1320         * WebCoreSupport.subproj/WebImageDecodeItem.m:
1321         * WebCoreSupport.subproj/WebImageDecoder.h:
1322         * WebCoreSupport.subproj/WebImageDecoder.m:
1323         (decoderThread):
1324         (startDecoderThread):
1325         * WebCoreSupport.subproj/WebKeyGeneration.cpp: Removed.
1326         * WebCoreSupport.subproj/WebKeyGeneration.h: Removed.
1327         * WebCoreSupport.subproj/WebKeyGenerator.h:
1328         * WebCoreSupport.subproj/WebTextRenderer.m:
1329         (getUncachedWidth):
1330         (_drawGlyphs):
1331         * WebCoreSupport.subproj/WebViewFactory.m:
1332         (-[WebViewFactory getBytes:fromTextMarker:length:]):
1333         * WebKit.xcodeproj/project.pbxproj:
1334         * WebKitPrefix.h:
1335         * WebView.subproj/WebDataSource.m:
1336         (-[WebDataSource _setPrimaryLoadComplete:]):
1337         (+[WebDataSource _repTypesAllowImageTypeOmission:]):
1338         (-[WebDataSource isLoading]):
1339         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1340         (localizedMenuTitleFromAppKit):
1341         (-[WebDefaultUIDelegate menuItemWithTag:]):
1342         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
1343         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
1344         * WebView.subproj/WebFormDataStream.m:
1345         (formCanRead):
1346         (webSetHTTPBody):
1347         * WebView.subproj/WebFrameView.m:
1348         (+[WebFrameView _viewTypesAllowImageTypeOmission:]):
1349         * WebView.subproj/WebHTMLView.m:
1350         (-[WebHTMLView _documentFragmentFromPasteboard:allowPlainText:chosePlainText:]):
1351         (-[WebHTMLView resourceForData:preferredFilename:]):
1352         (-[WebHTMLView _lookUpInDictionaryFromMenu:]):
1353         (-[WebHTMLView validateUserInterfaceItem:]):
1354         (-[WebHTMLView _attributeStringFromDOMRange:]):
1355         (-[WebHTMLView toggleBaseWritingDirection:]):
1356         (-[WebHTMLView changeBaseWritingDirection:]):
1357         * WebView.subproj/WebPDFRepresentation.h:
1358         * WebView.subproj/WebPDFRepresentation.m:
1359         * WebView.subproj/WebPDFView.h:
1360         * WebView.subproj/WebPDFView.m:
1361         * WebView.subproj/WebPreferences.m:
1362         (+[WebPreferences _systemCFStringEncoding]):
1363         * WebView.subproj/WebView.m:
1364         (-[WebView _commonInitializationWithFrameName:groupName:]):
1365
1366 2005-08-16  Darin Adler  <darin@apple.com>
1367
1368         Reviewed by Beth Dakin.
1369
1370         - removed some unnecessary code
1371
1372         * WebCoreSupport.subproj/WebGraphicsBridge.h: Removed pattern-phase related field and methods.
1373         * WebCoreSupport.subproj/WebGraphicsBridge.m: Ditto.
1374
1375         * WebCoreSupport.subproj/WebImageData.m: Tweaked formatting and removed some unused code
1376         inside #if and comments.
1377
1378         * WebCoreSupport.subproj/WebImageRenderer.h: Removed USE_CGIMAGEREF (which is always true now).
1379         * WebCoreSupport.subproj/WebImageRenderer.m: Removed old non-CGImageRef code.
1380
1381         * WebCoreSupport.subproj/WebImageRendererFactory.m:
1382         (-[WebImageRendererFactory imageRendererWithMIMEType:]): Removed non-USE_CGIMAGEREF code.
1383         (-[WebImageRendererFactory imageRendererWithData:MIMEType:]): Ditto.
1384         (-[WebImageRendererFactory imageRendererWithSize:]): Ditto.
1385         (-[WebImageRendererFactory imageRendererWithName:]): Ditto.
1386
1387 2005-08-15  Darin Adler  <darin@apple.com>
1388         
1389         Reviewed by Beth.
1390
1391         This is a fix for <rdar://problem/4211631> tiled images tiled incorrectly when printing or 
1392         drawing offscreen.
1393
1394         Cayenne found there was a problem when they were trying to take screen shots of widgets, and
1395         it was ultimately a problem with the way we tile images. Darin was able to fix the problem
1396         by replacing some confusing hacked code with CG calls.
1397
1398         * WebCoreSupport.subproj/WebImageData.m:
1399         (-[WebImageData tileInRect:fromPoint:context:]):
1400         * WebCoreSupport.subproj/WebImageRenderer.m:
1401         (-[WebInternalImage tileInRect:fromPoint:context:]):
1402         * WebCoreSupport.subproj/WebTextRenderer.m:
1403         (-[WebTextRenderer drawLineForMisspelling:withWidth:]):
1404
1405 2005-08-14  Maciej Stachowiak  <mjs@apple.com>
1406
1407         Reviewed by Darin.
1408
1409         - 1% speedup on HTML load speed iBench by avoiding icon database thrash
1410         http://bugzilla.opendarwin.org/show_bug.cgi?id=4423
1411         
1412         * Misc.subproj/WebIconDatabase.m:
1413         (-[WebIconDatabase _setIconURL:forURL:]): Be more aggressive about returning early, because
1414         updating the database does some expensive data structure copies.
1415         
1416
1417 2005-08-14  Duncan Wilcox  <duncan@mclink.it>
1418
1419         Reviewed and landed by Darin.
1420
1421         WebKit part of fix for <http://bugzilla.opendarwin.org/show_bug.cgi?id=4011>:
1422         "Editing delegate selection methods not called when using mouse"
1423
1424         Clicking on editable content would move the cursor or alter the selection without
1425         calling the appropriate editing delegate method
1426         (webView:shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:). The
1427         core of the patch is in the KHTMLPart::handleMousePressEvent* methods, the rest
1428         is glue needed to drill through all the layers.
1429
1430         * WebCoreSupport.subproj/WebBridge.m:
1431         (-[WebBridge shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
1432         Bridge glue.
1433
1434         * WebView.subproj/WebView.m:
1435         (-[WebView(WebViewEditingExtras) _shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting:]):
1436         Final step in glue, calling editing delegate.
1437
1438         * WebView.subproj/WebViewInternal.h:
1439         Added _shouldChangeSelectedDOMRange:toDOMRange:affinity:stillSelecting: private method to WebViewEditingExtras
1440         category.
1441
1442 2005-08-11  Beth Dakin  <bdakin@apple.com>
1443
1444         Reviewed by Vicki
1445
1446         This is a fix for <rdar://problem/4141161> REGRESSION (Tiger): WebKit does not display in composited Carbon windows.
1447         I basically did what Troy suggests in his bug comments, and everything seems to work fine!
1448
1449         * Carbon.subproj/HIViewAdapter.m:
1450         (-[HIViewAdapter setNeedsDisplayInRect:]):
1451
1452 2005-08-10  Adele Peterson  <adele@apple.com>
1453
1454         Bumping version to 420+
1455
1456         * Info.plist:
1457
1458 2005-08-08  Darin Adler  <darin@apple.com>
1459
1460         Reviewed by John Sullivan.
1461
1462         - fixed <rdar://problem/3996324> REGRESSION (1.2-2.0): scroll bars sometimes not updated properly (with >40 duplicate reports!)
1463           also http://bugzilla.opendarwin.org/show_bug.cgi?id=3416
1464
1465         * WebView.subproj/WebHTMLView.m:
1466         (-[WebHTMLView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]):
1467         Propagate dirty rects after doing a layout, since a layout can create new dirty rects.
1468
1469 2005-08-05  Adele Peterson  <adele@apple.com>
1470
1471         Reviewed by Darin.
1472
1473         * WebKit.xcodeproj/project.pbxproj: Unchecked 'statics are thread safe' option.
1474
1475 2005-08-04  Justin Garcia  <justin.garcia@apple.com>
1476
1477         Reviewed by darin
1478         
1479         Fix for:
1480         <rdar://problem/3167884> Shockwave: 3D sprites rendered in OpenGL draw over the browser (3447)
1481         also as <http://bugzilla.opendarwin.org/show_bug.cgi?id=3447>
1482         
1483         The WindowRef created by -[NSWindow windowRef] has a QuickDraw GrafPort that covers 
1484         the entire window frame (or structure region in Carbon parlance) rather then just the window content.
1485         
1486         We filed this as an NSWindow bug <rdar://problem/4201099>
1487
1488         To work around, we modify the CGrafPort to only cover the content area before we let the plug-in draw.
1489
1490         * Plugins.subproj/WebBaseNetscapePluginView.m:
1491         (-[WebBaseNetscapePluginView fixWindowPort]):
1492         (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]):
1493
1494 2005-08-03  John Sullivan  <sullivan@apple.com>
1495
1496         Reviewed by Geoff Garen.
1497         
1498         - fixed <rdar://problem/3918675> Remove code to replace authentication dialog 
1499         with a subclass when out of localization freeze
1500
1501         * Panels.subproj/WebAuthenticationPanel.h:
1502         moved declaration of NonBlockingPanel here so it can be accessed by the nib
1503         * Panels.subproj/WebAuthenticationPanel.m:
1504         (-[WebAuthenticationPanel replacePanelWithSubclassHack]):
1505         removed this method
1506         (-[WebAuthenticationPanel loadNib]):
1507         stop calling the removed method
1508
1509         * Panels.subproj/English.lproj/WebAuthenticationPanel.nib/classes.nib:
1510         * Panels.subproj/English.lproj/WebAuthenticationPanel.nib/info.nib:
1511         * Panels.subproj/English.lproj/WebAuthenticationPanel.nib/objects.nib:
1512         the panel in the nib now has custom class NonBlockingPanel
1513
1514 2005-08-03  Beth Dakin  <bdakin@apple.com>
1515
1516         Reviewed by cblu
1517
1518         Removing calls to WKCreateUncorrectedRGBColorSpace and
1519         WKCreateUncorrectedGrayColorSpace in WebKit to patch up
1520         TOT...Eric removed them from WebCore last night.
1521
1522         * WebCoreSupport.subproj/WebImageData.m:
1523         * WebCoreSupport.subproj/WebImageRenderer.m:
1524         (WebCGColorSpaceCreateRGB):
1525         (WebCGColorSpaceCreateGray):
1526
1527 2005-08-02  John Sullivan  <sullivan@apple.com>
1528
1529         Reviewed by Darin Adler.
1530         
1531         Preemptively moved some WebMenuItemTag values from SPI to API, in anticipation of
1532         approval from macosx-api-reviewers. Retitled one of them in response to API reviewers feedback:
1533         WebMenuItemSearchInGoogle -> WebMenuItemSearchWeb
1534         
1535         Note that as a side effect of this change, the actual numbers used for these WebMenuItemTags has
1536         changed from what it was in Tiger. This causes "Search in Spotlight", "Search in Google", and
1537         "Look Up in Dictionary" to not appear in Tiger Safari if running on tip of tree WebKit.
1538
1539         * WebView.subproj/WebUIDelegatePrivate.h:
1540         removed WebMenuItemTagSearchInSpotlight, WebMenuItemTagSearchInGoogle, and WebMenuItemTagLookUpInDictionary
1541
1542         * WebView.subproj/WebUIDelegate.h:
1543         added WebMenuItemTagSearchInSpotlight, WebMenuItemTagSearchWeb, and WebMenuItemTagLookUpInDictionary
1544
1545         * WebView.subproj/WebDefaultContextMenuDelegate.m:
1546         (-[WebDefaultUIDelegate menuItemWithTag:]):
1547         updated for rename
1548         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
1549         ditto
1550         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
1551         ditto
1552         
1553 2005-08-01  Geoffrey Garen  <ggaren@apple.com>
1554
1555         -fixed <rdar://problem/3572585> window.open fails if name param = 
1556         the name of a window just closed in same function
1557
1558         Reviewed by darin.
1559
1560         Test cases added:
1561
1562         * manual-tests/open-after-close.html: Added.
1563         * manual-tests/resources/open-after-close-popup.html: Added.
1564
1565         * WebCoreSupport.subproj/WebBridge.m:
1566         (-[WebBridge closeWindowSoon]): We now remove a WebView from 
1567         WebViewSets when the WebView is *scheduled* to close.
1568
1569 2005-08-01  John Sullivan  <sullivan@apple.com>
1570
1571         * PublicHeaderChangesFromTiger.txt:
1572         added a comment about isTextField -> _isTextField
1573
1574 2005-08-01  John Sullivan  <sullivan@apple.com>
1575
1576         Patch by Trey Matteson <trey@usa.net>
1577         Reviewed by me.
1578
1579         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4255
1580           underlines still print too thick
1581
1582         The real problem here is that we have code that scales a 0 width line to always
1583         be width=1.0 in device space.  I'm leaving that in for the screen, but when printing
1584         a width of 0.5 looks good.
1585
1586         * WebCoreSupport.subproj/WebTextRenderer.m:
1587         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
1588
1589 2005-08-01  Eric Seidel  <eseidel@apple.com>
1590
1591         Reviewed by darin.
1592
1593         * WebCoreSupport.subproj/WebGraphicsBridge.m:
1594         removed create*ColorSpace methods, now using CG API directly.
1595         http://bugzilla.opendarwin.org/show_bug.cgi?id=4211
1596
1597 2005-07-31  John Sullivan  <sullivan@apple.com>
1598
1599         Patch by Trey Matteson <trey@usa.net>
1600         Reviewed by me.
1601
1602         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4014
1603           PDF files by default load with a poor choice of sizing
1604
1605         For now the various PDF viewing settings are sticky, stored in 2 new defaults.  Since
1606         there are a number of ways these settings are changed, I made a proxy for the PDFView
1607         through which all view changing messages are sent.  The proxy adds the behavior of
1608         updating the defaults upon any change.
1609
1610         * Misc.subproj/WebNSDictionaryExtras.h:
1611         * Misc.subproj/WebNSDictionaryExtras.m:
1612         (-[NSMutableDictionary _webkit_setFloat:forKey:]):  New support method.
1613         * WebView.subproj/WebPDFView.h:
1614         * WebView.subproj/WebPDFView.m:
1615         (-[WebPDFView initWithFrame:]):  Create proxy for PDFView.
1616         (-[WebPDFView dealloc]):  Free proxy.
1617         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):  For relevant context menu items, set the
1618             target to the proxy instead of the PDFView.
1619         (-[WebPDFView _readPDFDefaults]):  Init PDFView with settings from defaults.
1620         (-[WebPDFView layout]):  Call _readPDFDefaults, once.  This turned out to be the best hook.
1621         (-[WebPDFView _makeTextSmaller:]):  Change PDFView via proxy
1622         (-[WebPDFView _makeTextLarger:]):  Ditto
1623         (-[WebPDFView _makeTextStandardSize:]):  Ditto
1624         (-[PDFPrefUpdatingProxy initWithView:]):  trivial
1625         (-[PDFPrefUpdatingProxy forwardInvocation:]):  Forward the msg, then update defaults
1626         (-[PDFPrefUpdatingProxy methodSignatureForSelector:]):  Simple forwarding support.
1627         * WebView.subproj/WebPreferenceKeysPrivate.h:
1628         * WebView.subproj/WebPreferences.m:
1629         (+[WebPreferences initialize]):  Set initial values for new PDF viewing defaults.
1630         (-[WebPreferences _integerValueForKey:]):  Nuke stray comment.
1631         (-[WebPreferences _floatValueForKey:]):  New simple support method.
1632         (-[WebPreferences _setFloatValue:forKey:]):  Ditto.
1633         (-[WebPreferences PDFScaleFactor]):  4 accessors for new defaults 
1634         (-[WebPreferences setPDFScaleFactor:]):
1635         (-[WebPreferences PDFDisplayMode]):
1636         (-[WebPreferences setPDFDisplayMode:]):
1637         * WebView.subproj/WebPreferencesPrivate.h:
1638
1639 2005-08-01  Justin Garcia  <justin.garcia@apple.com>
1640
1641         Patch by Trey Matteson <trey@usa.net>
1642
1643         Reviewed by Maciej.
1644
1645         Fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=4226>
1646           link underlines print too thickly
1647
1648         Reinstate the fix made by sullivan on 1/11/05.  There was a merge
1649         error with an mjs fix on 1/13/05.
1650
1651         * WebCoreSupport.subproj/WebTextRenderer.m:
1652         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
1653
1654 2005-07-30  Maciej Stachowiak  <mjs@apple.com>
1655
1656         Build fixes for previous change (missing includes)
1657
1658         * WebView.subproj/WebFrame.m:
1659         * WebView.subproj/WebScriptDebugDelegate.m:
1660
1661 2005-07-29  Maciej Stachowiak  <mjs@apple.com>
1662
1663         Changes by Michael Kahl, reviewed by me.
1664
1665         - fixed <rdar://problem/4164112> MASTER: JavaScript debugging support
1666         
1667         * WebCoreSupport.subproj/WebBridge.m:
1668         (-[WebBridge windowObjectCleared]):
1669         * WebCoreSupport.subproj/WebSubresourceLoader.m:
1670         * WebKit.xcodeproj/project.pbxproj:
1671         * WebView.subproj/WebDefaultScriptDebugDelegate.h: Added.
1672         * WebView.subproj/WebDefaultScriptDebugDelegate.m: Added.
1673         (+[WebDefaultScriptDebugDelegate sharedScriptDebugDelegate]):
1674         (-[WebDefaultScriptDebugDelegate webView:didParseSource:fromURL:sourceId:forWebFrame:]):
1675         (-[WebDefaultScriptDebugDelegate webView:didEnterCallFrame:sourceId:line:forWebFrame:]):
1676         (-[WebDefaultScriptDebugDelegate webView:willExecuteStatement:sourceId:line:forWebFrame:]):
1677         (-[WebDefaultScriptDebugDelegate webView:willLeaveCallFrame:sourceId:line:forWebFrame:]):
1678         * WebView.subproj/WebFrame.m:
1679         (-[WebFramePrivate dealloc]):
1680         (-[WebFrame _attachScriptDebugger]):
1681         * WebView.subproj/WebFramePrivate.h:
1682         * WebView.subproj/WebScriptDebugDelegate.h: Added.
1683         * WebView.subproj/WebScriptDebugDelegate.m: Added.
1684         (-[WebScriptDebugger initWithWebFrame:]):
1685         (-[WebScriptDebugger dealloc]):
1686         (-[WebScriptDebugger globalObject]):
1687         (-[WebScriptDebugger newWrapperForFrame:]):
1688         (-[WebScriptDebugger parsedSource:fromURL:sourceId:]):
1689         (-[WebScriptDebugger enteredFrame:sourceId:line:]):
1690         (-[WebScriptDebugger hitStatement:sourceId:line:]):
1691         (-[WebScriptDebugger leavingFrame:sourceId:line:]):
1692         (-[WebScriptCallFrame _initWithFrame:]):
1693         (-[WebScriptCallFrame dealloc]):
1694         (-[WebScriptCallFrame setUserInfo:]):
1695         (-[WebScriptCallFrame userInfo]):
1696         (-[WebScriptCallFrame caller]):
1697         (-[WebScriptCallFrame scopeChain]):
1698         (-[WebScriptCallFrame functionName]):
1699         (-[WebScriptCallFrame exception]):
1700         (-[WebScriptCallFrame evaluateWebScript:]):
1701         * WebView.subproj/WebScriptDebugDelegatePrivate.h: Added.
1702         * WebView.subproj/WebView.h:
1703         * WebView.subproj/WebView.m:
1704         (-[WebViewPrivate dealloc]):
1705         (-[WebView _scriptDebugDelegateForwarder]):
1706         (-[WebView setScriptDebugDelegate:]):
1707         (-[WebView scriptDebugDelegate]):
1708         * WebView.subproj/WebViewInternal.h:
1709         * WebView.subproj/WebViewPrivate.h:
1710
1711 2005-07-26  Maciej Stachowiak  <mjs@apple.com>
1712
1713         Reviewed by Dave Hyatt.
1714
1715         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4153
1716         
1717         * WebView.subproj/WebFrame.m:
1718         (-[WebFrame _purgePageCache]): Find the oldest candidate for
1719         purging that is not a snapback item.
1720
1721 2005-07-29  David Harrison  <harrison@apple.com>
1722
1723         Reviewed by Dave Hyatt (rendering) and Maciej (editing and performance improvements).
1724
1725         Test cases added: Existing tab-related basic editing tests were updated.  More complex tests are coming soon.
1726
1727         <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
1728         
1729         Basic strategy is to put tabs into spans with white-space:pre style, and
1730         render them with tabs stops every 8th space, where the space width and
1731         the left margin are those of the enclosing block.
1732
1733         * WebCoreSupport.subproj/WebTextRenderer.m:
1734         (isSpace):
1735         (isRoundingHackCharacter):
1736         (getUncachedWidth):
1737         (-[WebTextRenderer drawLineForCharacters:yOffset:width:color:thickness:]):
1738         (-[WebTextRenderer _computeWidthForSpace]):
1739         (_drawGlyphs):
1740         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
1741         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
1742         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
1743         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
1744         (glyphForCharacter):
1745         (initializeCharacterWidthIterator):
1746         (ceilCurrentWidth):
1747         (widthForNextCharacter):
1748
1749 2005-07-29  John Sullivan  <sullivan@apple.com>
1750
1751         Reviewed by Dave Hyatt.
1752         
1753         - WebKit part of <rdar://problem/4187404> Redo form SPI so that it doesn't rely on NSViews
1754         
1755         Much of 4187404 was addressed in earlier checkins. This checkin completes the task.
1756
1757         * WebView.subproj/WebHTMLRepresentation.h:
1758         * WebView.subproj/WebHTMLRepresentation.m:
1759         removed viewForElement:, which was the only remaining NSView-related SPI that Safari autofill was
1760         still using. I added viewForElement a week ago as a transitional measure, so removing it won't
1761         affect any other clients.
1762
1763 2005-07-29  John Sullivan  <sullivan@apple.com>
1764
1765         Reviewed by Chris Blumenberg.
1766
1767         * WebView.subproj/WebFrameView.m:
1768         (-[WebFrameView _firstResponderIsFormControl]):
1769         renamed from _firstResponderIsControl for clarity. Explicitly rejects WebHTMLView, since
1770         it's now a control.
1771         (-[WebFrameView keyDown:]):
1772         updated for renamed method.
1773
1774 2005-07-28  John Sullivan  <sullivan@apple.com>
1775
1776         Reviewed by Beth Dakin.
1777         
1778         - removed method -[WebHTMLRepresentation elementForView:], which was SPI used only for
1779         Safari autofill. Tip of tree Safari no longer includes any calls to this method. Also, 
1780         Tiger Safari never gets around to actually calling it due to the other recent form-SPI-related
1781         changes, so removing this method doesn't break Tiger Safari running on tip of tree WebKit
1782         (though autofill continues to not work in that configuration).
1783
1784         * WebView.subproj/WebHTMLRepresentation.h:
1785         * WebView.subproj/WebHTMLRepresentation.m:
1786         (-[WebHTMLRepresentation elementForView:]): removed
1787         
1788 2005-07-27  John Sullivan  <sullivan@apple.com>
1789
1790         Patch by Trey Matteson <trey@usa.net>
1791         Reviewed by me.
1792
1793         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4169
1794           scaling PDF view up leaves later HTML view scaled too
1795
1796         An additional step of separating scaling of HTML and PDF.  If we do a zoom and there
1797         are no docViews that track the common scaling factor, then don't change it.  Thus in
1798         the common PDF case where it is the only doc view, scaling the PDF does not affect
1799         HTML pages loaded in the same window.
1800
1801         * WebView.subproj/WebView.m:
1802         (-[WebView canMakeTextSmaller]):  Pass 0 for new scaling factor, since we just querying.
1803         (-[WebView canMakeTextLarger]):  Ditto.
1804         (-[WebView makeTextSmaller:]):  Pass new scaling factor.
1805         (-[WebView makeTextLarger:]):  Ditto.
1806         (-[WebView canMakeTextStandardSize]):  Pass 0 for new scaling factor.
1807         (-[WebView makeTextStandardSize:]):  Pass new scaling factor.
1808         (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:newScaleFactor:]):
1809           The meat of the change is that this Swiss Army Knife also takes a new scaling
1810           factor, which it will set as the common scaling factor if it finds any doc views that
1811           are able to be scaled which track the common scaling factor.
1812
1813 2005-07-27  John Sullivan  <sullivan@apple.com>
1814
1815         Patch by Trey Matteson <trey@usa.net>
1816         Reviewed by me.
1817
1818         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4015
1819           PDF views should remember viewing mode, scroll position across back/forward
1820           Note this doesn't work within frames because of a PDFKit bug - see 4164
1821         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4091
1822           PDF views should keep a separate scaling factor from shared text scaling factor
1823
1824         Basic idea #1 is that we now have a general mechanism for a WebDocView to save/restore some UI
1825         state to the WebHistoryItem.
1826         Basic idea #2 is that _WebDocumentTextSizing is expanded to allow for the case of a WebDocView
1827         keeping its own notion of a scaling factor.  WebPDFView's -_tracksCommonSizeFactor has justification.
1828
1829         * History.subproj/WebHistoryItem.m:
1830         (-[WebHistoryItem setViewState:]):  New methods to hold PList of arbitrary WebView state
1831         (-[WebHistoryItem viewState]):
1832         * History.subproj/WebHistoryItemPrivate.h:
1833         * WebKit.xcodeproj/project.pbxproj:  Add Quartz to framework path so we can import PDFKit files
1834         * WebView.subproj/WebDocumentInternal.h:  New methods added to _WebDocumentTextSizing.
1835           Also the _ prefix is sufficient instead of _web_WebDocumentTextSizing.
1836           Added _WebDocumentViewState protocol.
1837         * WebView.subproj/WebFrame.m:
1838         (-[WebFrame _createItemTreeWithTargetFrame:clippedAtTarget:]):  Rename of save/restore methods.
1839         (-[WebFrame _detachFromParent]):  Ditto
1840         (-[WebFrame _transitionToCommitted:]):  Ditto
1841         (-[WebFrame _checkLoadCompleteForThisFrame]):  Ditto
1842         (-[WebFrame _loadItem:withLoadType:]):  Ditto
1843         (-[WebFrame _recursiveGoToItem:fromItem:withLoadType:]):  Ditto
1844         (-[WebFrame _saveViewStateToItem:]):  Call doc view to retrieve view state.
1845         (-[WebFrame _restoreViewState]):  Call doc view to set view state.
1846         (-[WebFrame _scrollToTop]):  Nuked dead code.
1847         (-[WebFrame _textSizeMultiplierChanged]):  This work now appears in WebView.
1848         (-[WebFrame _saveDocumentAndScrollState]):  Same rename, one code cleanup.
1849         (-[WebFrame _accumulateDocumentViews:]): Add our docview to the array, call kids.
1850         (-[WebFrame _documentViews]):  New helper to return all docviews.
1851         (-[WebFrame _didFirstLayout]):  Same name change.
1852         * WebView.subproj/WebFrameInternal.h:
1853         * WebView.subproj/WebFramePrivate.h:
1854         * WebView.subproj/WebHTMLView.m:  Removed redundant category decl.
1855         (-[WebHTMLView _makeTextSmaller:]):  Implement new protocol.
1856         (-[WebHTMLView _makeTextLarger:]):
1857         (-[WebHTMLView _makeTextStandardSize:]):
1858         (-[WebHTMLView _tracksCommonSizeFactor]):
1859         * WebView.subproj/WebPDFRepresentation.m:  Tweak #imports.
1860         * WebView.subproj/WebPDFView.h:
1861         * WebView.subproj/WebPDFView.m:
1862         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):  No longer intercept context menu text sizing items.
1863         (-[WebPDFView setDataSource:]):  No longer track the WebView's scaling factor.
1864         (-[WebPDFView scrollPoint]):  Dig through PDFKit view tree to get real scroll position
1865         (-[WebPDFView setScrollPoint:]):  Ditto
1866         (-[WebPDFView viewState]):  Return bundle of viewing params
1867         (-[WebPDFView setViewState:]):  Restore bundle of viewing params
1868         (-[WebPDFView _makeTextSmaller:]):  Implement new text sizing protocol
1869         (-[WebPDFView _makeTextLarger:]):
1870         (-[WebPDFView _makeTextStandardSize:]):
1871         (-[WebPDFView _tracksCommonSizeFactor]):
1872         (-[WebPDFView _canMakeTextSmaller]):
1873         (-[WebPDFView _canMakeTextLarger]):
1874         (-[WebPDFView _canMakeTextStandardSize]):
1875         * WebView.subproj/WebTextView.m:
1876         (-[WebTextView _makeTextSmaller:]):  Implement new text sizing protocol
1877         (-[WebTextView _makeTextLarger:]):
1878         (-[WebTextView _makeTextStandardSize:]):
1879         (-[WebTextView _tracksCommonSizeFactor]):
1880         * WebView.subproj/WebView.m:
1881         (-[WebView setTextSizeMultiplier:]):  Calling docViews is now more complicates than just posting
1882            a notification to the frame.
1883         (-[WebView _performTextSizingSelector:withObject:onTrackingDocs:selForNonTrackingDocs:]):  Workhorse
1884            that sends the text sizing method to the right doc views.
1885         (-[WebView canMakeTextSmaller]):  Call workhorse.
1886         (-[WebView canMakeTextLarger]):  Ditto
1887         (-[WebView makeTextSmaller:]):  Ditto
1888         (-[WebView makeTextLarger:]):  Ditto
1889         (-[WebView canMakeTextStandardSize]):  Ditto
1890         (-[WebView makeTextStandardSize:]):  Ditto
1891
1892 2005-07-26  Justin Garcia  <justin.garcia@apple.com>
1893
1894         Patch by Trey Matteson <trey@usa.net>
1895
1896         Reviewed by John Sullivan.
1897         
1898         Fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=4072>
1899         Pressing back in browser misses out a page
1900         
1901         * WebView.subproj/WebFrame.m:
1902         (-[WebFrame _transitionToCommitted:]):  When reloading the same page or refreshing the
1903         page, update the URL in the b/f item with the URL that we wind up at.  Due to cookies,
1904         it might be different than the result we just got when we loaded the same page.
1905
1906 2005-07-26  David Hyatt  <hyatt@apple.com>
1907
1908         Make WebHTMLView inherit from NSControl instead of NSView.
1909         This change is necessary because the theme renderer for
1910         WebCore that draws controls with the Aqua appearance does so
1911         using NSCells.  NSCells must be hosted within a control view
1912         in order to paint properly.
1913
1914         The method updateCell must be overridden because it wants to
1915         repaint the whole control when the windows resigns/becomes
1916         key, and this would result in behavior that we don't want
1917         (the repainting of the whole view).  We already have hooks
1918         in WebHTMLView for the window resigning/becoming key so
1919         we will do our proper control updating there instead (in a
1920         future patch).
1921
1922         Reviewed by john
1923
1924         * WebView.subproj/WebHTMLView.h:
1925         * WebView.subproj/WebHTMLView.m:
1926         (-[WebHTMLView updateCell:]):
1927         
1928 2005-07-26  John Sullivan  <sullivan@apple.com>
1929
1930         Reviewed by Chris Blumenberg.
1931         
1932         - more work to wean form-related SPI from NSView. All that's left (but this is a big "all")
1933         is viewForElement: and elementForView:        
1934
1935         * WebCoreSupport.subproj/WebBridge.m:
1936         (-[WebBridge textField:doCommandBySelector:]):
1937         changed signature to pass along DOMElement* rather than NSView*
1938         
1939         * WebView.subproj/WebFormDelegate.h:
1940         * WebView.subproj/WebFormDelegate.m:
1941         (-[WebFormDelegate textField:doCommandBySelector:inFrame:]):
1942         ditto
1943
1944 2005-07-25  John Sullivan  <sullivan@apple.com>
1945
1946         Reviewed by Darin Adler.
1947         
1948         - big hunk of weaning form-related SPI from NSView; autofill continues to
1949         work (but only on tip of tree Safari)
1950         
1951         * WebCoreSupport.subproj/WebBridge.m:
1952         (-[WebBridge textFieldDidBeginEditing:]):
1953         changed name from controlTextXXX:, now takes a DOMHTMLInputElement*
1954         (-[WebBridge textFieldDidEndEditing:]):
1955         ditto
1956         (-[WebBridge textDidChangeInTextField:]):
1957         ditto
1958         (-[WebBridge textDidChangeInTextArea:]):
1959         changed name from textDidChange:, now takes a DOMHTMLTextAreaElement*
1960         (-[WebBridge control:textShouldBeginEditing:]):
1961         removed this method as it wasn't being used by autofill, and did nothing in WebKit
1962         (-[WebBridge control:textShouldEndEditing:]):
1963         ditto
1964         (-[WebBridge textField:shouldHandleEvent:]):
1965         changed name from control:textView:shouldHandleEvent:, now takes a DOMHTMLInputElement*.
1966         The textView parameter wasn't being used, so I eliminated it.
1967         
1968         * WebView.subproj/WebFormDelegate.h:
1969         * WebView.subproj/WebFormDelegate.m:
1970         (-[WebFormDelegate textFieldDidBeginEditing:inFrame:]):
1971         (-[WebFormDelegate textFieldDidEndEditing:inFrame:]):
1972         (-[WebFormDelegate control:textShouldBeginEditing:inFrame:]):
1973         (-[WebFormDelegate control:textShouldEndEditing:inFrame:]):
1974         (-[WebFormDelegate textDidChangeInTextField:inFrame:]):
1975         (-[WebFormDelegate textDidChangeInTextArea:inFrame:]):
1976         (-[WebFormDelegate textField:shouldHandleEvent:inFrame:]):
1977         These all changed in the same way as the WebBridge methods
1978         
1979
1980 2005-07-25  Vicki Murley <vicki@apple.com>
1981
1982         Reviewed by Darin.
1983  
1984         - fixed <rdar://problem/3470523> Safari's user agent should be changed to say Intel rather 
1985         than PPC on Intel machines
1986
1987         * WebView.subproj/WebView.m: add conditional #defines for "PPC" and "Intel"
1988         (-[WebView userAgentForURL:]): use this variable when constructing the user agent string
1989
1990 2005-07-24  Justin Garcia  <justin.garcia@apple.com>
1991
1992         Reviewed by mjs
1993         
1994         - Fixes <rdar://problem/4120535> deleteToEndOfLine: does not delete thew newline when at the end of a line
1995             Fix to match NSTextView.  Delete the next character if deleteToEndOfLine fails
1996
1997         * WebView.subproj/WebHTMLView.m:
1998         (-[WebHTMLView deleteToEndOfLine:]):
1999
2000 2005-07-24  Justin Garcia  <justin.garcia@apple.com>
2001
2002         Patch by Trey Matteson <trey@apple.com>
2003
2004         Reviewed by john
2005         
2006         Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3953> back-forward items have wrong titles after sub-frame navigations
2007
2008         This was caused by a mistaken data structure, where WebDataSource tried to keep a list of
2009         b/f items it was responsible for.  The problem arose in the case of frames, where a subframe
2010         was loaded with new content.  When this happens a fresh tree of b/f items is created,
2011         but the reference in the DataSource still pointed to the old item.
2012
2013         Since the WebFrame does a lot of work to track the current b/f item, the easiest thing is to
2014         get rid of the DataSource's reference, and have it ask the WebFrame to set the title on the
2015         right b/f item.
2016
2017         * WebView.subproj/WebDataSource.m:
2018         (-[WebDataSourcePrivate dealloc]):
2019         (-[WebDataSource _setTitle:]):
2020         * WebView.subproj/WebDataSourcePrivate.h:
2021         * WebView.subproj/WebFrame.m:
2022         (-[WebFrame _createItem:]):
2023         (-[WebFrame _transitionToCommitted:]):
2024         (-[WebFrame _loadURL:referrer:loadType:target:triggeringEvent:form:formValues:]):
2025         (-[WebFrame _setTitle:]):
2026         * WebView.subproj/WebFramePrivate.h:
2027
2028 2005-07-24  Justin Garcia  <justin.garcia@apple.com>
2029
2030         Reviewed by kevin
2031         
2032         Fixed make clean problem
2033
2034         * Makefile.am:
2035
2036 2005-07-23  Justin Garcia  <justin.garcia@apple.com>
2037
2038         Patch by <opendarwin.org@mitzpettel.com>
2039
2040         Reviewed by darin and hyatt
2041         
2042         Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3862>
2043         The fix for <http://bugzilla.opendarwin.org/show_bug.cgi?id=3545> enclosed each run of visually ordered
2044         hebrew with LRO and PDF control characters, but adjusted the run's to and from to include those characters,
2045         so that they would be rendered if the font includes a glyph for bidi control characters.
2046         
2047         Also adding a manual test
2048
2049         * WebCoreSupport.subproj/WebTextRenderer.m:
2050         (reverseCharactersInRun):
2051
2052 2005-07-22  John Sullivan  <sullivan@apple.com>
2053
2054         Reviewed by Justin Garcia.
2055         
2056         Mail (running on tip of tree WebKit) was running into an assertion I recently added.
2057         The assertion is actually correct, catching an old bug in this code.
2058
2059         * WebView.subproj/WebView.m:
2060         (-[WebView selectedFrame]):
2061         if the first responder is a WebFrameView, then we've found the WebFrameView we're 
2062         looking for, and we shouldn't look at its superviews.
2063
2064 2005-07-22  John Sullivan  <sullivan@apple.com>
2065
2066         Reviewed by Chris Blumenberg.
2067
2068         - some changes in the direction of weaning all the form-related SPI from NSView
2069
2070         * PublicHeaderChangesFromTiger.txt:
2071         noted that the WebCore change to add -[DOMHTMLInputElement isTextField] to
2072         DOMExtensions.h is a public header change.
2073
2074         * WebView.subproj/WebHTMLRepresentation.h:
2075         * WebView.subproj/WebHTMLRepresentation.m:
2076         (-[WebHTMLRepresentation viewForElement:]):
2077         added viewForElement: as a stopgap measure. This allowed me to convert controlsInForm:
2078         to return DOMElements rather than NSViews, while keeping autocomplete working in
2079         Safari tip of tree. When I finish the SPI conversion I'll delete this method. Note that
2080         from this point on, autocomplete will not work in Tiger Safari with tip of tree WebKit
2081         (it will always fail to find anything to autocomplete)
2082
2083 2005-07-21  Adele Peterson  <adele@apple.com>
2084
2085         Reviewed by Darin.
2086
2087         Changing temporary #ifndef to #if
2088
2089         * WebCoreSupport.subproj/WebImageData.m:
2090         (-[WebImageData _checkSolidColor:]):
2091
2092 2005-07-21  Adele Peterson  <adele@apple.com>
2093
2094         Reviewed by Chris Blumenberg.
2095
2096         - fixed <rdar://problem/4132797> don't register thin PPC WebKit plug-ins
2097         Merged fix for:
2098         <rdar://problem/4127100> [WebKit] 8B1016: After installing Acrobat Reader, can no longer see pdf's in Safari
2099
2100         * Plugins.subproj/WebBasePluginPackage.h: Added isNativeLibraryData method.
2101         * Plugins.subproj/WebBasePluginPackage.m: (-[WebBasePluginPackage isNativeLibraryData:]): Added isNativeLibraryData method.
2102         * Plugins.subproj/WebNetscapePluginPackage.m: (-[WebNetscapePluginPackage initWithPath:]):
2103           calls isNativeLibraryData to determine whether or not to register the plug-in.
2104         * Plugins.subproj/WebPluginPackage.m: (-[WebPluginPackage initWithPath:]): ditto.
2105         * WebCoreSupport.subproj/WebImageData.m: (-[WebImageData _checkSolidColor:]): added comment for #ifdef.
2106
2107 2005-07-21  Geoffrey Garen  <ggaren@apple.com>
2108
2109         * WebKit.pbproj/project.pbxproj: Removed.
2110
2111 2005-07-21  Geoffrey Garen  <ggaren@apple.com>
2112
2113         * WebKit.xcodeproj/.cvsignore: Added.
2114
2115 2005-07-21  Geoffrey Garen  <ggaren@apple.com>
2116
2117         * WebKit.xcodeproj/project.pbxproj: Added.
2118
2119 2005-07-21  Geoffrey Garen  <ggaren@apple.com>
2120
2121         * Makefile.am:
2122
2123 2005-07-20  John Sullivan  <sullivan@apple.com>
2124
2125         Reviewed by Vicki Murley.
2126
2127         - removed some form-related methods that weren't being used anywhere, in preparation
2128         for weaning WebKit's WebFormDelegate protocol from NSView.
2129
2130         * WebCoreSupport.subproj/WebBridge.m:
2131         * WebView.subproj/WebFormDelegate.h:
2132         * WebView.subproj/WebFormDelegate.m:
2133         removed these methods:
2134         -control:didFailToFormatString:errorDescription:
2135         -control:didFailToValidatePartialString:errorDescription:
2136         -control:isValidObject:
2137
2138 2005-07-20  Adele Peterson  <adele@apple.com>
2139
2140           Merged fix for:
2141           <rdar://problem/4125127> [WebKit] horizontal rulers don't render on Safari on web.apple.com
2142
2143           * WebCoreSupport.subproj/WebImageData.m:
2144           (-[WebImageData _checkSolidColor:]):
2145
2146 2005-07-20  Adele Peterson  <adele@apple.com>
2147
2148         Merged fix for :
2149         <rdar://problem/4118278> mail divide by zero navigating messages
2150   
2151         * WebCoreSupport.subproj/WebTextRenderer.m:
2152         (-[WebTextRenderer _extendGlyphToWidthMapToInclude:font:]):
2153
2154 2005-07-20  John Sullivan  <sullivan@apple.com>
2155
2156         Reviewed by Adele Peterson.
2157         
2158         - added -[WebView selectedFrame] to SPI (pending public API), needed for 4180958
2159
2160         * WebView.subproj/WebView.m:
2161         (-[WebView selectedFrame]):
2162         new method, extracted from _selectedOrMainFrame
2163         (-[WebView _selectedOrMainFrame]):
2164         now calls extracted method
2165         
2166         * WebView.subproj/WebViewPrivate.h:
2167         add -selectedFrame to PendingPublic category
2168
2169 2005-07-19  John Sullivan  <sullivan@apple.com>
2170
2171         Reviewed by Darin Adler.
2172         
2173         - cleaned up code related to dealing with the "selected frame"; fixes radar bugs 4118830 and 4118820
2174
2175         * WebView.subproj/WebTextView.m:
2176         (-[WebTextView resignFirstResponder]):
2177         call deselectAll here instead of replicating its guts, just for clarity
2178         
2179         * WebView.subproj/WebViewInternal.h:
2180         eliminated category WebInternal; all of these methods were used only inside WebView.m, so I moved
2181         them into the existing category WebFileInternal that was declared and implemented in WebView.m
2182         
2183         * WebView.subproj/WebView.m:
2184         (-[WebView searchFor:direction:caseSensitive:wrap:]):
2185         updated for name changes. Also, uses new _deselectFrame: to clear the selection if the found
2186         text is in a different frame.
2187         (-[WebView pasteboardTypesForSelection]):
2188         (-[WebView writeSelectionWithPasteboardTypes:toPasteboard:]):
2189         (-[WebView setSelectedDOMRange:affinity:]):
2190         (-[WebView selectedDOMRange]):
2191         (-[WebView selectionAffinity]):
2192         (-[WebView setTypingStyle:]):
2193         (-[WebView typingStyle]):
2194         (-[WebView styleDeclarationWithText:]):        
2195         (-[WebView replaceSelectionWithNode:]):
2196         (-[WebView replaceSelectionWithText:]):
2197         (-[WebView replaceSelectionWithMarkupString:]):
2198         (-[WebView replaceSelectionWithArchive:]):
2199         (-[WebView deleteSelection]):
2200         (-[WebView applyStyle:]):
2201         updated for name changes only
2202         
2203         (-[WebView _frameIsSelected:]):
2204         new method, returns YES if given frame has a non-zero-length selection
2205         (-[WebView _deselectFrame:]):
2206         new method, clears selection from given frame
2207         (-[WebView _findSelectedFrameStartingFromFrame:]):
2208         new method, recursive helper used by _findSelectedFrame
2209         (-[WebView _findSelectedFrame]):
2210         new method, finds first frame that returns YES for _frameIsSelected, or nil
2211         (-[WebView _debugCollectSelectedFramesIntoArray:startingFromFrame:]):
2212         new method, recursive helper used by _debugCheckForMultipleSelectedFrames
2213         (-[WebView _debugCheckForMultipleSelectedFrames]):
2214         new method for debugging, fires an assertion if there's more than one selected frame.
2215         (-[WebView _selectedOrMainFrame]):
2216         renamed from _frameForCurrentSelection, which was a misleading name since the returned
2217         frame does not necessarily have a selection (or even focus). Now checks for a selected
2218         but non-focused frame if the first responder is not in any frame. Also, moved in file
2219         from WebInternal category to WebFileInternal category.
2220         (-[WebView _bridgeForSelectedOrMainFrame]):
2221         renamed from _bridgeForCurrentSelection, which was a misleading name for the same
2222         reasons as _frameForCurrentSelection. Also, moved in file from WebInternal category to
2223         WebFileInternal category.
2224         (-[WebView _isLoading]):
2225         (-[WebView _frameViewAtWindowPoint:]):
2226         (-[WebView _bridgeAtPoint:]):
2227         just moved in file from WebInternal category to WebFileInternal category
2228
2229 2005-07-19  Darin Adler  <darin@apple.com>
2230
2231         Reviewed by Geoff Garen.
2232
2233         - improve handling of plug-ins when the WebView or a superview is hidden with -[NSView setHidden]
2234
2235         * Plugins.subproj/WebBaseNetscapePluginView.m: (-[WebBaseNetscapePluginView saveAndSetPortStateForUpdate:]):
2236         Add "hidden" to the list of reasons to clip out all plug-in drawing.
2237
2238 2005-07-18  John Sullivan  <sullivan@apple.com>
2239         
2240         Written by Trey Matteson  <trey@usa.net>
2241         Reviewed by John Sullivan.
2242
2243         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4049
2244           scroll position not restored when going back/forward at ebay
2245         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=4061
2246           When going back/forward to some pages, they redraw at top before restoring scroll position
2247
2248         The short story is that attempting to restore the scroll position
2249         at the time when the first layout finishes addresses both of these
2250         issues.  An explanation of the underlying race condition is in
2251         a large comment near -_restoreScrollPosition.
2252
2253         * WebCoreSupport.subproj/WebBridge.m:
2254         (-[WebBridge didFirstLayout]):  Pass through to WebFrame.
2255         * WebView.subproj/WebFrame.m:
2256         (-[WebFrame _transitionToCommitted:]):  Get rid of attempt to
2257           restoreScrollPosition that never did anything because the
2258           docView was always 0x0 size at that point.
2259         (-[WebFrame _opened]):  Get rid of redundant call to restoreScrollPosition.
2260           The imminent call to layoutCompleted makes the same call.
2261         (-[WebFrame _didFirstLayout]):  Restore the scroll position on
2262           first layout, if we're doing a b/f nav.
2263         * WebView.subproj/WebFrameInternal.h:
2264
2265 2005-07-18  John Sullivan  <sullivan@apple.com>
2266
2267         Reviewed by Darin Adler.
2268
2269         - fixed these bugs:
2270         <rdar://problem/4158121> context menu in PDF view should contain the selection-based items like Copy
2271         <rdar://problem/4184691> WebPDFView should conform to the WebDocumentElement protocol
2272         <rdar://problem/4184663> "Search in Spotlight" is present but dimmed in context menu for plain-text documents
2273
2274         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2275         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
2276         added ASSERT and comments
2277
2278         * WebView.subproj/WebHTMLView.m:
2279         (-[WebHTMLView _searchWithGoogleFromMenu:]):
2280         removed this method (now handled by WebView)
2281         (-[WebHTMLView _searchWithSpotlightFromMenu:]):
2282         ditto
2283         (-[WebHTMLView validateUserInterfaceItem:]):
2284         removed validation for removed items. The validation wasn't necessary anyway, since we only put these items
2285         in the menu in the case where they should be enabled.
2286
2287         * WebView.subproj/WebPDFView.h:
2288         now conforms to WebDocumentElement protocol (which lets [WebView elementAtPoint:] work better)
2289         * WebView.subproj/WebPDFView.m:
2290         (-[WebPDFView copy:]):
2291         added, hands off to PDFView, needed to enable Copy in context menu
2292         (-[WebPDFView _pointIsInSelection:]):
2293         new method, checks whether given point is in the selected bounds
2294         (-[WebPDFView elementAtPoint:]):
2295         add WebElementIsSelectedKey to returned element
2296         (-[WebPDFView menuForEvent:]):
2297         use actual point instead of dummy placeholder, now that we have code that pays attention to the point
2298
2299         * WebView.subproj/WebView.m:
2300         (-[WebView _searchWithGoogleFromMenu:]):
2301         moved here from WebHTMLView so it will work for any documentView that conforms to WebDocumentText.
2302         Rewrote slightly to be non-WebHTMLView-specific. (This menu item was always enabled in Safari because
2303         Safari replaces its action, but it would not have been always enabled in other WebKit clients, though
2304         it should have been.)
2305         (-[WebView _searchWithSpotlightFromMenu:]):
2306         moved here from WebHTMLView so it will work for any documentView that conforms to WebDocumentText.
2307         Rewrote slightly to be non-WebHTMLView-specific.
2308
2309 2005-07-18  John Sullivan  <sullivan@apple.com>
2310
2311         Reviewed by Richard Williamson.
2312         
2313         - fixed <rdar://problem/4184366> WebPDFView should conform to the WebDocumentSelection protocol
2314
2315         * Misc.subproj/WebNSAttributedStringExtras.h: Added.
2316         * Misc.subproj/WebNSAttributedStringExtras.m: Added.
2317         (-[NSAttributedString _web_attributedStringByStrippingAttachmentCharacters]):
2318         New category on NSAttributedString, initially contains this one method that had been in WebHTMLView.
2319         
2320         * WebView.subproj/WebHTMLView.m:
2321         (-[WebHTMLView _writeSelectionWithPasteboardTypes:toPasteboard:cachedAttributedString:]):
2322         now uses _web_attributedStringByStrippingAttachmentCharacters
2323         
2324         * WebView.subproj/WebPDFView.h:
2325         now conforms to WebDocumentSelection protocol
2326         * WebView.subproj/WebPDFView.m:
2327         (-[WebPDFView selectionRect]):
2328         new, implementation of WebDocumentSelection protocol method
2329         (-[WebPDFView pasteboardTypesForSelection]):
2330         ditto
2331         (-[WebPDFView writeSelectionWithPasteboardTypes:toPasteboard:]):
2332         ditto
2333
2334         * WebKit.pbproj/project.pbxproj:
2335         updated for new files
2336
2337 2005-07-18  John Sullivan  <sullivan@apple.com>
2338
2339         Reviewed by Chris Blumenberg.
2340         
2341         - some refactoring cleanup in the selection/searching code
2342
2343         * Misc.subproj/WebSearchableTextView.h:
2344         moved WebDocumentSelection protocol conformation to this class, was in subclass WebTextView
2345         * Misc.subproj/WebSearchableTextView.m:
2346         (-[WebSearchableTextView selectionRect]):
2347         new method (moved here from Safari) to return a single rect encompassing all selected text
2348         (-[WebSearchableTextView pasteboardTypesForSelection]):
2349         moved here from WebTextView
2350         (-[WebSearchableTextView writeSelectionWithPasteboardTypes:toPasteboard:]):
2351         ditto
2352         
2353         * WebView.subproj/WebDocumentInternal.h:
2354         moved WebDocumentSelection protocol out of here
2355         
2356         * WebView.subproj/WebDocumentPrivate.h:
2357         moved WebDocumentSelection protocol into here, added selectionRect method
2358         
2359         * WebView.subproj/WebHTMLView.m:
2360         (-[WebHTMLView selectionRect]):
2361         new method, calls existing bridge method formerly called by _selectionRect
2362         (-[WebHTMLView _selectionRect]):
2363         now calls [self selectionRect]. We can't just delete _selectionRect because it's used by Mail.
2364         
2365         * WebView.subproj/WebHTMLViewPrivate.h:
2366         removed _selectionRect since it's in WebDocumentSelection now
2367         
2368         * WebView.subproj/WebTextView.h:
2369         removed WebDocumentSelection from protocol list since it's in superclass now
2370         
2371         * WebView.subproj/WebTextView.m:
2372         removed old WebDocumentSelection methods because they are in superclass now
2373
2374 2005-07-15  Adele Peterson  <adele@apple.com>
2375
2376         Written by Trey Matteson  <trey@usa.net>
2377         Reviewed by John Sullivan.
2378
2379         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3910 - REGRESSION: Replying "Cancel" to the form repost nag leaves wrong b/f cursor
2380
2381         * WebView.subproj/WebFrame.m:
2382         (-[WebFrame _resetBackForwardList]):  new helper method
2383         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]):
2384           If the delegate bailed on the navigation, tell the main frame
2385           to reset the b/f cursor back to where it was before we started.
2386
2387 2005-07-15  John Sullivan  <sullivan@apple.com>
2388
2389         Written by Trey Matteson
2390         Reviewed by me.
2391
2392         Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=4013
2393                 text find doesn't wrap in PDF files
2394
2395         This just works once WebPDFView implements the WebDocumentText protocol, which is
2396         mostly just a matter of forwarding the methods to PDFKit appropriately.
2397
2398         * WebView.subproj/WebPDFView.h:
2399         * WebView.subproj/WebPDFView.m:
2400         (-[WebPDFView supportsTextEncoding]):
2401         (-[WebPDFView string]):
2402         (-[WebPDFView attributedString]):
2403         (-[WebPDFView selectedString]):
2404         (-[WebPDFView selectedAttributedString]):
2405         (-[WebPDFView selectAll]):
2406         (-[WebPDFView deselectAll]):
2407
2408 2005-07-15  John Sullivan  <sullivan@apple.com>
2409
2410         Reviewed by Kevin Decker.
2411         
2412         - fixed <rdar://problem/4181884> Searching for text that overlaps selection works 
2413         differently in PDFView than in HTMLView
2414
2415         * WebView.subproj/WebPDFView.m:
2416         (PDFSelectionsAreEqual):
2417         new function, stand-in for nonexistent -[PDFSelection isEqual:] since calling isEqual:
2418         on two identical PDFSelections returns NO
2419         (-[WebPDFView searchFor:direction:caseSensitive:wrap:]):
2420         Make search algorithm match that in WebCore: initially search inside selection, then check for the case
2421         where the found text exactly matches the previous selection, and search from past the selection if so.
2422         The implementation is slightly more complicated than it should be due to PDFKit API limitations (about
2423         which I added FIXMEs and filed bugs)
2424
2425 2005-07-15  John Sullivan  <sullivan@apple.com>
2426
2427         Reviewed by Maciej Stachowiak.
2428         
2429         - fixed these bugs:
2430         <rdar://problem/4181875> Searching for text that overlaps selection works differently in WebTextView than in HTMLView
2431         <rdar://problem/3393678> Find not finding text in plain (non-HTML) if all text is selected
2432
2433         * Misc.subproj/WebSearchableTextView.m:
2434         (-[NSString findString:selectedRange:options:wrap:]):
2435         Make search algorithm match that in WebCore: initially search inside selection, then check for the case
2436         where the found text exactly matches the previous selection, and search from past the selection if so.
2437
2438 2005-07-14  John Sullivan  <sullivan@apple.com>
2439
2440         Reviewed by Dave Hyatt.
2441
2442         - WebKit part of fix for: 
2443         <rdar://problem/4181227> webpages incorrectly use standard instead of secondary highlighting in certain cases
2444
2445         * WebCoreSupport.subproj/WebBridge.m:
2446         (-[WebBridge formControlIsResigningFirstResponder:]):
2447         Implementation of new method defined in WebCore, passes call along to WebHTMLView
2448         
2449         * WebView.subproj/WebHTMLViewInternal.h:
2450         declare _formControlIsResigningFirstResponder: so bridge can call it
2451
2452         * WebView.subproj/WebHTMLView.m:
2453         (-[WebHTMLView updateFocusState]):
2454         just moved in file so it could be called from a different category
2455         (-[WebHTMLView _formControlIsResigningFirstResponder:]):
2456         new method, updates focus state
2457
2458 2005-07-14  John Sullivan  <sullivan@apple.com>
2459
2460         added missing #import to fix build
2461         * WebView.subproj/WebPDFView.m
2462
2463 2005-07-14  Kevin Decker  <kdecker@apple.com>
2464
2465         Reviewed by cblu
2466
2467         Fixed: <rdar://problem/4122282> clicking a link in an PDF file opens the link with NSWorkspace without the usual security checks or WebView delegate control
2468
2469         * WebView.subproj/WebFrame.m:
2470         (-[WebFrame _safeLoadURL:]): added
2471         * WebView.subproj/WebFrameInternal.h:
2472         * WebView.subproj/WebPDFView.m:
2473         (-[WebPDFView initWithFrame:]):
2474         (-[WebPDFView PDFViewWillClickOnLink:withURL:]): prevents evilness with a call to _safeLoadURL
2475         * WebView.subproj/WebTextView.m:
2476         (-[WebTextView clickedOnLink:atIndex:]): factored calling out to the bridge, and instead call _safeLoadURL
2477
2478 2005-07-14  Vicki Murley  <vicki@apple.com>
2479
2480         Reviewed by Kocienda.
2481
2482         - WebKit part of fix for  <rdar://problem/4172380> [GENENTECH] window.opener 
2483         not available when child opened via target="_new"
2484
2485         Add a setOpener function to the WebCore bridge, and call this function when opening
2486         new windows through Web Kit.
2487
2488         * WebView.subproj/WebFrame.m:
2489         (-[WebFrame _continueLoadRequestAfterNewWindowPolicy:frameName:formState:]):
2490
2491 2005-07-13  Justin Garcia  <justin.garcia@apple.com>
2492
2493         Reviewed by John
2494         
2495         Rolling in changes necessary to build with newer versions of gcc 4.0
2496
2497         * History.subproj/WebHistoryItem.m:
2498         (-[WebHistoryItem copyWithZone:]):
2499         * Misc.subproj/WebNSPasteboardExtras.m:
2500         (-[NSPasteboard _web_writeImage:URL:title:archive:types:]):
2501         * Misc.subproj/WebNSURLExtras.m:
2502         (-[NSURL _web_URLWithLowercasedScheme]):
2503         (-[NSString _web_mapHostNameWithRange:encode:makeString:]):
2504         * WebCoreSupport.subproj/WebBridge.m:
2505         (-[WebBridge MIMETypeForPath:]):
2506         * WebCoreSupport.subproj/WebImageRendererFactory.m:
2507         (-[WebImageRendererFactory imageRendererWithBytes:length:MIMEType:]):
2508         * WebCoreSupport.subproj/WebTextRenderer.m:
2509         (-[WebTextRenderer initWithFont:usingPrinterFont:]):
2510         * WebView.subproj/WebFrame.m:
2511         (-[WebFrame _webDataRequestForData:MIMEType:textEncodingName:baseURL:unreachableURL:]):
2512         * WebView.subproj/WebHTMLView.m:
2513         (-[WebHTMLView _styleFromFontAttributes:]):
2514         * WebView.subproj/WebView.m:
2515         (-[WebView _writeImageElement:withPasteboardTypes:toPasteboard:]):
2516         (-[WebView mainFrameTitle]):
2517
2518 2005-07-13  John Sullivan  <sullivan@apple.com>
2519
2520         Reviewed by Maciej Stachowiak.
2521
2522         - cleaned up Find-related experimental code that I checked in a while back
2523
2524         * WebView.subproj/WebHTMLView.m:
2525         (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
2526         remove variant of this method that had findInSelection flag; this method is now
2527         the same as it was on Tiger.
2528         
2529         * WebView.subproj/WebView.m:
2530         (-[WebView searchFor:direction:caseSensitive:wrap:]):
2531         ditto
2532
2533 2005-07-12  Geoffrey Garen  <ggaren@apple.com>
2534
2535         -rolled in patch by opendarwin.org@mitzpettel.com 
2536         for http://bugzilla.opendarwin.org/show_bug.cgi?id=3435
2537         Parentheses are backwards in Hebrew text (no bidi mirroring?)
2538         
2539         Reviewed by mjs.
2540
2541         Layout test added to WebCore.
2542
2543         * WebCoreSupport.subproj/WebTextRenderer.h:
2544         * WebCoreSupport.subproj/WebTextRenderer.m:
2545         (-[WebTextRenderer _initializeATSUStyle]):
2546         (applyMirroringToRun):
2547         (-[WebTextRenderer _ATSU_drawHighlightForRun:style:geometry:]):
2548         (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
2549         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2550
2551 2005-07-12  Ken Kocienda  <kocienda@apple.com>
2552
2553         Reviewed by Chris Blumenberg
2554
2555         * WebCoreSupport.subproj/WebBridge.m: Removed some glue that allowed one
2556         of two unicode (TEC or ICU ) to be chosen at runtime. I just added this
2557         dual support yesterday, and while Maciej and I agreed that it was good
2558         to land in the tree in case we run into problems in the near future, we
2559         also agreed that cutting over to using ICU full time right now is
2560         probably the best way to find bugs.
2561
2562 2005-07-11  Ken Kocienda  <kocienda@apple.com>
2563
2564         Reviewed by Richard
2565
2566         * WebCoreSupport.subproj/WebBridge.m:
2567         (+[WebBridge setTextConversionMethod:]): New method to support switching text conversion method.
2568         (+[WebBridge textConversionMethod]): Returns current text conversion method.
2569
2570 2005-07-11  Kevin Decker  <kdecker@apple.com>
2571
2572         Reviewed by cblu and mjs.
2573
2574         Fixed: <rdar://problem/4099552> REGRESSION: Safari 1.3 Netscape API NPN_PostURL[Notify] no longer allows manual headers
2575         
2576         Most plugins (flash) send 2 CRFL's between the header and body of their POST requests, while the adboe plugin sends two LF's. This caused us to send custom headers as part of the actual POST data itself, and correspondently, would skew Content-Length.
2577
2578         * Plugins.subproj/WebBaseNetscapePluginView.m:
2579         (-[NSData _web_locationAfterFirstBlankLine]): Look for two LF's as well
2580
2581 2005-07-09  Maciej Stachowiak  <mjs@apple.com>
2582
2583         - back out my revent page cache changes, turns out they cause a
2584         major performance regression on PLT
2585
2586         * WebView.subproj/WebFrame.m:
2587         (-[WebFrame _purgePageCache]):
2588
2589 2005-07-09  Maciej Stachowiak  <mjs@apple.com>
2590
2591         Reviewed by hyatt.
2592
2593         Replace int with unsigned, to avoid going into a huge loop when
2594         back list count is 0.
2595
2596         * WebView.subproj/WebFrame.m:
2597         (-[WebFrame _purgePageCache]):
2598
2599 2005-07-09  Maciej Stachowiak  <mjs@apple.com>
2600
2601         - fixed broken Development build
2602
2603         * WebView.subproj/WebFrame.m:
2604         (-[WebFrame _purgePageCache]):
2605
2606 2005-07-09  Maciej Stachowiak  <mjs@apple.com>
2607
2608         Reviewed by hyatt.
2609
2610         - fix page cache purging logic; this gets rid of a bug where the
2611         page cache would grow without bound if the oldest page cache item
2612         was the snapback item, and changed the rule a bit so page cache
2613         items farther back than the max size get purged, even if fewer
2614         than the max size are in current use.
2615
2616         * WebView.subproj/WebFrame.m:
2617         (-[WebFrame _purgePageCache]):
2618
2619 2005-07-08  Geoffrey Garen  <ggaren@apple.com>
2620
2621         Rolled in patch by opendarwin.org@mitzpettel.com
2622
2623         -fixes http://bugzilla.opendarwin.org/show_bug.cgi?id=3818
2624         Fallback font doesn't have requested weight in ATSUI-rendered text
2625
2626         (See WebCore Changelog for layout test)
2627
2628         Reviewed by mjs.
2629
2630         * WebCoreSupport.subproj/WebTextRenderer.m:
2631         (-[WebTextRenderer _createATSUTextLayoutForRun:style:]):
2632
2633 2005-07-05  Adele Peterson  <adele@apple.com>
2634
2635        Rolling out changes for <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
2636        since it caused a 2% performance regression.
2637
2638         * WebCoreSupport.subproj/WebTextRenderer.m:
2639         (isSpace):
2640         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
2641         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
2642         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
2643         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2644         (initializeCharacterWidthIterator):
2645         (widthForNextCharacter):
2646
2647 2005-07-05  John Sullivan  <sullivan@apple.com>
2648
2649         Reviewed by Chris Blumenberg.
2650         
2651         - fixed <rdar://problem/4158230> Zoom In/Zoom Out in PDF context menu don't update window's notion of text size
2652
2653         * WebView.subproj/WebPDFView.m:
2654         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
2655         Redirect Actual Size, Zoom In, and Zoom Out context menu items so that they behave exactly like Make Text Standard Size,
2656         Make Text Larger, and Make Text Smaller.
2657
2658 2005-07-01  John Sullivan  <sullivan@apple.com>
2659
2660         Reviewed by Darin Adler.
2661         
2662         - fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3711: Displayed PDF have limited options in contextual menu
2663         
2664         This was a problem with using Tiger's version of Safari with tip of tree WebKit.
2665
2666         * WebView.subproj/WebPDFView.m:
2667         (-[WebPDFView _anyPDFTagsFoundInMenu:]):
2668         new method, returns YES if the menu contains any items with any of the new PDF-related tags.
2669         (-[WebPDFView menuForEvent:]):
2670         If the executable was linked on Tiger or older (but it will never be older, since this code is
2671         new to Tiger), force all of the PDF-related items into the menu if none of them were there 
2672         after processing by the delegate.
2673
2674 2005-06-30  Darin Adler  <darin@apple.com>
2675
2676         Reviewed by John Sullivan.
2677
2678         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3774>
2679           do renaming so that loaders are called "loader", not "client" or "delegate"
2680
2681         * Misc.subproj/WebIconLoader.h:
2682         * Plugins.subproj/WebNetscapePluginStream.h:
2683         * Plugins.subproj/WebNetscapePluginStream.m:
2684         (-[WebNetscapePluginStream initWithRequest:pluginPointer:notifyData:sendNotification:]):
2685         (-[WebNetscapePluginStream start]):
2686         (-[WebNetscapePlugInStreamLoader didFinishLoading]):
2687         (-[WebNetscapePlugInStreamLoader didFailWithError:]):
2688         (-[WebNetscapePlugInStreamLoader cancelWithError:]):
2689         * WebCoreSupport.subproj/WebBridge.m:
2690         (-[WebBridge startLoadingResource:withURL:customHeaders:]):
2691         (-[WebBridge startLoadingResource:withURL:customHeaders:postData:]):
2692         (-[WebBridge canRunModalNow]):
2693         * WebCoreSupport.subproj/WebSubresourceClient.h: Removed.
2694         * WebCoreSupport.subproj/WebSubresourceClient.m: Removed.
2695         * WebCoreSupport.subproj/WebSubresourceLoader.h:
2696         * WebCoreSupport.subproj/WebSubresourceLoader.m:
2697         (-[WebSubresourceLoader initWithLoader:dataSource:]):
2698         (-[WebSubresourceLoader dealloc]):
2699         (+[WebSubresourceLoader startLoadingResource:withRequest:customHeaders:referrer:forDataSource:]):
2700         (+[WebSubresourceLoader startLoadingResource:withURL:customHeaders:referrer:forDataSource:]):
2701         (+[WebSubresourceLoader startLoadingResource:withURL:customHeaders:postData:referrer:forDataSource:]):
2702         (-[WebSubresourceLoader didReceiveResponse:]):
2703         (-[WebSubresourceLoader didReceiveData:lengthReceived:]):
2704         (-[WebSubresourceLoader didFinishLoading]):
2705         (-[WebSubresourceLoader didFailWithError:]):
2706         (-[WebSubresourceLoader cancel]):
2707         * WebKit.pbproj/project.pbxproj:
2708         * WebView.subproj/WebBaseResourceHandleDelegate.h: Removed.
2709         * WebView.subproj/WebBaseResourceHandleDelegate.m: Removed.
2710         * WebView.subproj/WebDataSource.m:
2711         (-[WebDataSourcePrivate dealloc]):
2712         (-[WebDataSource _setLoading:]):
2713         (-[WebDataSource _updateLoading]):
2714         (-[WebDataSource _setPrimaryLoadComplete:]):
2715         (-[WebDataSource _startLoading:]):
2716         (-[WebDataSource _addSubresourceLoader:]):
2717         (-[WebDataSource _removeSubresourceLoader:]):
2718         (-[WebDataSource _addPlugInStreamLoader:]):
2719         (-[WebDataSource _removePlugInStreamLoader:]):
2720         (-[WebDataSource _stopLoadingInternal]):
2721         (-[WebDataSource _defersCallbacksChanged]):
2722         (-[WebDataSource _stopLoadingWithError:]):
2723         (-[WebDataSource data]):
2724         (-[WebDataSource isLoading]):
2725         * WebView.subproj/WebDataSourcePrivate.h:
2726         * WebView.subproj/WebLoader.h:
2727         * WebView.subproj/WebLoader.m:
2728         * WebView.subproj/WebMainResourceClient.h: Removed.
2729         * WebView.subproj/WebMainResourceClient.m: Removed.
2730         * WebView.subproj/WebMainResourceLoader.h:
2731         * WebView.subproj/WebMainResourceLoader.m:
2732         (-[WebMainResourceLoader didReceiveResponse:]):
2733
2734 2005-06-29  David Harrison  <harrison@apple.com>
2735
2736         Reviewed by Dave Hyatt (rendering) and Maciej (editing).
2737
2738         Test cases added:  Coming soon.  Will include with next round of changes for this bug.
2739
2740         This is the first checkin for...
2741         
2742         <rdar://problem/3792529> REGRESSION (Mail): Tabs do not work the way they did in Panther (especially useful in plain text mail)
2743         
2744         Basic strategy is to put tabs into spans with white-space:pre style, and
2745         render them with tabs stops every 8th space, where the space width and
2746         the left margin are those of the enclosing block.
2747         
2748         What's left is to switch to implement white-space:pre-wrap so
2749         that we can coalesce consecutive tabs while maintaining proper
2750         line breaking.  That will keep the markup smaller.
2751
2752         * WebCoreSupport.subproj/WebTextRenderer.m:
2753         (isSpace):
2754         (-[WebTextRenderer _CG_drawHighlightForRun:style:geometry:]):
2755         (-[WebTextRenderer _CG_floatWidthForRun:style:widths:fonts:glyphs:startPosition:numGlyphs:]):
2756         (-[WebTextRenderer _extendCharacterToGlyphMapToInclude:]):
2757         (-[WebTextRenderer _CG_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2758         (initializeCharacterWidthIterator):
2759         (widthForNextCharacter):
2760
2761 2005-06-29  John Sullivan  <sullivan@apple.com>
2762
2763         Reviewed by Kevin.
2764         
2765         - deleted some never-used stub code
2766
2767         * WebView.subproj/WebView.m:
2768         * WebView.subproj/WebViewInternal.h:
2769         * WebView.subproj/WebViewPrivate.h:
2770
2771 2005-06-27  Justin Garcia  <justin.garcia@apple.com>
2772
2773         Patch by Anders Carlsson <andersca@mac.com>
2774
2775         Reviewed by Darin.
2776
2777         - Fixes <http://bugzilla.opendarwin.org/show_bug.cgi?id=3489>
2778         WebView's setSelectedDOMRange doesn't not implement clearing the selection as described in the WebView documentation:
2779         <http://developer.apple.com/documentation/Cocoa/Reference/WebKit/ObjC_classic/Classes/WebView.html>
2780         
2781         * WebView.subproj/WebView.m:
2782         (-[WebView setSelectedDOMRange:affinity:]):
2783         If range is nil, call deselectText.
2784
2785 2005-06-24  Justin Garcia  <justin.garcia@apple.com>
2786
2787         Patch contributed by Duncan Wilcox <duncan@mclink.it>
2788
2789         Reviewed by Darin
2790
2791         - Fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3535>
2792             Spelling suggestions in the context menu don't call the should* delegate methods
2793
2794         * WebView.subproj/WebHTMLView.m:
2795         (-[WebHTMLView _changeSpellingFromMenu:]):
2796         give delegate's webView:shouldInsertText:replacingDOMRange:givenAction: a chance
2797         to prevent replacing of selected text
2798
2799 2005-06-22  John Sullivan  <sullivan@apple.com>
2800
2801         Reviewed by Chris Blumenberg.
2802         
2803         - fixed <rdar://problem/3764645> please add a way to allow WebKit clients to override the WebPDFView context menu
2804
2805         * PublicHeaderChangesFromTiger.txt: Added.
2806         New file to keep track of changes made to public headers that haven't been through API review yet.
2807         Initially lists the WebMenuItem enum tags added to WebUIDelegate.h as part of this change.
2808         
2809         * WebView.subproj/WebDefaultContextMenuDelegate.m:
2810         (-[WebDefaultUIDelegate appendDefaultItems:toArray:]):
2811         new method, handles initial separator
2812         (-[WebDefaultUIDelegate contextMenuItemsForElement:defaultMenuItems:]):
2813         now has defaultMenuItems: parameter. Any menu items in this array are appended at the end of
2814         the standard set.
2815         (-[WebDefaultUIDelegate editingContextMenuItemsForElement:defaultMenuItems:]):
2816         ditto
2817         (-[WebDefaultUIDelegate webView:contextMenuItemsForElement:defaultMenuItems:]):
2818         This had a defaultMenuItems parameter before but it was always nil. Now it passes the defaultMenuItems
2819         parameter on to the two methods that construct lists (one for editing, the other for viewing). Also
2820         tweaked variable name and type for clarity.
2821         
2822         * WebView.subproj/WebHTMLView.m:
2823         (-[WebHTMLView menuForEvent:]):
2824         passes nil for new defaultItems parameter of _menuForElement:
2825         
2826         * WebView.subproj/WebImageView.m:
2827         (-[WebImageView menuForEvent:]):
2828         ditto
2829         
2830         * WebView.subproj/WebTextView.m:
2831         (-[WebTextView menuForEvent:]):
2832         ditto
2833
2834         * WebView.subproj/WebPDFView.m:
2835         (-[WebPDFView elementAtPoint:]):
2836         new method to create the element dictionary needed for _menuForElement:defaultItems:. Only supplies the
2837         webFrame at this point.
2838         (-[WebPDFView _menuItemsFromPDFKitForEvent:]):
2839         new method to return copies of the menu items that PDFKit would include in the context menu, with
2840         WebKit tags applied
2841         (-[WebPDFView menuForEvent:]):
2842         now calls standard WebKit context menu mechanism, so clients' delegates can modify the context menu as
2843         desired. The initial set of items are the ones WebKit was already displaying for PDF context menus.
2844         
2845         * WebView.subproj/WebUIDelegate.h:
2846         added enum values for the menu items in the PDF context menu
2847         
2848         * WebView.subproj/WebViewPrivate.h:
2849         * WebView.subproj/WebView.m:
2850         (-[WebView _menuForElement:defaultItems:]):
2851         Added the defaultItems: parameter to this method, which is then passed along to WebDefaultUIDelegate.
2852         All callers pass nil except for WebPDFView, at least for now.
2853
2854 2005-06-22  Darin Adler  <darin@apple.com>
2855
2856         Change by Mitz Pettel.
2857         Reviewed by me.
2858
2859         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3618>
2860           RTL runs drawn by CG not reversed properly
2861
2862         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _CG_drawRun:style:geometry:]):
2863         Fix off-by-one mistake in order-swapping loops.
2864
2865 2005-06-22  Darin Adler  <darin@apple.com>
2866
2867         Change by Michael Gaiman.
2868         Reviewed by me.
2869
2870         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3436>
2871           Missing implementation of -[NSData(WebNSDateExtras) _webkit_parseRFC822HeaderFields]
2872
2873         * Misc.subproj/WebNSDataExtras.h: Fixed name of category say NSData, not NSDate.
2874         * Misc.subproj/WebNSDataExtras.m: (-[NSData _webkit_parseRFC822HeaderFields]): Fixed method name.
2875
2876 2005-06-21  John Sullivan  <sullivan@apple.com>
2877
2878         Reviewed by Vicki Murley
2879         
2880         - fixed assertion failure Vicki ran into
2881
2882         * Misc.subproj/WebIconDatabase.m:
2883         (-[WebIconDatabase _forgetIconForIconURLString:]):
2884         Handle the case where there are no associated page URLs for the icon URL
2885
2886 2005-06-20  John Sullivan  <sullivan@apple.com>
2887
2888         Reviewed by Chris Blumenberg.
2889         
2890         - fixed <rdar://problem/4155182> icon database retain counts can be incorrect after removing all icons
2891         
2892         Replaced the concept of "future retain count per page URL" with a simpler concept of "retain count per
2893         page URL", which is maintained even after the icon is actually loaded (unlike the future retain count).
2894         The total retain count for an icon is now the sum of the retain counts per page URL along with any retain
2895         count not associated with a page URL -- this is still needed for some internal housekeeping purposes.
2896
2897         * Misc.subproj/WebIconDatabasePrivate.h:
2898         renamed iconURLToURLs -> iconURLToPageURLs for clarity
2899         renamed URLToIconURL -> pageURLToIconURL for clarity
2900         renamed futureURLToRetainCount -> pageURLToRetainCount (there's no more "future" aspect)
2901         renamed iconURLToRetainCount -> iconURLToExtraRetainCount (it now maintains only some of the retain count)
2902         
2903         * Misc.subproj/WebIconDatabase.m:
2904         (+[WebIconDatabase sharedIconDatabase]):
2905         updated for name changes only
2906         (-[WebIconDatabase init]):
2907         ditto
2908         (-[WebIconDatabase iconForURL:withSize:cache:]):
2909         ditto
2910         (-[WebIconDatabase iconURLForURL:]):
2911         ditto
2912         (-[WebIconDatabase retainIconForURL:]):
2913         just bump the retain count in pageURLToRetainCount, instead of behaving differently based on whether 
2914         an icon had been loaded for this URL; this let me delete the internal method _retainFutureIconForURL:
2915         (-[WebIconDatabase releaseIconForURL:]):
2916         decrement the retain count in pageURLToRetainCount, then handle the case where the retain count for 
2917         this page has gone to zero. I deleted the internal method _releaseFutureIconForURL: formerly called here.
2918         (-[WebIconDatabase removeAllIcons]):
2919         remove all the code that dealt with retain counts; this operation no longer affects retain counts
2920         (-[WebIconDatabase _setIconURL:forURL:]):
2921         remove the code that consolidated multiple retain counts for different page URLs into a single retain 
2922         count; the multiple retain counts are now maintained even after the icon is loaded
2923         (-[WebIconDatabase _clearDictionaries]):
2924         updated for name changes only
2925         (-[WebIconDatabase _loadIconDictionaries]):
2926         ditto
2927         (-[WebIconDatabase _updateFileDatabase]):
2928         ditto
2929         (-[WebIconDatabase _totalRetainCountForIconURLString:]):
2930         new method, sums the retain counts associated with specific page URLs and the extra retain count
2931         not associated with specific page URLs
2932         (-[WebIconDatabase _retainIconForIconURLString:]):
2933         updated for name changes
2934         (-[WebIconDatabase _forgetIconForIconURLString:]):
2935         no longer affects retain counts at all; this is up to callers
2936         (-[WebIconDatabase _releaseIconForIconURLString:]):
2937         this now distinguishes the case where the retain count not associated with any page URLs hits 
2938         zero from the case where the total retain count hits zero, and handles both
2939
2940 2005-06-20  John Sullivan  <sullivan@apple.com>
2941
2942         Reviewed by Chris Blumenberg.
2943         
2944         - added support for emptying the icon database
2945
2946         * Misc.subproj/WebIconDatabase.h: just fixed a typo
2947         * Misc.subproj/WebIconDatabasePrivate.h:
2948         added WebPendingPublic category with method removeAllIcons, and
2949         declared WebIconDatabaseDidRemoveAllIconsNotification string.
2950         
2951         * Misc.subproj/WebIconDatabase.m:
2952         (-[WebIconDatabase removeAllIcons]):
2953         new method, removes all known icons from memory and disk. There's one loose end,
2954         covered by radar bug 4155182, where it's possible for the icon database's retain
2955         counts to get off after this operation. I plan to fix this next.
2956         (-[WebIconDatabase _setIconURL:forURL:]):
2957         just fixed some extra whitespace
2958         (-[WebIconDatabase _forgetIconForIconURLString:]):
2959         new method, extracted from _releaseIconForIconURLString
2960         (-[WebIconDatabase _releaseIconForIconURLString:]):
2961         now calls extracted method
2962
2963         * WebKit.exp:
2964         added _WebIconDatabaseDidRemoveAllIconsNotification
2965
2966 2005-06-19  Darin Adler  <darin@apple.com>
2967
2968         Changes by Mitz Pettel
2969         Reviewed by me.
2970         
2971         - fixed <http://bugzilla.opendarwin.org/show_bug.cgi?id=3466>
2972           ATSUI text doesn't render at coordinates greater than 32K
2973
2974         * WebCoreSupport.subproj/WebTextRenderer.m: (-[WebTextRenderer _ATSU_drawRun:style:geometry:]):
2975         Translate the matrix of the CGContext instead of passing the appropriate coordinates to ATSU.
2976
2977 2005-06-17  Richard Williamson   <rjw@apple.com>
2978
2979         Changes by Mitz Pettel
2980         Reviewed by Richard Williamson.
2981
2982         Fixed http://bugzilla.opendarwin.org/show_bug.cgi?id=3545
2983
2984         * WebCoreSupport.subproj/WebTextRenderer.m:
2985         (reverseCharactersInRun):
2986         (-[WebTextRenderer _ATSU_pointToOffset:style:position:reversed:includePartialGlyphs:]):
2987
2988 2005-06-17  John Sullivan  <sullivan@apple.com>
2989
2990         Reviewed by Chris.
2991
2992         - fixed <rdar://problem/4151001> Reloading javascript-spawned window with no URL erases its contents
2993
2994         * WebView.subproj/WebFrame.m:
2995         (-[WebFrame reload]):
2996         do nothing if URL is zero-length
2997
2998 2005-06-14  John Sullivan  <sullivan@apple.com>
2999
3000         Changes by Devin Lane.
3001         Reviewed by me.
3002
3003         - fixed <rdar://problem/3766909> PDF viewing could use a zoom control other than the one in the context menu
3004
3005         * WebView.subproj/WebPDFView.h:
3006         now implements protocol _web_WebDocumentTextSizing
3007         * WebView.subproj/WebPDFView.m:
3008         (-[WebPDFView _updateScalingToReflectTextSize]):
3009         new method, sets the PDF scaling from the text size multiplier
3010         (-[WebPDFView setDataSource:]):
3011         call _updateScalingToReflectTextSize
3012         (-[WebPDFView _web_textSizeMultiplierChanged]):
3013         implementation of protocol _web_WebDocumentTextSizing, calls _updateScalingToReflectTextSize
3014
3015 2005-06-14  John Sullivan  <sullivan@apple.com>
3016
3017         Reviewed by Dave Harrison.
3018
3019         * WebView.subproj/WebHTMLView.m:
3020         (-[WebHTMLView _delayedEndPrintMode:]):
3021         After discussing this with Dave, I made this method both more debugger-friendly with asserts for
3022         the cases we don't think could ever happen, and more paranoid by handling these cases in deployment
3023         builds.
3024
3025 2005-06-14  Darin Adler  <darin@apple.com>
3026
3027         - fixed build for Xcode 2.1
3028
3029         * WebKit.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT to search for the
3030         WebKitSystemInterface.h file. We could re-jigger this again later, but for now this is consistent
3031         with both the .a file's location and where build-webkit puts the file.
3032
3033 2005-06-13  John Sullivan  <sullivan@apple.com>
3034
3035         Reviewed by Dave Harrison and Maciej.
3036
3037         * WebView.subproj/WebHTMLView.m:
3038         (-[WebHTMLView _endPrintMode]):
3039         new method, extracted from identical code in beginDocument and endDocument. This method must be called
3040         once to counterbalance the code called from knowsPageRange that turns on "printing mode".
3041         (-[WebHTMLView _delayedEndPrintMode:]):
3042         new method, called from "perform after delay". Checks whether the same print operation is still underway
3043         and, if so, delays further. Otherwise calls _endPrintMode directly.
3044         (-[WebHTMLView knowsPageRange:]):
3045         after turning on "printing mode", queue up a delayed call to _delayedEndPrintMode:. If there's an early
3046         error in the print mechanism such that beginDocument is never called, this will cleanly end "printing
3047         mode" and make the webview usable again.
3048         (-[WebHTMLView beginDocument]):
3049         cancel any delayed call to _delayedEndPrintMode:. If we get this far along in printing, then we don't need
3050         the failsafe call to _delayedEndPrintMode: that was set up in knowsPageRange:. Also, call extracted method.
3051         (-[WebHTMLView endDocument]):
3052         call extracted method
3053
3054 2005-06-13  Maciej Stachowiak  <mjs@apple.com>
3055
3056         Reviewed by Chris Blumenberg and Adele.
3057
3058         - better fix for <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
3059         http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
3060
3061         With this change and the matching WebKit change we'll still stop loading the moment you click
3062         a download link, but the unload event and detaching of event handlers will not happen early any more.
3063         
3064         * WebView.subproj/WebDataSource.m:
3065         (-[WebDataSource _stopLoadingInternal]): call stopLoading on bridge instead of closeURL.
3066         * WebView.subproj/WebFrame.m:
3067         (-[WebFrame _transitionToCommitted:]): Revert previous attempt at fix.
3068         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): ditto
3069         (-[WebFrame stopLoading]): ditto
3070
3071 2005-06-13  Chris Petersen  <cpetersen@apple.com>
3072
3073         Changes by Darin.
3074         Reviewed by me.
3075
3076         - fixed problems building deployment due to recent init change
3077
3078         * WebView.subproj/WebArchive.m: (-[WebArchive initWithCoder:]):
3079         Put the [super init] call and check for nil outside the exception handler.
3080         * WebView.subproj/WebResource.m: (-[WebResource initWithCoder:]): Ditto.
3081
3082 2005-06-12  Darin Adler  <darin@apple.com>
3083
3084         Reviewed by Maciej.
3085
3086         - fixed <rdar://problem/4141569> REGRESSION (412+): printing fails on any page with images, and for standalone images
3087           also <http://bugzilla.opendarwin.org/show_bug.cgi?id=3318>
3088
3089         * WebCoreSupport.subproj/WebImageData.m: Got rid of use of tabs instead of spaces throughout the file.
3090         (-[WebImageData _checkSolidColor:]): Wrap use of NSGraphicsContext with an autorelease pool.
3091         (-[WebImageData _fillSolidColorInRect:compositeOperation:context:]): Ditto.
3092         (-[WebImageData tileInRect:fromPoint:context:]): Ditto.
3093         (-[WebImageData _PDFDrawFromRect:toRect:operation:alpha:flipped:context:]): Ditto.
3094
3095 2005-06-12  Darin Adler  <darin@apple.com>
3096
3097         Changes by Nick Zitzmann.
3098         Reviewed by me.
3099
3100         - fixed init methods that don't handle return values from the init methods they call
3101
3102         * WebView.subproj/WebArchive.m:
3103         (-[WebArchive init]): Use value returned by init, check it for nil too.
3104         (-[WebArchive initWithMainResource:subresources:subframeArchives:]): Ditto.
3105         (-[WebArchive _initWithPropertyList:]): Ditto.
3106         (-[WebArchive initWithCoder:]): Ditto.
3107         * WebView.subproj/WebClipView.m:
3108         (-[WebClipView initWithFrame:]): Ditto.
3109         * WebView.subproj/WebDebugDOMNode.m:
3110         (-[WebDebugDOMNode initWithName:value:source:children:]): Ditto.
3111         * WebView.subproj/WebFrame.m:
3112         (-[WebFormState initWithForm:values:sourceFrame:]): Ditto.
3113         (-[WebFrame initWithName:webFrameView:webView:]): Ditto.
3114         * WebView.subproj/WebFrameView.m:
3115         (-[WebFrameView initWithFrame:]): Ditto.
3116         * WebView.subproj/WebHTMLRepresentation.m:
3117         (-[WebHTMLRepresentation init]): Ditto.
3118         * WebView.subproj/WebHTMLView.m:
3119         (-[WebHTMLView initWithFrame:]): Ditto.
3120         (-[WebTextCompleteController initWithHTMLView:]): Ditto.
3121         * WebView.subproj/WebImageView.m:
3122         (-[WebImageView initWithFrame:]): Ditto.
3123         * WebView.subproj/WebPreferences.m:
3124         (-[WebPreferences initWithIdentifier:]): Ditto.
3125         * WebView.subproj/WebRenderNode.m:
3126         (-[WebRenderNode initWithName:position:rect:view:children:]): Ditto.
3127         * WebView.subproj/WebResource.m:
3128         (-[WebResource init]): Ditto.
3129         (-[WebResource initWithCoder:]): Ditto.
3130         * WebView.subproj/WebView.m:
3131         (-[WebViewPrivate init]): Call super init.
3132         (-[_WebSafeForwarder initWithTarget:defaultTarget:templateClass:]): Use value returned by init, check it for nil too.
3133         (-[WebView initWithFrame:]): Ditto.
3134
3135 2005-06-12  Maciej Stachowiak  <mjs@apple.com>
3136
3137         Reviewed by Chris Blumenberg.
3138
3139         - fixed <rdar://problem/4142247> REGRESSION: List to browse widgets at Apple website failed. Closing tab afterwards caused Safari crash
3140         http://bugzilla.opendarwin.org/show_bug.cgi?id=3445
3141         
3142         * WebView.subproj/WebFrame.m:
3143         (-[WebFrame _transitionToCommitted:]): Stop loading the non-provisional data
3144         source before swapping in the provisional.
3145         (-[WebFrame _continueLoadRequestAfterNavigationPolicy:formState:]): Stop only
3146         the provisional load here, we would not want to stop loading if this navigation
3147         later turns into a download or is cancelled before being committed.
3148         (-[WebFrame stopLoading]): Factored a bit.
3149         (-[WebFrame _cancelProvisionalLoad]): New method to stop only provisional load,
3150         and cancel any pending policy deicions.
3151         (-[WebFrame _stopNonProvisionalLoadOnly]): New mthod that stops only the main
3152         load.
3153
3154 2005-06-10  John Sullivan  <sullivan@apple.com>
3155
3156         reviewed by Dave Harrison (first & second drafts) and Darin Adler (third draft)
3157
3158         - WebKit part of fix for 
3159         <rdar://problem/4145214> REGRESSION (412+): Can't drag URLs from the location bar
3160
3161         * Misc.subproj/WebNSPasteboardExtras.m:
3162         (+[NSPasteboard initialize]):
3163         Reinstate variation of old code that uses CreatePasteboardFlavorTypeName to set up our new pasteboard types.
3164         The newfangled way didn't work.
3165
3166 2005-06-07  Darin Adler  <darin@apple.com>
3167
3168         Change by Mark Rowe <opendarwin.org@bdash.net.nz>.
3169         Reviewed by me.
3170
3171         - fixed the WebKit half of build failure with spaces in the path
3172           http://bugzilla.opendarwin.org/show_bug.cgi?id=3291
3173
3174         * WebKit.pbproj/project.pbxproj: Quote DERIVED_FILE_DIR when it is substituted
3175         into FRAMEWORK_SEARCH_PATHS, and SYMROOT when into HEADER_SEARCH_PATHS.
3176
3177 2005-06-06  Darin Adler  <darin@apple.com>
3178
3179         * Info.plist: Bumped version to 412+. For some reason it was set to 312.1!
3180
3181 2005-06-05  Darin Adler  <darin@apple.com>
3182
3183         Reviewed by Hyatt.
3184
3185         - fixed build that I broke with the license change (some includes of WebException were still around)
3186
3187         * WebKit.pbproj/project.pbxproj: Removed references to WebException.h/m.
3188         * WebView.subproj/WebDataSource.m: Removed include of WebException.h.
3189         * WebView.subproj/WebHTMLView.m: Ditto.
3190         * WebView.subproj/WebView.m: Ditto.
3191
3192         - fixed build under gcc 4.0 (some code moved here from Foundation had warnings)
3193
3194         * Misc.subproj/WebNSDataExtras.m:
3195         (-[NSString _web_capitalizeRFC822HeaderFieldName]): Use char instead of UInt8.
3196         (-[NSData _webkit_guessedMIMEType]):  Use char instead of UInt8, and take out now-
3197         unneeded type casts.
3198
3199 2005-06-05  Darin Adler  <darin@apple.com>
3200
3201         - added appropriate license headers to most files and updated copyright to reflect publication dates
3202
3203         * LICENSE: Added.
3204         * <lots of files>: Added license header.
3205
3206         * WebKit.pbproj/project.pbxproj: Removed references to NP_objc.h.
3207
3208         * API-Issues.rtf: Removed.
3209         * Misc.subproj/WebException.h: Removed.
3210         * Misc.subproj/WebException.m: Removed.
3211         * Plugins.subproj/NP_objc.h: Removed.
3212
3213 2005-06-01  Darin Adler  <darin@apple.com>
3214
3215         Reviewed by John Sullivan.
3216
3217         - WebKit part of fix for <rdar://problem/3166090> add IE JavaScript extension window.showModalDialog
3218
3219         * WebCoreSupport.subproj/WebBridge.m:
3220         (-[WebBridge createModalDialogWithURL:]): Added. Calls the UI delegate, falling back to the generic
3221         "create WebView" method.
3222         (-[WebBridge canRunModal]): Added. Checks the UI delegate to see if it implements runModal.
3223         (-[WebBridge canRunModalNow]): Added. Checks the "inConnectionCallback" field so we can prevent
3224         deadlock since we can't do any I/O while inside a connection callback until this aspect of NSURLConnection
3225         is changed.
3226         (-[WebBridge runModal]): Added. Sets "defersCallbacks" on all other web views in the group, then
3227         calls runModal on the UI delegate.
3228
3229         * WebView.subproj/WebBaseResourceHandleDelegate.h: Added inConnectionCallback class method.
3230         * WebView.subproj/WebBaseResourceHandleDelegate.m:
3231         (-[WebBaseResourceHandleDelegate connection:willSendRequest:redirectResponse:]): Bump count and then
3232         decrement count so we can tell if we are in a callback.
3233         (-[WebBaseResourceHandleDelegate connection:didReceiveAuthenticationChallenge:]): Ditto.
3234         (-[WebBaseResourceHandleDelegate connection:didCancelAuthenticationChallenge:]): Ditto.
3235         (-[WebBaseResourceHandleDelegate connection:didReceiveResponse:]): Ditto.
3236         (-[WebBaseResourceHandleDelegate connection:didReceiveData:lengthReceived:]): Ditto.
3237         (-[WebBaseResourceHandleDelegate connection:willStopBufferingData:]): Ditto.
3238         (-[WebBaseResourceHandleDelegate connectionDidFinishLoading:]): Ditto.
3239         (-[WebBaseResourceHandleDelegate connection:didFailWithError:]): Ditto.
3240         (-[WebBaseResourceHandleDelegate connection:willCacheResponse:]): Ditto.
3241         (+[WebBaseResourceHandleDelegate inConnectionCallback]): Added. Return YES if count is not 0.
3242
3243         * WebView.subproj/WebMainResourceClient.m:
3244         (-[WebMainResourceClient receivedError:]): Changed to use the method without the connection: parameter
3245         in the base class, since we no longer are overriding the connection: version.
3246         (-[WebMainResourceClient willSendRequest:redirectResponse:]): Change to override the version without
3247         the connection prefix/parameter; now only the base class overrides the actual connection delegate methods.
3248         (-[WebMainResourceClient continueAfterContentPolicy:response:]): Ditto.
3249         (-[WebMainResourceClient didReceiveResponse:]): Ditto.
3250         (-[WebMainResourceClient didReceiveData:lengthReceived:]): Ditto.
3251         (-[WebMainResourceClient didFinishLoading]): Ditto.
3252         (-[WebMainResourceClient didFailWithError:]): Ditto.
3253         (-[WebMainResourceClient loadWithRequestNow:]): Call the method without the connection parameter.
3254
3255         * WebView.subproj/WebUIDelegatePrivate.h: Added new SPI here that WebBrowser implements.
3256
3257 2005-05-26  Darin Adler  <darin@apple.com>
3258
3259         Reviewed by John.
3260
3261         - fix build failure from when I removed WebCoreUnicode
3262
3263         * WebCoreSupport.subproj/WebTextRenderer.m: Removed import of WebUnicode.h that I missed.
3264         (-[WebTextRenderer _convertUnicodeCharacters:length:toGlyphs:]): Switch from our own macros
3265         to the ICU macros for surrogate pairs.
3266         (widthForNextCharacter): Ditto.
3267
3268 2005-05-26  David Harrison  <harrison@apple.com>
3269
3270         <rdar://problem/4120518> Mail: control-T in an empty message crashes mail
3271
3272         * WebCoreSupport.subproj/WebBridge.m:
3273         (-[WebBridge issueTransposeCommand]):
3274         New, to support transpose in JS.
3275
3276 2005-05-26  Darin Adler  <darin@apple.com>
3277
3278         Reviewed by Richard and Dave Harrison.
3279
3280         - eliminate WebCoreUnicode and use ICU directly instead
3281
3282         * Misc.subproj/WebKitNSStringExtras.m: (canUseFastRenderer): Use u_charDirection directly.
3283         * WebCoreSupport.subproj/WebTextRenderer.m: Removed import of <WebCore/WebCoreUnicode.h>.
3284         * WebView.subproj/WebHTMLView.m: (+[WebHTMLView initialize]): Removed call to WebKitInitializeUnicode.
3285
3286         * Misc.subproj/WebUnicode.h: Removed.
3287         * Misc.subproj/WebUnicode.m: Removed.
3288         * Misc.subproj/WebUnicodeTables.m: Removed.
3289
3290         * WebKit.pbproj/project.pbxproj: Removed files.
3291
3292 2005-05-24  Richard Williamson   <rjw@apple.com>
3293
3294         Fixed <rdar://problem/4097289> -[WebView elementAtPoint:] failing when WebView is nested and offset
3295
3296         Code to determine the correct frame under the window point was
3297         converting the point incorrectly.
3298
3299         Reviewed by Chris.
3300
3301         * WebView.subproj/WebView.m:
3302         (-[WebView _frameViewAtWindowPoint:]):
3303
3304 2005-05-23  John Sullivan  <sullivan@apple.com>
3305
3306         Reviewed by Kevin.
3307         
3308         - WebKit part of <rdar://problem/4125783> WebKit needs a way to control whether textareas are resizable
3309
3310         * WebView.subproj/WebPreferencesPrivate.h:
3311         added private-for-now getter and setter for new preference
3312         * WebView.subproj/WebPreferenceKeysPrivate.h:
3313         added private preference key controlling whether textareas are resizable
3314         * WebView.subproj/WebPreferences.m:
3315         (+[WebPreferences initialize]):
3316         initial value of new preference is NO, so other clients' behavior doesn't change
3317         (-[WebPreferences textAreasAreResizable]):
3318         new getter
3319         (-[WebPreferences setTextAreasAreResizable:]):
3320         new setter
3321         
3322         * WebView.subproj/WebView.m:
3323         (-[WebView _updateWebCoreSettingsFromPreferences:]):
3324         update this new setting in WebCore
3325
3326         * English.lproj/StringsNotToBeLocalized.txt:
3327         updated for these changes
3328
3329 2005-05-23  Chris Blumenberg  <cblu@apple.com>
3330
3331         Changed type for identifier parameter in WebResourceLoadDelegate-related calls to id from NSString.
3332
3333         Reviewed by kevin.
3334
3335         * WebCoreSupport.subproj/WebBridge.m:
3336         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]):
3337         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]):
3338         * WebView.subproj/WebFrame.m:
3339         (-[WebFrame _opened]):
3340         (-[WebFrame _requestFromDelegateForRequest:identifier:error:]):
3341         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]):
3342         (-[WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:]):
3343         * WebView.subproj/WebFrameInternal.h:
3344
3345 2005-05-20  Chris Blumenberg  <cblu@apple.com>
3346
3347         Fixed: <rdar://problem/4098786> sync. XMLHttpRequest works w/o AllowNetworkAccess key because load delegate is not consulted
3348
3349         Synchronous loads did not cause the willSendRequest method on the resource load delegate to be called. This is the method that Dashboard uses to enforce AllowNetworkAccess and this must be called to avoid exploits.
3350
3351         Reviewed by sullivan.
3352
3353         * WebCoreSupport.subproj/WebBridge.m:
3354         (-[WebBridge objectLoadedFromCacheWithURL:response:data:]): call [WebFrame _requestFromDelegateForRequest:identifier:error:] then 
3355         [WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:] so synthetic resource load delegate 
3356         methods are called and the data is saved as a WebResource for resources in the WebCore cache.
3357
3358         (-[WebBridge syncLoadResourceWithURL:customHeaders:postData:finalURL:responseHeaders:statusCode:]): call [WebFrame _requestFromDelegateForRequest:identifier:error:],
3359         respect its result, do the load and then call [WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:] 
3360         for synchronous loads
3361
3362         * WebView.subproj/WebFrame.m:
3363         (-[WebFrame _opened]): call [WebFrame _requestFromDelegateForRequest:identifier:error:] then 
3364         [WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:] so synthetic resource load delegate methods are called 
3365         for subresrources in the page cache
3366         
3367         (-[WebFrame _requestFromDelegateForRequest:identifier:error:]): new, was part of the removed _sendResourceLoadDelegateMessagesForURL:::
3368         This method calls identifierForInitialRequest and willSendRequest.
3369
3370         (-[WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]): new, was part of the removed _sendResourceLoadDelegateMessagesForURL:::
3371         This method calls the remaining resource load delegate messages.
3372
3373         (-[WebFrame _saveResourceAndSendRemainingDelegateMessagesWithRequest:identifier:response:data:error:]): new, saves the resource and calls
3374         [WebFrame _sendRemainingDelegateMessagesWithIdentifier:response:length:error:]
3375
3376         * WebView.subproj/WebFrameInternal.h:
3377
3378 2005-05-17  Chris Blumenberg  <cblu@apple.com>
3379         
3380         Fixed: <rdar://problem/4119282> clicking a link in an RTF file opens the link with NSWorkspace without the usual security checks or WebView delegate control
3381
3382         Reviewed by mjs.
3383
3384         * WebCoreSupport.subproj/WebBridge.m:
3385         (-[WebBridge loadURL:referrer:reload:userGesture:target:triggeringEvent:form:formValues:]): pass the passed referrer to canLoadURL::: not [self referrer]
3386         (-[WebBridge postWithURL:referrer:target:data:contentType:triggeringEvent:form:formValues:]): ditto
3387         * WebView.subproj/WebTextView.m:
3388         (-[WebTextView clickedOnLink:atIndex:]): call the loadURL bridge method so that security checks are made, command/option clicks work, policy delegate is consulted etc.
3389
3390 2005-05-17  Chris Blumenberg  <cblu@apple.com>
3391
3392         Fixed: <rdar://problem/4120255> web archives on remote servers can be viewed directly (with major security issues); should download instead
3393
3394         Reviewed by mjs.
3395
3396         * WebView.subproj/WebBaseResourceHandleDelegate.h:
3397         * WebView.subproj/WebMainResourceClient.m:
3398         (-[WebMainResourceClient continueAfterContentPolicy:response:]): if the WebKit client has chosen to "use" a remote web archive, stop the load with an error
3399
3400 2005-05-16  Darin Adler  <darin@apple.com>
3401
3402         - attempt to get things building under "Saffron" development tools
3403
3404         * WebKit.pbproj/project.pbxproj: Use BUILT_PRODUCTS_DIR instead of SYMROOT.
3405
3406 2005-05-13  John Sullivan  <sullivan@apple.com>
3407
3408         Reviewed by Kevin.
3409         
3410         - fixed <rdar://problem/4093306> Safari crashes if Esc key is held down during series 
3411         of authentication sheets
3412
3413         * Panels.subproj/WebAuthenticationPanel.m:
3414         (-[WebAuthenticationPanel cancel:]):
3415         retain and autorelease self. This is a workaround for an AppKit key-handling issue, which I wrote up as:
3416         <rdar://problem/4118422> Key-down events can be sent to a closed window if a key is kept pressed down
3417
3418 2005-05-12  John Sullivan  <sullivan@apple.com>
3419
3420         Reviewed by Kevin.
3421
3422         - rolled in changes from experimental-ui-branch to support resizable textareas
3423         and find-as-you-type and confirming unsubmitted form changes. The files/functions 
3424         modified are listed just below. After that are the ChangeLog comments from the branch.
3425
3426         * WebCoreSupport.subproj/WebBridge.m:
3427         (-[WebBridge textDidChange:]):
3428         * WebView.subproj/WebFormDelegate.h:
3429         * WebView.subproj/WebFormDelegate.m:
3430         (-[WebFormDelegate textDidChange:inFrame:]):
3431         * WebView.subproj/WebHTMLView.m:
3432         (-[WebHTMLView maintainsInactiveSelection]):
3433         (-[WebHTMLView searchFor:direction:caseSensitive:wrap:]):
3434         (-[WebHTMLView _searchFor:direction:caseSensitive:wrap:findInSelection:]):
3435         * WebView.subproj/WebView.m:
3436         (-[WebView _searchFor:direction:caseSensitive:wrap:findInSelection:]):