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