| Index: chrome/browser/sync/glue/session_model_associator.cc
|
| ===================================================================
|
| --- chrome/browser/sync/glue/session_model_associator.cc (revision 99393)
|
| +++ chrome/browser/sync/glue/session_model_associator.cc (working copy)
|
| @@ -9,13 +9,10 @@
|
| #include <utility>
|
|
|
| #include "base/logging.h"
|
| -#include "base/sys_info.h"
|
| #include "base/tracked.h"
|
| -#include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/sessions/session_service_factory.h"
|
| #include "chrome/browser/sync/api/sync_error.h"
|
| -#include "chrome/browser/sync/glue/synced_session.h"
|
| #include "chrome/browser/sync/glue/synced_tab_delegate.h"
|
| #include "chrome/browser/sync/glue/synced_window_delegate.h"
|
| #include "chrome/browser/sync/internal_api/read_node.h"
|
| @@ -29,11 +26,6 @@
|
| #include "content/browser/tab_contents/navigation_entry.h"
|
| #include "content/common/notification_details.h"
|
| #include "content/common/notification_service.h"
|
| -#if defined(OS_LINUX)
|
| -#include "base/linux_util.h"
|
| -#elif defined(OS_WIN)
|
| -#include <windows.h>
|
| -#endif
|
|
|
| namespace browser_sync {
|
|
|
| @@ -131,18 +123,6 @@
|
| sync_pb::SessionHeader* header_s = specifics.mutable_header();
|
| SyncedSession* current_session =
|
| synced_session_tracker_.GetSession(local_tag);
|
| - header_s->set_client_name(current_session_name_);
|
| -#if defined(OS_LINUX)
|
| - header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_LINUX);
|
| -#elif defined(OS_MACOSX)
|
| - header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_MAC);
|
| -#elif defined(OS_WIN)
|
| - header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_WIN);
|
| -#elif defined(OS_CHROMEOS)
|
| - header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_CROS);
|
| -#else
|
| - header_s->set_device_type(sync_pb::SessionHeader_DeviceType_TYPE_OTHER);
|
| -#endif
|
|
|
| size_t window_num = 0;
|
| std::set<SyncedWindowDelegate*> windows =
|
| @@ -447,13 +427,8 @@
|
| }
|
|
|
| // Make sure we have a machine tag.
|
| - if (current_machine_tag_.empty()) {
|
| + if (current_machine_tag_.empty())
|
| InitializeCurrentMachineTag(&trans);
|
| - // The session name is retrieved asynchronously so it might not come back
|
| - // for the writing of the session. However, we write to the session often
|
| - // enough (on every navigation) that we'll pick it up quickly.
|
| - InitializeCurrentSessionName();
|
| - }
|
| synced_session_tracker_.SetLocalSessionTag(current_machine_tag_);
|
| if (!UpdateAssociationsFromSyncModel(root, &trans)) {
|
| error->Reset(FROM_HERE,
|
| @@ -491,8 +466,6 @@
|
| tab_map_.clear();
|
| tab_pool_.clear();
|
| local_session_syncid_ = sync_api::kInvalidId;
|
| - current_machine_tag_ = "";
|
| - current_session_name_ = "";
|
|
|
| // There is no local model stored with which to disassociate, just notify
|
| // foreign session handlers.
|
| @@ -507,64 +480,19 @@
|
| sync_api::WriteTransaction* trans) {
|
| DCHECK(CalledOnValidThread());
|
| syncable::Directory* dir = trans->GetWrappedWriteTrans()->directory();
|
| +
|
| + // TODO(zea): We need a better way of creating a machine tag. The directory
|
| + // kernel's cache_guid changes every time syncing is turned on and off. This
|
| + // will result in session's associated with stale machine tags persisting on
|
| + // the server since that tag will not be reused. Eventually this should
|
| + // become some string identifiable to the user. (Home, Work, Laptop, etc.)
|
| + // See issue at http://crbug.com/59672
|
| current_machine_tag_ = "session_sync";
|
| current_machine_tag_.append(dir->cache_guid());
|
| VLOG(1) << "Creating machine tag: " << current_machine_tag_;
|
| tab_pool_.set_machine_tag(current_machine_tag_);
|
| }
|
|
|
| -void SessionModelAssociator::OnSessionNameInitialized(const std::string name) {
|
| - DCHECK(CalledOnValidThread());
|
| - // Only use the default machine name if it hasn't already been set.
|
| - if (current_session_name_.empty()) {
|
| - current_session_name_ = name;
|
| - }
|
| -}
|
| -
|
| -// Task which runs on the file thread because it runs system calls which can
|
| -// block while retrieving sytem information.
|
| -class GetSessionNameTask : public Task {
|
| - public:
|
| - explicit GetSessionNameTask(
|
| - const WeakHandle<SessionModelAssociator> associator) :
|
| - associator_(associator) {}
|
| -
|
| - virtual void Run() {
|
| -#if defined(OS_LINUX)
|
| - std::string session_name = base::GetLinuxDistro();
|
| -#elif defined(OS_MACOSX)
|
| - std::string session_name = SessionModelAssociator::GetHardwareModelName();
|
| -#elif defined(OS_WIN)
|
| - std::string session_name = SessionModelAssociator::GetComputerName();
|
| -#else
|
| - std::string session_name;
|
| -#endif
|
| - if (session_name == "Unknown" || session_name.empty()) {
|
| - session_name = base::SysInfo::OperatingSystemName();
|
| - }
|
| - associator_.Call(FROM_HERE,
|
| - &SessionModelAssociator::OnSessionNameInitialized,
|
| - session_name);
|
| - }
|
| - const WeakHandle<SessionModelAssociator> associator_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(GetSessionNameTask);
|
| -};
|
| -
|
| -void SessionModelAssociator::InitializeCurrentSessionName() {
|
| - DCHECK(CalledOnValidThread());
|
| -#if defined(OS_CHROMEOS)
|
| - OnSessionNameInitialized("Chromebook");
|
| -#else
|
| - if (setup_for_test_) {
|
| - OnSessionNameInitialized("TestSessionName");
|
| - } else {
|
| - BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
|
| - new GetSessionNameTask(MakeWeakHandle(AsWeakPtr())));
|
| - }
|
| -#endif
|
| -}
|
| -
|
| bool SessionModelAssociator::UpdateAssociationsFromSyncModel(
|
| const sync_api::ReadNode& root,
|
| const sync_api::BaseTransaction* trans) {
|
| @@ -594,9 +522,6 @@
|
|
|
| // This is our previous header node, reuse it.
|
| local_session_syncid_ = id;
|
| - if (specifics.header().has_client_name()) {
|
| - current_session_name_ = specifics.header().client_name();
|
| - }
|
| } else {
|
| if (!specifics.has_tab())
|
| return false;
|
| @@ -636,7 +561,6 @@
|
| synced_session_tracker_.GetSession(foreign_session_tag);
|
|
|
| const sync_pb::SessionHeader& header = specifics.header();
|
| - PopulateSessionHeaderFromSpecifics(header, foreign_session);
|
| foreign_session->windows.reserve(header.window_size());
|
| VLOG(1) << "Associating " << foreign_session_tag << " with " <<
|
| header.window_size() << " windows.";
|
| @@ -681,36 +605,6 @@
|
| }
|
|
|
| // Static
|
| -void SessionModelAssociator::PopulateSessionHeaderFromSpecifics(
|
| - const sync_pb::SessionHeader& header_specifics,
|
| - SyncedSession* session_header) {
|
| - if (header_specifics.has_client_name()) {
|
| - session_header->session_name = header_specifics.client_name();
|
| - }
|
| - if (header_specifics.has_device_type()) {
|
| - switch (header_specifics.device_type()) {
|
| - case sync_pb::SessionHeader_DeviceType_TYPE_WIN:
|
| - session_header->device_type = SyncedSession::TYPE_WIN;
|
| - break;
|
| - case sync_pb::SessionHeader_DeviceType_TYPE_MAC:
|
| - session_header->device_type = SyncedSession::TYPE_MACOSX;
|
| - break;
|
| - case sync_pb::SessionHeader_DeviceType_TYPE_LINUX:
|
| - session_header->device_type = SyncedSession::TYPE_LINUX;
|
| - break;
|
| - case sync_pb::SessionHeader_DeviceType_TYPE_CROS:
|
| - session_header->device_type = SyncedSession::TYPE_CHROMEOS;
|
| - break;
|
| - case sync_pb::SessionHeader_DeviceType_TYPE_OTHER:
|
| - // Intentionally fall-through
|
| - default:
|
| - session_header->device_type = SyncedSession::TYPE_OTHER;
|
| - break;
|
| - }
|
| - }
|
| -}
|
| -
|
| -// Static
|
| void SessionModelAssociator::PopulateSessionWindowFromSpecifics(
|
| const std::string& session_tag,
|
| const sync_pb::SessionWindow& specifics,
|
| @@ -1182,18 +1076,4 @@
|
| sync_service_->IsCryptographerReady(&trans);
|
| }
|
|
|
| -#if defined(OS_WIN)
|
| -// Static
|
| -// TODO(nzea): This isn't safe to call on the UI-thread. Move it out to a util
|
| -// or object that lives on the FILE thread.
|
| -std::string SessionModelAssociator::GetComputerName() {
|
| - char computer_name[MAX_COMPUTERNAME_LENGTH + 1];
|
| - DWORD size = sizeof(computer_name);
|
| - if (GetComputerNameA(computer_name, &size)) {
|
| - return computer_name;
|
| - }
|
| - return std::string();
|
| -}
|
| -#endif
|
| -
|
| } // namespace browser_sync
|
|
|