diff options
author | Ben Murdoch <benm@google.com> | 2010-10-22 13:02:20 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2010-10-26 15:21:41 +0100 |
commit | a94275402997c11dd2e778633dacf4b7e630a35d (patch) | |
tree | e66f56c67e3b01f22c9c23cd932271ee9ac558ed /WebCore/page/Frame.cpp | |
parent | 09e26c78506587b3f5d930d7bc72a23287ffbec0 (diff) | |
download | external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.zip external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.gz external_webkit-a94275402997c11dd2e778633dacf4b7e630a35d.tar.bz2 |
Merge WebKit at r70209: Initial merge by Git
Change-Id: Id23a68efa36e9d1126bcce0b137872db00892c8e
Diffstat (limited to 'WebCore/page/Frame.cpp')
-rw-r--r--[-rwxr-xr-x] | WebCore/page/Frame.cpp | 45 |
1 files changed, 19 insertions, 26 deletions
diff --git a/WebCore/page/Frame.cpp b/WebCore/page/Frame.cpp index 9817e87..1b476a0 100755..100644 --- a/WebCore/page/Frame.cpp +++ b/WebCore/page/Frame.cpp @@ -153,7 +153,7 @@ inline Frame::Frame(Page* page, HTMLFrameOwnerElement* ownerElement, FrameLoader : m_page(page) , m_treeNode(this, parentFromOwnerElement(ownerElement)) , m_loader(this, frameLoaderClient) - , m_redirectScheduler(this) + , m_navigationScheduler(this) , m_ownerElement(ownerElement) , m_script(this) , m_editor(this) @@ -292,6 +292,9 @@ void Frame::setDocument(PassRefPtr<Document> newDoc) // Update the cached 'document' property, which is now stale. m_script.updateDocument(); + + if (m_page) + m_page->updateViewportArguments(); } #if ENABLE(ORIENTATION_EVENTS) @@ -344,35 +347,25 @@ static RegularExpression* createRegExpForLabels(const Vector<String>& labels) String Frame::searchForLabelsAboveCell(RegularExpression* regExp, HTMLTableCellElement* cell, size_t* resultDistanceFromStartOfCell) { - RenderObject* cellRenderer = cell->renderer(); - - if (cellRenderer && cellRenderer->isTableCell()) { - RenderTableCell* tableCellRenderer = toRenderTableCell(cellRenderer); - RenderTableCell* cellAboveRenderer = tableCellRenderer->table()->cellAbove(tableCellRenderer); - - if (cellAboveRenderer) { - HTMLTableCellElement* aboveCell = - static_cast<HTMLTableCellElement*>(cellAboveRenderer->node()); - - if (aboveCell) { - // search within the above cell we found for a match - size_t lengthSearched = 0; - for (Node* n = aboveCell->firstChild(); n; n = n->traverseNextNode(aboveCell)) { - if (n->isTextNode() && n->renderer() && n->renderer()->style()->visibility() == VISIBLE) { - // For each text chunk, run the regexp - String nodeString = n->nodeValue(); - int pos = regExp->searchRev(nodeString); - if (pos >= 0) { - if (resultDistanceFromStartOfCell) - *resultDistanceFromStartOfCell = lengthSearched; - return nodeString.substring(pos, regExp->matchedLength()); - } - lengthSearched += nodeString.length(); - } + HTMLTableCellElement* aboveCell = cell->cellAbove(); + if (aboveCell) { + // search within the above cell we found for a match + size_t lengthSearched = 0; + for (Node* n = aboveCell->firstChild(); n; n = n->traverseNextNode(aboveCell)) { + if (n->isTextNode() && n->renderer() && n->renderer()->style()->visibility() == VISIBLE) { + // For each text chunk, run the regexp + String nodeString = n->nodeValue(); + int pos = regExp->searchRev(nodeString); + if (pos >= 0) { + if (resultDistanceFromStartOfCell) + *resultDistanceFromStartOfCell = lengthSearched; + return nodeString.substring(pos, regExp->matchedLength()); } + lengthSearched += nodeString.length(); } } } + // Any reason in practice to search all cells in that are above cell? if (resultDistanceFromStartOfCell) *resultDistanceFromStartOfCell = notFound; |