refactor: simplify content script injection (#18532)

This commit is contained in:
Jeremy Apthorp 2019-06-04 16:07:34 -07:00 committed by GitHub
parent f80601da16
commit ed5fb4a720
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 63 additions and 407 deletions

View file

@ -1,34 +0,0 @@
// Copyright (c) 2016 GitHub, Inc.
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.
#include "atom/renderer/preferences_manager.h"
#include "atom/common/api/api_messages.h"
#include "content/public/renderer/render_thread.h"
namespace atom {
PreferencesManager::PreferencesManager() {
content::RenderThread::Get()->AddObserver(this);
}
PreferencesManager::~PreferencesManager() {}
bool PreferencesManager::OnControlMessageReceived(const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(PreferencesManager, message)
IPC_MESSAGE_HANDLER(AtomMsg_UpdatePreferences, OnUpdatePreferences)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
}
void PreferencesManager::OnUpdatePreferences(
const base::ListValue& preferences) {
auto copy =
base::ListValue::From(base::Value::ToUniquePtrValue(preferences.Clone()));
preferences_.swap(copy);
}
} // namespace atom

View file

@ -1,35 +0,0 @@
// Copyright (c) 2016 GitHub, Inc.
// Use of this source code is governed by the MIT license that can be
// found in the LICENSE file.
#ifndef ATOM_RENDERER_PREFERENCES_MANAGER_H_
#define ATOM_RENDERER_PREFERENCES_MANAGER_H_
#include <memory>
#include "base/values.h"
#include "content/public/renderer/render_thread_observer.h"
namespace atom {
class PreferencesManager : public content::RenderThreadObserver {
public:
PreferencesManager();
~PreferencesManager() override;
const base::ListValue* preferences() const { return preferences_.get(); }
private:
// content::RenderThreadObserver:
bool OnControlMessageReceived(const IPC::Message& message) override;
void OnUpdatePreferences(const base::ListValue& preferences);
std::unique_ptr<base::ListValue> preferences_;
DISALLOW_COPY_AND_ASSIGN(PreferencesManager);
};
} // namespace atom
#endif // ATOM_RENDERER_PREFERENCES_MANAGER_H_

View file

@ -15,7 +15,6 @@
#include "atom/renderer/atom_render_frame_observer.h"
#include "atom/renderer/content_settings_observer.h"
#include "atom/renderer/electron_api_service_impl.h"
#include "atom/renderer/preferences_manager.h"
#include "base/command_line.h"
#include "base/strings/string_split.h"
#include "base/strings/stringprintf.h"
@ -67,15 +66,6 @@ namespace atom {
namespace {
v8::Local<v8::Value> GetRenderProcessPreferences(
const PreferencesManager* preferences_manager,
v8::Isolate* isolate) {
if (preferences_manager->preferences())
return mate::ConvertToV8(isolate, *preferences_manager->preferences());
else
return v8::Null(isolate);
}
std::vector<std::string> ParseSchemesCLISwitch(base::CommandLine* command_line,
const char* switch_name) {
std::string custom_schemes = command_line->GetSwitchValueASCII(switch_name);
@ -134,9 +124,6 @@ void RendererClientBase::AddRenderBindings(
v8::Isolate* isolate,
v8::Local<v8::Object> binding_object) {
mate::Dictionary dict(isolate, binding_object);
dict.SetMethod("getRenderProcessPreferences",
base::BindRepeating(GetRenderProcessPreferences,
preferences_manager_.get()));
}
void RendererClientBase::RenderThreadStarted() {
@ -200,8 +187,6 @@ void RendererClientBase::RenderThreadStarted() {
blink::WebSecurityPolicy::RegisterURLSchemeAsAllowingServiceWorkers("file");
blink::SchemeRegistry::RegisterURLSchemeAsSupportingFetchAPI("file");
preferences_manager_.reset(new PreferencesManager);
#if defined(OS_WIN)
// Set ApplicationUserModelID in renderer process.
base::string16 app_id =

View file

@ -20,8 +20,6 @@
namespace atom {
class PreferencesManager;
class RendererClientBase : public content::ContentRendererClient {
public:
RendererClientBase();
@ -66,7 +64,6 @@ class RendererClientBase : public content::ContentRendererClient {
void DidSetUserAgent(const std::string& user_agent) override;
private:
std::unique_ptr<PreferencesManager> preferences_manager_;
#if defined(WIDEVINE_CDM_AVAILABLE)
ChromeKeySystemsProvider key_systems_provider_;
#endif