From 9d2e23413e9943b2cf1af78c321a1451110370fb Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Fri, 11 Nov 2016 13:10:54 -0600 Subject: [PATCH 1/9] add {secure:} opt to protocol.registerStandardSchemes --- atom/app/atom_content_client.cc | 14 ++++++++++++++ atom/app/atom_content_client.h | 3 +++ atom/browser/api/atom_api_protocol.cc | 13 +++++++++++-- atom/browser/api/atom_api_protocol.h | 2 +- atom/common/options_switches.cc | 3 +++ atom/common/options_switches.h | 1 + 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/atom/app/atom_content_client.cc b/atom/app/atom_content_client.cc index 40a6e1f5268d..f1528b09e8d9 100644 --- a/atom/app/atom_content_client.cc +++ b/atom/app/atom_content_client.cc @@ -204,4 +204,18 @@ void AtomContentClient::AddServiceWorkerSchemes( service_worker_schemes->insert(url::kFileScheme); } +void AtomContentClient::AddSecureSchemesAndOrigins( + std::set* secure_schemes, + std::set* secure_origins) { + std::vector schemes; + ConvertStringWithSeparatorToVector(&schemes, ",", + switches::kRegisterSecureSchemes); + if (!schemes.empty()) { + for (const std::string& scheme : schemes) { + secure_schemes->insert(scheme); + } + } +} + + } // namespace atom diff --git a/atom/app/atom_content_client.h b/atom/app/atom_content_client.h index f31a14605723..e396dc23c8e9 100644 --- a/atom/app/atom_content_client.h +++ b/atom/app/atom_content_client.h @@ -31,6 +31,9 @@ class AtomContentClient : public brightray::ContentClient { std::vector* plugins) override; void AddServiceWorkerSchemes( std::set* service_worker_schemes) override; + void AddSecureSchemesAndOrigins( + std::set* secure_schemes, + std::set* secure_origins) override; private: DISALLOW_COPY_AND_ASSIGN(AtomContentClient); diff --git a/atom/browser/api/atom_api_protocol.cc b/atom/browser/api/atom_api_protocol.cc index fd2485063a2a..33ad0cb77381 100644 --- a/atom/browser/api/atom_api_protocol.cc +++ b/atom/browser/api/atom_api_protocol.cc @@ -46,7 +46,7 @@ std::vector GetStandardSchemes() { return g_standard_schemes; } -void RegisterStandardSchemes(const std::vector& schemes) { +void RegisterStandardSchemes(const std::vector& schemes, mate::Arguments* args) { g_standard_schemes = schemes; auto* policy = content::ChildProcessSecurityPolicy::GetInstance(); @@ -55,8 +55,17 @@ void RegisterStandardSchemes(const std::vector& schemes) { policy->RegisterWebSafeScheme(scheme); } + // add switches to register as standard base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( atom::switches::kStandardSchemes, base::JoinString(schemes, ",")); + + mate::Dictionary opts; + bool secure = false; + if (args->GetNext(&opts) && opts.Get("secure", &secure) && secure) { + // add switches to register as secure + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( + atom::switches::kRegisterSecureSchemes, base::JoinString(schemes, ",")); + } } Protocol::Protocol(v8::Isolate* isolate, AtomBrowserContext* browser_context) @@ -220,7 +229,7 @@ void RegisterStandardSchemes( return; } - atom::api::RegisterStandardSchemes(schemes); + atom::api::RegisterStandardSchemes(schemes, args); } void Initialize(v8::Local exports, v8::Local unused, diff --git a/atom/browser/api/atom_api_protocol.h b/atom/browser/api/atom_api_protocol.h index 3ad039c1b803..bfbf998546f1 100644 --- a/atom/browser/api/atom_api_protocol.h +++ b/atom/browser/api/atom_api_protocol.h @@ -29,7 +29,7 @@ namespace atom { namespace api { std::vector GetStandardSchemes(); -void RegisterStandardSchemes(const std::vector& schemes); +void RegisterStandardSchemes(const std::vector& schemes, mate::Arguments* args); class Protocol : public mate::TrackableObject { public: diff --git a/atom/common/options_switches.cc b/atom/common/options_switches.cc index 70aeccfc9bc7..12e097a500c0 100644 --- a/atom/common/options_switches.cc +++ b/atom/common/options_switches.cc @@ -144,6 +144,9 @@ const char kStandardSchemes[] = "standard-schemes"; // Register schemes to handle service worker. const char kRegisterServiceWorkerSchemes[] = "register-service-worker-schemes"; +// Register schemes as secure. +const char kRegisterSecureSchemes[] = "register-secure-schemes"; + // The minimum SSL/TLS version ("tls1", "tls1.1", or "tls1.2") that // TLS fallback will accept. const char kSSLVersionFallbackMin[] = "ssl-version-fallback-min"; diff --git a/atom/common/options_switches.h b/atom/common/options_switches.h index 3c9abebf4ce4..4ca7f61a4287 100644 --- a/atom/common/options_switches.h +++ b/atom/common/options_switches.h @@ -76,6 +76,7 @@ extern const char kPpapiFlashVersion[]; extern const char kDisableHttpCache[]; extern const char kStandardSchemes[]; extern const char kRegisterServiceWorkerSchemes[]; +extern const char kRegisterSecureSchemes[]; extern const char kSSLVersionFallbackMin[]; extern const char kCipherSuiteBlacklist[]; extern const char kAppUserModelId[]; From 99ea50649ac73987886b13f3c39829151af8c73d Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 14 Nov 2016 10:20:04 -0600 Subject: [PATCH 2/9] finish implementation of {secure:true} opt on protocol.registerStandardScehesm, and add working test --- atom/app/atom_content_client.cc | 2 +- atom/browser/api/atom_api_protocol.cc | 2 +- atom/browser/atom_browser_client.cc | 3 ++- atom/common/options_switches.cc | 2 +- atom/common/options_switches.h | 2 +- atom/renderer/atom_renderer_client.cc | 26 ++++++++++++++++++-------- spec/api-protocol-spec.js | 14 ++++++++++++++ spec/fixtures/pages/cache-storage.html | 7 +++++++ spec/static/main.js | 2 +- 9 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 spec/fixtures/pages/cache-storage.html diff --git a/atom/app/atom_content_client.cc b/atom/app/atom_content_client.cc index f1528b09e8d9..a3d3ac862ac6 100644 --- a/atom/app/atom_content_client.cc +++ b/atom/app/atom_content_client.cc @@ -209,7 +209,7 @@ void AtomContentClient::AddSecureSchemesAndOrigins( std::set* secure_origins) { std::vector schemes; ConvertStringWithSeparatorToVector(&schemes, ",", - switches::kRegisterSecureSchemes); + switches::kSecureSchemes); if (!schemes.empty()) { for (const std::string& scheme : schemes) { secure_schemes->insert(scheme); diff --git a/atom/browser/api/atom_api_protocol.cc b/atom/browser/api/atom_api_protocol.cc index 33ad0cb77381..ee2fe9d598ac 100644 --- a/atom/browser/api/atom_api_protocol.cc +++ b/atom/browser/api/atom_api_protocol.cc @@ -64,7 +64,7 @@ void RegisterStandardSchemes(const std::vector& schemes, mate::Argu if (args->GetNext(&opts) && opts.Get("secure", &secure) && secure) { // add switches to register as secure base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( - atom::switches::kRegisterSecureSchemes, base::JoinString(schemes, ",")); + atom::switches::kSecureSchemes, base::JoinString(schemes, ",")); } } diff --git a/atom/browser/atom_browser_client.cc b/atom/browser/atom_browser_client.cc index 030ad1402b11..6734bbfa101e 100644 --- a/atom/browser/atom_browser_client.cc +++ b/atom/browser/atom_browser_client.cc @@ -234,7 +234,8 @@ void AtomBrowserClient::AppendExtraCommandLineSwitches( // Copy following switches to child process. static const char* const kCommonSwitchNames[] = { switches::kStandardSchemes, - switches::kEnableSandbox + switches::kEnableSandbox, + switches::kSecureSchemes }; command_line->CopySwitchesFrom( *base::CommandLine::ForCurrentProcess(), diff --git a/atom/common/options_switches.cc b/atom/common/options_switches.cc index 12e097a500c0..30aa48b987d7 100644 --- a/atom/common/options_switches.cc +++ b/atom/common/options_switches.cc @@ -145,7 +145,7 @@ const char kStandardSchemes[] = "standard-schemes"; const char kRegisterServiceWorkerSchemes[] = "register-service-worker-schemes"; // Register schemes as secure. -const char kRegisterSecureSchemes[] = "register-secure-schemes"; +const char kSecureSchemes[] = "secure-schemes"; // The minimum SSL/TLS version ("tls1", "tls1.1", or "tls1.2") that // TLS fallback will accept. diff --git a/atom/common/options_switches.h b/atom/common/options_switches.h index 4ca7f61a4287..c930cabe34de 100644 --- a/atom/common/options_switches.h +++ b/atom/common/options_switches.h @@ -76,7 +76,7 @@ extern const char kPpapiFlashVersion[]; extern const char kDisableHttpCache[]; extern const char kStandardSchemes[]; extern const char kRegisterServiceWorkerSchemes[]; -extern const char kRegisterSecureSchemes[]; +extern const char kSecureSchemes[]; extern const char kSSLVersionFallbackMin[]; extern const char kCipherSuiteBlacklist[]; extern const char kAppUserModelId[]; diff --git a/atom/renderer/atom_renderer_client.cc b/atom/renderer/atom_renderer_client.cc index c3ad11e1438e..963d63946a71 100644 --- a/atom/renderer/atom_renderer_client.cc +++ b/atom/renderer/atom_renderer_client.cc @@ -121,20 +121,24 @@ bool IsDevToolsExtension(content::RenderFrame* render_frame) { .SchemeIs("chrome-extension"); } +std::vector ParseSchemesCLISwitch(const char* switch_name) { + base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); + std::string custom_schemes = command_line->GetSwitchValueASCII(switch_name); + if (!custom_schemes.empty()) { + return base::SplitString(custom_schemes, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); + } + return std::vector(); +} + } // namespace AtomRendererClient::AtomRendererClient() : node_bindings_(NodeBindings::Create(false)), atom_bindings_(new AtomBindings) { // Parse --standard-schemes=scheme1,scheme2 - base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); - std::string custom_schemes = command_line->GetSwitchValueASCII( - switches::kStandardSchemes); - if (!custom_schemes.empty()) { - std::vector schemes_list = base::SplitString( - custom_schemes, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); - for (const std::string& scheme : schemes_list) - url::AddStandardScheme(scheme.c_str(), url::SCHEME_WITHOUT_PORT); + std::vector standard_schemes_list = ParseSchemesCLISwitch(switches::kStandardSchemes); + for (const std::string& scheme : standard_schemes_list) { + url::AddStandardScheme(scheme.c_str(), url::SCHEME_WITHOUT_PORT); } } @@ -182,6 +186,12 @@ void AtomRendererClient::RenderFrameCreated( // Allow file scheme to handle service worker by default. // FIXME(zcbenz): Can this be moved elsewhere? blink::WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers("file"); + + // Parse --secure-schemes=scheme1,scheme2 + std::vector secure_schemes_list = ParseSchemesCLISwitch(switches::kSecureSchemes); + for (const std::string& secure_scheme : secure_schemes_list) { + blink::WebSecurityPolicy::registerURLSchemeAsSecure(blink::WebString::fromUTF8(secure_scheme)); + } } void AtomRendererClient::RenderViewCreated(content::RenderView* render_view) { diff --git a/spec/api-protocol-spec.js b/spec/api-protocol-spec.js index 51003ebf427a..7781706b810d 100644 --- a/spec/api-protocol-spec.js +++ b/spec/api-protocol-spec.js @@ -985,5 +985,19 @@ describe('protocol module', function () { ipcMain.once('file-system-error', (event, err) => done(err)) ipcMain.once('file-system-write-end', () => done()) }) + + it('registers secure, when {secure: true}', function (done) { + // the CacheStorage API will only work if secure == true + let filePath = path.join(__dirname, 'fixtures', 'pages', 'cache-storage.html') + const handler = function (request, callback) { + callback({path: filePath}) + } + ipcMain.once('success', () => done()) + ipcMain.once('failure', (event, err) => done(err)) + protocol.registerFileProtocol(standardScheme, handler, function (error) { + if (error) return done(error) + w.loadURL(origin) + }) + }) }) }) diff --git a/spec/fixtures/pages/cache-storage.html b/spec/fixtures/pages/cache-storage.html new file mode 100644 index 000000000000..0b6717201e50 --- /dev/null +++ b/spec/fixtures/pages/cache-storage.html @@ -0,0 +1,7 @@ + diff --git a/spec/static/main.js b/spec/static/main.js index f29cbebeeb1e..1b512e1b0dbf 100644 --- a/spec/static/main.js +++ b/spec/static/main.js @@ -92,7 +92,7 @@ if (global.isCi) { // Register app as standard scheme. global.standardScheme = 'app' -protocol.registerStandardSchemes([global.standardScheme]) +protocol.registerStandardSchemes([global.standardScheme], { secure: true }) app.on('window-all-closed', function () { app.quit() From b45820187470693922312069371645ecb4d39eaa Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 14 Nov 2016 12:33:30 -0600 Subject: [PATCH 3/9] add deprecation notices to webframe --- atom/renderer/api/atom_api_web_frame.cc | 2 ++ docs/tutorial/planned-breaking-changes.md | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/atom/renderer/api/atom_api_web_frame.cc b/atom/renderer/api/atom_api_web_frame.cc index fcfc50cf7f13..a7b71c35af24 100644 --- a/atom/renderer/api/atom_api_web_frame.cc +++ b/atom/renderer/api/atom_api_web_frame.cc @@ -133,6 +133,7 @@ void WebFrame::SetSpellCheckProvider(mate::Arguments* args, } void WebFrame::RegisterURLSchemeAsSecure(const std::string& scheme) { + // TODO(pfrazee): Remove 2.0 // Register scheme to secure list (https, wss, data). blink::WebSecurityPolicy::registerURLSchemeAsSecure( blink::WebString::fromUTF8(scheme)); @@ -165,6 +166,7 @@ void WebFrame::RegisterURLSchemeAsPrivileged(const std::string& scheme, // Register scheme to privileged list (https, wss, data, chrome-extension) blink::WebString privileged_scheme(blink::WebString::fromUTF8(scheme)); if (secure) { + // TODO(pfrazee): Remove 2.0 blink::WebSecurityPolicy::registerURLSchemeAsSecure(privileged_scheme); } if (bypassCSP) { diff --git a/docs/tutorial/planned-breaking-changes.md b/docs/tutorial/planned-breaking-changes.md index 4e604945ef4d..93c5718d6a49 100644 --- a/docs/tutorial/planned-breaking-changes.md +++ b/docs/tutorial/planned-breaking-changes.md @@ -117,6 +117,16 @@ webContents.setVisualZoomLevelLimits(1, 2) webFrame.setZoomLevelLimits(1, 2) // Replace with webFrame.setVisualZoomLevelLimits(1, 2) + +// Deprecated +webFrame.registerURLSchemeAsSecure('app') +// Replace with +protocol.registerStandardSchemes('app', {secure: true}) + +// Deprecated +webFrame.registerURLSchemeAsPrivileged('app', {secure: true}) +// Replace with +protocol.registerStandardSchemes('app', {secure: true}) ``` ## `` From a46040a4faaaee0eabc22124b0cf1577f6700093 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 14 Nov 2016 12:44:22 -0600 Subject: [PATCH 4/9] log deprecation notices for webframe --- atom/renderer/api/atom_api_web_frame.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/atom/renderer/api/atom_api_web_frame.cc b/atom/renderer/api/atom_api_web_frame.cc index a7b71c35af24..828f1f2972e2 100644 --- a/atom/renderer/api/atom_api_web_frame.cc +++ b/atom/renderer/api/atom_api_web_frame.cc @@ -4,6 +4,8 @@ #include "atom/renderer/api/atom_api_web_frame.h" +#include + #include "atom/common/api/event_emitter_caller.h" #include "atom/common/native_mate_converters/blink_converter.h" #include "atom/common/native_mate_converters/callback.h" @@ -137,6 +139,7 @@ void WebFrame::RegisterURLSchemeAsSecure(const std::string& scheme) { // Register scheme to secure list (https, wss, data). blink::WebSecurityPolicy::registerURLSchemeAsSecure( blink::WebString::fromUTF8(scheme)); + std::cout << "webFrame.registerURLSchemeAsSecure is deprecated. Use protocol.registerStandardSchemes with {secure:true}" << std::endl; } void WebFrame::RegisterURLSchemeAsBypassingCSP(const std::string& scheme) { @@ -167,6 +170,7 @@ void WebFrame::RegisterURLSchemeAsPrivileged(const std::string& scheme, blink::WebString privileged_scheme(blink::WebString::fromUTF8(scheme)); if (secure) { // TODO(pfrazee): Remove 2.0 + std::cout << "webFrame.registerURLSchemeAsPrivileged with {secure:true} is deprecated. Use protocol.registerStandardSchemes with {secure:true}" << std::endl; blink::WebSecurityPolicy::registerURLSchemeAsSecure(privileged_scheme); } if (bypassCSP) { From 4e01ab59c167d6f2205f556dad0477d507da5e2a Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 16 Nov 2016 08:41:06 -0600 Subject: [PATCH 5/9] fix documentation for planned breaking changes --- docs/tutorial/planned-breaking-changes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorial/planned-breaking-changes.md b/docs/tutorial/planned-breaking-changes.md index 93c5718d6a49..44b837e619f9 100644 --- a/docs/tutorial/planned-breaking-changes.md +++ b/docs/tutorial/planned-breaking-changes.md @@ -121,12 +121,12 @@ webFrame.setVisualZoomLevelLimits(1, 2) // Deprecated webFrame.registerURLSchemeAsSecure('app') // Replace with -protocol.registerStandardSchemes('app', {secure: true}) +protocol.registerStandardSchemes(['app'], {secure: true}) // Deprecated webFrame.registerURLSchemeAsPrivileged('app', {secure: true}) // Replace with -protocol.registerStandardSchemes('app', {secure: true}) +protocol.registerStandardSchemes(['app'], {secure: true}) ``` ## `` From bacf6511a660d370c7e8cb74a89abe4deb743207 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Sun, 11 Dec 2016 15:26:39 -0600 Subject: [PATCH 6/9] remove unneeded deprecations couts --- atom/renderer/api/atom_api_web_frame.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/atom/renderer/api/atom_api_web_frame.cc b/atom/renderer/api/atom_api_web_frame.cc index 828f1f2972e2..89aff255c319 100644 --- a/atom/renderer/api/atom_api_web_frame.cc +++ b/atom/renderer/api/atom_api_web_frame.cc @@ -139,7 +139,6 @@ void WebFrame::RegisterURLSchemeAsSecure(const std::string& scheme) { // Register scheme to secure list (https, wss, data). blink::WebSecurityPolicy::registerURLSchemeAsSecure( blink::WebString::fromUTF8(scheme)); - std::cout << "webFrame.registerURLSchemeAsSecure is deprecated. Use protocol.registerStandardSchemes with {secure:true}" << std::endl; } void WebFrame::RegisterURLSchemeAsBypassingCSP(const std::string& scheme) { @@ -170,7 +169,6 @@ void WebFrame::RegisterURLSchemeAsPrivileged(const std::string& scheme, blink::WebString privileged_scheme(blink::WebString::fromUTF8(scheme)); if (secure) { // TODO(pfrazee): Remove 2.0 - std::cout << "webFrame.registerURLSchemeAsPrivileged with {secure:true} is deprecated. Use protocol.registerStandardSchemes with {secure:true}" << std::endl; blink::WebSecurityPolicy::registerURLSchemeAsSecure(privileged_scheme); } if (bypassCSP) { From 04fa85f67f35fa034094f5b52595288bbad6f357 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Mon, 12 Dec 2016 12:59:06 -0600 Subject: [PATCH 7/9] removed unused iostream include --- atom/renderer/api/atom_api_web_frame.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/atom/renderer/api/atom_api_web_frame.cc b/atom/renderer/api/atom_api_web_frame.cc index 89aff255c319..a7b71c35af24 100644 --- a/atom/renderer/api/atom_api_web_frame.cc +++ b/atom/renderer/api/atom_api_web_frame.cc @@ -4,8 +4,6 @@ #include "atom/renderer/api/atom_api_web_frame.h" -#include - #include "atom/common/api/event_emitter_caller.h" #include "atom/common/native_mate_converters/blink_converter.h" #include "atom/common/native_mate_converters/callback.h" From 381f55b3cb67258128fb38eb6a199886fb2a520d Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 12 Dec 2016 12:42:30 -0800 Subject: [PATCH 8/9] Remove unneeded empty checks --- atom/app/atom_content_client.cc | 16 ++++++---------- atom/renderer/atom_renderer_client.cc | 7 ++----- 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/atom/app/atom_content_client.cc b/atom/app/atom_content_client.cc index a3d3ac862ac6..30508a267d66 100644 --- a/atom/app/atom_content_client.cc +++ b/atom/app/atom_content_client.cc @@ -197,10 +197,9 @@ void AtomContentClient::AddServiceWorkerSchemes( std::vector schemes; ConvertStringWithSeparatorToVector(&schemes, ",", switches::kRegisterServiceWorkerSchemes); - if (!schemes.empty()) { - for (const std::string& scheme : schemes) - service_worker_schemes->insert(scheme); - } + for (const std::string& scheme : schemes) + service_worker_schemes->insert(scheme); + service_worker_schemes->insert(url::kFileScheme); } @@ -209,12 +208,9 @@ void AtomContentClient::AddSecureSchemesAndOrigins( std::set* secure_origins) { std::vector schemes; ConvertStringWithSeparatorToVector(&schemes, ",", - switches::kSecureSchemes); - if (!schemes.empty()) { - for (const std::string& scheme : schemes) { - secure_schemes->insert(scheme); - } - } + switches::kSecureSchemes); + for (const std::string& scheme : schemes) + secure_schemes->insert(scheme); } diff --git a/atom/renderer/atom_renderer_client.cc b/atom/renderer/atom_renderer_client.cc index 963d63946a71..1c873d93ee11 100644 --- a/atom/renderer/atom_renderer_client.cc +++ b/atom/renderer/atom_renderer_client.cc @@ -124,10 +124,7 @@ bool IsDevToolsExtension(content::RenderFrame* render_frame) { std::vector ParseSchemesCLISwitch(const char* switch_name) { base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); std::string custom_schemes = command_line->GetSwitchValueASCII(switch_name); - if (!custom_schemes.empty()) { - return base::SplitString(custom_schemes, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); - } - return std::vector(); + return base::SplitString(custom_schemes, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); } } // namespace @@ -186,7 +183,7 @@ void AtomRendererClient::RenderFrameCreated( // Allow file scheme to handle service worker by default. // FIXME(zcbenz): Can this be moved elsewhere? blink::WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers("file"); - + // Parse --secure-schemes=scheme1,scheme2 std::vector secure_schemes_list = ParseSchemesCLISwitch(switches::kSecureSchemes); for (const std::string& secure_scheme : secure_schemes_list) { From cac85d2a12fc6e8bbd1aab083ab7864447a1ccc2 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Mon, 12 Dec 2016 12:45:57 -0800 Subject: [PATCH 9/9] Remove linter errors --- atom/app/atom_content_client.cc | 3 +-- atom/browser/api/atom_api_protocol.cc | 3 ++- atom/browser/api/atom_api_protocol.h | 3 ++- atom/renderer/atom_renderer_client.cc | 18 ++++++++++-------- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/atom/app/atom_content_client.cc b/atom/app/atom_content_client.cc index 30508a267d66..a49b39e45cf3 100644 --- a/atom/app/atom_content_client.cc +++ b/atom/app/atom_content_client.cc @@ -207,8 +207,7 @@ void AtomContentClient::AddSecureSchemesAndOrigins( std::set* secure_schemes, std::set* secure_origins) { std::vector schemes; - ConvertStringWithSeparatorToVector(&schemes, ",", - switches::kSecureSchemes); + ConvertStringWithSeparatorToVector(&schemes, ",", switches::kSecureSchemes); for (const std::string& scheme : schemes) secure_schemes->insert(scheme); } diff --git a/atom/browser/api/atom_api_protocol.cc b/atom/browser/api/atom_api_protocol.cc index ee2fe9d598ac..e3b15ed43293 100644 --- a/atom/browser/api/atom_api_protocol.cc +++ b/atom/browser/api/atom_api_protocol.cc @@ -46,7 +46,8 @@ std::vector GetStandardSchemes() { return g_standard_schemes; } -void RegisterStandardSchemes(const std::vector& schemes, mate::Arguments* args) { +void RegisterStandardSchemes(const std::vector& schemes, + mate::Arguments* args) { g_standard_schemes = schemes; auto* policy = content::ChildProcessSecurityPolicy::GetInstance(); diff --git a/atom/browser/api/atom_api_protocol.h b/atom/browser/api/atom_api_protocol.h index bfbf998546f1..dfc32be6bc57 100644 --- a/atom/browser/api/atom_api_protocol.h +++ b/atom/browser/api/atom_api_protocol.h @@ -29,7 +29,8 @@ namespace atom { namespace api { std::vector GetStandardSchemes(); -void RegisterStandardSchemes(const std::vector& schemes, mate::Arguments* args); +void RegisterStandardSchemes(const std::vector& schemes, + mate::Arguments* args); class Protocol : public mate::TrackableObject { public: diff --git a/atom/renderer/atom_renderer_client.cc b/atom/renderer/atom_renderer_client.cc index 1c873d93ee11..5f2aec74e353 100644 --- a/atom/renderer/atom_renderer_client.cc +++ b/atom/renderer/atom_renderer_client.cc @@ -124,7 +124,8 @@ bool IsDevToolsExtension(content::RenderFrame* render_frame) { std::vector ParseSchemesCLISwitch(const char* switch_name) { base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); std::string custom_schemes = command_line->GetSwitchValueASCII(switch_name); - return base::SplitString(custom_schemes, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); + return base::SplitString( + custom_schemes, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); } } // namespace @@ -133,10 +134,10 @@ AtomRendererClient::AtomRendererClient() : node_bindings_(NodeBindings::Create(false)), atom_bindings_(new AtomBindings) { // Parse --standard-schemes=scheme1,scheme2 - std::vector standard_schemes_list = ParseSchemesCLISwitch(switches::kStandardSchemes); - for (const std::string& scheme : standard_schemes_list) { + std::vector standard_schemes_list = + ParseSchemesCLISwitch(switches::kStandardSchemes); + for (const std::string& scheme : standard_schemes_list) url::AddStandardScheme(scheme.c_str(), url::SCHEME_WITHOUT_PORT); - } } AtomRendererClient::~AtomRendererClient() { @@ -185,10 +186,11 @@ void AtomRendererClient::RenderFrameCreated( blink::WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers("file"); // Parse --secure-schemes=scheme1,scheme2 - std::vector secure_schemes_list = ParseSchemesCLISwitch(switches::kSecureSchemes); - for (const std::string& secure_scheme : secure_schemes_list) { - blink::WebSecurityPolicy::registerURLSchemeAsSecure(blink::WebString::fromUTF8(secure_scheme)); - } + std::vector secure_schemes_list = + ParseSchemesCLISwitch(switches::kSecureSchemes); + for (const std::string& secure_scheme : secure_schemes_list) + blink::WebSecurityPolicy::registerURLSchemeAsSecure( + blink::WebString::fromUTF8(secure_scheme)); } void AtomRendererClient::RenderViewCreated(content::RenderView* render_view) {