Firefox is your Marionette
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 561 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/44269 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
Physical systemControl flowExecution unitMereology2 (number)Computer animationLecture/Conference
00:33
Software developerCore dumpWordOpen sourceTranslation (relic)Text editorSoftwareView (database)MereologyComputer programmingComputer animation
01:33
Programmable read-only memoryScripting languageHacker (term)Programmer (hardware)Office suiteScripting languageRadical (chemistry)InternetworkingDescriptive statisticsComputer programmingCursor (computers)
02:56
BackupScripting languageBitSoftware developerMultiplication signComputer animation
04:49
Multiplication signRadical (chemistry)Scripting languageEndliche ModelltheorieComputer animation
05:06
Web browserCommon Language InfrastructureExecution unitCommunications protocolSoftware testingLine (geometry)Computer configurationWorld Wide Web ConsortiumExtension (kinesiology)Scripting languageGastropod shellTask (computing)Latent heatExtension (kinesiology)Stability theoryLatent heatWeb 2.0Task (computing)1 (number)Spring (hydrology)Graphical user interfaceScripting languageUnit testingLimit (category theory)Goodness of fitMultiplication signSystem callLevel (video gaming)Radical (chemistry)Workstation <Musikinstrument>Computer animation
09:07
Revision controlComputer animation
09:30
Communications protocolComputer program9K33 OsaWeb browserRun time (program lifecycle phase)Element (mathematics)Control flowInterface (computing)Content (media)Graphical user interfaceEmulatorSource codeUnit testingCommunications protocolAndroid (robot)EstimatorComputer animation
09:58
Software developerRevision controlMathematicsSource codeCausalityGroup actionWebsiteSoftware developerRevision controlConnected spaceNetwork socketXMLComputer animation
11:09
Software testingRevision controlSoftware frameworkBridging (networking)Communications protocolAndroid (robot)Standard deviationDevice driverImplementationWeb 2.0Wrapper (data mining)Bridging (networking)Software frameworkInterface (computing)Web browserSpeech synthesisComputer animation
11:47
Task (computing)Open sourceGraphical user interfaceProcess (computing)Open sourceComputer animation
12:25
Asynchronous Transfer ModeWeb pageWritingParsingParameter (computer programming)Scripting languageDataflowParameter (computer programming)Order (biology)MathematicsStaff (military)Message passingMultilaterationProcess (computing)Computer fileNeuroinformatikComputer animation
13:37
Menu (computing)Smith chartPointer (computer programming)ConsistencyGroup actionFormal languageString (computer science)Different (Kate Ryan album)Local ringSelf-organizationComputer animation
14:38
Front and back endsFile Transfer ProtocolDemo (music)System administratorComputer animation
15:04
Goodness of fitWeb pageMultiplication signElectronic mailing listWebsiteMereologyComputer fileScripting languageWeb 2.0Computer animation
16:06
Group actionDevice driverClient (computing)Local ringWeb pageWeb 2.0Link (knot theory)Scripting languageGroup actionDifferent (Kate Ryan album)Touch typingComputer animation
17:07
Google AnalyticsInterface (computing)Web pageScripting languageUniform resource locatorUniform resource locatorMultiplication signSoftware frameworkScripting languageGoogolAddress spaceBitUser interfaceElectronic mailing listPoint (geometry)Computer animation
18:23
Client (computing)Block (periodic table)Computer animation
18:44
Slide ruleProper mapScripting languageVector potentialProcess (computing)Disk read-and-write headDemosceneSound effect
20:21
Client (computing)Extension (kinesiology)Traffic reportingLevel (video gaming)Device driverGroup actionWeb browserGame controllerSound effectMathematicsExistential quantificationEstimatorWordAuthorizationMechanism designLecture/Conference
22:22
Computer animation
Transcript: English(auto-generated)
00:07
and we will move in the second talk for tomorrow, that is made from Daniela Scascia Frata, that will talk about fireworks that could be your marionette and Daniela is a part of the Mozilla Italian community
00:20
and is a developer. So, thank you and enjoy the talk. So, let's start with the topic, the views of QR on marionettes and I think that everyone know what is Firefox
00:42
and I think that's why it's being discussed in this room and before to start to talk about the technology, I want to start like a big talk about me, just understanding the ground because I have a little emergency room, I am part of the Mozilla community,
01:01
science six year now, I am part of the Mozilla program inside the webscansy, Mozilla tech speakers, like many others in this room. I also contribute on WordPress, also part of the classic press, which is a talk of WordPress for now and president of the Italian suggestion about professional and I use Firefox for my job,
01:23
but not only to search the web, debug as many others, but also to automatize a little things that sometimes happen when you have to work with customers. So, I am new to the internet and I know many of you remember this on Reddit, forums, GitHub, webinar.
01:43
This was a few years ago, was like amazing, now this program are the office that are doing scripts to not work. Now it's quite normal, because, but you can find always on Quora, Reddit, whatever, but people is asking, it's a problem that if I automatize everything
02:01
I do in my daily job, because people ask problems sometimes with the buzz. And that's, for developers, is common. When we do some things, there is always the saying, we want to script it. And I don't descript of GitHub, because you can find, and I edit this extract,
02:21
it's about a chart, let's say, Mr. Solana was living inside the terminal. Oh, it's me. And, you know, he was being, okay, it's me again, and, lockdown, so, okay, probably, I am doing like the same script for me. Like, change the volume, I don't know,
02:40
I have a recipe, I have to move the cursor between monitors, so, I'm not really one that is crazy, and automatize things. And, how is it possible today, with browser, because now with the web, because if everything is quite important to know these kind of things. So, I started thinking about, when I was doing these slides,
03:01
about my personal roots for automation. If you do another process, for more than three times, that is always the same, always. So, click there, download something, write to Solana, whatever, on the computer, of course. You can do it at some mobile,
03:22
this is for single Android, very quick, easy, and I do that, so there, but, on computer, whether you can replicate this quickly, so this is the point, understand what I can replicate, because usually, when something doesn't have API, whatever, it can be difficult. And, but you want to relax more,
03:41
because maybe it's something critical, I don't know, backup, production, you know, these kind of things, testing, so you want to be sure that everything goes fine, because, as the developer, we want to sleep, and to work every night, because, you know, it's a problem. And after, it is boring, because when developers always do the same thing,
04:01
it is boring. After all, we have computers, a machine, they are perfect to do always the same things. They are ready for it, so why not use them, for boring stuff? And of course, the Tomisi step, can create issues, again, a backup, I forgot a step, when the backup is broken, it's a problem. So,
04:21
help us on these kind of things, because we are sure that everything, is always the same. It is time to go script, of course. So, this is my workflow, that I have to do a job, for my job, I have to do a script. And during the time, myself, when I was working, in the last years, I made a lot of script, for everything.
04:41
Of course, I'm on GitHub, whatever, publishing, because I love it, because usually, when you want to do something, so no one else, maybe the same thing. So, you are going to change a little bit for your needs. So, it's time to do, scripting. I don't know how here, how many models to do scripting, like, Python, or JS, I don't know. Show your hands.
05:01
Okay, everyone, okay. So, it is. We are not looking for that one, but for this terminal. Okay, starting talking about bozels and scripting. There are three ways, for doing that. The, first one, is web extensions. Web extensions, for who doesn't know,
05:20
you get to talk, tomorrow, in a normal moment, the JavaScript one. Web extensions are the ones for the bozers. Firefox is famous because the, was the first one with extension, and is the biggest market place for extension. So, you can find for everything you need, but has some limitations. But it's very easy to do one.
05:42
We are scripting with CLI, of course, because every bozers has commands. The last one, is unit test system, and the truth protocol, that offers, you have Firefox as an example, and just because we are in this room, we are creating Firefox as an example.
06:00
So, what is of these three options, the most powerful and most fun? The third one. And now we will see why. Okay, starting with web extensions, there will be lots of methods on the last year, some of it, on custom, and, the first one is cross bozers, competitively,
06:20
you know, it is a VI, you can do it, the same extension that works, in Firefox, Chrome, Opera, is, I don't remember right now, the status, et cetera, so, the biggest ones works. Cool, competitively, we are, we like it. The UI is stable between, various releases, this was the biggest point, because,
06:41
if I'm gonna have to test every time in Firefox release, a new version, can be, a big problem. When you have 10 extensions, is a very big problem. But, with the web extension now, we don't have problems, like me, I have 10 extensions, works, since years, and now with Firefox. And then, I don't have to care about,
07:01
about Firefox, and it's changing, or Chrome, because, it's stable. So, it's good for the levels. The interesting facts, but, again, because we are, in this room, Firefox has no APIs, for, the extensions, compared to Chrome. Because, Firefox was, the start, very expandable for us.
07:23
There is a huge market place of users, if you want to release your extension, and you can reach, like, any, Firefox users, quite easy. So, if you want to do extensions, for this kind of reason, it is the proper solution. The problem is that, it is a full, specific kind of task.
07:40
So, if your script, you have, the missing calls of the words, are complicated, because, commands are different. We have only specific features available, like switch out, for the reason, I like in Firefox. It's only for very, highly skilled users, the ones that use the terminal as an example.
08:00
And again, it's useful only for specific kind of tasks, because the commands, are not so many. Instead, you need a system, and that is probable, are very, very powerful. Because, we are today now, prepared for Chrome, that is most used, and now, that is not JS. We are saving them, that is most famous.
08:21
The problem can be, there is Java, but we, we did this for all the languages, so, it's not so much, the problem, The problem is that, Firefox is supported, to the 55 version, now we have the 65, because, it's supporting the old web drivers, that show the Firefox switch at everyone.
08:41
So, and now, Selenium is not working with Firefox, since two years. So, Selenium is at the, an extension, for Firefox and Chrome, that is Selenium AB, that fix this problem. We are about to, which are for Firefox, in the JS, but is a spring enter. So, spring enter, is not so good for us.
09:02
But the reason I write for Firefox, and not so Firefox for Android, that is in Python. So, I think that everyone knows Pinocchio. Pinocchio is the most famous, marionette in the world. But the goal is that, this one is the original marionette in Italy. If you go to Italy, Pinocchio is this. Is not a Disney version.
09:22
So, I just want to say that, because no one knows that, but Pinocchio, is quite famous in Italy, and even the red one. So, what is the marionette in the debug? The marionette came up for Firefox. Marionette is a remote protocol. This is the definition from the documentation of Mozilla, that selects you to communicate,
09:41
with Firefox, quite easily, and on the Giga, buzz and buzzer, like Firefox for Android. At the time, also with Firefox OS, as an example. And this works, because Mozilla use it for the unit tests. So, we are using some D, and this user, in a little project, we can say. So, the question now is,
10:01
how to use it for something that is not for unit testing? Enable marionette in your Firefox. The first step. The problem is that, really, a specific build of Firefox, because, is all included only in the developer edition, as an example, or, in Italy, because it's used for development. So, this build doesn't take a lot of sense to have marionette.
10:23
The next step is to install the drive, the framework, that is for Python 3 right now, not 3, it's not yet supported. And then try to add the latest version. This is very important in the past, because now, with the latest releases of Firefox, they stabilized the editing. So, the answer was a problem,
10:41
when you add the last version on marionette, but, the last version of Firefox wasn't working. Now, the last release of, may, the last CSO, is quite stable. So, it's not a problem anymore. But a check is always good. The second step is to enable it. You can enable in the settings, and set to default, because it will open a socket connection.
11:03
Or, you can choose to execute Firefox in the marionette mode. This is, or you can use Firefox in that way. So, how it works, is a bridge between just creator, and Firefox itself. And, it's different to use the web tools problem, because,
11:21
but I'll use the web tools problem, that is not powerful like a new system, because you can control not only, the web view, but also the interface of Firefox. So, it can be powerful for specific kind of things, more than usual. And, it's better than the web browser to understand that, from which you see. this framework is in the wrapper of this technology.
11:42
So, we don't need to speak web browser, but we use, Firefox. So, my story, is that, as a volunteer, I use Firefox, as I said. And, I try also to do evangelism, like I see in many others in this room, to use Mozilla Technologies. So, I don't know how many here,
12:01
promote Mozilla Technologies at their job. I don't know. How many of you, we need to know about this point. So, I chose them to use Firefox also for this, because, I don't want to use Chrome to do automatize, this kind of thing. Just say, how can I do it in Firefox?
12:21
I started using it for my job, but also to help all the open source communities. And, my use of workflow, when I have to do this kind of tools, is that, I need to pass something in their time, a pass later. Because, usually, when I saw an experience,
12:40
there are two ways of transcript. I want to know about everything, and later pass it, because when there's something critical in production, and I want to change anything, I can work later, because there is a huge amount of data. So, depends on the starting point, what I have to do. Analyze the flow of the process of, how many staff have to click change.
13:00
And, definitely, I need the different parameters. Usually, I do a country file that is more easy, as available to people. Or, I can open the manual URL, because it's much easier. Depends on what I need, and how much priority I need to do for my customers. And, then, if I need the headless mode, because Firefox support it now.
13:21
If also order we use this tool, so, I cannot do it query as practical as an example. So, only to be clear. And, that's about it. In the end, we always go to computer files, because anytime I forget. So, as all the people, there's only also lots of that anytime. So, let's start with the most famous problem we need.
13:41
Reason one is for the WordPress community to manage the realization of strings. Because, in the WordPress community, we are back to the risk order, and we have the consistency tool, that show you how many questions there is of this translation, of this term, in the specific language. So, in the current community, we have a problem of assembling a battle, localizer in 14 ways different.
14:02
So, it's a problem for consistency. And, I cannot manage 52,000 plugin, and review all of them, manually. So, I made a script, that buzzed, and I complete file, I can reject all the wrong organization. And now, people is contributing, and adding up some new features, like replacing the new organization,
14:22
et cetera, because this tool, the WordPress, doesn't have a recipe, or whatever. So, I was making something, that I can run, while I was working, but fixing the transition for all the WordPress users, in my case, with the final language. And, this is used a lot. It's true. The second one, I did a full job,
14:41
is an exporter for WordPress Post, although you don't have the permissions for do it. There is this story, I came up with it, because of time, and here was it, customers with more over than 400 posts, and they have to export, numbers, and driver, data, access, FTP access, admin permissions, API block, and everything.
15:01
So, anyway, I was using, the backend on WordPress, and I have a demo of it, with a B. We see, Firefox is enabled in lightweight mode, because the URL is changed. I have the script there, running. This is the post, this is my website. You see, open it automatically, I will go,
15:20
public, waiting, there is load, and move on to the next one. When the list is finished, you use the population, move on to the second page of the web. For everything that I open, you have a page, and you have a page to mail, to parts later, because I have to pass 400 posts.
15:41
For the different reason, this host, it was very good, so I don't want to do, the parts later, I'm not going to do it later. But, the one time before the other company was doing, the previous website, closed website, correct the data. So, this is a simple way, that the user to export a lot of posts from there, are saved, and prepared,
16:01
to a new file to import to WordPress, without us access. So, how it works. Code, we love code. We have the connection, we import to the library, we start the session with Firefox, we use, selectors, such as selectors,
16:20
we pick all the title in the page, we do a loop, for new one, we open a new tab, we go click in Firefox, and that's in Chrome, is a way to open the link in a new tab, in a way I don't change the page. I open the page in another tab, write, the HTML of that page, because I can't pass later,
16:41
we go over library, in Python, it's very easy, good for spreading, and switch back to the page's window, with the last one. In another way, I did a very easy script to the group, and download all the pages, as I love web users, without use any other kind of tools, and work it. I, say to the customer that I did,
17:02
40 hours, instead of three. So, this is a way for my tiles, I can help you. Another feature that I have to do, when I come back from this conference, is any support from Google Analytics, 170,000 URLs.
17:21
A lot. I can say that a lot. From Google Analytics, the promise that the web interface supports only 5,000 per page, to export. So, you can understand this very, very difficult to do, primarily. And the PI of Google has a license, and we don't want to pay Google.
17:41
So, our idea was to, you know, a script like this, pagination, download, and, with Firefox, to activate the download button. The current release, switch the next page, so it can download again, and all the URLs. And, we know the script, but we have, we control this list with another one,
18:01
because later we have to remove only a little bit of this URL from the website. So, this is an idea, of a problem, but also, and something that the company use, maybe the next customer, or the same customers, quite easy, because after all, this script will work, in the time. Python works,
18:21
the framework is stable, but the address will work. So, con conclusion, as artist, we have true block post written by a journalist, along with Mozilla text speakers, the display, in the details, everything, works, but it's after the documentation, because there is the documentation. And it's very, very good, the documentation.
18:41
Just to be sure, it's very good, the documentation. And, that's it. So, I'm here for, one of your questions,
19:02
to support Python 3. Yes, in Mozilla, they're planning, the promise that, in Mozilla, is a lot of Python, and a lot of tools, and many of the databases, of my net, doesn't support Python 3. So, the problem is, on this side, and, as you saw, by the ticket, before to go there, they are very, very happy about it.
19:22
So, I think, before Python should down, that should also, probably, we have the support of Python 3. But, in the meantime, still works. these are good. Exists proper in the languages? In the reason? In par. Okay, in par.
19:41
Okay, in par. but not in the JS. There is the potential for Firefox, using the dev tools for the world, but it's experimental. So soon, there will be, but using the dev tools. Okay. Other questions? There is one.
20:05
I've seen you were using a middle click, to actually open a new tab, in your previous automation script. Is it possible to be more level, like, open a new tab? Yeah, you can do it, because you have all the actions, and you can do it in Firefox. Actually, I need the feed, because that's the most easy way
20:21
to achieve what they need. But yeah, all the actions that you want, with the mouse, the candle, whatever. So, you can do whatever you want, basically. Okay, thank you. Okay.
20:51
Okay. Just a comment on the new tabbing, and that something, we implemented the Firefox 6. So, we have a new command, now you can run,
21:00
to simply open a new window, or a new tab. Because, middle click, doesn't always work, and other techniques, doesn't always work. I want to mention this, yeah, you mentioned that, it's today, the top report for Firefox 55, and that's only true, for the Firefox, extension which was working with the one right and because we switched the
21:24
requirements except in titular lower so it's all extensions anymore but since then we have gekko driver which is a replacement and it's fully working with up to firefox 66 and with and with selenium the latest version. Yeah, I saw the controller but I'm still using my red so I was quite used about to talk about something that is stable.
21:44
And I just want to mention that something you didn't know maybe yet we wanted to continue to marinate the client pricing package because we want to have all working via map driver so that means
22:01
for you in the occasions you might have to change. Okay, if you have more questions about marinating you can also come to me later I think. Any other question? No. Okay, so thank you so much.