Fix duplicate file source creation for web pages.
This commit is contained in:
parent
78314b2da9
commit
b03f869ee9
@ -578,6 +578,11 @@ void WebPagesManager::update_web_page(unique_ptr<WebPage> web_page, WebPageId we
|
|||||||
}
|
}
|
||||||
page = std::move(web_page);
|
page = std::move(web_page);
|
||||||
|
|
||||||
|
// must be called before any other action for correct behavior of get_url_file_source_id
|
||||||
|
if (!page->url.empty()) {
|
||||||
|
on_get_web_page_by_url(page->url, web_page_id, from_database);
|
||||||
|
}
|
||||||
|
|
||||||
update_web_page_instant_view(web_page_id, page->instant_view, std::move(old_instant_view));
|
update_web_page_instant_view(web_page_id, page->instant_view, std::move(old_instant_view));
|
||||||
|
|
||||||
auto new_file_ids = get_web_page_file_ids(page.get());
|
auto new_file_ids = get_web_page_file_ids(page.get());
|
||||||
@ -585,10 +590,6 @@ void WebPagesManager::update_web_page(unique_ptr<WebPage> web_page, WebPageId we
|
|||||||
td_->file_manager_->change_files_source(get_web_page_file_source_id(page.get()), old_file_ids, new_file_ids);
|
td_->file_manager_->change_files_source(get_web_page_file_source_id(page.get()), old_file_ids, new_file_ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!page->url.empty()) {
|
|
||||||
on_get_web_page_by_url(page->url, web_page_id, from_database);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_changed && !from_database) {
|
if (is_changed && !from_database) {
|
||||||
on_web_page_changed(web_page_id, true);
|
on_web_page_changed(web_page_id, true);
|
||||||
|
|
||||||
@ -1692,6 +1693,9 @@ const WebPagesManager::WebPage *WebPagesManager::get_web_page_force(WebPageId we
|
|||||||
FileSourceId WebPagesManager::get_web_page_file_source_id(WebPage *web_page) {
|
FileSourceId WebPagesManager::get_web_page_file_source_id(WebPage *web_page) {
|
||||||
if (!web_page->file_source_id.is_valid()) {
|
if (!web_page->file_source_id.is_valid()) {
|
||||||
web_page->file_source_id = td_->file_reference_manager_->create_web_page_file_source(web_page->url);
|
web_page->file_source_id = td_->file_reference_manager_->create_web_page_file_source(web_page->url);
|
||||||
|
VLOG(file_references) << "Create " << web_page->file_source_id << " for URL " << web_page->url;
|
||||||
|
} else {
|
||||||
|
VLOG(file_references) << "Return " << web_page->file_source_id << " for URL " << web_page->url;
|
||||||
}
|
}
|
||||||
return web_page->file_source_id;
|
return web_page->file_source_id;
|
||||||
}
|
}
|
||||||
@ -1708,6 +1712,9 @@ FileSourceId WebPagesManager::get_url_file_source_id(const string &url) {
|
|||||||
if (!web_page->file_source_id.is_valid()) {
|
if (!web_page->file_source_id.is_valid()) {
|
||||||
web_pages_[web_page_id]->file_source_id =
|
web_pages_[web_page_id]->file_source_id =
|
||||||
td_->file_reference_manager_->create_web_page_file_source(web_page->url);
|
td_->file_reference_manager_->create_web_page_file_source(web_page->url);
|
||||||
|
VLOG(file_references) << "Create " << web_page->file_source_id << " for " << web_page_id << " with URL " << url;
|
||||||
|
} else {
|
||||||
|
VLOG(file_references) << "Return " << web_page->file_source_id << " for " << web_page_id << " with URL " << url;
|
||||||
}
|
}
|
||||||
return web_page->file_source_id;
|
return web_page->file_source_id;
|
||||||
}
|
}
|
||||||
@ -1715,8 +1722,10 @@ FileSourceId WebPagesManager::get_url_file_source_id(const string &url) {
|
|||||||
auto &source_id = url_to_file_source_id_[url];
|
auto &source_id = url_to_file_source_id_[url];
|
||||||
if (!source_id.is_valid()) {
|
if (!source_id.is_valid()) {
|
||||||
source_id = td_->file_reference_manager_->create_web_page_file_source(url);
|
source_id = td_->file_reference_manager_->create_web_page_file_source(url);
|
||||||
|
VLOG(file_references) << "Create " << source_id << " for URL " << url;
|
||||||
|
} else {
|
||||||
|
VLOG(file_references) << "Return " << source_id << " for URL " << url;
|
||||||
}
|
}
|
||||||
VLOG(file_references) << "Return " << source_id << " for URL " << url;
|
|
||||||
return source_id;
|
return source_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user