Untitled

 avatar
unknown
plain_text
a year ago
3.7 kB
5
Indexable
# C++ Files
### cc-1.5/utils.h
#### base:: deps:
`base::StringPrintf`

#### public funcs:
kaleido.utils.writeJsonMessage

#### questions:
also, where is it finding the "version" file???


### cc-1.5/kaleido.h
#### base:: deps:
`base::WeakPtrFactory`
`base::FilePath cwd;`
```c++
#include "base/memory/weak_ptr.h"
#include "base/files/file_util.h"
```

#### other deps
```c++
#include "headless/public/devtools/domains/page.h" // generated
#include "headless/public/devtools/domains/runtime.h" // generated
#include "headless/public/headless_browser.h" // exists 
#include "headless/public/headless_devtools_client.h" // --gone--
#include "headless/public/headless_devtools_target.h" // --gone--
#include "headless/public/headless_web_contents.h" // exists
```

#### class Kaleido 
- inherits observers: HeadlessWebContents, page, runtime
- constructor accepts:HeadlessBrowser, HeadlessWebContents (which it observes, I suppose), tmpfilename and scope
- implements HeadlessWebContents and page (it says)
... ignores runtime but has this? `void OnExecutionContextCreated(const headless::runtime::ExecutionContextCreatedParams& params) override;`

Implements many callbacks:
```c++
    void ExportNext();
    void Reload();
    void OnHeapUsageComplete(std::unique_ptr<headless::runtime::GetHeapUsageResult> result); // <headless::runtime::GetHeapUsageResult> 
    void OnHeapEvalComplete(std::unique_ptr<headless::runtime::EvaluateResult> result); // <headless::runtime::EvaluateResult>

    void LoadNextScript();
    void OnPDFCreated(std::string responseString, std::unique_ptr<headless::page::PrintToPDFResult> result); // <headless::page::PrintToPDFResult>

    void OnExportComplete(std::unique_ptr<headless::runtime::CallFunctionOnResult> result); // <headless::runtime::CallFunctionOnResult>
    void OnScriptCompileComplete(std::unique_ptr<headless::runtime::CompileScriptResult> result); // <headless::runtime::CompileScriptResult>
    void OnRunScriptComplete(std::unique_ptr<headless::runtime::RunScriptResult> result); // <headless::runtime::RunScriptResult>
```

Privates:
- Filename
- scopes
- environments
- scriptnames, iterators for them
- pdf/vector dependencies (poppler/inkscape)

One browser + One tab per kaleido:
```
    headless::HeadlessBrowser* browser_;
    // Our tab. Owned by |browser_|.
    headless::HeadlessWebContents* web_contents_;
```
No longer part of API (I think): `std::unique_ptr<headless::HeadlessDevToolsClient> devtools_client_;`
### cc-1.5/kaleido.cc
(ABSOLUTEL NIGHTMARE OF BASE DEPENDENCIES)
# Notes for meeting:
- glad i pushed back a little bit on that separate pull request thing, i think the pr will be organized,
- but i'm not interesting in trying to revive a four year old build of chromium for every platform, its got weird ependencies and little things have broken and on top of that
- it has tons of security vulnerabilites
- needed to segment the buildsystem to be able to iterate quicker on the C++- parts of the build system can provoke a full 6 hour recompile so those needed to be togglable
- also needed tools to switch into debug/release mode, having lots of implications (debug being faster to build but much bigger files and also not as easy to distribute as one file)
- had to provision a larger, faster server because my internet connection just isn't cutting it
- still unhappy with build tools and had this thought when working with plotly (should articulate it)
- making cuts from scope, leaving in dependencies on unstable APIs, they work now, if we keep it updated
- also, since we're using the devtools api, the obvious thing is to, once a user calls kaleido, allow us to connect with devtools
- how to do it in the future

Editor is loading...
Leave a Comment