Commit 6cd69069 authored by Pavel Shmakov's avatar Pavel Shmakov Committed by Commit Bot

Persist cookies for profiles with non-null path

Currently the cookies are not persisted because the default
implementation of ContentBrowserClient::CreateNetworkContext doesn't
specify cookie_path parameter. In this CL CreateNetworkContext is
overridden in WebLayer implementation.

Bug: 1014048
Change-Id: I1b7a307a64cd836eb5c4a45817412b997b89f1f5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1862677
Commit-Queue: Pavel Shmakov <pshmakov@chromium.org>
Reviewed-by: default avatarJohn Abd-El-Malek <jam@chromium.org>
Reviewed-by: default avatarBo <boliu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#706390}
parent 9c85b7d9
......@@ -92,6 +92,7 @@ jumbo_static_library("weblayer_lib") {
"//net",
"//net:net_resources",
"//sandbox",
"//services/network/public/mojom",
"//services/service_manager/embedder:embedder_result_codes",
"//skia",
"//third_party/blink/public/strings",
......
......@@ -5,6 +5,8 @@ include_rules = [
"+mojo/public",
"+net",
"+sandbox",
"+services/network/network_service.h",
"+services/network/public",
"+services/service_manager",
"+third_party/blink/public/common",
"+ui/aura",
......
......@@ -9,11 +9,17 @@
#include "base/command_line.h"
#include "base/files/file.h"
#include "base/files/file_util.h"
#include "base/path_service.h"
#include "base/stl_util.h"
#include "build/build_config.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/devtools_manager_delegate.h"
#include "content/public/browser/network_service_instance.h"
#include "content/public/common/service_names.mojom.h"
#include "content/public/common/user_agent.h"
#include "services/network/network_service.h"
#include "services/network/public/mojom/network_context.mojom.h"
#include "services/network/public/mojom/network_service.mojom.h"
#include "third_party/blink/public/common/user_agent/user_agent_metadata.h"
#include "url/gurl.h"
#include "url/origin.h"
......@@ -93,6 +99,26 @@ blink::UserAgentMetadata ContentBrowserClientImpl::GetUserAgentMetadata() {
return metadata;
}
mojo::Remote<network::mojom::NetworkContext>
ContentBrowserClientImpl::CreateNetworkContext(
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path) {
mojo::Remote<network::mojom::NetworkContext> network_context;
network::mojom::NetworkContextParamsPtr context_params =
network::mojom::NetworkContextParams::New();
context_params->user_agent = GetUserAgent();
context_params->accept_language = "en-us,en";
if (!context->IsOffTheRecord()) {
base::FilePath cookie_path = context->GetPath();
cookie_path = cookie_path.Append(FILE_PATH_LITERAL("Cookies"));
context_params->cookie_path = cookie_path;
}
content::GetNetworkService()->CreateNetworkContext(
network_context.BindNewPipeAndPassReceiver(), std::move(context_params));
return network_context;
}
#if defined(OS_LINUX) || defined(OS_ANDROID)
void ContentBrowserClientImpl::GetAdditionalMappedFilesForChildProcess(
const base::CommandLine& command_line,
......
......@@ -35,6 +35,10 @@ class ContentBrowserClientImpl : public content::ContentBrowserClient {
base::StringPiece name) override;
std::string GetUserAgent() override;
blink::UserAgentMetadata GetUserAgentMetadata() override;
mojo::Remote<network::mojom::NetworkContext> CreateNetworkContext(
content::BrowserContext* context,
bool in_memory,
const base::FilePath& relative_partition_path) override;
#if defined(OS_LINUX) || defined(OS_ANDROID)
void GetAdditionalMappedFilesForChildProcess(
......
......@@ -34,6 +34,7 @@ import org.chromium.weblayer.Profile;
import org.chromium.weblayer.UnsupportedVersionException;
import org.chromium.weblayer.WebLayer;
import java.io.File;
import java.util.List;
/**
......@@ -171,7 +172,8 @@ public class WebLayerShellActivity extends FragmentActivity {
}
}
BrowserFragment fragment = WebLayer.createBrowserFragment(null);
File profile = new File(getDataDir(), "defaultProfile");
BrowserFragment fragment = WebLayer.createBrowserFragment(profile.getPath());
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(mMainViewId, fragment);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment