60 #include "HistoryItem.h" |
60 #include "HistoryItem.h" |
61 #include "IconDatabase.h" |
61 #include "IconDatabase.h" |
62 #include "IconLoader.h" |
62 #include "IconLoader.h" |
63 #include "InspectorController.h" |
63 #include "InspectorController.h" |
64 #include "Logging.h" |
64 #include "Logging.h" |
65 #include "MIMETypeRegistry.h" |
65 #include "MimeTypeRegistry.h" |
66 #include "MainResourceLoader.h" |
66 #include "MainResourceLoader.h" |
67 #include "Page.h" |
67 #include "Page.h" |
68 #include "PageCache.h" |
68 #include "PageCache.h" |
69 #include "ProgressTracker.h" |
69 #include "ProgressTracker.h" |
70 #include "RenderPart.h" |
70 #include "RenderPart.h" |
75 #include "SegmentedString.h" |
75 #include "SegmentedString.h" |
76 #include "Settings.h" |
76 #include "Settings.h" |
77 #include "SystemTime.h" |
77 #include "SystemTime.h" |
78 #include "TextResourceDecoder.h" |
78 #include "TextResourceDecoder.h" |
79 #include "WindowFeatures.h" |
79 #include "WindowFeatures.h" |
80 #include "XMLHttpRequest.h" |
80 #include "xmlhttprequest.h" |
81 #include "XMLTokenizer.h" |
81 #include "XMLTokenizer.h" |
82 #include "kjs_binding.h" |
82 #include "kjs_binding.h" |
83 #include "kjs_proxy.h" |
83 #include "kjs_proxy.h" |
84 #include "kjs_window.h" |
84 #include "kjs_window.h" |
85 #include <kjs/JSLock.h> |
85 #include <kjs/JSLock.h> |
224 , m_isRunningScript(false) |
224 , m_isRunningScript(false) |
225 , m_didCallImplicitClose(false) |
225 , m_didCallImplicitClose(false) |
226 , m_wasUnloadEventEmitted(false) |
226 , m_wasUnloadEventEmitted(false) |
227 , m_isComplete(false) |
227 , m_isComplete(false) |
228 , m_isLoadingMainResource(false) |
228 , m_isLoadingMainResource(false) |
229 , m_mayLoadIconLater(false) |
|
230 , m_cancellingWithLoadInProgress(false) |
229 , m_cancellingWithLoadInProgress(false) |
231 , m_needsClear(false) |
230 , m_needsClear(false) |
232 , m_receivedData(false) |
231 , m_receivedData(false) |
233 , m_encodingWasChosenByUser(false) |
232 , m_encodingWasChosenByUser(false) |
234 , m_containsPlugIns(false) |
233 , m_containsPlugIns(false) |
1042 startIconLoader(); |
1041 startIconLoader(); |
1043 } |
1042 } |
1044 |
1043 |
1045 void FrameLoader::iconLoadDecisionAvailable() |
1044 void FrameLoader::iconLoadDecisionAvailable() |
1046 { |
1045 { |
|
1046 if (!m_mayLoadIconLater) |
|
1047 return; |
1047 LOG(IconDatabase, "FrameLoader %p was told a load decision is available for its icon", this); |
1048 LOG(IconDatabase, "FrameLoader %p was told a load decision is available for its icon", this); |
1048 if (m_mayLoadIconLater) { |
1049 startIconLoader(); |
1049 // Notfification came from iconDataBase to load the icon |
1050 m_mayLoadIconLater = false; |
1050 startIconLoader(); |
|
1051 m_mayLoadIconLater = false; |
|
1052 } else { |
|
1053 // Icon was specified in <link> tag with rel="icon" or rel="shortcut icon" property |
|
1054 if(m_iconLoader) |
|
1055 m_iconLoader->stopLoading(); // cancel previous loading state |
|
1056 startIconLoader(); |
|
1057 } |
|
1058 } |
1051 } |
1059 |
1052 |
1060 void FrameLoader::startIconLoader() |
1053 void FrameLoader::startIconLoader() |
1061 { |
1054 { |
1062 // FIXME: We kick off the icon loader when the frame is done receiving its main resource. |
1055 // FIXME: We kick off the icon loader when the frame is done receiving its main resource. |
1516 // Scroll nested layers and frames to reveal the anchor. |
1509 // Scroll nested layers and frames to reveal the anchor. |
1517 // Align to the top and to the closest side (this matches other browsers). |
1510 // Align to the top and to the closest side (this matches other browsers). |
1518 RenderObject* renderer; |
1511 RenderObject* renderer; |
1519 IntRect rect; |
1512 IntRect rect; |
1520 if (!anchorNode) |
1513 if (!anchorNode) |
1521 { |
|
1522 renderer = m_frame->document()->renderer(); // top of document |
1514 renderer = m_frame->document()->renderer(); // top of document |
1523 rect = m_frame->document()->getRect(); |
|
1524 } |
|
1525 else { |
1515 else { |
1526 renderer = anchorNode->renderer(); |
1516 renderer = anchorNode->renderer(); |
1527 rect = anchorNode->getRect(); |
1517 rect = anchorNode->getRect(); |
1528 } |
1518 } |
1529 if (renderer) |
1519 if (renderer) |
1530 renderer->enclosingLayer()->scrollRectToVisible(rect, RenderLayer::gAlignToEdgeIfNeeded, RenderLayer::gAlignTopAlways); |
1520 renderer->enclosingLayer()->scrollRectToVisible(rect, RenderLayer::gAlignToEdgeIfNeeded, RenderLayer::gAlignTopAlways); |
1531 |
1521 |
1532 return true; |
1522 return true; |
1533 } |
1523 } |
1534 |
1524 |
1535 bool FrameLoader::requestObject(RenderPart* renderer, const String& url, const AtomicString& frameName, |
1525 bool FrameLoader::requestObject(RenderPart* renderer, const String& url, const AtomicString& frameName, |