add new window for privacy policy

This commit is contained in:
Christopher Willis-Ford 2020-10-06 14:34:01 -07:00
parent 93a94d8253
commit 8fc98e1c37
5 changed files with 93 additions and 0 deletions

View file

@ -210,6 +210,17 @@ const createAboutWindow = () => {
return window;
};
const createPrivacyWindow = () => {
const window = createWindow({
width: _windows.main.width * 0.8,
height: _windows.main.height * 0.8,
parent: _windows.main,
search: 'route=privacy',
title: 'Scratch Desktop Privacy Policy'
});
return window;
};
const getIsProjectSave = downloadItem => {
switch (downloadItem.getMimeType()) {
case 'application/x.scratch.sb3':
@ -371,6 +382,11 @@ app.on('ready', () => {
event.preventDefault();
_windows.about.hide();
});
_windows.privacy = createPrivacyWindow();
_windows.privacy.on('close', event => {
event.preventDefault();
_windows.privacy.hide();
});
});
ipcMain.on('open-about-window', () => {

View file

@ -1,4 +1,5 @@
html, body {
background-color: #4D97FF;
color: white;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: bolder;

View file

@ -9,4 +9,7 @@ case 'app':
case 'about':
import('./about.jsx'); // eslint-disable-line no-unused-expressions
break;
case 'privacy':
import('./privacy.jsx');
break;
}

14
src/renderer/privacy.css Normal file
View file

@ -0,0 +1,14 @@
html, body {
background-color: #4D97FF;
color: white;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-weight: normal;
line-height: 150%;
}
.privacyBox {
background-color: white;
color: #575e75;
margin: 3rem;
padding: 2rem 3rem;
}

59
src/renderer/privacy.jsx Normal file
View file

@ -0,0 +1,59 @@
import React from 'react';
import ReactDOM from 'react-dom';
import styles from './privacy.css';
// TODO: localization?
const PrivacyElement = () => (
<div className={styles.privacyBox}>
<h1>Privacy Policy</h1>
<p>
We understand how important privacy is to our community, especially children and their parents. We wrote
this privacy policy to explain what information we collect through the Scratch application (the
&ldquo;App&rdquo;), how we use it, and what we&apos;re doing to keep it safe. If you have any questions
regarding this privacy policy, you can <a href="https://scratch.mit.edu/contact-us">contact us</a>.
</p>
<h2>What information does the App collect?</h2>
<p>
The Scratch Team is always looking to better understand how Scratch is used around the world. To help
support this effort, Scratch only collects anonymous usage information from the Scratch App. This
information does not include any Personal Information. For purposes of this Privacy Policy, &ldquo;Personal
Information&rdquo; means any information relating to an identified or identifiable individual.
</p>
<p>
The anonymous usage information we collect includes data about what parts of the app you use and basic
information about your network that allows us to roughly estimate what part of the world you are located
in. We also may collect general information about the device that you are using, such as make, model,
operating system and screen resolution. We do not collect device identifiers, such as advertising IDs, MAC
addresses, or IP addresses. We do not associate any of this information with an identified or identifiable
individual.
</p>
<h2>How does the Scratch Team use the information it collects?</h2>
<ul>
<li>
We may use anonymous usage information in research studies intended to improve our understanding of how
people learn with Scratch. The results of this research are shared with educators and researchers
through conferences, journals, and other publications.
</li>
<li>
We analyze the information to understand and improve Scratch, such as determining which elements are
most used and how long users spend in the app.
</li>
<li>
We will never share anonymous usage data with any other person, company, or organization, except:
<ul>
<li>
As required to comply with our obligations under the law
</li>
<li>
For technical reasons, if we are required to transfer the data on our servers to another
location or organization
</li>
</ul>
</li>
</ul>
</div>
);
const appTarget = document.getElementById('app');
ReactDOM.render(<PrivacyElement />, appTarget);