mirror of
https://github.com/oven-sh/bun
synced 2026-02-14 04:49:06 +00:00
* Prepare for windows event loop * More progress * Update libuv.zig * wip * Make compiling each dependency a shell script * Bump mimalloc * Add the build scripts * Update settings.json * Fix a bunch of compiler warnings * Remove more warnings * more warnings * cmake works * Update JSSQLStatement.h * put it in the zig file * Fix usockets warnings * Fixup * Fix one of the compiler errors * chunk * draw the rest of the owl * theres more * Rename Process -> BunProcess Works around a Windows issue * Add musl polyfill for memmem on Windows * More * 12 mb * Fix getenvZ * fix variosu issues * Add fast-ish path for bun install on Windows * Update windows.zig * Update windows.zig * Fix build issue * it works * hmmm * Rename file * Fixups * Update wtf-bindings.cpp * Update src/bun.js/bindings/headers-handwritten.h Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> * further! * more * Update .gitignore * hm * quite a lot of fixes * Update CMakeLists.txt * zig fmt * Many more things are starting to work. * reb * regenaret * Update JSSink.h * fixup * fetch works * Bun.serve() and much of the event loop works now * Make require() work * bun install progress * more things work * use less std.os * Fixes * small fixes * Bump * Bummp * Undo that change * We have to bump the version of Debian because libarchive has a higher minimum requirement * ok * some clenaup * windows * Update bun.zig * fixup * avoid duplicate symbols * avoid undefined symbols * bump * Remove issue template for install It's not used, and use the bug issue instead. * Add types for cp and cpSync * Add types for watchFile and unwatchFile * Add bun-types to 'bun fmt' script * Update nodejs compat docs cp/cpSync/watchFile/unwatchFile (#4525) * feat(fetch) rejectUnauthorized and checkServerIdentity (#4514) * enable root certs on fetch * rebase * fix lookup * some fixes and improvements * fmt * more fixes * more fixes * check detached onHandshake * fix promise case * fix cert non-Native * add fetch tls tests * more one test * churn * Update feature_flags.zig * Update response.zig * Revert "avoid undefined symbols" This reverts commitca835b726f. * Revert "avoid duplicate symbols" This reverts commit4ac6ca8700. * Update feature_flags.zig * Set permissions * more * Update mimalloc * Fix sqlite test failures * Fix some test failures * Make sure we remove libusockets is removed * hm * [dave]: fix webcrypto crash * bump * Update index.ts * windows zig compiles * cmake on mac works * progress * yay * bun run build * fix * ok * oops * asdfasfdafdsafda * fghjkl * git ignore * wow * Process -> BunProcess * hmm * blah * finalize merge * now it only has linker errors on mac * sdfadsf * g * getting farther * sxdcvbnmk, * adfhjskfjdhkas * a * fgh * update build dot zig * asdfg * theoretical -DCANARY flag we can use * asdf * cool * okay * colorterm * New build workflow * Fix script * Use sudo * More sudo * Tweak dependencies * Another sudo attempt * Tweak script * 16.0 -> 16 * Tweak script * Tweak script * Tweak script * Tweak script * Tweak script * bun install * ssh into github actions * add more to ssh * Fix postinstal * Skip llvm * New dockerfile * Build * More changes to Dockerfile * chaos chaos chaos * okay * a * more cmake nonsense * add unified sources code (does not work) * stuff * prepare for CI builds * ok * yay * yeah * make this more stable simply by trying again if it fails, 5 times, then lose. it fixes the stability issue i was running into L O L * messing with ci * x * a * clean dependencies before build * oops * this is not going to work but its closer * not gonna work either * a * a * did i do it * a * a * work around weird fs+Bun.build issues * properly pass debug flag correctly * idk im sorry * lose * maybe * run the tests please * a * fix zlib script * a * hi * prevent stupid ci issue * i totally didnt leave in a syntax error on cmakelists * a * lol * relax * 😭 * a * SO SILLY * 😡 one line mistake * one character diff * fix linking symbols missing * work on dependency scripts * does this work now? * fix mac build * a * bump! * woops * add macos baseline build * . * fix sqlite and also enable $assert/$debug support in builtin functions * okay * oops * zig upgrade lol * Merge * Fix spawn test issue * Set a timeout * yeah * etc * mi --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Co-authored-by: Dylan Conway <dylan.conway567@gmail.com> Co-authored-by: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Co-authored-by: Ashcon Partovi <ashcon@partovi.net> Co-authored-by: Birk Skyum <74932975+birkskyum@users.noreply.github.com> Co-authored-by: dave caruso <me@paperdave.net>
139 lines
4.2 KiB
C++
139 lines
4.2 KiB
C++
/*
|
|
* Copyright (C) 1999 Lars Knoll (knoll@kde.org)
|
|
* (C) 1999 Antti Koivisto (koivisto@kde.org)
|
|
* (C) 2000 Simon Hausmann <hausmann@kde.org>
|
|
* Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010, 2014 Apple Inc. All rights reserved.
|
|
* (C) 2006 Graham Dennis (graham.dennis@gmail.com)
|
|
* Copyright (C) 2011 Google Inc. All rights reserved.
|
|
* Copyright (C) 2012 Motorola Mobility Inc.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Library General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Library General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Library General Public License
|
|
* along with this library; see the file COPYING.LIB. If not, write to
|
|
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
* Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#include "DOMURL.h"
|
|
|
|
// #include "ActiveDOMObject.h"
|
|
// #include "Blob.h"
|
|
// #include "BlobURL.h"
|
|
// #include "MemoryCache.h"
|
|
// #include "PublicURLManager.h"
|
|
// #include "ResourceRequest.h"
|
|
#include "URLSearchParams.h"
|
|
// #include <wtf/MainThread.h>
|
|
|
|
namespace WebCore {
|
|
|
|
static inline String redact(const String& input)
|
|
{
|
|
if (input.contains("@"_s))
|
|
return "<redacted>"_s;
|
|
|
|
return makeString('"', input, '"');
|
|
}
|
|
|
|
inline DOMURL::DOMURL(URL&& completeURL, const URL& baseURL)
|
|
: m_baseURL(baseURL)
|
|
, m_url(WTFMove(completeURL))
|
|
{
|
|
}
|
|
|
|
DOMURL::~DOMURL() = default;
|
|
|
|
bool DOMURL::canParse(const String& url, const String& base)
|
|
{
|
|
URL baseURL { base };
|
|
if (!base.isNull() && !baseURL.isValid())
|
|
return false;
|
|
URL completeURL { baseURL, url };
|
|
return completeURL.isValid();
|
|
}
|
|
|
|
ExceptionOr<Ref<DOMURL>> DOMURL::create(const String& url, const URL& base)
|
|
{
|
|
ASSERT(base.isValid() || base.isNull());
|
|
URL completeURL { base, url };
|
|
if (!completeURL.isValid())
|
|
return Exception { TypeError, makeString(redact(url), " cannot be parsed as a URL.") };
|
|
return adoptRef(*new DOMURL(WTFMove(completeURL), base));
|
|
}
|
|
|
|
ExceptionOr<Ref<DOMURL>> DOMURL::create(const String& url, const String& base)
|
|
{
|
|
URL baseURL { base };
|
|
if (!base.isNull() && !baseURL.isValid())
|
|
return Exception { TypeError, makeString(redact(url), " cannot be parsed as a URL against "_s, redact(base)) };
|
|
return create(url, baseURL);
|
|
}
|
|
|
|
ExceptionOr<Ref<DOMURL>> DOMURL::create(const String& url, const DOMURL& base)
|
|
{
|
|
return create(url, base.href());
|
|
}
|
|
|
|
ExceptionOr<void> DOMURL::setHref(const String& url)
|
|
{
|
|
URL completeURL { URL {}, url };
|
|
if (!completeURL.isValid()) {
|
|
|
|
return Exception { TypeError, makeString(redact(url), " cannot be parsed as a URL.") };
|
|
}
|
|
m_url = WTFMove(completeURL);
|
|
if (m_searchParams)
|
|
m_searchParams->updateFromAssociatedURL();
|
|
return {};
|
|
}
|
|
|
|
void DOMURL::setQuery(const String& query)
|
|
{
|
|
m_url.setQuery(query);
|
|
}
|
|
|
|
// String DOMURL::createObjectURL(Blob& blob)
|
|
// {
|
|
// return createPublicURL(scriptExecutionContext, blob);
|
|
// }
|
|
|
|
// String DOMURL::createPublicURL(URLRegistrable& registrable)
|
|
// {
|
|
// URL publicURL = BlobURL::createPublicURL(scriptExecutionContext.securityOrigin());
|
|
// if (publicURL.isEmpty())
|
|
// return String();
|
|
|
|
// scriptExecutionContext.publicURLManager().registerURL(publicURL, registrable);
|
|
|
|
// return publicURL.string();
|
|
// }
|
|
|
|
URLSearchParams& DOMURL::searchParams()
|
|
{
|
|
if (!m_searchParams)
|
|
m_searchParams = URLSearchParams::create(search(), this);
|
|
return *m_searchParams;
|
|
}
|
|
|
|
// void DOMURL::revokeObjectURL(const String& urlString)
|
|
// {
|
|
// // URL url(URL(), urlString);
|
|
// // ResourceRequest request(url);
|
|
// // request.setDomainForCachePartition(scriptExecutionContext.domainForCachePartition());
|
|
|
|
// // MemoryCache::removeRequestFromSessionCaches(scriptExecutionContext, request);
|
|
|
|
// // scriptExecutionContext.publicURLManager().revoke(url);
|
|
// }
|
|
|
|
} // namespace WebCore
|